# -*- coding: utf-8 -*-
# gui/containers/h_container.py
"""Горизонтальный контейнер — тонкая обёртка над SContainer(orientation='h').

Удобство: ``HContainer(height_percent=10)`` вместо
``SContainer(height_percent=10, orientation='h')``.

Ширина всегда Expanding (width_percent=None).
"""

from PySide6.QtWidgets import QWidget
from .s_container import SContainer


class HContainer(SContainer):
    """Горизонтальный контейнер с высотой в процентах от родителя."""

    def __init__(
        self,
        height_percent: int | float | None = None,
        margin: int | tuple[int, int, int, int] = 0,
        spacing: int = 0,
        content_width_percent: int | None = None,
        content_height_percent: int | None = None,
        content_width: int | None = None,
        content_height: int | None = None,
        content_fit: bool = True,
        content_driven: bool = False,
        parent: QWidget | None = None,
        style: str | None = None,
        active_style: str | None = None,
        is_active: bool | None = None,
    ):
        super().__init__(
            width_percent=None,
            height_percent=height_percent,
            margin=margin,
            spacing=spacing,
            orientation="h",
            content_width_percent=content_width_percent,
            content_height_percent=content_height_percent,
            content_width=content_width,
            content_height=content_height,
            content_fit=content_fit,
            content_driven=content_driven,
            parent=parent,
            style=style,
            active_style=active_style,
            is_active=is_active,
        )




# ---------------------------------------------------------------------------
# Module workflow notes
# ---------------------------------------------------------------------------
#
# 1) Назначение модуля:
#    Горизонтальный контейнер — тонкая обёртка над SContainer с фиксированной
#    ориентацией "h". Удобный синтаксический сахар: HContainer(height_percent=10)
#    вместо SContainer(height_percent=10, orientation='h'). Ширина всегда
#    Expanding (width_percent=None по умолчанию).
#
# 2) Зависимости модуля:
#    Импорты: QWidget (PySide6)
#    Хост/базовый класс: SContainer (s_container.py)
#    Внешние библиотеки: PySide6
#
# 3) Экспорт:
#    Класс HContainer — горизонтальный контейнер с высотой в процентах.
#
# 4) Состояние (поля):
#    Собственных полей нет — всё наследуется от SContainer.
#    Параметр alignment в __init__ принимается, но игнорируется
#    (deprecated, для обратной совместимости).
#
# 5) Последовательность действий и вызовов:
#    __init__(params) -> super().__init__(width_percent=None, orientation="h", ...)
#    Все методы делегируются SContainer: add_widget(), add_stretch(),
#    set_margins(), set_spacing(), get_layout() и т.д.
#
# 6) Побочные эффекты:
#    Те же, что и у SContainer: стилизация через _apply_style(),
#    флаг _auto_add_children=True, subscribe на theme_bus.
#
# 7) Границы ответственности:
#    НЕ добавляет собственной логики — только фиксирует orientation="h"
#    и width_percent=None. Вся логика — в SContainer.
#
# 8) Обработка ошибок:
#    Делегируется SContainer.
#
# 9) Инварианты и контракты:
#    - width_percent всегда None → горизонтальная ось Expanding.
#    - orientation всегда "h".
#
# 10) Правило сопровождения:
#     Не добавлять сюда логику. Если нужна новая функциональность —
#     добавлять в SContainer, чтобы HContainer и VContainer наследовали
#     её автоматически.
