BeepDock Architecture
The macOS-style application dock — 22 theme-aware painters, easing animations, hit testing, keyboard navigation, and drag-drop reordering
Table of Contents
Overview
BeepDock provides a macOS-style application dock for WinForms. It supports 22 visual styles through a painter system, each with unique rendering for icons, backgrounds, indicators, badges, and tooltips.
Organized across 12 partial files: Properties, Events, Methods, Drawing, Animation, Mouse, DragDrop, Keyboard, Items, Notifications, InteractionState.
22 Dock Painters
| Painter | Style | Key Visual |
|---|---|---|
| ClassicTaskbarDockPainter | Windows Classic | Flat toolbar with labels |
| Windows11DockPainter | Windows 11 | Centered icons, rounded corners, acrylic |
| AppleDockPainter | macOS | Glass shelf, magnification, reflection |
| iOSDockPainter | iOS | Frosted glass, rounded icon containers |
| Material3DockPainter | Material Design 3 | Pill-shaped container, dynamic color |
| GNOMEDockPainter | GNOME | Dark strip, subtle indicators |
| PlankDockPainter | Plank | Flat bar, simple active dots |
| NeumorphicDockPainter | Neumorphic | Soft shadows, embossed effect |
| GlassmorphismDockPainter | Glassmorphism | Blurred glass, border glow |
| CyberpunkDockPainter | Cyberpunk | Neon borders, glitch effects |
| DraculaDockPainter | Dracula | Purple/cyan dark theme |
| NordDockPainter | Nord | Arctic blue-gray palette |
| NeonDockPainter | Neon | Bright glowing indicators |
| MinimalDockPainter | Minimal | Clean, no chrome |
| FloatingDockPainter | Floating | Detached pill, drop shadow |
| BubbleDockPainter | Bubble | Round bubble containers |
| ArcDockPainter | Arc | Curved arc shelf |
| PlasmaPanelPainter | Plasma | KDE-style panel |
| TerminalDockPainter | Terminal | Hacker terminal aesthetic |
All painters implement IDockPainter and extend DockPainterBase. The DockPainterFactory resolves DockStyle to the appropriate painter.
Key Features
- 22 visual styles — From macOS to Cyberpunk
- Icon magnification — Apple-dock-style hover magnification with configurable max scale
- Easing animations — Configurable easing curves via DockEasingHelper
- Drag-drop reordering — Items can be reordered by dragging
- Badge support — Notification badges on dock items
- Tooltips — Hover tooltips with configurable styles
- Keyboard navigation — Arrow keys, Enter to activate
- 4 positions — Bottom, Top, Left, Right with auto-orientation
Interaction System
- DockHitTestHelper — Resolves which item is under the cursor
- DockAnimationHelper — Manages hover scale animation with easing
- DockLayoutHelper — Calculates item positions with magnification spread
- DockThemeHelpers — Resolves theme tokens for the active painter
- DockIconHelpers — Icon resolution and sizing
Examples
var dock = new BeepDock();
// Style
dock.DockStyleType = DockStyle.AppleDock;
dock.PositionAtBottom();
dock.ItemSize = 56;
dock.MaxScale = 1.5f; // Magnification
// Items
dock.AddItem("Finder", Icons.Finder, () => OpenFinder());
dock.AddItem("Editor", Icons.Editor, () => OpenEditor());
dock.AddItem("Terminal", Icons.Terminal, () => OpenTerminal());
// Badges
dock.SetBadge("Editor", "3"); // Show "3" badge
// Animation
dock.AnimationStyle = DockAnimationStyle.EaseInOut;
dock.ShowTooltips = true;