Исходный код 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