Mercurial > projects > doodle
changeset 69:d540f7e4af9e
Checkpoint
author | "David Bryant <bagnose@gmail.com>" |
---|---|
date | Sat, 14 Aug 2010 19:39:58 +0930 |
parents | 64bd864db30d |
children | 0e61702c6ea6 |
files | doodle/gtk/canvas.d doodle/main/prog/doodler.d |
diffstat | 2 files changed, 9 insertions(+), 13 deletions(-) [+] |
line wrap: on
line diff
--- a/doodle/gtk/canvas.d Fri Aug 13 15:53:48 2010 +0930 +++ b/doodle/gtk/canvas.d Sat Aug 14 19:39:58 2010 +0930 @@ -51,7 +51,7 @@ // resize the widget final class Canvas : Table, private IViewport { - this(in Layer[] layers, IEventHandler eventHandler, IGrid grid, in double ppi) { + this(in Layer[] layers, IEventHandler eventHandler, IGrid grid, in double pixelsPerMillimetre) { super(3, 3, 0); _damage = Rectangle.DEFAULT; @@ -59,13 +59,7 @@ _layers = layers.dup; _eventHandler = eventHandler; _grid = grid; - _ppi = ppi; - - /* - trace("Layer bounds: %s", layerBounds); - trace("Canvas bounds: %s", _canvasBounds); - trace("View centre: %s", _viewCentre); - */ + _pixelsPerMillimetre = pixelsPerMillimetre; // Create our child widgets and register callbacks @@ -234,7 +228,7 @@ // - _zoom = 0.25 * _ppi / MM_PER_INCH; + _zoom = 0.25 * _pixelsPerMillimetre; // ie 0.25 pixels represents a millimetre _canvasBounds = paddedLayerBounds; _viewCentre = _canvasBounds.centre; @@ -699,8 +693,6 @@ Layer[] _layers; IEventHandler _eventHandler; IGrid _grid; - double _ppi; - - static immutable MM_PER_INCH = 25.4; + double _pixelsPerMillimetre; } }
--- a/doodle/main/prog/doodler.d Fri Aug 13 15:53:48 2010 +0930 +++ b/doodle/main/prog/doodler.d Sat Aug 14 19:39:58 2010 +0930 @@ -50,7 +50,11 @@ layers ~= new PageLayer; layers ~= gridLayer; layers ~= toolLayer; - auto canvas = new Canvas(layers, toolLayer, gridLayer, 120.0); + + // assume the screen has PPI of 120.0 + immutable millimetersPerInch = 25.4; + immutable pixelsPerMillimetre = 120.0 / millimetersPerInch; + auto canvas = new Canvas(layers, toolLayer, gridLayer, pixelsPerMillimetre); vbox.packStart(canvas, true, true, 0);