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);