Add right-click context menu to sticky notes
Details
Right-clicking a sticky note now shows a context menu with:
- Edit: opens the full editor overlay
- Color: submenu with 6 color swatches (yellow, blue, green, pink,
purple, orange) — selecting a color updates the note immediately
without opening the editor, with a colored dot indicator and a
border on the currently active color
- Delete: deletes the sticky note
Adds NoteColorChangeRequested event to StickyBoardControl and
ChangeStickyNoteColorAsync to NotesViewModel for direct color
changes. Also refactors the duplicate RGB color tuple out of
GetStickyColor into a shared GetStickyColorRgb helper.
Fixes: BUG #18
Center search bar on full toolbar width, not leftover space
Details
The search pill was placed in Grid Column 1 (*) between the title
(Auto) and actions (Auto). Since different plugins have different
title/action widths, the * column's center shifted per plugin.
Fix: span the search pill across all 3 columns (ColumnSpan=3) with
HorizontalAlignment.Center so it centers on the full toolbar width.
Title and actions render on top in their Auto columns. The search bar
now stays dead-center across all plugins.
Center search pill in PluginToolbar using proper column definitions
Details
The toolbar row used a Grid with no column definitions, causing all children
to overlap in a single cell. Title (Left), search (Center), and actions
(Right) relied on HorizontalAlignment alone, which centers the search pill
relative to the full grid width rather than the space between title and
actions. Switch to ColumnDefinitions="Auto,*,Auto" so the search pill
centers within the remaining space between title and actions.
Route all StatusMessage feedback to toast system, enlarge timer buttons
Details
Two changes:
1. Migrate all transient StatusMessage assignments to Toast() calls
routed through IToastService. Added _toast field to TasksViewModel,
wired via Host.Toast in TasksPlugin. Error messages use
ToastType.Error, validation warnings use ToastType.Warning, all
other feedback uses default ToastType.Info. The StatusMessage
property is retained only for the static task count display.
Removed the StatusMessage TextBlock from the split header since
feedback now appears as shell toasts.
2. Increased timer play/stop button size from ThemeFontSizeXs to
ThemeFontSizeMd/Sm with larger padding (6,5 vs 4,3). Button is
now visible in all density modes, not just Full.
Center toasts on plugin content area, unify dismiss button style
Details
Move ToastContainer from the root Panel (centered on entire window)
into the Grid.Column=1 content area Panel so toasts center on the
plugin view regardless of sidebar state.
Dismiss button: match the type icon's layout — 16x16 panel, centered
vertically, symmetric margin (10,0,12,0 mirroring 12,0,10,0), same
StrokeThickness=2. Both icon and dismiss are now vertically centered
instead of top-aligned.
Get notified about new releases