added more items to the mmenu bar, also converted the enum to obj for no reason :cry

This commit is contained in:
neon443
2025-05-26 11:13:43 +01:00
parent e746ff4071
commit 516a2e14e6
2 changed files with 75 additions and 3 deletions

View File

@@ -33,10 +33,44 @@ class AppDelegate: NSObject, NSApplicationDelegate {
func setupMenus() {
let menu = NSMenu()
let one = NSMenuItem(title: "hi", action: #selector(didTapStart), keyEquivalent: "s s")
menu.addItem(one)
let start = NSMenuItem(title: describeStartButton(), action: #selector(didTapStart), keyEquivalent: "")
menu.addItem(start)
let screen = NSMenuItem(
title: "\(mouseTracker.screen.width)x\(mouseTracker.screen.height)",
action: nil,
keyEquivalent: ""
)
menu.addItem(screen)
menu.addItem(NSMenuItem.separator())
menu.addItem(
NSMenuItem(
title: "Move Dock to left",
action: #selector(moveDockObjcLeft),
keyEquivalent: ""
)
)
menu.addItem(
NSMenuItem(
title: "Move Dock to bottom",
action: #selector(moveDockObjcBottom),
keyEquivalent: ""
)
)
menu.addItem(
NSMenuItem(
title: "Move Dock to right",
action: #selector(moveDockObjcRight),
keyEquivalent: ""
)
)
menu.addItem(NSMenuItem.separator())
let quit = NSMenuItem(title: "Quit", action: #selector(didTapStart), keyEquivalent: "q")
menu.addItem(quit)
statusItem.menu = menu
}
@@ -58,5 +92,18 @@ class AppDelegate: NSObject, NSApplicationDelegate {
mouseTracker.addMonitor()
changeMenuIcon(running: true)
}
setupMenus()
}
@objc func moveDockObjcLeft() { mouseTracker.moveDock(.left) }
@objc func moveDockObjcRight() { mouseTracker.moveDock(.right) }
@objc func moveDockObjcBottom() { mouseTracker.moveDock(.bottom) }
func describeStartButton() -> String {
if mouseTracker.running {
return "Stop tracking"
} else {
return "Start tracking"
}
}
}

View File

@@ -13,11 +13,36 @@ struct Screen {
var height: CGFloat
}
enum DockSide {
enum DockSide: Int, RawRepresentable {
case left
case right
case bottom
public typealias RawValue = String
public var rawValue: RawValue {
switch self {
case .left:
return "left"
case .right:
return "right"
case .bottom:
return "bottom"
}
}
public init?(rawValue: String) {
switch rawValue {
case "left":
self = .left
case "right":
self = .right
case "bottom":
self = .bottom
default:
return nil
}
}
}
class MouseTracker {