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

Side by Side Diff: core/include/fpdfapi/fpdf_pageobj.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 _FPDF_PAGEOBJ_H_ 7 #ifndef _FPDF_PAGEOBJ_H_
8 #define _FPDF_PAGEOBJ_H_ 8 #define _FPDF_PAGEOBJ_H_
9 #ifndef _FPDF_RESOURCE_ 9 #ifndef _FPDF_RESOURCE_
10 #include "fpdf_resource.h" 10 #include "fpdf_resource.h"
11 #endif 11 #endif
12 #ifndef _FX_GE_H_ 12 #ifndef _FX_GE_H_
13 #include "../fxge/fx_ge.h" 13 #include "../fxge/fx_ge.h"
14 #endif 14 #endif
(...skipping 11 matching lines...) Expand all
26 class CPDF_ContentMark; 26 class CPDF_ContentMark;
27 class CPDF_GraphicStates; 27 class CPDF_GraphicStates;
28 class CPDF_PageObject; 28 class CPDF_PageObject;
29 class CPDF_TextObject; 29 class CPDF_TextObject;
30 class CPDF_PathObject; 30 class CPDF_PathObject;
31 class CPDF_ImageObject; 31 class CPDF_ImageObject;
32 class CPDF_ShadingObject; 32 class CPDF_ShadingObject;
33 class CPDF_FormObject; 33 class CPDF_FormObject;
34 class CPDF_InlineImages; 34 class CPDF_InlineImages;
35 typedef CFX_PathData CPDF_PathData; 35 typedef CFX_PathData CPDF_PathData;
36 class CPDF_Path : public CFX_CountRef<CFX_PathData> 36 class CPDF_Path : public CFX_CountRef<CFX_PathData> {
37 { 37 public:
38 public: 38 int GetPointCount() { return m_pObject->m_PointCount; }
39 39
40 40 int GetFlag(int index) { return m_pObject->m_pPoints[index].m_Flag; }
41 41
42 42 FX_FLOAT GetPointX(int index) { return m_pObject->m_pPoints[index].m_PointX; }
43 int»» » » » GetPointCount() 43
44 { 44 FX_FLOAT GetPointY(int index) { return m_pObject->m_pPoints[index].m_PointY; }
45 return m_pObject->m_PointCount; 45
46 } 46 FX_PATHPOINT* GetPoints() { return m_pObject->m_pPoints; }
47 47
48 int»» » » » GetFlag(int index) 48 CFX_FloatRect GetBoundingBox() const { return m_pObject->GetBoundingBox(); }
49 { 49
50 return m_pObject->m_pPoints[index].m_Flag; 50 CFX_FloatRect GetBoundingBox(FX_FLOAT line_width,
51 } 51 FX_FLOAT miter_limit) const {
52 52 return m_pObject->GetBoundingBox(line_width, miter_limit);
53 FX_FLOAT» » » GetPointX(int index) 53 }
54 { 54
55 return m_pObject->m_pPoints[index].m_PointX; 55 void Transform(const CFX_AffineMatrix* pMatrix) {
56 } 56 GetModify()->Transform(pMatrix);
57 57 }
58 FX_FLOAT» » » GetPointY(int index) 58
59 { 59 void Append(CPDF_Path src, const CFX_AffineMatrix* pMatrix) {
60 return m_pObject->m_pPoints[index].m_PointY; 60 m_pObject->Append(src.m_pObject, pMatrix);
61 } 61 }
62 62
63 63 void AppendRect(FX_FLOAT left,
64 64 FX_FLOAT bottom,
65 65 FX_FLOAT right,
66 FX_PATHPOINT*» » GetPoints() 66 FX_FLOAT top) {
67 { 67 m_pObject->AppendRect(left, bottom, right, top);
68 return m_pObject->m_pPoints; 68 }
69 } 69
70 70 FX_BOOL IsRect() const { return m_pObject->IsRect(); }
71 71 };
72 CFX_FloatRect» » GetBoundingBox() const 72 class CPDF_ClipPathData : public CFX_Object {
73 { 73 public:
74 return m_pObject->GetBoundingBox(); 74 CPDF_ClipPathData();
75 } 75
76 76 CPDF_ClipPathData(const CPDF_ClipPathData&);
77 CFX_FloatRect» » GetBoundingBox(FX_FLOAT line_width, FX_FLOAT mit er_limit) const 77
78 { 78 ~CPDF_ClipPathData();
79 return m_pObject->GetBoundingBox(line_width, miter_limit); 79
80 } 80 void SetCount(int path_count, int text_count);
81 81
82 void» » » » Transform(const CFX_AffineMatrix* pMatri x) 82 public:
83 { 83 int m_PathCount;
84 GetModify()->Transform(pMatrix); 84
85 } 85 CPDF_Path* m_pPathList;
86 86
87 void» » » » Append(CPDF_Path src, const CFX_AffineMa trix* pMatrix) 87 FX_BYTE* m_pTypeList;
88 { 88
89 m_pObject->Append(src.m_pObject, pMatrix); 89 int m_TextCount;
90 } 90
91 91 CPDF_TextObject** m_pTextList;
92 void» » » » AppendRect(FX_FLOAT left, FX_FLOAT botto m, FX_FLOAT right, FX_FLOAT top) 92 };
93 { 93 class CPDF_ClipPath : public CFX_CountRef<CPDF_ClipPathData> {
94 m_pObject->AppendRect(left, bottom, right, top); 94 public:
95 } 95 FX_DWORD GetPathCount() const { return m_pObject->m_PathCount; }
96 96
97 FX_BOOL» » » » IsRect() const 97 CPDF_Path GetPath(int i) const { return m_pObject->m_pPathList[i]; }
98 { 98
99 return m_pObject->IsRect(); 99 int GetClipType(int i) const { return m_pObject->m_pTypeList[i]; }
100 } 100
101 }; 101 FX_DWORD GetTextCount() const { return m_pObject->m_TextCount; }
102 class CPDF_ClipPathData : public CFX_Object 102
103 { 103 CPDF_TextObject* GetText(int i) const { return m_pObject->m_pTextList[i]; }
104 public: 104
105 105 CFX_FloatRect GetClipBox() const;
106 CPDF_ClipPathData(); 106
107 107 void AppendPath(CPDF_Path path, int type, FX_BOOL bAutoMerge);
108 CPDF_ClipPathData(const CPDF_ClipPathData&); 108
109 109 void DeletePath(int layer_index);
110 ~CPDF_ClipPathData(); 110
111 111 void AppendTexts(CPDF_TextObject** pTexts, int count);
112 void» » » » SetCount(int path_count, int text_count) ; 112
113 public: 113 void Transform(const CFX_AffineMatrix& matrix);
114 114 };
115 int»» » » » m_PathCount; 115 class CPDF_ColorStateData : public CFX_Object {
116 116 public:
117 CPDF_Path*» » » m_pPathList; 117 CPDF_ColorStateData() {}
118 118
119 FX_BYTE*» » » m_pTypeList; 119 CPDF_ColorStateData(const CPDF_ColorStateData& src);
120 120
121 int»» » » » m_TextCount; 121 void Default();
122 122
123 CPDF_TextObject**» m_pTextList; 123 CPDF_Color m_FillColor;
124 }; 124
125 class CPDF_ClipPath : public CFX_CountRef<CPDF_ClipPathData> 125 FX_DWORD m_FillRGB;
126 { 126
127 public: 127 CPDF_Color m_StrokeColor;
128 128
129 FX_DWORD» » » GetPathCount() const 129 FX_DWORD m_StrokeRGB;
130 { 130 };
131 return m_pObject->m_PathCount; 131 class CPDF_ColorState : public CFX_CountRef<CPDF_ColorStateData> {
132 } 132 public:
133 133 CPDF_Color* GetFillColor() const {
134 CPDF_Path» » » GetPath(int i) const 134 return m_pObject ? &m_pObject->m_FillColor : NULL;
135 { 135 }
136 return m_pObject->m_pPathList[i]; 136
137 } 137 CPDF_Color* GetStrokeColor() const {
138 138 return m_pObject ? &m_pObject->m_StrokeColor : NULL;
139 int»» » » » GetClipType(int i) const 139 }
140 { 140
141 return m_pObject->m_pTypeList[i]; 141 void SetFillColor(CPDF_ColorSpace* pCS, FX_FLOAT* pValue, int nValues);
142 } 142
143 143 void SetStrokeColor(CPDF_ColorSpace* pCS, FX_FLOAT* pValue, int nValues);
144 FX_DWORD» » » GetTextCount() const 144
145 { 145 void SetFillPattern(CPDF_Pattern* pattern, FX_FLOAT* pValue, int nValues);
146 return m_pObject->m_TextCount; 146
147 } 147 void SetStrokePattern(CPDF_Pattern* pattern, FX_FLOAT* pValue, int nValues);
148 148
149 CPDF_TextObject*» GetText(int i) const 149 private:
150 { 150 void SetColor(CPDF_Color& color,
151 return m_pObject->m_pTextList[i]; 151 FX_DWORD& rgb,
152 } 152 CPDF_ColorSpace* pCS,
153 153 FX_FLOAT* pValue,
154 CFX_FloatRect» » GetClipBox() const; 154 int nValues);
155
156 void» » » » AppendPath(CPDF_Path path, int type, FX_ BOOL bAutoMerge);
157
158 void» » » » DeletePath(int layer_index);
159
160 void» » » » AppendTexts(CPDF_TextObject** pTexts, in t count);
161
162 void» » » » Transform(const CFX_AffineMatrix& matrix );
163 };
164 class CPDF_ColorStateData : public CFX_Object
165 {
166 public:
167
168 CPDF_ColorStateData() {}
169
170 CPDF_ColorStateData(const CPDF_ColorStateData& src);
171
172 void» » » » Default();
173
174 CPDF_Color» » » m_FillColor;
175
176 FX_DWORD» » » m_FillRGB;
177
178 CPDF_Color» » » m_StrokeColor;
179
180 FX_DWORD» » » m_StrokeRGB;
181 };
182 class CPDF_ColorState : public CFX_CountRef<CPDF_ColorStateData>
183 {
184 public:
185
186 CPDF_Color*»» » GetFillColor() const
187 {
188 return m_pObject ? &m_pObject->m_FillColor : NULL;
189 }
190
191 CPDF_Color*»» » GetStrokeColor() const
192 {
193 return m_pObject ? &m_pObject->m_StrokeColor : NULL;
194 }
195
196 void» » » » SetFillColor(CPDF_ColorSpace* pCS, FX_FL OAT* pValue, int nValues);
197
198 void» » » » SetStrokeColor(CPDF_ColorSpace* pCS, FX_ FLOAT* pValue, int nValues);
199
200 void» » » » SetFillPattern(CPDF_Pattern* pattern, FX _FLOAT* pValue, int nValues);
201
202 void» » » » SetStrokePattern(CPDF_Pattern* pattern, FX_FLOAT* pValue, int nValues);
203 private:
204 void» » » » SetColor(CPDF_Color& color, FX_DWORD& rg b, CPDF_ColorSpace* pCS, FX_FLOAT* pValue, int nValues);
205 }; 155 };
206 typedef CFX_GraphStateData CPDF_GraphStateData; 156 typedef CFX_GraphStateData CPDF_GraphStateData;
207 class CPDF_GraphState : public CFX_CountRef<CFX_GraphStateData> 157 class CPDF_GraphState : public CFX_CountRef<CFX_GraphStateData> {
208 { 158 public:
209 public: 159 };
210 }; 160 class CPDF_TextStateData : public CFX_Object {
211 class CPDF_TextStateData : public CFX_Object 161 public:
212 { 162 CPDF_TextStateData();
213 public: 163
214 164 CPDF_TextStateData(const CPDF_TextStateData& src);
215 CPDF_TextStateData(); 165
216 166 ~CPDF_TextStateData();
217 CPDF_TextStateData(const CPDF_TextStateData& src); 167
218 168 CPDF_Font* m_pFont;
219 ~CPDF_TextStateData(); 169
220 170 FX_FLOAT m_FontSize;
221 CPDF_Font*» » » m_pFont; 171
222 172 FX_FLOAT m_CharSpace;
223 FX_FLOAT» » » m_FontSize; 173
224 174 FX_FLOAT m_WordSpace;
225 FX_FLOAT» » » m_CharSpace; 175
226 176 FX_FLOAT m_Matrix[4];
227 FX_FLOAT» » » m_WordSpace; 177
228 178 int m_TextMode;
229 FX_FLOAT» » m_Matrix[4]; 179
230 180 FX_FLOAT m_CTM[4];
231 int»» » » » m_TextMode; 181 };
232 182 class CPDF_TextState : public CFX_CountRef<CPDF_TextStateData> {
233 FX_FLOAT» » m_CTM[4]; 183 public:
234 }; 184 CPDF_Font* GetFont() const { return m_pObject->m_pFont; }
235 class CPDF_TextState : public CFX_CountRef<CPDF_TextStateData> 185
236 { 186 void SetFont(CPDF_Font* pFont);
237 public: 187
238 188 FX_FLOAT GetFontSize() const { return m_pObject->m_FontSize; }
239 CPDF_Font*» » » GetFont() const 189
240 { 190 FX_FLOAT* GetMatrix() const { return m_pObject->m_Matrix; }
241 return m_pObject->m_pFont; 191
242 } 192 FX_FLOAT GetFontSizeV() const;
243 193
244 void» » » » SetFont(CPDF_Font* pFont); 194 FX_FLOAT GetFontSizeH() const;
245 195
246 FX_FLOAT» » » GetFontSize() const 196 FX_FLOAT GetBaselineAngle() const;
247 { 197
248 return m_pObject->m_FontSize; 198 FX_FLOAT GetShearAngle() const;
249 }
250
251 FX_FLOAT*» » » GetMatrix() const
252 {
253 return m_pObject->m_Matrix;
254 }
255
256
257
258 FX_FLOAT» » » GetFontSizeV() const;
259
260 FX_FLOAT» » » GetFontSizeH() const;
261
262 FX_FLOAT» » » GetBaselineAngle() const;
263
264 FX_FLOAT» » » GetShearAngle() const;
265
266 }; 199 };
267 class CPDF_TransferFunc; 200 class CPDF_TransferFunc;
268 class CPDF_GeneralStateData : public CFX_Object 201 class CPDF_GeneralStateData : public CFX_Object {
269 { 202 public:
270 public: 203 CPDF_GeneralStateData();
271 204
272 CPDF_GeneralStateData(); 205 CPDF_GeneralStateData(const CPDF_GeneralStateData& src);
273 206 ~CPDF_GeneralStateData();
274 CPDF_GeneralStateData(const CPDF_GeneralStateData& src); 207
275 ~CPDF_GeneralStateData(); 208 void SetBlendMode(FX_BSTR blend_mode);
276 209
277 void» » » » SetBlendMode(FX_BSTR blend_mode); 210 char m_BlendMode[16];
278 211
279 char» » » » m_BlendMode[16]; 212 int m_BlendType;
280 213
281 int»» » » » m_BlendType; 214 CPDF_Object* m_pSoftMask;
282 215
283 CPDF_Object*» » m_pSoftMask; 216 FX_FLOAT m_SMaskMatrix[6];
284 217
285 FX_FLOAT» » » m_SMaskMatrix[6]; 218 FX_FLOAT m_StrokeAlpha;
286 219
287 FX_FLOAT» » » m_StrokeAlpha; 220 FX_FLOAT m_FillAlpha;
288 221
289 FX_FLOAT» » » m_FillAlpha; 222 CPDF_Object* m_pTR;
290 223
291 CPDF_Object*» » m_pTR; 224 CPDF_TransferFunc* m_pTransferFunc;
292 225
293 CPDF_TransferFunc*» m_pTransferFunc; 226 CFX_Matrix m_Matrix;
294 227
295 CFX_Matrix» » » m_Matrix; 228 int m_RenderIntent;
296 229
297 int»» » » » m_RenderIntent; 230 FX_BOOL m_StrokeAdjust;
298 231
299 FX_BOOL» » » » m_StrokeAdjust; 232 FX_BOOL m_AlphaSource;
300 233
301 FX_BOOL» » » » m_AlphaSource; 234 FX_BOOL m_TextKnockout;
302 235
303 FX_BOOL» » » » m_TextKnockout; 236 FX_BOOL m_StrokeOP;
304 237
305 FX_BOOL» » » » m_StrokeOP; 238 FX_BOOL m_FillOP;
306 239
307 FX_BOOL» » » » m_FillOP; 240 int m_OPMode;
308 241
309 int»» » » » m_OPMode; 242 CPDF_Object* m_pBG;
310 243
311 CPDF_Object*» » m_pBG; 244 CPDF_Object* m_pUCR;
312 245
313 CPDF_Object*» » m_pUCR; 246 CPDF_Object* m_pHT;
314 247
315 CPDF_Object*» » m_pHT; 248 FX_FLOAT m_Flatness;
316 249
317 FX_FLOAT» » » m_Flatness; 250 FX_FLOAT m_Smoothness;
318 251 };
319 FX_FLOAT» » » m_Smoothness; 252 class CPDF_GeneralState : public CFX_CountRef<CPDF_GeneralStateData> {
320 }; 253 public:
321 class CPDF_GeneralState : public CFX_CountRef<CPDF_GeneralStateData> 254 void SetRenderIntent(const CFX_ByteString& ri);
322 { 255
323 public: 256 int GetBlendType() const {
324 257 return m_pObject ? m_pObject->m_BlendType : FXDIB_BLEND_NORMAL;
325 void» » » » SetRenderIntent(const CFX_ByteString& ri ); 258 }
326 259
327 int»» » » » GetBlendType() const 260 int GetAlpha(FX_BOOL bStroke) const {
328 { 261 return m_pObject ? FXSYS_round((bStroke ? m_pObject->m_StrokeAlpha
329 return m_pObject ? m_pObject->m_BlendType : FXDIB_BLEND_NORMAL; 262 : m_pObject->m_FillAlpha) *
330 } 263 255)
331 264 : 255;
332 int»» » » » GetAlpha(FX_BOOL bStroke) const 265 }
333 { 266 };
334 return m_pObject ? FXSYS_round((bStroke ? m_pObject->m_StrokeAlpha : m_p Object->m_FillAlpha) * 255) : 255; 267 class CPDF_ContentMarkItem : public CFX_Object {
335 } 268 public:
336 }; 269 typedef enum { None, PropertiesDict, DirectDict, MCID } ParamType;
337 class CPDF_ContentMarkItem : public CFX_Object 270
338 { 271 CPDF_ContentMarkItem();
339 public: 272
340 273 CPDF_ContentMarkItem(const CPDF_ContentMarkItem& src);
341 typedef enum { 274
342 None, 275 ~CPDF_ContentMarkItem();
343 PropertiesDict, 276
344 DirectDict, 277 inline const CFX_ByteString& GetName() const { return m_MarkName; }
345 MCID 278
346 } ParamType; 279 inline ParamType GetParamType() const { return m_ParamType; }
347 280
348 CPDF_ContentMarkItem(); 281 inline void* GetParam() const { return m_pParam; }
349 282
350 CPDF_ContentMarkItem(const CPDF_ContentMarkItem& src); 283 inline FX_BOOL HasMCID() const;
351 284
352 ~CPDF_ContentMarkItem(); 285 inline void SetName(const CFX_ByteString& name) { m_MarkName = name; }
353 286
354 inline const CFX_ByteString&» GetName() const 287 inline void SetParam(ParamType type, void* param) {
355 { 288 m_ParamType = type;
356 return m_MarkName; 289 m_pParam = param;
357 } 290 }
358 291
359 inline ParamType» GetParamType() const 292 private:
360 { 293 CFX_ByteString m_MarkName;
361 return m_ParamType; 294
362 } 295 ParamType m_ParamType;
363 296
364 inline void*» » GetParam() const 297 void* m_pParam;
365 { 298 };
366 return m_pParam; 299 class CPDF_ContentMarkData : public CFX_Object {
367 } 300 public:
368 301 CPDF_ContentMarkData() {}
369 inline FX_BOOL» » HasMCID() const; 302
370 303 CPDF_ContentMarkData(const CPDF_ContentMarkData& src);
371 inline void»» » SetName(const CFX_ByteString& name) 304
372 { 305 inline int CountItems() const { return m_Marks.GetSize(); }
373 m_MarkName = name; 306
374 } 307 inline CPDF_ContentMarkItem& GetItem(int index) const {
375 308 return m_Marks[index];
376 inline void»» » SetParam(ParamType type, void* param) 309 }
377 { 310
378 m_ParamType = type; 311 int GetMCID() const;
379 m_pParam = param; 312
380 } 313 void AddMark(const CFX_ByteString& name,
381 private: 314 CPDF_Dictionary* pDict,
382 315 FX_BOOL bDictNeedClone);
383 CFX_ByteString» » m_MarkName; 316
384 317 void DeleteLastMark();
385 ParamType» » » m_ParamType; 318
386 319 private:
387 void*» » » » m_pParam; 320 CFX_ObjectArray<CPDF_ContentMarkItem> m_Marks;
388 }; 321 };
389 class CPDF_ContentMarkData : public CFX_Object 322 class CPDF_ContentMark : public CFX_CountRef<CPDF_ContentMarkData> {
390 { 323 public:
391 public: 324 int GetMCID() const { return m_pObject ? m_pObject->GetMCID() : -1; }
392 325
393 CPDF_ContentMarkData() { } 326 FX_BOOL HasMark(FX_BSTR mark) const;
394 327
395 CPDF_ContentMarkData(const CPDF_ContentMarkData& src); 328 FX_BOOL LookupMark(FX_BSTR mark, CPDF_Dictionary*& pDict) const;
396 329 };
397 inline int» » » CountItems() const 330 #define PDFPAGE_TEXT 1
398 { 331 #define PDFPAGE_PATH 2
399 return m_Marks.GetSize(); 332 #define PDFPAGE_IMAGE 3
400 } 333 #define PDFPAGE_SHADING 4
401 334 #define PDFPAGE_FORM 5
402 inline CPDF_ContentMarkItem&» GetItem(int index) const 335 #define PDFPAGE_INLINES 6
403 { 336 class CPDF_GraphicStates : public CFX_Object {
404 return m_Marks[index]; 337 public:
405 } 338 void CopyStates(const CPDF_GraphicStates& src);
406 339
407 int»» » » » GetMCID() const; 340 void DefaultStates();
408 341
409 void» » » » AddMark(const CFX_ByteString& name, CPDF _Dictionary* pDict, FX_BOOL bDictNeedClone); 342 CPDF_ClipPath m_ClipPath;
410 343
411 void» » » » DeleteLastMark(); 344 CPDF_GraphState m_GraphState;
412 private: 345
413 346 CPDF_ColorState m_ColorState;
414 CFX_ObjectArray<CPDF_ContentMarkItem>» m_Marks; 347
415 }; 348 CPDF_TextState m_TextState;
416 class CPDF_ContentMark : public CFX_CountRef<CPDF_ContentMarkData> 349
417 { 350 CPDF_GeneralState m_GeneralState;
418 public: 351 };
419 352 class CPDF_PageObject : public CPDF_GraphicStates {
420 int»» » » » GetMCID() const 353 public:
421 { 354 static CPDF_PageObject* Create(int type);
422 return m_pObject ? m_pObject->GetMCID() : -1; 355
423 } 356 void Release();
424 357
425 FX_BOOL» » » » HasMark(FX_BSTR mark) const; 358 CPDF_PageObject* Clone() const;
426 359
427 FX_BOOL» » » » LookupMark(FX_BSTR mark, CPDF_Dictionary *& pDict) const; 360 void Copy(const CPDF_PageObject* pSrcObject);
428 }; 361
429 #define PDFPAGE_TEXT» » 1 362 virtual void Transform(const CFX_AffineMatrix& matrix) = 0;
430 #define PDFPAGE_PATH» » 2 363
431 #define PDFPAGE_IMAGE» » 3 364 void RemoveClipPath();
432 #define PDFPAGE_SHADING»» 4 365
433 #define PDFPAGE_FORM» » 5 366 void AppendClipPath(CPDF_Path path, int type, FX_BOOL bAutoMerge);
434 #define PDFPAGE_INLINES»» 6 367
435 class CPDF_GraphicStates : public CFX_Object 368 void CopyClipPath(CPDF_PageObject* pObj);
436 { 369
437 public: 370 void TransformClipPath(CFX_AffineMatrix& matrix);
438 371
439 void» » » » CopyStates(const CPDF_GraphicStates& src ); 372 void TransformGeneralState(CFX_AffineMatrix& matrix);
440 373
441 void» » » » DefaultStates(); 374 void SetColorState(CPDF_ColorState state) { m_ColorState = state; }
442 375
443 CPDF_ClipPath» » m_ClipPath; 376 FX_RECT GetBBox(const CFX_AffineMatrix* pMatrix) const;
444 377
445 CPDF_GraphState» » m_GraphState; 378 int m_Type;
446 379
447 CPDF_ColorState» » m_ColorState; 380 FX_FLOAT m_Left;
448 381
449 CPDF_TextState» » m_TextState; 382 FX_FLOAT m_Right;
450 383
451 CPDF_GeneralState» m_GeneralState; 384 FX_FLOAT m_Top;
452 }; 385
453 class CPDF_PageObject : public CPDF_GraphicStates 386 FX_FLOAT m_Bottom;
454 { 387
455 public: 388 CPDF_ContentMark m_ContentMark;
456 389
457 static CPDF_PageObject* Create(int type); 390 protected:
458 391 virtual void CopyData(const CPDF_PageObject* pSrcObject) {}
459 void» » » » Release(); 392
460 393 void RecalcBBox();
461 CPDF_PageObject*» Clone() const; 394
462 395 CPDF_PageObject() {}
463 void» » » » Copy(const CPDF_PageObject* pSrcObject); 396
464 397 virtual ~CPDF_PageObject() {}
465 virtual void» » Transform(const CFX_AffineMatrix& matrix) = 0;
466
467
468
469 void» » » » RemoveClipPath();
470
471 void» » » » AppendClipPath(CPDF_Path path, int type, FX_BOOL bAutoMerge);
472
473 void» » » » CopyClipPath(CPDF_PageObject* pObj);
474
475 void» » » » TransformClipPath(CFX_AffineMatrix& matr ix);
476
477 void» » » » TransformGeneralState(CFX_AffineMatrix& matrix);
478
479
480 void» » » » SetColorState(CPDF_ColorState state)
481 {
482 m_ColorState = state;
483 }
484
485 FX_RECT» » » » GetBBox(const CFX_AffineMatrix* pMatrix) const;
486
487 int»» » » » m_Type;
488
489 FX_FLOAT» » » m_Left;
490
491 FX_FLOAT» » » m_Right;
492
493 FX_FLOAT» » » m_Top;
494
495 FX_FLOAT» » » m_Bottom;
496
497 CPDF_ContentMark» m_ContentMark;
498 protected:
499
500 virtual void» » CopyData(const CPDF_PageObject* pSrcObject) {}
501
502 void» » » » RecalcBBox();
503
504 CPDF_PageObject() {}
505
506 virtual ~CPDF_PageObject() {}
507 }; 398 };
508 struct CPDF_TextObjectItem : public CFX_Object { 399 struct CPDF_TextObjectItem : public CFX_Object {
509 400 FX_DWORD m_CharCode;
510 FX_DWORD» » » m_CharCode; 401
511 402 FX_FLOAT m_OriginX;
512 FX_FLOAT» » » m_OriginX; 403
513 404 FX_FLOAT m_OriginY;
514 FX_FLOAT» » » m_OriginY; 405 };
515 }; 406 class CPDF_TextObject : public CPDF_PageObject {
516 class CPDF_TextObject : public CPDF_PageObject 407 public:
517 { 408 CPDF_TextObject();
518 public: 409
519 410 virtual ~CPDF_TextObject();
520 CPDF_TextObject(); 411
521 412 int CountItems() const { return m_nChars; }
522 virtual ~CPDF_TextObject(); 413
523 414 void GetItemInfo(int index, CPDF_TextObjectItem* pInfo) const;
524 int»» » » » CountItems() const 415
525 { 416 int CountChars() const;
526 return m_nChars; 417
527 } 418 void GetCharInfo(int index, FX_DWORD& charcode, FX_FLOAT& kerning) const;
528 419 void GetCharInfo(int index, CPDF_TextObjectItem* pInfo) const;
529 void» » » » GetItemInfo(int index, CPDF_TextObjectIt em* pInfo) const; 420
530 421 void GetCharRect(int index, CFX_FloatRect& rect) const;
531 int»» » » » CountChars() const; 422
532 423 FX_FLOAT GetCharWidth(FX_DWORD charcode) const;
533 void» » » » GetCharInfo(int index, FX_DWORD& charcod e, FX_FLOAT& kerning) const; 424 FX_FLOAT GetSpaceCharWidth() const;
534 void» » » » GetCharInfo(int index, CPDF_TextObjectIt em* pInfo) const; 425
535 426 FX_FLOAT GetPosX() const { return m_PosX; }
536 void» » » » GetCharRect(int index, CFX_FloatRect& re ct) const; 427
537 428 FX_FLOAT GetPosY() const { return m_PosY; }
538 429
539 FX_FLOAT» » » GetCharWidth(FX_DWORD charcode) const; 430 void GetTextMatrix(CFX_AffineMatrix* pMatrix) const;
540 FX_FLOAT» » » GetSpaceCharWidth() const; 431
541 432 CPDF_Font* GetFont() const { return m_TextState.GetFont(); }
542 FX_FLOAT» » » GetPosX() const 433
543 { 434 FX_FLOAT GetFontSize() const { return m_TextState.GetFontSize(); }
544 return m_PosX; 435
545 } 436 void SetEmpty();
546 437
547 FX_FLOAT» » » GetPosY() const 438 void SetText(const CFX_ByteString& text);
548 { 439
549 return m_PosY; 440 void SetText(CFX_ByteString* pStrs, FX_FLOAT* pKerning, int nSegs);
550 } 441
551 442 void SetText(int nChars, FX_DWORD* pCharCodes, FX_FLOAT* pKernings);
552 void» » » » GetTextMatrix(CFX_AffineMatrix* pMatrix) const; 443
553 444 void SetPosition(FX_FLOAT x, FX_FLOAT y);
554 CPDF_Font*» » » GetFont() const 445
555 { 446 void SetTextState(CPDF_TextState TextState);
556 return m_TextState.GetFont(); 447 virtual void Transform(const CFX_AffineMatrix& matrix);
557 } 448
558 449 void CalcCharPos(FX_FLOAT* pPosArray) const;
559 FX_FLOAT» » » GetFontSize() const 450
560 { 451 void SetData(int nChars,
561 return m_TextState.GetFontSize(); 452 FX_DWORD* pCharCodes,
562 } 453 FX_FLOAT* pCharPos,
563 454 FX_FLOAT x,
564 void» » » » SetEmpty(); 455 FX_FLOAT y);
565 456
566 void» » » » SetText(const CFX_ByteString& text); 457 void GetData(int& nChars, FX_DWORD*& pCharCodes, FX_FLOAT*& pCharPos) {
567 458 nChars = m_nChars;
568 void» » » » SetText(CFX_ByteString* pStrs, FX_FLOAT* pKerning, int nSegs); 459 pCharCodes = m_pCharCodes;
569 460 pCharPos = m_pCharPos;
570 void» » » » SetText(int nChars, FX_DWORD* pCharCodes , FX_FLOAT* pKernings); 461 }
571 462
572 void» » » » SetPosition(FX_FLOAT x, FX_FLOAT y); 463 void RecalcPositionData() { CalcPositionData(NULL, NULL, 1); }
573 464
574 void» » » » SetTextState(CPDF_TextState TextState); 465 protected:
575 virtual void» » Transform(const CFX_AffineMatrix& matrix); 466 virtual void CopyData(const CPDF_PageObject* pSrcObject);
576 467
577 void» » » » CalcCharPos(FX_FLOAT* pPosArray) const; 468 FX_FLOAT m_PosX;
578 469
579 470 FX_FLOAT m_PosY;
580 471
581 void» » » » SetData(int nChars, FX_DWORD* pCharCodes , FX_FLOAT* pCharPos, FX_FLOAT x, FX_FLOAT y); 472 int m_nChars;
582 473
583 void» » » » GetData(int& nChars, FX_DWORD*& pCharCod es, FX_FLOAT*& pCharPos) 474 FX_DWORD* m_pCharCodes;
584 { 475
585 nChars = m_nChars; 476 FX_FLOAT* m_pCharPos;
586 pCharCodes = m_pCharCodes; 477
587 pCharPos = m_pCharPos; 478 void SetSegments(const CFX_ByteString* pStrs, FX_FLOAT* pKerning, int nSegs);
588 } 479
589 480 void CalcPositionData(FX_FLOAT* pTextAdvanceX,
590 481 FX_FLOAT* pTextAdvanceY,
591 void» » » » RecalcPositionData() 482 FX_FLOAT horz_scale,
592 { 483 int level = 0);
593 CalcPositionData(NULL, NULL, 1); 484 friend class CPDF_StreamContentParser;
594 } 485 friend class CPDF_RenderStatus;
595 protected: 486 friend class CPDF_QuickDrawer;
596 virtual void» » CopyData(const CPDF_PageObject* pSrcObject); 487 friend class CPDF_TextRenderer;
597 488 friend class CTextPage;
598 FX_FLOAT» » » m_PosX; 489 friend class CPDF_ContentGenerator;
599 490 };
600 FX_FLOAT» » » m_PosY; 491 class CPDF_PathObject : public CPDF_PageObject {
601 492 public:
602 int»» » » » m_nChars; 493 CPDF_PathObject() { m_Type = PDFPAGE_PATH; }
603 494
604 FX_DWORD*» » » m_pCharCodes; 495 virtual ~CPDF_PathObject() {}
605 496 virtual void Transform(const CFX_AffineMatrix& maxtrix);
606 FX_FLOAT*» » m_pCharPos; 497
607 498 void SetGraphState(CPDF_GraphState GraphState);
608 void» » » » SetSegments(const CFX_ByteString* pStrs, FX_FLOAT* pKerning, int nSegs); 499
609 500 CPDF_Path m_Path;
610 void» » » » CalcPositionData(FX_FLOAT* pTextAdvanceX , FX_FLOAT* pTextAdvanceY, FX_FLOAT horz_scale, int level = 0); 501
611 friend class» » CPDF_StreamContentParser; 502 int m_FillType;
612 friend class» » CPDF_RenderStatus; 503
613 friend class» » CPDF_QuickDrawer; 504 FX_BOOL m_bStroke;
614 friend class» » CPDF_TextRenderer; 505
615 friend class» » CTextPage; 506 CFX_AffineMatrix m_Matrix;
616 friend class» » CPDF_ContentGenerator; 507
617 }; 508 void CalcBoundingBox();
618 class CPDF_PathObject : public CPDF_PageObject 509
619 { 510 protected:
620 public: 511 virtual void CopyData(const CPDF_PageObject* pSrcObjet);
621 512 };
622 CPDF_PathObject() 513 class CPDF_ImageObject : public CPDF_PageObject {
623 { 514 public:
624 m_Type = PDFPAGE_PATH; 515 CPDF_ImageObject();
625 } 516
626 517 virtual ~CPDF_ImageObject();
627 virtual ~CPDF_PathObject() {} 518 virtual void Transform(const CFX_AffineMatrix& matrix);
628 virtual void» » Transform(const CFX_AffineMatrix& maxtrix); 519
629 520 CPDF_Image* m_pImage;
630 void» » » » SetGraphState(CPDF_GraphState GraphState ); 521
631 522 CFX_AffineMatrix m_Matrix;
632 CPDF_Path» » » m_Path; 523
633 524 void CalcBoundingBox();
634 int»» » » » m_FillType; 525
635 526 private:
636 FX_BOOL» » » » m_bStroke; 527 virtual void CopyData(const CPDF_PageObject* pSrcObjet);
637 528 };
638 CFX_AffineMatrix» m_Matrix; 529 class CPDF_ShadingObject : public CPDF_PageObject {
639 530 public:
640 531 CPDF_ShadingObject();
641 void» » » » CalcBoundingBox(); 532
642 protected: 533 virtual ~CPDF_ShadingObject();
643 virtual void» » CopyData(const CPDF_PageObject* pSrcObjet); 534
644 }; 535 CPDF_ShadingPattern* m_pShading;
645 class CPDF_ImageObject : public CPDF_PageObject 536
646 { 537 CFX_AffineMatrix m_Matrix;
647 public: 538
648 539 CPDF_Page* m_pPage;
649 CPDF_ImageObject(); 540 virtual void Transform(const CFX_AffineMatrix& matrix);
650 541
651 virtual ~CPDF_ImageObject(); 542 void CalcBoundingBox();
652 virtual void» » Transform(const CFX_AffineMatrix& matrix); 543
653 544 protected:
654 CPDF_Image*»» » m_pImage; 545 virtual void CopyData(const CPDF_PageObject* pSrcObjet);
655 546 };
656 CFX_AffineMatrix» m_Matrix; 547 class CPDF_FormObject : public CPDF_PageObject {
657 548 public:
658 void» » » » CalcBoundingBox(); 549 CPDF_FormObject() {
659 private: 550 m_Type = PDFPAGE_FORM;
660 virtual void» » CopyData(const CPDF_PageObject* pSrcObjet); 551 m_pForm = NULL;
661 }; 552 }
662 class CPDF_ShadingObject : public CPDF_PageObject 553
663 { 554 virtual ~CPDF_FormObject();
664 public: 555 virtual void Transform(const CFX_AffineMatrix& matrix);
665 556
666 CPDF_ShadingObject(); 557 CPDF_Form* m_pForm;
667 558
668 virtual ~CPDF_ShadingObject(); 559 CFX_AffineMatrix m_FormMatrix;
669 560
670 CPDF_ShadingPattern*» m_pShading; 561 void CalcBoundingBox();
671 562
672 CFX_AffineMatrix» m_Matrix; 563 protected:
673 564 virtual void CopyData(const CPDF_PageObject* pSrcObjet);
674 CPDF_Page*» » » m_pPage; 565 };
675 virtual void» » Transform(const CFX_AffineMatrix& matrix); 566 class CPDF_InlineImages : public CPDF_PageObject {
676 567 public:
677 void» » » » CalcBoundingBox(); 568 CPDF_InlineImages();
678 protected: 569
679 virtual void» » CopyData(const CPDF_PageObject* pSrcObjet); 570 virtual ~CPDF_InlineImages();
680 }; 571
681 class CPDF_FormObject : public CPDF_PageObject 572 CPDF_Stream* m_pStream;
682 { 573
683 public: 574 CFX_DIBitmap* m_pBitmap;
684 575
685 CPDF_FormObject() 576 CFX_ArrayTemplate<CFX_AffineMatrix> m_Matrices;
686 { 577
687 m_Type = PDFPAGE_FORM; 578 void AddMatrix(CFX_AffineMatrix& matrix);
688 m_pForm = NULL; 579
689 } 580 protected:
690 581 virtual void Transform(const CFX_AffineMatrix& matrix) {}
691 virtual ~CPDF_FormObject(); 582 virtual void CopyData(const CPDF_PageObject* pSrcObjet) {}
692 virtual void» » Transform(const CFX_AffineMatrix& matrix);
693
694 CPDF_Form*» » » m_pForm;
695
696 CFX_AffineMatrix» m_FormMatrix;
697
698 void» » » » CalcBoundingBox();
699 protected:
700 virtual void» » CopyData(const CPDF_PageObject* pSrcObjet);
701 };
702 class CPDF_InlineImages : public CPDF_PageObject
703 {
704 public:
705
706 CPDF_InlineImages();
707
708 virtual ~CPDF_InlineImages();
709
710 CPDF_Stream*» » m_pStream;
711
712 CFX_DIBitmap*» » m_pBitmap;
713
714 CFX_ArrayTemplate<CFX_AffineMatrix>»m_Matrices;
715
716 void» » » » AddMatrix(CFX_AffineMatrix& matrix);
717 protected:
718 virtual void» » Transform(const CFX_AffineMatrix& matrix) {}
719 virtual void» » CopyData(const CPDF_PageObject* pSrcObjet) {}
720 }; 583 };
721 #endif 584 #endif
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698