Mercurial > projects > doodle
diff doodle/fig/select_tool.d @ 80:b759414d2b72
Switched from cairo to Drawable abstraction
author | "David Bryant <bagnose@gmail.com>" |
---|---|
date | Sun, 15 Aug 2010 23:43:04 +0930 |
parents | 535bae7a7305 |
children | d92b9f04b1e8 |
line wrap: on
line diff
--- a/doodle/fig/select_tool.d Sun Aug 15 23:18:05 2010 +0930 +++ b/doodle/fig/select_tool.d Sun Aug 15 23:43:04 2010 +0930 @@ -16,7 +16,7 @@ override bool handleButtonPress(scope IViewport viewport, in ButtonEvent event) { if (event.buttonName == ButtonName.LEFT) { _active = true; - _anchorPoint = _currentPoint = event.pixelPoint; + _anchorPoint = _currentPoint = event.screenPoint; viewport.setCursor(Cursor.HAND); return true; } @@ -40,31 +40,39 @@ override bool handleMotion(scope IViewport viewport, in MotionEvent event) { if (_active) { viewport.damageScreen(growCentre(Rectangle(_anchorPoint, _currentPoint), LINE_WIDTH)); - _currentPoint = event.pixelPoint; + _currentPoint = event.screenPoint; viewport.damageScreen(growCentre(Rectangle(_anchorPoint, _currentPoint), LINE_WIDTH)); } return false; } - override void draw(in Rectangle pixelDamage, scope Context pixelCr) const { + override void draw(in Rectangle screenDamage, scope Drawable screenDrawable) const { if (_active) { /* - pixelCr.save; { - pixelCr.setSourceRgba(0.0, 0.0, 0.8, 0.3); - rectangle(pixelCr, Rectangle(_currentPoint, _anchorPoint)); - pixelCr.fill(); - } pixelCr.restore(); + screenCr.save; { + screenCr.setSourceRgba(0.0, 0.0, 0.8, 0.3); + rectangle(screenCr, Rectangle(_currentPoint, _anchorPoint)); + screenCr.fill(); + } screenCr.restore(); */ - pixelCr.save(); { + screenDrawable.pushState; { + screenDrawable.setLineWidth(LINE_WIDTH); + screenDrawable.setColor(Color(0.0, 0.0, 0.5, 1.0)); + screenDrawable.drawRectangle(Rectangle(_currentPoint, _anchorPoint), false); + } screenDrawable.popState; + + /* + screenCr.save(); { double[] dashes = [ 4.0, 4.0 ]; - pixelCr.setDash(dashes, 0.0); - pixelCr.setSourceRgba(0.0, 0.0, 0.5, 1.0); - pixelCr.setLineWidth(LINE_WIDTH); - rectangle(pixelCr, Rectangle(_currentPoint, _anchorPoint)); - pixelCr.stroke; - } pixelCr.restore; + screenCr.setDash(dashes, 0.0); + screenCr.setSourceRgba(0.0, 0.0, 0.5, 1.0); + screenCr.setLineWidth(LINE_WIDTH); + rectangle(screenCr, Rectangle(_currentPoint, _anchorPoint)); + screenCr.stroke; + } screenCr.restore; + */ } }