1 /* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */
3 * This file is part of the LibreOffice project.
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/.
9 * This file incorporates work covered by the following license notice:
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 .
20 #ifndef INCLUDED_VCL_METAACT_HXX
21 #define INCLUDED_VCL_METAACT_HXX
23 #include <sal/config.h>
25 #include <rtl/ref.hxx>
26 #include <salhelper/simplereferenceobject.hxx>
27 #include <tools/poly.hxx>
29 #include <vcl/dllapi.h>
30 #include <vcl/rendercontext/State.hxx>
31 #include <vcl/bitmapex.hxx>
32 #include <vcl/font.hxx>
33 #include <vcl/gdimtf.hxx>
34 #include <vcl/gfxlink.hxx>
35 #include <vcl/gradient.hxx>
36 #include <vcl/hatch.hxx>
37 #include <vcl/kernarray.hxx>
38 #include <vcl/lineinfo.hxx>
39 #include <vcl/metaactiontypes.hxx>
40 #include <vcl/region.hxx>
41 #include <vcl/rendercontext/RasterOp.hxx>
42 #include <vcl/wall.hxx>
43 #include <basegfx/utils/bgradient.hxx>
50 enum class DrawTextFlags
;
52 struct ImplMetaReadData
54 rtl_TextEncoding meActualCharSet
;
58 : meActualCharSet(RTL_TEXTENCODING_ASCII_US
)
63 struct ImplMetaWriteData
65 rtl_TextEncoding meActualCharSet
;
68 meActualCharSet( RTL_TEXTENCODING_ASCII_US
)
72 class VCL_DLLPUBLIC MetaAction
: public salhelper::SimpleReferenceObject
75 MetaActionType mnType
;
78 SAL_DLLPRIVATE
virtual ~MetaAction() override
;
81 SAL_DLLPRIVATE
MetaAction();
82 SAL_DLLPRIVATE
explicit MetaAction( MetaActionType nType
);
83 SAL_DLLPRIVATE
MetaAction( MetaAction
const & );
85 SAL_DLLPRIVATE
virtual void Execute( OutputDevice
* pOut
);
87 oslInterlockedCount
GetRefCount() const { return m_nCount
; }
89 SAL_DLLPRIVATE
virtual rtl::Reference
<MetaAction
> Clone() const;
91 SAL_DLLPRIVATE
virtual void Move( tools::Long nHorzMove
, tools::Long nVertMove
);
92 SAL_DLLPRIVATE
virtual void Scale( double fScaleX
, double fScaleY
);
94 MetaActionType
GetType() const { return mnType
; }
95 /** \#i10613# Extracted from Printer::GetPreparedMetaFile. Returns true
96 if given action requires special transparency handling
98 virtual bool IsTransparent() const { return false; }
101 class VCL_DLLPUBLIC MetaPixelAction final
: public MetaAction
108 SAL_DLLPRIVATE
MetaPixelAction();
109 MetaPixelAction(MetaPixelAction
const &) = default;
110 MetaPixelAction(MetaPixelAction
&&) = default;
111 MetaPixelAction
& operator =(MetaPixelAction
const &) = delete; // due to MetaAction
112 MetaPixelAction
& operator =(MetaPixelAction
&&) = delete; // due to MetaAction
114 SAL_DLLPRIVATE
virtual ~MetaPixelAction() override
;
116 SAL_DLLPRIVATE
virtual void Execute( OutputDevice
* pOut
) override
;
117 SAL_DLLPRIVATE
virtual rtl::Reference
<MetaAction
> Clone() const override
;
119 MetaPixelAction( const Point
& rPt
, const Color
& rColor
);
121 SAL_DLLPRIVATE
virtual void Move( tools::Long nHorzMove
, tools::Long nVertMove
) override
;
122 SAL_DLLPRIVATE
virtual void Scale( double fScaleX
, double fScaleY
) override
;
124 const Point
& GetPoint() const { return maPt
; }
125 const Color
& GetColor() const { return maColor
; }
126 void SetPoint(const Point
& rPt
) { maPt
= rPt
; }
127 void SetColor(Color rColor
) { maColor
= rColor
; }
130 class VCL_DLLPUBLIC MetaPointAction final
: public MetaAction
136 SAL_DLLPRIVATE
MetaPointAction();
137 MetaPointAction(MetaPointAction
const &) = default;
138 MetaPointAction(MetaPointAction
&&) = default;
139 MetaPointAction
& operator =(MetaPointAction
const &) = delete; // due to MetaAction
140 MetaPointAction
& operator =(MetaPointAction
&&) = delete; // due to MetaAction
142 SAL_DLLPRIVATE
virtual ~MetaPointAction() override
;
144 SAL_DLLPRIVATE
virtual void Execute( OutputDevice
* pOut
) override
;
145 SAL_DLLPRIVATE
virtual rtl::Reference
<MetaAction
> Clone() const override
;
147 SAL_DLLPRIVATE
explicit MetaPointAction( const Point
& );
149 SAL_DLLPRIVATE
virtual void Move( tools::Long nHorzMove
, tools::Long nVertMove
) override
;
150 SAL_DLLPRIVATE
virtual void Scale( double fScaleX
, double fScaleY
) override
;
152 const Point
& GetPoint() const { return maPt
; }
153 void SetPoint(const Point
& rPt
) { maPt
= rPt
; }
156 class VCL_DLLPUBLIC MetaLineAction final
: public MetaAction
165 SAL_DLLPRIVATE
MetaLineAction();
166 MetaLineAction(MetaLineAction
const &) = default;
167 MetaLineAction(MetaLineAction
&&) = default;
168 MetaLineAction
& operator =(MetaLineAction
const &) = delete; // due to MetaAction
169 MetaLineAction
& operator =(MetaLineAction
&&) = delete; // due to MetaAction
171 SAL_DLLPRIVATE
virtual ~MetaLineAction() override
;
173 SAL_DLLPRIVATE
virtual void Execute( OutputDevice
* pOut
) override
;
174 SAL_DLLPRIVATE
virtual rtl::Reference
<MetaAction
> Clone() const override
;
176 SAL_DLLPRIVATE
MetaLineAction( const Point
& rStart
, const Point
& rEnd
);
177 MetaLineAction( const Point
& rStart
, const Point
& rEnd
,
178 LineInfo aLineInfo
);
180 SAL_DLLPRIVATE
virtual void Move( tools::Long nHorzMove
, tools::Long nVertMove
) override
;
181 SAL_DLLPRIVATE
virtual void Scale( double fScaleX
, double fScaleY
) override
;
183 const Point
& GetStartPoint() const { return maStartPt
; }
184 const Point
& GetEndPoint() const { return maEndPt
; }
185 const LineInfo
& GetLineInfo() const { return maLineInfo
; }
186 void SetStartPoint(const Point
& rPoint
) { maStartPt
= rPoint
; }
187 void SetEndPoint(const Point
& rPoint
) { maEndPt
= rPoint
; }
188 void SetLineInfo(const LineInfo
& rLineInfo
) { maLineInfo
= rLineInfo
; }
191 class VCL_DLLPUBLIC MetaRectAction final
: public MetaAction
195 tools::Rectangle maRect
;
198 SAL_DLLPRIVATE
MetaRectAction();
199 MetaRectAction(MetaRectAction
const &) = default;
200 MetaRectAction(MetaRectAction
&&) = default;
201 MetaRectAction
& operator =(MetaRectAction
const &) = delete; // due to MetaAction
202 MetaRectAction
& operator =(MetaRectAction
&&) = delete; // due to MetaAction
204 SAL_DLLPRIVATE
virtual ~MetaRectAction() override
;
206 SAL_DLLPRIVATE
virtual void Execute( OutputDevice
* pOut
) override
;
207 SAL_DLLPRIVATE
virtual rtl::Reference
<MetaAction
> Clone() const override
;
209 explicit MetaRectAction( const tools::Rectangle
& );
211 SAL_DLLPRIVATE
virtual void Move( tools::Long nHorzMove
, tools::Long nVertMove
) override
;
212 SAL_DLLPRIVATE
virtual void Scale( double fScaleX
, double fScaleY
) override
;
214 const tools::Rectangle
& GetRect() const { return maRect
; }
215 void SetRect(const tools::Rectangle
& rRect
) { maRect
= rRect
; }
218 class VCL_DLLPUBLIC MetaRoundRectAction final
: public MetaAction
222 tools::Rectangle maRect
;
223 sal_uInt32 mnHorzRound
;
224 sal_uInt32 mnVertRound
;
227 SAL_DLLPRIVATE
MetaRoundRectAction();
228 MetaRoundRectAction(MetaRoundRectAction
const &) = default;
229 MetaRoundRectAction(MetaRoundRectAction
&&) = default;
230 MetaRoundRectAction
& operator =(MetaRoundRectAction
const &) = delete; // due to MetaAction
231 MetaRoundRectAction
& operator =(MetaRoundRectAction
&&) = delete; // due to MetaAction
233 SAL_DLLPRIVATE
virtual ~MetaRoundRectAction() override
;
235 SAL_DLLPRIVATE
virtual void Execute( OutputDevice
* pOut
) override
;
236 SAL_DLLPRIVATE
virtual rtl::Reference
<MetaAction
> Clone() const override
;
238 MetaRoundRectAction( const tools::Rectangle
& rRect
,
239 sal_uInt32 nHorzRound
, sal_uInt32 nVertRound
);
241 SAL_DLLPRIVATE
virtual void Move( tools::Long nHorzMove
, tools::Long nVertMove
) override
;
242 SAL_DLLPRIVATE
virtual void Scale( double fScaleX
, double fScaleY
) override
;
244 const tools::Rectangle
& GetRect() const { return maRect
; }
245 sal_uInt32
GetHorzRound() const { return mnHorzRound
; }
246 sal_uInt32
GetVertRound() const { return mnVertRound
; }
247 void SetRect(const tools::Rectangle
& rRect
) { maRect
= rRect
; }
248 void SetHorzRound(sal_uInt32 rHorzRound
) { mnHorzRound
= rHorzRound
; }
249 void SetVertRound(sal_uInt32 rVertRound
) { mnVertRound
= rVertRound
; }
252 class VCL_DLLPUBLIC MetaEllipseAction final
: public MetaAction
256 tools::Rectangle maRect
;
259 SAL_DLLPRIVATE
MetaEllipseAction();
260 MetaEllipseAction(MetaEllipseAction
const &) = default;
261 MetaEllipseAction(MetaEllipseAction
&&) = default;
262 MetaEllipseAction
& operator =(MetaEllipseAction
const &) = delete; // due to MetaAction
263 MetaEllipseAction
& operator =(MetaEllipseAction
&&) = delete; // due to MetaAction
265 SAL_DLLPRIVATE
virtual ~MetaEllipseAction() override
;
267 SAL_DLLPRIVATE
virtual void Execute( OutputDevice
* pOut
) override
;
268 SAL_DLLPRIVATE
virtual rtl::Reference
<MetaAction
> Clone() const override
;
270 explicit MetaEllipseAction( const tools::Rectangle
& );
272 SAL_DLLPRIVATE
virtual void Move( tools::Long nHorzMove
, tools::Long nVertMove
) override
;
273 SAL_DLLPRIVATE
virtual void Scale( double fScaleX
, double fScaleY
) override
;
275 const tools::Rectangle
& GetRect() const { return maRect
; }
276 void SetRect(const tools::Rectangle
& rRect
) { maRect
= rRect
; }
279 class VCL_DLLPUBLIC MetaArcAction final
: public MetaAction
283 tools::Rectangle maRect
;
288 SAL_DLLPRIVATE
MetaArcAction();
289 MetaArcAction(MetaArcAction
const &) = default;
290 MetaArcAction(MetaArcAction
&&) = default;
291 MetaArcAction
& operator =(MetaArcAction
const &) = delete; // due to MetaAction
292 MetaArcAction
& operator =(MetaArcAction
&&) = delete; // due to MetaAction
294 SAL_DLLPRIVATE
virtual ~MetaArcAction() override
;
296 SAL_DLLPRIVATE
virtual void Execute( OutputDevice
* pOut
) override
;
297 SAL_DLLPRIVATE
virtual rtl::Reference
<MetaAction
> Clone() const override
;
299 MetaArcAction( const tools::Rectangle
& rRect
,
300 const Point
& rStart
, const Point
& rEnd
);
302 SAL_DLLPRIVATE
virtual void Move( tools::Long nHorzMove
, tools::Long nVertMove
) override
;
303 SAL_DLLPRIVATE
virtual void Scale( double fScaleX
, double fScaleY
) override
;
305 const tools::Rectangle
& GetRect() const { return maRect
; }
306 const Point
& GetStartPoint() const { return maStartPt
; }
307 const Point
& GetEndPoint() const { return maEndPt
; }
308 void SetRect(const tools::Rectangle
& rRect
) { maRect
= rRect
; }
309 void SetStartPoint(const Point
& rPoint
) { maStartPt
= rPoint
; }
310 void SetEndPoint(const Point
& rPoint
) { maEndPt
= rPoint
; }
313 class VCL_DLLPUBLIC MetaPieAction final
: public MetaAction
317 tools::Rectangle maRect
;
322 SAL_DLLPRIVATE
MetaPieAction();
323 MetaPieAction(MetaPieAction
const &) = default;
324 MetaPieAction(MetaPieAction
&&) = default;
325 MetaPieAction
& operator =(MetaPieAction
const &) = delete; // due to MetaAction
326 MetaPieAction
& operator =(MetaPieAction
&&) = delete; // due to MetaAction
328 SAL_DLLPRIVATE
virtual ~MetaPieAction() override
;
330 SAL_DLLPRIVATE
virtual void Execute( OutputDevice
* pOut
) override
;
331 SAL_DLLPRIVATE
virtual rtl::Reference
<MetaAction
> Clone() const override
;
333 MetaPieAction( const tools::Rectangle
& rRect
,
334 const Point
& rStart
, const Point
& rEnd
);
336 SAL_DLLPRIVATE
virtual void Move( tools::Long nHorzMove
, tools::Long nVertMove
) override
;
337 SAL_DLLPRIVATE
virtual void Scale( double fScaleX
, double fScaleY
) override
;
339 const tools::Rectangle
& GetRect() const { return maRect
; }
340 const Point
& GetStartPoint() const { return maStartPt
; }
341 const Point
& GetEndPoint() const { return maEndPt
; }
342 void SetRect(const tools::Rectangle
& rRect
) { maRect
= rRect
; }
343 void SetStartPoint(const Point
& rPoint
) { maStartPt
= rPoint
; }
344 void SetEndPoint(const Point
& rPoint
) { maEndPt
= rPoint
; }
347 class VCL_DLLPUBLIC MetaChordAction final
: public MetaAction
351 tools::Rectangle maRect
;
356 SAL_DLLPRIVATE
MetaChordAction();
357 MetaChordAction(MetaChordAction
const &) = default;
358 MetaChordAction(MetaChordAction
&&) = default;
359 MetaChordAction
& operator =(MetaChordAction
const &) = delete; // due to MetaAction
360 MetaChordAction
& operator =(MetaChordAction
&&) = delete; // due to MetaAction
362 SAL_DLLPRIVATE
virtual ~MetaChordAction() override
;
364 SAL_DLLPRIVATE
virtual void Execute( OutputDevice
* pOut
) override
;
365 SAL_DLLPRIVATE
virtual rtl::Reference
<MetaAction
> Clone() const override
;
367 MetaChordAction( const tools::Rectangle
& rRect
,
368 const Point
& rStart
, const Point
& rEnd
);
370 SAL_DLLPRIVATE
virtual void Move( tools::Long nHorzMove
, tools::Long nVertMove
) override
;
371 SAL_DLLPRIVATE
virtual void Scale( double fScaleX
, double fScaleY
) override
;
373 const tools::Rectangle
& GetRect() const { return maRect
; }
374 const Point
& GetStartPoint() const { return maStartPt
; }
375 const Point
& GetEndPoint() const { return maEndPt
; }
376 void SetRect(const tools::Rectangle
& rRect
) { maRect
= rRect
; }
377 void SetStartPoint(const Point
& rPoint
) { maStartPt
= rPoint
; }
378 void SetEndPoint(const Point
& rPoint
) { maEndPt
= rPoint
; }
381 class VCL_DLLPUBLIC MetaPolyLineAction final
: public MetaAction
386 tools::Polygon maPoly
;
389 SAL_DLLPRIVATE
MetaPolyLineAction();
390 MetaPolyLineAction(MetaPolyLineAction
const &) = default;
391 MetaPolyLineAction(MetaPolyLineAction
&&) = default;
392 MetaPolyLineAction
& operator =(MetaPolyLineAction
const &) = delete; // due to MetaAction
393 MetaPolyLineAction
& operator =(MetaPolyLineAction
&&) = delete; // due to MetaAction
395 SAL_DLLPRIVATE
virtual ~MetaPolyLineAction() override
;
397 SAL_DLLPRIVATE
virtual void Execute( OutputDevice
* pOut
) override
;
398 SAL_DLLPRIVATE
virtual rtl::Reference
<MetaAction
> Clone() const override
;
400 SAL_DLLPRIVATE
explicit MetaPolyLineAction( tools::Polygon
);
401 explicit MetaPolyLineAction( tools::Polygon
, LineInfo
);
403 SAL_DLLPRIVATE
virtual void Move( tools::Long nHorzMove
, tools::Long nVertMove
) override
;
404 SAL_DLLPRIVATE
virtual void Scale( double fScaleX
, double fScaleY
) override
;
406 const tools::Polygon
& GetPolygon() const { return maPoly
; }
407 const LineInfo
& GetLineInfo() const { return maLineInfo
; }
408 void SetLineInfo(const LineInfo
& rLineInfo
) { maLineInfo
= rLineInfo
; }
409 void SetPolygon(const tools::Polygon
& rPoly
) { maPoly
= rPoly
; }
412 class VCL_DLLPUBLIC MetaPolygonAction final
: public MetaAction
416 tools::Polygon maPoly
;
419 SAL_DLLPRIVATE
MetaPolygonAction();
420 MetaPolygonAction(MetaPolygonAction
const &) = default;
421 MetaPolygonAction(MetaPolygonAction
&&) = default;
422 MetaPolygonAction
& operator =(MetaPolygonAction
const &) = delete; // due to MetaAction
423 MetaPolygonAction
& operator =(MetaPolygonAction
&&) = delete; // due to MetaAction
425 SAL_DLLPRIVATE
virtual ~MetaPolygonAction() override
;
427 SAL_DLLPRIVATE
virtual void Execute( OutputDevice
* pOut
) override
;
428 SAL_DLLPRIVATE
virtual rtl::Reference
<MetaAction
> Clone() const override
;
430 explicit MetaPolygonAction( tools::Polygon
);
432 SAL_DLLPRIVATE
virtual void Move( tools::Long nHorzMove
, tools::Long nVertMove
) override
;
433 SAL_DLLPRIVATE
virtual void Scale( double fScaleX
, double fScaleY
) override
;
435 const tools::Polygon
& GetPolygon() const { return maPoly
; }
436 void SetPolygon(const tools::Polygon
& rPoly
) { maPoly
= rPoly
; }
439 class VCL_DLLPUBLIC MetaPolyPolygonAction final
: public MetaAction
443 tools::PolyPolygon maPolyPoly
;
446 SAL_DLLPRIVATE
MetaPolyPolygonAction();
447 MetaPolyPolygonAction(MetaPolyPolygonAction
const &) = default;
448 MetaPolyPolygonAction(MetaPolyPolygonAction
&&) = default;
449 MetaPolyPolygonAction
& operator =(MetaPolyPolygonAction
const &) = delete; // due to MetaAction
450 MetaPolyPolygonAction
& operator =(MetaPolyPolygonAction
&&) = delete; // due to MetaAction
452 SAL_DLLPRIVATE
virtual ~MetaPolyPolygonAction() override
;
454 SAL_DLLPRIVATE
virtual void Execute( OutputDevice
* pOut
) override
;
455 SAL_DLLPRIVATE
virtual rtl::Reference
<MetaAction
> Clone() const override
;
457 explicit MetaPolyPolygonAction( tools::PolyPolygon
);
459 SAL_DLLPRIVATE
virtual void Move( tools::Long nHorzMove
, tools::Long nVertMove
) override
;
460 SAL_DLLPRIVATE
virtual void Scale( double fScaleX
, double fScaleY
) override
;
462 const tools::PolyPolygon
& GetPolyPolygon() const { return maPolyPoly
; }
463 void SetPolyPolygon(const tools::PolyPolygon
& rPolyPoly
) { maPolyPoly
= rPolyPoly
; }
466 class SAL_DLLPUBLIC_RTTI MetaTextAction final
: public MetaAction
477 MetaTextAction(MetaTextAction
const &) = default;
478 MetaTextAction(MetaTextAction
&&) = default;
479 MetaTextAction
& operator =(MetaTextAction
const &) = delete; // due to MetaAction
480 MetaTextAction
& operator =(MetaTextAction
&&) = delete; // due to MetaAction
482 virtual ~MetaTextAction() override
;
484 SAL_DLLPRIVATE
virtual void Execute( OutputDevice
* pOut
) override
;
485 SAL_DLLPRIVATE
virtual rtl::Reference
<MetaAction
> Clone() const override
;
487 MetaTextAction( const Point
& rPt
, OUString aStr
,
488 sal_Int32 nIndex
, sal_Int32 nLen
);
490 virtual void Move( tools::Long nHorzMove
, tools::Long nVertMove
) override
;
491 virtual void Scale( double fScaleX
, double fScaleY
) override
;
493 const Point
& GetPoint() const { return maPt
; }
494 const OUString
& GetText() const { return maStr
; }
495 sal_Int32
GetIndex() const { return mnIndex
; }
496 sal_Int32
GetLen() const { return mnLen
; }
497 void SetPoint(const Point
& rPt
) { maPt
= rPt
; }
498 void SetText(const OUString
& rStr
) { maStr
= rStr
; }
499 void SetIndex(sal_Int32 rIndex
) { mnIndex
= rIndex
; }
500 void SetLen(sal_Int32 rLen
) { mnLen
= rLen
; }
503 class VCL_DLLPUBLIC MetaTextArrayAction final
: public MetaAction
510 std::vector
<sal_Bool
> maKashidaAry
;
513 sal_Int32 mnLayoutContextIndex
= -1;
514 sal_Int32 mnLayoutContextLen
= -1;
516 SAL_DLLPRIVATE
virtual ~MetaTextArrayAction() override
;
519 SAL_DLLPRIVATE
MetaTextArrayAction();
520 SAL_DLLPRIVATE
MetaTextArrayAction( const MetaTextArrayAction
& rAction
);
521 SAL_DLLPRIVATE
MetaTextArrayAction( const Point
& rStartPt
, OUString aStr
,
523 std::vector
<sal_Bool
> pKashidaAry
,
526 MetaTextArrayAction( const Point
& rStartPt
, OUString aStr
,
527 KernArraySpan pDXAry
,
528 std::span
<const sal_Bool
> pKashidaAry
,
531 MetaTextArrayAction(const Point
& rStartPt
, OUString aStr
, KernArraySpan pDXAry
,
532 std::span
<const sal_Bool
> pKashidaAry
, sal_Int32 nIndex
, sal_Int32 nLen
,
533 sal_Int32 nLayoutContextIndex
, sal_Int32 nLayoutContextLen
);
535 SAL_DLLPRIVATE
virtual void Execute( OutputDevice
* pOut
) override
;
537 SAL_DLLPRIVATE
virtual rtl::Reference
<MetaAction
> Clone() const override
;
539 SAL_DLLPRIVATE
virtual void Move( tools::Long nHorzMove
, tools::Long nVertMove
) override
;
540 SAL_DLLPRIVATE
virtual void Scale( double fScaleX
, double fScaleY
) override
;
542 const Point
& GetPoint() const { return maStartPt
; }
543 const OUString
& GetText() const { return maStr
; }
544 sal_Int32
GetIndex() const { return mnIndex
; }
545 sal_Int32
GetLen() const { return mnLen
; }
546 sal_Int32
GetLayoutContextIndex() const { return mnLayoutContextIndex
; }
547 sal_Int32
GetLayoutContextLen() const { return mnLayoutContextLen
; }
548 const KernArray
& GetDXArray() const { return maDXAry
; }
549 const std::vector
<sal_Bool
> & GetKashidaArray() const { return maKashidaAry
; }
550 void SetPoint(const Point
& rPt
) { maStartPt
= rPt
; }
551 void SetText(const OUString
& rStr
) { maStr
= rStr
; }
552 void SetIndex(sal_Int32 rIndex
) { mnIndex
= rIndex
; }
553 void SetLen(sal_Int32 rLen
) { mnLen
= rLen
; }
554 void SetLayoutContextIndex(sal_Int32 nLayoutContextIndex
)
556 mnLayoutContextIndex
= nLayoutContextIndex
;
558 void SetLayoutContextLen(sal_Int32 nLayoutContextLen
)
560 mnLayoutContextLen
= nLayoutContextLen
;
562 SAL_DLLPRIVATE
void SetDXArray(KernArray aArray
);
563 SAL_DLLPRIVATE
void SetKashidaArray(std::vector
<sal_Bool
> aArray
);
566 class SAL_DLLPUBLIC_RTTI MetaStretchTextAction final
: public MetaAction
577 MetaStretchTextAction();
578 MetaStretchTextAction(MetaStretchTextAction
const &) = default;
579 MetaStretchTextAction(MetaStretchTextAction
&&) = default;
580 MetaStretchTextAction
& operator =(MetaStretchTextAction
const &) = delete; // due to MetaAction
581 MetaStretchTextAction
& operator =(MetaStretchTextAction
&&) = delete; // due to MetaAction
583 virtual ~MetaStretchTextAction() override
;
585 SAL_DLLPRIVATE
virtual void Execute( OutputDevice
* pOut
) override
;
586 SAL_DLLPRIVATE
virtual rtl::Reference
<MetaAction
> Clone() const override
;
588 MetaStretchTextAction( const Point
& rPt
, sal_uInt32 nWidth
,
590 sal_Int32 nIndex
, sal_Int32 nLen
);
592 virtual void Move( tools::Long nHorzMove
, tools::Long nVertMove
) override
;
593 virtual void Scale( double fScaleX
, double fScaleY
) override
;
595 const Point
& GetPoint() const { return maPt
; }
596 const OUString
& GetText() const { return maStr
; }
597 sal_uInt32
GetWidth() const { return mnWidth
; }
598 sal_Int32
GetIndex() const { return mnIndex
; }
599 sal_Int32
GetLen() const { return mnLen
; }
600 void SetPoint(const Point
& rPt
) { maPt
= rPt
; }
601 void SetText(const OUString
& rStr
) { maStr
= rStr
; }
602 void SetWidth(sal_uInt32 rWidth
) { mnWidth
= rWidth
; }
603 void SetIndex(sal_uInt32 rIndex
) { mnIndex
= rIndex
; }
604 void SetLen(sal_uInt32 rLen
) { mnLen
= rLen
; }
607 class SAL_DLLPUBLIC_RTTI MetaTextRectAction final
: public MetaAction
611 tools::Rectangle maRect
;
613 DrawTextFlags mnStyle
;
616 MetaTextRectAction();
617 MetaTextRectAction(MetaTextRectAction
const &) = default;
618 MetaTextRectAction(MetaTextRectAction
&&) = default;
619 MetaTextRectAction
& operator =(MetaTextRectAction
const &) = delete; // due to MetaAction
620 MetaTextRectAction
& operator =(MetaTextRectAction
&&) = delete; // due to MetaAction
622 virtual ~MetaTextRectAction() override
;
624 SAL_DLLPRIVATE
virtual void Execute( OutputDevice
* pOut
) override
;
625 SAL_DLLPRIVATE
virtual rtl::Reference
<MetaAction
> Clone() const override
;
627 MetaTextRectAction( const tools::Rectangle
& rRect
,
628 OUString aStr
, DrawTextFlags nStyle
);
630 SAL_DLLPRIVATE
virtual void Move( tools::Long nHorzMove
, tools::Long nVertMove
) override
;
631 SAL_DLLPRIVATE
virtual void Scale( double fScaleX
, double fScaleY
) override
;
633 const tools::Rectangle
& GetRect() const { return maRect
; }
634 const OUString
& GetText() const { return maStr
; }
635 DrawTextFlags
GetStyle() const { return mnStyle
; }
636 void SetRect(const tools::Rectangle
& rRect
) { maRect
= rRect
; }
637 void SetText(const OUString
& rStr
) { maStr
= rStr
; }
638 void SetStyle(DrawTextFlags rStyle
) { mnStyle
= rStyle
; }
641 class SAL_DLLPUBLIC_RTTI MetaTextLineAction final
: public MetaAction
647 FontStrikeout meStrikeout
;
648 FontLineStyle meUnderline
;
649 FontLineStyle meOverline
;
652 MetaTextLineAction();
653 MetaTextLineAction(MetaTextLineAction
const &) = default;
654 MetaTextLineAction(MetaTextLineAction
&&) = default;
655 MetaTextLineAction
& operator =(MetaTextLineAction
const &) = delete; // due to MetaAction
656 MetaTextLineAction
& operator =(MetaTextLineAction
&&) = delete; // due to MetaAction
658 virtual ~MetaTextLineAction() override
;
660 SAL_DLLPRIVATE
virtual void Execute( OutputDevice
* pOut
) override
;
661 SAL_DLLPRIVATE
virtual rtl::Reference
<MetaAction
> Clone() const override
;
663 MetaTextLineAction( const Point
& rPos
, tools::Long nWidth
,
664 FontStrikeout eStrikeout
,
665 FontLineStyle eUnderline
,
666 FontLineStyle eOverline
);
667 SAL_DLLPRIVATE
virtual void Move( tools::Long nHorzMove
, tools::Long nVertMove
) override
;
668 SAL_DLLPRIVATE
virtual void Scale( double fScaleX
, double fScaleY
) override
;
670 const Point
& GetStartPoint() const { return maPos
; }
671 tools::Long
GetWidth() const { return mnWidth
; }
672 FontStrikeout
GetStrikeout() const { return meStrikeout
; }
673 FontLineStyle
GetUnderline() const { return meUnderline
; }
674 FontLineStyle
GetOverline() const { return meOverline
; }
675 void SetStartPoint(const Point
& rPos
) { maPos
= rPos
; }
676 void SetWidth(tools::Long rWidth
) { mnWidth
= rWidth
; }
677 void SetStrikeout(FontStrikeout eStrikeout
) { meStrikeout
= eStrikeout
; }
678 void SetUnderline(FontLineStyle eUnderline
) { meUnderline
= eUnderline
; }
679 void SetOverline(FontLineStyle eOverline
) { meOverline
= eOverline
; }
682 class VCL_DLLPUBLIC MetaBmpAction final
: public MetaAction
690 SAL_DLLPRIVATE
MetaBmpAction();
691 MetaBmpAction(MetaBmpAction
const &) = default;
692 MetaBmpAction(MetaBmpAction
&&) = default;
693 MetaBmpAction
& operator =(MetaBmpAction
const &) = delete; // due to MetaAction
694 MetaBmpAction
& operator =(MetaBmpAction
&&) = delete; // due to MetaAction
696 SAL_DLLPRIVATE
virtual ~MetaBmpAction() override
;
698 SAL_DLLPRIVATE
virtual void Execute( OutputDevice
* pOut
) override
;
699 SAL_DLLPRIVATE
virtual rtl::Reference
<MetaAction
> Clone() const override
;
701 MetaBmpAction( const Point
& rPt
, const Bitmap
& rBmp
);
703 SAL_DLLPRIVATE
virtual void Move( tools::Long nHorzMove
, tools::Long nVertMove
) override
;
704 SAL_DLLPRIVATE
virtual void Scale( double fScaleX
, double fScaleY
) override
;
706 const Bitmap
& GetBitmap() const { return maBmp
; }
707 const Point
& GetPoint() const { return maPt
; }
708 void SetBitmap(const Bitmap
& rBmp
) { maBmp
= rBmp
; }
709 void SetPoint(const Point
& rPt
) { maPt
= rPt
; }
712 class VCL_DLLPUBLIC MetaBmpScaleAction final
: public MetaAction
721 SAL_DLLPRIVATE
MetaBmpScaleAction();
722 MetaBmpScaleAction(MetaBmpScaleAction
const &) = default;
723 MetaBmpScaleAction(MetaBmpScaleAction
&&) = default;
724 MetaBmpScaleAction
& operator =(MetaBmpScaleAction
const &) = delete; // due to MetaAction
725 MetaBmpScaleAction
& operator =(MetaBmpScaleAction
&&) = delete; // due to MetaAction
727 SAL_DLLPRIVATE
virtual ~MetaBmpScaleAction() override
;
729 SAL_DLLPRIVATE
virtual void Execute( OutputDevice
* pOut
) override
;
730 SAL_DLLPRIVATE
virtual rtl::Reference
<MetaAction
> Clone() const override
;
732 MetaBmpScaleAction( const Point
& rPt
, const Size
& rSz
,
733 const Bitmap
& rBmp
);
735 SAL_DLLPRIVATE
virtual void Move( tools::Long nHorzMove
, tools::Long nVertMove
) override
;
736 SAL_DLLPRIVATE
virtual void Scale( double fScaleX
, double fScaleY
) override
;
738 const Bitmap
& GetBitmap() const { return maBmp
; }
739 const Point
& GetPoint() const { return maPt
; }
740 const Size
& GetSize() const { return maSz
; }
741 void SetBitmap(const Bitmap
& rBmp
) { maBmp
= rBmp
; }
742 void SetPoint(const Point
& rPt
) { maPt
= rPt
; }
743 void SetSize(const Size
& rSz
) { maSz
= rSz
; }
746 class VCL_DLLPUBLIC MetaBmpScalePartAction final
: public MetaAction
757 SAL_DLLPRIVATE
MetaBmpScalePartAction();
758 MetaBmpScalePartAction(MetaBmpScalePartAction
const &) = default;
759 MetaBmpScalePartAction(MetaBmpScalePartAction
&&) = default;
760 MetaBmpScalePartAction
& operator =(MetaBmpScalePartAction
const &) = delete; // due to MetaAction
761 MetaBmpScalePartAction
& operator =(MetaBmpScalePartAction
&&) = delete; // due to MetaAction
763 SAL_DLLPRIVATE
virtual ~MetaBmpScalePartAction() override
;
765 SAL_DLLPRIVATE
virtual void Execute( OutputDevice
* pOut
) override
;
766 SAL_DLLPRIVATE
virtual rtl::Reference
<MetaAction
> Clone() const override
;
768 MetaBmpScalePartAction( const Point
& rDstPt
, const Size
& rDstSz
,
769 const Point
& rSrcPt
, const Size
& rSrcSz
,
770 const Bitmap
& rBmp
);
772 SAL_DLLPRIVATE
virtual void Move( tools::Long nHorzMove
, tools::Long nVertMove
) override
;
773 SAL_DLLPRIVATE
virtual void Scale( double fScaleX
, double fScaleY
) override
;
775 const Bitmap
& GetBitmap() const { return maBmp
; }
776 const Point
& GetDestPoint() const { return maDstPt
; }
777 const Size
& GetDestSize() const { return maDstSz
; }
778 const Point
& GetSrcPoint() const { return maSrcPt
; }
779 const Size
& GetSrcSize() const { return maSrcSz
; }
780 void SetBitmap(const Bitmap
& rBmp
) { maBmp
= rBmp
; }
781 void SetDestPoint(const Point
& rPt
) { maDstPt
= rPt
; }
782 void SetDestSize(const Size
& rSz
) { maDstSz
= rSz
; }
783 void SetSrcPoint(const Point
& rPt
) { maSrcPt
= rPt
; }
784 void SetSrcSize(const Size
& rSz
) { maSrcSz
= rSz
; }
787 class VCL_DLLPUBLIC MetaBmpExAction final
: public MetaAction
795 SAL_DLLPRIVATE
MetaBmpExAction();
796 MetaBmpExAction(MetaBmpExAction
const &) = default;
797 MetaBmpExAction(MetaBmpExAction
&&) = default;
798 MetaBmpExAction
& operator =(MetaBmpExAction
const &) = delete; // due to MetaAction
799 MetaBmpExAction
& operator =(MetaBmpExAction
&&) = delete; // due to MetaAction
801 SAL_DLLPRIVATE
virtual ~MetaBmpExAction() override
;
803 SAL_DLLPRIVATE
virtual void Execute( OutputDevice
* pOut
) override
;
804 SAL_DLLPRIVATE
virtual rtl::Reference
<MetaAction
> Clone() const override
;
806 MetaBmpExAction( const Point
& rPt
, const BitmapEx
& rBmpEx
);
808 SAL_DLLPRIVATE
virtual void Move( tools::Long nHorzMove
, tools::Long nVertMove
) override
;
809 SAL_DLLPRIVATE
virtual void Scale( double fScaleX
, double fScaleY
) override
;
811 const BitmapEx
& GetBitmapEx() const { return maBmpEx
; }
812 const Point
& GetPoint() const { return maPt
; }
813 void SetBitmapEx(BitmapEx rBmpEx
) { maBmpEx
= rBmpEx
; }
814 void SetPoint(const Point
& rPt
) { maPt
= rPt
; }
815 bool IsTransparent() const override
{ return GetBitmapEx().IsAlpha(); }
818 class VCL_DLLPUBLIC MetaBmpExScaleAction final
: public MetaAction
827 SAL_DLLPRIVATE
MetaBmpExScaleAction();
828 MetaBmpExScaleAction(MetaBmpExScaleAction
const &) = default;
829 MetaBmpExScaleAction(MetaBmpExScaleAction
&&) = default;
830 MetaBmpExScaleAction
& operator =(MetaBmpExScaleAction
const &) = delete; // due to MetaAction
831 MetaBmpExScaleAction
& operator =(MetaBmpExScaleAction
&&) = delete; // due to MetaAction
833 SAL_DLLPRIVATE
virtual ~MetaBmpExScaleAction() override
;
835 SAL_DLLPRIVATE
virtual void Execute( OutputDevice
* pOut
) override
;
836 SAL_DLLPRIVATE
virtual rtl::Reference
<MetaAction
> Clone() const override
;
838 MetaBmpExScaleAction( const Point
& rPt
, const Size
& rSz
,
839 const BitmapEx
& rBmpEx
) ;
841 SAL_DLLPRIVATE
virtual void Move( tools::Long nHorzMove
, tools::Long nVertMove
) override
;
842 SAL_DLLPRIVATE
virtual void Scale( double fScaleX
, double fScaleY
) override
;
844 const BitmapEx
& GetBitmapEx() const { return maBmpEx
; }
845 const Point
& GetPoint() const { return maPt
; }
846 const Size
& GetSize() const { return maSz
; }
847 void SetBitmapEx(const BitmapEx
& rBmpEx
) { maBmpEx
= rBmpEx
; }
848 void SetPoint(const Point
& rPt
) { maPt
= rPt
; }
849 void SetSize(const Size
& rSz
) { maSz
= rSz
; }
850 bool IsTransparent() const override
{ return GetBitmapEx().IsAlpha(); }
853 class VCL_DLLPUBLIC MetaBmpExScalePartAction final
: public MetaAction
864 SAL_DLLPRIVATE
MetaBmpExScalePartAction();
865 MetaBmpExScalePartAction(MetaBmpExScalePartAction
const &) = default;
866 MetaBmpExScalePartAction(MetaBmpExScalePartAction
&&) = default;
867 MetaBmpExScalePartAction
& operator =(MetaBmpExScalePartAction
const &) = delete; // due to MetaAction
868 MetaBmpExScalePartAction
& operator =(MetaBmpExScalePartAction
&&) = delete; // due to MetaAction
870 SAL_DLLPRIVATE
virtual ~MetaBmpExScalePartAction() override
;
872 SAL_DLLPRIVATE
virtual void Execute( OutputDevice
* pOut
) override
;
873 SAL_DLLPRIVATE
virtual rtl::Reference
<MetaAction
> Clone() const override
;
875 MetaBmpExScalePartAction( const Point
& rDstPt
, const Size
& rDstSz
,
876 const Point
& rSrcPt
, const Size
& rSrcSz
,
877 const BitmapEx
& rBmpEx
);
879 SAL_DLLPRIVATE
virtual void Move( tools::Long nHorzMove
, tools::Long nVertMove
) override
;
880 SAL_DLLPRIVATE
virtual void Scale( double fScaleX
, double fScaleY
) override
;
882 const BitmapEx
& GetBitmapEx() const { return maBmpEx
; }
883 const Point
& GetDestPoint() const { return maDstPt
; }
884 const Size
& GetDestSize() const { return maDstSz
; }
885 const Point
& GetSrcPoint() const { return maSrcPt
; }
886 const Size
& GetSrcSize() const { return maSrcSz
; }
887 void SetBitmapEx(const BitmapEx
& rBmpEx
) { maBmpEx
= rBmpEx
; }
888 void SetDestPoint(const Point
& rDstPt
) { maDstPt
= rDstPt
; }
889 void SetDestSize(const Size
& rDstSz
) { maDstSz
= rDstSz
; }
890 void SetSrcPoint(const Point
& rSrcPt
) { maSrcPt
= rSrcPt
; }
891 void SetSrcSize(const Size
& rSrcSz
) { maSrcSz
= rSrcSz
; }
892 bool IsTransparent() const override
{ return GetBitmapEx().IsAlpha(); }
895 class SAL_DLLPUBLIC_RTTI MetaMaskAction final
: public MetaAction
905 MetaMaskAction(MetaMaskAction
const &) = default;
906 MetaMaskAction(MetaMaskAction
&&) = default;
907 MetaMaskAction
& operator =(MetaMaskAction
const &) = delete; // due to MetaAction
908 MetaMaskAction
& operator =(MetaMaskAction
&&) = delete; // due to MetaAction
910 virtual ~MetaMaskAction() override
;
912 SAL_DLLPRIVATE
virtual void Execute( OutputDevice
* pOut
) override
;
913 SAL_DLLPRIVATE
virtual rtl::Reference
<MetaAction
> Clone() const override
;
915 MetaMaskAction( const Point
& rPt
,
917 const Color
& rColor
);
919 SAL_DLLPRIVATE
virtual void Move( tools::Long nHorzMove
, tools::Long nVertMove
) override
;
920 SAL_DLLPRIVATE
virtual void Scale( double fScaleX
, double fScaleY
) override
;
922 const Bitmap
& GetBitmap() const { return maBmp
; }
923 const Color
& GetColor() const { return maColor
; }
924 const Point
& GetPoint() const { return maPt
; }
925 void SetBitmap(const Bitmap
& rBmp
) { maBmp
= rBmp
; }
926 void SetPoint(const Point
& rPt
) { maPt
= rPt
; }
929 class SAL_DLLPUBLIC_RTTI MetaMaskScaleAction final
: public MetaAction
939 MetaMaskScaleAction();
940 MetaMaskScaleAction(MetaMaskScaleAction
const &) = default;
941 MetaMaskScaleAction(MetaMaskScaleAction
&&) = default;
942 MetaMaskScaleAction
& operator =(MetaMaskScaleAction
const &) = delete; // due to MetaAction
943 MetaMaskScaleAction
& operator =(MetaMaskScaleAction
&&) = delete; // due to MetaAction
945 virtual ~MetaMaskScaleAction() override
;
947 SAL_DLLPRIVATE
virtual void Execute( OutputDevice
* pOut
) override
;
948 SAL_DLLPRIVATE
virtual rtl::Reference
<MetaAction
> Clone() const override
;
950 MetaMaskScaleAction( const Point
& rPt
, const Size
& rSz
,
952 const Color
& rColor
);
954 SAL_DLLPRIVATE
virtual void Move( tools::Long nHorzMove
, tools::Long nVertMove
) override
;
955 SAL_DLLPRIVATE
virtual void Scale( double fScaleX
, double fScaleY
) override
;
957 const Bitmap
& GetBitmap() const { return maBmp
; }
958 const Color
& GetColor() const { return maColor
; }
959 const Point
& GetPoint() const { return maPt
; }
960 const Size
& GetSize() const { return maSz
; }
961 void SetBitmap(const Bitmap
& rBmp
) { maBmp
= rBmp
; }
962 void SetPoint(const Point
& rPt
) { maPt
= rPt
; }
963 void SetSize(const Size
& rSz
) { maSz
= rSz
; }
966 class SAL_DLLPUBLIC_RTTI MetaMaskScalePartAction final
: public MetaAction
978 MetaMaskScalePartAction();
979 MetaMaskScalePartAction(MetaMaskScalePartAction
const &) = default;
980 MetaMaskScalePartAction(MetaMaskScalePartAction
&&) = default;
981 MetaMaskScalePartAction
& operator =(MetaMaskScalePartAction
const &) = delete; // due to MetaAction
982 MetaMaskScalePartAction
& operator =(MetaMaskScalePartAction
&&) = delete; // due to MetaAction
984 virtual ~MetaMaskScalePartAction() override
;
986 SAL_DLLPRIVATE
virtual void Execute( OutputDevice
* pOut
) override
;
987 SAL_DLLPRIVATE
virtual rtl::Reference
<MetaAction
> Clone() const override
;
989 MetaMaskScalePartAction( const Point
& rDstPt
, const Size
& rDstSz
,
990 const Point
& rSrcPt
, const Size
& rSrcSz
,
992 const Color
& rColor
);
994 SAL_DLLPRIVATE
virtual void Move( tools::Long nHorzMove
, tools::Long nVertMove
) override
;
995 SAL_DLLPRIVATE
virtual void Scale( double fScaleX
, double fScaleY
) override
;
997 const Bitmap
& GetBitmap() const { return maBmp
; }
998 const Color
& GetColor() const { return maColor
; }
999 const Point
& GetDestPoint() const { return maDstPt
; }
1000 const Size
& GetDestSize() const { return maDstSz
; }
1001 const Point
& GetSrcPoint() const { return maSrcPt
; }
1002 const Size
& GetSrcSize() const { return maSrcSz
; }
1003 void SetBitmap(const Bitmap
& rBmp
) { maBmp
= rBmp
; }
1004 void SetColor(Color rColor
) { maColor
= rColor
; }
1005 void SetDestPoint(const Point
& rPt
) { maDstPt
= rPt
; }
1006 void SetDestSize(const Size
& rSz
) { maDstSz
= rSz
; }
1007 void SetSrcPoint(const Point
& rPt
) { maSrcPt
= rPt
; }
1008 void SetSrcSize(const Size
& rSz
) { maSrcSz
= rSz
; }
1011 class SAL_DLLPUBLIC_RTTI MetaGradientAction final
: public MetaAction
1015 tools::Rectangle maRect
;
1016 Gradient maGradient
;
1019 MetaGradientAction();
1020 MetaGradientAction(MetaGradientAction
const &) = default;
1021 MetaGradientAction(MetaGradientAction
&&) = default;
1022 MetaGradientAction
& operator =(MetaGradientAction
const &) = delete; // due to MetaAction
1023 MetaGradientAction
& operator =(MetaGradientAction
&&) = delete; // due to MetaAction
1025 virtual ~MetaGradientAction() override
;
1027 SAL_DLLPRIVATE
virtual void Execute( OutputDevice
* pOut
) override
;
1028 SAL_DLLPRIVATE
virtual rtl::Reference
<MetaAction
> Clone() const override
;
1030 MetaGradientAction( const tools::Rectangle
& rRect
, Gradient aGradient
);
1032 SAL_DLLPRIVATE
virtual void Move( tools::Long nHorzMove
, tools::Long nVertMove
) override
;
1033 SAL_DLLPRIVATE
virtual void Scale( double fScaleX
, double fScaleY
) override
;
1035 const tools::Rectangle
& GetRect() const { return maRect
; }
1036 const Gradient
& GetGradient() const { return maGradient
; }
1037 void SetGradient(const Gradient
& rGradient
) { maGradient
= rGradient
; }
1038 void SetRect(const tools::Rectangle
& rRect
) { maRect
= rRect
; }
1041 class VCL_DLLPUBLIC MetaGradientExAction final
: public MetaAction
1045 tools::PolyPolygon maPolyPoly
;
1046 Gradient maGradient
;
1049 SAL_DLLPRIVATE
MetaGradientExAction();
1050 MetaGradientExAction(MetaGradientExAction
const &) = default;
1051 MetaGradientExAction(MetaGradientExAction
&&) = default;
1052 MetaGradientExAction
& operator =(MetaGradientExAction
const &) = delete; // due to MetaAction
1053 MetaGradientExAction
& operator =(MetaGradientExAction
&&) = delete; // due to MetaAction
1055 SAL_DLLPRIVATE
virtual ~MetaGradientExAction() override
;
1057 SAL_DLLPRIVATE
virtual void Execute( OutputDevice
* pOut
) override
;
1058 SAL_DLLPRIVATE
virtual rtl::Reference
<MetaAction
> Clone() const override
;
1060 SAL_DLLPRIVATE
MetaGradientExAction( tools::PolyPolygon rPolyPoly
, Gradient aGradient
);
1062 SAL_DLLPRIVATE
virtual void Move( tools::Long nHorzMove
, tools::Long nVertMove
) override
;
1063 SAL_DLLPRIVATE
virtual void Scale( double fScaleX
, double fScaleY
) override
;
1065 const tools::PolyPolygon
& GetPolyPolygon() const { return maPolyPoly
; }
1066 const Gradient
& GetGradient() const { return maGradient
; }
1067 void SetPolyPolygon(const tools::PolyPolygon
& rPolyPoly
) { maPolyPoly
= rPolyPoly
; }
1068 void SetGradient(const Gradient
& rGradient
) { maGradient
= rGradient
; }
1071 class SAL_DLLPUBLIC_RTTI MetaHatchAction final
: public MetaAction
1075 tools::PolyPolygon maPolyPoly
;
1080 MetaHatchAction(MetaHatchAction
const &) = default;
1081 MetaHatchAction(MetaHatchAction
&&) = default;
1082 MetaHatchAction
& operator =(MetaHatchAction
const &) = delete; // due to MetaAction
1083 MetaHatchAction
& operator =(MetaHatchAction
&&) = delete; // due to MetaAction
1085 virtual ~MetaHatchAction() override
;
1087 SAL_DLLPRIVATE
virtual void Execute( OutputDevice
* pOut
) override
;
1088 SAL_DLLPRIVATE
virtual rtl::Reference
<MetaAction
> Clone() const override
;
1090 MetaHatchAction( tools::PolyPolygon aPolyPoly
, const Hatch
& rHatch
);
1092 SAL_DLLPRIVATE
virtual void Move( tools::Long nHorzMove
, tools::Long nVertMove
) override
;
1093 SAL_DLLPRIVATE
virtual void Scale( double fScaleX
, double fScaleY
) override
;
1095 const tools::PolyPolygon
& GetPolyPolygon() const { return maPolyPoly
; }
1096 const Hatch
& GetHatch() const { return maHatch
; }
1097 void SetPolyPolygon(const tools::PolyPolygon
& rPolyPoly
) { maPolyPoly
= rPolyPoly
; }
1098 void SetHatch(const Hatch
& rHatch
) { maHatch
= rHatch
; }
1101 class VCL_DLLPUBLIC MetaWallpaperAction final
: public MetaAction
1105 tools::Rectangle maRect
;
1106 Wallpaper maWallpaper
;
1109 SAL_DLLPRIVATE
MetaWallpaperAction();
1110 MetaWallpaperAction(MetaWallpaperAction
const &) = default;
1111 MetaWallpaperAction(MetaWallpaperAction
&&) = default;
1112 MetaWallpaperAction
& operator =(MetaWallpaperAction
const &) = delete; // due to MetaAction
1113 MetaWallpaperAction
& operator =(MetaWallpaperAction
&&) = delete; // due to MetaAction
1115 SAL_DLLPRIVATE
virtual ~MetaWallpaperAction() override
;
1117 SAL_DLLPRIVATE
virtual void Execute( OutputDevice
* pOut
) override
;
1118 SAL_DLLPRIVATE
virtual rtl::Reference
<MetaAction
> Clone() const override
;
1120 MetaWallpaperAction( const tools::Rectangle
& rRect
,
1121 const Wallpaper
& rPaper
);
1123 SAL_DLLPRIVATE
virtual void Move( tools::Long nHorzMove
, tools::Long nVertMove
) override
;
1124 SAL_DLLPRIVATE
virtual void Scale( double fScaleX
, double fScaleY
) override
;
1126 const tools::Rectangle
& GetRect() const { return maRect
; }
1127 const Wallpaper
& GetWallpaper() const { return maWallpaper
; }
1128 void SetWallpaper(const Wallpaper
& rWallpaper
) { maWallpaper
= rWallpaper
; }
1131 class VCL_DLLPUBLIC MetaClipRegionAction final
: public MetaAction
1135 vcl::Region maRegion
;
1139 SAL_DLLPRIVATE
MetaClipRegionAction();
1140 MetaClipRegionAction(MetaClipRegionAction
const &) = default;
1141 MetaClipRegionAction(MetaClipRegionAction
&&) = default;
1142 MetaClipRegionAction
& operator =(MetaClipRegionAction
const &) = delete; // due to MetaAction
1143 MetaClipRegionAction
& operator =(MetaClipRegionAction
&&) = delete; // due to MetaAction
1145 SAL_DLLPRIVATE
virtual ~MetaClipRegionAction() override
;
1147 virtual void Execute( OutputDevice
* pOut
) override
;
1148 SAL_DLLPRIVATE
virtual rtl::Reference
<MetaAction
> Clone() const override
;
1150 SAL_DLLPRIVATE
MetaClipRegionAction( vcl::Region aRegion
, bool bClip
);
1152 SAL_DLLPRIVATE
virtual void Move( tools::Long nHorzMove
, tools::Long nVertMove
) override
;
1153 SAL_DLLPRIVATE
virtual void Scale( double fScaleX
, double fScaleY
) override
;
1155 const vcl::Region
& GetRegion() const { return maRegion
; }
1156 bool IsClipping() const { return mbClip
; }
1157 void SetRegion(const vcl::Region
& rRegion
) { maRegion
= rRegion
; }
1158 void SetClipping(bool bClip
) { mbClip
= bClip
; }
1161 class VCL_DLLPUBLIC MetaISectRectClipRegionAction final
: public MetaAction
1165 tools::Rectangle maRect
;
1168 SAL_DLLPRIVATE
MetaISectRectClipRegionAction();
1169 MetaISectRectClipRegionAction(MetaISectRectClipRegionAction
const &) = default;
1170 MetaISectRectClipRegionAction(MetaISectRectClipRegionAction
&&) = default;
1171 MetaISectRectClipRegionAction
& operator =(MetaISectRectClipRegionAction
const &) = delete; // due to MetaAction
1172 MetaISectRectClipRegionAction
& operator =(MetaISectRectClipRegionAction
&&) = delete; // due to MetaAction
1174 SAL_DLLPRIVATE
virtual ~MetaISectRectClipRegionAction() override
;
1176 virtual void Execute( OutputDevice
* pOut
) override
;
1177 SAL_DLLPRIVATE
virtual rtl::Reference
<MetaAction
> Clone() const override
;
1179 explicit MetaISectRectClipRegionAction( const tools::Rectangle
& );
1181 SAL_DLLPRIVATE
virtual void Move( tools::Long nHorzMove
, tools::Long nVertMove
) override
;
1182 SAL_DLLPRIVATE
virtual void Scale( double fScaleX
, double fScaleY
) override
;
1184 const tools::Rectangle
& GetRect() const { return maRect
; }
1185 void SetRect(const tools::Rectangle
& rRect
) { maRect
= rRect
; }
1188 class VCL_DLLPUBLIC MetaISectRegionClipRegionAction final
: public MetaAction
1192 vcl::Region maRegion
;
1195 SAL_DLLPRIVATE
MetaISectRegionClipRegionAction();
1196 MetaISectRegionClipRegionAction(MetaISectRegionClipRegionAction
const &) = default;
1197 MetaISectRegionClipRegionAction(MetaISectRegionClipRegionAction
&&) = default;
1198 MetaISectRegionClipRegionAction
& operator =(MetaISectRegionClipRegionAction
const &) = delete; // due to MetaAction
1199 MetaISectRegionClipRegionAction
& operator =(MetaISectRegionClipRegionAction
&&) = delete; // due to MetaAction
1201 SAL_DLLPRIVATE
virtual ~MetaISectRegionClipRegionAction() override
;
1203 virtual void Execute( OutputDevice
* pOut
) override
;
1204 SAL_DLLPRIVATE
virtual rtl::Reference
<MetaAction
> Clone() const override
;
1206 explicit MetaISectRegionClipRegionAction( vcl::Region
);
1208 SAL_DLLPRIVATE
virtual void Move( tools::Long nHorzMove
, tools::Long nVertMove
) override
;
1209 SAL_DLLPRIVATE
virtual void Scale( double fScaleX
, double fScaleY
) override
;
1211 const vcl::Region
& GetRegion() const { return maRegion
; }
1212 void SetRegion(const vcl::Region
& rRegion
) { maRegion
= rRegion
; }
1215 class VCL_DLLPUBLIC MetaMoveClipRegionAction final
: public MetaAction
1219 tools::Long mnHorzMove
;
1220 tools::Long mnVertMove
;
1223 SAL_DLLPRIVATE
MetaMoveClipRegionAction();
1224 MetaMoveClipRegionAction(MetaMoveClipRegionAction
const &) = default;
1225 MetaMoveClipRegionAction(MetaMoveClipRegionAction
&&) = default;
1226 MetaMoveClipRegionAction
& operator =(MetaMoveClipRegionAction
const &) = delete; // due to MetaAction
1227 MetaMoveClipRegionAction
& operator =(MetaMoveClipRegionAction
&&) = delete; // due to MetaAction
1229 SAL_DLLPRIVATE
virtual ~MetaMoveClipRegionAction() override
;
1231 virtual void Execute( OutputDevice
* pOut
) override
;
1232 SAL_DLLPRIVATE
virtual rtl::Reference
<MetaAction
> Clone() const override
;
1234 SAL_DLLPRIVATE
MetaMoveClipRegionAction( tools::Long nHorzMove
, tools::Long nVertMove
);
1236 SAL_DLLPRIVATE
virtual void Scale( double fScaleX
, double fScaleY
) override
;
1238 tools::Long
GetHorzMove() const { return mnHorzMove
; }
1239 tools::Long
GetVertMove() const { return mnVertMove
; }
1240 void SetHorzMove(tools::Long nHorzMove
) { mnHorzMove
= nHorzMove
; }
1241 void SetVertMove(tools::Long nVertMove
) { mnVertMove
= nVertMove
; }
1244 class VCL_DLLPUBLIC MetaLineColorAction final
: public MetaAction
1252 SAL_DLLPRIVATE
MetaLineColorAction();
1253 MetaLineColorAction(MetaLineColorAction
const &) = default;
1254 MetaLineColorAction(MetaLineColorAction
&&) = default;
1255 MetaLineColorAction
& operator =(MetaLineColorAction
const &) = delete; // due to MetaAction
1256 MetaLineColorAction
& operator =(MetaLineColorAction
&&) = delete; // due to MetaAction
1258 SAL_DLLPRIVATE
virtual ~MetaLineColorAction() override
;
1260 virtual void Execute( OutputDevice
* pOut
) override
;
1261 SAL_DLLPRIVATE
virtual rtl::Reference
<MetaAction
> Clone() const override
;
1263 MetaLineColorAction( const Color
& rColor
, bool bSet
);
1265 const Color
& GetColor() const { return maColor
; }
1266 bool IsSetting() const { return mbSet
; }
1267 void SetColor(const Color
& rColor
) { maColor
= rColor
; }
1268 void SetSetting(bool rSet
) { mbSet
= rSet
; }
1271 class VCL_DLLPUBLIC MetaFillColorAction final
: public MetaAction
1279 SAL_DLLPRIVATE
MetaFillColorAction();
1280 MetaFillColorAction(MetaFillColorAction
const &) = default;
1281 MetaFillColorAction(MetaFillColorAction
&&) = default;
1282 MetaFillColorAction
& operator =(MetaFillColorAction
const &) = delete; // due to MetaAction
1283 MetaFillColorAction
& operator =(MetaFillColorAction
&&) = delete; // due to MetaAction
1285 virtual ~MetaFillColorAction() override
;
1287 virtual void Execute( OutputDevice
* pOut
) override
;
1288 SAL_DLLPRIVATE
virtual rtl::Reference
<MetaAction
> Clone() const override
;
1290 MetaFillColorAction( const Color
& rColor
, bool bSet
);
1292 const Color
& GetColor() const { return maColor
; }
1293 bool IsSetting() const { return mbSet
; }
1294 void SetSetting(bool rSet
) { mbSet
= rSet
; }
1295 void SetColor(Color rColor
) { maColor
= rColor
; }
1299 class VCL_DLLPUBLIC MetaTextColorAction final
: public MetaAction
1306 SAL_DLLPRIVATE
MetaTextColorAction();
1307 MetaTextColorAction(MetaTextColorAction
const &) = default;
1308 MetaTextColorAction(MetaTextColorAction
&&) = default;
1309 MetaTextColorAction
& operator =(MetaTextColorAction
const &) = delete; // due to MetaAction
1310 MetaTextColorAction
& operator =(MetaTextColorAction
&&) = delete; // due to MetaAction
1312 SAL_DLLPRIVATE
virtual ~MetaTextColorAction() override
;
1314 virtual void Execute( OutputDevice
* pOut
) override
;
1315 SAL_DLLPRIVATE
virtual rtl::Reference
<MetaAction
> Clone() const override
;
1317 explicit MetaTextColorAction( const Color
& );
1319 const Color
& GetColor() const { return maColor
; }
1320 void SetColor(Color rColor
) { maColor
= rColor
; }
1323 class VCL_DLLPUBLIC MetaTextFillColorAction final
: public MetaAction
1331 SAL_DLLPRIVATE
MetaTextFillColorAction();
1332 MetaTextFillColorAction(MetaTextFillColorAction
const &) = default;
1333 MetaTextFillColorAction(MetaTextFillColorAction
&&) = default;
1334 MetaTextFillColorAction
& operator =(MetaTextFillColorAction
const &) = delete; // due to MetaAction
1335 MetaTextFillColorAction
& operator =(MetaTextFillColorAction
&&) = delete; // due to MetaAction
1337 SAL_DLLPRIVATE
virtual ~MetaTextFillColorAction() override
;
1339 virtual void Execute( OutputDevice
* pOut
) override
;
1340 SAL_DLLPRIVATE
virtual rtl::Reference
<MetaAction
> Clone() const override
;
1342 MetaTextFillColorAction( const Color
& rColor
, bool bSet
);
1344 const Color
& GetColor() const { return maColor
; }
1345 void SetColor(Color rColor
) { maColor
= rColor
; }
1346 void SetSetting(bool bSet
) { mbSet
= bSet
; }
1347 bool IsSetting() const { return mbSet
; }
1351 class VCL_DLLPUBLIC MetaTextLineColorAction final
: public MetaAction
1359 SAL_DLLPRIVATE
MetaTextLineColorAction();
1360 MetaTextLineColorAction(MetaTextLineColorAction
const &) = default;
1361 MetaTextLineColorAction(MetaTextLineColorAction
&&) = default;
1362 MetaTextLineColorAction
& operator =(MetaTextLineColorAction
const &) = delete; // due to MetaAction
1363 MetaTextLineColorAction
& operator =(MetaTextLineColorAction
&&) = delete; // due to MetaAction
1365 SAL_DLLPRIVATE
virtual ~MetaTextLineColorAction() override
;
1367 virtual void Execute( OutputDevice
* pOut
) override
;
1368 SAL_DLLPRIVATE
virtual rtl::Reference
<MetaAction
> Clone() const override
;
1370 SAL_DLLPRIVATE
MetaTextLineColorAction( const Color
& rColor
, bool bSet
);
1372 const Color
& GetColor() const { return maColor
; }
1373 void SetColor(const Color
& rColor
) { maColor
= rColor
; }
1374 void SetSetting(bool bSet
) { mbSet
= bSet
; }
1375 bool IsSetting() const { return mbSet
; }
1378 class VCL_DLLPUBLIC MetaOverlineColorAction final
: public MetaAction
1386 SAL_DLLPRIVATE
MetaOverlineColorAction();
1387 MetaOverlineColorAction(MetaOverlineColorAction
const &) = default;
1388 MetaOverlineColorAction(MetaOverlineColorAction
&&) = default;
1389 MetaOverlineColorAction
& operator =(MetaOverlineColorAction
const &) = delete; // due to MetaAction
1390 MetaOverlineColorAction
& operator =(MetaOverlineColorAction
&&) = delete; // due to MetaAction
1392 SAL_DLLPRIVATE
virtual ~MetaOverlineColorAction() override
;
1394 virtual void Execute( OutputDevice
* pOut
) override
;
1395 SAL_DLLPRIVATE
virtual rtl::Reference
<MetaAction
> Clone() const override
;
1397 SAL_DLLPRIVATE
MetaOverlineColorAction( const Color
& rColor
, bool bSet
);
1399 const Color
& GetColor() const { return maColor
; }
1400 void SetColor(const Color
& rColor
) { maColor
= rColor
; }
1401 void SetSetting(bool bSet
) { mbSet
= bSet
; }
1402 bool IsSetting() const { return mbSet
; }
1405 class VCL_DLLPUBLIC MetaTextAlignAction final
: public MetaAction
1412 SAL_DLLPRIVATE
MetaTextAlignAction();
1413 MetaTextAlignAction(MetaTextAlignAction
const &) = default;
1414 MetaTextAlignAction(MetaTextAlignAction
&&) = default;
1415 MetaTextAlignAction
& operator =(MetaTextAlignAction
const &) = delete; // due to MetaAction
1416 MetaTextAlignAction
& operator =(MetaTextAlignAction
&&) = delete; // due to MetaAction
1418 SAL_DLLPRIVATE
virtual ~MetaTextAlignAction() override
;
1420 virtual void Execute( OutputDevice
* pOut
) override
;
1421 SAL_DLLPRIVATE
virtual rtl::Reference
<MetaAction
> Clone() const override
;
1423 explicit MetaTextAlignAction( TextAlign eAlign
);
1425 TextAlign
GetTextAlign() const { return maAlign
; }
1426 void SetTextAlign(TextAlign eAlign
) { maAlign
= eAlign
; }
1429 class VCL_DLLPUBLIC MetaMapModeAction final
: public MetaAction
1436 SAL_DLLPRIVATE
MetaMapModeAction();
1437 MetaMapModeAction(MetaMapModeAction
const &) = default;
1438 MetaMapModeAction(MetaMapModeAction
&&) = default;
1439 MetaMapModeAction
& operator =(MetaMapModeAction
const &) = delete; // due to MetaAction
1440 MetaMapModeAction
& operator =(MetaMapModeAction
&&) = delete; // due to MetaAction
1442 SAL_DLLPRIVATE
virtual ~MetaMapModeAction() override
;
1444 virtual void Execute( OutputDevice
* pOut
) override
;
1445 SAL_DLLPRIVATE
virtual rtl::Reference
<MetaAction
> Clone() const override
;
1447 SAL_DLLPRIVATE
explicit MetaMapModeAction( const MapMode
& );
1449 SAL_DLLPRIVATE
virtual void Scale( double fScaleX
, double fScaleY
) override
;
1451 const MapMode
& GetMapMode() const { return maMapMode
; }
1452 void SetMapMode(const MapMode
& rMapMode
) { maMapMode
= rMapMode
; }
1455 // tdf#127471 decl for friend below
1456 namespace emfio
{ class ScaledFontDetectCorrectHelper
; }
1458 class VCL_DLLPUBLIC MetaFontAction final
: public MetaAction
1464 // tdf#127471 for import correction of own wrong written EMF/WMF files allow correction
1465 // of FontScale after import. Only from there, so use a friend here and keep the method private
1466 friend class emfio::ScaledFontDetectCorrectHelper
;
1467 void correctFontScale(tools::Long nNewFontScale
) { maFont
.SetAverageFontWidth(nNewFontScale
); }
1470 SAL_DLLPRIVATE
MetaFontAction();
1471 MetaFontAction(MetaFontAction
const &) = default;
1472 MetaFontAction(MetaFontAction
&&) = default;
1473 MetaFontAction
& operator =(MetaFontAction
const &) = delete; // due to MetaAction
1474 MetaFontAction
& operator =(MetaFontAction
&&) = delete; // due to MetaAction
1476 SAL_DLLPRIVATE
virtual ~MetaFontAction() override
;
1478 virtual void Execute( OutputDevice
* pOut
) override
;
1479 SAL_DLLPRIVATE
virtual rtl::Reference
<MetaAction
> Clone() const override
;
1481 explicit MetaFontAction( vcl::Font
);
1483 SAL_DLLPRIVATE
virtual void Scale( double fScaleX
, double fScaleY
) override
;
1485 const vcl::Font
& GetFont() const { return maFont
; }
1486 void SetFont(const vcl::Font
& rFont
) { maFont
= rFont
; }
1490 class VCL_DLLPUBLIC MetaPushAction final
: public MetaAction
1494 vcl::PushFlags mnFlags
;
1497 SAL_DLLPRIVATE
MetaPushAction();
1498 MetaPushAction(MetaPushAction
const &) = default;
1499 MetaPushAction(MetaPushAction
&&) = default;
1500 MetaPushAction
& operator =(MetaPushAction
const &) = delete; // due to MetaAction
1501 MetaPushAction
& operator =(MetaPushAction
&&) = delete; // due to MetaAction
1503 SAL_DLLPRIVATE
virtual ~MetaPushAction() override
;
1505 virtual void Execute( OutputDevice
* pOut
) override
;
1506 SAL_DLLPRIVATE
virtual rtl::Reference
<MetaAction
> Clone() const override
;
1508 explicit MetaPushAction( vcl::PushFlags nFlags
);
1510 vcl::PushFlags
GetFlags() const { return mnFlags
; }
1511 void SetPushFlags(const vcl::PushFlags nFlags
) { mnFlags
= nFlags
; }
1514 class VCL_DLLPUBLIC MetaPopAction final
: public MetaAction
1519 MetaPopAction(MetaPopAction
const &) = default;
1520 MetaPopAction(MetaPopAction
&&) = default;
1521 MetaPopAction
& operator =(MetaPopAction
const &) = delete; // due to MetaAction
1522 MetaPopAction
& operator =(MetaPopAction
&&) = delete; // due to MetaAction
1524 SAL_DLLPRIVATE
virtual ~MetaPopAction() override
;
1526 virtual void Execute( OutputDevice
* pOut
) override
;
1527 SAL_DLLPRIVATE
virtual rtl::Reference
<MetaAction
> Clone() const override
;
1530 class VCL_DLLPUBLIC MetaRasterOpAction final
: public MetaAction
1534 RasterOp meRasterOp
;
1537 SAL_DLLPRIVATE
MetaRasterOpAction();
1538 MetaRasterOpAction(MetaRasterOpAction
const &) = default;
1539 MetaRasterOpAction(MetaRasterOpAction
&&) = default;
1540 MetaRasterOpAction
& operator =(MetaRasterOpAction
const &) = delete; // due to MetaAction
1541 MetaRasterOpAction
& operator =(MetaRasterOpAction
&&) = delete; // due to MetaAction
1543 SAL_DLLPRIVATE
virtual ~MetaRasterOpAction() override
;
1545 virtual void Execute( OutputDevice
* pOut
) override
;
1546 SAL_DLLPRIVATE
virtual rtl::Reference
<MetaAction
> Clone() const override
;
1548 explicit MetaRasterOpAction( RasterOp eRasterOp
);
1550 RasterOp
GetRasterOp() const { return meRasterOp
; }
1551 void SetRasterOp(const RasterOp eRasterOp
) { meRasterOp
= eRasterOp
; }
1554 class SAL_DLLPUBLIC_RTTI MetaTransparentAction final
: public MetaAction
1558 tools::PolyPolygon maPolyPoly
;
1559 sal_uInt16 mnTransPercent
;
1562 MetaTransparentAction();
1563 MetaTransparentAction(MetaTransparentAction
const &) = default;
1564 MetaTransparentAction(MetaTransparentAction
&&) = default;
1565 MetaTransparentAction
& operator =(MetaTransparentAction
const &) = delete; // due to MetaAction
1566 MetaTransparentAction
& operator =(MetaTransparentAction
&&) = delete; // due to MetaAction
1568 virtual ~MetaTransparentAction() override
;
1570 SAL_DLLPRIVATE
virtual void Execute( OutputDevice
* pOut
) override
;
1571 SAL_DLLPRIVATE
virtual rtl::Reference
<MetaAction
> Clone() const override
;
1573 MetaTransparentAction( tools::PolyPolygon aPolyPoly
, sal_uInt16 nTransPercent
);
1575 SAL_DLLPRIVATE
virtual void Move( tools::Long nHorzMove
, tools::Long nVertMove
) override
;
1576 SAL_DLLPRIVATE
virtual void Scale( double fScaleX
, double fScaleY
) override
;
1578 const tools::PolyPolygon
& GetPolyPolygon() const { return maPolyPoly
; }
1579 sal_uInt16
GetTransparence() const { return mnTransPercent
; }
1580 void SetPolyPolygon(const tools::PolyPolygon
& rPolyPoly
) { maPolyPoly
= rPolyPoly
; }
1581 void SetTransparence(const sal_uInt16 nTransPercent
) { mnTransPercent
= nTransPercent
; }
1583 bool IsTransparent() const override
{ return true; }
1586 class UNLESS_MERGELIBS(VCL_DLLPUBLIC
) MetaFloatTransparentAction final
: public MetaAction
1593 Gradient maGradient
;
1595 // tdf#155479 allow holding MCGR infos
1596 std::optional
<basegfx::BColorStops
> maSVGTransparencyColorStops
;
1599 MetaFloatTransparentAction();
1600 MetaFloatTransparentAction(MetaFloatTransparentAction
const &) = default;
1601 MetaFloatTransparentAction(MetaFloatTransparentAction
&&) = default;
1602 MetaFloatTransparentAction
& operator =(MetaFloatTransparentAction
const &) = delete; // due to MetaAction
1603 MetaFloatTransparentAction
& operator =(MetaFloatTransparentAction
&&) = delete; // due to MetaAction
1605 virtual ~MetaFloatTransparentAction() override
;
1607 SAL_DLLPRIVATE
virtual void Execute( OutputDevice
* pOut
) override
;
1608 SAL_DLLPRIVATE
virtual rtl::Reference
<MetaAction
> Clone() const override
;
1610 MetaFloatTransparentAction( const GDIMetaFile
& rMtf
, const Point
& rPos
,
1611 const Size
& rSize
, Gradient aGradient
);
1613 SAL_DLLPRIVATE
virtual void Move( tools::Long nHorzMove
, tools::Long nVertMove
) override
;
1614 SAL_DLLPRIVATE
virtual void Scale( double fScaleX
, double fScaleY
) override
;
1616 const GDIMetaFile
& GetGDIMetaFile() const { return maMtf
; }
1617 const Point
& GetPoint() const { return maPoint
; }
1618 const Size
& GetSize() const { return maSize
; }
1619 const Gradient
& GetGradient() const { return maGradient
; }
1620 void SetGDIMetaFile(const GDIMetaFile
&rMtf
) { maMtf
= rMtf
; }
1621 void SetPoint(const Point
& rPoint
) { maPoint
= rPoint
; }
1622 void SetSize(const Size
& rSize
) { maSize
= rSize
; }
1623 void SetGradient(const Gradient
& rGradient
) { maGradient
= rGradient
; }
1624 bool IsTransparent() const override
{ return true; }
1626 // tdf#155479 allow holding MCGR infos
1627 const basegfx::BColorStops
* getSVGTransparencyColorStops() const
1628 { return !maSVGTransparencyColorStops
? nullptr : &(*maSVGTransparencyColorStops
); }
1629 void addSVGTransparencyColorStops(const basegfx::BColorStops
& rSVGTransparencyColorStops
);
1632 class UNLESS_MERGELIBS(VCL_DLLPUBLIC
) MetaEPSAction final
: public MetaAction
1637 GDIMetaFile maSubst
;
1643 MetaEPSAction(MetaEPSAction
const &) = default;
1644 MetaEPSAction(MetaEPSAction
&&) = default;
1645 MetaEPSAction
& operator =(MetaEPSAction
const &) = delete; // due to MetaAction
1646 MetaEPSAction
& operator =(MetaEPSAction
&&) = delete; // due to MetaAction
1648 virtual ~MetaEPSAction() override
;
1650 SAL_DLLPRIVATE
virtual void Execute( OutputDevice
* pOut
) override
;
1651 SAL_DLLPRIVATE
virtual rtl::Reference
<MetaAction
> Clone() const override
;
1653 MetaEPSAction( const Point
& rPoint
, const Size
& rSize
,
1654 GfxLink aGfxLink
, const GDIMetaFile
& rSubst
);
1656 SAL_DLLPRIVATE
virtual void Move( tools::Long nHorzMove
, tools::Long nVertMove
) override
;
1657 SAL_DLLPRIVATE
virtual void Scale( double fScaleX
, double fScaleY
) override
;
1659 const GfxLink
& GetLink() const { return maGfxLink
; }
1660 const GDIMetaFile
& GetSubstitute() const { return maSubst
; }
1661 const Point
& GetPoint() const { return maPoint
; }
1662 const Size
& GetSize() const { return maSize
; }
1663 void SetLink(const GfxLink
& rGfxLink
) { maGfxLink
= rGfxLink
; }
1664 void SetSubstitute(const GDIMetaFile
& rSubst
) { maSubst
= rSubst
; }
1665 void SetPoint(const Point
& rPoint
) { maPoint
= rPoint
; }
1666 void SetSize(const Size
& rSize
) { maSize
= rSize
; }
1669 class VCL_DLLPUBLIC MetaRefPointAction final
: public MetaAction
1677 SAL_DLLPRIVATE
MetaRefPointAction();
1678 MetaRefPointAction(MetaRefPointAction
const &) = default;
1679 MetaRefPointAction(MetaRefPointAction
&&) = default;
1680 MetaRefPointAction
& operator =(MetaRefPointAction
const &) = delete; // due to MetaAction
1681 MetaRefPointAction
& operator =(MetaRefPointAction
&&) = delete; // due to MetaAction
1683 SAL_DLLPRIVATE
virtual ~MetaRefPointAction() override
;
1685 virtual void Execute( OutputDevice
* pOut
) override
;
1686 SAL_DLLPRIVATE
virtual rtl::Reference
<MetaAction
> Clone() const override
;
1688 SAL_DLLPRIVATE
MetaRefPointAction( const Point
& rRefPoint
, bool bSet
);
1690 const Point
& GetRefPoint() const { return maRefPoint
; }
1691 void SetRefPoint(const Point
& rRefPoint
) { maRefPoint
= rRefPoint
; }
1692 void SetSetting(const bool bSet
) { mbSet
= bSet
; }
1693 bool IsSetting() const { return mbSet
; }
1696 class VCL_DLLPUBLIC MetaCommentAction final
: public MetaAction
1702 sal_uInt32 mnDataSize
;
1703 std::unique_ptr
<sal_uInt8
[]>
1706 SAL_DLLPRIVATE
void ImplInitDynamicData( const sal_uInt8
* pData
, sal_uInt32 nDataSize
);
1709 SAL_DLLPRIVATE
virtual ~MetaCommentAction() override
;
1712 SAL_DLLPRIVATE
explicit MetaCommentAction();
1713 SAL_DLLPRIVATE
explicit MetaCommentAction( const MetaCommentAction
& rAct
);
1714 explicit MetaCommentAction( OString aComment
, sal_Int32 nValue
= 0, const sal_uInt8
* pData
= nullptr, sal_uInt32 nDataSize
= 0 );
1716 SAL_DLLPRIVATE
virtual void Move( tools::Long nHorzMove
, tools::Long nVertMove
) override
;
1717 SAL_DLLPRIVATE
virtual void Scale( double fScaleX
, double fScaleY
) override
;
1719 SAL_DLLPRIVATE
virtual void Execute( OutputDevice
* pOut
) override
;
1720 SAL_DLLPRIVATE
virtual rtl::Reference
<MetaAction
> Clone() const override
;
1722 const OString
& GetComment() const { return maComment
; }
1723 sal_Int32
GetValue() const { return mnValue
; }
1724 sal_uInt32
GetDataSize() const { return mnDataSize
; }
1725 const sal_uInt8
* GetData() const { return mpData
.get(); }
1726 void SetComment(const OString
& rComment
) { maComment
= rComment
; }
1727 void SetValue(const sal_Int32 nValue
) { mnValue
= nValue
; }
1728 void SetDataSize(const sal_Int32 nDataSize
) { mnDataSize
= nDataSize
; }
1729 void SetData(const sal_uInt8
* pData
, const sal_uInt32 nDataSize
) { ImplInitDynamicData(pData
, nDataSize
); }
1732 class VCL_DLLPUBLIC MetaLayoutModeAction final
: public MetaAction
1736 vcl::text::ComplexTextLayoutFlags mnLayoutMode
;
1739 SAL_DLLPRIVATE
MetaLayoutModeAction();
1740 MetaLayoutModeAction(MetaLayoutModeAction
const &) = default;
1741 MetaLayoutModeAction(MetaLayoutModeAction
&&) = default;
1742 MetaLayoutModeAction
& operator =(MetaLayoutModeAction
const &) = delete; // due to MetaAction
1743 MetaLayoutModeAction
& operator =(MetaLayoutModeAction
&&) = delete; // due to MetaAction
1745 SAL_DLLPRIVATE
virtual ~MetaLayoutModeAction() override
;
1747 virtual void Execute( OutputDevice
* pOut
) override
;
1748 SAL_DLLPRIVATE
virtual rtl::Reference
<MetaAction
> Clone() const override
;
1750 explicit MetaLayoutModeAction( vcl::text::ComplexTextLayoutFlags nLayoutMode
);
1752 vcl::text::ComplexTextLayoutFlags
GetLayoutMode() const { return mnLayoutMode
; }
1753 void SetLayoutMode(const vcl::text::ComplexTextLayoutFlags nLayoutMode
) { mnLayoutMode
= nLayoutMode
; }
1756 class VCL_DLLPUBLIC MetaTextLanguageAction final
: public MetaAction
1760 LanguageType meTextLanguage
;
1763 SAL_DLLPRIVATE
MetaTextLanguageAction();
1764 MetaTextLanguageAction(MetaTextLanguageAction
const &) = default;
1765 MetaTextLanguageAction(MetaTextLanguageAction
&&) = default;
1766 MetaTextLanguageAction
& operator =(MetaTextLanguageAction
const &) = delete; // due to MetaAction
1767 MetaTextLanguageAction
& operator =(MetaTextLanguageAction
&&) = delete; // due to MetaAction
1769 SAL_DLLPRIVATE
virtual ~MetaTextLanguageAction() override
;
1771 virtual void Execute( OutputDevice
* pOut
) override
;
1772 SAL_DLLPRIVATE
virtual rtl::Reference
<MetaAction
> Clone() const override
;
1774 SAL_DLLPRIVATE
explicit MetaTextLanguageAction( LanguageType
);
1776 LanguageType
GetTextLanguage() const { return meTextLanguage
; }
1777 void SetTextLanguage(const LanguageType eTextLanguage
) { meTextLanguage
= eTextLanguage
; }
1780 #endif // INCLUDED_VCL_METAACT_HXX
1782 /* vim:set shiftwidth=4 softtabstop=4 expandtab: */