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