Mercurial > projects > doodle
annotate dia/tool.d @ 24:a24c13bb9c98
Builds again.
author | "David Bryant <bagnose@gmail.com>" |
---|---|
date | Wed, 15 Jul 2009 23:39:29 +0930 |
parents | 17c2df87b459 |
children | 06c30d250c0a |
rev | line source |
---|---|
22 | 1 module dia.tool; |
2
d6f44347373d
* Switched over to geometry done with structs instead of classes.
David Bryant <daveb@acres.com.au>
parents:
diff
changeset
|
2 |
16
9e63308b749c
* Fix up public/private includes
David Bryant <daveb@acres.com.au>
parents:
10
diff
changeset
|
3 public { |
24 | 4 import cairo.Context; |
5 import dia.icanvas; | |
16
9e63308b749c
* Fix up public/private includes
David Bryant <daveb@acres.com.au>
parents:
10
diff
changeset
|
6 import tk.events; |
9e63308b749c
* Fix up public/private includes
David Bryant <daveb@acres.com.au>
parents:
10
diff
changeset
|
7 } |
2
d6f44347373d
* Switched over to geometry done with structs instead of classes.
David Bryant <daveb@acres.com.au>
parents:
diff
changeset
|
8 |
7 | 9 /* |
2
d6f44347373d
* Switched over to geometry done with structs instead of classes.
David Bryant <daveb@acres.com.au>
parents:
diff
changeset
|
10 interface IToolStack { |
d6f44347373d
* Switched over to geometry done with structs instead of classes.
David Bryant <daveb@acres.com.au>
parents:
diff
changeset
|
11 void push(Tool tool); |
d6f44347373d
* Switched over to geometry done with structs instead of classes.
David Bryant <daveb@acres.com.au>
parents:
diff
changeset
|
12 void pop(); |
d6f44347373d
* Switched over to geometry done with structs instead of classes.
David Bryant <daveb@acres.com.au>
parents:
diff
changeset
|
13 void replace(Tool tool); |
d6f44347373d
* Switched over to geometry done with structs instead of classes.
David Bryant <daveb@acres.com.au>
parents:
diff
changeset
|
14 } |
7 | 15 */ |
2
d6f44347373d
* Switched over to geometry done with structs instead of classes.
David Bryant <daveb@acres.com.au>
parents:
diff
changeset
|
16 |
16
9e63308b749c
* Fix up public/private includes
David Bryant <daveb@acres.com.au>
parents:
10
diff
changeset
|
17 abstract class Tool { |
2
d6f44347373d
* Switched over to geometry done with structs instead of classes.
David Bryant <daveb@acres.com.au>
parents:
diff
changeset
|
18 /* |
17 | 19 enum Response { |
20 START, CONTINUE, FINISH | |
21 | |
22 } | |
23 */ | |
24 | |
25 /* | |
2
d6f44347373d
* Switched over to geometry done with structs instead of classes.
David Bryant <daveb@acres.com.au>
parents:
diff
changeset
|
26 abstract bool is_sticky(); |
d6f44347373d
* Switched over to geometry done with structs instead of classes.
David Bryant <daveb@acres.com.au>
parents:
diff
changeset
|
27 abstract bool is_replaceable(); |
d6f44347373d
* Switched over to geometry done with structs instead of classes.
David Bryant <daveb@acres.com.au>
parents:
diff
changeset
|
28 */ |
d6f44347373d
* Switched over to geometry done with structs instead of classes.
David Bryant <daveb@acres.com.au>
parents:
diff
changeset
|
29 |
7 | 30 /* |
2
d6f44347373d
* Switched over to geometry done with structs instead of classes.
David Bryant <daveb@acres.com.au>
parents:
diff
changeset
|
31 abstract void start(IToolStack tool_stack); |
d6f44347373d
* Switched over to geometry done with structs instead of classes.
David Bryant <daveb@acres.com.au>
parents:
diff
changeset
|
32 abstract void stop(IToolStack tool_stack); |
7 | 33 */ |
16
9e63308b749c
* Fix up public/private includes
David Bryant <daveb@acres.com.au>
parents:
10
diff
changeset
|
34 |
18 | 35 bool handle_button_press(Viewport viewport, in ButtonEvent event) { return false; } |
36 bool handle_button_release(Viewport viewport, in ButtonEvent event) { return false; } | |
37 bool handle_motion(Viewport viewport, in MotionEvent event) { return false; } | |
38 bool handle_scroll(Viewport viewport, in ScrollEvent event) { return false; } | |
39 //bool handle_enter(Viewport viewport, CrossingEvent event) { return false; } | |
40 //bool handle_leave(Viewport viewport, CrossingEvent event) { return false; } | |
41 //bool handle_focus_in(Viewport viewport, FocusEvent event) { return false; } | |
42 //bool handle_focus_out(Viewport viewport, FocusEvent event) { return false; } | |
43 bool handle_key_press(Viewport viewport, in KeyEvent event) { return false; } | |
44 bool handle_key_release(Viewport viewport, in KeyEvent event) { return false; } | |
16
9e63308b749c
* Fix up public/private includes
David Bryant <daveb@acres.com.au>
parents:
10
diff
changeset
|
45 |
19 | 46 void draw(const Viewport viewport, |
47 in Rectangle pixel_damage, scope Context pixel_cr, | |
48 in Rectangle model_damage, scope Context model_cr) const { } | |
2
d6f44347373d
* Switched over to geometry done with structs instead of classes.
David Bryant <daveb@acres.com.au>
parents:
diff
changeset
|
49 } |