comparison doodle/dia/grid_layer.d @ 91:42766e14534e

Update screenViewBounds when the window is resized
author daveb
date Thu, 19 Aug 2010 18:28:18 +0930
parents 885914257e0e
children a98116479793
comparison
equal deleted inserted replaced
90:885914257e0e 91:42766e14534e
35 in Rectangle modelDamage, scope Renderer modelRenderer, 35 in Rectangle modelDamage, scope Renderer modelRenderer,
36 in ScreenModel screenModel) const { 36 in ScreenModel screenModel) const {
37 assert(_zoomValid); 37 assert(_zoomValid);
38 38
39 auto z = screenModel.zoom; 39 auto z = screenModel.zoom;
40 // Is _zoom like screenModel.zoom ?
41 40
42 modelRenderer.pushState; { 41 modelRenderer.pushState; {
43 modelRenderer.setColor(Color(0.0, 0.0, 0.0, 0.3)); 42 modelRenderer.setColor(Color(0.0, 0.0, 0.0, 0.3));
44 modelRenderer.setLineWidth(0.5); 43 modelRenderer.setLineWidth(1 / z);
45 44
46 auto x = start(modelDamage.corner0.x, _spacing); 45 auto x = start(modelDamage.corner0.x, _spacing);
47 46
48 for (;;) { 47 for (;;) {
49 writefln("Doing something %s", x);
50 modelRenderer.drawVLine(x, modelDamage.corner0.y, modelDamage.corner1.y); 48 modelRenderer.drawVLine(x, modelDamage.corner0.y, modelDamage.corner1.y);
51 x += _spacing; 49 x += _spacing;
52 if (x > modelDamage.corner1.x) break; 50 if (x > modelDamage.corner1.x) break;
53 } 51 }
54 52
55 auto y = start(modelDamage.corner0.y, _spacing); 53 auto y = start(modelDamage.corner0.y, _spacing);
56 54
57 for (;;) { 55 for (;;) {
58 writefln("Doing something %s", y);
59 modelRenderer.drawHLine(y, modelDamage.corner0.x, modelDamage.corner1.x); 56 modelRenderer.drawHLine(y, modelDamage.corner0.x, modelDamage.corner1.x);
60 y += _spacing; 57 y += _spacing;
61 if (y > modelDamage.corner1.y) break; 58 if (y > modelDamage.corner1.y) break;
62 } 59 }
63 } modelRenderer.popState; 60 } modelRenderer.popState;
64
65 /+
66 modelCr.save(); {
67 modelCr.setSourceRgba(0.0, 0.0, 0.0, 0.3);
68 modelCr.setLineWidth(0.5);
69
70 {
71 // vertical grid lines
72 double x = start(modelDamage.corner0.x, _spacing);
73
74 for (;;) {
75 vline(modelCr, x, modelDamage.corner0.y, modelDamage.corner1.y);
76
77 // Ensure 1 pixel wide FIXME is this naughty? We are sneaking
78 // through cairo to mix model and pixel coordinates...
79 modelCr.save(); {
80 modelCr.scale(1.0 / z, 1.0 / z);
81 modelCr.stroke();
82 } modelCr.restore();
83
84 if (x > modelDamage.corner1.x) {
85 break;
86 }
87
88 x += _spacing;
89 }
90 }
91
92 {
93 // horizontal grid lines
94 double y = start(modelDamage.corner0.y, _spacing);
95
96 for (;;) {
97 hline(modelCr, y, modelDamage.corner0.x, modelDamage.corner1.x);
98
99 // FIXME?
100 modelCr.save(); {
101 modelCr.scale(1.0 / xx, 1.0 / yy);
102 modelCr.stroke();
103 } modelCr.restore();
104
105 if (y > modelDamage.corner1.y) {
106 break;
107 }
108
109 y += _spacing;
110 }
111 }
112 } modelCr.restore();
113 +/
114 } 61 }
115 62
116 // IGrid overrides: 63 // IGrid overrides:
117 64
118 override void zoomChanged(double zoom) { 65 override void zoomChanged(double zoom) {