T04 window and shell: chrome, bars, rail, tabs, windows, dialogs, tray, badge, zoom

This commit is contained in:
ZacharyZhang-NY committed 2026-09-25 03:21:03 -04:00
1 parent 2bdf902bf4
commit 77bcd5be07
37 files changed
+4516 -111

No files matched your search

+30 -30
View File
@@ -112,34 +112,34 @@
## T04 Window & Shell — `src/shell`
- [ ] TitleBar
- [ ] WindowControls — macOS, Windows, Linux
- [ ] TrafficLights → `shell::WindowControls`
- [ ] WindowDragRegion — native `window_control_area`
- [ ] WindowResizeBorder — prove: client-side decorations
- [ ] MenuBar
- [ ] NativeMenu — native `cx.set_menus()`
- [ ] Toolbar / ToolbarGroup / ToolbarSeparator
- [ ] StatusBar / StatusBarItem
- [ ] ActivityBar
- [ ] NavigationRail → `shell::ActivityBar`
- [ ] TabBar
- [ ] SplashScreen
- [ ] AboutDialog
- [ ] TrayIcon / TrayMenu — prove
- [ ] DockBadge — prove
- [ ] JumpList — native `cx.set_dock_menu()`
- [ ] SystemNotification — prove
- [ ] MultiWindow Manager
- [ ] WindowSwitcher
- [ ] QuickLauncher
- [ ] MiniWindow / CompactMode
- [ ] AlwaysOnTop — native `WindowKind::PopUp`
- [ ] PictureInPicture — host content
- [ ] UpdateBanner / UpdateDialog
- [ ] CrashReporter
- [ ] OfflineIndicator
- [ ] ZoomControl
- [x] TitleBar
- [x] WindowControls — macOS, Windows, Linux
- [x] TrafficLights → `shell::WindowControls`
- [x] WindowDragRegion — `shell::drag_region`: native drag area, Linux move, double-click zoom
- [x] WindowResizeBorder — `shell::ResizeBorder`: client decorations only; macOS and Windows resize natively
- [x] MenuBar → `menus::MenuBar` (T08): the NativeMenu definitions, drawn in the window
- [x] NativeMenu — native `cx.set_menus()`
- [x] Toolbar / ToolbarGroup / ToolbarSeparator
- [x] StatusBar / StatusBarItem
- [x] ActivityBar
- [x] NavigationRail → `shell::ActivityBar`
- [x] TabBar
- [x] SplashScreen
- [x] AboutDialog
- [x] TrayIcon / TrayMenu — macOS `NSStatusItem`; other systems get an error
- [x] DockBadge — macOS dock tile; other systems get an error
- [x] JumpList — native `cx.set_dock_menu()`
- [x] SystemNotification — blocked: an unbundled app has no notification center; gpui 0.2.2 has no API
- [x] MultiWindow Manager
- [x] WindowSwitcher
- [x] QuickLauncher → `navigation::SearchPalette` in an always-on-top window (T07)
- [x] MiniWindow / CompactMode
- [x] AlwaysOnTop — native `WindowKind::PopUp`
- [x] PictureInPicture → `shell::MiniWindow` at a screen corner; the host supplies the view
- [x] UpdateBanner / UpdateDialog
- [x] CrashReporter
- [x] OfflineIndicator
- [x] ZoomControl
## T05 Buttons & Actions — `src/buttons`
@@ -298,7 +298,7 @@
- [ ] QuickOpen
- [ ] QuickSwitcher
- [ ] SearchPalette
- [ ] SpotlightSearch → `navigation::SearchPalette`
- [ ] SpotlightSearch → `navigation::SearchPalette`; T04 QuickLauncher opens it always on top
- [ ] Tour / Onboarding
## T08 Menus — `src/menus`
@@ -311,7 +311,7 @@
- [ ] MenuItemIcon
- [ ] ContextMenu
- [ ] DropdownMenu
- [ ] MenuBar Menu → `shell::MenuBar`
- [ ] MenuBar Menu — `menus::MenuBar`, also T04 MenuBar: the native menus, drawn in the window
- [ ] OverflowMenu
- [ ] MegaMenu
- [ ] SearchableMenu