mirror of
https://github.com/FBukovina/Atoll.git
synced 2026-10-27 15:14:33 +00:00
109 lines
3 KiB
Swift
109 lines
3 KiB
Swift
//
|
|
// DynamicIslandExtrasMenu.swift
|
|
// DynamicIsland
|
|
//
|
|
// Created by Harsh Vardhan Goswami on 04/08/24.
|
|
//
|
|
|
|
import SwiftUI
|
|
|
|
struct DynamicIslandLargeButtons: View {
|
|
var action: () -> Void
|
|
var icon: Image
|
|
var title: String
|
|
var body: some View {
|
|
Button (
|
|
action:action,
|
|
label: {
|
|
ZStack {
|
|
RoundedRectangle(cornerRadius: 12.0).fill(.black).frame(width: 70, height: 70)
|
|
VStack(spacing: 8) {
|
|
icon.resizable()
|
|
.aspectRatio(contentMode: .fit).frame(width:20)
|
|
Text(title).font(.body)
|
|
}
|
|
}
|
|
}).buttonStyle(PlainButtonStyle()).shadow(color: .black.opacity(0.5), radius: 10)
|
|
}
|
|
}
|
|
|
|
struct DynamicIslandExtrasMenu : View {
|
|
@ObservedObject var vm: DynamicIslandViewModel
|
|
|
|
var body: some View {
|
|
VStack{
|
|
HStack(spacing: 20) {
|
|
hide
|
|
settings
|
|
close
|
|
}
|
|
}
|
|
}
|
|
|
|
var github: some View {
|
|
DynamicIslandLargeButtons(
|
|
action: {
|
|
NSWorkspace.shared.open(productPage)
|
|
},
|
|
icon: Image(.github),
|
|
title: "Checkout"
|
|
)
|
|
}
|
|
|
|
var donate: some View {
|
|
DynamicIslandLargeButtons(
|
|
action: {
|
|
NSWorkspace.shared.open(sponsorPage)
|
|
},
|
|
icon: Image(systemName: "heart.fill"),
|
|
title: "Love Us"
|
|
)
|
|
}
|
|
|
|
var settings: some View {
|
|
Button(action: {
|
|
SettingsWindowController.shared.showWindow()
|
|
}) {
|
|
ZStack {
|
|
RoundedRectangle(cornerRadius: 12.0).fill(.black).frame(width: 70, height: 70)
|
|
VStack(spacing: 8) {
|
|
Image(systemName: "gear").resizable()
|
|
.aspectRatio(contentMode: .fit).frame(width:20)
|
|
Text("Settings").font(.body)
|
|
}
|
|
}
|
|
}
|
|
.buttonStyle(PlainButtonStyle()).shadow(color: .black.opacity(0.5), radius: 10)
|
|
}
|
|
|
|
var hide: some View {
|
|
DynamicIslandLargeButtons(
|
|
action: {
|
|
DispatchQueue.main.asyncAfter(deadline: .now() + 0.25) {
|
|
//vm.openMusic()
|
|
}
|
|
},
|
|
icon: Image(systemName: "arrow.down.forward.and.arrow.up.backward"),
|
|
title: "Hide"
|
|
)
|
|
}
|
|
|
|
var close: some View {
|
|
DynamicIslandLargeButtons(
|
|
action: {
|
|
DispatchQueue.main.asyncAfter(deadline: .now() + 0.25) {
|
|
DispatchQueue.main.asyncAfter(deadline: .now() + 0.25) {
|
|
NSApp.terminate(nil)
|
|
}
|
|
}
|
|
},
|
|
icon: Image(systemName: "xmark"),
|
|
title: "Exit"
|
|
)
|
|
}
|
|
}
|
|
|
|
|
|
#Preview {
|
|
DynamicIslandExtrasMenu(vm: DynamicIslandViewModel())
|
|
}
|