Mercurial > projects > doodle
annotate doodle/dia/tool.d @ 28:1754cb773d41
Part-way through getting to compile with configure/builder.
author | Graham St Jack <graham.stjack@internode.on.net> |
---|---|
date | Sun, 02 Aug 2009 16:27:21 +0930 |
parents | dia/tool.d@06c30d250c0a |
children | 1b4c9ba58673 |
rev | line source |
---|---|
28
1754cb773d41
Part-way through getting to compile with configure/builder.
Graham St Jack <graham.stjack@internode.on.net>
parents:
26
diff
changeset
|
1 module doodle.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; |
28
1754cb773d41
Part-way through getting to compile with configure/builder.
Graham St Jack <graham.stjack@internode.on.net>
parents:
26
diff
changeset
|
5 import doodle.dia.icanvas; |
1754cb773d41
Part-way through getting to compile with configure/builder.
Graham St Jack <graham.stjack@internode.on.net>
parents:
26
diff
changeset
|
6 import doodle.tk.events; |
16
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 |
26 | 35 bool handle_button_press(scope Viewport viewport, in ButtonEvent event) { return false; } |
36 bool handle_button_release(scope Viewport viewport, in ButtonEvent event) { return false; } | |
37 bool handle_motion(scope Viewport viewport, in MotionEvent event) { return false; } | |
38 bool handle_scroll(scope Viewport viewport, in ScrollEvent event) { return false; } | |
39 //bool handle_enter(scope viewport, CrossingEvent event) { return false; } | |
40 //bool handle_leave(scope viewport, CrossingEvent event) { return false; } | |
41 //bool handle_focus_in(scope viewport, FocusEvent event) { return false; } | |
42 //bool handle_focus_out(scope viewport, FocusEvent event) { return false; } | |
43 bool handle_key_press(scope Viewport viewport, in KeyEvent event) { return false; } | |
44 bool handle_key_release(scope 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 |
26 | 46 void draw(in Viewport viewport, |
19 | 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 } |