diff doodle/dia/grid_layer.d @ 89:467febed7367

* Ignore excre * Some tentative work in grid_layer.d * Give the ScreenModel to all the layers. This needs refinement. * A stroke wouldn't hurt occasionally in cairo_renderer.d
author David Bryant <bagnose@gmail.com>
date Thu, 19 Aug 2010 00:19:42 +0930
parents cdd4fc728d94
children 885914257e0e
line wrap: on
line diff
--- a/doodle/dia/grid_layer.d	Wed Aug 18 23:51:43 2010 +0930
+++ b/doodle/dia/grid_layer.d	Thu Aug 19 00:19:42 2010 +0930
@@ -6,6 +6,7 @@
 
 private {
     import std.math;
+    import std.stdio;
 }
 
 private {
@@ -31,13 +32,26 @@
     }
 
     override void draw(in Rectangle screenDamage, scope Renderer screenRenderer,
-                       in Rectangle modelDamage, scope Renderer modelRenderer) const {
-        /+
+                       in Rectangle modelDamage, scope Renderer modelRenderer,
+                       in ScreenModel screenModel) const {
         assert(_zoomValid);
 
-        double xx = 1.0, yy = 1.0;
-        modelCr.userToDeviceDistance(xx, yy);
+        auto z = screenModel.zoom;
+        // Is _zoom like screenModel.zoom ?
+
+        modelRenderer.pushState; {
+            modelRenderer.setColor(Color(0.0, 0.0, 0.0, 0.3));
+            auto x = start(modelDamage.corner0.x, _spacing);
 
+            for (;;) {
+                writefln("Doing something %s", x);
+                modelRenderer.drawVLine(x, modelDamage.corner0.y, modelDamage.corner1.y);
+                x += _spacing;
+                if (x > modelDamage.corner1.x) break;
+            }
+        } modelRenderer.popState;
+
+/+
         modelCr.save(); {
             modelCr.setSourceRgba(0.0, 0.0, 0.0, 0.3);
             modelCr.setLineWidth(0.5);
@@ -52,7 +66,7 @@
                     // Ensure 1 pixel wide FIXME is this naughty? We are sneaking
                     // through cairo to mix model and pixel coordinates...
                     modelCr.save(); {
-                        modelCr.scale(1.0 / xx, 1.0 / yy);
+                        modelCr.scale(1.0 / z, 1.0 / z);
                         modelCr.stroke();
                     } modelCr.restore();