comparison dia/icanvas.d @ 26:06c30d250c0a

Cleanup
author "David Bryant <bagnose@gmail.com>"
date Thu, 16 Jul 2009 00:12:02 +0930
parents 17c2df87b459
children f3d91579bb28
comparison
equal deleted inserted replaced
25:8f58a8f88735 26:06c30d250c0a
1 module dia.icanvas; 1 module dia.icanvas;
2 2
3 import tk.geometry; 3 public {
4 import tk.events; 4 import tk.geometry;
5 import cairo.Context; 5 import tk.events;
6 import cairo.Context;
7 }
6 8
7 interface Viewport { 9 interface Viewport {
8 void zoom_relative(Point pixel_datum, double factor); 10 void zoom_relative(in Point pixel_datum, in double factor);
9 void pan_relative(Vector pixel_displacement); 11 void pan_relative(in Vector pixel_displacement);
10 void damage_model(Rectangle area); // FIXME could be an inout parameter of the event handling, or a special scope Damage object that supports growth only 12 void damage_model(in Rectangle area); // FIXME could be an inout parameter of the event handling, or a special scope Damage object that supports growth only
11 void damage_pixel(Rectangle area); // FIXME as above 13 void damage_pixel(in Rectangle area); // FIXME as above
12 14
13 // FIXME not sure about these: 15 // FIXME not sure about these:
14 double zoom() const; 16 double zoom() const;
15 Point model_to_pixel(Point model) const; 17 Point model_to_pixel(in Point model) const;
16 Point pixel_to_model(Point pixel) const; 18 Point pixel_to_model(in Point pixel) const;
17 Vector model_to_pixel(Vector model) const; 19 Vector model_to_pixel(in Vector model) const;
18 Vector pixel_to_model(Vector pixel) const; 20 Vector pixel_to_model(in Vector pixel) const;
19 Rectangle model_to_pixel(Rectangle model) const; 21 Rectangle model_to_pixel(in Rectangle model) const;
20 Rectangle pixel_to_model(Rectangle model) const; 22 Rectangle pixel_to_model(in Rectangle model) const;
21 double model_to_pixel(double model) const; 23 double model_to_pixel(in double model) const;
22 double pixel_to_model(double pixel) const; 24 double pixel_to_model(in double pixel) const;
23 } 25 }
24 26
25 interface EventHandler { 27 interface EventHandler {
26 bool handle_button_press(Viewport viewport, in ButtonEvent event); 28 bool handle_button_press(scope Viewport viewport, in ButtonEvent event);
27 bool handle_button_release(Viewport viewport, in ButtonEvent event); 29 bool handle_button_release(scope Viewport viewport, in ButtonEvent event);
28 bool handle_motion(Viewport viewport, in MotionEvent event); 30 bool handle_motion(scope Viewport viewport, in MotionEvent event);
29 bool handle_scroll(Viewport viewport, in ScrollEvent event); 31 bool handle_scroll(scope Viewport viewport, in ScrollEvent event);
30 //bool handle_enter(Viewport viewport, CrossingEvent event); 32 //bool handle_enter(scope Viewport viewport, CrossingEvent event);
31 //bool handle_leave(Viewport viewport, CrossingEvent event); 33 //bool handle_leave(scope Viewport viewport, CrossingEvent event);
32 //bool handle_focus_in(Viewport viewport, FocusEvent event); 34 //bool handle_focus_in(scope Viewport viewport, FocusEvent event);
33 //bool handle_focus_out(Viewport viewport, FocusEvent event); 35 //bool handle_focus_out(scope Viewport viewport, FocusEvent event);
34 bool handle_key_press(Viewport viewport, in KeyEvent event); 36 bool handle_key_press(scope Viewport viewport, in KeyEvent event);
35 bool handle_key_release(Viewport viewport, in KeyEvent event); 37 bool handle_key_release(scope Viewport viewport, in KeyEvent event);
36 } 38 }
37 39
38 abstract class Layer { 40 abstract class Layer {
39 this(in string name) { 41 this(in string name) {
40 mName = name; 42 mName = name;
42 44
43 string name() const { return mName; } 45 string name() const { return mName; }
44 46
45 Rectangle bounds() const; 47 Rectangle bounds() const;
46 //void zoom_changed 48 //void zoom_changed
47 void draw(const Viewport viewport, 49 void draw(in Viewport viewport,
48 in Rectangle pixel_damage, scope Context pixel_cr, 50 in Rectangle pixel_damage, scope Context pixel_cr,
49 in Rectangle model_damage, scope Context model_cr) const; 51 in Rectangle model_damage, scope Context model_cr) const;
50 52
51 private { 53 private {
52 invariant string mName; 54 invariant string mName;