Mercurial > projects > doodle
diff standard_tools.d @ 7:936feb16eed4
Checkpoint
author | "David Bryant <bagnose@gmail.com>" |
---|---|
date | Sat, 11 Jul 2009 21:29:03 +0930 |
parents | 7d57cae10805 |
children | bf7903435f58 |
line wrap: on
line diff
--- a/standard_tools.d Sat Jul 11 20:44:14 2009 +0930 +++ b/standard_tools.d Sat Jul 11 21:29:03 2009 +0930 @@ -1,17 +1,40 @@ module standard_tools; +import tool; +import icanvas; +import tk.types; +import tk.events; +import tk.geometry; + final class PanTool : Tool { - override bool handle_scroll(ICanvas canvas, ScrollEvent event) { + bool handle_button_press(ICanvas canvas, in ButtonEvent event) { + if (event.button_name == ButtonName.MIDDLE) { + return true; + } + else { + return false; + } + } + + bool handle_button_release(ICanvas canvas, in ButtonEvent event) { + return false; + } + + bool handle_motion(ICanvas canvas, in MotionEvent event) { + return false; + } + + bool handle_scroll(ICanvas canvas, in ScrollEvent event) { const double AMOUNT = 30.0; Vector v; - if (event.mask.query(Modifier.SHIFT)) { + if (event.mask.is_set(Modifier.SHIFT)) { // left to right - v = new Vector(AMOUNT, 0.0); + v = Vector(AMOUNT, 0.0); } else { // down to up - v = new Vector(0.0, AMOUNT); + v = Vector(0.0, AMOUNT); } if (event.scroll_direction == ScrollDirection.UP) { @@ -23,21 +46,32 @@ return true; } - bool handle_button_press(ICanvas canvas, ButtonEvent event) { + bool handle_key_press(ICanvas canvas, in KeyEvent event) { + return false; } - bool handle_button_release(ICanvas canvas, ButtonEvent event) { - } - - bool handle_motion(ICanvas canvas, MotionEvent event) { + bool handle_key_release(ICanvas canvas, in KeyEvent event) { + return false; } } -final class ZoomTool { +final class ZoomTool : Tool { static invariant double ZOOM = 1.44; - override bool handle_scroll(ICanvas canvas, ScrollEvent event) { - if (event.mask.query(Modifier.CONTROL)) { + bool handle_button_press(ICanvas canvas, in ButtonEvent event) { + return false; + } + + bool handle_button_release(ICanvas canvas, in ButtonEvent event) { + return false; + } + + bool handle_motion(ICanvas canvas, in MotionEvent event) { + return false; + } + + bool handle_scroll(ICanvas canvas, in ScrollEvent event) { + if (event.mask.is_set(Modifier.CONTROL)) { // Zoom about the pointer double zoom = 1.44; @@ -53,4 +87,12 @@ return false; } } + + bool handle_key_press(ICanvas canvas, in KeyEvent event) { + return false; + } + + bool handle_key_release(ICanvas canvas, in KeyEvent event) { + return false; + } }