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;
+    }
 }