Mercurial > projects > doodle
annotate doodle/dia/tool.d @ 56:b190a9d9352e
Checkpoint
author | "David Bryant <bagnose@gmail.com>" |
---|---|
date | Sun, 08 Aug 2010 21:56:54 +0930 |
parents | 1b4c9ba58673 |
children | 9960c4fbd0dd |
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 /* | |
48 | 26 abstract bool isSticky(); |
27 abstract bool isReplaceable(); | |
2
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 |
48 | 35 bool handleButtonPress(scope Viewport viewport, in ButtonEvent event) { return false; } |
36 bool handleButtonRelease(scope Viewport viewport, in ButtonEvent event) { return false; } | |
37 bool handleMotion(scope Viewport viewport, in MotionEvent event) { return false; } | |
38 bool handleScroll(scope Viewport viewport, in ScrollEvent event) { return false; } | |
39 //bool handleEnter(scope viewport, CrossingEvent event) { return false; } | |
40 //bool handleLeave(scope viewport, CrossingEvent event) { return false; } | |
41 //bool handleFocusIn(scope viewport, FocusEvent event) { return false; } | |
42 //bool handleFocusOut(scope viewport, FocusEvent event) { return false; } | |
43 bool handleKeyPress(scope Viewport viewport, in KeyEvent event) { return false; } | |
44 bool handleKeyRelease(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, |
56 | 47 in Rectangle pixelDamage, scope Context pixelCr) const { } |
2
d6f44347373d
* Switched over to geometry done with structs instead of classes.
David Bryant <daveb@acres.com.au>
parents:
diff
changeset
|
48 } |