mirror of
				https://github.com/maxgoedjen/secretive.git
				synced 2025-11-04 01:10:56 +00:00 
			
		
		
		
	Toolbar tweaks
This commit is contained in:
		
							parent
							
								
									d68c5a162c
								
							
						
					
					
						commit
						697fdfafe4
					
				@ -705,7 +705,7 @@
 | 
			
		||||
					"$(inherited)",
 | 
			
		||||
					"@executable_path/../Frameworks",
 | 
			
		||||
				);
 | 
			
		||||
				MACOSX_DEPLOYMENT_TARGET = 12.0;
 | 
			
		||||
				MACOSX_DEPLOYMENT_TARGET = 13.0;
 | 
			
		||||
				MARKETING_VERSION = 1;
 | 
			
		||||
				PRODUCT_BUNDLE_IDENTIFIER = com.maxgoedjen.Secretive.Host;
 | 
			
		||||
				PRODUCT_NAME = "$(TARGET_NAME)";
 | 
			
		||||
@ -733,7 +733,7 @@
 | 
			
		||||
					"$(inherited)",
 | 
			
		||||
					"@executable_path/../Frameworks",
 | 
			
		||||
				);
 | 
			
		||||
				MACOSX_DEPLOYMENT_TARGET = 12.0;
 | 
			
		||||
				MACOSX_DEPLOYMENT_TARGET = 13.0;
 | 
			
		||||
				MARKETING_VERSION = 1;
 | 
			
		||||
				PRODUCT_BUNDLE_IDENTIFIER = com.maxgoedjen.Secretive.Host;
 | 
			
		||||
				PRODUCT_NAME = "$(TARGET_NAME)";
 | 
			
		||||
@ -866,7 +866,7 @@
 | 
			
		||||
					"$(inherited)",
 | 
			
		||||
					"@executable_path/../Frameworks",
 | 
			
		||||
				);
 | 
			
		||||
				MACOSX_DEPLOYMENT_TARGET = 12.0;
 | 
			
		||||
				MACOSX_DEPLOYMENT_TARGET = 13.0;
 | 
			
		||||
				MARKETING_VERSION = 1;
 | 
			
		||||
				PRODUCT_BUNDLE_IDENTIFIER = com.maxgoedjen.Secretive.Host;
 | 
			
		||||
				PRODUCT_NAME = "$(TARGET_NAME)";
 | 
			
		||||
@ -910,7 +910,7 @@
 | 
			
		||||
					"$(inherited)",
 | 
			
		||||
					"@executable_path/../Frameworks",
 | 
			
		||||
				);
 | 
			
		||||
				MACOSX_DEPLOYMENT_TARGET = 12.0;
 | 
			
		||||
				MACOSX_DEPLOYMENT_TARGET = 13.0;
 | 
			
		||||
				MARKETING_VERSION = 1;
 | 
			
		||||
				PRODUCT_BUNDLE_IDENTIFIER = com.maxgoedjen.Secretive.SecretAgent;
 | 
			
		||||
				PRODUCT_NAME = "$(TARGET_NAME)";
 | 
			
		||||
@ -934,7 +934,7 @@
 | 
			
		||||
					"$(inherited)",
 | 
			
		||||
					"@executable_path/../Frameworks",
 | 
			
		||||
				);
 | 
			
		||||
				MACOSX_DEPLOYMENT_TARGET = 12.0;
 | 
			
		||||
				MACOSX_DEPLOYMENT_TARGET = 13.0;
 | 
			
		||||
				MARKETING_VERSION = 1;
 | 
			
		||||
				PRODUCT_BUNDLE_IDENTIFIER = com.maxgoedjen.Secretive.SecretAgent;
 | 
			
		||||
				PRODUCT_NAME = "$(TARGET_NAME)";
 | 
			
		||||
@ -959,7 +959,7 @@
 | 
			
		||||
					"$(inherited)",
 | 
			
		||||
					"@executable_path/../Frameworks",
 | 
			
		||||
				);
 | 
			
		||||
				MACOSX_DEPLOYMENT_TARGET = 12.0;
 | 
			
		||||
				MACOSX_DEPLOYMENT_TARGET = 13.0;
 | 
			
		||||
				MARKETING_VERSION = 1;
 | 
			
		||||
				PRODUCT_BUNDLE_IDENTIFIER = com.maxgoedjen.Secretive.SecretAgent;
 | 
			
		||||
				PRODUCT_NAME = "$(TARGET_NAME)";
 | 
			
		||||
 | 
			
		||||
