Исходный код EJIO.ctk_extender.config.settings
## /ctk_extender/config/settings.py
from typing import Literal
from EJIO.utils import MutableStaticMeta
__all__ = [
'AppSettings',
'set_appearance_mode',
'set_color_theme',
]
AppearanceMode = Literal['System', 'Dark', 'Light']
ColorTheme = Literal['blue', 'green', 'dark-blue']
[документация]
class AppSettings(metaclass=MutableStaticMeta):
"""
Глобальная структура рантайм-настроек приложения.
Значения изменяются через функции-экраны модуля.
"""
__slots__ = ()
appearance_mode: AppearanceMode = 'System'
color_theme: ColorTheme = 'blue'
[документация]
@staticmethod
def is_dark_mode() -> bool:
"""
Проверяет является ли текущая тема темной.
:return: True если являетсяЮ иначе False.
"""
return AppSettings.appearance_mode == 'Dark'
[документация]
@classmethod
def clear(cls) -> None:
"""
Сбрасывает значения настроек к стандартным.
"""
cls.appearance_mode = "System"
cls.color_theme = "blue"
[документация]
def set_appearance_mode(mode: AppearanceMode, /) -> None:
"""
Устанавливает глобальный режим отображения темы интерфейса.
Допустимые значения:
- 'System': Автоматическая синхронизация с темой операционной системы.
- 'Dark': Принудительный темный режим оформления.
- 'Light': Принудительный светлый режим оформления.
:param mode: Режим темы ('System', 'Dark', 'Light').
"""
AppSettings.appearance_mode = mode
[документация]
def set_color_theme(theme: ColorTheme, /) -> None:
"""
Устанавливает базовую цветовую палитру (карту цветов) для виджетов CustomTkinter.
Допустимые значения:
- 'blue': Классическая синяя цветовая схема.
- 'green': Экологичная зеленая цветовая схема.
- 'dark-blue': Современная темно-синяя палитра.
:param theme: Имя темы ('blue', 'green', 'dark-blue').
"""
AppSettings.color_theme = theme