Modify window size

This commit is contained in:
Ankit Mahato
2023-03-23 19:37:28 +05:30
parent 28e8e30ce4
commit d37b785a86
4 changed files with 33 additions and 6 deletions

View File

@ -1,15 +1,29 @@
import 'package:flutter/foundation.dart'; import 'dart:io';
import 'dart:math' as math;
import 'package:flutter/material.dart'; import 'package:flutter/material.dart';
import 'package:desktop_window/desktop_window.dart'; import 'package:window_size/window_size.dart' as window_size;
import 'package:flutter_riverpod/flutter_riverpod.dart'; import 'package:flutter_riverpod/flutter_riverpod.dart';
import 'package:google_fonts/google_fonts.dart'; import 'package:google_fonts/google_fonts.dart';
import 'screens/screens.dart'; import 'screens/screens.dart';
void main() async { void main() async {
WidgetsFlutterBinding.ensureInitialized(); WidgetsFlutterBinding.ensureInitialized();
if (!kIsWeb) { if (Platform.isWindows || Platform.isLinux || Platform.isMacOS) {
await DesktopWindow.setWindowSize(const Size(1400, 800)); window_size.getWindowInfo().then((window) {
await DesktopWindow.setMinWindowSize(const Size(1200, 800)); final screen = window.screen;
if (screen != null) {
final screenFrame = screen.visibleFrame;
final width = math.max((screenFrame.width / 2).roundToDouble(), 1200.0);
final height =
math.max((screenFrame.height / 2).roundToDouble(), 800.0);
final left = ((screenFrame.width - width) / 2).roundToDouble();
final top = ((screenFrame.height - height) / 3).roundToDouble();
final frame = Rect.fromLTWH(left, top, width, height);
window_size.setWindowFrame(frame);
window_size.setWindowMinSize(const Size(900, 600));
window_size.setWindowMaxSize(Size.infinite);
}
});
} }
runApp( runApp(
const ProviderScope( const ProviderScope(

View File

@ -14,7 +14,7 @@ class HomePage extends StatefulWidget {
class HomePageState extends State<HomePage> { class HomePageState extends State<HomePage> {
final MultiSplitViewController _controller = MultiSplitViewController( final MultiSplitViewController _controller = MultiSplitViewController(
areas: [ areas: [
Area(size: 300, minimalSize: 200), Area(size: 250, minimalSize: 200),
Area(minimalWeight: 0.7), Area(minimalWeight: 0.7),
], ],
); );

View File

@ -485,6 +485,15 @@ packages:
url: "https://pub.dev" url: "https://pub.dev"
source: hosted source: hosted
version: "3.1.3" version: "3.1.3"
window_size:
dependency: "direct main"
description:
path: "plugins/window_size"
ref: HEAD
resolved-ref: "6c66ad23ee79749f30a8eece542cf54eaf157ed8"
url: "https://github.com/google/flutter-desktop-embedding.git"
source: git
version: "0.1.0"
xdg_directories: xdg_directories:
dependency: transitive dependency: transitive
description: description:

View File

@ -23,6 +23,10 @@ dependencies:
string_scanner: ^1.2.0 string_scanner: ^1.2.0
xml: ^6.2.2 xml: ^6.2.2
jinja: ^0.4.2 jinja: ^0.4.2
window_size:
git:
url: https://github.com/google/flutter-desktop-embedding.git
path: plugins/window_size
dev_dependencies: dev_dependencies:
flutter_test: flutter_test: