Mercurial > projects > doodle
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) { |