Difficult-Rocket/Difficult_Rocket/gui/widget/theme/__init__.py
2023-09-30 12:30:32 +08:00

51 lines
1.2 KiB
Python

# -------------------------------
# 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'