# ------------------------------- # Difficult Rocket # Copyright © 2020-2023 by shenjackyuanjie 3695888@qq.com # All rights reserved # ------------------------------- from typing import Optional, Tuple, TYPE_CHECKING from pyglet.graphics import Batch, Group class BaseTheme(dict): """ Base class of themes """ theme_name = 'BaseTheme' def __init__(self, **kwargs): super().__init__(**kwargs) for k, v in kwargs.items(): if hasattr(self, k): setattr(self, k, v) if TYPE_CHECKING: def init(self, batch: Batch, group: Group, **kwargs) -> None: """ Init theme :param batch: batch :param group: group :param kwargs: options :return: None """ class FontTheme(BaseTheme): """ Base class of font themes """ theme_name = 'FontTheme' font_name: Optional[str] = 'Times New Roman' font_size: Optional[int] = 12 bold: Optional[bool] = False italic: Optional[bool] = False stretch: Optional[bool] = False color: Optional[Tuple[int, int, int, int]] = (255, 255, 255, 255) align: Optional[str] = 'center'