Skip to content

Commit 8b897e8

Browse files
committed
Feedback Cycle 1: DRY
1 parent 164ebb2 commit 8b897e8

File tree

18 files changed

+699
-563
lines changed

18 files changed

+699
-563
lines changed

.DS_Store

-6 KB
Binary file not shown.

.gitignore

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,3 @@
11
.DS_Store
2-
WindomWeaverr.xcodeproj/project.xcworkspace/xcuserdata/
3-
.DS_Store
2+
DerivedData/
3+
**/xcuserdata/*

Features/StatusBarController.swift

Lines changed: 13 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -179,83 +179,83 @@ class StatusBarController: ObservableObject {
179179
// 1/3 Split Actions
180180
@objc private func leftThird() {
181181
DispatchQueue.main.async {
182-
self.windowManager.divideScreenIntoThirds(position: .left)
182+
self.windowManager.resize(.third(.left))
183183
}
184184
}
185185

186186
@objc private func centerThird() {
187187
DispatchQueue.main.async {
188-
self.windowManager.divideScreenIntoThirds(position: .center)
188+
self.windowManager.resize(.third(.center))
189189
}
190190
}
191191

192192
@objc private func rightThird() {
193193
DispatchQueue.main.async {
194-
self.windowManager.divideScreenIntoThirds(position: .right)
194+
self.windowManager.resize(.third(.right))
195195
}
196196
}
197197

198198
// Half Split Actions
199199
@objc private func leftHalf() {
200200
DispatchQueue.main.async {
201-
self.windowManager.divideScreenInHalf(position: .left)
201+
self.windowManager.resize(.half(.left))
202202
}
203203
}
204204

205205
@objc private func rightHalf() {
206206
DispatchQueue.main.async {
207-
self.windowManager.divideScreenInHalf(position: .right)
207+
self.windowManager.resize(.half(.right))
208208
}
209209
}
210210

211211
// Corner Actions
212212
@objc private func topLeft() {
213213
DispatchQueue.main.async {
214-
self.windowManager.moveToCorner(position: .topLeft)
214+
self.windowManager.resize(.corner(.topLeft))
215215
}
216216
}
217217

218218
@objc private func topRight() {
219219
DispatchQueue.main.async {
220-
self.windowManager.moveToCorner(position: .topRight)
220+
self.windowManager.resize(.corner(.topRight))
221221
}
222222
}
223223

224224
@objc private func bottomLeft() {
225225
DispatchQueue.main.async {
226-
self.windowManager.moveToCorner(position: .bottomLeft)
226+
self.windowManager.resize(.corner(.bottomLeft))
227227
}
228228
}
229229

230230
@objc private func bottomRight() {
231231
DispatchQueue.main.async {
232-
self.windowManager.moveToCorner(position: .bottomRight)
232+
self.windowManager.resize(.corner(.bottomRight))
233233
}
234234
}
235235

236236
// Vertical Split Actions
237237
@objc private func topHalf() {
238238
DispatchQueue.main.async {
239-
self.windowManager.divideScreenVertically(position: .top)
239+
self.windowManager.resize(.vertical(.top))
240240
}
241241
}
242242

243243
@objc private func bottomHalf() {
244244
DispatchQueue.main.async {
245-
self.windowManager.divideScreenVertically(position: .bottom)
245+
self.windowManager.resize(.vertical(.bottom))
246246
}
247247
}
248248

249249
// Other Actions
250250
@objc private func center() {
251251
DispatchQueue.main.async {
252-
self.windowManager.centerWindow()
252+
self.windowManager.resize(.generic(.center))
253253
}
254254
}
255255

256256
@objc private func fullScreen() {
257257
DispatchQueue.main.async {
258-
self.windowManager.makeFullScreen()
258+
self.windowManager.resize(.generic(.fullScreen))
259259
}
260260
}
261261
}

Features/StatusBarView.swift

Lines changed: 13 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -15,13 +15,13 @@ struct StatusBarView: View {
1515
Group {
1616
// Options for third split
1717
HStack {
18-
Button(action: { windowManager.divideScreenIntoThirds(position: .left) }) {
18+
Button(action: { windowManager.resize(.third(.left)) }) {
1919
Label("Left 1/3", systemImage: "rectangle.lefthalf.filled")
2020
}
21-
Button(action: { windowManager.divideScreenIntoThirds(position: .center) }) {
21+
Button(action: { windowManager.resize(.third(.center)) }) {
2222
Label("Center 1/3", systemImage: "rectangle.center.filled")
2323
}
24-
Button(action: { windowManager.divideScreenIntoThirds(position: .right) }) {
24+
Button(action: { windowManager.resize(.third(.right)) }) {
2525
Label("Right 1/3", systemImage: "rectangle.righthalf.filled")
2626
}
2727
}
@@ -30,10 +30,10 @@ struct StatusBarView: View {
3030

3131
// Options for half split
3232
HStack {
33-
Button(action: { windowManager.divideScreenInHalf(position: .left) }) {
33+
Button(action: { windowManager.resize(.half(.left)) }) {
3434
Label("Left Half", systemImage: "rectangle.lefthalf.filled")
3535
}
36-
Button(action: { windowManager.divideScreenInHalf(position: .right) }) {
36+
Button(action: { windowManager.resize(.half(.right)) }) {
3737
Label("Right Half", systemImage: "rectangle.righthalf.filled")
3838
}
3939
}
@@ -43,18 +43,18 @@ struct StatusBarView: View {
4343
// Corner options
4444
Grid {
4545
GridRow {
46-
Button(action: { windowManager.moveToCorner(position: .topLeft) }) {
46+
Button(action: { windowManager.resize(.corner(.topLeft)) }) {
4747
Label("Top Left", systemImage: "arrow.up.left.square")
4848
}
49-
Button(action: { windowManager.moveToCorner(position: .topRight) }) {
49+
Button(action: { windowManager.resize(.corner(.topRight)) }) {
5050
Label("Top Right", systemImage: "arrow.up.right.square")
5151
}
5252
}
5353
GridRow {
54-
Button(action: { windowManager.moveToCorner(position: .bottomLeft) }) {
54+
Button(action: { windowManager.resize(.corner(.bottomLeft)) }) {
5555
Label("Bottom Left", systemImage: "arrow.down.left.square")
5656
}
57-
Button(action: { windowManager.moveToCorner(position: .bottomRight) }) {
57+
Button(action: {windowManager.resize(.corner(.bottomRight)) }) {
5858
Label("Bottom Right", systemImage: "arrow.down.right.square")
5959
}
6060
}
@@ -64,19 +64,19 @@ struct StatusBarView: View {
6464

6565
// Other options
6666
HStack {
67-
Button(action: { windowManager.divideScreenVertically(position: .top) }) {
67+
Button(action: { windowManager.resize(.vertical(.top)) }) {
6868
Label("Top Half", systemImage: "rectangle.tophalf.filled")
6969
}
70-
Button(action: { windowManager.divideScreenVertically(position: .bottom) }) {
70+
Button(action: { windowManager.resize(.vertical(.bottom)) }) {
7171
Label("Bottom Half", systemImage: "rectangle.bottomhalf.filled")
7272
}
7373
}
7474

75-
Button(action: { windowManager.makeFullScreen() }) {
75+
Button(action: { windowManager.resize(.generic(.fullScreen)) }) {
7676
Label("Full Screen", systemImage: "rectangle.fill")
7777
}
7878

79-
Button(action: { windowManager.centerWindow() }) {
79+
Button(action: { windowManager.resize(.generic(.center)) }) {
8080
Label("Center", systemImage: "rectangle.center.filled")
8181
}
8282
}

Sources/ScreenPosition.swift

Lines changed: 33 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,33 @@
1+
enum ScreenPosition {
2+
enum Corner {
3+
case topLeft, topRight, bottomLeft, bottomRight
4+
}
5+
6+
enum Half {
7+
case left, right
8+
}
9+
10+
enum Third {
11+
case left, center, right
12+
}
13+
14+
enum TwoThirds {
15+
case left, right
16+
}
17+
18+
enum Vertical {
19+
case top, bottom
20+
}
21+
22+
enum Generic {
23+
case center
24+
case fullScreen
25+
}
26+
27+
case corner(_ position: Corner)
28+
case half(_ position: Half)
29+
case third(_ position: Third)
30+
case twoThirds(_ position: TwoThirds)
31+
case vertical(_ position: Vertical)
32+
case generic(_ position: Generic)
33+
}

0 commit comments

Comments
 (0)