mirror of
https://github.com/283375/arcaea-offline-pyside-ui.git
synced 2025-11-09 05:52:13 +00:00
44 lines
971 B
Python
44 lines
971 B
Python
from dataclasses import dataclass
|
|
from typing import Literal, TypedDict
|
|
|
|
from PySide6.QtGui import QColor, QPalette
|
|
|
|
|
|
class _TCustomPalette(TypedDict):
|
|
primary: QColor
|
|
success: QColor
|
|
error: QColor
|
|
|
|
|
|
_TScheme = Literal["light", "dark"]
|
|
|
|
|
|
@dataclass
|
|
class ThemeInfo:
|
|
series: str
|
|
name: str
|
|
scheme: _TScheme
|
|
|
|
def __hash__(self) -> int:
|
|
return hash((self.series, self.name, self.scheme))
|
|
|
|
|
|
class ThemeImpl:
|
|
DEFAULT_CUSTOM_PALETTE = {
|
|
"primary": QColor.fromString("#616161"),
|
|
"success": QColor.fromString("#616161"),
|
|
"error": QColor.fromString("#616161"),
|
|
}
|
|
|
|
@property
|
|
def info(self) -> ThemeInfo:
|
|
return ThemeInfo(series="placeholder", name="placeholder", scheme="dark")
|
|
|
|
@property
|
|
def qPalette(self) -> QPalette:
|
|
return QPalette()
|
|
|
|
@property
|
|
def customPalette(self) -> _TCustomPalette:
|
|
return self.DEFAULT_CUSTOM_PALETTE # pyright: ignore[reportReturnType]
|