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

Удобство: ``VContainer(width_percent=30)`` вместо
``SContainer(width_percent=30, orientation='v')``.

Высота всегда Expanding (height_percent=None).
"""

from PySide6.QtWidgets import QWidget
from .s_container import SContainer


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

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