mirror of
https://github.com/ALEZ-DEV/Babylonia-terminal.git
synced 2025-12-16 01:18:50 +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(
|
||||
create: (context) => Game(),
|
||||
child: Scaffold(
|
||||
@ -117,6 +119,50 @@ class _MenuState extends State<Menu> {
|
||||
appBar: AppBar(
|
||||
title: const Text("Babylonia Terminal"),
|
||||
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),
|
||||
),
|
||||
|
||||
@ -2,6 +2,7 @@ import 'package:flutter/material.dart';
|
||||
import 'package:flutter/widgets.dart';
|
||||
import 'package:media_kit/media_kit.dart';
|
||||
import 'package:rinf/rinf.dart';
|
||||
import 'package:yaru_window/yaru_window.dart';
|
||||
|
||||
import './app.dart';
|
||||
import './messages/generated.dart';
|
||||
@ -9,6 +10,7 @@ import './providers/providers.dart';
|
||||
|
||||
void main() async {
|
||||
await initializeRust(assignRustSignal);
|
||||
await YaruWindow.ensureInitialized();
|
||||
WidgetsFlutterBinding.ensureInitialized();
|
||||
MediaKit.ensureInitialized();
|
||||
|
||||
|
||||
@ -790,7 +790,7 @@ packages:
|
||||
source: hosted
|
||||
version: "4.1.0"
|
||||
yaru_window:
|
||||
dependency: transitive
|
||||
dependency: "direct main"
|
||||
description:
|
||||
name: yaru_window
|
||||
sha256: c9d16f78962652ad71aa160ab0a1e2e5924359439303394f980fd00eefc905eb
|
||||
|
||||
@ -53,6 +53,7 @@ dependencies:
|
||||
media_kit: ^1.1.11
|
||||
media_kit_video: ^1.2.5
|
||||
media_kit_libs_video: ^1.0.5
|
||||
yaru_window: ^0.2.1
|
||||
|
||||
#dependency_overrides:
|
||||
# media_kit:
|
||||
|
||||
Loading…
Reference in New Issue
Block a user