Mercurial > projects > doodle
comparison doodle/dia/tool_layer.d @ 56:b190a9d9352e
Checkpoint
author | "David Bryant <bagnose@gmail.com>" |
---|---|
date | Sun, 08 Aug 2010 21:56:54 +0930 |
parents | 1b4c9ba58673 |
children | 9960c4fbd0dd |
comparison
equal
deleted
inserted
replaced
55:4922e746dd76 | 56:b190a9d9352e |
---|---|
7 private { | 7 private { |
8 import std.stdio; | 8 import std.stdio; |
9 import doodle.cairo.routines; | 9 import doodle.cairo.routines; |
10 } | 10 } |
11 | 11 |
12 class ToolLayer : Layer, EventHandler { | 12 interface ToolStack { |
13 } | |
14 | |
15 class ToolLayer : Layer, EventHandler, ToolStack { | |
13 this(in Tool[] tools, in string name) { | 16 this(in Tool[] tools, in string name) { |
14 super(name); | 17 super(name); |
15 _tools = tools.dup; | 18 _tools = tools.dup; |
16 } | 19 } |
17 | 20 |
22 } | 25 } |
23 | 26 |
24 override void draw(const Viewport viewport, | 27 override void draw(const Viewport viewport, |
25 in Rectangle pixelDamage, scope Context pixelCr, | 28 in Rectangle pixelDamage, scope Context pixelCr, |
26 in Rectangle modelDamage, scope Context modelCr) const { | 29 in Rectangle modelDamage, scope Context modelCr) const { |
27 // FIXME this isn't how we will really draw the tools... | 30 if (_grabbedTool) { |
28 foreach (const Tool tool; _tools) { | 31 _grabbedTool.draw(viewport, pixelDamage, pixelCr); |
29 tool.draw(viewport, pixelDamage, pixelCr, modelDamage, modelCr); | |
30 } | 32 } |
31 } | 33 } |
32 | 34 |
33 // EventHandler overrides: | 35 // EventHandler overrides: |
34 | 36 |