from typing import TYPE_CHECKING from source.gui.better_pyglet import Label from source.gui.widget.abc import BoxWidget import pyglet from source.type import Distance if TYPE_CHECKING: from source.gui.scene.abc import Scene class Text(BoxWidget): """ A widget that display a text """ def __init__(self, scene: "Scene", x: Distance = 0, y: Distance = 0, width: Distance = None, height: Distance = None, **kwargs): super().__init__(scene, x, y, width, height) self.label = Label( x=self.x, y=self.y, width=self.width, height=self.height, batch=self.scene.batch, **kwargs ) self._refresh_size() @property def text(self): return self.label.text @text.setter def text(self, text: str): self.label.text = text def _refresh_size(self): self.label.x, self.label.y = self.xy self.label.width, self.label.height = self.size def on_resize(self, width: int, height: int): self._refresh_size()