Mercurial > projects > doodle
comparison doodle/dia/icanvas.d @ 57:9960c4fbd0dd
I is for Interface
author | "David Bryant <bagnose@gmail.com>" |
---|---|
date | Sun, 08 Aug 2010 22:01:54 +0930 |
parents | 576b9fba4677 |
children | c63719604adb |
comparison
equal
deleted
inserted
replaced
56:b190a9d9352e | 57:9960c4fbd0dd |
---|---|
11 } | 11 } |
12 | 12 |
13 mixin(defineEnum!("Cursor", | 13 mixin(defineEnum!("Cursor", |
14 "DEFAULT", "HAND", "CROSSHAIR")); | 14 "DEFAULT", "HAND", "CROSSHAIR")); |
15 | 15 |
16 interface Viewport { | 16 interface IViewport { |
17 void zoomRelative(in Point pixelDatum, in double factor); | 17 void zoomRelative(in Point pixelDatum, in double factor); |
18 void panRelative(in Vector pixelDisplacement); | 18 void panRelative(in Vector pixelDisplacement); |
19 void setCursor(in Cursor cursor); | 19 void setCursor(in Cursor cursor); |
20 | 20 |
21 // FIXME get rid of these and accumulate damage during event handling | 21 // FIXME get rid of these and accumulate damage during event handling |
34 double modelToPixel(in double model) const; | 34 double modelToPixel(in double model) const; |
35 double pixelToModel(in double pixel) const; | 35 double pixelToModel(in double pixel) const; |
36 */ | 36 */ |
37 } | 37 } |
38 | 38 |
39 interface EventHandler { | 39 interface IEventHandler { |
40 bool handleButtonPress(scope Viewport viewport, in ButtonEvent event); | 40 bool handleButtonPress(scope IViewport viewport, in ButtonEvent event); |
41 bool handleButtonRelease(scope Viewport viewport, in ButtonEvent event); | 41 bool handleButtonRelease(scope IViewport viewport, in ButtonEvent event); |
42 bool handleMotion(scope Viewport viewport, in MotionEvent event); | 42 bool handleMotion(scope IViewport viewport, in MotionEvent event); |
43 bool handleScroll(scope Viewport viewport, in ScrollEvent event); | 43 bool handleScroll(scope IViewport viewport, in ScrollEvent event); |
44 //bool handleEnter(scope Viewport viewport, CrossingEvent event); | 44 //bool handleEnter(scope IViewport viewport, CrossingEvent event); |
45 //bool handleLeave(scope Viewport viewport, CrossingEvent event); | 45 //bool handleLeave(scope IViewport viewport, CrossingEvent event); |
46 //bool handleFocusIn(scope Viewport viewport, FocusEvent event); | 46 //bool handleFocusIn(scope IViewport viewport, FocusEvent event); |
47 //bool handleFocusOut(scope Viewport viewport, FocusEvent event); | 47 //bool handleFocusOut(scope IViewport viewport, FocusEvent event); |
48 bool handleKeyPress(scope Viewport viewport, in KeyEvent event); | 48 bool handleKeyPress(scope IViewport viewport, in KeyEvent event); |
49 bool handleKeyRelease(scope Viewport viewport, in KeyEvent event); | 49 bool handleKeyRelease(scope IViewport viewport, in KeyEvent event); |
50 } | 50 } |
51 | 51 |
52 interface Grid { | 52 interface IGrid { |
53 void zoomChanged(double zoom); | 53 void zoomChanged(double zoom); |
54 | 54 |
55 // TODO inout? | 55 // TODO inout? |
56 bool snap(in Point a, out Point b) const; | 56 bool snap(in Point a, out Point b) const; |
57 } | 57 } |
58 | 58 |
59 interface Page { | 59 interface IPage { |
60 // TODO | 60 // TODO |
61 } | 61 } |
62 | 62 |
63 abstract class Layer { | 63 abstract class Layer { |
64 this(in string name) { | 64 this(in string name) { |
67 | 67 |
68 string name() const { return mName; } | 68 string name() const { return mName; } |
69 | 69 |
70 Rectangle bounds() const; | 70 Rectangle bounds() const; |
71 | 71 |
72 void draw(in Viewport viewport, | 72 void draw(in IViewport viewport, |
73 in Rectangle pixelDamage, scope Context pixelCr, | 73 in Rectangle pixelDamage, scope Context pixelCr, |
74 in Rectangle modelDamage, scope Context modelCr) const; | 74 in Rectangle modelDamage, scope Context modelCr) const; |
75 | 75 |
76 private { | 76 private { |
77 invariant string mName; | 77 invariant string mName; |