diff doodle/import/model.d @ 28:1754cb773d41

Part-way through getting to compile with configure/builder.
author Graham St Jack <graham.stjack@internode.on.net>
date Sun, 02 Aug 2009 16:27:21 +0930
parents import/model.d@e907d2c54ec3
children 960b408d3ac5
line wrap: on
line diff
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/doodle/import/model.d	Sun Aug 02 16:27:21 2009 +0930
@@ -0,0 +1,55 @@
+module doodle.interaction.model;
+
+
+final class Manipulator {
+}
+
+abstract class Selector {
+    this(Fig selected) {
+        _selected = selected;
+    }
+
+    Fig selected() { return _selected; }
+
+    abstract void draw(Screen screen);
+
+    private {
+        Fig _selected;
+    }
+}
+
+abstract class Fig {
+    DiagramElement element() { return _element; }
+
+    abstract void draw(Canvas canvas);
+
+    abstract Selector create_selector();
+
+    private {
+        DiagramElement _element;
+    }
+}
+
+abstract class NetFig : Fig {
+    GraphElement element() { return _element; }
+
+    private {
+        GraphElement _element;
+    }
+}
+
+abstract class EdgeFig : NetFig {
+    GraphEdge element() { return _element; }
+
+    private {
+        GraphEdge _element;
+    }
+}
+
+abstract class NodeFig : NetFig {
+    GraphNode element() { return _element; }
+
+    private {
+        GraphNode _element;
+    }
+}