window_manager 0.2.0 window_manager: ^0.2.0 copied to clipboard
This plugin allows Flutter desktop apps to resizing and repositioning the window.
import 'dart:io';
import 'package:flutter/material.dart';
import 'package:bot_toast/bot_toast.dart';
import 'package:window_manager/window_manager.dart';
import './pages/home.dart';
import 'themes/themes.dart';
import 'utilities/utilities.dart';
void main() async {
WidgetsFlutterBinding.ensureInitialized();
await windowManager.ensureInitialized();
// Use it only after calling `hiddenWindowAtLaunch`
windowManager.waitUntilReadyToShow().then((_) async {
await windowManager.setTitleBarStyle('hidden');
await windowManager.setBackgroundColor(Colors.transparent);
await windowManager.setSize(Size(800, 600));
await windowManager.center();
await windowManager.show();
await windowManager.focus();
await windowManager.setSkipTaskbar(false);
});
runApp(MyApp());
}
class MyApp extends StatefulWidget {
@override
_MyAppState createState() => _MyAppState();
}
class _MyAppState extends State<MyApp> {
ThemeMode _themeMode = ThemeMode.light;
@override
void initState() {
sharedConfigManager.addListener(_configListen);
super.initState();
}
@override
void dispose() {
sharedConfigManager.removeListener(_configListen);
super.dispose();
}
void _configListen() {
_themeMode = sharedConfig.themeMode;
setState(() {});
}
@override
Widget build(BuildContext context) {
final virtualWindowFrameBuilder = VirtualWindowFrameInit();
final botToastBuilder = BotToastInit();
return MaterialApp(
debugShowCheckedModeBanner: false,
theme: lightThemeData,
darkTheme: darkThemeData,
themeMode: _themeMode,
builder: (context, child) {
child = virtualWindowFrameBuilder(context, child);
child = botToastBuilder(context, child);
return child;
},
navigatorObservers: [BotToastNavigatorObserver()],
home: HomePage(),
);
}
}