Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(189)

Side by Side Diff: xfa/fxfa/app/xfa_ffwidget.cpp

Issue 1810563002: Move xfa/include/fxgraphics/fx_graphics.h to xfa/fxgraphics. (Closed) Base URL: https://pdfium.googlesource.com/pdfium.git@master
Patch Set: Created 4 years, 9 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch
« no previous file with comments | « xfa/fxfa/app/xfa_fftext.cpp ('k') | xfa/fxfa/app/xfa_fwltheme.cpp » ('j') | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
1 // Copyright 2014 PDFium Authors. All rights reserved. 1 // Copyright 2014 PDFium Authors. All rights reserved.
2 // Use of this source code is governed by a BSD-style license that can be 2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file. 3 // found in the LICENSE file.
4 4
5 // Original code copyright 2014 Foxit Software Inc. http://www.foxitsoftware.com 5 // Original code copyright 2014 Foxit Software Inc. http://www.foxitsoftware.com
6 6
7 #include "xfa/fxfa/app/xfa_ffwidget.h" 7 #include "xfa/fxfa/app/xfa_ffwidget.h"
8 8
9 #include <algorithm> 9 #include <algorithm>
10 10
11 #include "core/fpdfapi/fpdf_page/include/cpdf_pageobjectholder.h" 11 #include "core/fpdfapi/fpdf_page/include/cpdf_pageobjectholder.h"
12 #include "core/include/fxcodec/fx_codec.h" 12 #include "core/include/fxcodec/fx_codec.h"
13 #include "xfa/fxfa/app/xfa_ffapp.h" 13 #include "xfa/fxfa/app/xfa_ffapp.h"
14 #include "xfa/fxfa/app/xfa_ffdoc.h" 14 #include "xfa/fxfa/app/xfa_ffdoc.h"
15 #include "xfa/fxfa/app/xfa_ffdocview.h" 15 #include "xfa/fxfa/app/xfa_ffdocview.h"
16 #include "xfa/fxfa/app/xfa_ffpageview.h" 16 #include "xfa/fxfa/app/xfa_ffpageview.h"
17 #include "xfa/fxfa/app/xfa_textlayout.h" 17 #include "xfa/fxfa/app/xfa_textlayout.h"
18 #include "xfa/include/fxgraphics/fx_graphics.h" 18 #include "xfa/fxgraphics/cfx_color.h"
19 #include "xfa/fxgraphics/cfx_path.h"
20 #include "xfa/fxgraphics/cfx_pattern.h"
21 #include "xfa/fxgraphics/cfx_shading.h"
22 #include "xfa/fxgraphics/include/cfx_graphics.h"
19 23
20 CXFA_FFWidget::CXFA_FFWidget(CXFA_FFPageView* pPageView, 24 CXFA_FFWidget::CXFA_FFWidget(CXFA_FFPageView* pPageView,
21 CXFA_WidgetAcc* pDataAcc) 25 CXFA_WidgetAcc* pDataAcc)
22 : CXFA_ContentLayoutItem(pDataAcc->GetNode()), 26 : CXFA_ContentLayoutItem(pDataAcc->GetNode()),
23 m_pPageView(pPageView), 27 m_pPageView(pPageView),
24 m_pDataAcc(pDataAcc) { 28 m_pDataAcc(pDataAcc) {
25 m_rtWidget.Set(0, 0, 0, 0); 29 m_rtWidget.Set(0, 0, 0, 0);
26 } 30 }
27 CXFA_FFWidget::~CXFA_FFWidget() {} 31 CXFA_FFWidget::~CXFA_FFWidget() {}
28 IXFA_PageView* CXFA_FFWidget::GetPageView() { 32 IXFA_PageView* CXFA_FFWidget::GetPageView() {
(...skipping 1420 matching lines...) Expand 10 before | Expand all | Expand 10 after
1449 } 1453 }
1450 static void XFA_BOX_Fill_Radial(CXFA_Box box, 1454 static void XFA_BOX_Fill_Radial(CXFA_Box box,
1451 CFX_Graphics* pGS, 1455 CFX_Graphics* pGS,
1452 CFX_Path& fillPath, 1456 CFX_Path& fillPath,
1453 CFX_RectF rtFill, 1457 CFX_RectF rtFill,
1454 CFX_Matrix* pMatrix) { 1458 CFX_Matrix* pMatrix) {
1455 CXFA_Fill fill = box.GetFill(); 1459 CXFA_Fill fill = box.GetFill();
1456 FX_ARGB crStart, crEnd; 1460 FX_ARGB crStart, crEnd;
1457 crStart = fill.GetColor(); 1461 crStart = fill.GetColor();
1458 int32_t iType = fill.GetRadial(crEnd); 1462 int32_t iType = fill.GetRadial(crEnd);
1459 CFX_Shading shading;
1460 if (iType != XFA_ATTRIBUTEENUM_ToEdge) { 1463 if (iType != XFA_ATTRIBUTEENUM_ToEdge) {
1461 FX_ARGB temp = crEnd; 1464 FX_ARGB temp = crEnd;
1462 crEnd = crStart; 1465 crEnd = crStart;
1463 crStart = temp; 1466 crStart = temp;
1464 } 1467 }
1465 shading.CreateRadial(rtFill.Center(), rtFill.Center(), 0, 1468 CFX_Shading shading(rtFill.Center(), rtFill.Center(), 0,
1466 FXSYS_sqrt(rtFill.Width() * rtFill.Width() + 1469 FXSYS_sqrt(rtFill.Width() * rtFill.Width() +
1467 rtFill.Height() * rtFill.Height()) / 1470 rtFill.Height() * rtFill.Height()) /
1468 2, 1471 2,
1469 TRUE, TRUE, crStart, crEnd); 1472 TRUE, TRUE, crStart, crEnd);
1470 CFX_Color cr(&shading); 1473 CFX_Color cr(&shading);
1471 pGS->SetFillColor(&cr); 1474 pGS->SetFillColor(&cr);
1472 pGS->FillPath(&fillPath, FXFILL_WINDING, pMatrix); 1475 pGS->FillPath(&fillPath, FXFILL_WINDING, pMatrix);
1473 } 1476 }
1474 static void XFA_BOX_Fill_Pattern(CXFA_Box box, 1477 static void XFA_BOX_Fill_Pattern(CXFA_Box box,
1475 CFX_Graphics* pGS, 1478 CFX_Graphics* pGS,
1476 CFX_Path& fillPath, 1479 CFX_Path& fillPath,
1477 CFX_RectF rtFill, 1480 CFX_RectF rtFill,
1478 CFX_Matrix* pMatrix) { 1481 CFX_Matrix* pMatrix) {
1479 CXFA_Fill fill = box.GetFill(); 1482 CXFA_Fill fill = box.GetFill();
1480 FX_ARGB crStart, crEnd; 1483 FX_ARGB crStart, crEnd;
1481 crStart = fill.GetColor(); 1484 crStart = fill.GetColor();
1482 int32_t iType = fill.GetPattern(crEnd); 1485 int32_t iType = fill.GetPattern(crEnd);
1483 int32_t iHatch = FX_HATCHSTYLE_Cross; 1486 FX_HatchStyle iHatch = FX_HATCHSTYLE_Cross;
1484 switch (iType) { 1487 switch (iType) {
1485 case XFA_ATTRIBUTEENUM_CrossDiagonal: 1488 case XFA_ATTRIBUTEENUM_CrossDiagonal:
1486 iHatch = FX_HATCHSTYLE_DiagonalCross; 1489 iHatch = FX_HATCHSTYLE_DiagonalCross;
1487 break; 1490 break;
1488 case XFA_ATTRIBUTEENUM_DiagonalLeft: 1491 case XFA_ATTRIBUTEENUM_DiagonalLeft:
1489 iHatch = FX_HATCHSTYLE_ForwardDiagonal; 1492 iHatch = FX_HATCHSTYLE_ForwardDiagonal;
1490 break; 1493 break;
1491 case XFA_ATTRIBUTEENUM_DiagonalRight: 1494 case XFA_ATTRIBUTEENUM_DiagonalRight:
1492 iHatch = FX_HATCHSTYLE_BackwardDiagonal; 1495 iHatch = FX_HATCHSTYLE_BackwardDiagonal;
1493 break; 1496 break;
1494 case XFA_ATTRIBUTEENUM_Horizontal: 1497 case XFA_ATTRIBUTEENUM_Horizontal:
1495 iHatch = FX_HATCHSTYLE_Horizontal; 1498 iHatch = FX_HATCHSTYLE_Horizontal;
1496 break; 1499 break;
1497 case XFA_ATTRIBUTEENUM_Vertical: 1500 case XFA_ATTRIBUTEENUM_Vertical:
1498 iHatch = FX_HATCHSTYLE_Vertical; 1501 iHatch = FX_HATCHSTYLE_Vertical;
1499 break; 1502 break;
1500 default: 1503 default:
1501 break; 1504 break;
1502 } 1505 }
1503 CFX_Pattern pattern; 1506
1504 pattern.Create(iHatch, crEnd, crStart); 1507 CFX_Pattern pattern(iHatch, crEnd, crStart);
1505 CFX_Color cr(&pattern); 1508 CFX_Color cr(&pattern);
1506 pGS->SetFillColor(&cr); 1509 pGS->SetFillColor(&cr);
1507 pGS->FillPath(&fillPath, FXFILL_WINDING, pMatrix); 1510 pGS->FillPath(&fillPath, FXFILL_WINDING, pMatrix);
1508 } 1511 }
1509 static void XFA_BOX_Fill_Linear(CXFA_Box box, 1512 static void XFA_BOX_Fill_Linear(CXFA_Box box,
1510 CFX_Graphics* pGS, 1513 CFX_Graphics* pGS,
1511 CFX_Path& fillPath, 1514 CFX_Path& fillPath,
1512 CFX_RectF rtFill, 1515 CFX_RectF rtFill,
1513 CFX_Matrix* pMatrix) { 1516 CFX_Matrix* pMatrix) {
1514 CXFA_Fill fill = box.GetFill(); 1517 CXFA_Fill fill = box.GetFill();
(...skipping 15 matching lines...) Expand all
1530 ptStart = CFX_PointF(rtFill.right(), rtFill.top); 1533 ptStart = CFX_PointF(rtFill.right(), rtFill.top);
1531 ptEnd = CFX_PointF(rtFill.left, rtFill.top); 1534 ptEnd = CFX_PointF(rtFill.left, rtFill.top);
1532 break; 1535 break;
1533 case XFA_ATTRIBUTEENUM_ToTop: 1536 case XFA_ATTRIBUTEENUM_ToTop:
1534 ptStart = CFX_PointF(rtFill.left, rtFill.bottom()); 1537 ptStart = CFX_PointF(rtFill.left, rtFill.bottom());
1535 ptEnd = CFX_PointF(rtFill.left, rtFill.top); 1538 ptEnd = CFX_PointF(rtFill.left, rtFill.top);
1536 break; 1539 break;
1537 default: 1540 default:
1538 break; 1541 break;
1539 } 1542 }
1540 CFX_Shading shading; 1543 CFX_Shading shading(ptStart, ptEnd, FALSE, FALSE, crStart, crEnd);
1541 shading.CreateAxial(ptStart, ptEnd, FALSE, FALSE, crStart, crEnd);
1542 CFX_Color cr(&shading); 1544 CFX_Color cr(&shading);
1543 pGS->SetFillColor(&cr); 1545 pGS->SetFillColor(&cr);
1544 pGS->FillPath(&fillPath, FXFILL_WINDING, pMatrix); 1546 pGS->FillPath(&fillPath, FXFILL_WINDING, pMatrix);
1545 } 1547 }
1546 static void XFA_BOX_Fill(CXFA_Box box, 1548 static void XFA_BOX_Fill(CXFA_Box box,
1547 const CXFA_StrokeArray& strokes, 1549 const CXFA_StrokeArray& strokes,
1548 CFX_Graphics* pGS, 1550 CFX_Graphics* pGS,
1549 const CFX_RectF& rtWidget, 1551 const CFX_RectF& rtWidget,
1550 CFX_Matrix* pMatrix, 1552 CFX_Matrix* pMatrix,
1551 FX_DWORD dwFlags) { 1553 FX_DWORD dwFlags) {
(...skipping 400 matching lines...) Expand 10 before | Expand all | Expand 10 after
1952 iType != XFA_ELEMENT_Rectangle) { 1954 iType != XFA_ELEMENT_Rectangle) {
1953 return; 1955 return;
1954 } 1956 }
1955 CXFA_StrokeArray strokes; 1957 CXFA_StrokeArray strokes;
1956 if (!(dwFlags & XFA_DRAWBOX_ForceRound) && iType != XFA_ELEMENT_Arc) { 1958 if (!(dwFlags & XFA_DRAWBOX_ForceRound) && iType != XFA_ELEMENT_Arc) {
1957 box.GetStrokes(strokes); 1959 box.GetStrokes(strokes);
1958 } 1960 }
1959 XFA_BOX_Fill(box, strokes, pGS, rtWidget, pMatrix, dwFlags); 1961 XFA_BOX_Fill(box, strokes, pGS, rtWidget, pMatrix, dwFlags);
1960 XFA_BOX_Stroke(box, strokes, pGS, rtWidget, pMatrix, dwFlags); 1962 XFA_BOX_Stroke(box, strokes, pGS, rtWidget, pMatrix, dwFlags);
1961 } 1963 }
OLDNEW
« no previous file with comments | « xfa/fxfa/app/xfa_fftext.cpp ('k') | xfa/fxfa/app/xfa_fwltheme.cpp » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698