OLD | NEW |
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 "../../include/pdfwindow/PDFWindow.h" | 7 #include "../../include/pdfwindow/PDFWindow.h" |
8 #include "../../include/pdfwindow/PWL_Wnd.h" | 8 #include "../../include/pdfwindow/PWL_Wnd.h" |
9 #include "../../include/pdfwindow/PWL_Utils.h" | 9 #include "../../include/pdfwindow/PWL_Utils.h" |
10 #include "../../include/pdfwindow/PWL_Icon.h" | 10 #include "../../include/pdfwindow/PWL_Icon.h" |
11 | 11 |
12 #define IsFloatZero(f) ((f) < 0.0001 &&
(f) > -0.0001) | 12 #define IsFloatZero(f) ((f) < 0.0001 &&
(f) > -0.0001) |
13 #define IsFloatBigger(fa,fb) ((fa) > (fb) && !IsFloat
Zero((fa) - (fb))) | 13 #define IsFloatBigger(fa,fb) ((fa) > (fb) && !IsFloat
Zero((fa) - (fb))) |
14 #define IsFloatSmaller(fa,fb) ((fa) < (fb) && !IsFloat
Zero((fa) - (fb))) | 14 #define IsFloatSmaller(fa,fb) ((fa) < (fb) && !IsFloat
Zero((fa) - (fb))) |
15 #define IsFloatEqual(fa,fb) IsFloatZero((fa)
-(fb)) | 15 #define IsFloatEqual(fa,fb) IsFloatZero((fa)
-(fb)) |
16 | 16 |
17 /* ---------------------------- CPWL_Utils ------------------------------ */ | 17 /* ---------------------------- CPWL_Utils ------------------------------ */ |
18 | 18 |
19 CFX_ByteString CPWL_Utils::GetAppStreamFromArray(const CPWL_PathData* pPathData,
FX_INT32 nCount) | 19 CFX_ByteString CPWL_Utils::GetAppStreamFromArray(const CPWL_PathData* pPathData,
int32_t nCount) |
20 { | 20 { |
21 CFX_ByteTextBuf csAP; | 21 CFX_ByteTextBuf csAP; |
22 | 22 |
23 » for (FX_INT32 i=0; i<nCount; i++) | 23 » for (int32_t i=0; i<nCount; i++) |
24 { | 24 { |
25 switch (pPathData[i].type) | 25 switch (pPathData[i].type) |
26 { | 26 { |
27 case PWLPT_MOVETO: | 27 case PWLPT_MOVETO: |
28 csAP << pPathData[i].point.x << " " << pPathData[i].poin
t.y << " m\n"; | 28 csAP << pPathData[i].point.x << " " << pPathData[i].poin
t.y << " m\n"; |
29 break; | 29 break; |
30 case PWLPT_LINETO: | 30 case PWLPT_LINETO: |
31 csAP << pPathData[i].point.x << " " << pPathData[i].poin
t.y << " l\n"; | 31 csAP << pPathData[i].point.x << " " << pPathData[i].poin
t.y << " l\n"; |
32 break; | 32 break; |
33 case PWLPT_BEZIERTO: | 33 case PWLPT_BEZIERTO: |
34 csAP << pPathData[i].point.x << " " << pPathData[i].poin
t.y << " " | 34 csAP << pPathData[i].point.x << " " << pPathData[i].poin
t.y << " " |
35 << pPathData[i+1].point.x << " " << pPathData[i
+1].point.y << " " | 35 << pPathData[i+1].point.x << " " << pPathData[i
+1].point.y << " " |
36 << pPathData[i+2].point.x << " " << pPathData[i
+2].point.y << " c\n"; | 36 << pPathData[i+2].point.x << " " << pPathData[i
+2].point.y << " c\n"; |
37 | 37 |
38 i += 2; | 38 i += 2; |
39 break; | 39 break; |
40 default: | 40 default: |
41 break; | 41 break; |
42 } | 42 } |
43 } | 43 } |
44 | 44 |
45 return csAP.GetByteString(); | 45 return csAP.GetByteString(); |
46 } | 46 } |
47 | 47 |
48 void CPWL_Utils::GetPathDataFromArray(CFX_PathData& path, const CPWL_PathData* p
PathData, FX_INT32 nCount) | 48 void CPWL_Utils::GetPathDataFromArray(CFX_PathData& path, const CPWL_PathData* p
PathData, int32_t nCount) |
49 { | 49 { |
50 path.SetPointCount(nCount); | 50 path.SetPointCount(nCount); |
51 | 51 |
52 » for (FX_INT32 i=0; i<nCount; i++) | 52 » for (int32_t i=0; i<nCount; i++) |
53 { | 53 { |
54 switch (pPathData[i].type) | 54 switch (pPathData[i].type) |
55 { | 55 { |
56 case PWLPT_MOVETO: | 56 case PWLPT_MOVETO: |
57 path.SetPoint(i, pPathData[i].point.x, pPathData[i].poin
t.y, FXPT_MOVETO); | 57 path.SetPoint(i, pPathData[i].point.x, pPathData[i].poin
t.y, FXPT_MOVETO); |
58 break; | 58 break; |
59 case PWLPT_LINETO: | 59 case PWLPT_LINETO: |
60 path.SetPoint(i, pPathData[i].point.x, pPathData[i].poin
t.y, FXPT_LINETO); | 60 path.SetPoint(i, pPathData[i].point.x, pPathData[i].poin
t.y, FXPT_LINETO); |
61 break; | 61 break; |
62 case PWLPT_BEZIERTO: | 62 case PWLPT_BEZIERTO: |
(...skipping 73 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
136 return wrRet; | 136 return wrRet; |
137 } | 137 } |
138 | 138 |
139 CFX_ByteString CPWL_Utils::GetAP_Check(const CPDF_Rect & crBBox) | 139 CFX_ByteString CPWL_Utils::GetAP_Check(const CPDF_Rect & crBBox) |
140 { | 140 { |
141 CFX_ByteTextBuf csAP; | 141 CFX_ByteTextBuf csAP; |
142 | 142 |
143 FX_FLOAT fWidth = crBBox.right - crBBox.left; | 143 FX_FLOAT fWidth = crBBox.right - crBBox.left; |
144 FX_FLOAT fHeight = crBBox.top - crBBox.bottom; | 144 FX_FLOAT fHeight = crBBox.top - crBBox.bottom; |
145 | 145 |
146 » const FX_INT32 num = 8; | 146 » const int32_t num = 8; |
147 | 147 |
148 CPWL_Point pts[num*3] = | 148 CPWL_Point pts[num*3] = |
149 { | 149 { |
150 //1 | 150 //1 |
151 CPWL_Point(0.28f, 0.52f), | 151 CPWL_Point(0.28f, 0.52f), |
152 CPWL_Point(0.27f, 0.48f), | 152 CPWL_Point(0.27f, 0.48f), |
153 CPWL_Point(0.29f, 0.40f), | 153 CPWL_Point(0.29f, 0.40f), |
154 | 154 |
155 //2 | 155 //2 |
156 CPWL_Point(0.30f, 0.33f), | 156 CPWL_Point(0.30f, 0.33f), |
(...skipping 24 matching lines...) Expand all Loading... |
181 CPWL_Point(0.43f, 0.47f), | 181 CPWL_Point(0.43f, 0.47f), |
182 CPWL_Point(0.40f, 0.47f), | 182 CPWL_Point(0.40f, 0.47f), |
183 CPWL_Point(0.41f, 0.58f), | 183 CPWL_Point(0.41f, 0.58f), |
184 | 184 |
185 //8 | 185 //8 |
186 CPWL_Point(0.40f, 0.60f), | 186 CPWL_Point(0.40f, 0.60f), |
187 CPWL_Point(0.28f, 0.66f), | 187 CPWL_Point(0.28f, 0.66f), |
188 CPWL_Point(0.30f, 0.56f) | 188 CPWL_Point(0.30f, 0.56f) |
189 }; | 189 }; |
190 | 190 |
191 » for (FX_INT32 j=0; j<num*3; j++) | 191 » for (int32_t j=0; j<num*3; j++) |
192 { | 192 { |
193 pts[j].x *= fWidth; | 193 pts[j].x *= fWidth; |
194 pts[j].x += crBBox.left; | 194 pts[j].x += crBBox.left; |
195 | 195 |
196 pts[j].y *= fHeight; | 196 pts[j].y *= fHeight; |
197 pts[j].y += crBBox.bottom; | 197 pts[j].y += crBBox.bottom; |
198 } | 198 } |
199 | 199 |
200 csAP << pts[0].x << " " << pts[0].y << " m\n"; | 200 csAP << pts[0].x << " " << pts[0].y << " m\n"; |
201 | 201 |
202 » for (FX_INT32 i=0; i<num; i++) | 202 » for (int32_t i=0; i<num; i++) |
203 { | 203 { |
204 » » FX_INT32 nCur = i*3; | 204 » » int32_t nCur = i*3; |
205 » » FX_INT32 n1 = i*3 + 1; | 205 » » int32_t n1 = i*3 + 1; |
206 » » FX_INT32 n2 = i*3 + 2; | 206 » » int32_t n2 = i*3 + 2; |
207 » » FX_INT32 nNext = (i < num-1 ? (i+1)*3 : 0); | 207 » » int32_t nNext = (i < num-1 ? (i+1)*3 : 0); |
208 | 208 |
209 FX_FLOAT px1 = pts[n1].x - pts[nCur].x; | 209 FX_FLOAT px1 = pts[n1].x - pts[nCur].x; |
210 FX_FLOAT py1 = pts[n1].y - pts[nCur].y; | 210 FX_FLOAT py1 = pts[n1].y - pts[nCur].y; |
211 FX_FLOAT px2 = pts[n2].x - pts[nNext].x; | 211 FX_FLOAT px2 = pts[n2].x - pts[nNext].x; |
212 FX_FLOAT py2 = pts[n2].y - pts[nNext].y; | 212 FX_FLOAT py2 = pts[n2].y - pts[nNext].y; |
213 | 213 |
214 csAP << pts[nCur].x + px1 * PWL_BEZIER << " " << pts[nCur].y + p
y1 * PWL_BEZIER << " " | 214 csAP << pts[nCur].x + px1 * PWL_BEZIER << " " << pts[nCur].y + p
y1 * PWL_BEZIER << " " |
215 << pts[nNext].x + px2 * PWL_BEZIER << " " << pts[nNext].
y + py2 * PWL_BEZIER << " " | 215 << pts[nNext].x + px2 * PWL_BEZIER << " " << pts[nNext].
y + py2 * PWL_BEZIER << " " |
216 << pts[nNext].x << " " << pts[nNext].y << " c\n"; | 216 << pts[nNext].x << " " << pts[nNext].y << " c\n"; |
217 } | 217 } |
(...skipping 96 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
314 { | 314 { |
315 CFX_ByteTextBuf csAP; | 315 CFX_ByteTextBuf csAP; |
316 | 316 |
317 FX_FLOAT fRadius = (crBBox.top - crBBox.bottom)/(1+(FX_FLOAT)cos(PWL_PI/
5.0f)); | 317 FX_FLOAT fRadius = (crBBox.top - crBBox.bottom)/(1+(FX_FLOAT)cos(PWL_PI/
5.0f)); |
318 CPDF_Point ptCenter = CPDF_Point((crBBox.left + crBBox.right) / 2.0f,(cr
BBox.top + crBBox.bottom) / 2.0f); | 318 CPDF_Point ptCenter = CPDF_Point((crBBox.left + crBBox.right) / 2.0f,(cr
BBox.top + crBBox.bottom) / 2.0f); |
319 | 319 |
320 FX_FLOAT px[5],py[5]; | 320 FX_FLOAT px[5],py[5]; |
321 | 321 |
322 FX_FLOAT fAngel = PWL_PI/10.0f; | 322 FX_FLOAT fAngel = PWL_PI/10.0f; |
323 | 323 |
324 » for (FX_INT32 i=0; i<5; i++) | 324 » for (int32_t i=0; i<5; i++) |
325 { | 325 { |
326 px[i] = ptCenter.x + fRadius * (FX_FLOAT)cos(fAngel); | 326 px[i] = ptCenter.x + fRadius * (FX_FLOAT)cos(fAngel); |
327 py[i] = ptCenter.y + fRadius * (FX_FLOAT)sin(fAngel); | 327 py[i] = ptCenter.y + fRadius * (FX_FLOAT)sin(fAngel); |
328 | 328 |
329 fAngel += PWL_PI * 2 / 5.0f; | 329 fAngel += PWL_PI * 2 / 5.0f; |
330 } | 330 } |
331 | 331 |
332 csAP << px[0] << " " << py[0] << " m\n"; | 332 csAP << px[0] << " " << py[0] << " m\n"; |
333 | 333 |
334 » FX_INT32 nNext = 0; | 334 » int32_t nNext = 0; |
335 » for (FX_INT32 j=0; j<5; j++) | 335 » for (int32_t j=0; j<5; j++) |
336 { | 336 { |
337 nNext += 2; | 337 nNext += 2; |
338 if (nNext >= 5) nNext -= 5; | 338 if (nNext >= 5) nNext -= 5; |
339 csAP << px[nNext] << " " << py[nNext] << " l\n"; | 339 csAP << px[nNext] << " " << py[nNext] << " l\n"; |
340 } | 340 } |
341 | 341 |
342 return csAP.GetByteString(); | 342 return csAP.GetByteString(); |
343 } | 343 } |
344 | 344 |
345 CFX_ByteString CPWL_Utils::GetAP_HalfCircle(const CPDF_Rect & crBBox,FX_FLOAT fR
otate) | 345 CFX_ByteString CPWL_Utils::GetAP_HalfCircle(const CPDF_Rect & crBBox,FX_FLOAT fR
otate) |
(...skipping 123 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
469 return IFX_Edit::GetSelectAppearanceStream(pEdit,ptOffset,pRange); | 469 return IFX_Edit::GetSelectAppearanceStream(pEdit,ptOffset,pRange); |
470 } | 470 } |
471 | 471 |
472 static CFX_ByteString GetSquigglyAppearanceStream(FX_FLOAT fStartX, FX_FLOAT fEn
dX, FX_FLOAT fY, FX_FLOAT fStep) | 472 static CFX_ByteString GetSquigglyAppearanceStream(FX_FLOAT fStartX, FX_FLOAT fEn
dX, FX_FLOAT fY, FX_FLOAT fStep) |
473 { | 473 { |
474 CFX_ByteTextBuf sRet; | 474 CFX_ByteTextBuf sRet; |
475 | 475 |
476 sRet << "0 w\n" << fStartX << " " << fY << " m\n"; | 476 sRet << "0 w\n" << fStartX << " " << fY << " m\n"; |
477 | 477 |
478 FX_FLOAT fx; | 478 FX_FLOAT fx; |
479 » FX_INT32 i; | 479 » int32_t i; |
480 | 480 |
481 for (i=1,fx=fStartX+fStep; fx<fEndX; fx+=fStep,i++) | 481 for (i=1,fx=fStartX+fStep; fx<fEndX; fx+=fStep,i++) |
482 { | 482 { |
483 sRet << fx << " " << fY + (i&1)*fStep << " l\n"; | 483 sRet << fx << " " << fY + (i&1)*fStep << " l\n"; |
484 } | 484 } |
485 | 485 |
486 sRet << "S\n"; | 486 sRet << "S\n"; |
487 | 487 |
488 return sRet.GetByteString(); | 488 return sRet.GetByteString(); |
489 } | 489 } |
(...skipping 138 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
628 bLatinWord = FALSE; | 628 bLatinWord = FALSE; |
629 sWord.Empty(); | 629 sWord.Empty(); |
630 } | 630 } |
631 } | 631 } |
632 } | 632 } |
633 | 633 |
634 return sRet.GetByteString(); | 634 return sRet.GetByteString(); |
635 } | 635 } |
636 | 636 |
637 CFX_ByteString CPWL_Utils::GetTextAppStream(const CPDF_Rect & rcBBox,IFX_Edit_Fo
ntMap * pFontMap, | 637 CFX_ByteString CPWL_Utils::GetTextAppStream(const CPDF_Rect & rcBBox,IFX_Edit_Fo
ntMap * pFontMap, |
638 » » » » » » » » » »
» » » » const CFX_WideString & sText, FX_INT32 nAlignmen
tH, FX_INT32 nAlignmentV, | 638 » » » » » » » » » »
» » » » const CFX_WideString & sText, int32_t nAlignment
H, int32_t nAlignmentV, |
639
FX_FLOAT fFontSize, FX_BOOL bMultiLine, FX_BOOL
bAutoReturn, const CPWL_Color & crText) | 639
FX_FLOAT fFontSize, FX_BOOL bMultiLine, FX_BOOL
bAutoReturn, const CPWL_Color & crText) |
640 { | 640 { |
641 CFX_ByteTextBuf sRet; | 641 CFX_ByteTextBuf sRet; |
642 | 642 |
643 if (IFX_Edit * pEdit = IFX_Edit::NewEdit()) | 643 if (IFX_Edit * pEdit = IFX_Edit::NewEdit()) |
644 { | 644 { |
645 pEdit->SetFontMap(pFontMap); | 645 pEdit->SetFontMap(pFontMap); |
646 pEdit->SetPlateRect(rcBBox); | 646 pEdit->SetPlateRect(rcBBox); |
647 pEdit->SetAlignmentH(nAlignmentH); | 647 pEdit->SetAlignmentH(nAlignmentH); |
648 pEdit->SetAlignmentV(nAlignmentV); | 648 pEdit->SetAlignmentV(nAlignmentV); |
(...skipping 18 matching lines...) Expand all Loading... |
667 return sRet.GetByteString(); | 667 return sRet.GetByteString(); |
668 } | 668 } |
669 | 669 |
670 CFX_ByteString CPWL_Utils::GetPushButtonAppStream(const CPDF_Rect & rcBBox, | 670 CFX_ByteString CPWL_Utils::GetPushButtonAppStream(const CPDF_Rect & rcBBox, |
671
IFX_Edit_FontMap * pFontMap, | 671
IFX_Edit_FontMap * pFontMap, |
672
CPDF_Stream * pIconStream, | 672
CPDF_Stream * pIconStream, |
673
CPDF_IconFit & IconFit, | 673
CPDF_IconFit & IconFit, |
674
const CFX_WideString & sLabel,
| 674
const CFX_WideString & sLabel,
|
675
const CPWL_Color & crText, | 675
const CPWL_Color & crText, |
676
FX_FLOAT fFontSize, | 676
FX_FLOAT fFontSize, |
677 » » » » » » » » » »
» FX_INT32 nLayOut) | 677 » » » » » » » » » »
» int32_t nLayOut) |
678 { | 678 { |
679 const FX_FLOAT fAutoFontScale = 1.0f / 3.0f; | 679 const FX_FLOAT fAutoFontScale = 1.0f / 3.0f; |
680 | 680 |
681 if (IFX_Edit * pEdit = IFX_Edit::NewEdit()) | 681 if (IFX_Edit * pEdit = IFX_Edit::NewEdit()) |
682 { | 682 { |
683 pEdit->SetFontMap(pFontMap); | 683 pEdit->SetFontMap(pFontMap); |
684 pEdit->SetAlignmentH(1); | 684 pEdit->SetAlignmentH(1); |
685 pEdit->SetAlignmentV(1); | 685 pEdit->SetAlignmentV(1); |
686 pEdit->SetMultiLine(FALSE); | 686 pEdit->SetMultiLine(FALSE); |
687 pEdit->SetAutoReturn(FALSE); | 687 pEdit->SetAutoReturn(FALSE); |
(...skipping 252 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
940 sColorStream << color.fColor1 << " " << color.fColor2 << " " <<
color.fColor3 << " " << color.fColor4 << " " | 940 sColorStream << color.fColor1 << " " << color.fColor2 << " " <<
color.fColor3 << " " << color.fColor4 << " " |
941 << (bFillOrStroke ? "k" : "K") << "\n"; | 941 << (bFillOrStroke ? "k" : "K") << "\n"; |
942 break; | 942 break; |
943 } | 943 } |
944 | 944 |
945 return sColorStream.GetByteString(); | 945 return sColorStream.GetByteString(); |
946 } | 946 } |
947 | 947 |
948 CFX_ByteString CPWL_Utils::GetBorderAppStream(const CPDF_Rect & rect, FX_FLOAT f
Width, | 948 CFX_ByteString CPWL_Utils::GetBorderAppStream(const CPDF_Rect & rect, FX_FLOAT f
Width, |
949
const CPWL_Color & color, const CPWL_Color & crLeftTop, const CP
WL_Color & crRightBottom, | 949
const CPWL_Color & color, const CPWL_Color & crLeftTop, const CP
WL_Color & crRightBottom, |
950 » » » » » » » » » »
» » FX_INT32 nStyle, const CPWL_Dash & dash) | 950 » » » » » » » » » »
» » int32_t nStyle, const CPWL_Dash & dash) |
951 { | 951 { |
952 CFX_ByteTextBuf sAppStream; | 952 CFX_ByteTextBuf sAppStream; |
953 CFX_ByteString sColor; | 953 CFX_ByteString sColor; |
954 | 954 |
955 FX_FLOAT fLeft = rect.left; | 955 FX_FLOAT fLeft = rect.left; |
956 FX_FLOAT fRight = rect.right; | 956 FX_FLOAT fRight = rect.right; |
957 FX_FLOAT fTop = rect.top; | 957 FX_FLOAT fTop = rect.top; |
958 FX_FLOAT fBottom = rect.bottom; | 958 FX_FLOAT fBottom = rect.bottom; |
959 | 959 |
960 if (fWidth > 0.0f) | 960 if (fWidth > 0.0f) |
(...skipping 77 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
1038 } | 1038 } |
1039 | 1039 |
1040 sAppStream << "Q\n"; | 1040 sAppStream << "Q\n"; |
1041 } | 1041 } |
1042 | 1042 |
1043 return sAppStream.GetByteString(); | 1043 return sAppStream.GetByteString(); |
1044 } | 1044 } |
1045 | 1045 |
1046 CFX_ByteString CPWL_Utils::GetCircleBorderAppStream(const CPDF_Rect & rect, FX_F
LOAT fWidth, | 1046 CFX_ByteString CPWL_Utils::GetCircleBorderAppStream(const CPDF_Rect & rect, FX_F
LOAT fWidth, |
1047
const CPWL_Color & color, const CPWL_Color & crLeftTop, const CP
WL_Color & crRightBottom, | 1047
const CPWL_Color & color, const CPWL_Color & crLeftTop, const CP
WL_Color & crRightBottom, |
1048 » » » » » » » » » »
» » FX_INT32 nStyle, const CPWL_Dash & dash) | 1048 » » » » » » » » » »
» » int32_t nStyle, const CPWL_Dash & dash) |
1049 { | 1049 { |
1050 CFX_ByteTextBuf sAppStream; | 1050 CFX_ByteTextBuf sAppStream; |
1051 CFX_ByteString sColor; | 1051 CFX_ByteString sColor; |
1052 | 1052 |
1053 | 1053 |
1054 | 1054 |
1055 | 1055 |
1056 | 1056 |
1057 | 1057 |
1058 if (fWidth > 0.0f) | 1058 if (fWidth > 0.0f) |
(...skipping 182 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
1241 } | 1241 } |
1242 | 1242 |
1243 CFX_ByteString CPWL_Utils::GetAppStream_Star(const CPDF_Rect & rcBBox, const CPW
L_Color & crText) | 1243 CFX_ByteString CPWL_Utils::GetAppStream_Star(const CPDF_Rect & rcBBox, const CPW
L_Color & crText) |
1244 { | 1244 { |
1245 CFX_ByteTextBuf sAP; | 1245 CFX_ByteTextBuf sAP; |
1246 sAP << "q\n" << CPWL_Utils::GetColorAppStream(crText,TRUE) << CPWL_Utils
::GetAP_Star(rcBBox) << "f\nQ\n"; | 1246 sAP << "q\n" << CPWL_Utils::GetColorAppStream(crText,TRUE) << CPWL_Utils
::GetAP_Star(rcBBox) << "f\nQ\n"; |
1247 return sAP.GetByteString(); | 1247 return sAP.GetByteString(); |
1248 } | 1248 } |
1249 | 1249 |
1250 CFX_ByteString CPWL_Utils::GetCheckBoxAppStream(const CPDF_Rect & rcBBox, | 1250 CFX_ByteString CPWL_Utils::GetCheckBoxAppStream(const CPDF_Rect & rcBBox, |
1251 » » » » » » » » » »
» » » FX_INT32 nStyle, | 1251 » » » » » » » » » »
» » » int32_t nStyle, |
1252
const CPWL_Color & crText) | 1252
const CPWL_Color & crText) |
1253 { | 1253 { |
1254 CPDF_Rect rcCenter = GetCenterSquare(rcBBox); | 1254 CPDF_Rect rcCenter = GetCenterSquare(rcBBox); |
1255 switch (nStyle) | 1255 switch (nStyle) |
1256 { | 1256 { |
1257 default: | 1257 default: |
1258 case PCS_CHECK: | 1258 case PCS_CHECK: |
1259 return GetAppStream_Check(rcCenter,crText); | 1259 return GetAppStream_Check(rcCenter,crText); |
1260 case PCS_CIRCLE: | 1260 case PCS_CIRCLE: |
1261 return GetAppStream_Circle(ScaleRect(rcCenter,2.0f/3.0f),crText)
; | 1261 return GetAppStream_Circle(ScaleRect(rcCenter,2.0f/3.0f),crText)
; |
1262 case PCS_CROSS: | 1262 case PCS_CROSS: |
1263 return GetAppStream_Cross(rcCenter,crText); | 1263 return GetAppStream_Cross(rcCenter,crText); |
1264 case PCS_DIAMOND: | 1264 case PCS_DIAMOND: |
1265 return GetAppStream_Diamond(ScaleRect(rcCenter,2.0f/3.0f),crText
); | 1265 return GetAppStream_Diamond(ScaleRect(rcCenter,2.0f/3.0f),crText
); |
1266 case PCS_SQUARE: | 1266 case PCS_SQUARE: |
1267 return GetAppStream_Square(ScaleRect(rcCenter,2.0f/3.0f),crText)
; | 1267 return GetAppStream_Square(ScaleRect(rcCenter,2.0f/3.0f),crText)
; |
1268 case PCS_STAR: | 1268 case PCS_STAR: |
1269 return GetAppStream_Star(ScaleRect(rcCenter,2.0f/3.0f),crText); | 1269 return GetAppStream_Star(ScaleRect(rcCenter,2.0f/3.0f),crText); |
1270 } | 1270 } |
1271 } | 1271 } |
1272 | 1272 |
1273 CFX_ByteString CPWL_Utils::GetRadioButtonAppStream(const CPDF_Rect & rcBBox, | 1273 CFX_ByteString CPWL_Utils::GetRadioButtonAppStream(const CPDF_Rect & rcBBox, |
1274 » » » » » » » » » »
» » » FX_INT32 nStyle, | 1274 » » » » » » » » » »
» » » int32_t nStyle, |
1275
const CPWL_Color & crText) | 1275
const CPWL_Color & crText) |
1276 { | 1276 { |
1277 CPDF_Rect rcCenter = GetCenterSquare(rcBBox); | 1277 CPDF_Rect rcCenter = GetCenterSquare(rcBBox); |
1278 switch (nStyle) | 1278 switch (nStyle) |
1279 { | 1279 { |
1280 default: | 1280 default: |
1281 case PCS_CHECK: | 1281 case PCS_CHECK: |
1282 return GetAppStream_Check(rcCenter,crText); | 1282 return GetAppStream_Check(rcCenter,crText); |
1283 case PCS_CIRCLE: | 1283 case PCS_CIRCLE: |
1284 return GetAppStream_Circle(ScaleRect(rcCenter,1.0f/2.0f),crText)
; | 1284 return GetAppStream_Circle(ScaleRect(rcCenter,1.0f/2.0f),crText)
; |
(...skipping 84 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
1369 { | 1369 { |
1370 if (dR<0 || dR>1 || dG<0 || dG>1 || dB<0 || dB>1) | 1370 if (dR<0 || dR>1 || dG<0 || dG>1 || dB<0 || dB>1) |
1371 return; | 1371 return; |
1372 | 1372 |
1373 dC = 1.0f - dR; | 1373 dC = 1.0f - dR; |
1374 dM = 1.0f - dG; | 1374 dM = 1.0f - dG; |
1375 dY = 1.0f - dB; | 1375 dY = 1.0f - dB; |
1376 dK = FX_MIN(dC, FX_MIN(dM, dY)); | 1376 dK = FX_MIN(dC, FX_MIN(dM, dY)); |
1377 } | 1377 } |
1378 | 1378 |
1379 void CPWL_Utils::PWLColorToARGB(const CPWL_Color& color, FX_INT32& alpha, FX_FLO
AT& red, FX_FLOAT& green, FX_FLOAT& blue) | 1379 void CPWL_Utils::PWLColorToARGB(const CPWL_Color& color, int32_t& alpha, FX_FLOA
T& red, FX_FLOAT& green, FX_FLOAT& blue) |
1380 { | 1380 { |
1381 switch (color.nColorType) | 1381 switch (color.nColorType) |
1382 { | 1382 { |
1383 case COLORTYPE_TRANSPARENT: | 1383 case COLORTYPE_TRANSPARENT: |
1384 { | 1384 { |
1385 alpha = 0; | 1385 alpha = 0; |
1386 } | 1386 } |
1387 break; | 1387 break; |
1388 case COLORTYPE_GRAY: | 1388 case COLORTYPE_GRAY: |
1389 { | 1389 { |
1390 ConvertGRAY2RGB(color.fColor1, red, green, blue); | 1390 ConvertGRAY2RGB(color.fColor1, red, green, blue); |
1391 } | 1391 } |
1392 break; | 1392 break; |
1393 case COLORTYPE_RGB: | 1393 case COLORTYPE_RGB: |
1394 { | 1394 { |
1395 red = color.fColor1; | 1395 red = color.fColor1; |
1396 green = color.fColor2; | 1396 green = color.fColor2; |
1397 blue = color.fColor3; | 1397 blue = color.fColor3; |
1398 } | 1398 } |
1399 break; | 1399 break; |
1400 case COLORTYPE_CMYK: | 1400 case COLORTYPE_CMYK: |
1401 { | 1401 { |
1402 ConvertCMYK2RGB(color.fColor1, color.fColor2, color.fCol
or3, color.fColor4, | 1402 ConvertCMYK2RGB(color.fColor1, color.fColor2, color.fCol
or3, color.fColor4, |
1403 red, green, blue); | 1403 red, green, blue); |
1404 } | 1404 } |
1405 break; | 1405 break; |
1406 } | 1406 } |
1407 } | 1407 } |
1408 | 1408 |
1409 FX_COLORREF CPWL_Utils::PWLColorToFXColor(const CPWL_Color& color, FX_INT32 nTra
nsparancy) | 1409 FX_COLORREF CPWL_Utils::PWLColorToFXColor(const CPWL_Color& color, int32_t nTran
sparancy) |
1410 { | 1410 { |
1411 » FX_INT32 nAlpha = nTransparancy; | 1411 » int32_t nAlpha = nTransparancy; |
1412 FX_FLOAT dRed = 0; | 1412 FX_FLOAT dRed = 0; |
1413 FX_FLOAT dGreen = 0; | 1413 FX_FLOAT dGreen = 0; |
1414 FX_FLOAT dBlue = 0; | 1414 FX_FLOAT dBlue = 0; |
1415 | 1415 |
1416 PWLColorToARGB(color, nAlpha, dRed, dGreen, dBlue); | 1416 PWLColorToARGB(color, nAlpha, dRed, dGreen, dBlue); |
1417 | 1417 |
1418 » return ArgbEncode(nAlpha, (FX_INT32)(dRed*255), (FX_INT32)(dGreen*255),
(FX_INT32)(dBlue*255)); | 1418 » return ArgbEncode(nAlpha, (int32_t)(dRed*255), (int32_t)(dGreen*255), (i
nt32_t)(dBlue*255)); |
1419 } | 1419 } |
1420 | 1420 |
1421 void CPWL_Utils::DrawFillRect(CFX_RenderDevice* pDevice, CPDF_Matrix* pUser2Devi
ce,const CPDF_Rect & rect, | 1421 void CPWL_Utils::DrawFillRect(CFX_RenderDevice* pDevice, CPDF_Matrix* pUser2Devi
ce,const CPDF_Rect & rect, |
1422 const FX_COLORREF & co
lor) | 1422 const FX_COLORREF & co
lor) |
1423 { | 1423 { |
1424 CFX_PathData path; | 1424 CFX_PathData path; |
1425 CPDF_Rect rcTemp(rect); | 1425 CPDF_Rect rcTemp(rect); |
1426 path.AppendRect(rcTemp.left,rcTemp.bottom,rcTemp.right,rcTemp.top); | 1426 path.AppendRect(rcTemp.left,rcTemp.bottom,rcTemp.right,rcTemp.top); |
1427 pDevice->DrawPath(&path, pUser2Device, NULL, color, 0, FXFILL_WINDING); | 1427 pDevice->DrawPath(&path, pUser2Device, NULL, color, 0, FXFILL_WINDING); |
1428 } | 1428 } |
1429 | 1429 |
1430 void CPWL_Utils::DrawFillArea(CFX_RenderDevice* pDevice, CPDF_Matrix* pUser2Devi
ce, | 1430 void CPWL_Utils::DrawFillArea(CFX_RenderDevice* pDevice, CPDF_Matrix* pUser2Devi
ce, |
1431 » » » » » » » const CPDF_Point* pPts,
FX_INT32 nCount, const FX_COLORREF& color) | 1431 » » » » » » » const CPDF_Point* pPts,
int32_t nCount, const FX_COLORREF& color) |
1432 { | 1432 { |
1433 CFX_PathData path; | 1433 CFX_PathData path; |
1434 path.SetPointCount(nCount); | 1434 path.SetPointCount(nCount); |
1435 | 1435 |
1436 path.SetPoint(0, pPts[0].x, pPts[0].y, FXPT_MOVETO); | 1436 path.SetPoint(0, pPts[0].x, pPts[0].y, FXPT_MOVETO); |
1437 » for (FX_INT32 i=1; i<nCount; i++) | 1437 » for (int32_t i=1; i<nCount; i++) |
1438 path.SetPoint(i, pPts[i].x, pPts[i].y, FXPT_LINETO); | 1438 path.SetPoint(i, pPts[i].x, pPts[i].y, FXPT_LINETO); |
1439 | 1439 |
1440 pDevice->DrawPath(&path, pUser2Device, NULL, color, 0, FXFILL_ALTERNATE)
; | 1440 pDevice->DrawPath(&path, pUser2Device, NULL, color, 0, FXFILL_ALTERNATE)
; |
1441 } | 1441 } |
1442 | 1442 |
1443 void CPWL_Utils::DrawStrokeRect(CFX_RenderDevice* pDevice, CPDF_Matrix* pUser2De
vice,const CPDF_Rect & rect, | 1443 void CPWL_Utils::DrawStrokeRect(CFX_RenderDevice* pDevice, CPDF_Matrix* pUser2De
vice,const CPDF_Rect & rect, |
1444 const FX_COLORREF & co
lor, FX_FLOAT fWidth) | 1444 const FX_COLORREF & co
lor, FX_FLOAT fWidth) |
1445 { | 1445 { |
1446 CFX_PathData path; | 1446 CFX_PathData path; |
1447 CPDF_Rect rcTemp(rect); | 1447 CPDF_Rect rcTemp(rect); |
(...skipping 13 matching lines...) Expand all Loading... |
1461 path.SetPoint(0, ptMoveTo.x, ptMoveTo.y, FXPT_MOVETO); | 1461 path.SetPoint(0, ptMoveTo.x, ptMoveTo.y, FXPT_MOVETO); |
1462 path.SetPoint(1, ptLineTo.x, ptLineTo.y, FXPT_LINETO); | 1462 path.SetPoint(1, ptLineTo.x, ptLineTo.y, FXPT_LINETO); |
1463 | 1463 |
1464 CFX_GraphStateData gsd; | 1464 CFX_GraphStateData gsd; |
1465 gsd.m_LineWidth = fWidth; | 1465 gsd.m_LineWidth = fWidth; |
1466 | 1466 |
1467 pDevice->DrawPath(&path, pUser2Device, &gsd, 0, color, FXFILL_ALTERNATE)
; | 1467 pDevice->DrawPath(&path, pUser2Device, &gsd, 0, color, FXFILL_ALTERNATE)
; |
1468 } | 1468 } |
1469 | 1469 |
1470 void CPWL_Utils::DrawFillRect(CFX_RenderDevice* pDevice, CPDF_Matrix* pUser2Devi
ce,const CPDF_Rect & rect, | 1470 void CPWL_Utils::DrawFillRect(CFX_RenderDevice* pDevice, CPDF_Matrix* pUser2Devi
ce,const CPDF_Rect & rect, |
1471 » » » » » » » const CPWL_Color & col
or, FX_INT32 nTransparancy) | 1471 » » » » » » » const CPWL_Color & col
or, int32_t nTransparancy) |
1472 { | 1472 { |
1473 CPWL_Utils::DrawFillRect(pDevice,pUser2Device,rect,PWLColorToFXColor(col
or,nTransparancy)); | 1473 CPWL_Utils::DrawFillRect(pDevice,pUser2Device,rect,PWLColorToFXColor(col
or,nTransparancy)); |
1474 } | 1474 } |
1475 | 1475 |
1476 void CPWL_Utils::DrawShadow(CFX_RenderDevice* pDevice, CPDF_Matrix* pUser2Device
, | 1476 void CPWL_Utils::DrawShadow(CFX_RenderDevice* pDevice, CPDF_Matrix* pUser2Device
, |
1477
FX_BOOL bVertical, FX_BOOL bHorizontal, CPDF_Rec
t rect, | 1477
FX_BOOL bVertical, FX_BOOL bHorizontal, CPDF_Rec
t rect, |
1478 » » » » » » » » » »
» » » » FX_INT32 nTransparancy, FX_INT32 nStartGray, FX_
INT32 nEndGray) | 1478 » » » » » » » » » »
» » » » int32_t nTransparancy, int32_t nStartGray, int32
_t nEndGray) |
1479 { | 1479 { |
1480 FX_FLOAT fStepGray = 1.0f; | 1480 FX_FLOAT fStepGray = 1.0f; |
1481 | 1481 |
1482 if (bVertical) | 1482 if (bVertical) |
1483 { | 1483 { |
1484 fStepGray = (nEndGray - nStartGray) / rect.Height(); | 1484 fStepGray = (nEndGray - nStartGray) / rect.Height(); |
1485 | 1485 |
1486 for (FX_FLOAT fy=rect.bottom+0.5f; fy<=rect.top-0.5f; fy+=1.0f) | 1486 for (FX_FLOAT fy=rect.bottom+0.5f; fy<=rect.top-0.5f; fy+=1.0f) |
1487 { | 1487 { |
1488 » » » FX_INT32 nGray = nStartGray + (FX_INT32)(fStepGray * (fy
-rect.bottom)); | 1488 » » » int32_t nGray = nStartGray + (int32_t)(fStepGray * (fy-r
ect.bottom)); |
1489 CPWL_Utils::DrawStrokeLine(pDevice, pUser2Device, CPDF_P
oint(rect.left, fy), | 1489 CPWL_Utils::DrawStrokeLine(pDevice, pUser2Device, CPDF_P
oint(rect.left, fy), |
1490 CPDF_Point(rect.right, fy), ArgbEncode(nTranspar
ancy, nGray, nGray, nGray), 1.5f); | 1490 CPDF_Point(rect.right, fy), ArgbEncode(nTranspar
ancy, nGray, nGray, nGray), 1.5f); |
1491 } | 1491 } |
1492 } | 1492 } |
1493 | 1493 |
1494 if (bHorizontal) | 1494 if (bHorizontal) |
1495 { | 1495 { |
1496 fStepGray = (nEndGray - nStartGray) / rect.Width(); | 1496 fStepGray = (nEndGray - nStartGray) / rect.Width(); |
1497 | 1497 |
1498 for (FX_FLOAT fx=rect.left+0.5f; fx<=rect.right-0.5f; fx+=1.0f) | 1498 for (FX_FLOAT fx=rect.left+0.5f; fx<=rect.right-0.5f; fx+=1.0f) |
1499 { | 1499 { |
1500 » » » FX_INT32 nGray = nStartGray + (FX_INT32)(fStepGray * (fx
-rect.left)); | 1500 » » » int32_t nGray = nStartGray + (int32_t)(fStepGray * (fx-r
ect.left)); |
1501 CPWL_Utils::DrawStrokeLine(pDevice, pUser2Device, CPDF_P
oint(fx, rect.bottom), | 1501 CPWL_Utils::DrawStrokeLine(pDevice, pUser2Device, CPDF_P
oint(fx, rect.bottom), |
1502 CPDF_Point(fx, rect.top), ArgbEncode(nTransparan
cy, nGray, nGray, nGray), 1.5f); | 1502 CPDF_Point(fx, rect.top), ArgbEncode(nTransparan
cy, nGray, nGray, nGray), 1.5f); |
1503 } | 1503 } |
1504 } | 1504 } |
1505 } | 1505 } |
1506 | 1506 |
1507 void CPWL_Utils::DrawBorder(CFX_RenderDevice* pDevice, CPDF_Matrix* pUser2Device
, | 1507 void CPWL_Utils::DrawBorder(CFX_RenderDevice* pDevice, CPDF_Matrix* pUser2Device
, |
1508
const CPDF_Rect & rect, FX_FLOAT fWidth, | 1508
const CPDF_Rect & rect, FX_FLOAT fWidth, |
1509
const CPWL_Color & color, const CPWL_Color & crLeftTop, const CP
WL_Color & crRightBottom, | 1509
const CPWL_Color & color, const CPWL_Color & crLeftTop, const CP
WL_Color & crRightBottom, |
1510 » » » » » » » » » »
» » FX_INT32 nStyle, const CPWL_Dash & dash, FX_INT32 nTransparancy) | 1510 » » » » » » » » » »
» » int32_t nStyle, const CPWL_Dash & dash, int32_t nTransparancy) |
1511 { | 1511 { |
1512 FX_FLOAT fLeft = rect.left; | 1512 FX_FLOAT fLeft = rect.left; |
1513 FX_FLOAT fRight = rect.right; | 1513 FX_FLOAT fRight = rect.right; |
1514 FX_FLOAT fTop = rect.top; | 1514 FX_FLOAT fTop = rect.top; |
1515 FX_FLOAT fBottom = rect.bottom; | 1515 FX_FLOAT fBottom = rect.bottom; |
1516 | 1516 |
1517 if (fWidth > 0.0f) | 1517 if (fWidth > 0.0f) |
1518 { | 1518 { |
1519 FX_FLOAT fHalfWidth = fWidth / 2.0f; | 1519 FX_FLOAT fHalfWidth = fWidth / 2.0f; |
1520 | 1520 |
(...skipping 94 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
1615 } | 1615 } |
1616 } | 1616 } |
1617 } | 1617 } |
1618 | 1618 |
1619 static void AddSquigglyPath(CFX_PathData & PathData, FX_FLOAT fStartX, FX_FLOAT
fEndX, FX_FLOAT fY, FX_FLOAT fStep) | 1619 static void AddSquigglyPath(CFX_PathData & PathData, FX_FLOAT fStartX, FX_FLOAT
fEndX, FX_FLOAT fY, FX_FLOAT fStep) |
1620 { | 1620 { |
1621 PathData.AddPointCount(1); | 1621 PathData.AddPointCount(1); |
1622 PathData.SetPoint(PathData.GetPointCount() - 1, fStartX, fY, FXPT_MOVETO
); | 1622 PathData.SetPoint(PathData.GetPointCount() - 1, fStartX, fY, FXPT_MOVETO
); |
1623 | 1623 |
1624 FX_FLOAT fx; | 1624 FX_FLOAT fx; |
1625 » FX_INT32 i; | 1625 » int32_t i; |
1626 | 1626 |
1627 for (i=1,fx=fStartX+fStep; fx<fEndX; fx+=fStep,i++) | 1627 for (i=1,fx=fStartX+fStep; fx<fEndX; fx+=fStep,i++) |
1628 { | 1628 { |
1629 PathData.AddPointCount(1); | 1629 PathData.AddPointCount(1); |
1630 PathData.SetPoint(PathData.GetPointCount() - 1, fx, fY + (i&1)*f
Step, FXPT_LINETO); | 1630 PathData.SetPoint(PathData.GetPointCount() - 1, fx, fY + (i&1)*f
Step, FXPT_LINETO); |
1631 } | 1631 } |
1632 } | 1632 } |
1633 | 1633 |
1634 static void AddSpellCheckObj(CFX_PathData & PathData, IFX_Edit* pEdit, const CPV
T_WordRange& wrWord) | 1634 static void AddSpellCheckObj(CFX_PathData & PathData, IFX_Edit* pEdit, const CPV
T_WordRange& wrWord) |
1635 { | 1635 { |
(...skipping 70 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
1706 | 1706 |
1707 CFX_PathData pathSpell; | 1707 CFX_PathData pathSpell; |
1708 | 1708 |
1709 pDevice->SaveState(); | 1709 pDevice->SaveState(); |
1710 | 1710 |
1711 if (!rcClip.IsEmpty()) | 1711 if (!rcClip.IsEmpty()) |
1712 { | 1712 { |
1713 CPDF_Rect rcTemp = rcClip; | 1713 CPDF_Rect rcTemp = rcClip; |
1714 pUser2Device->TransformRect(rcTemp); | 1714 pUser2Device->TransformRect(rcTemp); |
1715 FX_RECT rcDevClip; | 1715 FX_RECT rcDevClip; |
1716 » » rcDevClip.left = (FX_INT32)rcTemp.left; | 1716 » » rcDevClip.left = (int32_t)rcTemp.left; |
1717 » » rcDevClip.right = (FX_INT32)rcTemp.right; | 1717 » » rcDevClip.right = (int32_t)rcTemp.right; |
1718 » » rcDevClip.top = (FX_INT32)rcTemp.top; | 1718 » » rcDevClip.top = (int32_t)rcTemp.top; |
1719 » » rcDevClip.bottom = (FX_INT32)rcTemp.bottom; | 1719 » » rcDevClip.bottom = (int32_t)rcTemp.bottom; |
1720 pDevice->SetClip_Rect(&rcDevClip); | 1720 pDevice->SetClip_Rect(&rcDevClip); |
1721 } | 1721 } |
1722 | 1722 |
1723 if (IFX_Edit_Iterator* pIterator = pEdit->GetIterator()) | 1723 if (IFX_Edit_Iterator* pIterator = pEdit->GetIterator()) |
1724 { | 1724 { |
1725 if (pEdit->GetFontMap()) | 1725 if (pEdit->GetFontMap()) |
1726 { | 1726 { |
1727 if (pRange) | 1727 if (pRange) |
1728 pIterator->SetAt(pRange->BeginPos); | 1728 pIterator->SetAt(pRange->BeginPos); |
1729 else | 1729 else |
(...skipping 111 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
1841 crRet.fColor1 = 1.0f - crRet.fColor1; | 1841 crRet.fColor1 = 1.0f - crRet.fColor1; |
1842 crRet.fColor2 = 1.0f - crRet.fColor2; | 1842 crRet.fColor2 = 1.0f - crRet.fColor2; |
1843 crRet.fColor3 = 1.0f - crRet.fColor3; | 1843 crRet.fColor3 = 1.0f - crRet.fColor3; |
1844 crRet.fColor4 = 1.0f - crRet.fColor4; | 1844 crRet.fColor4 = 1.0f - crRet.fColor4; |
1845 break; | 1845 break; |
1846 } | 1846 } |
1847 | 1847 |
1848 return crRet; | 1848 return crRet; |
1849 } | 1849 } |
1850 | 1850 |
1851 CFX_ByteString CPWL_Utils::GetIconAppStream(FX_INT32 nType, const CPDF_Rect& rec
t, const CPWL_Color& crFill, | 1851 CFX_ByteString CPWL_Utils::GetIconAppStream(int32_t nType, const CPDF_Rect& rect
, const CPWL_Color& crFill, |
1852
const CPWL_Color& crStroke) | 1852
const CPWL_Color& crStroke) |
1853 { | 1853 { |
1854 CFX_ByteString sAppStream = CPWL_Utils::GetColorAppStream(crStroke, FALS
E); | 1854 CFX_ByteString sAppStream = CPWL_Utils::GetColorAppStream(crStroke, FALS
E); |
1855 sAppStream += CPWL_Utils::GetColorAppStream(crFill, TRUE); | 1855 sAppStream += CPWL_Utils::GetColorAppStream(crFill, TRUE); |
1856 | 1856 |
1857 CFX_ByteString sPath; | 1857 CFX_ByteString sPath; |
1858 CFX_PathData path; | 1858 CFX_PathData path; |
1859 | 1859 |
1860 switch (nType) | 1860 switch (nType) |
1861 { | 1861 { |
(...skipping 62 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
1924 sAppStream += sPath; | 1924 sAppStream += sPath; |
1925 if (crStroke.nColorType != COLORTYPE_TRANSPARENT) | 1925 if (crStroke.nColorType != COLORTYPE_TRANSPARENT) |
1926 sAppStream += "B*\n"; | 1926 sAppStream += "B*\n"; |
1927 else | 1927 else |
1928 sAppStream += "f*\n"; | 1928 sAppStream += "f*\n"; |
1929 | 1929 |
1930 return sAppStream; | 1930 return sAppStream; |
1931 } | 1931 } |
1932 | 1932 |
1933 void CPWL_Utils::DrawIconAppStream(CFX_RenderDevice* pDevice, CPDF_Matrix* pUser
2Device, | 1933 void CPWL_Utils::DrawIconAppStream(CFX_RenderDevice* pDevice, CPDF_Matrix* pUser
2Device, |
1934 » » » » » » FX_INT32 nType, const CPDF_Rect
& rect, const CPWL_Color& crFill, const CPWL_Color& crStroke, const FX_INT32 nTr
ansparancy) | 1934 » » » » » » int32_t nType, const CPDF_Rect &
rect, const CPWL_Color& crFill, const CPWL_Color& crStroke, const int32_t nTran
sparancy) |
1935 { | 1935 { |
1936 CFX_GraphStateData gsd; | 1936 CFX_GraphStateData gsd; |
1937 gsd.m_LineWidth = 1.0f; | 1937 gsd.m_LineWidth = 1.0f; |
1938 | 1938 |
1939 CFX_ByteString sPath; | 1939 CFX_ByteString sPath; |
1940 CFX_PathData path; | 1940 CFX_PathData path; |
1941 | 1941 |
1942 switch (nType) | 1942 switch (nType) |
1943 { | 1943 { |
1944 case PWL_ICONTYPE_CHECKMARK: | 1944 case PWL_ICONTYPE_CHECKMARK: |
(...skipping 525 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
2470 FX_FLOAT fLongRadius = (crBBox.top - crBBox.bottom)/(1+(FX_FLOAT)cos(PWL
_PI/5.0f)); | 2470 FX_FLOAT fLongRadius = (crBBox.top - crBBox.bottom)/(1+(FX_FLOAT)cos(PWL
_PI/5.0f)); |
2471 fLongRadius = fLongRadius * 0.7f; | 2471 fLongRadius = fLongRadius * 0.7f; |
2472 FX_FLOAT fShortRadius = fLongRadius * 0.55f; | 2472 FX_FLOAT fShortRadius = fLongRadius * 0.55f; |
2473 CPDF_Point ptCenter = CPDF_Point((crBBox.left + crBBox.right) / 2.0f,(cr
BBox.top + crBBox.bottom) / 2.0f); | 2473 CPDF_Point ptCenter = CPDF_Point((crBBox.left + crBBox.right) / 2.0f,(cr
BBox.top + crBBox.bottom) / 2.0f); |
2474 | 2474 |
2475 FX_FLOAT px1[5], py1[5]; | 2475 FX_FLOAT px1[5], py1[5]; |
2476 FX_FLOAT px2[5], py2[5]; | 2476 FX_FLOAT px2[5], py2[5]; |
2477 | 2477 |
2478 FX_FLOAT fAngel = PWL_PI/10.0f; | 2478 FX_FLOAT fAngel = PWL_PI/10.0f; |
2479 | 2479 |
2480 » for (FX_INT32 i=0; i<5; i++) | 2480 » for (int32_t i=0; i<5; i++) |
2481 { | 2481 { |
2482 px1[i] = ptCenter.x + fLongRadius * (FX_FLOAT)cos(fAngel); | 2482 px1[i] = ptCenter.x + fLongRadius * (FX_FLOAT)cos(fAngel); |
2483 py1[i] = ptCenter.y + fLongRadius * (FX_FLOAT)sin(fAngel); | 2483 py1[i] = ptCenter.y + fLongRadius * (FX_FLOAT)sin(fAngel); |
2484 | 2484 |
2485 fAngel += PWL_PI * 2 / 5.0f; | 2485 fAngel += PWL_PI * 2 / 5.0f; |
2486 } | 2486 } |
2487 | 2487 |
2488 fAngel = PWL_PI/5.0f + PWL_PI/10.0f; | 2488 fAngel = PWL_PI/5.0f + PWL_PI/10.0f; |
2489 | 2489 |
2490 » for (FX_INT32 j=0; j<5; j++) | 2490 » for (int32_t j=0; j<5; j++) |
2491 { | 2491 { |
2492 px2[j] = ptCenter.x + fShortRadius * (FX_FLOAT)cos(fAngel); | 2492 px2[j] = ptCenter.x + fShortRadius * (FX_FLOAT)cos(fAngel); |
2493 py2[j] = ptCenter.y + fShortRadius * (FX_FLOAT)sin(fAngel); | 2493 py2[j] = ptCenter.y + fShortRadius * (FX_FLOAT)sin(fAngel); |
2494 | 2494 |
2495 fAngel += PWL_PI * 2 / 5.0f; | 2495 fAngel += PWL_PI * 2 / 5.0f; |
2496 } | 2496 } |
2497 | 2497 |
2498 CPWL_PathData PathArray[11]; | 2498 CPWL_PathData PathArray[11]; |
2499 PathArray[0] = CPWL_PathData(CPWL_Point(px1[0], py1[0]), PWLPT_MOVETO); | 2499 PathArray[0] = CPWL_PathData(CPWL_Point(px1[0], py1[0]), PWLPT_MOVETO); |
2500 PathArray[1] = CPWL_PathData(CPWL_Point(px2[0], py2[0]), PWLPT_LINETO); | 2500 PathArray[1] = CPWL_PathData(CPWL_Point(px2[0], py2[0]), PWLPT_LINETO); |
2501 | 2501 |
2502 » for(FX_INT32 k = 0; k < 4; k++) | 2502 » for(int32_t k = 0; k < 4; k++) |
2503 { | 2503 { |
2504 PathArray[(k+1)*2] = CPWL_PathData(CPWL_Point(px1[k+1], py1[k+1]
), PWLPT_LINETO); | 2504 PathArray[(k+1)*2] = CPWL_PathData(CPWL_Point(px1[k+1], py1[k+1]
), PWLPT_LINETO); |
2505 PathArray[(k+1)*2 + 1] = CPWL_PathData(CPWL_Point(px2[k+1], py2[
k+1]), PWLPT_LINETO); | 2505 PathArray[(k+1)*2 + 1] = CPWL_PathData(CPWL_Point(px2[k+1], py2[
k+1]), PWLPT_LINETO); |
2506 } | 2506 } |
2507 | 2507 |
2508 PathArray[10] = CPWL_PathData(CPWL_Point(px1[0], py1[0]), PWLPT_LINETO); | 2508 PathArray[10] = CPWL_PathData(CPWL_Point(px1[0], py1[0]), PWLPT_LINETO); |
2509 | 2509 |
2510 if(type == PWLPT_STREAM) | 2510 if(type == PWLPT_STREAM) |
2511 sPathData = GetAppStreamFromArray(PathArray, 11); | 2511 sPathData = GetAppStreamFromArray(PathArray, 11); |
2512 else | 2512 else |
(...skipping 275 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
2788 CPWL_PathData(CPWL_Point(crBBox.left+fOutWidth*0.04f, crBBox.top
-fOutHeight*0.04f), PWLPT_LINETO), | 2788 CPWL_PathData(CPWL_Point(crBBox.left+fOutWidth*0.04f, crBBox.top
-fOutHeight*0.04f), PWLPT_LINETO), |
2789 */ | 2789 */ |
2790 }; | 2790 }; |
2791 | 2791 |
2792 if(type == PWLPT_STREAM) | 2792 if(type == PWLPT_STREAM) |
2793 sPathData = GetAppStreamFromArray(PathArray, 23); | 2793 sPathData = GetAppStreamFromArray(PathArray, 23); |
2794 else | 2794 else |
2795 GetPathDataFromArray(path, PathArray, 23); | 2795 GetPathDataFromArray(path, PathArray, 23); |
2796 } | 2796 } |
2797 | 2797 |
2798 void CPWL_Color::ConvertColorType(FX_INT32 nColorType) | 2798 void CPWL_Color::ConvertColorType(int32_t nColorType) |
2799 { | 2799 { |
2800 switch (this->nColorType) | 2800 switch (this->nColorType) |
2801 { | 2801 { |
2802 case COLORTYPE_TRANSPARENT: | 2802 case COLORTYPE_TRANSPARENT: |
2803 break; | 2803 break; |
2804 case COLORTYPE_GRAY: | 2804 case COLORTYPE_GRAY: |
2805 switch (nColorType) | 2805 switch (nColorType) |
2806 { | 2806 { |
2807 case COLORTYPE_RGB: | 2807 case COLORTYPE_RGB: |
2808 CPWL_Utils::ConvertGRAY2RGB(this->fColor1, this->fColor1
, this->fColor2, this->fColor3); | 2808 CPWL_Utils::ConvertGRAY2RGB(this->fColor1, this->fColor1
, this->fColor2, this->fColor3); |
(...skipping 23 matching lines...) Expand all Loading... |
2832 case COLORTYPE_RGB: | 2832 case COLORTYPE_RGB: |
2833 CPWL_Utils::ConvertCMYK2RGB(this->fColor1, this->fColor2
, this->fColor3, this->fColor4, this->fColor1, this->fColor2, this->fColor3); | 2833 CPWL_Utils::ConvertCMYK2RGB(this->fColor1, this->fColor2
, this->fColor3, this->fColor4, this->fColor1, this->fColor2, this->fColor3); |
2834 break; | 2834 break; |
2835 } | 2835 } |
2836 break; | 2836 break; |
2837 } | 2837 } |
2838 this->nColorType = nColorType; | 2838 this->nColorType = nColorType; |
2839 } | 2839 } |
2840 | 2840 |
2841 | 2841 |
OLD | NEW |