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)) {