window effect for windows

This commit is contained in:
wgh19
2024-05-31 15:21:58 +08:00
parent e6d015a2bc
commit 1652a93772
3 changed files with 57 additions and 5 deletions

View File

@@ -4,6 +4,7 @@ import "package:dynamic_color/dynamic_color.dart";
import "package:fluent_ui/fluent_ui.dart";
import "package:flutter/material.dart" as md;
import "package:flutter/services.dart";
import "package:flutter_acrylic/flutter_acrylic.dart" as flutter_acrylic;
import "package:pixes/appdata.dart";
import "package:pixes/components/md.dart";
import "package:pixes/components/message.dart";
@@ -28,6 +29,10 @@ void main() async {
await Translation.init();
handleLinks();
if (App.isDesktop) {
await flutter_acrylic.Window.initialize();
if (App.isWindows) {
await flutter_acrylic.Window.hideWindowControls();
}
await WindowManager.instance.ensureInitialized();
windowManager.waitUntilReadyToShow().then((_) async {
await windowManager.setTitleBarStyle(
@@ -109,7 +114,7 @@ class MyApp extends StatelessWidget {
throw "widget is null";
}
return MdTheme(
Widget widget = MdTheme(
data: MdThemeData.from(
colorScheme: colorScheme, useMaterial3: true),
child: DefaultTextStyle.merge(
@@ -119,6 +124,34 @@ class MyApp extends StatelessWidget {
child: OverlayWidget(child),
),
);
if (App.isWindows) {
if (App.windowsVersion == 11) {
flutter_acrylic.Window.setEffect(
effect: flutter_acrylic.WindowEffect.mica,
dark: false);
widget = NavigationPaneTheme(
data: const NavigationPaneThemeData(
backgroundColor: Colors.transparent,
),
child: widget,
);
} else if (App.windowsVersion == 10) {
flutter_acrylic.Window.setEffect(
effect: flutter_acrylic.WindowEffect.acrylic,
dark: false);
widget = NavigationPaneTheme(
data: NavigationPaneThemeData(
backgroundColor: FluentTheme.of(context)
.micaBackgroundColor
.withOpacity(0.05),
),
child: widget,
);
}
}
return widget;
});
},
),