From 516a2e14e668f863a733d30f0862a9018efe4b88 Mon Sep 17 00:00:00 2001 From: neon443 <69979447+neon443@users.noreply.github.com> Date: Mon, 26 May 2025 11:13:43 +0100 Subject: [PATCH] added more items to the mmenu bar, also converted the enum to obj for no reason :cry --- DockPhobia/AppDelegate.swift | 51 +++++++++++++++++++++++++++++++++-- DockPhobia/MouseTracker.swift | 27 ++++++++++++++++++- 2 files changed, 75 insertions(+), 3 deletions(-) diff --git a/DockPhobia/AppDelegate.swift b/DockPhobia/AppDelegate.swift index b081b78..d8918a6 100644 --- a/DockPhobia/AppDelegate.swift +++ b/DockPhobia/AppDelegate.swift @@ -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" + } } } diff --git a/DockPhobia/MouseTracker.swift b/DockPhobia/MouseTracker.swift index e6e75d8..6de091f 100644 --- a/DockPhobia/MouseTracker.swift +++ b/DockPhobia/MouseTracker.swift @@ -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 {