comparison tools/area_editor.py @ 167:bb297f3f99f4

Allow using right mouse button to drag level display
author Neil Muller <drnlmuller@gmail.com>
date Tue, 03 Sep 2013 11:21:43 +0200
parents f73aba2e46bd
children e003b994c48b
comparison
equal deleted inserted replaced
166:f73aba2e46bd 167:bb297f3f99f4
151 self.level = level 151 self.level = level
152 self.pos = (0, 0) 152 self.pos = (0, 0)
153 self.filled_mode = False 153 self.filled_mode = False
154 self.mouse_pos = None 154 self.mouse_pos = None
155 self.cur_poly = None 155 self.cur_poly = None
156 self._mouse_drag = False
156 157
157 def _level_coordinates(self, pos): 158 def _level_coordinates(self, pos):
158 # Move positions to level values 159 # Move positions to level values
159 if not pos: 160 if not pos:
160 return (0, 0) 161 return (0, 0)
219 old_pos = self.mouse_pos 220 old_pos = self.mouse_pos
220 self.mouse_pos = ev.pos 221 self.mouse_pos = ev.pos
221 if self.cur_poly and old_pos != self.mouse_pos: 222 if self.cur_poly and old_pos != self.mouse_pos:
222 self.invalidate() 223 self.invalidate()
223 224
225 def mouse_drag(self, ev):
226 if self._mouse_drag:
227 old_pos = self.mouse_pos
228 self.mouse_pos = ev.pos
229 diff = (-self.mouse_pos[0] + old_pos[0],
230 -self.mouse_pos[1] + old_pos[1])
231 self._move_view(diff)
232 self.invalidate()
233
224 def mouse_down(self, ev): 234 def mouse_down(self, ev):
225 if ev.button == 4: # Scroll up 235 if ev.button == 4: # Scroll up
226 self._move_view((0, -10)) 236 self._move_view((0, -10))
227 elif ev.button == 5: # Scroll down 237 elif ev.button == 5: # Scroll down
228 self._move_view((0, 10)) 238 self._move_view((0, 10))
229 elif ev.button == 6: # Scroll left 239 elif ev.button == 6: # Scroll left
230 self._move_view((-10, 0)) 240 self._move_view((-10, 0))
231 elif ev.button == 7: # Scroll right 241 elif ev.button == 7: # Scroll right
232 self._move_view((10, 0)) 242 self._move_view((10, 0))
233 elif self.cur_poly: 243 elif self.cur_poly and ev.button == 1:
234 # Add a point 244 # Add a point
235 self.level.add_point(self.cur_poly, 245 self.level.add_point(self.cur_poly,
236 self._level_coordinates(ev.pos)) 246 self._level_coordinates(ev.pos))
247 elif ev.button == 3:
248 self._mouse_drag = True
249
250 def mouse_up(self, ev):
251 if ev.button == 3:
252 self._mouse_drag = False
237 253
238 def close_poly(self): 254 def close_poly(self):
239 if self.cur_poly is None: 255 if self.cur_poly is None:
240 return 256 return
241 if self.level.close_poly(self.cur_poly): 257 if self.level.close_poly(self.cur_poly):