annotate doodle/fig/diagram_elements.d @ 84:cdd4fc728d94

Renamed Drawable to Renderer
author daveb
date Mon, 16 Aug 2010 17:23:09 +0930
parents b759414d2b72
children 66210d8ea37a
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
54
30ecedfe2ce2 Partial palette support
"David Bryant <bagnose@gmail.com>"
parents: 48
diff changeset
1 module doodle.fig.diagram_elements;
27
f3d91579bb28 Checkpoint
David Bryant <daveb@acres.com.au>
parents: 26
diff changeset
2
44
2b9329ed0f0e Added backtrace support
"David Bryant <bagnose@gmail.com>"
parents: 28
diff changeset
3 private {
2b9329ed0f0e Added backtrace support
"David Bryant <bagnose@gmail.com>"
parents: 28
diff changeset
4 import doodle.tk.geometry;
84
cdd4fc728d94 Renamed Drawable to Renderer
daveb
parents: 80
diff changeset
5 import doodle.tk.renderer;
44
2b9329ed0f0e Added backtrace support
"David Bryant <bagnose@gmail.com>"
parents: 28
diff changeset
6 }
2b9329ed0f0e Added backtrace support
"David Bryant <bagnose@gmail.com>"
parents: 28
diff changeset
7
58
c63719604adb Beginnings of creating a rectangle...
"David Bryant <bagnose@gmail.com>"
parents: 54
diff changeset
8 interface IDiagram {
c63719604adb Beginnings of creating a rectangle...
"David Bryant <bagnose@gmail.com>"
parents: 54
diff changeset
9 void add(DiagramElement element);
c63719604adb Beginnings of creating a rectangle...
"David Bryant <bagnose@gmail.com>"
parents: 54
diff changeset
10 }
c63719604adb Beginnings of creating a rectangle...
"David Bryant <bagnose@gmail.com>"
parents: 54
diff changeset
11
54
30ecedfe2ce2 Partial palette support
"David Bryant <bagnose@gmail.com>"
parents: 48
diff changeset
12 abstract class DiagramElement {
44
2b9329ed0f0e Added backtrace support
"David Bryant <bagnose@gmail.com>"
parents: 28
diff changeset
13 Rectangle bounds() const;
2b9329ed0f0e Added backtrace support
"David Bryant <bagnose@gmail.com>"
parents: 28
diff changeset
14
84
cdd4fc728d94 Renamed Drawable to Renderer
daveb
parents: 80
diff changeset
15 void draw(in Rectangle damage, scope Renderer cr) const;
44
2b9329ed0f0e Added backtrace support
"David Bryant <bagnose@gmail.com>"
parents: 28
diff changeset
16
2b9329ed0f0e Added backtrace support
"David Bryant <bagnose@gmail.com>"
parents: 28
diff changeset
17 private {
58
c63719604adb Beginnings of creating a rectangle...
"David Bryant <bagnose@gmail.com>"
parents: 54
diff changeset
18 //GraphElement _container; // FIXME use an interface to the container
54
30ecedfe2ce2 Partial palette support
"David Bryant <bagnose@gmail.com>"
parents: 48
diff changeset
19 }
30ecedfe2ce2 Partial palette support
"David Bryant <bagnose@gmail.com>"
parents: 48
diff changeset
20 }
30ecedfe2ce2 Partial palette support
"David Bryant <bagnose@gmail.com>"
parents: 48
diff changeset
21
58
c63719604adb Beginnings of creating a rectangle...
"David Bryant <bagnose@gmail.com>"
parents: 54
diff changeset
22 /*
66
43cc2135ced0 Some code cleanups
"David Bryant <bagnose@gmail.com>"
parents: 58
diff changeset
23 abstract class SemanticModelBridge {
43cc2135ced0 Some code cleanups
"David Bryant <bagnose@gmail.com>"
parents: 58
diff changeset
24 };
54
30ecedfe2ce2 Partial palette support
"David Bryant <bagnose@gmail.com>"
parents: 48
diff changeset
25
66
43cc2135ced0 Some code cleanups
"David Bryant <bagnose@gmail.com>"
parents: 58
diff changeset
26 abstract class GraphElement : DiagramElement {
43cc2135ced0 Some code cleanups
"David Bryant <bagnose@gmail.com>"
parents: 58
diff changeset
27 // Link to model via bridge goes here
43cc2135ced0 Some code cleanups
"David Bryant <bagnose@gmail.com>"
parents: 58
diff changeset
28 private {
43cc2135ced0 Some code cleanups
"David Bryant <bagnose@gmail.com>"
parents: 58
diff changeset
29 SemanticModelBridge _modelBridge;
43cc2135ced0 Some code cleanups
"David Bryant <bagnose@gmail.com>"
parents: 58
diff changeset
30 GraphConnector[] _anchorages;
43cc2135ced0 Some code cleanups
"David Bryant <bagnose@gmail.com>"
parents: 58
diff changeset
31 }
44
2b9329ed0f0e Added backtrace support
"David Bryant <bagnose@gmail.com>"
parents: 28
diff changeset
32 }
27
f3d91579bb28 Checkpoint
David Bryant <daveb@acres.com.au>
parents: 26
diff changeset
33
58
c63719604adb Beginnings of creating a rectangle...
"David Bryant <bagnose@gmail.com>"
parents: 54
diff changeset
34 class GraphConnector {
44
2b9329ed0f0e Added backtrace support
"David Bryant <bagnose@gmail.com>"
parents: 28
diff changeset
35 }
27
f3d91579bb28 Checkpoint
David Bryant <daveb@acres.com.au>
parents: 26
diff changeset
36
67
31d10176415d Checkpoint
daveb
parents: 66
diff changeset
37 final class GraphNode : GraphElement {
44
2b9329ed0f0e Added backtrace support
"David Bryant <bagnose@gmail.com>"
parents: 28
diff changeset
38 }
27
f3d91579bb28 Checkpoint
David Bryant <daveb@acres.com.au>
parents: 26
diff changeset
39
67
31d10176415d Checkpoint
daveb
parents: 66
diff changeset
40 final class GraphEdge : GraphElement {
66
43cc2135ced0 Some code cleanups
"David Bryant <bagnose@gmail.com>"
parents: 58
diff changeset
41 private {
43cc2135ced0 Some code cleanups
"David Bryant <bagnose@gmail.com>"
parents: 58
diff changeset
42 GraphConnector[2] _anchors;
44
2b9329ed0f0e Added backtrace support
"David Bryant <bagnose@gmail.com>"
parents: 28
diff changeset
43 }
66
43cc2135ced0 Some code cleanups
"David Bryant <bagnose@gmail.com>"
parents: 58
diff changeset
44 }
43cc2135ced0 Some code cleanups
"David Bryant <bagnose@gmail.com>"
parents: 58
diff changeset
45 */
44
2b9329ed0f0e Added backtrace support
"David Bryant <bagnose@gmail.com>"
parents: 28
diff changeset
46
54
30ecedfe2ce2 Partial palette support
"David Bryant <bagnose@gmail.com>"
parents: 48
diff changeset
47 abstract class LeafElement : DiagramElement {
30ecedfe2ce2 Partial palette support
"David Bryant <bagnose@gmail.com>"
parents: 48
diff changeset
48 }
30ecedfe2ce2 Partial palette support
"David Bryant <bagnose@gmail.com>"
parents: 48
diff changeset
49
58
c63719604adb Beginnings of creating a rectangle...
"David Bryant <bagnose@gmail.com>"
parents: 54
diff changeset
50 /*
66
43cc2135ced0 Some code cleanups
"David Bryant <bagnose@gmail.com>"
parents: 58
diff changeset
51 class TextElement : LeafElement {
43cc2135ced0 Some code cleanups
"David Bryant <bagnose@gmail.com>"
parents: 58
diff changeset
52 }
43cc2135ced0 Some code cleanups
"David Bryant <bagnose@gmail.com>"
parents: 58
diff changeset
53 */
54
30ecedfe2ce2 Partial palette support
"David Bryant <bagnose@gmail.com>"
parents: 48
diff changeset
54
30ecedfe2ce2 Partial palette support
"David Bryant <bagnose@gmail.com>"
parents: 48
diff changeset
55 abstract class GraphicPrimitive : LeafElement {
44
2b9329ed0f0e Added backtrace support
"David Bryant <bagnose@gmail.com>"
parents: 28
diff changeset
56 }
54
30ecedfe2ce2 Partial palette support
"David Bryant <bagnose@gmail.com>"
parents: 48
diff changeset
57
58
c63719604adb Beginnings of creating a rectangle...
"David Bryant <bagnose@gmail.com>"
parents: 54
diff changeset
58 /*
66
43cc2135ced0 Some code cleanups
"David Bryant <bagnose@gmail.com>"
parents: 58
diff changeset
59 class PolylinePrimitive : GraphicPrimitive {
43cc2135ced0 Some code cleanups
"David Bryant <bagnose@gmail.com>"
parents: 58
diff changeset
60 private {
43cc2135ced0 Some code cleanups
"David Bryant <bagnose@gmail.com>"
parents: 58
diff changeset
61 Point[] _waypoints;
43cc2135ced0 Some code cleanups
"David Bryant <bagnose@gmail.com>"
parents: 58
diff changeset
62 }
43cc2135ced0 Some code cleanups
"David Bryant <bagnose@gmail.com>"
parents: 58
diff changeset
63 }
43cc2135ced0 Some code cleanups
"David Bryant <bagnose@gmail.com>"
parents: 58
diff changeset
64 */
54
30ecedfe2ce2 Partial palette support
"David Bryant <bagnose@gmail.com>"
parents: 48
diff changeset
65
67
31d10176415d Checkpoint
daveb
parents: 66
diff changeset
66 final class RectanglePrimitive : GraphicPrimitive {
84
cdd4fc728d94 Renamed Drawable to Renderer
daveb
parents: 80
diff changeset
67 override void draw(in Rectangle damage, scope Renderer drawable) const {
80
b759414d2b72 Switched from cairo to Drawable abstraction
"David Bryant <bagnose@gmail.com>"
parents: 73
diff changeset
68 drawable.drawRectangle(bounds, false);
54
30ecedfe2ce2 Partial palette support
"David Bryant <bagnose@gmail.com>"
parents: 48
diff changeset
69 }
58
c63719604adb Beginnings of creating a rectangle...
"David Bryant <bagnose@gmail.com>"
parents: 54
diff changeset
70
c63719604adb Beginnings of creating a rectangle...
"David Bryant <bagnose@gmail.com>"
parents: 54
diff changeset
71 override Rectangle bounds() const { return _bounds; }
c63719604adb Beginnings of creating a rectangle...
"David Bryant <bagnose@gmail.com>"
parents: 54
diff changeset
72
c63719604adb Beginnings of creating a rectangle...
"David Bryant <bagnose@gmail.com>"
parents: 54
diff changeset
73 private {
c63719604adb Beginnings of creating a rectangle...
"David Bryant <bagnose@gmail.com>"
parents: 54
diff changeset
74 Rectangle _bounds;
c63719604adb Beginnings of creating a rectangle...
"David Bryant <bagnose@gmail.com>"
parents: 54
diff changeset
75 }
54
30ecedfe2ce2 Partial palette support
"David Bryant <bagnose@gmail.com>"
parents: 48
diff changeset
76 }