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