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

dragContainer.py (1278B)


      1 #Embedded file name: C:\BuildAgent\work\20d73f1b24eed06e\eve\release\V24.01\packages\carbonui\control\dragdrop\dragContainer.py
      2 import blue
      3 import carbonui.const as uiconst
      4 from carbonui.primitives.container import Container
      5 from carbonui.uicore import uicore
      6 
      7 class DragContainer(Container):
      8     _dragInited = False
      9     dragSound = uiconst.SOUND_DRAGDROPLOOP
     10 
     11     def ApplyAttributes(self, attributes):
     12         super(DragContainer, self).ApplyAttributes(attributes)
     13         dragData = attributes.dragData
     14         if not isinstance(dragData, (list, tuple)):
     15             dragData = (dragData,)
     16         self.dragData = dragData
     17 
     18     def _OnClose(self, *args):
     19         uicore.audioHandler.StopSoundLoop(self.dragSound)
     20         Container._OnClose(self, *args)
     21         self.dragData = None
     22 
     23     def InitiateDrag(self, mouseOffset):
     24         if not self or self.destroyed or self._dragInited:
     25             return
     26         self._dragInited = True
     27         uicore.audioHandler.StartSoundLoop(self.dragSound)
     28         mx, my = mouseOffset
     29         while uicore.uilib.leftbtn and not self.destroyed and uicore.IsDragging():
     30             self.state = uiconst.UI_DISABLED
     31             self.left = uicore.uilib.x - mx
     32             self.top = uicore.uilib.y - my
     33             blue.pyos.synchro.Yield()