43 lines
954 B
Python
43 lines
954 B
Python
from typing import TYPE_CHECKING
|
|
|
|
import pyglet.image
|
|
|
|
from source.gui.sprite import Sprite
|
|
from source.gui.widget.abc import BoxWidget
|
|
from source.type import Percentage
|
|
|
|
|
|
if TYPE_CHECKING:
|
|
from source.gui.scene.abc import Scene
|
|
|
|
|
|
class Image(BoxWidget):
|
|
def __init__(self, scene: "Scene",
|
|
|
|
image: pyglet.image.AbstractImage,
|
|
|
|
x: Percentage = 0,
|
|
y: Percentage = 0,
|
|
width: Percentage = None,
|
|
height: Percentage = None,
|
|
*args, **kwargs):
|
|
super().__init__(scene, x, y, width, height)
|
|
|
|
self.image = Sprite(img=image, *args, **kwargs)
|
|
|
|
self._refresh_size()
|
|
|
|
# refresh
|
|
|
|
def _refresh_size(self):
|
|
self.image.width, self.image.height = self.width, self.height
|
|
|
|
# event
|
|
|
|
def on_resize(self, width: int, height: int):
|
|
self._refresh_size()
|
|
|
|
# draw
|
|
|
|
def draw(self):
|
|
self.image.draw()
|