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)