From d1ce1c900b45f2d5ad27528f79e78b9bc69429f2 Mon Sep 17 00:00:00 2001 From: Dasol Kim Date: Wed, 16 Aug 2023 16:41:06 +0900 Subject: [PATCH] =?UTF-8?q?feat:SPM=EC=9C=BC=EB=A1=9C=20SnapKit=EC=9D=84?= =?UTF-8?q?=20=EC=84=A4=EC=B9=98=ED=96=88=EC=8A=B5=EB=8B=88=EB=8B=A4.?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- Box42.xcodeproj/project.pbxproj | 29 +++++++++- .../xcshareddata/swiftpm/Package.resolved | 16 ++++++ .../UserInterfaceState.xcuserstate | Bin 0 -> 55554 bytes Box42/Box/BoxButtonViewGroup.swift | 53 +++++++++++++----- Box42/Main/BoxViewController.swift | 4 +- Box42/Menubar/MenubarViewController.swift | 2 - Box42/Resources/Main.storyboard | 49 ---------------- Box42/System/EventMonitor.swift | 2 +- Box42/Window/BoxWindowController.swift | 2 +- 9 files changed, 87 insertions(+), 70 deletions(-) create mode 100644 Box42.xcodeproj/project.xcworkspace/xcshareddata/swiftpm/Package.resolved create mode 100644 Box42.xcodeproj/project.xcworkspace/xcuserdata/daskim.xcuserdatad/UserInterfaceState.xcuserstate diff --git a/Box42.xcodeproj/project.pbxproj b/Box42.xcodeproj/project.pbxproj index 10e6af2..5ad7d15 100644 --- a/Box42.xcodeproj/project.pbxproj +++ b/Box42.xcodeproj/project.pbxproj @@ -3,10 +3,11 @@ archiveVersion = 1; classes = { }; - objectVersion = 50; + objectVersion = 52; objects = { /* Begin PBXBuildFile section */ + D676A64A2A8C5CEA00B5C319 /* SnapKit in Frameworks */ = {isa = PBXBuildFile; productRef = D676A6492A8C5CEA00B5C319 /* SnapKit */; }; DE018BB32A5099F900FF0AA3 /* AppDelegate.swift in Sources */ = {isa = PBXBuildFile; fileRef = DE018BB22A5099F900FF0AA3 /* AppDelegate.swift */; }; DE018BB82A5099F900FF0AA3 /* Box42.xcdatamodeld in Sources */ = {isa = PBXBuildFile; fileRef = DE018BB62A5099F900FF0AA3 /* Box42.xcdatamodeld */; }; DE018BDD2A509AEB00FF0AA3 /* EventMonitor.swift in Sources */ = {isa = PBXBuildFile; fileRef = DE018BDC2A509AEB00FF0AA3 /* EventMonitor.swift */; }; @@ -97,6 +98,7 @@ isa = PBXFrameworksBuildPhase; buildActionMask = 2147483647; files = ( + D676A64A2A8C5CEA00B5C319 /* SnapKit in Frameworks */, ); runOnlyForDeploymentPostprocessing = 0; }; @@ -295,6 +297,9 @@ dependencies = ( ); name = Box42; + packageProductDependencies = ( + D676A6492A8C5CEA00B5C319 /* SnapKit */, + ); productName = Box42; productReference = DE018BAF2A5099F900FF0AA3 /* Box42.app */; productType = "com.apple.product-type.application"; @@ -322,6 +327,9 @@ Base, ); mainGroup = DE018BA62A5099F900FF0AA3; + packageReferences = ( + D676A6482A8C5CEA00B5C319 /* XCRemoteSwiftPackageReference "SnapKit" */, + ); productRefGroup = DE018BB02A5099F900FF0AA3 /* Products */; projectDirPath = ""; projectRoot = ""; @@ -568,6 +576,25 @@ }; /* End XCConfigurationList section */ +/* Begin XCRemoteSwiftPackageReference section */ + D676A6482A8C5CEA00B5C319 /* XCRemoteSwiftPackageReference "SnapKit" */ = { + isa = XCRemoteSwiftPackageReference; + repositoryURL = "https://github.com/SnapKit/SnapKit.git"; + requirement = { + kind = exactVersion; + version = 5.6.0; + }; + }; +/* End XCRemoteSwiftPackageReference section */ + +/* Begin XCSwiftPackageProductDependency section */ + D676A6492A8C5CEA00B5C319 /* SnapKit */ = { + isa = XCSwiftPackageProductDependency; + package = D676A6482A8C5CEA00B5C319 /* XCRemoteSwiftPackageReference "SnapKit" */; + productName = SnapKit; + }; +/* End XCSwiftPackageProductDependency section */ + /* Begin XCVersionGroup section */ DE018BB62A5099F900FF0AA3 /* Box42.xcdatamodeld */ = { isa = XCVersionGroup; diff --git a/Box42.xcodeproj/project.xcworkspace/xcshareddata/swiftpm/Package.resolved b/Box42.xcodeproj/project.xcworkspace/xcshareddata/swiftpm/Package.resolved new file mode 100644 index 0000000..19d4e8c --- /dev/null +++ b/Box42.xcodeproj/project.xcworkspace/xcshareddata/swiftpm/Package.resolved @@ -0,0 +1,16 @@ +{ + "object": { + "pins": [ + { + "package": "SnapKit", + "repositoryURL": "https://github.com/SnapKit/SnapKit.git", + "state": { + "branch": null, + "revision": "f222cbdf325885926566172f6f5f06af95473158", + "version": "5.6.0" + } + } + ] + }, + "version": 1 +} diff --git a/Box42.xcodeproj/project.xcworkspace/xcuserdata/daskim.xcuserdatad/UserInterfaceState.xcuserstate b/Box42.xcodeproj/project.xcworkspace/xcuserdata/daskim.xcuserdatad/UserInterfaceState.xcuserstate new file mode 100644 index 0000000000000000000000000000000000000000..8f509221410845e00fc7a5e97c7a24001c6d86c7 GIT binary patch literal 55554 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 - @@ -173,53 +172,5 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/Box42/System/EventMonitor.swift b/Box42/System/EventMonitor.swift index 81234df..ecc7f8d 100644 --- a/Box42/System/EventMonitor.swift +++ b/Box42/System/EventMonitor.swift @@ -11,7 +11,7 @@ class EventMonitor { private var monitor: Any? private let mask: NSEvent.EventTypeMask private let handler: (NSEvent?) -> Void - + init(monitor: Any? = nil, mask: NSEvent.EventTypeMask, handler: @escaping (NSEvent?) -> Void) { self.mask = mask self.handler = handler diff --git a/Box42/Window/BoxWindowController.swift b/Box42/Window/BoxWindowController.swift index db80f60..acae3b9 100644 --- a/Box42/Window/BoxWindowController.swift +++ b/Box42/Window/BoxWindowController.swift @@ -8,13 +8,13 @@ import Cocoa class BoxWindowController: NSWindowController { - override init(window: NSWindow?) { let contentRect = BoxSizeManager.shared.boxViewSizeNSRect let styleMask: NSWindow.StyleMask = [.titled, .closable, .resizable, .miniaturizable] let windowInstance = NSWindow(contentRect: contentRect, styleMask: styleMask, backing: .buffered, defer: false) windowInstance.title = "Box" windowInstance.styleMask.insert(.resizable) + windowInstance.backgroundColor = NSColor.red let boxViewController = BoxViewController(nibName: nil, bundle: nil) windowInstance.contentViewController = boxViewController