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

Side by Side Diff: fpdfsdk/src/pdfwindow/PWL_Utils.cpp

Issue 1519693002: Merge to XFA: Remove CFX_AffineMatrix/CPDF_Matrix (Closed) Base URL: https://pdfium.googlesource.com/pdfium.git@xfa
Patch Set: XFA-specific changes Created 5 years 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
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 "fpdfsdk/include/pdfwindow/PDFWindow.h" 7 #include "fpdfsdk/include/pdfwindow/PDFWindow.h"
8 #include "fpdfsdk/include/pdfwindow/PWL_Icon.h" 8 #include "fpdfsdk/include/pdfwindow/PWL_Icon.h"
9 #include "fpdfsdk/include/pdfwindow/PWL_Utils.h" 9 #include "fpdfsdk/include/pdfwindow/PWL_Utils.h"
10 #include "fpdfsdk/include/pdfwindow/PWL_Wnd.h" 10 #include "fpdfsdk/include/pdfwindow/PWL_Wnd.h"
(...skipping 1371 matching lines...) Expand 10 before | Expand all | Expand 10 after
1382 FX_FLOAT dGreen = 0; 1382 FX_FLOAT dGreen = 0;
1383 FX_FLOAT dBlue = 0; 1383 FX_FLOAT dBlue = 0;
1384 1384
1385 PWLColorToARGB(color, nAlpha, dRed, dGreen, dBlue); 1385 PWLColorToARGB(color, nAlpha, dRed, dGreen, dBlue);
1386 1386
1387 return ArgbEncode(nAlpha, (int32_t)(dRed * 255), (int32_t)(dGreen * 255), 1387 return ArgbEncode(nAlpha, (int32_t)(dRed * 255), (int32_t)(dGreen * 255),
1388 (int32_t)(dBlue * 255)); 1388 (int32_t)(dBlue * 255));
1389 } 1389 }
1390 1390
1391 void CPWL_Utils::DrawFillRect(CFX_RenderDevice* pDevice, 1391 void CPWL_Utils::DrawFillRect(CFX_RenderDevice* pDevice,
1392 CPDF_Matrix* pUser2Device, 1392 CFX_Matrix* pUser2Device,
1393 const CPDF_Rect& rect, 1393 const CPDF_Rect& rect,
1394 const FX_COLORREF& color) { 1394 const FX_COLORREF& color) {
1395 CFX_PathData path; 1395 CFX_PathData path;
1396 CPDF_Rect rcTemp(rect); 1396 CPDF_Rect rcTemp(rect);
1397 path.AppendRect(rcTemp.left, rcTemp.bottom, rcTemp.right, rcTemp.top); 1397 path.AppendRect(rcTemp.left, rcTemp.bottom, rcTemp.right, rcTemp.top);
1398 pDevice->DrawPath(&path, pUser2Device, NULL, color, 0, FXFILL_WINDING); 1398 pDevice->DrawPath(&path, pUser2Device, NULL, color, 0, FXFILL_WINDING);
1399 } 1399 }
1400 1400
1401 void CPWL_Utils::DrawFillArea(CFX_RenderDevice* pDevice, 1401 void CPWL_Utils::DrawFillArea(CFX_RenderDevice* pDevice,
1402 CPDF_Matrix* pUser2Device, 1402 CFX_Matrix* pUser2Device,
1403 const CPDF_Point* pPts, 1403 const CPDF_Point* pPts,
1404 int32_t nCount, 1404 int32_t nCount,
1405 const FX_COLORREF& color) { 1405 const FX_COLORREF& color) {
1406 CFX_PathData path; 1406 CFX_PathData path;
1407 path.SetPointCount(nCount); 1407 path.SetPointCount(nCount);
1408 1408
1409 path.SetPoint(0, pPts[0].x, pPts[0].y, FXPT_MOVETO); 1409 path.SetPoint(0, pPts[0].x, pPts[0].y, FXPT_MOVETO);
1410 for (int32_t i = 1; i < nCount; i++) 1410 for (int32_t i = 1; i < nCount; i++)
1411 path.SetPoint(i, pPts[i].x, pPts[i].y, FXPT_LINETO); 1411 path.SetPoint(i, pPts[i].x, pPts[i].y, FXPT_LINETO);
1412 1412
1413 pDevice->DrawPath(&path, pUser2Device, NULL, color, 0, FXFILL_ALTERNATE); 1413 pDevice->DrawPath(&path, pUser2Device, NULL, color, 0, FXFILL_ALTERNATE);
1414 } 1414 }
1415 1415
1416 void CPWL_Utils::DrawStrokeRect(CFX_RenderDevice* pDevice, 1416 void CPWL_Utils::DrawStrokeRect(CFX_RenderDevice* pDevice,
1417 CPDF_Matrix* pUser2Device, 1417 CFX_Matrix* pUser2Device,
1418 const CPDF_Rect& rect, 1418 const CPDF_Rect& rect,
1419 const FX_COLORREF& color, 1419 const FX_COLORREF& color,
1420 FX_FLOAT fWidth) { 1420 FX_FLOAT fWidth) {
1421 CFX_PathData path; 1421 CFX_PathData path;
1422 CPDF_Rect rcTemp(rect); 1422 CPDF_Rect rcTemp(rect);
1423 path.AppendRect(rcTemp.left, rcTemp.bottom, rcTemp.right, rcTemp.top); 1423 path.AppendRect(rcTemp.left, rcTemp.bottom, rcTemp.right, rcTemp.top);
1424 1424
1425 CFX_GraphStateData gsd; 1425 CFX_GraphStateData gsd;
1426 gsd.m_LineWidth = fWidth; 1426 gsd.m_LineWidth = fWidth;
1427 1427
1428 pDevice->DrawPath(&path, pUser2Device, &gsd, 0, color, FXFILL_ALTERNATE); 1428 pDevice->DrawPath(&path, pUser2Device, &gsd, 0, color, FXFILL_ALTERNATE);
1429 } 1429 }
1430 1430
1431 void CPWL_Utils::DrawStrokeLine(CFX_RenderDevice* pDevice, 1431 void CPWL_Utils::DrawStrokeLine(CFX_RenderDevice* pDevice,
1432 CPDF_Matrix* pUser2Device, 1432 CFX_Matrix* pUser2Device,
1433 const CPDF_Point& ptMoveTo, 1433 const CPDF_Point& ptMoveTo,
1434 const CPDF_Point& ptLineTo, 1434 const CPDF_Point& ptLineTo,
1435 const FX_COLORREF& color, 1435 const FX_COLORREF& color,
1436 FX_FLOAT fWidth) { 1436 FX_FLOAT fWidth) {
1437 CFX_PathData path; 1437 CFX_PathData path;
1438 path.SetPointCount(2); 1438 path.SetPointCount(2);
1439 path.SetPoint(0, ptMoveTo.x, ptMoveTo.y, FXPT_MOVETO); 1439 path.SetPoint(0, ptMoveTo.x, ptMoveTo.y, FXPT_MOVETO);
1440 path.SetPoint(1, ptLineTo.x, ptLineTo.y, FXPT_LINETO); 1440 path.SetPoint(1, ptLineTo.x, ptLineTo.y, FXPT_LINETO);
1441 1441
1442 CFX_GraphStateData gsd; 1442 CFX_GraphStateData gsd;
1443 gsd.m_LineWidth = fWidth; 1443 gsd.m_LineWidth = fWidth;
1444 1444
1445 pDevice->DrawPath(&path, pUser2Device, &gsd, 0, color, FXFILL_ALTERNATE); 1445 pDevice->DrawPath(&path, pUser2Device, &gsd, 0, color, FXFILL_ALTERNATE);
1446 } 1446 }
1447 1447
1448 void CPWL_Utils::DrawFillRect(CFX_RenderDevice* pDevice, 1448 void CPWL_Utils::DrawFillRect(CFX_RenderDevice* pDevice,
1449 CPDF_Matrix* pUser2Device, 1449 CFX_Matrix* pUser2Device,
1450 const CPDF_Rect& rect, 1450 const CPDF_Rect& rect,
1451 const CPWL_Color& color, 1451 const CPWL_Color& color,
1452 int32_t nTransparancy) { 1452 int32_t nTransparancy) {
1453 CPWL_Utils::DrawFillRect(pDevice, pUser2Device, rect, 1453 CPWL_Utils::DrawFillRect(pDevice, pUser2Device, rect,
1454 PWLColorToFXColor(color, nTransparancy)); 1454 PWLColorToFXColor(color, nTransparancy));
1455 } 1455 }
1456 1456
1457 void CPWL_Utils::DrawShadow(CFX_RenderDevice* pDevice, 1457 void CPWL_Utils::DrawShadow(CFX_RenderDevice* pDevice,
1458 CPDF_Matrix* pUser2Device, 1458 CFX_Matrix* pUser2Device,
1459 FX_BOOL bVertical, 1459 FX_BOOL bVertical,
1460 FX_BOOL bHorizontal, 1460 FX_BOOL bHorizontal,
1461 CPDF_Rect rect, 1461 CPDF_Rect rect,
1462 int32_t nTransparancy, 1462 int32_t nTransparancy,
1463 int32_t nStartGray, 1463 int32_t nStartGray,
1464 int32_t nEndGray) { 1464 int32_t nEndGray) {
1465 FX_FLOAT fStepGray = 1.0f; 1465 FX_FLOAT fStepGray = 1.0f;
1466 1466
1467 if (bVertical) { 1467 if (bVertical) {
1468 fStepGray = (nEndGray - nStartGray) / rect.Height(); 1468 fStepGray = (nEndGray - nStartGray) / rect.Height();
(...skipping 14 matching lines...) Expand all
1483 int32_t nGray = nStartGray + (int32_t)(fStepGray * (fx - rect.left)); 1483 int32_t nGray = nStartGray + (int32_t)(fStepGray * (fx - rect.left));
1484 CPWL_Utils::DrawStrokeLine( 1484 CPWL_Utils::DrawStrokeLine(
1485 pDevice, pUser2Device, CPDF_Point(fx, rect.bottom), 1485 pDevice, pUser2Device, CPDF_Point(fx, rect.bottom),
1486 CPDF_Point(fx, rect.top), 1486 CPDF_Point(fx, rect.top),
1487 ArgbEncode(nTransparancy, nGray, nGray, nGray), 1.5f); 1487 ArgbEncode(nTransparancy, nGray, nGray, nGray), 1.5f);
1488 } 1488 }
1489 } 1489 }
1490 } 1490 }
1491 1491
1492 void CPWL_Utils::DrawBorder(CFX_RenderDevice* pDevice, 1492 void CPWL_Utils::DrawBorder(CFX_RenderDevice* pDevice,
1493 CPDF_Matrix* pUser2Device, 1493 CFX_Matrix* pUser2Device,
1494 const CPDF_Rect& rect, 1494 const CPDF_Rect& rect,
1495 FX_FLOAT fWidth, 1495 FX_FLOAT fWidth,
1496 const CPWL_Color& color, 1496 const CPWL_Color& color,
1497 const CPWL_Color& crLeftTop, 1497 const CPWL_Color& crLeftTop,
1498 const CPWL_Color& crRightBottom, 1498 const CPWL_Color& crRightBottom,
1499 int32_t nStyle, 1499 int32_t nStyle,
1500 const CPWL_Dash& dash, 1500 const CPWL_Dash& dash,
1501 int32_t nTransparancy) { 1501 int32_t nTransparancy) {
1502 FX_FLOAT fLeft = rect.left; 1502 FX_FLOAT fLeft = rect.left;
1503 FX_FLOAT fRight = rect.right; 1503 FX_FLOAT fRight = rect.right;
(...skipping 186 matching lines...) Expand 10 before | Expand all | Expand 10 after
1690 1690
1691 AddSquigglyPath(PathData, fStartX, fEndX, fY, fStep); 1691 AddSquigglyPath(PathData, fStartX, fEndX, fY, fStep);
1692 1692
1693 if (bBreak) 1693 if (bBreak)
1694 break; 1694 break;
1695 } while (pIterator->NextLine()); 1695 } while (pIterator->NextLine());
1696 } 1696 }
1697 } 1697 }
1698 1698
1699 void CPWL_Utils::DrawEditSpellCheck(CFX_RenderDevice* pDevice, 1699 void CPWL_Utils::DrawEditSpellCheck(CFX_RenderDevice* pDevice,
1700 CPDF_Matrix* pUser2Device, 1700 CFX_Matrix* pUser2Device,
1701 IFX_Edit* pEdit, 1701 IFX_Edit* pEdit,
1702 const CPDF_Rect& rcClip, 1702 const CPDF_Rect& rcClip,
1703 const CPDF_Point& ptOffset, 1703 const CPDF_Point& ptOffset,
1704 const CPVT_WordRange* pRange, 1704 const CPVT_WordRange* pRange,
1705 IPWL_SpellCheck* pSpellCheck) { 1705 IPWL_SpellCheck* pSpellCheck) {
1706 const FX_COLORREF crSpell = ArgbEncode(255, 255, 0, 0); 1706 const FX_COLORREF crSpell = ArgbEncode(255, 255, 0, 0);
1707 1707
1708 // for spellcheck 1708 // for spellcheck
1709 FX_BOOL bLatinWord = FALSE; 1709 FX_BOOL bLatinWord = FALSE;
1710 CPVT_WordPlace wpWordStart; 1710 CPVT_WordPlace wpWordStart;
(...skipping 202 matching lines...) Expand 10 before | Expand all | Expand 10 after
1913 sAppStream += sPath; 1913 sAppStream += sPath;
1914 if (crStroke.nColorType != COLORTYPE_TRANSPARENT) 1914 if (crStroke.nColorType != COLORTYPE_TRANSPARENT)
1915 sAppStream += "B*\n"; 1915 sAppStream += "B*\n";
1916 else 1916 else
1917 sAppStream += "f*\n"; 1917 sAppStream += "f*\n";
1918 1918
1919 return sAppStream; 1919 return sAppStream;
1920 } 1920 }
1921 1921
1922 void CPWL_Utils::DrawIconAppStream(CFX_RenderDevice* pDevice, 1922 void CPWL_Utils::DrawIconAppStream(CFX_RenderDevice* pDevice,
1923 CPDF_Matrix* pUser2Device, 1923 CFX_Matrix* pUser2Device,
1924 int32_t nType, 1924 int32_t nType,
1925 const CPDF_Rect& rect, 1925 const CPDF_Rect& rect,
1926 const CPWL_Color& crFill, 1926 const CPWL_Color& crFill,
1927 const CPWL_Color& crStroke, 1927 const CPWL_Color& crStroke,
1928 const int32_t nTransparancy) { 1928 const int32_t nTransparancy) {
1929 CFX_GraphStateData gsd; 1929 CFX_GraphStateData gsd;
1930 gsd.m_LineWidth = 1.0f; 1930 gsd.m_LineWidth = 1.0f;
1931 1931
1932 CFX_ByteString sPath; 1932 CFX_ByteString sPath;
1933 CFX_PathData path; 1933 CFX_PathData path;
(...skipping 1770 matching lines...) Expand 10 before | Expand all | Expand 10 after
3704 break; 3704 break;
3705 case COLORTYPE_RGB: 3705 case COLORTYPE_RGB:
3706 CPWL_Utils::ConvertCMYK2RGB(fColor1, fColor2, fColor3, fColor4, 3706 CPWL_Utils::ConvertCMYK2RGB(fColor1, fColor2, fColor3, fColor4,
3707 fColor1, fColor2, fColor3); 3707 fColor1, fColor2, fColor3);
3708 break; 3708 break;
3709 } 3709 }
3710 break; 3710 break;
3711 } 3711 }
3712 nColorType = other_nColorType; 3712 nColorType = other_nColorType;
3713 } 3713 }
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698