L3-Bataille-Navale/source/gui/widget/abc/Widget.py

26 lines
544 B
Python

from abc import ABC, abstractmethod
from typing import TYPE_CHECKING
from source.event import Listener
if TYPE_CHECKING:
from source.gui.scene.abc import Scene
class Widget(Listener, ABC):
"""
A Widget that can be attached to a scene.
It can react to any "on_" event from the scene.
"""
def __init__(self, scene: "Scene", **kwargs):
super().__init__()
self.scene = scene
@abstractmethod
def draw(self):
"""
The draw function. Can be called to draw the widget.
"""