78 lines
2.1 KiB
Python
78 lines
2.1 KiB
Python
|
|
from panda3d.lui import LUIText
|
|
from LUIObject import LUIObject
|
|
from LUIInitialState import LUIInitialState
|
|
|
|
__all__ = ["LUILabel"]
|
|
|
|
class LUILabel(LUIObject):
|
|
|
|
""" A simple label, displaying text. """
|
|
|
|
# Default variables which can be overridden by skins
|
|
DEFAULT_COLOR = (0.9, 0.9, 0.9, 1)
|
|
DEFAULT_USE_SHADOW = True
|
|
|
|
def __init__(self, text="Label", shadow=None, font_size=14, font="label", color=None, wordwrap=False, **kwargs):
|
|
""" Creates a new label. If shadow is True, a small text shadow will be
|
|
rendered below the actual text. """
|
|
LUIObject.__init__(self)
|
|
LUIInitialState.init(self, kwargs)
|
|
self._text = LUIText(
|
|
self,
|
|
text,
|
|
font,
|
|
font_size,
|
|
0,
|
|
0,
|
|
wordwrap
|
|
)
|
|
self._text.z_offset = 1
|
|
if color is None:
|
|
self.color = LUILabel.DEFAULT_COLOR
|
|
else:
|
|
self.color = color
|
|
if shadow is None:
|
|
shadow = LUILabel.DEFAULT_USE_SHADOW
|
|
self._have_shadow = shadow
|
|
if self._have_shadow:
|
|
self._shadow_text = LUIText(
|
|
self,
|
|
text,
|
|
font,
|
|
font_size,
|
|
0,
|
|
0,
|
|
wordwrap
|
|
)
|
|
self._shadow_text.top = 1
|
|
self._shadow_text.color = (0,0,0,0.6)
|
|
|
|
def get_text_handle(self):
|
|
""" Returns a handle to the internal used LUIText object """
|
|
return self._text
|
|
|
|
text_handle = property(get_text_handle)
|
|
|
|
def get_text(self):
|
|
""" Returns the current text of the label """
|
|
return self._text.text
|
|
|
|
def set_text(self, text):
|
|
""" Sets the text of the label """
|
|
self._text.text = text
|
|
if self._have_shadow:
|
|
self._shadow_text.text = text
|
|
|
|
text = property(get_text, set_text)
|
|
|
|
def get_color(self):
|
|
""" Returns the current color of the label's text """
|
|
return self._text.color
|
|
|
|
def set_color(self, color):
|
|
""" Sets the color of the label's text """
|
|
self._text.color = color
|
|
|
|
color = property(get_color, set_color)
|