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

Side by Side Diff: fpdfsdk/include/pdfwindow/PWL_Utils.h

Issue 453133004: clang-format all code (Closed) Base URL: https://pdfium.googlesource.com/pdfium.git@master
Patch Set: Created 6 years, 4 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
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 #ifndef _PWL_UTILS_H_ 7 #ifndef _PWL_UTILS_H_
8 #define _PWL_UTILS_H_ 8 #define _PWL_UTILS_H_
9 9
10 template<class T> T PWL_MIN (const T & i, const T & j) { return ((i < j) ? i : j ); } 10 template <class T>
11 template<class T> T PWL_MAX (const T & i, const T & j) { return ((i > j) ? i : j ); } 11 T PWL_MIN(const T& i, const T& j) {
12 12 return ((i < j) ? i : j);
13 #define PWL_PDF2WIN(color)» » » » » (FX_BYTE(color*2 55)) 13 }
14 #define PWL_WIN2PDF(color)» » » » » ((FX_FLOAT)((FX_ FLOAT)color/255.0f)) 14 template <class T>
15 15 T PWL_MAX(const T& i, const T& j) {
16 #define PWL_MAKEDWORD(low,high)»» » » ((FX_DWORD)((FX_WORD)(lo w) | (FX_DWORD)(((FX_WORD)(high))<<16))) 16 return ((i > j) ? i : j);
17 #define PWL_GETLOWWORD(dword)» » » » ((FX_WORD)(dword)) 17 }
18 #define PWL_GETHIGHWORD(dword)» » » » ((FX_WORD)(dword>>16)) 18
19 19 #define PWL_PDF2WIN(color) (FX_BYTE(color * 255))
20 #define PWL_ICONTYPE_CHECKMARK» » » » 0 20 #define PWL_WIN2PDF(color) ((FX_FLOAT)((FX_FLOAT)color / 255.0f))
21 #define PWL_ICONTYPE_CIRCLE» » » » » 1 21
22 #define PWL_ICONTYPE_COMMENT» » » » 2 22 #define PWL_MAKEDWORD(low, high) \
23 #define PWL_ICONTYPE_CROSS» » » » » 3 23 ((FX_DWORD)((FX_WORD)(low) | (FX_DWORD)(((FX_WORD)(high)) << 16)))
24 #define PWL_ICONTYPE_HELP» » » » » 4 24 #define PWL_GETLOWWORD(dword) ((FX_WORD)(dword))
25 #define PWL_ICONTYPE_INSERTTEXT»» » » 5 25 #define PWL_GETHIGHWORD(dword) ((FX_WORD)(dword >> 16))
26 #define PWL_ICONTYPE_KEY» » » » » 6 26
27 #define PWL_ICONTYPE_NEWPARAGRAPH» » » 7 27 #define PWL_ICONTYPE_CHECKMARK 0
28 #define PWL_ICONTYPE_TEXTNOTE» » » » 8 28 #define PWL_ICONTYPE_CIRCLE 1
29 #define PWL_ICONTYPE_PARAGRAPH» » » » 9 29 #define PWL_ICONTYPE_COMMENT 2
30 #define PWL_ICONTYPE_RIGHTARROW»» » » 10 30 #define PWL_ICONTYPE_CROSS 3
31 #define PWL_ICONTYPE_RIGHTPOINTER» » » 11 31 #define PWL_ICONTYPE_HELP 4
32 #define PWL_ICONTYPE_STAR» » » » » 12 32 #define PWL_ICONTYPE_INSERTTEXT 5
33 #define PWL_ICONTYPE_UPARROW» » » » 13 33 #define PWL_ICONTYPE_KEY 6
34 #define PWL_ICONTYPE_UPLEFTARROW» » » 14 34 #define PWL_ICONTYPE_NEWPARAGRAPH 7
35 35 #define PWL_ICONTYPE_TEXTNOTE 8
36 #define PWL_ICONTYPE_GRAPH» » » » » 15 36 #define PWL_ICONTYPE_PARAGRAPH 9
37 #define PWL_ICONTYPE_PAPERCLIP» » » » 16 37 #define PWL_ICONTYPE_RIGHTARROW 10
38 #define PWL_ICONTYPE_ATTACHMENT»» » » 17 38 #define PWL_ICONTYPE_RIGHTPOINTER 11
39 #define PWL_ICONTYPE_TAG» » » » » 18 39 #define PWL_ICONTYPE_STAR 12
40 40 #define PWL_ICONTYPE_UPARROW 13
41 #define PWL_ICONTYPE_FOXIT» » » » » 19 41 #define PWL_ICONTYPE_UPLEFTARROW 14
42 42
43 #define PWL_ICONTYPE_UNKNOWN» » » » -1 43 #define PWL_ICONTYPE_GRAPH 15
44 44 #define PWL_ICONTYPE_PAPERCLIP 16
45 //checkbox & radiobutton style 45 #define PWL_ICONTYPE_ATTACHMENT 17
46 #define PCS_CHECK» » » » » » » 0 46 #define PWL_ICONTYPE_TAG 18
47 #define PCS_CIRCLE» » » » » » » 1 47
48 #define PCS_CROSS» » » » » » » 2 48 #define PWL_ICONTYPE_FOXIT 19
49 #define PCS_DIAMOND» » » » » » » 3 49
50 #define PCS_SQUARE» » » » » » » 4 50 #define PWL_ICONTYPE_UNKNOWN -1
51 #define PCS_STAR» » » » » » » 5 51
52 52 // checkbox & radiobutton style
53 #define»PWL_PI» » » » » » » » 3.141592 65358979f 53 #define PCS_CHECK 0
54 #define PWL_BEZIER» » » » » » » 0.552284 7498308f 54 #define PCS_CIRCLE 1
55 55 #define PCS_CROSS 2
56 //pushbutton layout style 56 #define PCS_DIAMOND 3
57 #define PPBL_LABEL» » » » » » » 0 57 #define PCS_SQUARE 4
58 #define PPBL_ICON» » » » » » » 1 58 #define PCS_STAR 5
59 #define PPBL_ICONTOPLABELBOTTOM»» » » 2 59
60 #define»PPBL_LABELTOPICONBOTTOM»» » » 3 60 #define PWL_PI 3.14159265358979f
61 #define»PPBL_ICONLEFTLABELRIGHT»» » » 4 61 #define PWL_BEZIER 0.5522847498308f
62 #define PPBL_LABELLEFTICONRIGHT»» » » 5 62
63 #define PPBL_LABELOVERICON» » » » » 6 63 // pushbutton layout style
64 64 #define PPBL_LABEL 0
65 class CPWL_Point : public CPDF_Point 65 #define PPBL_ICON 1
66 { 66 #define PPBL_ICONTOPLABELBOTTOM 2
67 public: 67 #define PPBL_LABELTOPICONBOTTOM 3
68 » CPWL_Point() : CPDF_Point(0.0f,0.0f){} 68 #define PPBL_ICONLEFTLABELRIGHT 4
69 » CPWL_Point(FX_FLOAT fx, FX_FLOAT fy) : CPDF_Point(fx,fy) {} 69 #define PPBL_LABELLEFTICONRIGHT 5
70 » CPWL_Point(const CPWL_Point& point) : CPDF_Point(point.x, point.y) {} 70 #define PPBL_LABELOVERICON 6
71
72 class CPWL_Point : public CPDF_Point {
73 public:
74 CPWL_Point() : CPDF_Point(0.0f, 0.0f) {}
75 CPWL_Point(FX_FLOAT fx, FX_FLOAT fy) : CPDF_Point(fx, fy) {}
76 CPWL_Point(const CPWL_Point& point) : CPDF_Point(point.x, point.y) {}
71 }; 77 };
72 78
73 enum PWL_PATHDATA_TYPE 79 enum PWL_PATHDATA_TYPE {
74 { 80 PWLPT_MOVETO,
75 » PWLPT_MOVETO, 81 PWLPT_LINETO,
76 » PWLPT_LINETO, 82 PWLPT_BEZIERTO,
77 » PWLPT_BEZIERTO, 83 PWLPT_UNKNOWN
78 » PWLPT_UNKNOWN
79 }; 84 };
80 85
81 enum PWL_PATH_TYPE 86 enum PWL_PATH_TYPE { PWLPT_PATHDATA, PWLPT_STREAM };
82 { 87
83 » PWLPT_PATHDATA, 88 class CPWL_PathData {
84 » PWLPT_STREAM 89 public:
90 CPWL_PathData() : point(), type(PWLPT_UNKNOWN) {}
91 CPWL_PathData(const CPWL_Point& pt, PWL_PATHDATA_TYPE tp)
92 : point(pt), type(tp) {}
93
94 CPWL_Point point;
95 PWL_PATHDATA_TYPE type;
85 }; 96 };
86 97
87 class CPWL_PathData 98 class IPWL_SpellCheck;
88 { 99
89 public: 100 class PWL_CLASS CPWL_Utils {
90 CPWL_PathData() : point(), type(PWLPT_UNKNOWN){} 101 public:
91 CPWL_PathData(const CPWL_Point& pt, PWL_PATHDATA_TYPE tp) : point(pt), t ype(tp) {} 102 static CPDF_Rect InflateRect(const CPDF_Rect& rcRect, FX_FLOAT fSize);
92 103 static CPDF_Rect DeflateRect(const CPDF_Rect& rcRect, FX_FLOAT fSize);
93 CPWL_Point point; 104 static FX_BOOL IntersectRect(const CPDF_Rect& rect1, const CPDF_Rect& rect2);
94 PWL_PATHDATA_TYPE type; 105 static FX_BOOL ContainsRect(const CPDF_Rect& rcParent,
106 const CPDF_Rect& rcChild);
107 static CPDF_Rect ScaleRect(const CPDF_Rect& rcRect, FX_FLOAT fScale);
108 static CPVT_WordRange OverlapWordRange(const CPVT_WordRange& wr1,
109 const CPVT_WordRange& wr2);
110 static CPDF_Rect GetCenterSquare(const CPDF_Rect& rect);
111 static CPWL_Color SubstractColor(const CPWL_Color& sColor,
112 FX_FLOAT fColorSub);
113 static CPWL_Color DevideColor(const CPWL_Color& sColor,
114 FX_FLOAT fColorDevide);
115 static CPDF_Rect MaxRect(const CPDF_Rect& rect1, const CPDF_Rect& rect2);
116 static CPDF_Rect OffsetRect(const CPDF_Rect& rect, FX_FLOAT x, FX_FLOAT y);
117 static CPDF_Point OffsetPoint(const CPDF_Point& point,
118 FX_FLOAT x,
119 FX_FLOAT y);
120 static FX_COLORREF PWLColorToFXColor(const CPWL_Color& color,
121 FX_INT32 nTransparancy = 255);
122 static FX_BOOL IsBlackOrWhite(const CPWL_Color& color);
123 static CPWL_Color GetReverseColor(const CPWL_Color& color);
124
125 static CFX_ByteString GetColorAppStream(const CPWL_Color& color,
126 const FX_BOOL& bFillOrStroke = TRUE);
127 static CFX_ByteString GetBorderAppStream(const CPDF_Rect& rect,
128 FX_FLOAT fWidth,
129 const CPWL_Color& color,
130 const CPWL_Color& crLeftTop,
131 const CPWL_Color& crRightBottom,
132 FX_INT32 nStyle,
133 const CPWL_Dash& dash);
134 static CFX_ByteString GetCircleBorderAppStream(
135 const CPDF_Rect& rect,
136 FX_FLOAT fWidth,
137 const CPWL_Color& color,
138 const CPWL_Color& crLeftTop,
139 const CPWL_Color& crRightBottom,
140 FX_INT32 nStyle,
141 const CPWL_Dash& dash);
142 static CFX_ByteString GetRectFillAppStream(const CPDF_Rect& rect,
143 const CPWL_Color& color);
144 static CFX_ByteString GetCircleFillAppStream(const CPDF_Rect& rect,
145 const CPWL_Color& color);
146
147 static CFX_ByteString GetPushButtonAppStream(const CPDF_Rect& rcBBox,
148 IFX_Edit_FontMap* pFontMap,
149 CPDF_Stream* pIconStream,
150 CPDF_IconFit& IconFit,
151 const CFX_WideString& sLabel,
152 const CPWL_Color& crText,
153 FX_FLOAT fFontSize,
154 FX_INT32 nLayOut);
155 static CFX_ByteString GetCheckBoxAppStream(const CPDF_Rect& rcBBox,
156 FX_INT32 nStyle,
157 const CPWL_Color& crText);
158 static CFX_ByteString GetRadioButtonAppStream(const CPDF_Rect& rcBBox,
159 FX_INT32 nStyle,
160 const CPWL_Color& crText);
161
162 static CFX_ByteString GetEditAppStream(IFX_Edit* pEdit,
163 const CPDF_Point& ptOffset,
164 const CPVT_WordRange* pRange = NULL,
165 FX_BOOL bContinuous = TRUE,
166 FX_WORD SubWord = 0);
167 static CFX_ByteString GetEditSelAppStream(
168 IFX_Edit* pEdit,
169 const CPDF_Point& ptOffset,
170 const CPVT_WordRange* pRange = NULL);
171 static CFX_ByteString GetSpellCheckAppStream(
172 IFX_Edit* pEdit,
173 IPWL_SpellCheck* pSpellCheck,
174 const CPDF_Point& ptOffset,
175 const CPVT_WordRange* pRange = NULL);
176 static CFX_ByteString GetTextAppStream(const CPDF_Rect& rcBBox,
177 IFX_Edit_FontMap* pFontMap,
178 const CFX_WideString& sText,
179 FX_INT32 nAlignmentH,
180 FX_INT32 nAlignmentV,
181 FX_FLOAT fFontSize,
182 FX_BOOL bMultiLine,
183 FX_BOOL bAutoReturn,
184 const CPWL_Color& crText);
185 static CFX_ByteString GetDropButtonAppStream(const CPDF_Rect& rcBBox);
186
187 static void DrawFillRect(CFX_RenderDevice* pDevice,
188 CPDF_Matrix* pUser2Device,
189 const CPDF_Rect& rect,
190 const CPWL_Color& color,
191 FX_INT32 nTransparancy);
192 static void DrawFillRect(CFX_RenderDevice* pDevice,
193 CPDF_Matrix* pUser2Device,
194 const CPDF_Rect& rect,
195 const FX_COLORREF& color);
196 static void DrawStrokeRect(CFX_RenderDevice* pDevice,
197 CPDF_Matrix* pUser2Device,
198 const CPDF_Rect& rect,
199 const FX_COLORREF& color,
200 FX_FLOAT fWidth);
201 static void DrawStrokeLine(CFX_RenderDevice* pDevice,
202 CPDF_Matrix* pUser2Device,
203 const CPDF_Point& ptMoveTo,
204 const CPDF_Point& ptLineTo,
205 const FX_COLORREF& color,
206 FX_FLOAT fWidth);
207 static void DrawBorder(CFX_RenderDevice* pDevice,
208 CPDF_Matrix* pUser2Device,
209 const CPDF_Rect& rect,
210 FX_FLOAT fWidth,
211 const CPWL_Color& color,
212 const CPWL_Color& crLeftTop,
213 const CPWL_Color& crRightBottom,
214 FX_INT32 nStyle,
215 const CPWL_Dash& dash,
216 FX_INT32 nTransparancy);
217 static void DrawFillArea(CFX_RenderDevice* pDevice,
218 CPDF_Matrix* pUser2Device,
219 const CPDF_Point* pPts,
220 FX_INT32 nCount,
221 const FX_COLORREF& color);
222 static void DrawShadow(CFX_RenderDevice* pDevice,
223 CPDF_Matrix* pUser2Device,
224 FX_BOOL bVertical,
225 FX_BOOL bHorizontal,
226 CPDF_Rect rect,
227 FX_INT32 nTransparancy,
228 FX_INT32 nStartGray,
229 FX_INT32 nEndGray);
230 static void DrawEditSpellCheck(CFX_RenderDevice* pDevice,
231 CPDF_Matrix* pUser2Device,
232 IFX_Edit* pEdit,
233 const CPDF_Rect& rcClip,
234 const CPDF_Point& ptOffset,
235 const CPVT_WordRange* pRange,
236 IPWL_SpellCheck* pSpellCheck);
237
238 public:
239 static void ConvertCMYK2RGB(FX_FLOAT dC,
240 FX_FLOAT dM,
241 FX_FLOAT dY,
242 FX_FLOAT dK,
243 FX_FLOAT& dR,
244 FX_FLOAT& dG,
245 FX_FLOAT& dB);
246 static void ConvertRGB2CMYK(FX_FLOAT dR,
247 FX_FLOAT dG,
248 FX_FLOAT dB,
249 FX_FLOAT& dC,
250 FX_FLOAT& dM,
251 FX_FLOAT& dY,
252 FX_FLOAT& dK);
253
254 static void ConvertRGB2GRAY(FX_FLOAT dR,
255 FX_FLOAT dG,
256 FX_FLOAT dB,
257 FX_FLOAT& dGray);
258 static void ConvertGRAY2RGB(FX_FLOAT dGray,
259 FX_FLOAT& dR,
260 FX_FLOAT& dG,
261 FX_FLOAT& dB);
262
263 static void ConvertCMYK2GRAY(FX_FLOAT dC,
264 FX_FLOAT dM,
265 FX_FLOAT dY,
266 FX_FLOAT dK,
267 FX_FLOAT& dGray);
268 static void ConvertGRAY2CMYK(FX_FLOAT dGray,
269 FX_FLOAT& dC,
270 FX_FLOAT& dM,
271 FX_FLOAT& dY,
272 FX_FLOAT& dK);
273
274 static void PWLColorToARGB(const CPWL_Color& color,
275 FX_INT32& alpha,
276 FX_FLOAT& red,
277 FX_FLOAT& green,
278 FX_FLOAT& blue);
279
280 public:
281 static CFX_ByteString GetIconAppStream(
282 FX_INT32 nType,
283 const CPDF_Rect& rect,
284 const CPWL_Color& crFill,
285 const CPWL_Color& crStroke = PWL_DEFAULT_BLACKCOLOR);
286 static void DrawIconAppStream(CFX_RenderDevice* pDevice,
287 CPDF_Matrix* pUser2Device,
288 FX_INT32 nType,
289 const CPDF_Rect& rect,
290 const CPWL_Color& crFill,
291 const CPWL_Color& crStroke,
292 const FX_INT32 nTransparancy);
293
294 private:
295 static CFX_ByteString GetAppStreamFromArray(const CPWL_PathData* pPathData,
296 FX_INT32 nCount);
297 static void GetPathDataFromArray(CFX_PathData& path,
298 const CPWL_PathData* pPathData,
299 FX_INT32 nCount);
300
301 static CFX_ByteString GetAppStream_Check(const CPDF_Rect& rcBBox,
302 const CPWL_Color& crText);
303 static CFX_ByteString GetAppStream_Circle(const CPDF_Rect& rcBBox,
304 const CPWL_Color& crText);
305 static CFX_ByteString GetAppStream_Cross(const CPDF_Rect& rcBBox,
306 const CPWL_Color& crText);
307 static CFX_ByteString GetAppStream_Diamond(const CPDF_Rect& rcBBox,
308 const CPWL_Color& crText);
309 static CFX_ByteString GetAppStream_Square(const CPDF_Rect& rcBBox,
310 const CPWL_Color& crText);
311 static CFX_ByteString GetAppStream_Star(const CPDF_Rect& rcBBox,
312 const CPWL_Color& crText);
313
314 static CFX_ByteString GetAP_Check(const CPDF_Rect& crBBox);
315 static CFX_ByteString GetAP_Circle(const CPDF_Rect& crBBox);
316 static CFX_ByteString GetAP_Cross(const CPDF_Rect& crBBox);
317 static CFX_ByteString GetAP_Diamond(const CPDF_Rect& crBBox);
318 static CFX_ByteString GetAP_Square(const CPDF_Rect& crBBox);
319 static CFX_ByteString GetAP_Star(const CPDF_Rect& crBBox);
320 static CFX_ByteString GetAP_HalfCircle(const CPDF_Rect& crBBox,
321 FX_FLOAT fRotate);
322
323 static void GetGraphics_Checkmark(CFX_ByteString& sPathData,
324 CFX_PathData& path,
325 const CPDF_Rect& crBBox,
326 const PWL_PATH_TYPE type);
327 static void GetGraphics_Circle(CFX_ByteString& sPathData,
328 CFX_PathData& path,
329 const CPDF_Rect& crBBox,
330 const PWL_PATH_TYPE type);
331 static void GetGraphics_Comment(CFX_ByteString& sPathData,
332 CFX_PathData& path,
333 const CPDF_Rect& crBBox,
334 const PWL_PATH_TYPE type);
335 static void GetGraphics_Cross(CFX_ByteString& sPathData,
336 CFX_PathData& path,
337 const CPDF_Rect& crBBox,
338 const PWL_PATH_TYPE type);
339 static void GetGraphics_Help(CFX_ByteString& sPathData,
340 CFX_PathData& path,
341 const CPDF_Rect& crBBox,
342 const PWL_PATH_TYPE type);
343 static void GetGraphics_InsertText(CFX_ByteString& sPathData,
344 CFX_PathData& path,
345 const CPDF_Rect& crBBox,
346 const PWL_PATH_TYPE type);
347 static void GetGraphics_Key(CFX_ByteString& sPathData,
348 CFX_PathData& path,
349 const CPDF_Rect& crBBox,
350 const PWL_PATH_TYPE type);
351 static void GetGraphics_NewParagraph(CFX_ByteString& sPathData,
352 CFX_PathData& path,
353 const CPDF_Rect& crBBox,
354 const PWL_PATH_TYPE type);
355 static void GetGraphics_TextNote(CFX_ByteString& sPathData,
356 CFX_PathData& path,
357 const CPDF_Rect& crBBox,
358 const PWL_PATH_TYPE type);
359 static void GetGraphics_Paragraph(CFX_ByteString& sPathData,
360 CFX_PathData& path,
361 const CPDF_Rect& crBBox,
362 const PWL_PATH_TYPE type);
363 static void GetGraphics_RightArrow(CFX_ByteString& sPathData,
364 CFX_PathData& path,
365 const CPDF_Rect& crBBox,
366 const PWL_PATH_TYPE type);
367 static void GetGraphics_RightPointer(CFX_ByteString& sPathData,
368 CFX_PathData& path,
369 const CPDF_Rect& crBBox,
370 const PWL_PATH_TYPE type);
371 static void GetGraphics_Star(CFX_ByteString& sPathData,
372 CFX_PathData& path,
373 const CPDF_Rect& crBBox,
374 const PWL_PATH_TYPE type);
375 static void GetGraphics_UpArrow(CFX_ByteString& sPathData,
376 CFX_PathData& path,
377 const CPDF_Rect& crBBox,
378 const PWL_PATH_TYPE type);
379 static void GetGraphics_UpLeftArrow(CFX_ByteString& sPathData,
380 CFX_PathData& path,
381 const CPDF_Rect& crBBox,
382 const PWL_PATH_TYPE type);
383 static void GetGraphics_Graph(CFX_ByteString& sPathData,
384 CFX_PathData& path,
385 const CPDF_Rect& crBBox,
386 const PWL_PATH_TYPE type);
387 static void GetGraphics_Paperclip(CFX_ByteString& sPathData,
388 CFX_PathData& path,
389 const CPDF_Rect& crBBox,
390 const PWL_PATH_TYPE type);
391 static void GetGraphics_Attachment(CFX_ByteString& sPathData,
392 CFX_PathData& path,
393 const CPDF_Rect& crBBox,
394 const PWL_PATH_TYPE type);
395 static void GetGraphics_Tag(CFX_ByteString& sPathData,
396 CFX_PathData& path,
397 const CPDF_Rect& crBBox,
398 const PWL_PATH_TYPE type);
399 static void GetGraphics_Foxit(CFX_ByteString& sPathData,
400 CFX_PathData& path,
401 const CPDF_Rect& crBBox,
402 const PWL_PATH_TYPE type);
95 }; 403 };
96 404
97 class IPWL_SpellCheck; 405 #endif // !defined(AFX_PWL_UTILS_H__D32812AD_A875_4E08_9D3C_0A57020987C6__INCLU DED_)
98
99 class PWL_CLASS CPWL_Utils
100 {
101 public:
102 static CPDF_Rect InflateR ect(const CPDF_Rect& rcRect, FX_FLOAT fSize);
103 static CPDF_Rect DeflateR ect(const CPDF_Rect& rcRect, FX_FLOAT fSize);
104 static FX_BOOL Intersec tRect(const CPDF_Rect& rect1, const CPDF_Rect& rect2);
105 static FX_BOOL Contains Rect(const CPDF_Rect& rcParent, const CPDF_Rect& rcChild);
106 static CPDF_Rect ScaleRec t(const CPDF_Rect& rcRect,FX_FLOAT fScale);
107 static CPVT_WordRange OverlapWordRange (const CPVT_WordRange& wr1, const CPVT_WordRange& wr2);
108 static CPDF_Rect GetCente rSquare(const CPDF_Rect & rect);
109 static CPWL_Color Substrac tColor(const CPWL_Color & sColor,FX_FLOAT fColorSub);
110 static CPWL_Color DevideCo lor(const CPWL_Color & sColor,FX_FLOAT fColorDevide);
111 static CPDF_Rect MaxRect( const CPDF_Rect & rect1,const CPDF_Rect & rect2);
112 static CPDF_Rect OffsetRe ct(const CPDF_Rect & rect,FX_FLOAT x,FX_FLOAT y);
113 static CPDF_Point OffsetPo int(const CPDF_Point & point,FX_FLOAT x,FX_FLOAT y);
114 static FX_COLORREF PWLColor ToFXColor(const CPWL_Color& color, FX_INT32 nTransparancy = 255);
115 static FX_BOOL IsBlackO rWhite(const CPWL_Color& color);
116 static CPWL_Color GetRever seColor(const CPWL_Color& color);
117
118 static CFX_ByteString GetColorAppStrea m(const CPWL_Color & color,const FX_BOOL & bFillOrStroke = TRUE);
119 static CFX_ByteString GetBorderAppStre am(const CPDF_Rect & rect, FX_FLOAT fWidth,
120 const CPWL_Color & color, const CPWL_Color & crLeftTop, const CP WL_Color & crRightBottom,
121 FX_INT32 nStyle, const CPWL_Dash & dash);
122 static CFX_ByteString GetCircleBorderA ppStream(const CPDF_Rect & rect, FX_FLOAT fWidth,
123 const CPWL_Color & color, const CPWL_Color & crLeftTop, const CP WL_Color & crRightBottom,
124 FX_INT32 nStyle, const CPWL_Dash & dash);
125 static CFX_ByteString GetRectFillAppSt ream(const CPDF_Rect & rect,const CPWL_Color & color);
126 static CFX_ByteString GetCircleFillApp Stream(const CPDF_Rect & rect,const CPWL_Color & color);
127
128 static CFX_ByteString GetPushButtonApp Stream(const CPDF_Rect & rcBBox,
129 IFX_Edit_FontMap * pFontMap,
130 CPDF_Stream * pIconStream,
131 CPDF_IconFit & IconFit,
132 const CFX_WideString & sLabel,
133 const CPWL_Color & crText,
134 FX_FLOAT fFontSize,
135 FX_INT32 nLayOut);
136 static CFX_ByteString GetCheckBoxAppSt ream(const CPDF_Rect & rcBBox,
137 FX_INT32 nStyle,
138 const CPWL_Color & crText);
139 static CFX_ByteString GetRadioButtonAp pStream(const CPDF_Rect & rcBBox,
140 FX_INT32 nStyle,
141 const CPWL_Color & crText);
142
143 static CFX_ByteString GetEditAppStream (IFX_Edit* pEdit, const CPDF_Point & ptOffset, const CPVT_WordRange * pRange = N ULL,
144 FX_BOOL bContinuous = TRUE, FX_WORD SubWord = 0) ;
145 static CFX_ByteString GetEditSelAppStr eam(IFX_Edit* pEdit, const CPDF_Point & ptOffset,
146 const CPVT_WordRange * pRange = NULL);
147 static CFX_ByteString GetSpellCheckApp Stream(IFX_Edit* pEdit, IPWL_SpellCheck* pSpellCheck,
148 const CPDF_Point & ptOffset,
149 const CPVT_WordRange * pRange = NULL);
150 static CFX_ByteString GetTextAppStream (const CPDF_Rect & rcBBox,IFX_Edit_FontMap * pFontMap,
151 const CFX_WideString & sText, FX_INT32 nAlignmen tH, FX_INT32 nAlignmentV,
152 FX_FLOAT fFontSize, FX_BOOL bMultiLine, FX_BOOL bAutoReturn, const CPWL_Color & crText);
153 static CFX_ByteString GetDropButtonApp Stream(const CPDF_Rect & rcBBox);
154
155 static void DrawFillRect(CFX_RenderDevice* pDevice, CPDF_Matrix* pUser2Device,const CPDF_Rec t & rect,
156 const CPWL_Color & color, FX_INT32 nTransparancy );
157 static void DrawFillRect(CFX_RenderDevice* pDevice, CPDF_Matrix* pUser2Device,
158 const CPDF_Rect & rect,const FX_COLORREF & color );
159 static void DrawStrokeRect(CFX_RenderDevice* pDevice, CPDF_Matrix* pUser2Device,const CPDF_R ect & rect,
160 const FX_COLORREF & color, FX_FLOAT fWidth);
161 static void DrawStrokeLine(CFX_RenderDevice* pDevice, CPDF_Matrix* pUser2Device,
162 const CPDF_Point & ptMoveTo, const CPDF_Point & ptLineTo, const FX_COLORREF & color, FX_FLOAT fWidth);
163 static void DrawBorder(CFX_RenderDevice* pDevice, CPDF_Matrix* pUser2Device,
164 const CPDF_Rect & rect, FX_FLOAT fWidth,
165 const CPWL_Color & color, const CPWL_Color & crLeftTop, const CP WL_Color & crRightBottom,
166 FX_INT32 nStyle, const CPWL_Dash & dash, FX_INT32 nTransparancy) ;
167 static void DrawFillArea(CFX_RenderDevice* pDevice, CPDF_Matrix* pUser2Device,
168 const CPDF_Point* pPts, FX_INT32 nCount, const F X_COLORREF& color);
169 static void DrawShadow(CFX_RenderDevice* pDevice, CPDF_Matrix* pUser2Device,
170 FX_BOOL bVertical, FX_BOOL bHorizontal, CPDF_Rec t rect,
171 FX_INT32 nTransparancy, FX_INT32 nStartGray, FX_ INT32 nEndGray);
172 static void DrawEditSpellCheck(CFX_RenderDevice* pDevice, CPDF_Matrix* pUser2Device, IFX_Edi t* pEdit,
173 const CPDF_Rect& rcClip, const CPDF_Point& ptOff set, const CPVT_WordRange* pRange,
174 IPWL_SpellCheck* pSpellCheck);
175 public:
176 static void ConvertCMYK2RGB(FX_FLOAT dC,FX_FLOAT dM,FX_FLOAT dY,FX_FLOAT dK,FX_FLOAT &dR,FX_ FLOAT &dG,FX_FLOAT &dB);
177 static void ConvertRGB2CMYK(FX_FLOAT dR,FX_FLOAT dG,FX_FLOAT dB,FX_FLOAT &dC,FX_FLOAT &dM,FX _FLOAT &dY,FX_FLOAT &dK);
178
179 static void ConvertRGB2GRAY(FX_FLOAT dR,FX_FLOAT dG,FX_FLOAT dB,FX_FLOAT &dGray);
180 static void ConvertGRAY2RGB(FX_FLOAT dGray,FX_FLOAT &dR,FX_FLOAT &dG,FX_FLOAT &dB);
181
182 static void ConvertCMYK2GRAY(FX_FLOAT dC,FX_FLOAT dM,FX_FLOAT dY,FX_FLOAT dK,FX_FLOAT &dGray );
183 static void ConvertGRAY2CMYK(FX_FLOAT dGray,FX_FLOAT &dC,FX_FLOAT &dM,FX_FLOAT &dY,FX_FLOAT &dK);
184
185 static void PWLColorToARGB(const CPWL_Color& color, FX_INT32& alpha, FX_FLOAT& red, FX_FLOAT & green, FX_FLOAT& blue);
186
187 public:
188 static CFX_ByteString GetIconAppStream (FX_INT32 nType, const CPDF_Rect& rect, const CPWL_Color& crFill,
189 const CPWL_Color& crStroke = PWL_DEFAULT_BLACKCOLOR);
190 static void DrawIconAppStream(CFX_RenderDevice* pDevice, CPDF_Matrix* pUser2Device,
191 FX_INT32 nType, const CPDF_Rect & rect, const CPWL_Color& crFill ,
192 const CPWL_Color& crStroke, const FX_INT32 nTransparancy);
193
194 private:
195 static CFX_ByteString GetAppStreamFrom Array(const CPWL_PathData* pPathData, FX_INT32 nCount);
196 static void GetPathDataFromArray(CFX_PathData& path, const CPWL_PathData* pPathData, FX_INT3 2 nCount);
197
198 static CFX_ByteString GetAppStream_Che ck(const CPDF_Rect & rcBBox, const CPWL_Color & crText);
199 static CFX_ByteString GetAppStream_Cir cle(const CPDF_Rect & rcBBox, const CPWL_Color & crText);
200 static CFX_ByteString GetAppStream_Cro ss(const CPDF_Rect & rcBBox, const CPWL_Color & crText);
201 static CFX_ByteString GetAppStream_Dia mond(const CPDF_Rect & rcBBox, const CPWL_Color & crText);
202 static CFX_ByteString GetAppStream_Squ are(const CPDF_Rect & rcBBox, const CPWL_Color & crText);
203 static CFX_ByteString GetAppStream_Sta r(const CPDF_Rect & rcBBox, const CPWL_Color & crText);
204
205 static CFX_ByteString GetAP_Check(cons t CPDF_Rect & crBBox);
206 static CFX_ByteString GetAP_Circle(con st CPDF_Rect & crBBox);
207 static CFX_ByteString GetAP_Cross(cons t CPDF_Rect & crBBox);
208 static CFX_ByteString GetAP_Diamond(co nst CPDF_Rect & crBBox);
209 static CFX_ByteString GetAP_Square(con st CPDF_Rect & crBBox);
210 static CFX_ByteString GetAP_Star(const CPDF_Rect & crBBox);
211 static CFX_ByteString GetAP_HalfCircle (const CPDF_Rect & crBBox,FX_FLOAT fRotate);
212
213 static void GetGraphics_Checkmark(CFX_ByteString& sPathData, CFX_PathData& path, const CPDF_ Rect& crBBox, const PWL_PATH_TYPE type);
214 static void GetGraphics_Circle(CFX_ByteString& sPathData, CFX_PathData& path, const CPDF_Rec t& crBBox, const PWL_PATH_TYPE type);
215 static void GetGraphics_Comment(CFX_ByteString& sPathData, CFX_PathData& path, const CPDF_Re ct& crBBox, const PWL_PATH_TYPE type);
216 static void GetGraphics_Cross(CFX_ByteString& sPathData, CFX_PathData& path, const CPDF_Rect & crBBox, const PWL_PATH_TYPE type);
217 static void GetGraphics_Help(CFX_ByteString& sPathData, CFX_PathData& path, const CPDF_Rect& crBBox, const PWL_PATH_TYPE type);
218 static void GetGraphics_InsertText(CFX_ByteString& sPathData, CFX_PathData& path, const CPDF _Rect& crBBox, const PWL_PATH_TYPE type);
219 static void GetGraphics_Key(CFX_ByteString& sPathData, CFX_PathData& path, const CPDF_Rect& crBBox, const PWL_PATH_TYPE type);
220 static void GetGraphics_NewParagraph(CFX_ByteString& sPathData, CFX_PathData& path, const CP DF_Rect& crBBox, const PWL_PATH_TYPE type);
221 static void GetGraphics_TextNote(CFX_ByteString& sPathData, CFX_PathData& path, const CPDF_R ect& crBBox, const PWL_PATH_TYPE type);
222 static void GetGraphics_Paragraph(CFX_ByteString& sPathData, CFX_PathData& path, const CPDF_ Rect& crBBox, const PWL_PATH_TYPE type);
223 static void GetGraphics_RightArrow(CFX_ByteString& sPathData, CFX_PathData& path, const CPDF _Rect& crBBox, const PWL_PATH_TYPE type);
224 static void GetGraphics_RightPointer(CFX_ByteString& sPathData, CFX_PathData& path, const CP DF_Rect& crBBox, const PWL_PATH_TYPE type);
225 static void GetGraphics_Star(CFX_ByteString& sPathData, CFX_PathData& path, const CPDF_Rect& crBBox, const PWL_PATH_TYPE type);
226 static void GetGraphics_UpArrow(CFX_ByteString& sPathData, CFX_PathData& path, const CPDF_Re ct& crBBox, const PWL_PATH_TYPE type);
227 static void GetGraphics_UpLeftArrow(CFX_ByteString& sPathData, CFX_PathData& path, const CPD F_Rect& crBBox, const PWL_PATH_TYPE type);
228 static void GetGraphics_Graph(CFX_ByteString& sPathData, CFX_PathData& path, const CPDF_Rect & crBBox, const PWL_PATH_TYPE type);
229 static void GetGraphics_Paperclip(CFX_ByteString& sPathData, CFX_PathData& path, const CPDF_ Rect& crBBox, const PWL_PATH_TYPE type);
230 static void GetGraphics_Attachment(CFX_ByteString& sPathData, CFX_PathData& path, const CPDF _Rect& crBBox, const PWL_PATH_TYPE type);
231 static void GetGraphics_Tag(CFX_ByteString& sPathData, CFX_PathData& path, const CPDF_Rect& crBBox, const PWL_PATH_TYPE type);
232 static void GetGraphics_Foxit(CFX_ByteString& sPathData, CFX_PathData& path, const CPDF_Rect & crBBox, const PWL_PATH_TYPE type);
233 };
234
235 #endif // !defined(AFX_PWL_UTILS_H__D32812AD_A875_4E08_9D3C_0A57020987C6__INCLUD ED_)
236
237
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698