NovaBryan/EVE_Dump
Log | Files | 📦 下载最新源码 (.zip) | Refs | README

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