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()