From 3b0d93477e0ebb77eb8e8f677be7c24f6460ff11 Mon Sep 17 00:00:00 2001 From: dscyrescotti Date: Sun, 19 May 2024 21:30:08 +0700 Subject: [PATCH] feat: make pen dock compact --- Memola.xcodeproj/project.pbxproj | 4 +++ Memola/Features/Memo/Memo/MemoView.swift | 2 -- Memola/Features/Memo/PenDock/PenDock.swift | 40 ++++++++++------------ 3 files changed, 23 insertions(+), 23 deletions(-) diff --git a/Memola.xcodeproj/project.pbxproj b/Memola.xcodeproj/project.pbxproj index 076c6cb..258bf1f 100644 --- a/Memola.xcodeproj/project.pbxproj +++ b/Memola.xcodeproj/project.pbxproj @@ -645,6 +645,8 @@ dependencies = ( ); name = Memola; + packageProductDependencies = ( + ); productName = Memola; productReference = EC7F6BE82BE5E6E300A34A7B /* Memola.app */; productType = "com.apple.product-type.application"; @@ -673,6 +675,8 @@ Base, ); mainGroup = EC7F6BDF2BE5E6E300A34A7B; + packageReferences = ( + ); productRefGroup = EC7F6BE92BE5E6E300A34A7B /* Products */; projectDirPath = ""; projectRoot = ""; diff --git a/Memola/Features/Memo/Memo/MemoView.swift b/Memola/Features/Memo/Memo/MemoView.swift index ec5c4cc..c6a1603 100644 --- a/Memola/Features/Memo/Memo/MemoView.swift +++ b/Memola/Features/Memo/Memo/MemoView.swift @@ -29,8 +29,6 @@ struct MemoView: View { .ignoresSafeArea() .overlay(alignment: .trailing) { PenDock() - .frame(maxHeight: .infinity) - .padding() } .disabled(textFieldState) .overlay(alignment: .top) { diff --git a/Memola/Features/Memo/PenDock/PenDock.swift b/Memola/Features/Memo/PenDock/PenDock.swift index d478839..f6d8f55 100644 --- a/Memola/Features/Memo/PenDock/PenDock.swift +++ b/Memola/Features/Memo/PenDock/PenDock.swift @@ -12,7 +12,7 @@ struct PenDock: View { let width: CGFloat = 90 let height: CGFloat = 30 - let factor: CGFloat = 0.95 + let factor: CGFloat = 0.9 @State var refreshScrollId: UUID = UUID() @State var opensColorPicker: Bool = false @@ -23,6 +23,8 @@ struct PenDock: View { penItemList } .fixedSize() + .frame(maxHeight: .infinity) + .padding(10) } var penItemList: some View { @@ -53,11 +55,11 @@ struct PenDock: View { .frame(maxHeight:( (height * factor + 10) * 6) + 20) .fixedSize() .background(alignment: .trailing) { - RoundedRectangle(cornerRadius: 20) + RoundedRectangle(cornerRadius: 8) .fill(.regularMaterial) .frame(width: width * factor - 18) } - .clipShape(.rect(cornerRadii: .init(bottomTrailing: 20, topTrailing: 20))) + .clipShape(.rect(cornerRadii: .init(bottomTrailing: 8, topTrailing: 8))) .overlay(alignment: .bottomLeading) { newPenButton .offset(x: 60, y: 10) @@ -143,13 +145,15 @@ struct PenDock: View { var penPropertyTool: some View { if let pen = tool.selectedPen { VStack(spacing: 5) { - penColorPicker(pen) + if pen.strokeStyle == .marker { + penColorPicker(pen) + } penThicknessPicker(pen) } .padding(10) .frame(width: width * factor - 18) .background { - RoundedRectangle(cornerRadius: 20) + RoundedRectangle(cornerRadius: 8) .fill(.regularMaterial) } .transition(.move(edge: .trailing).combined(with: .opacity)) @@ -179,14 +183,13 @@ struct PenDock: View { } } .background(baseColor) - .clipShape(RoundedRectangle(cornerRadius: 10)) - .frame(height: 28) + .clipShape(.rect(cornerRadius: 8)) + .frame(height: 25) .overlay { - RoundedRectangle(cornerRadius: 10) + RoundedRectangle(cornerRadius: 8) .stroke(Color.gray, lineWidth: 0.4) } .padding(0.2) - .padding(.top, 4) .drawingGroup() } .hoverEffect(.lift) @@ -207,8 +210,8 @@ struct PenDock: View { func penThicknessPicker(_ pen: Pen) -> some View { let minimum: CGFloat = pen.style.thickness.min let maximum: CGFloat = pen.style.thickness.max - let start: CGFloat = 5 - let end: CGFloat = 15 + let start: CGFloat = 4 + let end: CGFloat = 10 let selection = Binding( get: { pen.thickness }, set: { @@ -219,19 +222,14 @@ struct PenDock: View { Picker("", selection: selection) { ForEach(pen.style.thicknessSteps, id: \.self) { step in let size = ((step - minimum) * (end - start) / (maximum - minimum)) + start - (1 / step) - if pen.thickness == step { - Circle() - .fill(.black) - .frame(width: size, height: size) - } else { - Circle() - .stroke(Color.black, lineWidth: 1) - .frame(width: size, height: size) - } + Circle() + .fill(.black) + .frame(width: size, height: size) + .frame(width: size + 2, height: size + 2) } } .pickerStyle(.wheel) - .frame(width: width * factor - 18, height: 40) + .frame(width: width * factor - 18, height: 35) } var newPenButton: some View {