Metadata-Version: 2.4
Name: ssui
Version: 1.16.0
Classifier: Development Status :: 4 - Beta
Classifier: Environment :: Win32 (MS Windows)
Classifier: Intended Audience :: Developers
Classifier: Natural Language :: Russian
Classifier: Typing :: Typed
Classifier: Programming Language :: Python :: 3
Classifier: Programming Language :: Python :: 3.11
Classifier: Programming Language :: Python :: 3.12
Classifier: Programming Language :: Python :: 3.13
Classifier: Programming Language :: Rust
Classifier: License :: OSI Approved :: MIT License
Classifier: Operating System :: Microsoft :: Windows
Classifier: Operating System :: Microsoft :: Windows :: Windows 10
Classifier: Operating System :: Microsoft :: Windows :: Windows 11
Classifier: Operating System :: POSIX :: Linux
Classifier: Topic :: Software Development :: User Interfaces
Classifier: Topic :: Software Development :: Libraries :: Python Modules
License-File: LICENSE
License-File: AUTHORS
Summary:  GUI-библиотека для Windows: ядро на Rust (Direct3D 11 / Direct2D), API на Python
Keywords: gui,windows,direct2d,direct3d,rust,tkinter,desktop,ui
Author: Sergievskiy Sergey
Requires-Python: >=3.11
Description-Content-Type: text/markdown; charset=UTF-8; variant=GFM
Project-URL: Documentation, https://github.com/golden777ace/SSUI/blob/main/DESC.md
Project-URL: Homepage, https://github.com/golden777ace/SSUI

# SSUI

GUI-библиотека на Rust с публичным API на Python. Аппаратное
ускорение через Direct3D 11 / Direct2D / DirectWrite на Windows,
реактивные сигналы, более 60 виджетов, четыре темы и CSS-подмножество.
Порт на Linux (Skia через OpenGL) в работе — см. `docs/LINUX.md`.

## Возможности

- Retained-mode дерево виджетов, раскладка `grow`/`align`/`pin`
- Авто-высота контейнеров по детям, скрытие узла из раскладки
- Пределы размеров с подъёмом вверх по дереву: минимум колонок
  таблицы сам не даёт разделителю её перекрыть
- Реактивность на сигналах: `bind`, `bindv`, `bindl`, `bindt`
- Двусторонний `sig` у виджетов ввода и программная установка
  состояния: форму можно заполнить данными из внешнего источника
- Отключение узлов, поля-пароли и уведомления в любом углу окна
- Контекстные меню, привязанные к узлу, через `rmb` и `popup`
- Колонки `tbl` и `tre` тянутся мышью, шапка любой высоты с переносом
- Раскрытие групп `tre` переживает пересборку данных, как в Tkinter
- `push` — сообщение поверх всех окон в любой точке экрана
- Канва с событиями мыши, прокруткой и панорамированием
- Дерево с колонками, множественным выбором и цветом ячеек
- Горячие клавиши, буфер обмена, нативные файловые диалоги
- Работа из фоновых потоков через `win.post()`
- Живая смена палитры и достройка дерева после показа окна
- Обводка любого узла: `win.brdln(node, "#RRGGBB", w=2.0)` или
  правило CSS `border`; работает и на канве
- Иконочные кнопки-переключатели: `tgl(icon=..., tip=...)`
- Подсказки типов: `.pyi` и маркер `py.typed`

## Требования

- Windows 10/11 — полная поддержка
- Linux — в разработке, собирается с фичей `linux-skia`
- Python 3.11+

## Установка

```bash
pip install ssui
```

## Пример

```python
import ssui

def main():
    win = ssui.W("Привет, SSUI", 640, 480, thm="drk")

    with win.bx(pd=20.0, gp=12.0):
        win.lb("Привет, мир")
        win.bt("Кнопка", clk=lambda: print("клик"))

    win.go()

if __name__ == "__main__":
    main()
```

## Документация

Полный список виджетов, параметров и статус разработки —
[DESC.md](https://github.com/golden777ace/SSUI/blob/main/DESC.md).
Примеры — в каталоге `python/examples`.

## Лицензия

MIT © 2026 Sergievskiy Sergey. Полный текст —
[LICENSE](https://github.com/golden777ace/SSUI/blob/main/LICENSE).
