blob: 98d6f577e86eea3318022995f895bf40d19f8394 (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
|
/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */
/*
* This file is part of the LibreOffice project.
*
* This Source Code Form is subject to the terms of the Mozilla Public
* License, v. 2.0. If a copy of the MPL was not distributed with this
* file, You can obtain one at http://mozilla.org/MPL/2.0/.
*
* This file incorporates work covered by the following license notice:
*
* Licensed to the Apache Software Foundation (ASF) under one or more
* contributor license agreements. See the NOTICE file distributed
* with this work for additional information regarding copyright
* ownership. The ASF licenses this file to you under the Apache
* License, Version 2.0 (the "License"); you may not use this file
* except in compliance with the License. You may obtain a copy of
* the License at http://www.apache.org/licenses/LICENSE-2.0 .
*/
#ifndef INCLUDED_SVX_INC_SDR_CONTACT_VIEWCONTACTOFSDRPAGE_HXX
#define INCLUDED_SVX_INC_SDR_CONTACT_VIEWCONTACTOFSDRPAGE_HXX
#include <sal/types.h>
#include <svx/sdr/contact/viewcontact.hxx>
class SdrPage;
namespace sdr::contact {
class ViewContactOfSdrPage;
class ViewContactOfPageSubObject : public ViewContact
{
ViewContactOfSdrPage& mrParentViewContactOfSdrPage;
public:
explicit ViewContactOfPageSubObject(ViewContactOfSdrPage& rParentViewContactOfSdrPage);
virtual ~ViewContactOfPageSubObject() override;
virtual ViewContact* GetParentContact() const override;
const SdrPage& getPage() const;
};
class ViewContactOfPageBackground final : public ViewContactOfPageSubObject
{
virtual ViewObjectContact& CreateObjectSpecificViewObjectContact(ObjectContact& rObjectContact) override;
virtual void createViewIndependentPrimitive2DSequence(drawinglayer::primitive2d::Primitive2DDecompositionVisitor& rVisitor) const override;
public:
explicit ViewContactOfPageBackground(ViewContactOfSdrPage& rParentViewContactOfSdrPage);
virtual ~ViewContactOfPageBackground() override;
};
class ViewContactOfPageShadow final : public ViewContactOfPageSubObject
{
virtual ViewObjectContact& CreateObjectSpecificViewObjectContact(ObjectContact& rObjectContact) override;
virtual void createViewIndependentPrimitive2DSequence(drawinglayer::primitive2d::Primitive2DDecompositionVisitor& rVisitor) const override;
public:
explicit ViewContactOfPageShadow(ViewContactOfSdrPage& rParentViewContactOfSdrPage);
virtual ~ViewContactOfPageShadow() override;
};
class ViewContactOfPageFill final : public ViewContactOfPageSubObject
{
virtual ViewObjectContact& CreateObjectSpecificViewObjectContact(ObjectContact& rObjectContact) override;
virtual void createViewIndependentPrimitive2DSequence(drawinglayer::primitive2d::Primitive2DDecompositionVisitor& rVisitor) const override;
public:
explicit ViewContactOfPageFill(ViewContactOfSdrPage& rParentViewContactOfSdrPage);
virtual ~ViewContactOfPageFill() override;
};
class ViewContactOfMasterPage final : public ViewContactOfPageSubObject
{
virtual ViewObjectContact& CreateObjectSpecificViewObjectContact(ObjectContact& rObjectContact) override;
virtual void createViewIndependentPrimitive2DSequence(drawinglayer::primitive2d::Primitive2DDecompositionVisitor& rVisitor) const override;
public:
explicit ViewContactOfMasterPage(ViewContactOfSdrPage& rParentViewContactOfSdrPage);
virtual ~ViewContactOfMasterPage() override;
};
class ViewContactOfOuterPageBorder final : public ViewContactOfPageSubObject
{
virtual ViewObjectContact& CreateObjectSpecificViewObjectContact(ObjectContact& rObjectContact) override;
virtual void createViewIndependentPrimitive2DSequence(drawinglayer::primitive2d::Primitive2DDecompositionVisitor& rVisitor) const override;
public:
explicit ViewContactOfOuterPageBorder(ViewContactOfSdrPage& rParentViewContactOfSdrPage);
virtual ~ViewContactOfOuterPageBorder() override;
};
class ViewContactOfInnerPageBorder final : public ViewContactOfPageSubObject
{
virtual ViewObjectContact& CreateObjectSpecificViewObjectContact(ObjectContact& rObjectContact) override;
virtual void createViewIndependentPrimitive2DSequence(drawinglayer::primitive2d::Primitive2DDecompositionVisitor& rVisitor) const override;
public:
explicit ViewContactOfInnerPageBorder(ViewContactOfSdrPage& rParentViewContactOfSdrPage);
virtual ~ViewContactOfInnerPageBorder() override;
};
/**
* This view contact corresponds with all SdrObject instances in a single
* SdrPage. Its GetObjectCount() returns the number of SdrObject instances
* in the SdrPage that it represents, and its GetViewContact() returns the
* view contact of the SdrObject instance associated with the identifier
* passed to the method.
*/
class ViewContactOfPageHierarchy final : public ViewContactOfPageSubObject
{
virtual ViewObjectContact& CreateObjectSpecificViewObjectContact(ObjectContact& rObjectContact) override;
virtual void createViewIndependentPrimitive2DSequence(drawinglayer::primitive2d::Primitive2DDecompositionVisitor& rVisitor) const override;
public:
explicit ViewContactOfPageHierarchy(ViewContactOfSdrPage& rParentViewContactOfSdrPage);
virtual ~ViewContactOfPageHierarchy() override;
virtual sal_uInt32 GetObjectCount() const override;
virtual ViewContact& GetViewContact(sal_uInt32 nIndex) const override;
};
class ViewContactOfGrid final : public ViewContactOfPageSubObject
{
bool mbFront : 1;
virtual ViewObjectContact& CreateObjectSpecificViewObjectContact(ObjectContact& rObjectContact) override;
virtual void createViewIndependentPrimitive2DSequence(drawinglayer::primitive2d::Primitive2DDecompositionVisitor& rVisitor) const override;
public:
ViewContactOfGrid(ViewContactOfSdrPage& rParentViewContactOfSdrPage, bool bFront);
virtual ~ViewContactOfGrid() override;
bool getFront() const { return mbFront; }
};
class ViewContactOfHelplines final : public ViewContactOfPageSubObject
{
bool mbFront : 1;
virtual ViewObjectContact& CreateObjectSpecificViewObjectContact(ObjectContact& rObjectContact) override;
virtual void createViewIndependentPrimitive2DSequence(drawinglayer::primitive2d::Primitive2DDecompositionVisitor& rVisitor) const override;
public:
ViewContactOfHelplines(ViewContactOfSdrPage& rParentViewContactOfSdrPage, bool bFront);
virtual ~ViewContactOfHelplines() override;
bool getFront() const { return mbFront; }
};
class ViewContactOfSdrPage final : public ViewContact
{
// the owner of this ViewContact. Set from constructor and not
// to be changed in any way.
SdrPage& mrPage;
// helper viewContacts to build a clear paint hierarchy
ViewContactOfPageBackground maViewContactOfPageBackground;
ViewContactOfPageShadow maViewContactOfPageShadow;
ViewContactOfPageFill maViewContactOfPageFill;
ViewContactOfMasterPage maViewContactOfMasterPage;
ViewContactOfOuterPageBorder maViewContactOfOuterPageBorder;
ViewContactOfInnerPageBorder maViewContactOfInnerPageBorder;
ViewContactOfGrid maViewContactOfGridBack;
ViewContactOfHelplines maViewContactOfHelplinesBack;
ViewContactOfPageHierarchy maViewContactOfPageHierarchy;
ViewContactOfGrid maViewContactOfGridFront;
ViewContactOfHelplines maViewContactOfHelplinesFront;
// Create an Object-Specific ViewObjectContact, set ViewContact and
// ObjectContact. Always needs to return something. Default is to create
// a standard ViewObjectContact containing the given ObjectContact and *this
virtual ViewObjectContact& CreateObjectSpecificViewObjectContact(ObjectContact& rObjectContact) override;
public:
// access to SdrObject
SdrPage& GetSdrPage() const
{
return mrPage;
}
// basic constructor, used from SdrPage.
explicit ViewContactOfSdrPage(SdrPage& rObj);
virtual ~ViewContactOfSdrPage() override;
// Access to possible sub-hierarchy
virtual sal_uInt32 GetObjectCount() const override;
virtual ViewContact& GetViewContact(sal_uInt32 nIndex) const override;
// React on changes of the object of this ViewContact
virtual void ActionChanged() override;
private:
// This method is responsible for creating the graphical visualisation data
// ONLY based on model data
virtual void createViewIndependentPrimitive2DSequence(drawinglayer::primitive2d::Primitive2DDecompositionVisitor& rVisitor) const override;
};
}
#endif // INCLUDED_SVX_INC_SDR_CONTACT_VIEWCONTACTOFSDRPAGE_HXX
/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
|