Skip to content

Hotfix/tool bar style#192

Merged
davidkallesen merged 3 commits into
mainfrom
hotfix/ToolBar-style
May 8, 2026
Merged

Hotfix/tool bar style#192
davidkallesen merged 3 commits into
mainfrom
hotfix/ToolBar-style

Conversation

@davidkallesen

Copy link
Copy Markdown
Contributor

No description provided.

…ggleButton style

CommonStates and CheckStates VisualStateGroups both animated Border.Background.Color, so MouseOver overwrote Checked's color and the empty Normal state never restored it on mouse-leave. This caused the Checked appearance to disappear on hover and made the initial-checked state unreliable on first render.

Replaces the colliding VSM animations with ControlTemplate.Triggers plus a MultiTrigger for the IsChecked + IsMouseOver combination. Triggers compose deterministically and fix both symptoms across every ToolBar ToggleButton/CheckBox/RadioButton in the library.
Documents the 11 shortcuts wired in TerminalViewer.xaml's UserControl.InputBindings (Ctrl+F/L/S/G/P, F3, Shift+F3, Esc, Ctrl++/=, Ctrl+-, Ctrl+0) so consumers can discover them without reading the XAML.
Inventory showed ~80% of keys in Atc.Wpf.Controls/Resources/Miscellaneous.resx were referenced by exactly one consumer assembly. They were feature-specific strings that just happened to live in the central pool. Reorganize the 99 keys + Word.resx (160 keys) so each string lives with the feature that owns it, and only truly cross-cutting strings stay central.

Phase 1 — Move Word.resx to Atc.Wpf foundation
* Word.{resx,da-DK.resx,de-DE.resx,Designer.cs} moved from Atc.Wpf.Controls/Resources to Atc.Wpf/Resources (namespace Atc.Wpf.Resources)
* All consumer ResxName= and Word.X references updated; global using added where needed
* Cleans up 'Atc.Wpf.Controls.Resources' from Forms global using (no longer needed there)

Phase 2 — Pull feature strings down to feature assemblies
* Atc.Wpf.UndoRedo/Resources/Miscellaneous.resx (new, 4 keys: UndoAll, RedoAll, ClearHistory, MarkSaved)
* Atc.Wpf.Forms/Resources/Miscellaneous.resx (new, 7 keys: Font*, TimeZone)
* Atc.Wpf.Components/Resources/TerminalViewer.resx (new, 22 keys: TerminalViewer + Zoom + Export*)
* Atc.Wpf.Components/Resources/JsonViewer.resx (new, 10 keys: JsonType*, errors)
* Atc.Wpf.Components/Resources/DualListSelector.resx (new, 12 keys: Move*, Filter, ItemCount*)
* Atc.Wpf.Components/Resources/Miscellaneous.resx (new, 12 keys: AppMonitor + Print + Flyout + shared)
* FieldIsRequired removed from Atc.Wpf.Controls Misc (already in Atc.Wpf.Forms/Validations.resx)

Phase 3 — Slim shared keys up to Atc.Wpf
* Atc.Wpf/Resources/Miscellaneous.resx (new, 16 truly shared keys: ApplicationSettings, PleaseWait, SelectFile, CopyAllToClipboard, etc.)
* Atc.Wpf.Controls/Resources/Miscellaneous.resx slimmed to 11 Controls-specific keys (Color picker + Pixel/Thickness)

C# disambiguation pattern (matches existing ThemingMiscellaneous convention)
* File-level using aliases (SharedMisc, ControlsMiscellaneous, FormsMiscellaneous, ComponentsMisc, TerminalViewerStrings, JsonViewerStrings, DualListSelectorStrings) where multiple Miscellaneous classes are in scope
* XAML always uses fully-qualified ResxName; xmlns:resources mappings adjusted per file

Incidental fixes
* da-DK Cancel: 'Fortryd' -> 'Annuller' (Word.resx; 'Fortryd' is the Undo translation)
* de-DE Locked: 'Verschlossen' -> 'Gesperrt' (better for UI control state)
* de-DE Redo: 'Redo' -> 'Wiederherstellen' (was untranslated English)
* da-DK Minute: 'Minute' -> 'Minut' (was English typo)
* Atc.Wpf.Network/Resources: added StartIpExample, EndIpExample, PortsExample (replaces hardcoded watermarks in NetworkScannerSettingsView)

Build: full Release (warnings-as-errors), 0/0. Tests: 1908 passing.
@davidkallesen davidkallesen merged commit 7e9982a into main May 8, 2026
2 checks passed
@davidkallesen davidkallesen deleted the hotfix/ToolBar-style branch May 8, 2026 11:10
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant