drawingelement.py (2722B)
1 #Embedded file name: C:\BuildAgent\work\20d73f1b24eed06e\eve\release\V24.01\packages\drawingpolygon\drawingelement.py 2 from drawingpolygon.cursors import CURSOR_SELECTOR_POSITION 3 from carbonui import uiconst 4 from carbonui.primitives.sprite import TexturedBase 5 from signals.signal import Signal 6 7 class DrawingElement(TexturedBase): 8 default_state = uiconst.UI_NORMAL 9 default_align = uiconst.TOPLEFT 10 default_idx = 0 11 default_cursor = CURSOR_SELECTOR_POSITION 12 default_draggingCursor = None 13 14 def ApplyAttributes(self, attributes): 15 super(DrawingElement, self).ApplyAttributes(attributes) 16 self.polygon = attributes.get('polygon') 17 self.dragging_cursor = attributes.get('draggingCursor', self.default_draggingCursor) 18 self.base_cursor = self.cursor 19 self.is_dragging = False 20 self.is_hovering = False 21 self.is_left_click_down = False 22 self.on_left_clicked = Signal(signalName='on_left_clicked') 23 self.on_right_clicked = Signal(signalName='on_right_clicked') 24 self.on_drag_started = Signal(signalName='on_drag_started') 25 self.on_drag_ended = Signal(signalName='on_drag_ended') 26 self.on_hover_started = Signal(signalName='on_hover_started') 27 self.on_hover_ended = Signal(signalName='on_hover_ended') 28 29 def OnMouseDown(self, button, *args): 30 if button == uiconst.MOUSELEFT: 31 self.is_left_click_down = True 32 33 def OnMouseMove(self, *args): 34 if self.is_left_click_down and not self.is_dragging: 35 self.is_dragging = True 36 if self.dragging_cursor: 37 self.set_cursor(self.dragging_cursor) 38 self.on_drag_started(self) 39 40 def OnMouseUp(self, button, *args): 41 if button == uiconst.MOUSELEFT: 42 self.is_left_click_down = False 43 if self.is_dragging: 44 self.is_dragging = False 45 if self.dragging_cursor: 46 self.reset_cursor() 47 self.on_drag_ended(self) 48 else: 49 self.on_left_clicked(self) 50 elif button == uiconst.MOUSERIGHT: 51 self.on_right_clicked(self) 52 53 def OnMouseEnter(self, *args): 54 if not self.is_hovering: 55 self.is_hovering = True 56 self.on_hover_started() 57 58 def OnMouseExit(self, *args): 59 if self.is_hovering: 60 self.is_hovering = False 61 self.on_hover_ended() 62 63 def set_base_cursor(self, cursor): 64 self.base_cursor = cursor 65 66 def set_dragging_cursor(self, cursor): 67 self.dragging_cursor = cursor 68 69 def set_cursor(self, cursor): 70 self.cursor = cursor 71 72 def reset_cursor(self): 73 self.cursor = self.base_cursor