# HG changeset patch # User David Bryant # Date 1282142982 -34200 # Node ID 467febed7367bfe5a1edb8a8dccabfdeb923ef22 # Parent 100dd23c7bdf720e4f568fcbe9a90d7c013dd67e * 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 diff -r 100dd23c7bdf -r 467febed7367 builder.d --- 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"); diff -r 100dd23c7bdf -r 467febed7367 doodle/dia/grid_layer.d --- 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(); diff -r 100dd23c7bdf -r 467febed7367 doodle/dia/icanvas.d --- 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; diff -r 100dd23c7bdf -r 467febed7367 doodle/dia/layer_stack.d --- 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); } } diff -r 100dd23c7bdf -r 467febed7367 doodle/dia/page_layer.d --- 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; { diff -r 100dd23c7bdf -r 467febed7367 doodle/dia/tool_layer.d --- 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); } diff -r 100dd23c7bdf -r 467febed7367 doodle/fig/diagram_layer.d --- 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); diff -r 100dd23c7bdf -r 467febed7367 doodle/gtk/cairo_canvas.d --- 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; diff -r 100dd23c7bdf -r 467febed7367 doodle/gtk/cairo_renderer.d --- 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) {