LibreOffice Module svx (master) 1
viewcontactofsdrpage.cxx
Go to the documentation of this file.
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
22#include <svx/svdpage.hxx>
26#include <svtools/colorcfg.hxx>
27#include <tools/debug.hxx>
28#include <vcl/svapp.hxx>
37#include <vcl/lazydelete.hxx>
38#include <vcl/settings.hxx>
41#include <bitmaps.hlst>
42
43namespace sdr::contact {
44
46: mrParentViewContactOfSdrPage(rParentViewContactOfSdrPage)
47{
48}
49
51{
52}
53
55{
57}
58
60{
62}
63
65{
66 ViewObjectContact* pRetval = new ViewObjectContactOfPageBackground(rObjectContact, *this);
67 DBG_ASSERT(pRetval, "ViewContact::CreateObjectSpecificViewObjectContact() failed (!)");
68
69 return *pRetval;
70}
71
73{
74 // We have only the page information, not the view information. Use the
75 // svtools::DOCCOLOR color for initialisation
76 const svtools::ColorConfig aColorConfig;
77 const Color aInitColor(aColorConfig.GetColorValue(svtools::DOCCOLOR).nColor);
78 const basegfx::BColor aRGBColor(aInitColor.getBColor());
81
82 rVisitor.visit(xReference);
83}
84
86: ViewContactOfPageSubObject(rParentViewContactOfSdrPage)
87{
88}
89
91{
92}
93
95{
96 ViewObjectContact* pRetval = new ViewObjectContactOfPageShadow(rObjectContact, *this);
97 DBG_ASSERT(pRetval, "ViewContact::CreateObjectSpecificViewObjectContact() failed (!)");
98
99 return *pRetval;
100}
101
103{
104 static bool bUseOldPageShadow(false); // loplugin:constvars:ignore
105 const SdrPage& rPage = getPage();
106 basegfx::B2DHomMatrix aPageMatrix;
107 aPageMatrix.set(0, 0, static_cast<double>(rPage.GetWidth()));
108 aPageMatrix.set(1, 1, static_cast<double>(rPage.GetHeight()));
109
110 if(bUseOldPageShadow)
111 {
112 // create page shadow polygon
113 const double fPageBorderFactor(1.0 / 256.0);
114 basegfx::B2DPolygon aPageShadowPolygon;
115 aPageShadowPolygon.append(basegfx::B2DPoint(1.0, fPageBorderFactor));
116 aPageShadowPolygon.append(basegfx::B2DPoint(1.0 + fPageBorderFactor, fPageBorderFactor));
117 aPageShadowPolygon.append(basegfx::B2DPoint(1.0 + fPageBorderFactor, 1.0 + fPageBorderFactor));
118 aPageShadowPolygon.append(basegfx::B2DPoint(fPageBorderFactor, 1.0 + fPageBorderFactor));
119 aPageShadowPolygon.append(basegfx::B2DPoint(fPageBorderFactor, 1.0));
120 aPageShadowPolygon.append(basegfx::B2DPoint(1.0, 1.0));
121 aPageShadowPolygon.setClosed(true);
122 aPageShadowPolygon.transform(aPageMatrix);
123
124 // We have only the page information, not the view information. Use the
125 // svtools::FONTCOLOR color for initialisation
126 const svtools::ColorConfig aColorConfig;
127 const Color aShadowColor(aColorConfig.GetColorValue(svtools::FONTCOLOR).nColor);
128 const basegfx::BColor aRGBShadowColor(aShadowColor.getBColor());
131 basegfx::B2DPolyPolygon(aPageShadowPolygon),
132 aRGBShadowColor));
133
134 rVisitor.visit(xReference);
135 }
136 else
137 {
139 BitmapEx(SIP_SA_PAGESHADOW35X35)));
140
141 if(aDiscreteShadow.get())
142 {
145 aPageMatrix,
146 *aDiscreteShadow.get()));
147
148 rVisitor.visit(xReference);
149 }
150 }
151}
152
154: ViewContactOfPageSubObject(rParentViewContactOfSdrPage)
155{
156}
157
159{
160}
161
163{
164 ViewObjectContact* pRetval = new ViewObjectContactOfMasterPage(rObjectContact, *this);
165 DBG_ASSERT(pRetval, "ViewContact::CreateObjectSpecificViewObjectContact() failed (!)");
166
167 return *pRetval;
168}
169
171{
172 // this class is used when the page is a MasterPage and is responsible to
173 // create a visualisation for the MPBGO, if exists. This needs to be suppressed
174 // when a SdrPage which uses a MasterPage creates it's output. Suppression
175 // is done in the corresponding VOC since DisplayInfo data is needed
176 const SdrPage& rPage = getPage();
177
178 if(rPage.IsMasterPage())
179 {
180 if(0 == rPage.GetPageNum())
181 {
182 // #i98063#
183 // filter MasterPage 0 since it's the HandoutPage. Thus, it's a
184 // MasterPage, but has no MPBGO, so there is nothing to do here.
185 }
186 else
187 {
189
190 // #i110846# Suppress SdrPage FillStyle for MasterPages without StyleSheets,
191 // else the PoolDefault (XFILL_COLOR and Blue8) will be used. Normally, all
192 // MasterPages should have a StyleSheet exactly for this reason, but historically
193 // e.g. the Notes MasterPage has no StyleSheet set (and there maybe others).
195 {
196 // create page fill attributes with correct properties
199 }
200
201 if(!aFill.isDefault())
202 {
203 // direct model data is the page size, get and use it
204 const basegfx::B2DRange aOuterRange(
205 0, 0, rPage.GetWidth(), rPage.GetHeight());
206 const basegfx::B2DRange aInnerRange(
207 rPage.GetLeftBorder(), rPage.GetUpperBorder(),
208 rPage.GetWidth() - rPage.GetRightBorder(), rPage.GetHeight() - rPage.GetLowerBorder());
209 bool const isFullSize(rPage.IsBackgroundFullSize());
210 const basegfx::B2DPolygon aFillPolygon(
211 basegfx::utils::createPolygonFromRect(isFullSize ? aOuterRange : aInnerRange));
214 basegfx::B2DPolyPolygon(aFillPolygon),
215 aFill,
217
218 rVisitor.visit(xReference);
219 }
220 }
221 }
222}
223
225: ViewContactOfPageSubObject(rParentViewContactOfSdrPage)
226{
227}
228
230{
231}
232
234{
235 ViewObjectContact* pRetval = new ViewObjectContactOfPageFill(rObjectContact, *this);
236 DBG_ASSERT(pRetval, "ViewContact::CreateObjectSpecificViewObjectContact() failed (!)");
237
238 return *pRetval;
239}
240
242{
243 const SdrPage& rPage = getPage();
244 const basegfx::B2DRange aPageFillRange(0.0, 0.0, static_cast<double>(rPage.GetWidth()), static_cast<double>(rPage.GetHeight()));
245 const basegfx::B2DPolygon aPageFillPolygon(basegfx::utils::createPolygonFromRect(aPageFillRange));
246
247 // We have only the page information, not the view information. Use the
248 // svtools::DOCCOLOR color for initialisation
249 const svtools::ColorConfig aColorConfig;
250 const Color aPageFillColor(aColorConfig.GetColorValue(svtools::DOCCOLOR).nColor);
251
252 // create and add primitive
253 const basegfx::BColor aRGBColor(aPageFillColor.getBColor());
255}
256
258: ViewContactOfPageSubObject(rParentViewContactOfSdrPage)
259{
260}
261
263{
264}
265
267{
268 ViewObjectContact* pRetval = new ViewObjectContactOfOuterPageBorder(rObjectContact, *this);
269 DBG_ASSERT(pRetval, "ViewContact::CreateObjectSpecificViewObjectContact() failed (!)");
270
271 return *pRetval;
272}
273
275{
276 const SdrPage& rPage = getPage();
277 const basegfx::B2DRange aPageBorderRange(0.0, 0.0, static_cast<double>(rPage.GetWidth()), static_cast<double>(rPage.GetHeight()));
278
279 // Changed to 0x949599 for renaissance, before svtools::FONTCOLOR was used.
280 // Added old case as fallback for HighContrast.
281 basegfx::BColor aRGBBorderColor(0x94 / double(0xff), 0x95 / double(0xff), 0x99 / double(0xff));
282
283 if(Application::GetSettings().GetStyleSettings().GetHighContrastMode())
284 {
285 const svtools::ColorConfig aColorConfig;
286 const Color aBorderColor(aColorConfig.GetColorValue(svtools::FONTCOLOR).nColor);
287
288 aRGBBorderColor = aBorderColor.getBColor();
289 }
290
292 {
293 // #i93597# for Report Designer, the page border shall be only displayed right and left,
294 // but not top and bottom. Create simplified geometry.
295 basegfx::B2DPolygon aLeft, aRight;
296
297 aLeft.append(basegfx::B2DPoint(aPageBorderRange.getMinX(), aPageBorderRange.getMinY()));
298 aLeft.append(basegfx::B2DPoint(aPageBorderRange.getMinX(), aPageBorderRange.getMaxY()));
299
300 aRight.append(basegfx::B2DPoint(aPageBorderRange.getMaxX(), aPageBorderRange.getMinY()));
301 aRight.append(basegfx::B2DPoint(aPageBorderRange.getMaxX(), aPageBorderRange.getMaxY()));
302
305 }
306 else
307 {
308 basegfx::B2DPolygon aPageBorderPolygon(basegfx::utils::createPolygonFromRect(aPageBorderRange));
309 rVisitor.visit(drawinglayer::primitive2d::Primitive2DReference(new drawinglayer::primitive2d::PolygonHairlinePrimitive2D(std::move(aPageBorderPolygon), aRGBBorderColor)));
310 }
311}
312
314: ViewContactOfPageSubObject(rParentViewContactOfSdrPage)
315{
316}
317
319{
320}
321
323{
324 ViewObjectContact* pRetval = new ViewObjectContactOfInnerPageBorder(rObjectContact, *this);
325 DBG_ASSERT(pRetval, "ViewContact::CreateObjectSpecificViewObjectContact() failed (!)");
326
327 return *pRetval;
328}
329
331{
332 const SdrPage& rPage = getPage();
333 const basegfx::B2DRange aPageBorderRange(
334 static_cast<double>(rPage.GetLeftBorder()), static_cast<double>(rPage.GetUpperBorder()),
335 static_cast<double>(rPage.GetWidth() - rPage.GetRightBorder()), static_cast<double>(rPage.GetHeight() - rPage.GetLowerBorder()));
336 basegfx::B2DPolygon aPageBorderPolygon(basegfx::utils::createPolygonFromRect(aPageBorderRange));
337
338 // We have only the page information, not the view information. Use the
339 // svtools::FONTCOLOR or svtools::DOCBOUNDARIES color for initialisation
340 const svtools::ColorConfig aColorConfig;
341 Color aBorderColor;
342
343 if(Application::GetSettings().GetStyleSettings().GetHighContrastMode())
344 {
345 aBorderColor = aColorConfig.GetColorValue(svtools::FONTCOLOR).nColor;
346 }
347 else
348 {
350 aBorderColor = aBorderConfig.bIsVisible ? aBorderConfig.nColor :
352 }
353
354 // create page outer border primitive
355 const basegfx::BColor aRGBBorderColor(aBorderColor.getBColor());
356 rVisitor.visit(drawinglayer::primitive2d::Primitive2DReference(new drawinglayer::primitive2d::PolygonHairlinePrimitive2D(std::move(aPageBorderPolygon), aRGBBorderColor)));
357}
358
360: ViewContactOfPageSubObject(rParentViewContactOfSdrPage)
361{
362}
363
365{
366}
367
369{
370 ViewObjectContact* pRetval = new ViewObjectContactOfPageHierarchy(rObjectContact, *this);
371 DBG_ASSERT(pRetval, "ViewContact::CreateObjectSpecificViewObjectContact() failed (!)");
372
373 return *pRetval;
374}
375
377{
378 // collect sub-hierarchy
379 const sal_uInt32 nObjectCount(GetObjectCount());
380
381 // collect all sub-primitives
382 for(sal_uInt32 a(0); a < nObjectCount; a++)
383 {
384 const ViewContact& rCandidate(GetViewContact(a));
385 rCandidate.getViewIndependentPrimitive2DContainer(rVisitor);
386 }
387}
388
390: ViewContactOfPageSubObject(rParentViewContactOfSdrPage)
391{
392}
393
395{
396}
397
399{
400 return getPage().GetObjCount();
401}
402
404{
405 SdrObject* pObj = getPage().GetObj(nIndex);
406 assert(pObj && "ViewContactOfPageHierarchy::GetViewContact: Corrupt SdrObjList (!)");
407 return pObj->GetViewContact();
408}
409
411{
412 ViewObjectContact* pRetval = new ViewObjectContactOfPageGrid(rObjectContact, *this);
413 DBG_ASSERT(pRetval, "ViewContact::CreateObjectSpecificViewObjectContact() failed (!)");
414
415 return *pRetval;
416}
417
419{
420 // We have only the page information, not the view information and thus no grid settings. Create empty
421 // default. For the view-dependent implementation, see ViewObjectContactOfPageGrid::createPrimitive2DSequence
422}
423
424ViewContactOfGrid::ViewContactOfGrid(ViewContactOfSdrPage& rParentViewContactOfSdrPage, bool bFront)
425: ViewContactOfPageSubObject(rParentViewContactOfSdrPage),
426 mbFront(bFront)
427{
428}
429
431{
432}
433
435{
436 ViewObjectContact* pRetval = new ViewObjectContactOfPageHelplines(rObjectContact, *this);
437 DBG_ASSERT(pRetval, "ViewContact::CreateObjectSpecificViewObjectContact() failed (!)");
438
439 return *pRetval;
440}
441
443{
444 // We have only the page information, not the view information and thus no helplines. Create empty
445 // default. For the view-dependent implementation, see ViewObjectContactOfPageHelplines::createPrimitive2DSequence
446}
447
449: ViewContactOfPageSubObject(rParentViewContactOfSdrPage),
450 mbFront(bFront)
451{
452}
453
455{
456}
457
458// Create an Object-Specific ViewObjectContact, set ViewContact and
459// ObjectContact. Always needs to return something.
461{
462 ViewObjectContact* pRetval = new ViewObjectContactOfSdrPage(rObjectContact, *this);
463 DBG_ASSERT(pRetval, "ViewContact::CreateObjectSpecificViewObjectContact() failed (!)");
464
465 return *pRetval;
466}
467
469: mrPage(rPage),
470 maViewContactOfPageBackground(*this),
471 maViewContactOfPageShadow(*this),
472 maViewContactOfPageFill(*this),
473 maViewContactOfMasterPage(*this),
474 maViewContactOfOuterPageBorder(*this),
475 maViewContactOfInnerPageBorder(*this),
476 maViewContactOfGridBack(*this, false),
477 maViewContactOfHelplinesBack(*this, false),
478 maViewContactOfPageHierarchy(*this),
479 maViewContactOfGridFront(*this, true),
480 maViewContactOfHelplinesFront(*this, true)
481{
482}
483
485{
486}
487
488// Access to possible sub-hierarchy
490{
491 // Fixed count of content. It contains PageBackground (Wiese), PageShadow, PageFill,
492 // then - depending on if the page has a MasterPage - either MasterPage Hierarchy
493 // or MPBGO. Also OuterPageBorder, InnerPageBorder and two pairs of Grid and Helplines
494 // (for front and back) which internally are visible or not depending on the current
495 // front/back setting for those.
496 return 11;
497}
498
500{
501 switch(nIndex)
502 {
504 case 1: return const_cast<ViewContactOfPageShadow&>(maViewContactOfPageShadow);
505 case 2: return const_cast<ViewContactOfPageFill&>(maViewContactOfPageFill);
506 case 3:
507 {
508 const SdrPage& rPage = GetSdrPage();
509
510 if(rPage.TRG_HasMasterPage())
511 {
513 }
514 else
515 {
517 }
518 }
521 case 6: return const_cast<ViewContactOfGrid&>(maViewContactOfGridBack);
522 case 7: return const_cast<ViewContactOfHelplines&>(maViewContactOfHelplinesBack);
523 case 8: return const_cast<ViewContactOfPageHierarchy&>(maViewContactOfPageHierarchy);
524 case 9: return const_cast<ViewContactOfGrid&>(maViewContactOfGridFront);
525 case 10: case 11: return const_cast<ViewContactOfHelplines&>(maViewContactOfHelplinesFront);
526 default: assert(false);return const_cast<ViewContactOfHelplines&>(maViewContactOfHelplinesFront);
527 }
528}
529
530// React on changes of the object of this ViewContact
532{
533 // call parent
535
536 // apply to local viewContacts, they all rely on page information. Exception
537 // is the sub hierarchy; this will not be influenced by the change
541
542 const SdrPage& rPage = GetSdrPage();
543
544 if(rPage.TRG_HasMasterPage())
545 {
547 }
548 else if(rPage.IsMasterPage())
549 {
551 }
552
559}
560
562{
563 // collect all sub-sequences including sub hierarchy.
567
568 const SdrPage& rPage = GetSdrPage();
569
570 if(rPage.TRG_HasMasterPage())
571 {
573 }
574 else if(rPage.IsMasterPage())
575 {
577 }
578
582
583 // Only add front versions of grid and helplines since no visibility test is done,
584 // so adding the back incarnations is not necessary. This makes the Front
585 // visualisation the default when no visibility tests are done.
586
587 // Since we have no view here, no grid and helpline definitions are available currently. The used
588 // methods at ViewContactOfHelplines and ViewContactOfGrid return only empty sequences and
589 // do not need to be called ATM. This may change later if grid or helpline info gets
590 // model data (it should not). Keeping the lines commented to hold this hint.
591
592 // drawinglayer::primitive2d::appendPrimitive2DSequenceToPrimitive2DSequence(xRetval, maViewContactOfGridFront.getViewIndependentPrimitive2DContainer());
593 // drawinglayer::primitive2d::appendPrimitive2DSequenceToPrimitive2DSequence(xRetval, maViewContactOfHelplinesFront.getViewIndependentPrimitive2DContainer());
594}
595
596}
597
598/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
static const AllSettings & GetSettings()
basegfx::BColor getBColor() const
SdrObject * GetObj(size_t nNum) const
Definition: svdpage.cxx:822
size_t GetObjCount() const
Definition: svdpage.cxx:816
Abstract DrawObject.
Definition: svdobj.hxx:261
sdr::contact::ViewContact & GetViewContact() const
Definition: svdobj.cxx:261
const SfxItemSet & GetItemSet() const
Definition: svdpage.hxx:340
SfxStyleSheet * GetStyleSheet() const
Definition: svdpage.hxx:347
A SdrPage contains exactly one SdrObjList and a description of the physical page dimensions (size / m...
Definition: svdpage.hxx:377
sal_uInt16 GetPageNum() const
Definition: svdpage.cxx:1611
bool getPageBorderOnlyLeftRight() const
Definition: svdpage.hxx:477
bool IsMasterPage() const
Definition: svdpage.hxx:462
sal_Int32 GetUpperBorder() const
Definition: svdpage.cxx:1569
sal_Int32 GetRightBorder() const
Definition: svdpage.cxx:1574
sal_Int32 GetLeftBorder() const
Definition: svdpage.cxx:1564
sdr::contact::ViewContact & TRG_GetMasterPageDescriptorViewContact() const
Definition: svdpage.cxx:1684
bool TRG_HasMasterPage() const
Definition: svdpage.hxx:498
SdrPageProperties & getSdrPageProperties()
Definition: svdpage.cxx:1887
bool IsBackgroundFullSize() const
Definition: svdpage.cxx:1593
sal_Int32 GetLowerBorder() const
Definition: svdpage.cxx:1579
tools::Long GetHeight() const
Definition: svdpage.cxx:1489
tools::Long GetWidth() const
Definition: svdpage.cxx:1463
void set(sal_uInt16 nRow, sal_uInt16 nColumn, double fValue)
void transform(const basegfx::B2DHomMatrix &rMatrix)
void append(const basegfx::B2DPoint &rPoint, sal_uInt32 nCount)
void setClosed(bool bNew)
TYPE getMaxX() const
TYPE getMinX() const
TYPE getMinY() const
TYPE getMaxY() const
virtual void visit(const Primitive2DReference &)=0
ViewContactOfGrid(ViewContactOfSdrPage &rParentViewContactOfSdrPage, bool bFront)
virtual void createViewIndependentPrimitive2DSequence(drawinglayer::primitive2d::Primitive2DDecompositionVisitor &rVisitor) const override
virtual ViewObjectContact & CreateObjectSpecificViewObjectContact(ObjectContact &rObjectContact) override
virtual ViewObjectContact & CreateObjectSpecificViewObjectContact(ObjectContact &rObjectContact) override
ViewContactOfHelplines(ViewContactOfSdrPage &rParentViewContactOfSdrPage, bool bFront)
virtual void createViewIndependentPrimitive2DSequence(drawinglayer::primitive2d::Primitive2DDecompositionVisitor &rVisitor) const override
ViewContactOfInnerPageBorder(ViewContactOfSdrPage &rParentViewContactOfSdrPage)
virtual ViewObjectContact & CreateObjectSpecificViewObjectContact(ObjectContact &rObjectContact) override
virtual void createViewIndependentPrimitive2DSequence(drawinglayer::primitive2d::Primitive2DDecompositionVisitor &rVisitor) const override
virtual void createViewIndependentPrimitive2DSequence(drawinglayer::primitive2d::Primitive2DDecompositionVisitor &rVisitor) const override
virtual ViewObjectContact & CreateObjectSpecificViewObjectContact(ObjectContact &rObjectContact) override
ViewContactOfMasterPage(ViewContactOfSdrPage &rParentViewContactOfSdrPage)
virtual void createViewIndependentPrimitive2DSequence(drawinglayer::primitive2d::Primitive2DDecompositionVisitor &rVisitor) const override
virtual ViewObjectContact & CreateObjectSpecificViewObjectContact(ObjectContact &rObjectContact) override
ViewContactOfOuterPageBorder(ViewContactOfSdrPage &rParentViewContactOfSdrPage)
ViewContactOfPageBackground(ViewContactOfSdrPage &rParentViewContactOfSdrPage)
virtual ViewObjectContact & CreateObjectSpecificViewObjectContact(ObjectContact &rObjectContact) override
virtual void createViewIndependentPrimitive2DSequence(drawinglayer::primitive2d::Primitive2DDecompositionVisitor &rVisitor) const override
ViewContactOfPageFill(ViewContactOfSdrPage &rParentViewContactOfSdrPage)
virtual void createViewIndependentPrimitive2DSequence(drawinglayer::primitive2d::Primitive2DDecompositionVisitor &rVisitor) const override
virtual ViewObjectContact & CreateObjectSpecificViewObjectContact(ObjectContact &rObjectContact) override
This view contact corresponds with all SdrObject instances in a single SdrPage.
virtual ViewContact & GetViewContact(sal_uInt32 nIndex) const override
virtual sal_uInt32 GetObjectCount() const override
virtual void createViewIndependentPrimitive2DSequence(drawinglayer::primitive2d::Primitive2DDecompositionVisitor &rVisitor) const override
ViewContactOfPageHierarchy(ViewContactOfSdrPage &rParentViewContactOfSdrPage)
virtual ViewObjectContact & CreateObjectSpecificViewObjectContact(ObjectContact &rObjectContact) override
virtual void createViewIndependentPrimitive2DSequence(drawinglayer::primitive2d::Primitive2DDecompositionVisitor &rVisitor) const override
ViewContactOfPageShadow(ViewContactOfSdrPage &rParentViewContactOfSdrPage)
virtual ViewObjectContact & CreateObjectSpecificViewObjectContact(ObjectContact &rObjectContact) override
ViewContactOfPageSubObject(ViewContactOfSdrPage &rParentViewContactOfSdrPage)
virtual ViewContact * GetParentContact() const override
ViewContactOfMasterPage maViewContactOfMasterPage
ViewContactOfPageBackground maViewContactOfPageBackground
virtual ViewContact & GetViewContact(sal_uInt32 nIndex) const override
ViewContactOfInnerPageBorder maViewContactOfInnerPageBorder
virtual void createViewIndependentPrimitive2DSequence(drawinglayer::primitive2d::Primitive2DDecompositionVisitor &rVisitor) const override
ViewContactOfPageShadow maViewContactOfPageShadow
ViewContactOfPageHierarchy maViewContactOfPageHierarchy
virtual ViewObjectContact & CreateObjectSpecificViewObjectContact(ObjectContact &rObjectContact) override
ViewContactOfOuterPageBorder maViewContactOfOuterPageBorder
ViewContactOfHelplines maViewContactOfHelplinesFront
ViewContactOfHelplines maViewContactOfHelplinesBack
virtual sal_uInt32 GetObjectCount() const override
virtual void ActionChanged()
void getViewIndependentPrimitive2DContainer(drawinglayer::primitive2d::Primitive2DDecompositionVisitor &rVisitor) const
ColorConfigValue GetColorValue(ColorConfigEntry eEntry, bool bSmart=true) const
#define DBG_ASSERT(sCon, aError)
sal_Int32 nIndex
uno_Any a
B2DPolygon createPolygonFromRect(const B2DRectangle &rRect, double fRadiusX, double fRadiusY)
attribute::SdrFillAttribute createNewSdrFillAttribute(const SfxItemSet &rSet)
Primitive2DReference createPolyPolygonFillPrimitive(const basegfx::B2DPolyPolygon &rPolyPolygon, const attribute::SdrFillAttribute &rFill, const attribute::FillGradientAttribute &rFillGradient)