changeset 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 100dd23c7bdf
children 885914257e0e
files builder.d doodle/dia/grid_layer.d doodle/dia/icanvas.d doodle/dia/layer_stack.d doodle/dia/page_layer.d doodle/dia/tool_layer.d doodle/fig/diagram_layer.d doodle/gtk/cairo_canvas.d doodle/gtk/cairo_renderer.d
diffstat 9 files changed, 38 insertions(+), 12 deletions(-) [+]
line wrap: on
line diff
--- a/builder.d	Wed Aug 18 23:51:43 2010 +0930
+++ b/builder.d	Thu Aug 19 00:19:42 2010 +0930
@@ -944,6 +944,10 @@
     void load(string path) {
         //writefln("loading bundle from %s", path);
 
+        if (path == "What?/excre") {      //
+            return;
+        }
+
         // add path to Global for use when compiling
         Global.bundlePaths ~= path;
         Global.optionsPath = path.join("options");
--- 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();
 
--- a/doodle/dia/icanvas.d	Wed Aug 18 23:51:43 2010 +0930
+++ b/doodle/dia/icanvas.d	Thu Aug 19 00:19:42 2010 +0930
@@ -4,6 +4,7 @@
     import doodle.tk.geometry;
     import doodle.tk.events;
     import doodle.tk.renderer;
+    import doodle.tk.screen_model;
 }
 
 private {
@@ -68,7 +69,8 @@
     Rectangle bounds() const;
 
     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;
 
     private {
         immutable string _name;
--- a/doodle/dia/layer_stack.d	Wed Aug 18 23:51:43 2010 +0930
+++ b/doodle/dia/layer_stack.d	Thu Aug 19 00:19:42 2010 +0930
@@ -18,9 +18,10 @@
     }
 
     void draw(in Rectangle screenDamage, scope Renderer screenRenderer,
-              in Rectangle modelDamage, scope Renderer modelRenderer) {
+              in Rectangle modelDamage, scope Renderer modelRenderer,
+              in ScreenModel screenModel) const {
         foreach(layer; _layers) {
-            layer.draw(screenDamage, screenRenderer, modelDamage, modelRenderer);
+            layer.draw(screenDamage, screenRenderer, modelDamage, modelRenderer, screenModel);
         }
     }
 
--- a/doodle/dia/page_layer.d	Wed Aug 18 23:51:43 2010 +0930
+++ b/doodle/dia/page_layer.d	Thu Aug 19 00:19:42 2010 +0930
@@ -21,7 +21,8 @@
     }
 
     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 {
         // Make the paper white, with a border
 
         modelRenderer.pushState; {
--- a/doodle/dia/tool_layer.d	Wed Aug 18 23:51:43 2010 +0930
+++ b/doodle/dia/tool_layer.d	Thu Aug 19 00:19:42 2010 +0930
@@ -40,7 +40,8 @@
     }
 
     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 {
         if (_grabbedTool) {
             _grabbedTool.draw(screenDamage, screenRenderer);
         }
--- a/doodle/fig/diagram_layer.d	Wed Aug 18 23:51:43 2010 +0930
+++ b/doodle/fig/diagram_layer.d	Thu Aug 19 00:19:42 2010 +0930
@@ -24,7 +24,8 @@
     }
 
     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 {
         foreach (e; _elements) {
             if ((e.bounds & modelDamage).valid) {
                 e.draw(modelDamage, modelRenderer);
--- a/doodle/gtk/cairo_canvas.d	Wed Aug 18 23:51:43 2010 +0930
+++ b/doodle/gtk/cairo_canvas.d	Thu Aug 19 00:19:42 2010 +0930
@@ -249,7 +249,8 @@
                 } screenCr.restore;
 
                 _layerStack.draw(screenDamage, new CairoRenderer(screenCr),
-                                 modelDamage, new CairoRenderer(modelCr));
+                                 modelDamage, new CairoRenderer(modelCr),
+                                 _screenModel);
             } screenCr.restore; modelCr.restore;
 
             return true;
--- a/doodle/gtk/cairo_renderer.d	Wed Aug 18 23:51:43 2010 +0930
+++ b/doodle/gtk/cairo_renderer.d	Thu Aug 19 00:19:42 2010 +0930
@@ -64,6 +64,7 @@
     void drawVLine(in double x, in double y0, in double y1) {
         _cr.moveTo(x, y0);
         _cr.lineTo(x, y1);
+        _cr.stroke;
     }
 
     void drawPoly(in Point[] points, bool fill = false) {