Branch data Line data Source code
1 : : /* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */
2 : : /*************************************************************************
3 : : *
4 : : * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
5 : : *
6 : : * Copyright 2000, 2010 Oracle and/or its affiliates.
7 : : *
8 : : * OpenOffice.org - a multi-platform office productivity suite
9 : : *
10 : : * This file is part of OpenOffice.org.
11 : : *
12 : : * OpenOffice.org is free software: you can redistribute it and/or modify
13 : : * it under the terms of the GNU Lesser General Public License version 3
14 : : * only, as published by the Free Software Foundation.
15 : : *
16 : : * OpenOffice.org is distributed in the hope that it will be useful,
17 : : * but WITHOUT ANY WARRANTY; without even the implied warranty of
18 : : * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
19 : : * GNU Lesser General Public License version 3 for more details
20 : : * (a copy is included in the LICENSE file that accompanied this code).
21 : : *
22 : : * You should have received a copy of the GNU Lesser General Public License
23 : : * version 3 along with OpenOffice.org. If not, see
24 : : * <http://www.openoffice.org/license.html>
25 : : * for a copy of the LGPLv3 License.
26 : : *
27 : : ************************************************************************/
28 : :
29 : : #ifndef _SV_METAACT_HXX
30 : : #define _SV_METAACT_HXX
31 : :
32 : : #include <vcl/dllapi.h>
33 : : #include <vcl/gradient.hxx>
34 : : #include <vcl/hatch.hxx>
35 : : #include <vcl/wall.hxx>
36 : : #include <vcl/font.hxx>
37 : : #include <tools/poly.hxx>
38 : : #include <vcl/bitmap.hxx>
39 : : #include <vcl/bitmapex.hxx>
40 : : #include <vcl/region.hxx>
41 : : #include <vcl/graph.hxx>
42 : : #include <vcl/outdev.hxx>
43 : : #include <vcl/gdimtf.hxx>
44 : : #include <vcl/gfxlink.hxx>
45 : : #include <vcl/lineinfo.hxx>
46 : : #include <vcl/rendergraphic.hxx>
47 : :
48 : : class SvStream;
49 : :
50 : : // -----------
51 : : // - Defines -
52 : : // -----------
53 : :
54 : : #define META_NULL_ACTION (0)
55 : : #define META_PIXEL_ACTION (100)
56 : : #define META_POINT_ACTION (101)
57 : : #define META_LINE_ACTION (102)
58 : : #define META_RECT_ACTION (103)
59 : : #define META_ROUNDRECT_ACTION (104)
60 : : #define META_ELLIPSE_ACTION (105)
61 : : #define META_ARC_ACTION (106)
62 : : #define META_PIE_ACTION (107)
63 : : #define META_CHORD_ACTION (108)
64 : : #define META_POLYLINE_ACTION (109)
65 : : #define META_POLYGON_ACTION (110)
66 : : #define META_POLYPOLYGON_ACTION (111)
67 : : #define META_TEXT_ACTION (112)
68 : : #define META_TEXTARRAY_ACTION (113)
69 : : #define META_STRETCHTEXT_ACTION (114)
70 : : #define META_TEXTRECT_ACTION (115)
71 : : #define META_BMP_ACTION (116)
72 : : #define META_BMPSCALE_ACTION (117)
73 : : #define META_BMPSCALEPART_ACTION (118)
74 : : #define META_BMPEX_ACTION (119)
75 : : #define META_BMPEXSCALE_ACTION (120)
76 : : #define META_BMPEXSCALEPART_ACTION (121)
77 : : #define META_MASK_ACTION (122)
78 : : #define META_MASKSCALE_ACTION (123)
79 : : #define META_MASKSCALEPART_ACTION (124)
80 : : #define META_GRADIENT_ACTION (125)
81 : : #define META_HATCH_ACTION (126)
82 : : #define META_WALLPAPER_ACTION (127)
83 : : #define META_CLIPREGION_ACTION (128)
84 : : #define META_ISECTRECTCLIPREGION_ACTION (129)
85 : : #define META_ISECTREGIONCLIPREGION_ACTION (130)
86 : : #define META_MOVECLIPREGION_ACTION (131)
87 : : #define META_LINECOLOR_ACTION (132)
88 : : #define META_FILLCOLOR_ACTION (133)
89 : : #define META_TEXTCOLOR_ACTION (134)
90 : : #define META_TEXTFILLCOLOR_ACTION (135)
91 : : #define META_TEXTALIGN_ACTION (136)
92 : : #define META_MAPMODE_ACTION (137)
93 : : #define META_FONT_ACTION (138)
94 : : #define META_PUSH_ACTION (139)
95 : : #define META_POP_ACTION (140)
96 : : #define META_RASTEROP_ACTION (141)
97 : : #define META_TRANSPARENT_ACTION (142)
98 : : #define META_EPS_ACTION (143)
99 : : #define META_REFPOINT_ACTION (144)
100 : : #define META_TEXTLINECOLOR_ACTION (145)
101 : : #define META_TEXTLINE_ACTION (146)
102 : : #define META_FLOATTRANSPARENT_ACTION (147)
103 : : #define META_GRADIENTEX_ACTION (148)
104 : : #define META_LAYOUTMODE_ACTION (149)
105 : : #define META_TEXTLANGUAGE_ACTION (150)
106 : : #define META_OVERLINECOLOR_ACTION (151)
107 : : #define META_RENDERGRAPHIC_ACTION (152)
108 : :
109 : : #define META_COMMENT_ACTION (512)
110 : :
111 : : // ------------------------------------------------------------------------
112 : :
113 : : struct ImplMetaReadData
114 : : {
115 : : rtl_TextEncoding meActualCharSet;
116 : :
117 : 6905 : ImplMetaReadData() :
118 : 6905 : meActualCharSet( RTL_TEXTENCODING_ASCII_US )
119 : : {
120 : 6905 : }
121 : : };
122 : :
123 : : // ------------------------------------------------------------------------
124 : :
125 : : struct ImplMetaWriteData
126 : : {
127 : : rtl_TextEncoding meActualCharSet;
128 : : GDIMetaFileWriteFlags mnWriteFlags;
129 : :
130 : 7544 : ImplMetaWriteData() :
131 : : meActualCharSet( RTL_TEXTENCODING_ASCII_US ),
132 : 7544 : mnWriteFlags( GDIMETAFILE_WRITE_DEFAULT )
133 : : {
134 : 7544 : }
135 : : };
136 : :
137 : : // ------------------------------------------------------------------------
138 : :
139 : : #define DECL_META_ACTION( Name, nType ) \
140 : : Meta##Name##Action(); \
141 : : protected: \
142 : : virtual ~Meta##Name##Action(); \
143 : : public: \
144 : : virtual void Execute( OutputDevice* pOut ); \
145 : : virtual MetaAction* Clone(); \
146 : : virtual void Write( SvStream& rOStm, ImplMetaWriteData* pData ); \
147 : : virtual void Read( SvStream& rIStm, ImplMetaReadData* pData );
148 : :
149 : : #define IMPL_META_ACTION( Name, nType ) \
150 : : Meta##Name##Action::Meta##Name##Action() : \
151 : : MetaAction( nType ) {} \
152 : : Meta##Name##Action::~Meta##Name##Action() {}
153 : :
154 : : // --------------
155 : : // - MetaAction -
156 : : // --------------
157 : :
158 : 0 : class VCL_DLLPUBLIC MetaAction
159 : : {
160 : : private:
161 : : sal_uLong mnRefCount;
162 : : sal_uInt16 mnType;
163 : :
164 : : virtual sal_Bool Compare( const MetaAction& ) const;
165 : :
166 : : protected:
167 : : virtual ~MetaAction();
168 : :
169 : : public:
170 : : MetaAction();
171 : : MetaAction( sal_uInt16 nType );
172 : :
173 : : virtual void Execute( OutputDevice* pOut );
174 : :
175 : : virtual MetaAction* Clone();
176 : :
177 : : virtual void Move( long nHorzMove, long nVertMove );
178 : : virtual void Scale( double fScaleX, double fScaleY );
179 : :
180 : : virtual void Write( SvStream& rOStm, ImplMetaWriteData* pData );
181 : : virtual void Read( SvStream& rIStm, ImplMetaReadData* pData );
182 : :
183 : 1447347 : sal_uInt16 GetType() const { return mnType; }
184 : 9 : sal_uLong GetRefCount() const { return mnRefCount; }
185 : 0 : void ResetRefCount() { mnRefCount = 1; }
186 : 1814287 : void Duplicate() { mnRefCount++; }
187 [ + + ][ + - ]: 3446800 : void Delete() { if ( 0 == --mnRefCount ) delete this; }
188 : :
189 : : public:
190 : : static MetaAction* ReadMetaAction( SvStream& rIStm, ImplMetaReadData* pData );
191 : : };
192 : :
193 : : // -------------------
194 : : // - MetaPixelAction -
195 : : // -------------------
196 : :
197 : 0 : class VCL_DLLPUBLIC MetaPixelAction : public MetaAction
198 : : {
199 : : private:
200 : : Point maPt;
201 : : Color maColor;
202 : :
203 : : virtual sal_Bool Compare( const MetaAction& ) const;
204 : :
205 : : public:
206 : : DECL_META_ACTION( Pixel, META_PIXEL_ACTION )
207 : :
208 : : MetaPixelAction( const Point& rPt, const Color& rColor );
209 : :
210 : : virtual void Move( long nHorzMove, long nVertMove );
211 : : virtual void Scale( double fScaleX, double fScaleY );
212 : :
213 : 0 : const Point& GetPoint() const { return maPt; }
214 : 0 : const Color& GetColor() const { return maColor; }
215 : : };
216 : :
217 : : // -------------------
218 : : // - MetaPointAction -
219 : : // -------------------
220 : :
221 : 0 : class VCL_DLLPUBLIC MetaPointAction : public MetaAction
222 : : {
223 : : private:
224 : : Point maPt;
225 : :
226 : : virtual sal_Bool Compare( const MetaAction& ) const;
227 : :
228 : : public:
229 : : DECL_META_ACTION( Point, META_POINT_ACTION )
230 : :
231 : : MetaPointAction( const Point& rPt );
232 : :
233 : : virtual void Move( long nHorzMove, long nVertMove );
234 : : virtual void Scale( double fScaleX, double fScaleY );
235 : :
236 : 0 : const Point& GetPoint() const { return maPt; }
237 : : };
238 : :
239 : : // ------------------
240 : : // - MetaLineAction -
241 : : // ------------------
242 : :
243 [ # # ]: 0 : class VCL_DLLPUBLIC MetaLineAction : public MetaAction
244 : : {
245 : : private:
246 : :
247 : : LineInfo maLineInfo;
248 : : Point maStartPt;
249 : : Point maEndPt;
250 : :
251 : : virtual sal_Bool Compare( const MetaAction& ) const;
252 : :
253 : : public:
254 : : DECL_META_ACTION( Line, META_LINE_ACTION )
255 : :
256 : : MetaLineAction( const Point& rStart, const Point& rEnd );
257 : : MetaLineAction( const Point& rStart, const Point& rEnd,
258 : : const LineInfo& rLineInfo );
259 : :
260 : : virtual void Move( long nHorzMove, long nVertMove );
261 : : virtual void Scale( double fScaleX, double fScaleY );
262 : :
263 : 0 : const Point& GetStartPoint() const { return maStartPt; }
264 : 0 : const Point& GetEndPoint() const { return maEndPt; }
265 : 0 : const LineInfo& GetLineInfo() const { return maLineInfo; }
266 : : };
267 : :
268 : : // ------------------
269 : : // - MetaRectAction -
270 : : // ------------------
271 : :
272 : 0 : class VCL_DLLPUBLIC MetaRectAction : public MetaAction
273 : : {
274 : : private:
275 : :
276 : : Rectangle maRect;
277 : :
278 : : virtual sal_Bool Compare( const MetaAction& ) const;
279 : : public:
280 : : DECL_META_ACTION( Rect, META_RECT_ACTION )
281 : :
282 : : MetaRectAction( const Rectangle& rRect );
283 : :
284 : : virtual void Move( long nHorzMove, long nVertMove );
285 : : virtual void Scale( double fScaleX, double fScaleY );
286 : :
287 : 4475 : const Rectangle& GetRect() const { return maRect; }
288 : : };
289 : :
290 : : // -----------------------
291 : : // - MetaRoundRectAction -
292 : : // -----------------------
293 : :
294 : 0 : class VCL_DLLPUBLIC MetaRoundRectAction : public MetaAction
295 : : {
296 : : private:
297 : :
298 : : Rectangle maRect;
299 : : sal_uInt32 mnHorzRound;
300 : : sal_uInt32 mnVertRound;
301 : :
302 : : virtual sal_Bool Compare( const MetaAction& ) const;
303 : :
304 : : public:
305 : : DECL_META_ACTION( RoundRect, META_ROUNDRECT_ACTION )
306 : :
307 : : MetaRoundRectAction( const Rectangle& rRect,
308 : : sal_uInt32 nHorzRound, sal_uInt32 nVertRound );
309 : :
310 : : virtual void Move( long nHorzMove, long nVertMove );
311 : : virtual void Scale( double fScaleX, double fScaleY );
312 : :
313 : 0 : const Rectangle& GetRect() const { return maRect; }
314 : 0 : sal_uInt32 GetHorzRound() const { return mnHorzRound; }
315 : 0 : sal_uInt32 GetVertRound() const { return mnVertRound; }
316 : : };
317 : :
318 : : // ---------------------
319 : : // - MetaEllipseAction -
320 : : // ---------------------
321 : :
322 : 0 : class VCL_DLLPUBLIC MetaEllipseAction : public MetaAction
323 : : {
324 : : private:
325 : :
326 : : Rectangle maRect;
327 : :
328 : : virtual sal_Bool Compare( const MetaAction& ) const;
329 : :
330 : : public:
331 : : DECL_META_ACTION( Ellipse, META_ELLIPSE_ACTION )
332 : :
333 : : MetaEllipseAction( const Rectangle& rRect );
334 : :
335 : : virtual void Move( long nHorzMove, long nVertMove );
336 : : virtual void Scale( double fScaleX, double fScaleY );
337 : :
338 : 0 : const Rectangle& GetRect() const { return maRect; }
339 : : };
340 : :
341 : : // -----------------
342 : : // - MetaArcAction -
343 : : // -----------------
344 : :
345 : 0 : class VCL_DLLPUBLIC MetaArcAction : public MetaAction
346 : : {
347 : : private:
348 : :
349 : : Rectangle maRect;
350 : : Point maStartPt;
351 : : Point maEndPt;
352 : :
353 : : virtual sal_Bool Compare( const MetaAction& ) const;
354 : :
355 : : public:
356 : : DECL_META_ACTION( Arc, META_ARC_ACTION )
357 : :
358 : : MetaArcAction( const Rectangle& rRect,
359 : : const Point& rStart, const Point& rEnd );
360 : :
361 : : virtual void Move( long nHorzMove, long nVertMove );
362 : : virtual void Scale( double fScaleX, double fScaleY );
363 : :
364 : 0 : const Rectangle& GetRect() const { return maRect; }
365 : 0 : const Point& GetStartPoint() const { return maStartPt; }
366 : 0 : const Point& GetEndPoint() const { return maEndPt; }
367 : : };
368 : :
369 : : // -----------------
370 : : // - MetaPieAction -
371 : : // -----------------
372 : :
373 : 0 : class VCL_DLLPUBLIC MetaPieAction : public MetaAction
374 : : {
375 : : private:
376 : :
377 : : Rectangle maRect;
378 : : Point maStartPt;
379 : : Point maEndPt;
380 : :
381 : : virtual sal_Bool Compare( const MetaAction& ) const;
382 : :
383 : : public:
384 : : DECL_META_ACTION( Pie, META_PIE_ACTION )
385 : :
386 : : MetaPieAction( const Rectangle& rRect,
387 : : const Point& rStart, const Point& rEnd );
388 : :
389 : : virtual void Move( long nHorzMove, long nVertMove );
390 : : virtual void Scale( double fScaleX, double fScaleY );
391 : :
392 : 0 : const Rectangle& GetRect() const { return maRect; }
393 : 0 : const Point& GetStartPoint() const { return maStartPt; }
394 : 0 : const Point& GetEndPoint() const { return maEndPt; }
395 : : };
396 : :
397 : : // -------------------
398 : : // - MetaChordAction -
399 : : // -------------------
400 : :
401 : 0 : class VCL_DLLPUBLIC MetaChordAction : public MetaAction
402 : : {
403 : : private:
404 : :
405 : : Rectangle maRect;
406 : : Point maStartPt;
407 : : Point maEndPt;
408 : :
409 : : virtual sal_Bool Compare( const MetaAction& ) const;
410 : :
411 : : public:
412 : : DECL_META_ACTION( Chord, META_CHORD_ACTION )
413 : :
414 : : MetaChordAction( const Rectangle& rRect,
415 : : const Point& rStart, const Point& rEnd );
416 : :
417 : : virtual void Move( long nHorzMove, long nVertMove );
418 : : virtual void Scale( double fScaleX, double fScaleY );
419 : :
420 : 0 : const Rectangle& GetRect() const { return maRect; }
421 : 0 : const Point& GetStartPoint() const { return maStartPt; }
422 : 0 : const Point& GetEndPoint() const { return maEndPt; }
423 : : };
424 : :
425 : : // ----------------------
426 : : // - MetaPolyLineAction -
427 : : // ----------------------
428 : :
429 [ # # ][ # # ]: 0 : class VCL_DLLPUBLIC MetaPolyLineAction : public MetaAction
430 : : {
431 : : private:
432 : :
433 : : LineInfo maLineInfo;
434 : : Polygon maPoly;
435 : :
436 : : virtual sal_Bool Compare( const MetaAction& ) const;
437 : :
438 : : public:
439 : : DECL_META_ACTION( PolyLine, META_POLYLINE_ACTION )
440 : :
441 : : MetaPolyLineAction( const Polygon& rPoly );
442 : : MetaPolyLineAction( const Polygon& rPoly, const LineInfo& rLineInfo );
443 : :
444 : : virtual void Move( long nHorzMove, long nVertMove );
445 : : virtual void Scale( double fScaleX, double fScaleY );
446 : :
447 : 11199 : const Polygon& GetPolygon() const { return maPoly; }
448 : 3595 : const LineInfo& GetLineInfo() const { return maLineInfo; }
449 : : };
450 : :
451 : : // ---------------------
452 : : // - MetaPolygonAction -
453 : : // ---------------------
454 : :
455 [ # # ]: 0 : class VCL_DLLPUBLIC MetaPolygonAction : public MetaAction
456 : : {
457 : : private:
458 : :
459 : : Polygon maPoly;
460 : :
461 : : virtual sal_Bool Compare( const MetaAction& ) const;
462 : :
463 : : public:
464 : : DECL_META_ACTION( Polygon, META_POLYGON_ACTION )
465 : :
466 : : MetaPolygonAction( const Polygon& rPoly );
467 : :
468 : : virtual void Move( long nHorzMove, long nVertMove );
469 : : virtual void Scale( double fScaleX, double fScaleY );
470 : :
471 : 144 : const Polygon& GetPolygon() const { return maPoly; }
472 : : };
473 : :
474 : : // -------------------------
475 : : // - MetaPolyPolygonAction -
476 : : // -------------------------
477 : :
478 [ # # ]: 0 : class VCL_DLLPUBLIC MetaPolyPolygonAction : public MetaAction
479 : : {
480 : : private:
481 : :
482 : : PolyPolygon maPolyPoly;
483 : :
484 : : virtual sal_Bool Compare( const MetaAction& ) const;
485 : :
486 : : public:
487 : : DECL_META_ACTION( PolyPolygon, META_POLYPOLYGON_ACTION )
488 : :
489 : : MetaPolyPolygonAction( const PolyPolygon& rPolyPoly );
490 : :
491 : : virtual void Move( long nHorzMove, long nVertMove );
492 : : virtual void Scale( double fScaleX, double fScaleY );
493 : :
494 : 2700 : const PolyPolygon& GetPolyPolygon() const { return maPolyPoly; }
495 : : };
496 : :
497 : : // ------------------
498 : : // - MetaTextAction -
499 : : // ------------------
500 : :
501 : 0 : class VCL_DLLPUBLIC MetaTextAction : public MetaAction
502 : : {
503 : : private:
504 : :
505 : : Point maPt;
506 : : rtl::OUString maStr;
507 : : sal_uInt16 mnIndex;
508 : : sal_uInt16 mnLen;
509 : :
510 : : virtual sal_Bool Compare( const MetaAction& ) const;
511 : :
512 : : public:
513 : : DECL_META_ACTION( Text, META_TEXT_ACTION )
514 : :
515 : : MetaTextAction( const Point& rPt, const rtl::OUString& rStr,
516 : : sal_uInt16 nIndex, sal_uInt16 nLen );
517 : :
518 : : virtual void Move( long nHorzMove, long nVertMove );
519 : : virtual void Scale( double fScaleX, double fScaleY );
520 : :
521 : 0 : const Point& GetPoint() const { return maPt; }
522 : 0 : const rtl::OUString& GetText() const { return maStr; }
523 : 0 : sal_uInt16 GetIndex() const { return mnIndex; }
524 : 0 : sal_uInt16 GetLen() const { return mnLen; }
525 : : };
526 : :
527 : : // -----------------------
528 : : // - MetaTextArrayAction -
529 : : // -----------------------
530 : :
531 : : class VCL_DLLPUBLIC MetaTextArrayAction : public MetaAction
532 : : {
533 : : private:
534 : :
535 : : Point maStartPt;
536 : : rtl::OUString maStr;
537 : : sal_Int32* mpDXAry;
538 : : sal_uInt16 mnIndex;
539 : : sal_uInt16 mnLen;
540 : :
541 : : virtual sal_Bool Compare( const MetaAction& ) const;
542 : :
543 : : protected:
544 : : virtual ~MetaTextArrayAction();
545 : :
546 : : public:
547 : : MetaTextArrayAction();
548 : : MetaTextArrayAction( const MetaTextArrayAction& rAction );
549 : : MetaTextArrayAction( const Point& rStartPt, const rtl::OUString& rStr,
550 : : const sal_Int32* pDXAry, sal_uInt16 nIndex,
551 : : sal_uInt16 nLen );
552 : :
553 : : virtual void Execute( OutputDevice* pOut );
554 : :
555 : : virtual MetaAction* Clone();
556 : :
557 : : virtual void Move( long nHorzMove, long nVertMove );
558 : : virtual void Scale( double fScaleX, double fScaleY );
559 : :
560 : : virtual void Write( SvStream& rOStm, ImplMetaWriteData* pData );
561 : : virtual void Read( SvStream& rIStm, ImplMetaReadData* pData );
562 : :
563 : 5984 : const Point& GetPoint() const { return maStartPt; }
564 : 12195 : const rtl::OUString& GetText() const { return maStr; }
565 : 8976 : sal_uInt16 GetIndex() const { return mnIndex; }
566 : 9203 : sal_uInt16 GetLen() const { return mnLen; }
567 : 9203 : sal_Int32* GetDXArray() const { return mpDXAry; }
568 : : };
569 : :
570 : : // -------------------------
571 : : // - MetaStretchTextAction -
572 : : // -------------------------
573 : :
574 : 0 : class VCL_DLLPUBLIC MetaStretchTextAction : public MetaAction
575 : : {
576 : : private:
577 : :
578 : : Point maPt;
579 : : rtl::OUString maStr;
580 : : sal_uInt32 mnWidth;
581 : : sal_uInt16 mnIndex;
582 : : sal_uInt16 mnLen;
583 : :
584 : : virtual sal_Bool Compare( const MetaAction& ) const;
585 : :
586 : : public:
587 : : DECL_META_ACTION( StretchText, META_STRETCHTEXT_ACTION )
588 : :
589 : : MetaStretchTextAction( const Point& rPt, sal_uInt32 nWidth,
590 : : const rtl::OUString& rStr,
591 : : sal_uInt16 nIndex, sal_uInt16 nLen );
592 : :
593 : : virtual void Move( long nHorzMove, long nVertMove );
594 : : virtual void Scale( double fScaleX, double fScaleY );
595 : :
596 : 2622 : const Point& GetPoint() const { return maPt; }
597 : 1986 : const rtl::OUString& GetText() const { return maStr; }
598 : 1185 : sal_uInt32 GetWidth() const { return mnWidth; }
599 : 1986 : sal_uInt16 GetIndex() const { return mnIndex; }
600 : 1986 : sal_uInt16 GetLen() const { return mnLen; }
601 : : };
602 : :
603 : : // ----------------------
604 : : // - MetaTextRectAction -
605 : : // ----------------------
606 : :
607 : 0 : class VCL_DLLPUBLIC MetaTextRectAction : public MetaAction
608 : : {
609 : : private:
610 : :
611 : : Rectangle maRect;
612 : : rtl::OUString maStr;
613 : : sal_uInt16 mnStyle;
614 : :
615 : : virtual sal_Bool Compare( const MetaAction& ) const;
616 : :
617 : : public:
618 : : DECL_META_ACTION( TextRect, META_TEXTRECT_ACTION )
619 : :
620 : : MetaTextRectAction( const Rectangle& rRect,
621 : : const rtl::OUString& rStr, sal_uInt16 nStyle );
622 : :
623 : : virtual void Move( long nHorzMove, long nVertMove );
624 : : virtual void Scale( double fScaleX, double fScaleY );
625 : :
626 : 0 : const Rectangle& GetRect() const { return maRect; }
627 : 0 : const rtl::OUString& GetText() const { return maStr; }
628 : 0 : sal_uInt16 GetStyle() const { return mnStyle; }
629 : : };
630 : :
631 : : // ----------------------
632 : : // - MetaTextLineAction -
633 : : // ----------------------
634 : :
635 : 0 : class VCL_DLLPUBLIC MetaTextLineAction : public MetaAction
636 : : {
637 : : private:
638 : :
639 : : Point maPos;
640 : : long mnWidth;
641 : : FontStrikeout meStrikeout;
642 : : FontUnderline meUnderline;
643 : : FontUnderline meOverline;
644 : :
645 : : virtual sal_Bool Compare( const MetaAction& ) const;
646 : :
647 : : public:
648 : : DECL_META_ACTION( TextLine, META_TEXTLINE_ACTION )
649 : :
650 : : MetaTextLineAction( const Point& rPos, long nWidth,
651 : : FontStrikeout eStrikeout,
652 : : FontUnderline eUnderline,
653 : : FontUnderline eOverline );
654 : : virtual void Move( long nHorzMove, long nVertMove );
655 : : virtual void Scale( double fScaleX, double fScaleY );
656 : :
657 : 0 : const Point& GetStartPoint() const { return maPos; }
658 : 0 : long GetWidth() const { return mnWidth; }
659 : 0 : FontStrikeout GetStrikeout() const { return meStrikeout; }
660 : 0 : FontUnderline GetUnderline() const { return meUnderline; }
661 : 0 : FontUnderline GetOverline() const { return meOverline; }
662 : : };
663 : :
664 : : // -----------------
665 : : // - MetaBmpAction -
666 : : // -----------------
667 : :
668 [ # # ]: 0 : class VCL_DLLPUBLIC MetaBmpAction : public MetaAction
669 : : {
670 : : private:
671 : :
672 : : Bitmap maBmp;
673 : : Point maPt;
674 : :
675 : : virtual sal_Bool Compare( const MetaAction& ) const;
676 : :
677 : : public:
678 : : DECL_META_ACTION( Bmp, META_BMP_ACTION )
679 : :
680 : : MetaBmpAction( const Point& rPt, const Bitmap& rBmp );
681 : :
682 : : virtual void Move( long nHorzMove, long nVertMove );
683 : : virtual void Scale( double fScaleX, double fScaleY );
684 : :
685 : 0 : const Bitmap& GetBitmap() const { return maBmp; }
686 : 0 : const Point& GetPoint() const { return maPt; }
687 : : };
688 : :
689 : : // ----------------------
690 : : // - MetaBmpScaleAction -
691 : : // ----------------------
692 : :
693 [ # # ]: 0 : class VCL_DLLPUBLIC MetaBmpScaleAction : public MetaAction
694 : : {
695 : : private:
696 : :
697 : : Bitmap maBmp;
698 : : Point maPt;
699 : : Size maSz;
700 : :
701 : : virtual sal_Bool Compare( const MetaAction& ) const;
702 : :
703 : : public:
704 : : DECL_META_ACTION( BmpScale, META_BMPSCALE_ACTION )
705 : :
706 : : MetaBmpScaleAction( const Point& rPt, const Size& rSz,
707 : : const Bitmap& rBmp );
708 : :
709 : : virtual void Move( long nHorzMove, long nVertMove );
710 : : virtual void Scale( double fScaleX, double fScaleY );
711 : :
712 : 0 : const Bitmap& GetBitmap() const { return maBmp; }
713 : 0 : const Point& GetPoint() const { return maPt; }
714 : 0 : const Size& GetSize() const { return maSz; }
715 : : };
716 : :
717 : : // --------------------------
718 : : // - MetaBmpScalePartAction -
719 : : // --------------------------
720 : :
721 [ # # ]: 0 : class VCL_DLLPUBLIC MetaBmpScalePartAction : public MetaAction
722 : : {
723 : : private:
724 : :
725 : : Bitmap maBmp;
726 : : Point maDstPt;
727 : : Size maDstSz;
728 : : Point maSrcPt;
729 : : Size maSrcSz;
730 : :
731 : : virtual sal_Bool Compare( const MetaAction& ) const;
732 : :
733 : : public:
734 : : DECL_META_ACTION( BmpScalePart, META_BMPSCALEPART_ACTION )
735 : :
736 : : MetaBmpScalePartAction( const Point& rDstPt, const Size& rDstSz,
737 : : const Point& rSrcPt, const Size& rSrcSz,
738 : : const Bitmap& rBmp );
739 : :
740 : : virtual void Move( long nHorzMove, long nVertMove );
741 : : virtual void Scale( double fScaleX, double fScaleY );
742 : :
743 : 0 : const Bitmap& GetBitmap() const { return maBmp; }
744 : 0 : const Point& GetDestPoint() const { return maDstPt; }
745 : 0 : const Size& GetDestSize() const { return maDstSz; }
746 : 0 : const Point& GetSrcPoint() const { return maSrcPt; }
747 : 0 : const Size& GetSrcSize() const { return maSrcSz; }
748 : : };
749 : :
750 : : // -----------------
751 : : // - MetaBmpExAction -
752 : : // -----------------
753 : :
754 [ # # ]: 0 : class VCL_DLLPUBLIC MetaBmpExAction : public MetaAction
755 : : {
756 : : private:
757 : :
758 : : BitmapEx maBmpEx;
759 : : Point maPt;
760 : :
761 : : virtual sal_Bool Compare( const MetaAction& ) const;
762 : :
763 : : public:
764 : : DECL_META_ACTION( BmpEx, META_BMPEX_ACTION )
765 : :
766 : : MetaBmpExAction( const Point& rPt, const BitmapEx& rBmpEx );
767 : :
768 : : virtual void Move( long nHorzMove, long nVertMove );
769 : : virtual void Scale( double fScaleX, double fScaleY );
770 : :
771 : 36 : const BitmapEx& GetBitmapEx() const { return maBmpEx; }
772 : 36 : const Point& GetPoint() const { return maPt; }
773 : : };
774 : :
775 : : // ----------------------
776 : : // - MetaBmpExScaleAction -
777 : : // ----------------------
778 : :
779 [ # # ]: 0 : class VCL_DLLPUBLIC MetaBmpExScaleAction : public MetaAction
780 : : {
781 : : private:
782 : :
783 : : BitmapEx maBmpEx;
784 : : Point maPt;
785 : : Size maSz;
786 : :
787 : : virtual sal_Bool Compare( const MetaAction& ) const;
788 : :
789 : : public:
790 : : DECL_META_ACTION( BmpExScale, META_BMPEXSCALE_ACTION )
791 : :
792 : : MetaBmpExScaleAction( const Point& rPt, const Size& rSz,
793 : : const BitmapEx& rBmpEx ) ;
794 : :
795 : : virtual void Move( long nHorzMove, long nVertMove );
796 : : virtual void Scale( double fScaleX, double fScaleY );
797 : :
798 : 66 : const BitmapEx& GetBitmapEx() const { return maBmpEx; }
799 : 96 : const Point& GetPoint() const { return maPt; }
800 : 96 : const Size& GetSize() const { return maSz; }
801 : : };
802 : :
803 : : // ----------------------------
804 : : // - MetaBmpExScalePartAction -
805 : : // ----------------------------
806 : :
807 [ # # ]: 0 : class VCL_DLLPUBLIC MetaBmpExScalePartAction : public MetaAction
808 : : {
809 : : private:
810 : :
811 : : BitmapEx maBmpEx;
812 : : Point maDstPt;
813 : : Size maDstSz;
814 : : Point maSrcPt;
815 : : Size maSrcSz;
816 : :
817 : : virtual sal_Bool Compare( const MetaAction& ) const;
818 : :
819 : : public:
820 : : DECL_META_ACTION( BmpExScalePart, META_BMPEXSCALEPART_ACTION )
821 : :
822 : : MetaBmpExScalePartAction( const Point& rDstPt, const Size& rDstSz,
823 : : const Point& rSrcPt, const Size& rSrcSz,
824 : : const BitmapEx& rBmpEx );
825 : :
826 : : virtual void Move( long nHorzMove, long nVertMove );
827 : : virtual void Scale( double fScaleX, double fScaleY );
828 : :
829 : 0 : const BitmapEx& GetBitmapEx() const { return maBmpEx; }
830 : 0 : const Point& GetDestPoint() const { return maDstPt; }
831 : 0 : const Size& GetDestSize() const { return maDstSz; }
832 : 0 : const Point& GetSrcPoint() const { return maSrcPt; }
833 : 0 : const Size& GetSrcSize() const { return maSrcSz; }
834 : : };
835 : :
836 : : // ------------------
837 : : // - MetaMaskAction -
838 : : // ------------------
839 : :
840 [ # # ]: 0 : class VCL_DLLPUBLIC MetaMaskAction : public MetaAction
841 : : {
842 : : private:
843 : :
844 : : Bitmap maBmp;
845 : : Color maColor;
846 : : Point maPt;
847 : :
848 : : virtual sal_Bool Compare( const MetaAction& ) const;
849 : :
850 : : public:
851 : : DECL_META_ACTION( Mask, META_MASK_ACTION )
852 : :
853 : : MetaMaskAction( const Point& rPt,
854 : : const Bitmap& rBmp,
855 : : const Color& rColor );
856 : :
857 : : virtual void Move( long nHorzMove, long nVertMove );
858 : : virtual void Scale( double fScaleX, double fScaleY );
859 : :
860 : 0 : const Bitmap& GetBitmap() const { return maBmp; }
861 : 0 : const Color& GetColor() const { return maColor; }
862 : 0 : const Point& GetPoint() const { return maPt; }
863 : : };
864 : :
865 : : // -----------------------
866 : : // - MetaMaskScaleAction -
867 : : // -----------------------
868 : :
869 [ # # ]: 0 : class VCL_DLLPUBLIC MetaMaskScaleAction : public MetaAction
870 : : {
871 : : private:
872 : :
873 : : Bitmap maBmp;
874 : : Color maColor;
875 : : Point maPt;
876 : : Size maSz;
877 : :
878 : : virtual sal_Bool Compare( const MetaAction& ) const;
879 : :
880 : : public:
881 : : DECL_META_ACTION( MaskScale, META_MASKSCALE_ACTION )
882 : :
883 : : MetaMaskScaleAction( const Point& rPt, const Size& rSz,
884 : : const Bitmap& rBmp,
885 : : const Color& rColor );
886 : :
887 : : virtual void Move( long nHorzMove, long nVertMove );
888 : : virtual void Scale( double fScaleX, double fScaleY );
889 : :
890 : 0 : const Bitmap& GetBitmap() const { return maBmp; }
891 : 0 : const Color& GetColor() const { return maColor; }
892 : 0 : const Point& GetPoint() const { return maPt; }
893 : 0 : const Size& GetSize() const { return maSz; }
894 : : };
895 : :
896 : : // ---------------------------
897 : : // - MetaMaskScalePartAction -
898 : : // ---------------------------
899 : :
900 [ # # ]: 0 : class VCL_DLLPUBLIC MetaMaskScalePartAction : public MetaAction
901 : : {
902 : : private:
903 : :
904 : : Bitmap maBmp;
905 : : Color maColor;
906 : : Point maDstPt;
907 : : Size maDstSz;
908 : : Point maSrcPt;
909 : : Size maSrcSz;
910 : :
911 : : virtual sal_Bool Compare( const MetaAction& ) const;
912 : :
913 : : public:
914 : : DECL_META_ACTION( MaskScalePart, META_MASKSCALEPART_ACTION )
915 : :
916 : : MetaMaskScalePartAction( const Point& rDstPt, const Size& rDstSz,
917 : : const Point& rSrcPt, const Size& rSrcSz,
918 : : const Bitmap& rBmp,
919 : : const Color& rColor );
920 : :
921 : : virtual void Move( long nHorzMove, long nVertMove );
922 : : virtual void Scale( double fScaleX, double fScaleY );
923 : :
924 : 0 : const Bitmap& GetBitmap() const { return maBmp; }
925 : 0 : const Color& GetColor() const { return maColor; }
926 : 0 : const Point& GetDestPoint() const { return maDstPt; }
927 : 0 : const Size& GetDestSize() const { return maDstSz; }
928 : 0 : const Point& GetSrcPoint() const { return maSrcPt; }
929 : 0 : const Size& GetSrcSize() const { return maSrcSz; }
930 : : };
931 : :
932 : : // ----------------------
933 : : // - MetaGradientAction -
934 : : // ----------------------
935 : :
936 [ # # ]: 0 : class VCL_DLLPUBLIC MetaGradientAction : public MetaAction
937 : : {
938 : : private:
939 : :
940 : : Rectangle maRect;
941 : : Gradient maGradient;
942 : :
943 : : virtual sal_Bool Compare( const MetaAction& ) const;
944 : :
945 : : public:
946 : : DECL_META_ACTION( Gradient, META_GRADIENT_ACTION )
947 : :
948 : : MetaGradientAction( const Rectangle& rRect, const Gradient& rGradient );
949 : :
950 : : virtual void Move( long nHorzMove, long nVertMove );
951 : : virtual void Scale( double fScaleX, double fScaleY );
952 : :
953 : 0 : const Rectangle& GetRect() const { return maRect; }
954 : 0 : const Gradient& GetGradient() const { return maGradient; }
955 : : };
956 : :
957 : : // ------------------------
958 : : // - MetaGradientExAction -
959 : : // ------------------------
960 : :
961 [ # # ][ # # ]: 0 : class VCL_DLLPUBLIC MetaGradientExAction : public MetaAction
962 : : {
963 : : private:
964 : :
965 : : PolyPolygon maPolyPoly;
966 : : Gradient maGradient;
967 : :
968 : : virtual sal_Bool Compare( const MetaAction& ) const;
969 : :
970 : : public:
971 : : DECL_META_ACTION( GradientEx, META_GRADIENTEX_ACTION )
972 : :
973 : : MetaGradientExAction( const PolyPolygon& rPolyPoly, const Gradient& rGradient );
974 : :
975 : : virtual void Move( long nHorzMove, long nVertMove );
976 : : virtual void Scale( double fScaleX, double fScaleY );
977 : :
978 : 0 : const PolyPolygon& GetPolyPolygon() const { return maPolyPoly; }
979 : 0 : const Gradient& GetGradient() const { return maGradient; }
980 : : };
981 : :
982 : : // -------------------
983 : : // - MetaHatchAction -
984 : : // -------------------
985 : :
986 [ # # ][ # # ]: 0 : class VCL_DLLPUBLIC MetaHatchAction : public MetaAction
987 : : {
988 : : private:
989 : :
990 : : PolyPolygon maPolyPoly;
991 : : Hatch maHatch;
992 : :
993 : : virtual sal_Bool Compare( const MetaAction& ) const;
994 : :
995 : : public:
996 : : DECL_META_ACTION( Hatch, META_HATCH_ACTION )
997 : :
998 : : MetaHatchAction( const PolyPolygon& rPolyPoly, const Hatch& rHatch );
999 : :
1000 : : virtual void Move( long nHorzMove, long nVertMove );
1001 : : virtual void Scale( double fScaleX, double fScaleY );
1002 : :
1003 : 0 : const PolyPolygon& GetPolyPolygon() const { return maPolyPoly; }
1004 : 0 : const Hatch& GetHatch() const { return maHatch; }
1005 : : };
1006 : :
1007 : : // -----------------------
1008 : : // - MetaWallpaperAction -
1009 : : // -----------------------
1010 : :
1011 [ # # ]: 0 : class VCL_DLLPUBLIC MetaWallpaperAction : public MetaAction
1012 : : {
1013 : : private:
1014 : :
1015 : : Rectangle maRect;
1016 : : Wallpaper maWallpaper;
1017 : :
1018 : : virtual sal_Bool Compare( const MetaAction& ) const;
1019 : :
1020 : : public:
1021 : : DECL_META_ACTION( Wallpaper, META_WALLPAPER_ACTION )
1022 : :
1023 : : MetaWallpaperAction( const Rectangle& rRect,
1024 : : const Wallpaper& rPaper );
1025 : :
1026 : : virtual void Move( long nHorzMove, long nVertMove );
1027 : : virtual void Scale( double fScaleX, double fScaleY );
1028 : :
1029 : 0 : const Rectangle& GetRect() const { return maRect; }
1030 : 0 : const Wallpaper& GetWallpaper() const { return maWallpaper; }
1031 : : };
1032 : :
1033 : : // ------------------------
1034 : : // - MetaClipRegionAction -
1035 : : // ------------------------
1036 : :
1037 [ # # ]: 0 : class VCL_DLLPUBLIC MetaClipRegionAction : public MetaAction
1038 : : {
1039 : : private:
1040 : :
1041 : : Region maRegion;
1042 : : sal_Bool mbClip;
1043 : :
1044 : : virtual sal_Bool Compare( const MetaAction& ) const;
1045 : :
1046 : : public:
1047 : : DECL_META_ACTION( ClipRegion, META_CLIPREGION_ACTION )
1048 : :
1049 : : MetaClipRegionAction( const Region& rRegion, sal_Bool bClip );
1050 : :
1051 : : virtual void Move( long nHorzMove, long nVertMove );
1052 : : virtual void Scale( double fScaleX, double fScaleY );
1053 : :
1054 : 0 : const Region& GetRegion() const { return maRegion; }
1055 : 0 : sal_Bool IsClipping() const { return mbClip; }
1056 : : };
1057 : :
1058 : : // ---------------------------------
1059 : : // - MetaISectRectClipRegionAction -
1060 : : // ---------------------------------
1061 : :
1062 : 0 : class VCL_DLLPUBLIC MetaISectRectClipRegionAction : public MetaAction
1063 : : {
1064 : : private:
1065 : :
1066 : : Rectangle maRect;
1067 : :
1068 : : virtual sal_Bool Compare( const MetaAction& ) const;
1069 : :
1070 : : public:
1071 : : DECL_META_ACTION( ISectRectClipRegion, META_ISECTRECTCLIPREGION_ACTION )
1072 : :
1073 : : MetaISectRectClipRegionAction( const Rectangle& rRect );
1074 : :
1075 : : virtual void Move( long nHorzMove, long nVertMove );
1076 : : virtual void Scale( double fScaleX, double fScaleY );
1077 : :
1078 : 304 : const Rectangle& GetRect() const { return maRect; }
1079 : : };
1080 : :
1081 : : // -----------------------------------
1082 : : // - MetaISectRegionClipRegionAction -
1083 : : // -----------------------------------
1084 : :
1085 [ # # ]: 0 : class VCL_DLLPUBLIC MetaISectRegionClipRegionAction : public MetaAction
1086 : : {
1087 : : private:
1088 : :
1089 : : Region maRegion;
1090 : :
1091 : : virtual sal_Bool Compare( const MetaAction& ) const;
1092 : :
1093 : : public:
1094 : : DECL_META_ACTION( ISectRegionClipRegion, META_ISECTREGIONCLIPREGION_ACTION )
1095 : :
1096 : : MetaISectRegionClipRegionAction( const Region& rRegion );
1097 : :
1098 : : virtual void Move( long nHorzMove, long nVertMove );
1099 : : virtual void Scale( double fScaleX, double fScaleY );
1100 : :
1101 : 260 : const Region& GetRegion() const { return maRegion; }
1102 : : };
1103 : :
1104 : : // ----------------------------
1105 : : // - MetaMoveClipRegionAction -
1106 : : // ----------------------------
1107 : :
1108 : 0 : class VCL_DLLPUBLIC MetaMoveClipRegionAction : public MetaAction
1109 : : {
1110 : : private:
1111 : :
1112 : : long mnHorzMove;
1113 : : long mnVertMove;
1114 : :
1115 : : virtual sal_Bool Compare( const MetaAction& ) const;
1116 : :
1117 : : public:
1118 : : DECL_META_ACTION( MoveClipRegion, META_MOVECLIPREGION_ACTION )
1119 : :
1120 : : MetaMoveClipRegionAction( long nHorzMove, long nVertMove );
1121 : :
1122 : : virtual void Scale( double fScaleX, double fScaleY );
1123 : :
1124 : 0 : long GetHorzMove() const { return mnHorzMove; }
1125 : 0 : long GetVertMove() const { return mnVertMove; }
1126 : : };
1127 : :
1128 : : // -----------------------
1129 : : // - MetaLineColorAction -
1130 : : // -----------------------
1131 : :
1132 : 0 : class VCL_DLLPUBLIC MetaLineColorAction : public MetaAction
1133 : : {
1134 : : private:
1135 : :
1136 : : Color maColor;
1137 : : sal_Bool mbSet;
1138 : :
1139 : : virtual sal_Bool Compare( const MetaAction& ) const;
1140 : :
1141 : : public:
1142 : : DECL_META_ACTION( LineColor, META_LINECOLOR_ACTION )
1143 : :
1144 : : MetaLineColorAction( const Color& rColor, sal_Bool bSet );
1145 : :
1146 : 7190 : const Color& GetColor() const { return maColor; }
1147 : 12508 : sal_Bool IsSetting() const { return mbSet; }
1148 : : };
1149 : :
1150 : : // -----------------------
1151 : : // - MetaFillColorAction -
1152 : : // -----------------------
1153 : :
1154 : 0 : class VCL_DLLPUBLIC MetaFillColorAction : public MetaAction
1155 : : {
1156 : : private:
1157 : :
1158 : : Color maColor;
1159 : : sal_Bool mbSet;
1160 : :
1161 : : virtual sal_Bool Compare( const MetaAction& ) const;
1162 : :
1163 : : public:
1164 : : DECL_META_ACTION( FillColor, META_FILLCOLOR_ACTION )
1165 : :
1166 : : MetaFillColorAction( const Color& rColor, sal_Bool bSet );
1167 : :
1168 : 957 : const Color& GetColor() const { return maColor; }
1169 : 8913 : sal_Bool IsSetting() const { return mbSet; }
1170 : : };
1171 : :
1172 : : // -----------------------
1173 : : // - MetaTextColorAction -
1174 : : // -----------------------
1175 : :
1176 : 0 : class VCL_DLLPUBLIC MetaTextColorAction : public MetaAction
1177 : : {
1178 : : private:
1179 : :
1180 : : Color maColor;
1181 : :
1182 : : virtual sal_Bool Compare( const MetaAction& ) const;
1183 : :
1184 : : public:
1185 : : DECL_META_ACTION( TextColor, META_TEXTCOLOR_ACTION )
1186 : :
1187 : : MetaTextColorAction( const Color& rColor );
1188 : :
1189 : 7043 : const Color& GetColor() const { return maColor; }
1190 : : };
1191 : :
1192 : : // ---------------------------
1193 : : // - MetaTextFillColorAction -
1194 : : // ---------------------------
1195 : :
1196 : 0 : class VCL_DLLPUBLIC MetaTextFillColorAction : public MetaAction
1197 : : {
1198 : : private:
1199 : :
1200 : : Color maColor;
1201 : : sal_Bool mbSet;
1202 : :
1203 : : virtual sal_Bool Compare( const MetaAction& ) const;
1204 : :
1205 : : public:
1206 : : DECL_META_ACTION( TextFillColor, META_TEXTFILLCOLOR_ACTION )
1207 : :
1208 : : MetaTextFillColorAction( const Color& rColor, sal_Bool bSet );
1209 : :
1210 : 0 : const Color& GetColor() const { return maColor; }
1211 : 4042 : sal_Bool IsSetting() const { return mbSet; }
1212 : : };
1213 : :
1214 : : // ---------------------------
1215 : : // - MetaTextLineColorAction -
1216 : : // ---------------------------
1217 : :
1218 : 0 : class VCL_DLLPUBLIC MetaTextLineColorAction : public MetaAction
1219 : : {
1220 : : private:
1221 : :
1222 : : Color maColor;
1223 : : sal_Bool mbSet;
1224 : :
1225 : : virtual sal_Bool Compare( const MetaAction& ) const;
1226 : :
1227 : : public:
1228 : : DECL_META_ACTION( TextLineColor, META_TEXTLINECOLOR_ACTION )
1229 : :
1230 : : MetaTextLineColorAction( const Color& rColor, sal_Bool bSet );
1231 : :
1232 : 0 : const Color& GetColor() const { return maColor; }
1233 : 0 : sal_Bool IsSetting() const { return mbSet; }
1234 : : };
1235 : :
1236 : : // ---------------------------
1237 : : // - MetaOverlineColorAction -
1238 : : // ---------------------------
1239 : :
1240 : 0 : class VCL_DLLPUBLIC MetaOverlineColorAction : public MetaAction
1241 : : {
1242 : : private:
1243 : :
1244 : : Color maColor;
1245 : : sal_Bool mbSet;
1246 : :
1247 : : virtual sal_Bool Compare( const MetaAction& ) const;
1248 : :
1249 : : public:
1250 : : DECL_META_ACTION( OverlineColor, META_OVERLINECOLOR_ACTION )
1251 : :
1252 : : MetaOverlineColorAction( const Color& rColor, sal_Bool bSet );
1253 : :
1254 : 0 : const Color& GetColor() const { return maColor; }
1255 : 0 : sal_Bool IsSetting() const { return mbSet; }
1256 : : };
1257 : :
1258 : : // -----------------------
1259 : : // - MetaTextAlignAction -
1260 : : // -----------------------
1261 : :
1262 : 0 : class VCL_DLLPUBLIC MetaTextAlignAction : public MetaAction
1263 : : {
1264 : : private:
1265 : :
1266 : : TextAlign maAlign;
1267 : :
1268 : : virtual sal_Bool Compare( const MetaAction& ) const;
1269 : :
1270 : : public:
1271 : : DECL_META_ACTION( TextAlign, META_TEXTALIGN_ACTION )
1272 : :
1273 : : MetaTextAlignAction( TextAlign aAlign );
1274 : :
1275 : 4042 : TextAlign GetTextAlign() const { return maAlign; }
1276 : : };
1277 : :
1278 : : // ---------------------
1279 : : // - MetaMapModeAction -
1280 : : // ---------------------
1281 : :
1282 [ # # ]: 0 : class VCL_DLLPUBLIC MetaMapModeAction : public MetaAction
1283 : : {
1284 : : private:
1285 : :
1286 : : MapMode maMapMode;
1287 : :
1288 : : virtual sal_Bool Compare( const MetaAction& ) const;
1289 : :
1290 : : public:
1291 : : DECL_META_ACTION( MapMode, META_MAPMODE_ACTION )
1292 : :
1293 : : MetaMapModeAction( const MapMode& rMapMode );
1294 : :
1295 : : virtual void Scale( double fScaleX, double fScaleY );
1296 : :
1297 : 0 : const MapMode& GetMapMode() const { return maMapMode; }
1298 : : };
1299 : :
1300 : : // ---------------------
1301 : : // - MetaFontAction -
1302 : : // ---------------------
1303 : :
1304 [ # # ]: 0 : class VCL_DLLPUBLIC MetaFontAction : public MetaAction
1305 : : {
1306 : : private:
1307 : :
1308 : : Font maFont;
1309 : :
1310 : : virtual sal_Bool Compare( const MetaAction& ) const;
1311 : :
1312 : : public:
1313 : : DECL_META_ACTION( Font, META_FONT_ACTION )
1314 : :
1315 : : MetaFontAction( const Font& rFont );
1316 : :
1317 : : virtual void Scale( double fScaleX, double fScaleY );
1318 : :
1319 : 10026 : const Font& GetFont() const { return maFont; }
1320 : : };
1321 : :
1322 : : // ------------------
1323 : : // - MetaPushAction -
1324 : : // ------------------
1325 : :
1326 : 0 : class VCL_DLLPUBLIC MetaPushAction : public MetaAction
1327 : : {
1328 : : private:
1329 : :
1330 : : sal_uInt16 mnFlags;
1331 : :
1332 : : virtual sal_Bool Compare( const MetaAction& ) const;
1333 : :
1334 : : public:
1335 : : DECL_META_ACTION( Push, META_PUSH_ACTION )
1336 : :
1337 : : MetaPushAction( sal_uInt16 nFlags );
1338 : :
1339 : 1527 : sal_uInt16 GetFlags() const { return mnFlags; }
1340 : : };
1341 : :
1342 : : // -----------------
1343 : : // - MetaPopAction -
1344 : : // -----------------
1345 : :
1346 : 0 : class VCL_DLLPUBLIC MetaPopAction : public MetaAction
1347 : : {
1348 : : public:
1349 : :
1350 : : DECL_META_ACTION( Pop, META_POP_ACTION )
1351 : : };
1352 : :
1353 : : // ----------------------
1354 : : // - MetaRasterOpAction -
1355 : : // ----------------------
1356 : :
1357 : 0 : class VCL_DLLPUBLIC MetaRasterOpAction : public MetaAction
1358 : : {
1359 : : private:
1360 : :
1361 : : RasterOp meRasterOp;
1362 : :
1363 : : virtual sal_Bool Compare( const MetaAction& ) const;
1364 : :
1365 : : public:
1366 : : DECL_META_ACTION( RasterOp, META_RASTEROP_ACTION )
1367 : :
1368 : : MetaRasterOpAction( RasterOp eRasterOp );
1369 : :
1370 : 0 : RasterOp GetRasterOp() const { return meRasterOp; }
1371 : : };
1372 : :
1373 : : // -------------------------
1374 : : // - MetaTransparentAction -
1375 : : // -------------------------
1376 : :
1377 [ # # ]: 0 : class VCL_DLLPUBLIC MetaTransparentAction : public MetaAction
1378 : : {
1379 : : private:
1380 : :
1381 : : PolyPolygon maPolyPoly;
1382 : : sal_uInt16 mnTransPercent;
1383 : :
1384 : : virtual sal_Bool Compare( const MetaAction& ) const;
1385 : :
1386 : : public:
1387 : : DECL_META_ACTION( Transparent, META_TRANSPARENT_ACTION )
1388 : :
1389 : : MetaTransparentAction( const PolyPolygon& rPolyPoly, sal_uInt16 nTransPercent );
1390 : :
1391 : : virtual void Move( long nHorzMove, long nVertMove );
1392 : : virtual void Scale( double fScaleX, double fScaleY );
1393 : :
1394 : 0 : const PolyPolygon& GetPolyPolygon() const { return maPolyPoly; }
1395 : 0 : sal_uInt16 GetTransparence() const { return mnTransPercent; }
1396 : : };
1397 : :
1398 : : // ------------------------------
1399 : : // - MetaFloatTransparentAction -
1400 : : // ------------------------------
1401 : :
1402 [ # # ][ # # ]: 0 : class VCL_DLLPUBLIC MetaFloatTransparentAction : public MetaAction
1403 : : {
1404 : : private:
1405 : :
1406 : : GDIMetaFile maMtf;
1407 : : Point maPoint;
1408 : : Size maSize;
1409 : : Gradient maGradient;
1410 : :
1411 : : virtual sal_Bool Compare( const MetaAction& ) const;
1412 : :
1413 : : public:
1414 : : DECL_META_ACTION( FloatTransparent, META_FLOATTRANSPARENT_ACTION )
1415 : :
1416 : : MetaFloatTransparentAction( const GDIMetaFile& rMtf, const Point& rPos,
1417 : : const Size& rSize, const Gradient& rGradient );
1418 : :
1419 : : virtual void Move( long nHorzMove, long nVertMove );
1420 : : virtual void Scale( double fScaleX, double fScaleY );
1421 : :
1422 : 0 : const GDIMetaFile& GetGDIMetaFile() const { return maMtf; }
1423 : 0 : const Point& GetPoint() const { return maPoint; }
1424 : 0 : const Size& GetSize() const { return maSize; }
1425 : 0 : const Gradient& GetGradient() const { return maGradient; }
1426 : : };
1427 : :
1428 : : // ---------------------
1429 : : // - MetaDrawEPSAction -
1430 : : // ---------------------
1431 : :
1432 [ # # ][ # # ]: 0 : class VCL_DLLPUBLIC MetaEPSAction : public MetaAction
1433 : : {
1434 : : private:
1435 : :
1436 : : GfxLink maGfxLink;
1437 : : GDIMetaFile maSubst;
1438 : : Point maPoint;
1439 : : Size maSize;
1440 : :
1441 : : virtual sal_Bool Compare( const MetaAction& ) const;
1442 : :
1443 : : public:
1444 : : DECL_META_ACTION( EPS, META_EPS_ACTION )
1445 : :
1446 : : MetaEPSAction( const Point& rPoint, const Size& rSize,
1447 : : const GfxLink& rGfxLink, const GDIMetaFile& rSubst );
1448 : :
1449 : : virtual void Move( long nHorzMove, long nVertMove );
1450 : : virtual void Scale( double fScaleX, double fScaleY );
1451 : :
1452 : 0 : const GfxLink& GetLink() const { return maGfxLink; }
1453 : 0 : const GDIMetaFile& GetSubstitute() const { return maSubst; }
1454 : 0 : const Point& GetPoint() const { return maPoint; }
1455 : 0 : const Size& GetSize() const { return maSize; }
1456 : : };
1457 : :
1458 : : // ----------------------
1459 : : // - MetaRefPointAction -
1460 : : // ----------------------
1461 : :
1462 : 0 : class VCL_DLLPUBLIC MetaRefPointAction : public MetaAction
1463 : : {
1464 : : private:
1465 : :
1466 : : Point maRefPoint;
1467 : : sal_Bool mbSet;
1468 : :
1469 : : virtual sal_Bool Compare( const MetaAction& ) const;
1470 : :
1471 : : public:
1472 : : DECL_META_ACTION( RefPoint, META_REFPOINT_ACTION )
1473 : :
1474 : : MetaRefPointAction( const Point& rRefPoint, sal_Bool bSet );
1475 : :
1476 : 0 : const Point& GetRefPoint() const { return maRefPoint; }
1477 : 0 : sal_Bool IsSetting() const { return mbSet; }
1478 : : };
1479 : :
1480 : : // ---------------------
1481 : : // - MetaCommentAction -
1482 : : // ---------------------
1483 : :
1484 : : class VCL_DLLPUBLIC MetaCommentAction : public MetaAction
1485 : : {
1486 : : private:
1487 : :
1488 : : rtl::OString maComment;
1489 : : sal_Int32 mnValue;
1490 : : sal_uInt32 mnDataSize;
1491 : : sal_uInt8* mpData;
1492 : :
1493 : : SAL_DLLPRIVATE void ImplInitDynamicData( const sal_uInt8* pData, sal_uInt32 nDataSize );
1494 : : virtual sal_Bool Compare( const MetaAction& ) const;
1495 : :
1496 : : protected:
1497 : : ~MetaCommentAction();
1498 : :
1499 : : public:
1500 : : MetaCommentAction( sal_Int32 nValue = 0L );
1501 : : MetaCommentAction( const MetaCommentAction& rAct );
1502 : : MetaCommentAction( const rtl::OString& rComment, sal_Int32 nValue = 0L, const sal_uInt8* pData = NULL, sal_uInt32 nDataSize = 0UL );
1503 : :
1504 : : virtual void Move( long nHorzMove, long nVertMove );
1505 : : virtual void Scale( double fScaleX, double fScaleY );
1506 : :
1507 : : virtual void Execute( OutputDevice* pOut );
1508 : : virtual MetaAction* Clone();
1509 : : virtual void Write( SvStream& rOStm, ImplMetaWriteData* pData );
1510 : : virtual void Read( SvStream& rIStm, ImplMetaReadData* pData );
1511 : :
1512 : 54667 : const rtl::OString& GetComment() const { return maComment; }
1513 : 0 : sal_Int32 GetValue() const { return mnValue; }
1514 : 0 : sal_uInt32 GetDataSize() const { return mnDataSize; }
1515 : 0 : const sal_uInt8* GetData() const { return mpData; }
1516 : : };
1517 : :
1518 : : // ------------------------
1519 : : // - MetaLayoutModeAction -
1520 : : // ------------------------
1521 : :
1522 : 0 : class VCL_DLLPUBLIC MetaLayoutModeAction : public MetaAction
1523 : : {
1524 : : private:
1525 : :
1526 : : sal_uInt32 mnLayoutMode;
1527 : : virtual sal_Bool Compare( const MetaAction& ) const;
1528 : :
1529 : : public:
1530 : : DECL_META_ACTION( LayoutMode, META_LAYOUTMODE_ACTION )
1531 : :
1532 : : MetaLayoutModeAction( sal_uInt32 nLayoutMode );
1533 : :
1534 : 413 : sal_uInt32 GetLayoutMode() const { return mnLayoutMode; }
1535 : : };
1536 : :
1537 : : // ------------------------
1538 : : // - MetaTextLanguageAction -
1539 : : // ------------------------
1540 : :
1541 : 0 : class VCL_DLLPUBLIC MetaTextLanguageAction : public MetaAction
1542 : : {
1543 : : private:
1544 : :
1545 : : LanguageType meTextLanguage;
1546 : : virtual sal_Bool Compare( const MetaAction& ) const;
1547 : :
1548 : : public:
1549 : : DECL_META_ACTION( TextLanguage, META_TEXTLANGUAGE_ACTION )
1550 : :
1551 : : MetaTextLanguageAction( LanguageType );
1552 : :
1553 : 65 : LanguageType GetTextLanguage() const { return meTextLanguage; }
1554 : : };
1555 : :
1556 : : // ---------------------------
1557 : : // - MetaRenderGraphicAction -
1558 : : // ---------------------------
1559 : :
1560 [ # # ]: 0 : class VCL_DLLPUBLIC MetaRenderGraphicAction : public MetaAction
1561 : : {
1562 : : private:
1563 : :
1564 : : ::vcl::RenderGraphic maRenderGraphic;
1565 : : Point maPoint;
1566 : : Size maSize;
1567 : : double mfRotateAngle;
1568 : : double mfShearAngleX;
1569 : : double mfShearAngleY;
1570 : :
1571 : : virtual sal_Bool Compare( const MetaAction& ) const;
1572 : :
1573 : : public:
1574 : : DECL_META_ACTION( RenderGraphic, META_RENDERGRAPHIC_ACTION )
1575 : :
1576 : : MetaRenderGraphicAction( const Point& rPoint, const Size& rSize,
1577 : : const vcl::RenderGraphic& rRenderData,
1578 : : double fRotateAngle = 0.0,
1579 : : double fShearAngleX = 0.0,
1580 : : double fShearAngleY = 0.0 );
1581 : :
1582 : : virtual void Move( long nHorzMove, long nVertMove );
1583 : : virtual void Scale( double fScaleX, double fScaleY );
1584 : :
1585 : 0 : const ::vcl::RenderGraphic& GetRenderGraphic() const { return maRenderGraphic; }
1586 : 0 : const Point& GetPoint() const { return maPoint; }
1587 : 0 : const Size& GetSize() const { return maSize; }
1588 : : double GetRotateAngle() const { return mfRotateAngle; }
1589 : : double GetShearAngleX() const { return mfShearAngleX; }
1590 : : double GetShearAngleY() const { return mfShearAngleY; }
1591 : : };
1592 : :
1593 : : #endif // _SV_METAACT_HXX
1594 : :
1595 : : /* vim:set shiftwidth=4 softtabstop=4 expandtab: */
|