52 lines
3.9 KiB
Markdown
52 lines
3.9 KiB
Markdown
---
|
|
name: Drie-split werkbalk
|
|
overview: "Een derde editorindeling toevoegen: gereedschappen boven, opslaan/kopiëren/zoom onder, en Nieuw + Screencast in een verticale zijbalk links of rechts van het canvas. De zijde is te kiezen in Instellingen > Weergave en via rechtsklik op de werkbalk."
|
|
todos:
|
|
- id: settings-model
|
|
content: EditorLayout.ThreeSplit en CaptureBarPosition toevoegen in AppSettings
|
|
status: pending
|
|
- id: editor-xaml
|
|
content: CaptureBar/CaptureItems toevoegen in EditorWindow.xaml
|
|
status: pending
|
|
- id: editor-logic
|
|
content: ApplyToolbarLayout, positie, lock, Ctrl+H, contextmenu en reset aanpassen in EditorWindow.xaml.cs
|
|
status: pending
|
|
- id: settings-ui
|
|
content: Derde optie plus Links/Rechts in SettingsWindow (xaml + laden/opslaan/standaard)
|
|
status: pending
|
|
- id: verify
|
|
content: Bouwen en alle indelingen handmatig testen
|
|
status: pending
|
|
isProject: false
|
|
---
|
|
|
|
# Drie-split werkbalk met zijbalk links of rechts
|
|
|
|
## Gedrag
|
|
- Nieuwe indeling "Drie-split": bovenbalk (gereedschappen), onderbalk (Opslaan, Uploaden, Kopiëren, zoom) en een smalle verticale zijbalk naast het canvas met **Nieuw** en **Screencast**.
|
|
- De zijbalk staat links of rechts (standaard links). In de zijbalk staan alleen iconen; de bestaande logica in `UpdateActionLabels` verbergt labels al bij `Orientation.Vertical`.
|
|
- De zijbalk staat in de `DockPanel` na `Toolbar`/`PropsBar`, zodat hij alleen naast het canvas loopt (zoals op positie 2 en 3 in je screenshot) en niet naast de boven- of onderbalk.
|
|
|
|
## Wijzigingen
|
|
|
|
**[src/Kniip/Settings/AppSettings.cs](src/Kniip/Settings/AppSettings.cs)**
|
|
- `EditorLayout` uitbreiden met `ThreeSplit` (achteraan, zodat bestaande instellingen geldig blijven).
|
|
- Nieuwe instelling `public Dock CaptureBarPosition { get; set; } = Dock.Left;` (alleen `Left`/`Right` gebruikt).
|
|
|
|
**[src/Kniip/Editor/EditorWindow.xaml](src/Kniip/Editor/EditorWindow.xaml)**
|
|
- Nieuwe `Border x:Name="CaptureBar"` (standaard `Collapsed`) met `local:ToolbarPanel x:Name="CaptureItems"` (verticaal), met dezelfde `ContextMenuOpening`/`OrderChanged`-handlers als `ActionBar`. Plaats hem na `PropsBar` en vóór het canvas.
|
|
|
|
**[src/Kniip/Editor/EditorWindow.xaml.cs](src/Kniip/Editor/EditorWindow.xaml.cs)**
|
|
- `IsSplitLayout` true maken voor zowel `Split` als `ThreeSplit` (beide gebruiken `SplitToolbarOrder` en `SplitBottomIds`), plus `IsThreeSplit`.
|
|
- `SideIds = { "New", "Screencast" }`; in `ApplyToolbarLayout` gaan die items bij `ThreeSplit` naar `CaptureItems` in plaats van `ActionItems`. `CaptureItems.Children` ook leegmaken.
|
|
- `CaptureBar.Visibility` instellen op dezelfde manier als `ActionBar` (ook in `ToggleToolbars`, Ctrl+H). `DockPanel.SetDock(CaptureBar, _settings.CaptureBarPosition)` en de rand aan de canvaszijde (`0,0,1,0` links, `1,0,0,0` rechts).
|
|
- `AllToolbarItems` uitbreiden met `CaptureItems.Items`; `ApplyToolbarLock` ook voor `CaptureItems`/`CaptureBar`.
|
|
- Contextmenu: in "Indeling" een derde optie "Drie-split: zijbalk met Nieuw en Screencast". Bij `ThreeSplit` een submenu "Zijbalk" met Links/Rechts (zelfde patroon als het bestaande "Positie"-menu). `Toolbar_ContextMenuOpening` het juiste paneel laten kiezen voor `CaptureBar`.
|
|
- `ResetToolbar`: `CaptureBarPosition = Dock.Left`.
|
|
|
|
**[src/Kniip/Settings/SettingsWindow.xaml](src/Kniip/Settings/SettingsWindow.xaml)** en **[.xaml.cs](src/Kniip/Settings/SettingsWindow.xaml.cs)**
|
|
- Derde radiobutton `LayoutThreeSplitRadio` "Drie-split: gereedschappen boven, opslaan onder, Nieuw en Screencast opzij", met daaronder (ingesprongen, alleen actief bij deze keuze) twee radiobuttons "Links" en "Rechts".
|
|
- Laden (r. 104-105) en opslaan (r. 454) aanpassen voor drie waarden plus `CaptureBarPosition`; standaardinstellingen (r. ~481) ook terugzetten.
|
|
|
|
## Controle
|
|
- Bouwen, editor openen, tussen alle drie de indelingen wisselen via Instellingen en rechtsklik. Controleren dat Links/Rechts direct werkt, Ctrl+H alle balken verbergt en terughaalt, en dat versleepte volgorde en verborgen knoppen bewaard blijven. |