@ -30,10 +30,12 @@ struct ContentView<UpdaterType: UpdaterProtocol, AgentStatusCheckerType: AgentSt
 | 
			
		||||
        }
 | 
			
		||||
        .frame(minWidth: 640, minHeight: 320)
 | 
			
		||||
        .toolbar {
 | 
			
		||||
            toolbarItem(updateNoticeView, id: "update")
 | 
			
		||||
            toolbarItem(runningOrRunSetupView, id: "setup")
 | 
			
		||||
            toolbarItem(appPathNoticeView, id: "appPath")
 | 
			
		||||
            toolbarItem(newItemView, id: "new")
 | 
			
		||||
            if #available(macOS 26.0, *) {
 | 
			
		||||
                toolbarItem(updateNoticeView, id: "update")
 | 
			
		||||
                toolbarItem(runningOrRunSetupView, id: "setup")
 | 
			
		||||
                toolbarItem(appPathNoticeView, id: "appPath")
 | 
			
		||||
                toolbarItem(newItemView, id: "new")
 | 
			
		||||
            }
 | 
			
		||||
        }
 | 
			
		||||
        .sheet(isPresented: $runningSetup) {
 | 
			
		||||
            SetupView(visible: $runningSetup, setupComplete: $hasRunSetup)
 | 
			
		||||
@ -44,9 +46,14 @@ struct ContentView<UpdaterType: UpdaterProtocol, AgentStatusCheckerType: AgentSt
 | 
			
		||||
 | 
			
		||||
extension ContentView {
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
    func toolbarItem(_ view: some View, id: String) -> ToolbarItem<String, some View> {
 | 
			
		||||
        ToolbarItem(id: id) { view }
 | 
			
		||||
    @ToolbarContentBuilder
 | 
			
		||||
    func toolbarItem(_ view: some View, id: String) -> some ToolbarContent {
 | 
			
		||||
        if #available(macOS 26.0, *) {
 | 
			
		||||
            ToolbarItem(id: id) { view }
 | 
			
		||||
                .sharedBackgroundVisibility(.hidden)
 | 
			
		||||
        } else {
 | 
			
		||||
            ToolbarItem(id: id) { view }
 | 
			
		||||
        }
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    var needsSetup: Bool {
 | 
			
		||||
 | 
			
		||||
@ -16,22 +16,44 @@ struct ToolbarButtonStyle: ButtonStyle {
 | 
			
		||||
        self.lightColor = lightColor
 | 
			
		||||
        self.darkColor = darkColor
 | 
			
		||||
    }
 | 
			
		||||
    
 | 
			
		||||
    private var backingColor: Color {
 | 
			
		||||
        if !hovering {
 | 
			
		||||
            colorScheme == .light ? lightColor : darkColor
 | 
			
		||||
        } else {
 | 
			
		||||
            colorScheme == .light ? .black.opacity(0.1) : .white.opacity(0.05)
 | 
			
		||||
        }
 | 
			
		||||
    }
 | 
			
		||||
    @Namespace var namespace
 | 
			
		||||
 | 
			
		||||
    func makeBody(configuration: Configuration) -> some View {
 | 
			
		||||
        configuration.label
 | 
			
		||||
            .padding(EdgeInsets(top: 6, leading: 8, bottom: 6, trailing: 8))
 | 
			
		||||
            .background(colorScheme == .light ? lightColor : darkColor)
 | 
			
		||||
            .foregroundColor(.white)
 | 
			
		||||
            .clipShape(RoundedRectangle(cornerRadius: 5))
 | 
			
		||||
            .overlay(
 | 
			
		||||
                RoundedRectangle(cornerRadius: 5)
 | 
			
		||||
                    .stroke(colorScheme == .light ? .black.opacity(0.15) : .white.opacity(0.15), lineWidth: 1)
 | 
			
		||||
                    .background(hovering ? (colorScheme == .light ? .black.opacity(0.1) : .white.opacity(0.05)) : Color.clear)
 | 
			
		||||
            )
 | 
			
		||||
            .onHover { hovering in
 | 
			
		||||
                withAnimation {
 | 
			
		||||
                    self.hovering = hovering
 | 
			
		||||
        if #available(macOS 26.0, *) {
 | 
			
		||||
            configuration
 | 
			
		||||
                .label
 | 
			
		||||
                .foregroundColor(.white)
 | 
			
		||||
                .padding(EdgeInsets(top: 6, leading: 8, bottom: 6, trailing: 8))
 | 
			
		||||
                .glassEffect(.regular.tint(backingColor), in: .capsule, isEnabled: true)
 | 
			
		||||
                .onHover { hovering in
 | 
			
		||||
                    withAnimation {
 | 
			
		||||
                        self.hovering = hovering
 | 
			
		||||
                    }
 | 
			
		||||
                }
 | 
			
		||||
            }
 | 
			
		||||
        } else {
 | 
			
		||||
            configuration
 | 
			
		||||
                .label
 | 
			
		||||
                .background(colorScheme == .light ? lightColor : darkColor)
 | 
			
		||||
                .foregroundColor(.white)
 | 
			
		||||
                .clipShape(RoundedRectangle(cornerRadius: 5))
 | 
			
		||||
                .overlay(
 | 
			
		||||
                    RoundedRectangle(cornerRadius: 5)
 | 
			
		||||
                        .stroke(colorScheme == .light ? .black.opacity(0.15) : .white.opacity(0.15), lineWidth: 1)
 | 
			
		||||
                        .background(hovering ? (colorScheme == .light ? .black.opacity(0.1) : .white.opacity(0.05)) : Color.clear)
 | 
			
		||||
                )
 | 
			
		||||
                .onHover { hovering in
 | 
			
		||||
                    withAnimation {
 | 
			
		||||
                        self.hovering = hovering
 | 
			
		||||
                    }
 | 
			
		||||
                }
 | 
			
		||||
        }
 | 
			
		||||
    }
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
		Loading…
	
		Reference in New Issue
	
	Block a user