1 |
# Copyright (c) 2001, 2002, 2003 by Intevation GmbH |
# Copyright (c) 2001, 2002, 2003, 2004 by Intevation GmbH |
2 |
# Authors: |
# Authors: |
3 |
# Bernhard Herzog <[email protected]> |
# Bernhard Herzog <[email protected]> |
4 |
# Frank Koormann <[email protected]> |
# Frank Koormann <[email protected]> |
24 |
wxPaintDC, wxColour, wxClientDC, wxINVERT, wxTRANSPARENT_BRUSH, wxFont,\ |
wxPaintDC, wxColour, wxClientDC, wxINVERT, wxTRANSPARENT_BRUSH, wxFont,\ |
25 |
EVT_PAINT, EVT_LEFT_DOWN, EVT_LEFT_UP, EVT_MOTION, EVT_LEAVE_WINDOW, \ |
EVT_PAINT, EVT_LEFT_DOWN, EVT_LEFT_UP, EVT_MOTION, EVT_LEAVE_WINDOW, \ |
26 |
wxPlatform, wxBeginBusyCursor, wxEndBusyCursor, wxFileDialog, wxSAVE, \ |
wxPlatform, wxBeginBusyCursor, wxEndBusyCursor, wxFileDialog, wxSAVE, \ |
27 |
|
EVT_MIDDLE_DOWN, EVT_MIDDLE_UP, \ |
28 |
wxOVERWRITE_PROMPT, wxID_OK |
wxOVERWRITE_PROMPT, wxID_OK |
29 |
|
|
30 |
# Export related stuff |
# Export related stuff |
95 |
canvas_scale = self.canvas.scale |
canvas_scale = self.canvas.scale |
96 |
x, y, width, height = self.region |
x, y, width, height = self.region |
97 |
renderer = PrinterRenderer(dc, self.map, scale, offset, |
renderer = PrinterRenderer(dc, self.map, scale, offset, |
98 |
region = (0, 0, |
region = (mapregion[0], mapregion[1], |
99 |
(width/canvas_scale)*scale, |
(width/canvas_scale)*scale, |
100 |
(height/canvas_scale)*scale), |
(height/canvas_scale)*scale), |
101 |
resolution = resy, |
resolution = resy, |
129 |
EVT_PAINT(self, self.OnPaint) |
EVT_PAINT(self, self.OnPaint) |
130 |
EVT_LEFT_DOWN(self, self.OnLeftDown) |
EVT_LEFT_DOWN(self, self.OnLeftDown) |
131 |
EVT_LEFT_UP(self, self.OnLeftUp) |
EVT_LEFT_UP(self, self.OnLeftUp) |
132 |
|
EVT_MIDDLE_DOWN(self, self.OnMiddleDown) |
133 |
|
EVT_MIDDLE_UP(self, self.OnMiddleUp) |
134 |
EVT_MOTION(self, self.OnMotion) |
EVT_MOTION(self, self.OnMotion) |
135 |
EVT_LEAVE_WINDOW(self, self.OnLeaveWindow) |
EVT_LEAVE_WINDOW(self, self.OnLeaveWindow) |
136 |
wx.EVT_SIZE(self, self.OnSize) |
wx.EVT_SIZE(self, self.OnSize) |
189 |
|
|
190 |
def OnIdle(self, event): |
def OnIdle(self, event): |
191 |
"""Idle handler. Redraw the bitmap if necessary""" |
"""Idle handler. Redraw the bitmap if necessary""" |
192 |
if (self.bitmap is None |
if (self.Map() is not None |
193 |
or self.render_iter is not None |
and (self.bitmap is None |
194 |
or (self.HasSelectedShapes() |
or self.render_iter is not None |
195 |
and self.selection_bitmap is None)): |
or (self.HasSelectedShapes() |
196 |
|
and self.selection_bitmap is None))): |
197 |
event.RequestMore(self._do_redraw()) |
event.RequestMore(self._do_redraw()) |
198 |
|
|
199 |
def _do_redraw(self): |
def _do_redraw(self): |
304 |
selected_layer = self.selection.SelectedLayer() |
selected_layer = self.selection.SelectedLayer() |
305 |
selected_shapes = self.selection.SelectedShapes() |
selected_shapes = self.selection.SelectedShapes() |
306 |
|
|
307 |
|
width, height = self.GetSizeTuple() |
308 |
renderer = ExportRenderer(dc, self.Map(), scale, offset, |
renderer = ExportRenderer(dc, self.Map(), scale, offset, |
309 |
region = (0, 0, |
region = (0, 0, |
310 |
(width/self.scale)*scale, |
(width/self.scale)*scale, |
311 |
(height/self.scale)*scale), |
(height/self.scale)*scale), |
312 |
destination_region = mapregion) |
destination_region = mapregion) |
|
|
|
|
# Pass the entire bitmap as update region to the renderer. |
|
|
# We're redrawing the whole bitmap, after all. |
|
|
width, height = self.GetSizeTuple() |
|
313 |
renderer.RenderMap(selected_layer, selected_shapes) |
renderer.RenderMap(selected_layer, selected_shapes) |
314 |
|
|
315 |
dc.EndDrawing() |
dc.EndDrawing() |
316 |
dc.Close() |
dc.Close() |
317 |
dlg.Destroy() |
dlg.Destroy() |
356 |
def GetPortSizeTuple(self): |
def GetPortSizeTuple(self): |
357 |
return self.GetSizeTuple() |
return self.GetSizeTuple() |
358 |
|
|
359 |
|
def OnMiddleDown(self, event): |
360 |
|
self.remembertool = self.tool |
361 |
|
if self.Map() is not None and self.Map().HasLayers(): |
362 |
|
self.PanTool() |
363 |
|
self.OnLeftDown(event) |
364 |
|
|
365 |
|
def OnMiddleUp(self, event): |
366 |
|
self.OnLeftUp(event) |
367 |
|
if self.remembertool: |
368 |
|
self.SelectTool(self.remembertool) |
369 |
|
|
370 |
def OnLeftDown(self, event): |
def OnLeftDown(self, event): |
371 |
self.MouseLeftDown(event) |
self.MouseLeftDown(event) |
372 |
if self.tool is not None: |
if self.tool is not None: |