# HG changeset patch # User "David Bryant " # Date 1281780598 -34200 # Node ID d540f7e4af9ed1bb323ffbd515fb298c96ef0776 # Parent 64bd864db30d7706999e20c82240a963e2f829e1 Checkpoint diff -r 64bd864db30d -r d540f7e4af9e doodle/gtk/canvas.d --- 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; } } diff -r 64bd864db30d -r d540f7e4af9e doodle/main/prog/doodler.d --- 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);