vgsOfferScrollContainer.py (1619B)
1 #Embedded file name: C:\BuildAgent\work\20d73f1b24eed06e\eve\release\V24.01\eve\client\script\ui\view\aurumstore\vgsOfferScrollContainer.py 2 from carbonui.control.scrollContainer import ScrollContainer 3 from eve.client.script.ui.util.uiComponents import RunThreadOnce 4 LAZY_LOADING_BUFFER = 0.75 5 UPDATE_CONTENT_THREAD_KEY = '.'.join([__name__, 'UpdateContent']) 6 7 class OfferScrollContainer(ScrollContainer): 8 default_name = 'OfferScrollContainer' 9 pushContent = False 10 11 def __init__(self, *args, **kwargs): 12 ScrollContainer.__init__(self, *args, **kwargs) 13 self.contentLoader = None 14 self.runningScrollUpdate = False 15 self.clipCont.clipChildren = False 16 17 def RegisterContentLoader(self, contentLoader): 18 if self.contentLoader: 19 self.contentLoader.onUpdate.disconnect(self.UpdateContent) 20 self.contentLoader = contentLoader 21 self.contentLoader.onUpdate.connect(self.UpdateContent) 22 23 def OnScrolledVertical(self, posFraction): 24 self.UpdateContent() 25 26 @RunThreadOnce(UPDATE_CONTENT_THREAD_KEY) 27 def UpdateContent(self): 28 while self.ShouldLoadAdditionalContent(): 29 self.contentLoader.LoadAdditionalContent() 30 31 self._UpdateScrollbars() 32 33 def ShouldLoadAdditionalContent(self): 34 if not self.contentLoader.HasAdditionalContent(): 35 return False 36 if not self._scrollbar_vertical.display: 37 return True 38 scroll_handle_bottom = self._scrollbar_vertical.scroll_fraction + self._scrollbar_vertical.handle_size_fraction 39 return scroll_handle_bottom > LAZY_LOADING_BUFFER