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

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