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

baseScrollContEntry.py (2302B)


      1 #Embedded file name: C:\BuildAgent\work\20d73f1b24eed06e\eve\release\V24.01\packages\carbonui\control\baseScrollContEntry.py
      2 from carbonui import uiconst
      3 from carbonui.util.dpi import ScaleDpi
      4 from carbonui.primitives.container import Container
      5 from eve.client.script.ui.control.eveWindowUnderlay import ListEntryUnderlay
      6 from signals import Signal
      7 
      8 class LazyLoadVerticalMixin(object):
      9     is_loaded = False
     10 
     11     def check_lazy_load(self, clipper):
     12         if self.is_loaded or self.is_clipped_by(clipper):
     13             return False
     14         self.is_loaded = True
     15         self.lazy_load()
     16         return True
     17 
     18     def is_clipped_by(self, clipper):
     19         y_min = -ScaleDpi(self.parent.top)
     20         y_max = y_min + clipper.displayHeight
     21         return self.displayY > y_max or self.displayY + self.displayHeight < y_min
     22 
     23     def lazy_load(self):
     24         pass
     25 
     26 
     27 class BaseScrollContEntry(Container, LazyLoadVerticalMixin):
     28     default_name = 'BaseScrollContEntry'
     29     default_state = uiconst.UI_NORMAL
     30     default_align = uiconst.TOTOP
     31     default_fixedColor = None
     32 
     33     def ApplyAttributes(self, attributes):
     34         super(BaseScrollContEntry, self).ApplyAttributes(attributes)
     35         self.fixedColor = attributes.get('fixedColor', self.default_fixedColor)
     36         self.isSelected = False
     37         self.on_clicked = Signal(signalName='on_clicked')
     38         self.on_mouse_enter = Signal(signalName='on_mouse_enter')
     39         self.on_mouse_exit = Signal(signalName='on_mouse_exit')
     40         self.hoverBG = None
     41 
     42     def _check_construct_hover_bg(self):
     43         if self.hoverBG is None:
     44             self.hoverBG = ListEntryUnderlay(bgParent=self, color_override=self.fixedColor)
     45 
     46     def OnMouseEnter(self, *args):
     47         self._check_construct_hover_bg()
     48         self.hoverBG.hovered = True
     49 
     50     def OnMouseExit(self, *args):
     51         self._check_construct_hover_bg()
     52         self.hoverBG.hovered = False
     53 
     54     def OnClick(self, *args):
     55         self.on_clicked(self)
     56 
     57     def OnSelect(self):
     58         if not self.isSelected:
     59             self.isSelected = True
     60             self._check_construct_hover_bg()
     61             self.hoverBG.Select()
     62 
     63     def OnDeselect(self):
     64         if self.isSelected:
     65             self.isSelected = False
     66             self._check_construct_hover_bg()
     67             self.hoverBG.Deselect()