Mercurial > projects > doodle
comparison doodle/gtk/cairo_canvas.d @ 91:42766e14534e
Update screenViewBounds when the window is resized
author | daveb |
---|---|
date | Thu, 19 Aug 2010 18:28:18 +0930 |
parents | 467febed7367 |
children | a98116479793 |
comparison
equal
deleted
inserted
replaced
90:885914257e0e | 91:42766e14534e |
---|---|
174 } | 174 } |
175 } | 175 } |
176 | 176 |
177 private { | 177 private { |
178 | 178 |
179 void initialiseBounds(in Rectangle viewBoundsScreen) { | |
180 Rectangle layerBounds = _layerStack.bounds; | |
181 Rectangle paddedLayerBounds = growCentre(layerBounds, 2 * layerBounds.size); | |
182 _screenModel = new ScreenModel(0.25 * _pixelsPerMillimetre, paddedLayerBounds, viewBoundsScreen); | |
183 _grid.zoomChanged(_screenModel.zoom); | |
184 | |
185 updateAdjustments; | |
186 updateRulers; | |
187 } | |
188 | |
189 void consolidateBounds() { | 179 void consolidateBounds() { |
190 Rectangle layerBounds = _layerStack.bounds; | 180 Rectangle layerBounds = _layerStack.bounds; |
191 Rectangle paddedLayerBounds = growCentre(layerBounds, 2 * layerBounds.size); | 181 Rectangle paddedLayerBounds = growCentre(layerBounds, 2 * layerBounds.size); |
192 _screenModel.consolidateCanvasBounds(paddedLayerBounds); | 182 _screenModel.consolidateCanvasBounds(paddedLayerBounds); |
193 | 183 |
196 } | 186 } |
197 | 187 |
198 bool onConfigure(GdkEventConfigure * event, Widget widget) { | 188 bool onConfigure(GdkEventConfigure * event, Widget widget) { |
199 assert(widget is _drawingArea); | 189 assert(widget is _drawingArea); |
200 | 190 |
201 Rectangle viewBoundsScreen = Rectangle(Point(0.0, 0.0), Vector(cast(double)event.width, cast(double)event.height)); | 191 auto viewBoundsScreen = Rectangle(Point(0.0, 0.0), Vector(cast(double)event.width, cast(double)event.height)); |
202 if (_screenModel is null) { initialiseBounds(viewBoundsScreen); } | 192 |
203 else { consolidateBounds; } | 193 if (_screenModel is null) { |
194 Rectangle layerBounds = _layerStack.bounds; | |
195 Rectangle paddedLayerBounds = growCentre(layerBounds, 2 * layerBounds.size); | |
196 _screenModel = new ScreenModel(0.25 * _pixelsPerMillimetre, paddedLayerBounds, viewBoundsScreen); | |
197 _grid.zoomChanged(_screenModel.zoom); | |
198 | |
199 updateAdjustments; | |
200 updateRulers; | |
201 } | |
202 else { | |
203 _screenModel.setViewBoundsScreen(viewBoundsScreen); | |
204 consolidateBounds; | |
205 } | |
204 | 206 |
205 return true; | 207 return true; |
206 } | 208 } |
207 | 209 |
208 bool onExpose(GdkEventExpose * event, Widget widget) { | 210 bool onExpose(GdkEventExpose * event, Widget widget) { |