本文整理汇总了C++中CFX_Path::AddLine方法的典型用法代码示例。如果您正苦于以下问题:C++ CFX_Path::AddLine方法的具体用法?C++ CFX_Path::AddLine怎么用?C++ CFX_Path::AddLine使用的例子?那么, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类CFX_Path
的用法示例。
在下文中一共展示了CFX_Path::AddLine方法的5个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C++代码示例。
示例1: RenderWidget
void CXFA_FFLine::RenderWidget(CFX_Graphics* pGS,
CFX_Matrix* pMatrix,
uint32_t dwStatus) {
if (!IsMatchVisibleStatus(dwStatus)) {
return;
}
CXFA_Value value = m_pDataAcc->GetFormValue();
if (!value) {
return;
}
CXFA_Line lineObj = value.GetLine();
FX_ARGB lineColor = 0xFF000000;
int32_t iStrokeType = 0;
FX_FLOAT fLineWidth = 1.0f;
FX_BOOL bSlope = lineObj.GetSlop();
int32_t iCap = 0;
CXFA_Edge edge = lineObj.GetEdge();
if (edge) {
if (edge.GetPresence() != XFA_ATTRIBUTEENUM_Visible) {
return;
}
lineColor = edge.GetColor();
iStrokeType = edge.GetStrokeType();
fLineWidth = edge.GetThickness();
iCap = edge.GetCapType();
}
CFX_Matrix mtRotate;
GetRotateMatrix(mtRotate);
if (pMatrix) {
mtRotate.Concat(*pMatrix);
}
CFX_RectF rtLine;
GetRectWithoutRotate(rtLine);
if (CXFA_Margin mgWidget = m_pDataAcc->GetMargin()) {
XFA_RectWidthoutMargin(rtLine, mgWidget);
}
GetRectFromHand(rtLine, lineObj.GetHand(), fLineWidth);
CFX_Path linePath;
linePath.Create();
if (bSlope && rtLine.right() > 0.0f && rtLine.bottom() > 0.0f) {
linePath.AddLine(rtLine.right(), rtLine.top, rtLine.left, rtLine.bottom());
} else {
linePath.AddLine(rtLine.left, rtLine.top, rtLine.right(), rtLine.bottom());
}
CFX_Color color(lineColor);
pGS->SaveGraphState();
pGS->SetLineWidth(fLineWidth, TRUE);
XFA_StrokeTypeSetLineDash(pGS, iStrokeType, iCap);
pGS->SetStrokeColor(&color);
pGS->SetLineCap(XFA_LineCapToFXGE(iCap));
pGS->StrokePath(&linePath, &mtRotate);
pGS->RestoreGraphState();
}
示例2: DrawWidget
FWL_ERR CFWL_GridImp::DrawWidget(CFX_Graphics* pGraphics,
const CFX_Matrix* pMatrix) {
if (!pGraphics)
return FWL_ERR_Indefinite;
if ((m_pProperties->m_dwStyleExes & FWL_GRIDSTYLEEXT_ShowGridLines) == 0) {
return FWL_ERR_Succeeded;
}
pGraphics->SaveGraphState();
if (pMatrix) {
pGraphics->ConcatMatrix(pMatrix);
}
{
FX_BOOL bDrawLine = FALSE;
CFX_Path path;
path.Create();
int32_t iColumns = m_Columns.GetSize();
for (int32_t i = 1; i < iColumns; i++) {
CFWL_GridColRow* pColRow = static_cast<CFWL_GridColRow*>(m_Columns[i]);
if (!pColRow) {
continue;
}
bDrawLine = TRUE;
path.AddLine(pColRow->m_fActualPos, 0, pColRow->m_fActualPos,
m_pProperties->m_rtWidget.height);
}
int32_t iRows = m_Rows.GetSize();
for (int32_t j = 1; j < iRows; j++) {
CFWL_GridColRow* pColRow = static_cast<CFWL_GridColRow*>(m_Rows[j]);
if (!pColRow) {
continue;
}
bDrawLine = TRUE;
path.AddLine(0, pColRow->m_fActualPos, m_pProperties->m_rtWidget.width,
pColRow->m_fActualPos);
}
if (bDrawLine) {
CFX_Color cr(0xFFFF0000);
pGraphics->SetStrokeColor(&cr);
pGraphics->StrokePath(&path);
}
}
pGraphics->RestoreGraphState();
return FWL_ERR_Succeeded;
}
示例3: DrawMaximizeBox
void CFWL_FormTP::DrawMaximizeBox(CFX_Graphics* pGraphics,
const CFX_RectF* pRect,
FWLTHEME_STATE eState,
FX_BOOL bMax,
CFX_Matrix* pMatrix,
int32_t iActive) {
DrawMinMaxBoxCommon(pGraphics, pRect, eState, pMatrix);
FX_FLOAT fWidth = pRect->width;
FX_FLOAT fHeight = pRect->height;
if (bMax) {
CFX_Path path;
path.Create();
path.AddLine(pRect->left + 7, pRect->top + 6, pRect->left + 14,
pRect->top + 6);
path.AddLine(pRect->left + 4, pRect->top + 9, pRect->left + 11,
pRect->top + 9);
pGraphics->SaveGraphState();
pGraphics->SetLineWidth(2);
CFX_Color crStroke(0xFFFFFFFF);
pGraphics->SetStrokeColor(&crStroke);
pGraphics->StrokePath(&path, pMatrix);
pGraphics->SetLineWidth(1);
path.Clear();
path.AddLine(pRect->left + 4, pRect->top + 10, pRect->left + 4,
pRect->top + 14);
path.AddLine(pRect->left + 10, pRect->top + 10, pRect->left + 10,
pRect->top + 14);
path.AddLine(pRect->left + 13, pRect->top + 7, pRect->left + 13,
pRect->top + 11);
path.AddLine(pRect->left + 4, pRect->top + 14, pRect->left + 10,
pRect->top + 14);
path.AddLine(pRect->left + 12, pRect->top + 11, pRect->left + 12,
pRect->top + 11);
pGraphics->StrokePath(&path, pMatrix);
pGraphics->RestoreGraphState();
} else {
CFX_RectF rtMax(*pRect);
rtMax.Inflate(-5, -5);
CFX_Path path;
path.Create();
path.AddRectangle(pRect->left + 5, pRect->top + 5, fWidth - 10,
fHeight - 10);
path.AddRectangle(pRect->left + 6, pRect->top + 8, fWidth - 12,
fHeight - 14);
pGraphics->SaveGraphState();
CFX_Color crFill(0xFFFFFFFF);
pGraphics->SetFillColor(&crFill);
pGraphics->FillPath(&path, FXFILL_ALTERNATE, pMatrix);
pGraphics->RestoreGraphState();
}
}
示例4: DrawSignCross
void CFWL_CheckBoxTP::DrawSignCross(CFX_Graphics* pGraphics,
const CFX_RectF* pRtSign,
FX_ARGB argbFill,
CFX_Matrix* pMatrix) {
CFX_Path path;
path.Create();
FX_FLOAT fRight = pRtSign->right();
FX_FLOAT fBottom = pRtSign->bottom();
path.AddLine(pRtSign->left, pRtSign->top, fRight, fBottom);
path.AddLine(pRtSign->left, fBottom, fRight, pRtSign->top);
CFX_Color crFill(argbFill);
pGraphics->SaveGraphState();
pGraphics->SetStrokeColor(&crFill);
pGraphics->SetLineWidth(1.0f);
pGraphics->StrokePath(&path, pMatrix);
pGraphics->RestoreGraphState();
}
示例5: DrawCloseBox
void CFWL_FormTP::DrawCloseBox(CFX_Graphics* pGraphics,
const CFX_RectF* pRect,
FWLTHEME_STATE eState,
CFX_Matrix* pMatrix,
int32_t iActive) {
FX_FLOAT fRight = pRect->right();
FX_FLOAT fBottom = pRect->bottom();
FX_FLOAT fWidth = pRect->width;
FX_FLOAT fHeight = pRect->height;
pGraphics->SaveGraphState();
CFX_RectF rt(*pRect);
pGraphics->SetLineWidth(1.0f);
CFX_Path path;
path.Create();
path.AddRectangle(rt.left + 1, rt.top, fWidth - 2, 1);
path.AddRectangle(rt.left, rt.top + 1, 1, fHeight - 2);
path.AddRectangle(fRight - 1, rt.top + 1, 1, fHeight - 2);
path.AddRectangle(rt.left + 1, fBottom - 1, fWidth - 2, 1);
CFX_Color crFill;
crFill = m_pThemeData->clrBtnEdgeOut[iActive];
pGraphics->SetFillColor(&crFill);
pGraphics->FillPath(&path, FXFILL_WINDING, pMatrix);
path.Clear();
path.AddRectangle(rt.left + 1, rt.top + 1, 1, 1);
path.AddRectangle(fRight - 2, rt.top + 1, 1, 1);
path.AddRectangle(rt.left + 1, fBottom - 2, 1, 1);
path.AddRectangle(fRight - 2, fBottom - 2, 1, 1);
crFill = m_pThemeData->clrBtnCornerLight[iActive][eState - 1];
pGraphics->SetFillColor(&crFill);
pGraphics->FillPath(&path, FXFILL_WINDING, pMatrix);
path.Clear();
path.AddRectangle(rt.left + 2, rt.top + 1, fWidth - 4, 1);
path.AddRectangle(rt.left + 1, rt.top + 2, 1, fHeight - 4);
crFill = m_pThemeData->clrCloseBtEdgeLight[iActive][eState - 1];
pGraphics->SetFillColor(&crFill);
pGraphics->FillPath(&path, FXFILL_WINDING, pMatrix);
path.Clear();
path.AddRectangle(fRight - 2, rt.top + 2, 1, fHeight - 4);
path.AddRectangle(rt.left + 2, fBottom - 2, fWidth - 4, 1);
crFill = m_pThemeData->clrCloseBtEdgeDark[iActive][eState - 1];
pGraphics->SetFillColor(&crFill);
pGraphics->FillPath(&path, FXFILL_WINDING, pMatrix);
path.Clear();
path.AddRectangle(pRect->left + 2, pRect->top + 2, fWidth - 4, fHeight - 4);
DrawAxialShading(pGraphics, pRect->left + 2, pRect->top + 2, fRight - 2,
fBottom - 2,
m_pThemeData->clrCloseBtBKStart[iActive][eState - 1],
m_pThemeData->clrCloseBtBKEnd[iActive][eState - 1], &path,
FXFILL_WINDING, pMatrix);
CFX_RectF rtX(*pRect);
rtX.Inflate(-5, -5);
path.Clear();
FX_FLOAT frtXRight = rtX.right();
FX_FLOAT frtXBottom = rtX.bottom();
path.AddLine(rtX.left, rtX.top + 1, frtXRight - 1, frtXBottom);
path.AddLine(rtX.left, rtX.top, frtXRight, frtXBottom);
path.AddLine(rtX.left + 1, rtX.top, frtXRight, frtXBottom - 1);
path.AddLine(rtX.left, frtXBottom - 1, frtXRight - 1, rtX.top);
path.AddLine(rtX.left, frtXBottom, frtXRight, rtX.top);
path.AddLine(rtX.left + 1, frtXBottom, frtXRight, rtX.top + 1);
CFX_Color clrLine(0xffffffff);
pGraphics->SetLineWidth(1.0f);
pGraphics->SetStrokeColor(&clrLine);
pGraphics->StrokePath(&path, pMatrix);
pGraphics->RestoreGraphState();
}