mirror of
https://gitlab.com/veilid/veilidchat.git
synced 2025-05-15 20:52:16 -04:00
sliver refactor
This commit is contained in:
parent
67812b3c6f
commit
2fa3cbd21c
25 changed files with 710 additions and 387 deletions
|
@ -1,10 +1,13 @@
|
|||
import 'dart:async';
|
||||
|
||||
import 'package:async_tools/async_tools.dart';
|
||||
import 'package:flutter/foundation.dart';
|
||||
import 'package:flutter/material.dart';
|
||||
import 'package:flutter/services.dart';
|
||||
import 'package:window_manager/window_manager.dart';
|
||||
|
||||
import '../theme/views/responsive.dart';
|
||||
import 'tools.dart';
|
||||
|
||||
export 'package:window_manager/window_manager.dart' show TitleBarStyle;
|
||||
|
||||
|
@ -27,7 +30,7 @@ Future<void> initializeWindowControl() async {
|
|||
skipTaskbar: false,
|
||||
);
|
||||
await windowManager.waitUntilReadyToShow(windowOptions, () async {
|
||||
await changeWindowSetup(
|
||||
await _asyncChangeWindowSetup(
|
||||
TitleBarStyle.hidden, OrientationCapability.normal);
|
||||
await windowManager.show();
|
||||
await windowManager.focus();
|
||||
|
@ -35,7 +38,9 @@ Future<void> initializeWindowControl() async {
|
|||
}
|
||||
}
|
||||
|
||||
Future<void> changeWindowSetup(TitleBarStyle titleBarStyle,
|
||||
const kWindowSetup = '__windowSetup';
|
||||
|
||||
Future<void> _asyncChangeWindowSetup(TitleBarStyle titleBarStyle,
|
||||
OrientationCapability orientationCapability) async {
|
||||
if (isDesktop) {
|
||||
await windowManager.setTitleBarStyle(titleBarStyle);
|
||||
|
@ -59,3 +64,47 @@ Future<void> changeWindowSetup(TitleBarStyle titleBarStyle,
|
|||
}
|
||||
}
|
||||
}
|
||||
|
||||
void changeWindowSetup(
|
||||
TitleBarStyle titleBarStyle, OrientationCapability orientationCapability) {
|
||||
singleFuture<void>(
|
||||
kWindowSetup,
|
||||
() async =>
|
||||
_asyncChangeWindowSetup(titleBarStyle, orientationCapability));
|
||||
}
|
||||
|
||||
abstract class WindowSetupState<T extends StatefulWidget> extends State<T> {
|
||||
WindowSetupState(
|
||||
{required this.titleBarStyle, required this.orientationCapability});
|
||||
|
||||
@override
|
||||
void initState() {
|
||||
changeWindowSetup(this.titleBarStyle, this.orientationCapability);
|
||||
super.initState();
|
||||
}
|
||||
|
||||
@override
|
||||
void activate() {
|
||||
changeWindowSetup(this.titleBarStyle, this.orientationCapability);
|
||||
super.activate();
|
||||
}
|
||||
|
||||
@override
|
||||
void deactivate() {
|
||||
changeWindowSetup(TitleBarStyle.normal, OrientationCapability.normal);
|
||||
super.deactivate();
|
||||
}
|
||||
|
||||
////////////////////////////////////////////////////////////////////////////
|
||||
final TitleBarStyle titleBarStyle;
|
||||
final OrientationCapability orientationCapability;
|
||||
|
||||
@override
|
||||
void debugFillProperties(DiagnosticPropertiesBuilder properties) {
|
||||
super.debugFillProperties(properties);
|
||||
properties
|
||||
..add(EnumProperty<TitleBarStyle>('titleBarStyle', titleBarStyle))
|
||||
..add(EnumProperty<OrientationCapability>(
|
||||
'orientationCapability', orientationCapability));
|
||||
}
|
||||
}
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue