@@ -41,6 +41,17 @@ class AppDelegate: NSObject, NSApplicationDelegate {
41
41
let statusMenu = NSMenu ( )
42
42
let refreshItem = NSMenuItem ( title: NSLocalizedString ( " Reload " , comment: " Reload menu item " ) , action: #selector( acquireDisplayManager) , keyEquivalent: " r " )
43
43
let quitItem = NSMenuItem ( title: NSLocalizedString ( " Quit " , comment: " Quit menu item " ) , action: #selector( NSApp . terminate) , keyEquivalent: " q " )
44
+ let dockPresetsItem = NSMenuItem ( title: NSLocalizedString ( " Dock Presets " , comment: " Dock Presets menu item " ) , action: nil , keyEquivalent: " " )
45
+
46
+ override init ( ) {
47
+ super. init ( )
48
+
49
+ refreshItem. keyEquivalentModifierMask = . control
50
+ statusMenu. delegate = self
51
+
52
+ statusItem. image = #imageLiteral( resourceName: " DMStatusReady " )
53
+ statusItem. menu = statusMenu
54
+ }
44
55
45
56
func applicationDidFinishLaunching( _ aNotification: Notification ) {
46
57
do {
@@ -49,11 +60,6 @@ class AppDelegate: NSObject, NSApplicationDelegate {
49
60
alertAndQuit ( NSLocalizedString ( " Failed to initialize display manager. " , comment: " Alert title (display manager/config error) " ) , String ( reflecting: error) )
50
61
}
51
62
52
- refreshItem. keyEquivalentModifierMask = . control
53
- statusMenu. delegate = self
54
-
55
- statusItem. image = #imageLiteral( resourceName: " DMStatusReady " )
56
- statusItem. menu = statusMenu
57
63
}
58
64
59
65
func acquireDisplayManager( ) throws {
@@ -90,6 +96,11 @@ class AppDelegate: NSObject, NSApplicationDelegate {
90
96
}
91
97
Timer . scheduledTimer ( timeInterval: TimeInterval ( 1.5 ) , target: self , selector: #selector( _resetDMIcon) , userInfo: nil , repeats: false )
92
98
}
99
+
100
+ func applyDockPresetFromMenu( _ sender: NSMenuItem ? ) {
101
+ let dp = sender!. representedObject as! DockPreset
102
+ dp. apply ( force: true )
103
+ }
93
104
}
94
105
95
106
extension AppDelegate : NSMenuDelegate {
@@ -101,7 +112,16 @@ extension AppDelegate: NSMenuDelegate {
101
112
menu. addItem ( item)
102
113
}
103
114
115
+ let dpsubmenu = NSMenu ( )
116
+ for (name, dp) in displayManager!. dockPresets {
117
+ let item = NSMenuItem ( title: name, action: #selector( applyDockPresetFromMenu) , keyEquivalent: " " )
118
+ item. representedObject = dp
119
+ dpsubmenu. addItem ( item)
120
+ }
121
+
104
122
menu. addItem ( NSMenuItem . separator ( ) )
123
+ menu. addItem ( dockPresetsItem)
124
+ dockPresetsItem. submenu = dpsubmenu
105
125
menu. addItem ( refreshItem)
106
126
menu. addItem ( quitItem)
107
127
}
0 commit comments