Files
arcaea-offline-pyside-ui/ui/theme/shared.py

63 lines
2.1 KiB
Python

from dataclasses import dataclass, field
from typing import Literal
from PySide6.QtGui import QColor, QPalette
@dataclass(kw_only=True)
class CustomPalette:
primary: QColor = field(default_factory=lambda: QColor.fromRgb(0x616161))
secondary: QColor = field(default_factory=lambda: QColor.fromRgb(0x616161))
tertiary: QColor = field(default_factory=lambda: QColor.fromRgb(0x616161))
success: QColor = field(default_factory=lambda: QColor.fromRgb(0x616161))
error: QColor = field(default_factory=lambda: QColor.fromRgb(0x616161))
toolTipBase: QColor = field(default_factory=lambda: QColor.fromRgb(0x616161))
toolTipText: QColor = field(default_factory=lambda: QColor.fromRgb(0x616161))
past: QColor = field(default_factory=lambda: QColor.fromRgb(0x5CBAD3))
present: QColor = field(default_factory=lambda: QColor.fromRgb(0x829438))
future: QColor = field(default_factory=lambda: QColor.fromRgb(0x913A79))
beyond: QColor = field(default_factory=lambda: QColor.fromRgb(0xBF0D25))
eternal: QColor = field(default_factory=lambda: QColor.fromRgb(0x8B77A4))
pure: QColor = field(default_factory=lambda: QColor.fromRgb(0xF22EC6))
far: QColor = field(default_factory=lambda: QColor.fromRgb(0xFF9028))
lost: QColor = field(default_factory=lambda: QColor.fromRgb(0xFF0C43))
_TScheme = Literal["light", "dark"]
TThemeInfoCacheKey = tuple[str, str, _TScheme]
@dataclass
class ThemeInfo:
series: str
id: str
name: str
scheme: _TScheme
def cacheKey(self) -> TThemeInfoCacheKey:
return (self.series, self.id, self.scheme)
class ThemeImpl:
DEFAULT_CUSTOM_PALETTE: CustomPalette = CustomPalette()
@property
def info(self) -> ThemeInfo:
return ThemeInfo(
series="placeholder",
id="placeholder",
name="placeholder",
scheme="dark",
)
@property
def qPalette(self) -> QPalette:
return QPalette()
@property
def customPalette(self) -> CustomPalette:
return self.DEFAULT_CUSTOM_PALETTE # pyright: ignore[reportReturnType]