Mercurial > nagslang
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): |