|
@@ -158,10 +158,10 @@ class OnscreenText(DirectObject, NodePath):
|
|
|
scale = (scale, scale)
|
|
scale = (scale, scale)
|
|
|
|
|
|
|
|
# Save some of the parameters for posterity.
|
|
# Save some of the parameters for posterity.
|
|
|
- self.scale = scale
|
|
|
|
|
- self.pos = pos
|
|
|
|
|
- self.roll = roll
|
|
|
|
|
- self.wordwrap = wordwrap
|
|
|
|
|
|
|
+ self.__scale = scale
|
|
|
|
|
+ self.__pos = pos
|
|
|
|
|
+ self.__roll = roll
|
|
|
|
|
+ self.__wordwrap = wordwrap
|
|
|
|
|
|
|
|
if decal:
|
|
if decal:
|
|
|
textNode.setCardDecal(1)
|
|
textNode.setCardDecal(1)
|
|
@@ -249,12 +249,16 @@ class OnscreenText(DirectObject, NodePath):
|
|
|
def getDecal(self):
|
|
def getDecal(self):
|
|
|
return self.textNode.getCardDecal()
|
|
return self.textNode.getCardDecal()
|
|
|
|
|
|
|
|
|
|
+ decal = property(getDecal, setDecal)
|
|
|
|
|
+
|
|
|
def setFont(self, font):
|
|
def setFont(self, font):
|
|
|
self.textNode.setFont(font)
|
|
self.textNode.setFont(font)
|
|
|
|
|
|
|
|
def getFont(self):
|
|
def getFont(self):
|
|
|
return self.textNode.getFont()
|
|
return self.textNode.getFont()
|
|
|
|
|
|
|
|
|
|
+ font = property(getFont, setFont)
|
|
|
|
|
+
|
|
|
def clearText(self):
|
|
def clearText(self):
|
|
|
self.textNode.clearText()
|
|
self.textNode.clearText()
|
|
|
|
|
|
|
@@ -279,31 +283,37 @@ class OnscreenText(DirectObject, NodePath):
|
|
|
else:
|
|
else:
|
|
|
return self.textNode.getText()
|
|
return self.textNode.getText()
|
|
|
|
|
|
|
|
|
|
+ text = property(getText, setText)
|
|
|
|
|
+
|
|
|
def setX(self, x):
|
|
def setX(self, x):
|
|
|
- self.setPos(x, self.pos[1])
|
|
|
|
|
|
|
+ self.setPos(x, self.__pos[1])
|
|
|
|
|
|
|
|
def setY(self, y):
|
|
def setY(self, y):
|
|
|
- self.setPos(self.pos[0], y)
|
|
|
|
|
|
|
+ self.setPos(self.__pos[0], y)
|
|
|
|
|
|
|
|
def setPos(self, x, y):
|
|
def setPos(self, x, y):
|
|
|
"""setPos(self, float, float)
|
|
"""setPos(self, float, float)
|
|
|
Position the onscreen text in 2d screen space
|
|
Position the onscreen text in 2d screen space
|
|
|
"""
|
|
"""
|
|
|
- self.pos = (x, y)
|
|
|
|
|
|
|
+ self.__pos = (x, y)
|
|
|
self.updateTransformMat()
|
|
self.updateTransformMat()
|
|
|
|
|
|
|
|
def getPos(self):
|
|
def getPos(self):
|
|
|
- return self.pos
|
|
|
|
|
|
|
+ return self.__pos
|
|
|
|
|
+
|
|
|
|
|
+ pos = property(getPos, setPos)
|
|
|
|
|
|
|
|
def setRoll(self, roll):
|
|
def setRoll(self, roll):
|
|
|
"""setRoll(self, float)
|
|
"""setRoll(self, float)
|
|
|
Rotate the onscreen text around the screen's normal
|
|
Rotate the onscreen text around the screen's normal
|
|
|
"""
|
|
"""
|
|
|
- self.roll = roll
|
|
|
|
|
|
|
+ self.__roll = roll
|
|
|
self.updateTransformMat()
|
|
self.updateTransformMat()
|
|
|
|
|
|
|
|
def getRoll(self):
|
|
def getRoll(self):
|
|
|
- return self.roll
|
|
|
|
|
|
|
+ return self.__roll
|
|
|
|
|
+
|
|
|
|
|
+ roll = property(getRoll, setRoll)
|
|
|
|
|
|
|
|
def setScale(self, sx, sy = None):
|
|
def setScale(self, sx, sy = None):
|
|
|
"""setScale(self, float, float)
|
|
"""setScale(self, float, float)
|
|
@@ -313,27 +323,29 @@ class OnscreenText(DirectObject, NodePath):
|
|
|
|
|
|
|
|
if sy == None:
|
|
if sy == None:
|
|
|
if isinstance(sx, types.TupleType):
|
|
if isinstance(sx, types.TupleType):
|
|
|
- self.scale = sx
|
|
|
|
|
|
|
+ self.__scale = sx
|
|
|
else:
|
|
else:
|
|
|
- self.scale = (sx, sx)
|
|
|
|
|
|
|
+ self.__scale = (sx, sx)
|
|
|
else:
|
|
else:
|
|
|
- self.scale = (sx, sy)
|
|
|
|
|
|
|
+ self.__scale = (sx, sy)
|
|
|
self.updateTransformMat()
|
|
self.updateTransformMat()
|
|
|
|
|
|
|
|
def updateTransformMat(self):
|
|
def updateTransformMat(self):
|
|
|
assert(isinstance(self.textNode, TextNode))
|
|
assert(isinstance(self.textNode, TextNode))
|
|
|
mat = (
|
|
mat = (
|
|
|
- Mat4.scaleMat(Vec3.rfu(self.scale[0], 1, self.scale[1])) *
|
|
|
|
|
- Mat4.rotateMat(self.roll, Vec3.back()) *
|
|
|
|
|
- Mat4.translateMat(Point3.rfu(self.pos[0], 0, self.pos[1]))
|
|
|
|
|
|
|
+ Mat4.scaleMat(Vec3.rfu(self.__scale[0], 1, self.__scale[1])) *
|
|
|
|
|
+ Mat4.rotateMat(self.__roll, Vec3.back()) *
|
|
|
|
|
+ Mat4.translateMat(Point3.rfu(self.__pos[0], 0, self.__pos[1]))
|
|
|
)
|
|
)
|
|
|
self.textNode.setTransform(mat)
|
|
self.textNode.setTransform(mat)
|
|
|
|
|
|
|
|
def getScale(self):
|
|
def getScale(self):
|
|
|
- return self.scale
|
|
|
|
|
|
|
+ return self.__scale
|
|
|
|
|
+
|
|
|
|
|
+ scale = property(getScale, setScale)
|
|
|
|
|
|
|
|
def setWordwrap(self, wordwrap):
|
|
def setWordwrap(self, wordwrap):
|
|
|
- self.wordwrap = wordwrap
|
|
|
|
|
|
|
+ self.__wordwrap = wordwrap
|
|
|
|
|
|
|
|
if wordwrap:
|
|
if wordwrap:
|
|
|
self.textNode.setWordwrap(wordwrap)
|
|
self.textNode.setWordwrap(wordwrap)
|
|
@@ -341,11 +353,24 @@ class OnscreenText(DirectObject, NodePath):
|
|
|
self.textNode.clearWordwrap()
|
|
self.textNode.clearWordwrap()
|
|
|
|
|
|
|
|
def getWordwrap(self):
|
|
def getWordwrap(self):
|
|
|
- return self.wordwrap
|
|
|
|
|
|
|
+ return self.__wordwrap
|
|
|
|
|
+
|
|
|
|
|
+ wordwrap = property(getWordwrap, setWordwrap)
|
|
|
|
|
+
|
|
|
|
|
+ def __getFg(self):
|
|
|
|
|
+ return self.textNode.getTextColor()
|
|
|
|
|
|
|
|
def setFg(self, fg):
|
|
def setFg(self, fg):
|
|
|
self.textNode.setTextColor(fg[0], fg[1], fg[2], fg[3])
|
|
self.textNode.setTextColor(fg[0], fg[1], fg[2], fg[3])
|
|
|
|
|
|
|
|
|
|
+ fg = property(__getFg, setFg)
|
|
|
|
|
+
|
|
|
|
|
+ def __getBg(self):
|
|
|
|
|
+ if self.textNode.hasCard():
|
|
|
|
|
+ return self.textNode.getCardColor()
|
|
|
|
|
+ else:
|
|
|
|
|
+ return LColor(0)
|
|
|
|
|
+
|
|
|
def setBg(self, bg):
|
|
def setBg(self, bg):
|
|
|
if bg[3] != 0:
|
|
if bg[3] != 0:
|
|
|
# If we have a background color, create a card.
|
|
# If we have a background color, create a card.
|
|
@@ -355,6 +380,11 @@ class OnscreenText(DirectObject, NodePath):
|
|
|
# Otherwise, remove the card.
|
|
# Otherwise, remove the card.
|
|
|
self.textNode.clearCard()
|
|
self.textNode.clearCard()
|
|
|
|
|
|
|
|
|
|
+ bg = property(__getBg, setBg)
|
|
|
|
|
+
|
|
|
|
|
+ def __getShadow(self):
|
|
|
|
|
+ return self.textNode.getShadowColor()
|
|
|
|
|
+
|
|
|
def setShadow(self, shadow):
|
|
def setShadow(self, shadow):
|
|
|
if shadow[3] != 0:
|
|
if shadow[3] != 0:
|
|
|
# If we have a shadow color, create a shadow.
|
|
# If we have a shadow color, create a shadow.
|
|
@@ -364,6 +394,11 @@ class OnscreenText(DirectObject, NodePath):
|
|
|
# Otherwise, remove the shadow.
|
|
# Otherwise, remove the shadow.
|
|
|
self.textNode.clearShadow()
|
|
self.textNode.clearShadow()
|
|
|
|
|
|
|
|
|
|
+ shadow = property(__getShadow, setShadow)
|
|
|
|
|
+
|
|
|
|
|
+ def __getFrame(self):
|
|
|
|
|
+ return self.textNode.getFrameColor()
|
|
|
|
|
+
|
|
|
def setFrame(self, frame):
|
|
def setFrame(self, frame):
|
|
|
if frame[3] != 0:
|
|
if frame[3] != 0:
|
|
|
# If we have a frame color, create a frame.
|
|
# If we have a frame color, create a frame.
|
|
@@ -373,6 +408,8 @@ class OnscreenText(DirectObject, NodePath):
|
|
|
# Otherwise, remove the frame.
|
|
# Otherwise, remove the frame.
|
|
|
self.textNode.clearFrame()
|
|
self.textNode.clearFrame()
|
|
|
|
|
|
|
|
|
|
+ frame = property(__getFrame, setFrame)
|
|
|
|
|
+
|
|
|
def configure(self, option=None, **kw):
|
|
def configure(self, option=None, **kw):
|
|
|
# These is for compatibility with DirectGui functions
|
|
# These is for compatibility with DirectGui functions
|
|
|
if not self.mayChange:
|
|
if not self.mayChange:
|
|
@@ -399,9 +436,14 @@ class OnscreenText(DirectObject, NodePath):
|
|
|
getter = getattr(self, 'get' + option[0].upper() + option[1:])
|
|
getter = getattr(self, 'get' + option[0].upper() + option[1:])
|
|
|
return getter()
|
|
return getter()
|
|
|
|
|
|
|
|
|
|
+ def __getAlign(self):
|
|
|
|
|
+ return self.textNode.getAlign()
|
|
|
|
|
+
|
|
|
def setAlign(self, align):
|
|
def setAlign(self, align):
|
|
|
self.textNode.setAlign(align)
|
|
self.textNode.setAlign(align)
|
|
|
|
|
|
|
|
|
|
+ align = property(__getAlign, setAlign)
|
|
|
|
|
+
|
|
|
# Allow index style refererences
|
|
# Allow index style refererences
|
|
|
__getitem__ = cget
|
|
__getitem__ = cget
|
|
|
|
|
|