Files
kniip/.cursor/plans/drie-split_werkbalk_18b439e9.plan.md
T
2026-11-10 15:33:49 +01:00

3.9 KiB

name, overview, todos, isProject
name overview todos isProject
Drie-split werkbalk 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.
id content status
settings-model EditorLayout.ThreeSplit en CaptureBarPosition toevoegen in AppSettings pending
id content status
editor-xaml CaptureBar/CaptureItems toevoegen in EditorWindow.xaml pending
id content status
editor-logic ApplyToolbarLayout, positie, lock, Ctrl+H, contextmenu en reset aanpassen in EditorWindow.xaml.cs pending
id content status
settings-ui Derde optie plus Links/Rechts in SettingsWindow (xaml + laden/opslaan/standaard) pending
id content status
verify Bouwen en alle indelingen handmatig testen pending
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

  • 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

  • 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

  • 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 en .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.