# -*- coding: utf-8 -*-
# gui/theme_bus.py

from PySide6.QtCore import QObject, Signal

class ThemeBus(QObject):
    theme_changed = Signal(str)  # "dark" | "light"

theme_bus = ThemeBus()
    
    
# для использования снаружи:
# theme_bus.theme_changed.emit("light")
# theme_bus.theme_changed.emit("dark")


# Подключение снаружи:
# from gui.theme.theme_bus import ThemeBus
# from gui.theme.theme_bus import theme_bus

# theme_bus = ThemeBus()

# btn = Button("Склад", index=0, theme_source=theme_bus)

# theme_bus.theme_changed.emit("light")
# theme_bus.theme_changed.emit("dark")




# ---------------------------------------------------------------------------
# Module workflow notes (compact)
# ---------------------------------------------------------------------------
#
# 1) Назначение модуля:
#    Глобальная шина событий для переключения темы (dark/light).
#    Содержит QObject-синглтон theme_bus с сигналом theme_changed(str).
#    Все StylableMixin-виджеты подписаны на этот сигнал.
#
# 2) Зависимости модуля:
#    Импорты: QObject, Signal (PySide6.QtCore)
#    Хост/базовый класс: QObject
#    Внешние библиотеки: PySide6
#
# 3) Экспорт:
#    Класс ThemeBus — QObject с сигналом theme_changed: Signal(str).
#    Экземпляр theme_bus — глобальный синглтон.
#    Использование: theme_bus.theme_changed.emit("light"|"dark").
