Mercurial > projects > doodle
comparison doodle/dia/tool_layer.d @ 57:9960c4fbd0dd
I is for Interface
author | "David Bryant <bagnose@gmail.com>" |
---|---|
date | Sun, 08 Aug 2010 22:01:54 +0930 |
parents | b190a9d9352e |
children | c63719604adb |
comparison
equal
deleted
inserted
replaced
56:b190a9d9352e | 57:9960c4fbd0dd |
---|---|
7 private { | 7 private { |
8 import std.stdio; | 8 import std.stdio; |
9 import doodle.cairo.routines; | 9 import doodle.cairo.routines; |
10 } | 10 } |
11 | 11 |
12 interface ToolStack { | 12 interface IToolStack { |
13 } | 13 } |
14 | 14 |
15 class ToolLayer : Layer, EventHandler, ToolStack { | 15 class ToolLayer : Layer, IEventHandler, IToolStack { |
16 this(in Tool[] tools, in string name) { | 16 this(in Tool[] tools, in string name) { |
17 super(name); | 17 super(name); |
18 _tools = tools.dup; | 18 _tools = tools.dup; |
19 } | 19 } |
20 | 20 |
22 | 22 |
23 override Rectangle bounds() const { | 23 override Rectangle bounds() const { |
24 return Rectangle(); | 24 return Rectangle(); |
25 } | 25 } |
26 | 26 |
27 override void draw(const Viewport viewport, | 27 override void draw(const IViewport viewport, |
28 in Rectangle pixelDamage, scope Context pixelCr, | 28 in Rectangle pixelDamage, scope Context pixelCr, |
29 in Rectangle modelDamage, scope Context modelCr) const { | 29 in Rectangle modelDamage, scope Context modelCr) const { |
30 if (_grabbedTool) { | 30 if (_grabbedTool) { |
31 _grabbedTool.draw(viewport, pixelDamage, pixelCr); | 31 _grabbedTool.draw(viewport, pixelDamage, pixelCr); |
32 } | 32 } |
33 } | 33 } |
34 | 34 |
35 // EventHandler overrides: | 35 // EventHandler overrides: |
36 | 36 |
37 override bool handleButtonPress(scope Viewport viewport, in ButtonEvent event) { | 37 override bool handleButtonPress(scope IViewport viewport, in ButtonEvent event) { |
38 // writefln("%s", event); | 38 // writefln("%s", event); |
39 | 39 |
40 if (_grabbedTool is null) { | 40 if (_grabbedTool is null) { |
41 foreach_reverse(ref tool; _tools) { | 41 foreach_reverse(ref tool; _tools) { |
42 if (tool.handleButtonPress(viewport, event)) { | 42 if (tool.handleButtonPress(viewport, event)) { |
51 } | 51 } |
52 | 52 |
53 return true; | 53 return true; |
54 } | 54 } |
55 | 55 |
56 override bool handleButtonRelease(scope Viewport viewport, in ButtonEvent event) { | 56 override bool handleButtonRelease(scope IViewport viewport, in ButtonEvent event) { |
57 // writefln("%s", event); | 57 // writefln("%s", event); |
58 | 58 |
59 if (_grabbedTool !is null) { | 59 if (_grabbedTool !is null) { |
60 _grabbedTool.handleButtonRelease(viewport, event); | 60 _grabbedTool.handleButtonRelease(viewport, event); |
61 | 61 |
65 } | 65 } |
66 | 66 |
67 return true; | 67 return true; |
68 } | 68 } |
69 | 69 |
70 override bool handleKeyPress(scope Viewport viewport, in KeyEvent event) { | 70 override bool handleKeyPress(scope IViewport viewport, in KeyEvent event) { |
71 // writefln("%s", event); | 71 // writefln("%s", event); |
72 | 72 |
73 return true; | 73 return true; |
74 } | 74 } |
75 | 75 |
76 override bool handleKeyRelease(scope Viewport viewport, in KeyEvent event) { | 76 override bool handleKeyRelease(scope IViewport viewport, in KeyEvent event) { |
77 // writefln("%s", event); | 77 // writefln("%s", event); |
78 | 78 |
79 return true; | 79 return true; |
80 } | 80 } |
81 | 81 |
82 override bool handleMotion(scope Viewport viewport, in MotionEvent event) { | 82 override bool handleMotion(scope IViewport viewport, in MotionEvent event) { |
83 //writefln("%s", event); | 83 //writefln("%s", event); |
84 | 84 |
85 if (_grabbedTool is null) { | 85 if (_grabbedTool is null) { |
86 foreach_reverse(ref tool; _tools) { | 86 foreach_reverse(ref tool; _tools) { |
87 if (tool.handleMotion(viewport, event)) { | 87 if (tool.handleMotion(viewport, event)) { |
94 } | 94 } |
95 | 95 |
96 return true; | 96 return true; |
97 } | 97 } |
98 | 98 |
99 override bool handleScroll(scope Viewport viewport, in ScrollEvent event) { | 99 override bool handleScroll(scope IViewport viewport, in ScrollEvent event) { |
100 // writefln("%s", event); | 100 // writefln("%s", event); |
101 | 101 |
102 if (_grabbedTool is null) { | 102 if (_grabbedTool is null) { |
103 foreach_reverse(ref tool; _tools) { | 103 foreach_reverse(ref tool; _tools) { |
104 if (tool.handleScroll(viewport, event)) { | 104 if (tool.handleScroll(viewport, event)) { |