mirror of
https://github.com/ALEZ-DEV/Babylonia-terminal.git
synced 2026-03-21 21:58:52 +00:00
add control window control button
This commit is contained in:
parent
fbbc9e2225
commit
4122d9f84f
@ -106,6 +106,8 @@ class _MenuState extends State<Menu> {
|
|||||||
),
|
),
|
||||||
);
|
);
|
||||||
|
|
||||||
|
final window = YaruWindow.of(context);
|
||||||
|
|
||||||
return ChangeNotifierProvider(
|
return ChangeNotifierProvider(
|
||||||
create: (context) => Game(),
|
create: (context) => Game(),
|
||||||
child: Scaffold(
|
child: Scaffold(
|
||||||
@ -117,6 +119,50 @@ class _MenuState extends State<Menu> {
|
|||||||
appBar: AppBar(
|
appBar: AppBar(
|
||||||
title: const Text("Babylonia Terminal"),
|
title: const Text("Babylonia Terminal"),
|
||||||
centerTitle: true,
|
centerTitle: true,
|
||||||
|
actions: [
|
||||||
|
Padding(
|
||||||
|
padding: const EdgeInsets.only(right: 14.0),
|
||||||
|
child: YaruWindowControl(
|
||||||
|
type: YaruWindowControlType.minimize,
|
||||||
|
platform: YaruWindowControlPlatform.yaru,
|
||||||
|
onTap: () async {
|
||||||
|
final state = await window.state();
|
||||||
|
if (state.isMinimizable ?? false) window.minimize();
|
||||||
|
},
|
||||||
|
),
|
||||||
|
),
|
||||||
|
StreamBuilder<YaruWindowState>(
|
||||||
|
stream: window.states(),
|
||||||
|
builder: (context, snapshot) {
|
||||||
|
final state = snapshot.data;
|
||||||
|
return Padding(
|
||||||
|
padding: const EdgeInsets.only(right: 14.0),
|
||||||
|
child: YaruWindowControl(
|
||||||
|
type: (state?.isMinimizable ?? false)
|
||||||
|
? YaruWindowControlType.maximize
|
||||||
|
: YaruWindowControlType.restore,
|
||||||
|
platform: YaruWindowControlPlatform.yaru,
|
||||||
|
onTap: () async {
|
||||||
|
(state?.isMinimizable ?? false)
|
||||||
|
? window.maximize()
|
||||||
|
: window.restore();
|
||||||
|
},
|
||||||
|
),
|
||||||
|
);
|
||||||
|
},
|
||||||
|
),
|
||||||
|
Padding(
|
||||||
|
padding: const EdgeInsets.only(right: 10.0),
|
||||||
|
child: YaruWindowControl(
|
||||||
|
type: YaruWindowControlType.close,
|
||||||
|
platform: YaruWindowControlPlatform.yaru,
|
||||||
|
onTap: () async {
|
||||||
|
final state = await window.state();
|
||||||
|
if (state.isClosable ?? false) window.close();
|
||||||
|
},
|
||||||
|
),
|
||||||
|
),
|
||||||
|
],
|
||||||
),
|
),
|
||||||
body: Screens.getCurrent(_selectedIndex),
|
body: Screens.getCurrent(_selectedIndex),
|
||||||
),
|
),
|
||||||
|
|||||||
@ -2,6 +2,7 @@ import 'package:flutter/material.dart';
|
|||||||
import 'package:flutter/widgets.dart';
|
import 'package:flutter/widgets.dart';
|
||||||
import 'package:media_kit/media_kit.dart';
|
import 'package:media_kit/media_kit.dart';
|
||||||
import 'package:rinf/rinf.dart';
|
import 'package:rinf/rinf.dart';
|
||||||
|
import 'package:yaru_window/yaru_window.dart';
|
||||||
|
|
||||||
import './app.dart';
|
import './app.dart';
|
||||||
import './messages/generated.dart';
|
import './messages/generated.dart';
|
||||||
@ -9,6 +10,7 @@ import './providers/providers.dart';
|
|||||||
|
|
||||||
void main() async {
|
void main() async {
|
||||||
await initializeRust(assignRustSignal);
|
await initializeRust(assignRustSignal);
|
||||||
|
await YaruWindow.ensureInitialized();
|
||||||
WidgetsFlutterBinding.ensureInitialized();
|
WidgetsFlutterBinding.ensureInitialized();
|
||||||
MediaKit.ensureInitialized();
|
MediaKit.ensureInitialized();
|
||||||
|
|
||||||
|
|||||||
@ -790,7 +790,7 @@ packages:
|
|||||||
source: hosted
|
source: hosted
|
||||||
version: "4.1.0"
|
version: "4.1.0"
|
||||||
yaru_window:
|
yaru_window:
|
||||||
dependency: transitive
|
dependency: "direct main"
|
||||||
description:
|
description:
|
||||||
name: yaru_window
|
name: yaru_window
|
||||||
sha256: c9d16f78962652ad71aa160ab0a1e2e5924359439303394f980fd00eefc905eb
|
sha256: c9d16f78962652ad71aa160ab0a1e2e5924359439303394f980fd00eefc905eb
|
||||||
|
|||||||
@ -53,6 +53,7 @@ dependencies:
|
|||||||
media_kit: ^1.1.11
|
media_kit: ^1.1.11
|
||||||
media_kit_video: ^1.2.5
|
media_kit_video: ^1.2.5
|
||||||
media_kit_libs_video: ^1.0.5
|
media_kit_libs_video: ^1.0.5
|
||||||
|
yaru_window: ^0.2.1
|
||||||
|
|
||||||
#dependency_overrides:
|
#dependency_overrides:
|
||||||
# media_kit:
|
# media_kit:
|
||||||
|
|||||||
Loading…
Reference in New Issue
Block a user