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

boundingboxbracket.py (3813B)


      1 #Embedded file name: C:\BuildAgent\work\20d73f1b24eed06e\eve\release\V24.01\packages\carbonui\primitives\boundingboxbracket.py
      2 import trinity
      3 from carbonui import uiconst
      4 from carbonui.primitives.container import Container
      5 from carbonui.uicore import uicore
      6 from carbonui.util.dpi import reverse_scale_dpi, scale_dpi
      7 
      8 class BoundingBoxBracket(Container):
      9     default_name = 'boundingboxBracket'
     10     default_align = uiconst.TOPLEFT
     11     default_minWidth = 0.0
     12     default_minHeight = 0.0
     13     default_maxWidth = 0.0
     14     default_maxHeight = 0.0
     15     default_screenMargin = 32.0
     16 
     17     def ApplyAttributes(self, attributes):
     18         proj = trinity.Tr2ProjectBoundingBoxBracket()
     19         self.projectBracket = proj
     20         cs = uicore.uilib.bracketCurveSet
     21         cs.curves.append(self.projectBracket)
     22         self.leftBinding = trinity.CreatePythonBinding(cs, proj, 'projectedX', self, 'scaledLeft')
     23         self.topBinding = trinity.CreatePythonBinding(cs, proj, 'projectedY', self, 'scaledTop')
     24         self.widthBinding = trinity.CreatePythonBinding(cs, proj, 'projectedWidth', self, 'scaledWidth')
     25         self.heightBinding = trinity.CreatePythonBinding(cs, proj, 'projectedHeight', self, 'scaledHeight')
     26         Container.ApplyAttributes(self, attributes)
     27         self.trackObject = attributes.get('trackObject', None)
     28         self.screenMargin = attributes.get('screenMargin', self.default_screenMargin)
     29         pb = self.projectBracket
     30         if self.width:
     31             pb.minProjectedWidth = pb.maxProjectedWidth = self.width
     32         else:
     33             pb.minProjectedWidth = attributes.get('minWidth', self.default_minWidth)
     34             pb.maxProjectedWidth = attributes.get('maxWidth', self.default_maxWidth)
     35         if self.height:
     36             pb.minProjectedHeight = pb.maxProjectedHeight = self.height
     37         else:
     38             pb.minProjectedHeight = attributes.get('minHeight', self.default_minHeight)
     39             pb.maxProjectedHeight = attributes.get('maxHeight', self.default_maxHeight)
     40 
     41     def Close(self):
     42         Container.Close(self)
     43         cs = uicore.uilib.bracketCurveSet
     44         cs.curves.fremove(self.projectBracket)
     45         cs.bindings.fremove(self.leftBinding)
     46         cs.bindings.fremove(self.topBinding)
     47         cs.bindings.fremove(self.widthBinding)
     48         cs.bindings.fremove(self.heightBinding)
     49         self.leftBinding = None
     50         self.topBinding = None
     51         self.widthBinding = None
     52         self.heightBinding = None
     53         self.projectBracket = None
     54 
     55     @property
     56     def name(self):
     57         return Container.name.fget(self)
     58 
     59     @name.setter
     60     def name(self, name):
     61         Container.name.fset(self, name)
     62         self.projectBracket.name = unicode(name)
     63 
     64     @property
     65     def trackObject(self):
     66         return self.projectBracket.object
     67 
     68     @trackObject.setter
     69     def trackObject(self, value):
     70         self.projectBracket.object = value
     71 
     72     @property
     73     def screenMargin(self):
     74         return self.projectBracket.screenMargin
     75 
     76     @screenMargin.setter
     77     def screenMargin(self, value):
     78         self.projectBracket.screenMargin = value
     79 
     80     @property
     81     def scaledLeft(self):
     82         return scale_dpi(self.left)
     83 
     84     @scaledLeft.setter
     85     def scaledLeft(self, value):
     86         self.left = reverse_scale_dpi(value)
     87 
     88     @property
     89     def scaledTop(self):
     90         return scale_dpi(self.top)
     91 
     92     @scaledTop.setter
     93     def scaledTop(self, value):
     94         self.top = reverse_scale_dpi(value)
     95 
     96     @property
     97     def scaledWidth(self):
     98         return scale_dpi(self.width)
     99 
    100     @scaledWidth.setter
    101     def scaledWidth(self, value):
    102         self.width = reverse_scale_dpi(value)
    103 
    104     @property
    105     def scaledHeight(self):
    106         return scale_dpi(self.height)
    107 
    108     @scaledHeight.setter
    109     def scaledHeight(self, value):
    110         self.height = reverse_scale_dpi(value)