backgroundList.py (2060B)
1 #Embedded file name: C:\BuildAgent\work\20d73f1b24eed06e\eve\release\V24.01\packages\carbonui\primitives\backgroundList.py 2 from __future__ import print_function 3 import weakref 4 from carbonui.primitives.base import Base 5 6 class BackgroundList(object): 7 8 def __init__(self, owner): 9 self._childrenObjects = [] 10 self._ownerRef = weakref.ref(owner) 11 12 def GetOwner(self): 13 if self._ownerRef: 14 return self._ownerRef() 15 16 def append(self, obj): 17 return self.insert(None, obj) 18 19 def insert(self, idx, obj): 20 if not isinstance(obj, Base): 21 print('Someone trying to add item which is not of correct type', obj) 22 return 23 owner = self.GetOwner() 24 if owner: 25 obj._parentRef = weakref.ref(owner) 26 if idx == -1 or idx is None: 27 self._childrenObjects.append(obj) 28 owner.AppendBackgroundObject(obj) 29 else: 30 self._childrenObjects.insert(idx, obj) 31 owner.InsertBackgroundObject(idx, obj) 32 owner.UpdateBackgrounds() 33 return self 34 35 def remove(self, obj): 36 try: 37 self._childrenObjects.remove(obj) 38 except ValueError: 39 pass 40 41 obj._parentRef = None 42 owner = self.GetOwner() 43 if owner: 44 owner.RemoveBackgroundObject(obj) 45 return self 46 47 def index(self, obj): 48 return self._childrenObjects.index(obj) 49 50 def __getitem__(self, key): 51 return self._childrenObjects[key] 52 53 def __len__(self): 54 return len(self._childrenObjects) 55 56 def __iter__(self): 57 return iter(self._childrenObjects) 58 59 def __getslice__(self, f, t): 60 return self._childrenObjects[f:t] 61 62 def __contains__(self, obj): 63 return obj in self._childrenObjects 64 65 def __cmp__(self, other): 66 return cmp(other, self._childrenObjects) 67 68 def __reversed__(self): 69 return reversed(self._childrenObjects) 70 71 def __delitem__(self, key): 72 del self._childrenObjects[key]