Commit 145cac7
2
files
+10
added
-5
deleted
@@ -326,7 +326,8 @@ XDG_CONFIG_HOME="$PWD/examples" cargo run -p luna-demo --bin render -- --lang fr
326
326
(segmentowy), `NavList` (menu nawigacji z sekcjami), `Menu` (popover `☰`), `Button`
327
327
(z wariantami i chevronem), `Switch`, `Slider`, `DropDown` (z rozwinięciem przez `Menu`),
328
328
`HeaderBar` (pasek tytułu: tytuł, kontrolki okna, obszar na treść), `TabBar`/`TabView`
329
- (pasek zakładek i model stron: wybór, dodawanie, zamykanie), `BottomSheet` (dolny panel
329
+ (pasek zakładek i model stron: wybór, dodawanie, zamykanie; przy przepełnieniu przewijany
330
+ z przyciskami na krawędziach), `BottomSheet` (dolny panel
330
331
modalny z „grabberem”, przeciąganiem i zamykaniem), `Pager` (karuzela stron z kropkami),
331
332
`PathBar` (okruszki z separatorem `›`, wskaźnikiem `▾` i zwijaniem do `…`), `Entry`
332
333
(pole tekstowe: kursor, edycja, opcjonalna ikona wiodąca i czyszczenie) — z `SearchEntry`
@@ -357,13 +358,14 @@ XDG_CONFIG_HOME="$PWD/examples" cargo run -p luna-demo --bin render -- --lang fr
357
358
358
359
## Układ (measure/allocate)
359
360
360
-Prostokąty można nadal liczyć ręcznie (jak karta „Pliki” w demo), ale `libluna-widgets::layout`
361
+Prostokąty można liczyć ręcznie, ale `libluna-widgets::layout`
361
362
daje **retencyjne drzewo**: aplikacja składa [`Node`], silnik robi **pomiar** (`measure`, względem
362
363
`Constraints` min/max) i **rozmieszczenie** (`allocate`) — dwuprzebiegowo, jak w klasycznych
363
364
toolkitach. Kontenery: `VBox`/`HBox` (odstęp `gap`), `Padding`, `Expanded`/`Spacer` (pochłaniają
364
365
nadmiar wzdłuż osi), `Center` (naturalny rozmiar wyśrodkowany). Liściami są `Fixed`, `Label`
365
366
(mierzy się czcionką) i `Spacer`; `Node::visit` pozwala obejść drzewo z prostokątami, a
366
-`Layout::fit` zwraca prostokąty liści w kolejności DFS.
367
+`Layout::fit` zwraca prostokąty liści w kolejności DFS. **Demo Ustawień** używa już tego silnika
368
+(karty i ich wiersze w `ui::layout`).
367
369
368
370
Minimalny przykład (`apps/luna-demo/src/bin/layout.rs`) buduje kartę ustawień **wyłącznie**
369
371
z drzewa i renderuje ją headless:
@@ -61,8 +61,11 @@ a na końcu odtworzył realne aplikacje środowiska Luna z makiet.
61
61
stosowany na żywo i zapisywany w `theme.conf`; `LUNA_THEMES_DIR` dla dev/testów.
62
62
- Podgląd motywów (headless): `bin/styles` renderuje realny interfejs w kilku stylach i składa
63
63
montaż (`docs/images/styles.png`) — odpowiednik „okna podglądu”.
64
-- Dalej: **okno podglądu na żywo w aplikacji**, scroll/overflow w `TabBar`,
65
- migracja `luna-demo` na drzewo układu.
64
+- `TabBar`: przewijanie przy przepełnieniu (scroll + przyciski chevron na krawędziach, wybór
65
+ zawsze widoczny).
66
+- `luna-demo` używa drzewa układu: karty i ich wiersze liczy `measure`/`allocate`.
67
+- Dalej: **okno podglądu na żywo w aplikacji**, stany (disabled/focus/pierścień fokusu),
68
+ `Separator`/`Spacer` jako widżety, kolejne kamienie (M1 render, M3 listy).
66
69
67
70
## M2 — Układ + widgety bazowe
68
71
- Dwuprzebiegowy silnik measure/allocate — ✅ **częściowo** (silnik + kontenery `VBox`/`HBox`,