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

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]