blob: 9224fdeb56fae155b2b2ad9012e3b57e98a8745a (
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
|
Contains graphics related helper code. Lots of the draw and impress code is in this shared library.
xoutdev
this is where a lot of wht work would happen to move to the canvas. (what does that mean?)
svdraw
transparent gradient stuff.
== SdrObject ==
The shapes you can see in LibreOffice (like rectangle, etc.) are SdrObjects.
They are declared as a hierarchy:
SdrObject <- SdrAttrObj <- E3dObject <- E3dCompoundObject <- E3dCubeObj
^ ^ ^ ^ ^ | | ^ ^
| | | | | | | | +--- E3dExtrudeObj
| | | | | | | +----- E3dLatheObj
| | | | | | +------- E3dPolygonObj
| | | | | +--------- E3dSphereObj
| | | | +--- E3dScene...
| | | |
| | | +--- SdrTextObj <- SdrObjCustomShape...
| | | ^ ^ ^ ^ ^
| | | | | | | +--- SdrEdgeObj...
| | | | | | +----- SdrMeasureObj...
| | | | | +------- SdrPathObj...
| | | | +--------- SdrRectObj...
| | | +----------- SdrTableObj...
| | +--- SdrObjGroup...
| + ---- SdrPageObj...
+------- SdrVirtObj...
The above is incomplete of course.
Associated are the SdrPaintView's - they have quite a deep chain of
inheritance, where each new class adds a bit of functionality:
SdrPaintView <- SdrSnapView <- SdrMarkView <- SdrEditView <- SdrPolyEditView
^
+----------------------------------------------------------------+
|
SdrGlueEditView <- SdrObjEditView <- SdrExchangeView <- SdrDragView
^
+----------------------------------------------------------------+
|
SdrCreateView <- SdrView
From SdrView on, it is not flat, but a real hierarchy again.
== Drawing Layer / SdrObject(s) ==
See drawinglayer/README for general information about drawinglayer.
Below is the class diagram that comes from
http://www.openoffice.org/marketing/ooocon2006/presentations/wednesday_g11.odp,
slide number 6.
.------- Model --------------. .------- View -----------------------------------------.
| SdrObject - ViewContact | 1..* | ViewObjectContact 1..* |
| getChild() |------| getPrimitiveList() -----> Object(s) ---> SdrView |
| getVOC() | | getRecPrimitiveList() Contact |
| getViewInd... | |________|_____________________________________________|
| ...ependentPrimitiveList() | |
|____________________________| generates
| ______
V / |
.----------------------. |
| basePrimitive | |
| getRange() |<---'
| getDecomposition() |
|______________________|
For SdrObjects, there are own DrawingLayer primitives in
svx/source/sdr/primitive2d
The ViewContact / ViewObject / ViewObjectContact are in svx/source/sdr/contact
Decomposes the SdrObjects, and does all sort of operations on them.
[So far I haven't found a definition / concept what are supposed to be the
ViewContact / ViewObject / ViewObjectContact. If you find that out, please
fix this README :-)]
|