bitsdojo_window 0.1.6 copy "bitsdojo_window: ^0.1.6" to clipboard
bitsdojo_window: ^0.1.6 copied to clipboard

A package to help with creating custom windows with Flutter desktop (custom border, titlebar and minimize/maximize/close buttons) and common desktop window operations (show/hide/position on screen) fo [...]

example/lib/main.dart

// Don't forget to make the changes mentioned in // https://github.com/bitsdojo/bitsdojo_window#getting-started import 'package:flutter/material.dart'; import 'package:bitsdojo_window/bitsdojo_window.dart'; void main() { appWindow.size = const Size(600, 450); runApp(const MyApp()); appWindow.show(); doWhenWindowReady(() { final win = appWindow; const initialSize = Size(600, 450); win.minSize = initialSize; win.size = initialSize; win.alignment = Alignment.center; win.title = "Custom window with Flutter"; win.show(); }); } const borderColor = Color(0xFF805306); class MyApp extends StatelessWidget { const MyApp({super.key}); @override Widget build(BuildContext context) { return MaterialApp( debugShowCheckedModeBanner: false, home: Scaffold( body: WindowBorder( color: borderColor, width: 1, child: const Row( children: [LeftSide(), RightSide()], ), ), ), ); } } const sidebarColor = Color(0xFFF6A00C); class LeftSide extends StatelessWidget { const LeftSide({super.key}); @override Widget build(BuildContext context) { return SizedBox( width: 200, child: Container( color: sidebarColor, child: Column( children: [ WindowTitleBarBox(child: MoveWindow()), Expanded(child: Container()) ], ))); } } const backgroundStartColor = Color(0xFFFFD500); const backgroundEndColor = Color(0xFFF6A00C); class RightSide extends StatelessWidget { const RightSide({super.key}); @override Widget build(BuildContext context) { return Expanded( child: Container( decoration: const BoxDecoration( gradient: LinearGradient( begin: Alignment.topCenter, end: Alignment.bottomCenter, colors: [backgroundStartColor, backgroundEndColor], stops: [0.0, 1.0]), ), child: Column(children: [ WindowTitleBarBox( child: Row( children: [Expanded(child: MoveWindow()), const WindowButtons()], ), ) ]), ), ); } } final buttonColors = WindowButtonColors( iconNormal: const Color(0xFF805306), mouseOver: const Color(0xFFF6A00C), mouseDown: const Color(0xFF805306), iconMouseOver: const Color(0xFF805306), iconMouseDown: const Color(0xFFFFD500)); final closeButtonColors = WindowButtonColors( mouseOver: const Color(0xFFD32F2F), mouseDown: const Color(0xFFB71C1C), iconNormal: const Color(0xFF805306), iconMouseOver: Colors.white); class WindowButtons extends StatefulWidget { const WindowButtons({super.key}); @override State<WindowButtons> createState() => _WindowButtonsState(); } class _WindowButtonsState extends State<WindowButtons> { void maximizeOrRestore() { setState(() { appWindow.maximizeOrRestore(); }); } @override Widget build(BuildContext context) { return Row( children: [ MinimizeWindowButton(colors: buttonColors), appWindow.isMaximized ? RestoreWindowButton( colors: buttonColors, onPressed: maximizeOrRestore, ) : MaximizeWindowButton( colors: buttonColors, onPressed: maximizeOrRestore, ), CloseWindowButton(colors: closeButtonColors), ], ); } }
1.04k
likes
130
points
18.2k
downloads

Publisher

verified publisherbitsdojo.com

Weekly Downloads

A package to help with creating custom windows with Flutter desktop (custom border, titlebar and minimize/maximize/close buttons) and common desktop window operations (show/hide/position on screen) for Windows and macOS

Homepage
Repository (GitHub)
View/report issues

Documentation

API reference

License

MIT (license)

Dependencies

bitsdojo_window_linux, bitsdojo_window_macos, bitsdojo_window_platform_interface, bitsdojo_window_windows, flutter

More

Packages that depend on bitsdojo_window

Packages that implement bitsdojo_window