feat: use platform adaptive widgets and replace native title bar with Flutter TitleBar
This commit is contained in:
parent
3244f42d18
commit
8618aeab4f
|
|
@ -4,6 +4,7 @@ import 'package:flutter/material.dart';
|
||||||
import 'package:package_info_plus/package_info_plus.dart';
|
import 'package:package_info_plus/package_info_plus.dart';
|
||||||
import 'package:provider/provider.dart';
|
import 'package:provider/provider.dart';
|
||||||
import 'package:tuple/tuple.dart';
|
import 'package:tuple/tuple.dart';
|
||||||
|
import 'package:window_manager/window_manager.dart';
|
||||||
import 'package:window_size/window_size.dart';
|
import 'package:window_size/window_size.dart';
|
||||||
|
|
||||||
import 'src/app.dart';
|
import 'src/app.dart';
|
||||||
|
|
@ -59,6 +60,19 @@ void main() async {
|
||||||
// Don't forget to also change the size in linux/my_application.cc:50
|
// Don't forget to also change the size in linux/my_application.cc:50
|
||||||
setWindowMinSize(const Size(692, 580));
|
setWindowMinSize(const Size(692, 580));
|
||||||
setWindowMaxSize(const Size(692, 580));
|
setWindowMaxSize(const Size(692, 580));
|
||||||
|
await windowManager.ensureInitialized();
|
||||||
|
|
||||||
|
const windowOptions = WindowOptions(
|
||||||
|
size: Size(692, 580),
|
||||||
|
center: true,
|
||||||
|
backgroundColor: Colors.transparent,
|
||||||
|
skipTaskbar: false,
|
||||||
|
titleBarStyle: TitleBarStyle.hidden,
|
||||||
|
);
|
||||||
|
windowManager.waitUntilReadyToShow(windowOptions, () async {
|
||||||
|
await windowManager.show();
|
||||||
|
await windowManager.focus();
|
||||||
|
});
|
||||||
final foundQuickGet = await Process.run('which', ['quickget']);
|
final foundQuickGet = await Process.run('which', ['quickget']);
|
||||||
if (foundQuickGet.exitCode == 0) {
|
if (foundQuickGet.exitCode == 0) {
|
||||||
gOperatingSystems = await loadOperatingSystems(false);
|
gOperatingSystems = await loadOperatingSystems(false);
|
||||||
|
|
|
||||||
|
|
@ -10,6 +10,7 @@ import 'package:quickgui/src/mixins/app_version.dart';
|
||||||
import 'package:quickgui/src/pages/deget_not_found_page.dart';
|
import 'package:quickgui/src/pages/deget_not_found_page.dart';
|
||||||
import 'package:quickgui/src/supported_locales.dart';
|
import 'package:quickgui/src/supported_locales.dart';
|
||||||
import 'package:shared_preferences/shared_preferences.dart';
|
import 'package:shared_preferences/shared_preferences.dart';
|
||||||
|
import 'package:window_manager/window_manager.dart';
|
||||||
|
|
||||||
import 'globals.dart';
|
import 'globals.dart';
|
||||||
import 'mixins/preferences_mixin.dart';
|
import 'mixins/preferences_mixin.dart';
|
||||||
|
|
@ -23,10 +24,9 @@ class App extends StatefulWidget {
|
||||||
State<App> createState() => _AppState();
|
State<App> createState() => _AppState();
|
||||||
}
|
}
|
||||||
|
|
||||||
class _AppState extends State<App> with PreferencesMixin {
|
class _AppState extends State<App> with PreferencesMixin, WindowListener {
|
||||||
@override
|
@override
|
||||||
Widget build(BuildContext context) {
|
Widget build(BuildContext context) {
|
||||||
platform = TargetPlatform.macOS;
|
|
||||||
return FutureBuilder<SharedPreferences>(
|
return FutureBuilder<SharedPreferences>(
|
||||||
future: SharedPreferences.getInstance(),
|
future: SharedPreferences.getInstance(),
|
||||||
builder: (context, snapshot) {
|
builder: (context, snapshot) {
|
||||||
|
|
@ -57,11 +57,12 @@ class _AppState extends State<App> with PreferencesMixin {
|
||||||
GlobalWidgetsLocalizations.delegate,
|
GlobalWidgetsLocalizations.delegate,
|
||||||
],
|
],
|
||||||
windowButtonConfig: PlatformWindowButtonConfig(
|
windowButtonConfig: PlatformWindowButtonConfig(
|
||||||
isMaximized: () => false,
|
isMaximized: () => windowManager.isMaximized(),
|
||||||
onClose: () {},
|
onClose: windowManager.close,
|
||||||
onMinimize: () {},
|
onMinimize: windowManager.minimize,
|
||||||
onMaximize: () {},
|
onMaximize: windowManager.maximize,
|
||||||
onRestore: () {},
|
onRestore: windowManager.restore,
|
||||||
|
showMaximizeButton: false,
|
||||||
),
|
),
|
||||||
windowsTheme: fluent.ThemeData(
|
windowsTheme: fluent.ThemeData(
|
||||||
scaffoldBackgroundColor: fluent.Colors.grey[50],
|
scaffoldBackgroundColor: fluent.Colors.grey[50],
|
||||||
|
|
|
||||||
|
|
@ -1,6 +1,7 @@
|
||||||
import 'package:flutter/gestures.dart';
|
import 'package:flutter/gestures.dart';
|
||||||
import 'package:flutter/material.dart';
|
import 'package:flutter/material.dart';
|
||||||
import 'package:platform_ui/platform_ui.dart';
|
import 'package:platform_ui/platform_ui.dart';
|
||||||
|
import 'package:quickgui/src/widgets/title_bar.dart';
|
||||||
import 'package:url_launcher/url_launcher.dart';
|
import 'package:url_launcher/url_launcher.dart';
|
||||||
|
|
||||||
class DebgetNotFoundPage extends StatelessWidget {
|
class DebgetNotFoundPage extends StatelessWidget {
|
||||||
|
|
@ -9,11 +10,8 @@ class DebgetNotFoundPage extends StatelessWidget {
|
||||||
@override
|
@override
|
||||||
Widget build(BuildContext context) {
|
Widget build(BuildContext context) {
|
||||||
return PlatformScaffold(
|
return PlatformScaffold(
|
||||||
appBar: PlatformAppBar(
|
appBar: TitleBar(
|
||||||
title: PlatformText.subheading('Quickgui'),
|
title: PlatformText.subheading('Quickgui'),
|
||||||
actions: const [
|
|
||||||
PlatformWindowButtons(),
|
|
||||||
],
|
|
||||||
automaticallyImplyLeading: false,
|
automaticallyImplyLeading: false,
|
||||||
),
|
),
|
||||||
body: Center(
|
body: Center(
|
||||||
|
|
|
||||||
|
|
@ -6,6 +6,7 @@ import 'package:desktop_notifications/desktop_notifications.dart';
|
||||||
import 'package:flutter/material.dart';
|
import 'package:flutter/material.dart';
|
||||||
import 'package:gettext_i18n/gettext_i18n.dart';
|
import 'package:gettext_i18n/gettext_i18n.dart';
|
||||||
import 'package:platform_ui/platform_ui.dart';
|
import 'package:platform_ui/platform_ui.dart';
|
||||||
|
import 'package:quickgui/src/widgets/title_bar.dart';
|
||||||
|
|
||||||
import '../model/operating_system.dart';
|
import '../model/operating_system.dart';
|
||||||
import '../model/option.dart';
|
import '../model/option.dart';
|
||||||
|
|
@ -130,8 +131,8 @@ class _DownloaderState extends State<Downloader> {
|
||||||
@override
|
@override
|
||||||
Widget build(BuildContext context) {
|
Widget build(BuildContext context) {
|
||||||
return PlatformScaffold(
|
return PlatformScaffold(
|
||||||
appBar: PlatformAppBar(
|
appBar: TitleBar(
|
||||||
title: PlatformText(
|
title: PlatformText.subheading(
|
||||||
context.t('Downloading {0}', args: [
|
context.t('Downloading {0}', args: [
|
||||||
'${widget.operatingSystem.name} ${widget.version.version}' +
|
'${widget.operatingSystem.name} ${widget.version.version}' +
|
||||||
(widget.option!.option.isNotEmpty
|
(widget.option!.option.isNotEmpty
|
||||||
|
|
@ -139,9 +140,6 @@ class _DownloaderState extends State<Downloader> {
|
||||||
: '')
|
: '')
|
||||||
]),
|
]),
|
||||||
),
|
),
|
||||||
actions: const [
|
|
||||||
PlatformWindowButtons(),
|
|
||||||
],
|
|
||||||
automaticallyImplyLeading: false,
|
automaticallyImplyLeading: false,
|
||||||
),
|
),
|
||||||
body: Center(
|
body: Center(
|
||||||
|
|
|
||||||
|
|
@ -1,6 +1,7 @@
|
||||||
import 'package:flutter/material.dart';
|
import 'package:flutter/material.dart';
|
||||||
import 'package:gettext_i18n/gettext_i18n.dart';
|
import 'package:gettext_i18n/gettext_i18n.dart';
|
||||||
import 'package:platform_ui/platform_ui.dart';
|
import 'package:platform_ui/platform_ui.dart';
|
||||||
|
import 'package:quickgui/src/widgets/title_bar.dart';
|
||||||
|
|
||||||
import '../widgets/home_page/downloader_menu.dart';
|
import '../widgets/home_page/downloader_menu.dart';
|
||||||
import '../widgets/home_page/logo.dart';
|
import '../widgets/home_page/logo.dart';
|
||||||
|
|
@ -11,11 +12,8 @@ class DownloaderPage extends StatelessWidget {
|
||||||
@override
|
@override
|
||||||
Widget build(BuildContext context) {
|
Widget build(BuildContext context) {
|
||||||
return PlatformScaffold(
|
return PlatformScaffold(
|
||||||
appBar: PlatformAppBar(
|
appBar: TitleBar(
|
||||||
title: PlatformText(context.t('Downloader')),
|
title: PlatformText.subheading(context.t('Downloader')),
|
||||||
actions: const [
|
|
||||||
PlatformWindowButtons(),
|
|
||||||
],
|
|
||||||
),
|
),
|
||||||
body: Column(
|
body: Column(
|
||||||
children: const [
|
children: const [
|
||||||
|
|
|
||||||
|
|
@ -1,6 +1,7 @@
|
||||||
import 'package:flutter/material.dart';
|
import 'package:flutter/material.dart';
|
||||||
import 'package:gettext_i18n/gettext_i18n.dart';
|
import 'package:gettext_i18n/gettext_i18n.dart';
|
||||||
import 'package:platform_ui/platform_ui.dart';
|
import 'package:platform_ui/platform_ui.dart';
|
||||||
|
import 'package:quickgui/src/widgets/title_bar.dart';
|
||||||
import 'package:window_size/window_size.dart';
|
import 'package:window_size/window_size.dart';
|
||||||
|
|
||||||
import '../widgets/home_page/logo.dart';
|
import '../widgets/home_page/logo.dart';
|
||||||
|
|
@ -25,7 +26,7 @@ class _MainPageState extends State<MainPage> {
|
||||||
@override
|
@override
|
||||||
Widget build(BuildContext context) {
|
Widget build(BuildContext context) {
|
||||||
return PlatformScaffold(
|
return PlatformScaffold(
|
||||||
appBar: PlatformAppBar(
|
appBar: TitleBar(
|
||||||
automaticallyImplyLeading: false,
|
automaticallyImplyLeading: false,
|
||||||
title: PlatformText.subheading(context.t('Quickgui')),
|
title: PlatformText.subheading(context.t('Quickgui')),
|
||||||
centerTitle: true,
|
centerTitle: true,
|
||||||
|
|
@ -41,7 +42,6 @@ class _MainPageState extends State<MainPage> {
|
||||||
);
|
);
|
||||||
},
|
},
|
||||||
),
|
),
|
||||||
const PlatformWindowButtons(),
|
|
||||||
],
|
],
|
||||||
),
|
),
|
||||||
body: Column(
|
body: Column(
|
||||||
|
|
|
||||||
|
|
@ -9,6 +9,7 @@ import 'package:flutter_svg/flutter_svg.dart';
|
||||||
import 'package:gettext_i18n/gettext_i18n.dart';
|
import 'package:gettext_i18n/gettext_i18n.dart';
|
||||||
import 'package:path/path.dart' as path;
|
import 'package:path/path.dart' as path;
|
||||||
import 'package:platform_ui/platform_ui.dart';
|
import 'package:platform_ui/platform_ui.dart';
|
||||||
|
import 'package:quickgui/src/widgets/title_bar.dart';
|
||||||
|
|
||||||
import '../globals.dart';
|
import '../globals.dart';
|
||||||
import '../mixins/preferences_mixin.dart';
|
import '../mixins/preferences_mixin.dart';
|
||||||
|
|
@ -529,11 +530,8 @@ class _ManagerState extends State<Manager> with PreferencesMixin {
|
||||||
@override
|
@override
|
||||||
Widget build(BuildContext context) {
|
Widget build(BuildContext context) {
|
||||||
return PlatformScaffold(
|
return PlatformScaffold(
|
||||||
appBar: PlatformAppBar(
|
appBar: TitleBar(
|
||||||
title: PlatformText(context.t('Manager')),
|
title: PlatformText.subheading(context.t('Manager')),
|
||||||
actions: const [
|
|
||||||
PlatformWindowButtons(),
|
|
||||||
],
|
|
||||||
),
|
),
|
||||||
body: _buildVmList(),
|
body: _buildVmList(),
|
||||||
);
|
);
|
||||||
|
|
|
||||||
|
|
@ -2,6 +2,7 @@ import 'package:flutter/material.dart';
|
||||||
import 'package:flutter_svg/svg.dart';
|
import 'package:flutter_svg/svg.dart';
|
||||||
import 'package:gettext_i18n/gettext_i18n.dart';
|
import 'package:gettext_i18n/gettext_i18n.dart';
|
||||||
import 'package:platform_ui/platform_ui.dart';
|
import 'package:platform_ui/platform_ui.dart';
|
||||||
|
import 'package:quickgui/src/widgets/title_bar.dart';
|
||||||
|
|
||||||
import '../model/operating_system.dart';
|
import '../model/operating_system.dart';
|
||||||
|
|
||||||
|
|
@ -29,11 +30,8 @@ class _OperatingSystemSelectionState extends State<OperatingSystemSelection> {
|
||||||
.where((os) => os.name.toLowerCase().contains(term.toLowerCase()))
|
.where((os) => os.name.toLowerCase().contains(term.toLowerCase()))
|
||||||
.toList();
|
.toList();
|
||||||
return PlatformScaffold(
|
return PlatformScaffold(
|
||||||
appBar: PlatformAppBar(
|
appBar: TitleBar(
|
||||||
title: PlatformText(context.t('Select operating system')),
|
title: PlatformText.subheading(context.t('Select operating system')),
|
||||||
actions: const [
|
|
||||||
PlatformWindowButtons(),
|
|
||||||
],
|
|
||||||
),
|
),
|
||||||
body: SingleChildScrollView(
|
body: SingleChildScrollView(
|
||||||
child: Column(
|
child: Column(
|
||||||
|
|
|
||||||
|
|
@ -1,6 +1,7 @@
|
||||||
import 'package:flutter/material.dart';
|
import 'package:flutter/material.dart';
|
||||||
import 'package:gettext_i18n/gettext_i18n.dart';
|
import 'package:gettext_i18n/gettext_i18n.dart';
|
||||||
import 'package:platform_ui/platform_ui.dart';
|
import 'package:platform_ui/platform_ui.dart';
|
||||||
|
import 'package:quickgui/src/widgets/title_bar.dart';
|
||||||
import 'package:tuple/tuple.dart';
|
import 'package:tuple/tuple.dart';
|
||||||
|
|
||||||
import '../model/operating_system.dart';
|
import '../model/operating_system.dart';
|
||||||
|
|
@ -36,14 +37,11 @@ class _VersionSelectionState extends State<VersionSelection> {
|
||||||
.toList();
|
.toList();
|
||||||
|
|
||||||
return PlatformScaffold(
|
return PlatformScaffold(
|
||||||
appBar: PlatformAppBar(
|
appBar: TitleBar(
|
||||||
title: PlatformText(
|
title: PlatformText.subheading(
|
||||||
context
|
context
|
||||||
.t('Select version for {0}', args: [widget.operatingSystem.name]),
|
.t('Select version for {0}', args: [widget.operatingSystem.name]),
|
||||||
),
|
),
|
||||||
actions: const [
|
|
||||||
PlatformWindowButtons(),
|
|
||||||
],
|
|
||||||
),
|
),
|
||||||
body: SingleChildScrollView(
|
body: SingleChildScrollView(
|
||||||
child: Column(
|
child: Column(
|
||||||
|
|
|
||||||
|
|
@ -1,4 +1,4 @@
|
||||||
import 'package:flutter/material.dart';
|
import 'package:flutter/cupertino.dart';
|
||||||
import 'package:gettext_i18n/gettext_i18n.dart';
|
import 'package:gettext_i18n/gettext_i18n.dart';
|
||||||
import 'package:platform_ui/platform_ui.dart';
|
import 'package:platform_ui/platform_ui.dart';
|
||||||
|
|
||||||
|
|
@ -19,11 +19,8 @@ class MainMenu extends StatelessWidget {
|
||||||
PlatformFilledButton(
|
PlatformFilledButton(
|
||||||
onPressed: () {
|
onPressed: () {
|
||||||
Navigator.of(context).push(
|
Navigator.of(context).push(
|
||||||
PageRouteBuilder(
|
CupertinoPageRoute(
|
||||||
fullscreenDialog: true,
|
builder: (context) => const Manager(),
|
||||||
pageBuilder: (context, animation1, animation2) =>
|
|
||||||
const Manager(),
|
|
||||||
transitionDuration: Duration.zero,
|
|
||||||
),
|
),
|
||||||
);
|
);
|
||||||
},
|
},
|
||||||
|
|
@ -34,11 +31,8 @@ class MainMenu extends StatelessWidget {
|
||||||
onPressed: () {
|
onPressed: () {
|
||||||
//Navigator.of(context).push(MaterialPageRoute(builder: (context) => const DownloaderPage()));
|
//Navigator.of(context).push(MaterialPageRoute(builder: (context) => const DownloaderPage()));
|
||||||
Navigator.of(context).push(
|
Navigator.of(context).push(
|
||||||
PageRouteBuilder(
|
CupertinoPageRoute(
|
||||||
fullscreenDialog: true,
|
builder: (context) => const DownloaderPage(),
|
||||||
pageBuilder: (context, animation1, animation2) =>
|
|
||||||
const DownloaderPage(),
|
|
||||||
transitionDuration: Duration.zero,
|
|
||||||
),
|
),
|
||||||
);
|
);
|
||||||
},
|
},
|
||||||
|
|
|
||||||
|
|
@ -3,6 +3,7 @@ import 'package:gettext_i18n/gettext_i18n.dart';
|
||||||
import 'package:platform_ui/platform_ui.dart';
|
import 'package:platform_ui/platform_ui.dart';
|
||||||
import 'package:provider/provider.dart';
|
import 'package:provider/provider.dart';
|
||||||
import 'package:quickgui/src/supported_locales.dart';
|
import 'package:quickgui/src/supported_locales.dart';
|
||||||
|
import 'package:quickgui/src/widgets/title_bar.dart';
|
||||||
|
|
||||||
import '../globals.dart';
|
import '../globals.dart';
|
||||||
import '../mixins/app_version.dart';
|
import '../mixins/app_version.dart';
|
||||||
|
|
@ -41,11 +42,8 @@ class _SettingsPageState extends State<SettingsPage> with PreferencesMixin {
|
||||||
Widget build(BuildContext context) {
|
Widget build(BuildContext context) {
|
||||||
var _version = AppVersion.packageInfo!.version;
|
var _version = AppVersion.packageInfo!.version;
|
||||||
return PlatformScaffold(
|
return PlatformScaffold(
|
||||||
appBar: PlatformAppBar(
|
appBar: TitleBar(
|
||||||
title: PlatformText(context.t('Settings')),
|
title: PlatformText.subheading(context.t('Settings')),
|
||||||
actions: const [
|
|
||||||
PlatformWindowButtons(),
|
|
||||||
],
|
|
||||||
),
|
),
|
||||||
body: Consumer<AppSettings>(
|
body: Consumer<AppSettings>(
|
||||||
builder: (context, appSettings, _) {
|
builder: (context, appSettings, _) {
|
||||||
|
|
|
||||||
|
|
@ -0,0 +1,33 @@
|
||||||
|
import 'package:flutter/material.dart';
|
||||||
|
import 'package:platform_ui/platform_ui.dart';
|
||||||
|
import 'package:window_manager/window_manager.dart';
|
||||||
|
|
||||||
|
class TitleBar extends PlatformAppBar {
|
||||||
|
TitleBar({
|
||||||
|
List<Widget>? actions,
|
||||||
|
super.backgroundColor,
|
||||||
|
super.centerTitle,
|
||||||
|
super.leading,
|
||||||
|
super.leadingWidth,
|
||||||
|
super.title,
|
||||||
|
super.titleSpacing,
|
||||||
|
super.toolbarOpacity,
|
||||||
|
super.toolbarTextStyle,
|
||||||
|
super.titleTextStyle,
|
||||||
|
super.actionsIconTheme,
|
||||||
|
super.automaticallyImplyLeading,
|
||||||
|
super.foregroundColor,
|
||||||
|
super.titleWidth,
|
||||||
|
super.key,
|
||||||
|
}) : super(
|
||||||
|
actions: [
|
||||||
|
...actions ?? [],
|
||||||
|
const PlatformWindowButtons(),
|
||||||
|
],
|
||||||
|
);
|
||||||
|
|
||||||
|
@override
|
||||||
|
Widget build(BuildContext context) {
|
||||||
|
return DragToMoveArea(child: super.build(context));
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
@ -6,13 +6,21 @@
|
||||||
|
|
||||||
#include "generated_plugin_registrant.h"
|
#include "generated_plugin_registrant.h"
|
||||||
|
|
||||||
|
#include <screen_retriever/screen_retriever_plugin.h>
|
||||||
#include <url_launcher_linux/url_launcher_plugin.h>
|
#include <url_launcher_linux/url_launcher_plugin.h>
|
||||||
|
#include <window_manager/window_manager_plugin.h>
|
||||||
#include <window_size/window_size_plugin.h>
|
#include <window_size/window_size_plugin.h>
|
||||||
|
|
||||||
void fl_register_plugins(FlPluginRegistry* registry) {
|
void fl_register_plugins(FlPluginRegistry* registry) {
|
||||||
|
g_autoptr(FlPluginRegistrar) screen_retriever_registrar =
|
||||||
|
fl_plugin_registry_get_registrar_for_plugin(registry, "ScreenRetrieverPlugin");
|
||||||
|
screen_retriever_plugin_register_with_registrar(screen_retriever_registrar);
|
||||||
g_autoptr(FlPluginRegistrar) url_launcher_linux_registrar =
|
g_autoptr(FlPluginRegistrar) url_launcher_linux_registrar =
|
||||||
fl_plugin_registry_get_registrar_for_plugin(registry, "UrlLauncherPlugin");
|
fl_plugin_registry_get_registrar_for_plugin(registry, "UrlLauncherPlugin");
|
||||||
url_launcher_plugin_register_with_registrar(url_launcher_linux_registrar);
|
url_launcher_plugin_register_with_registrar(url_launcher_linux_registrar);
|
||||||
|
g_autoptr(FlPluginRegistrar) window_manager_registrar =
|
||||||
|
fl_plugin_registry_get_registrar_for_plugin(registry, "WindowManagerPlugin");
|
||||||
|
window_manager_plugin_register_with_registrar(window_manager_registrar);
|
||||||
g_autoptr(FlPluginRegistrar) window_size_registrar =
|
g_autoptr(FlPluginRegistrar) window_size_registrar =
|
||||||
fl_plugin_registry_get_registrar_for_plugin(registry, "WindowSizePlugin");
|
fl_plugin_registry_get_registrar_for_plugin(registry, "WindowSizePlugin");
|
||||||
window_size_plugin_register_with_registrar(window_size_registrar);
|
window_size_plugin_register_with_registrar(window_size_registrar);
|
||||||
|
|
|
||||||
|
|
@ -3,7 +3,9 @@
|
||||||
#
|
#
|
||||||
|
|
||||||
list(APPEND FLUTTER_PLUGIN_LIST
|
list(APPEND FLUTTER_PLUGIN_LIST
|
||||||
|
screen_retriever
|
||||||
url_launcher_linux
|
url_launcher_linux
|
||||||
|
window_manager
|
||||||
window_size
|
window_size
|
||||||
)
|
)
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -48,7 +48,7 @@ static void my_application_activate(GApplication* application) {
|
||||||
}
|
}
|
||||||
|
|
||||||
gtk_window_set_default_size(window, 692, 580);
|
gtk_window_set_default_size(window, 692, 580);
|
||||||
gtk_widget_show(GTK_WIDGET(window));
|
gtk_widget_realize(GTK_WIDGET(window));
|
||||||
|
|
||||||
g_autoptr(FlDartProject) project = fl_dart_project_new();
|
g_autoptr(FlDartProject) project = fl_dart_project_new();
|
||||||
fl_dart_project_set_dart_entrypoint_arguments(project, self->dart_entrypoint_arguments);
|
fl_dart_project_set_dart_entrypoint_arguments(project, self->dart_entrypoint_arguments);
|
||||||
|
|
|
||||||
|
|
@ -4,7 +4,7 @@ publish_to: 'none' # Remove this line if you wish to publish to pub.dev
|
||||||
version: 1.2.8-1
|
version: 1.2.8-1
|
||||||
|
|
||||||
environment:
|
environment:
|
||||||
sdk: ">=2.14.4 <3.0.0"
|
sdk: ">=2.17.0 <3.0.0"
|
||||||
|
|
||||||
dependencies:
|
dependencies:
|
||||||
flutter:
|
flutter:
|
||||||
|
|
@ -30,11 +30,14 @@ dependencies:
|
||||||
flutter_svg: ^1.1.6
|
flutter_svg: ^1.1.6
|
||||||
gettext_i18n: ^1.0.2
|
gettext_i18n: ^1.0.2
|
||||||
url_launcher: ^6.1.6
|
url_launcher: ^6.1.6
|
||||||
platform_ui: ^0.1.0
|
platform_ui:
|
||||||
|
git:
|
||||||
|
url: https://github.com/KRTirtho/platform_ui.git
|
||||||
fluent_ui: ^4.1.2
|
fluent_ui: ^4.1.2
|
||||||
macos_ui: ^1.7.5
|
macos_ui: ^1.7.5
|
||||||
libadwaita: ^1.2.5
|
libadwaita: ^1.2.5
|
||||||
adwaita: ^0.5.2
|
adwaita: ^0.5.2
|
||||||
|
window_manager: ^0.2.8
|
||||||
|
|
||||||
dev_dependencies:
|
dev_dependencies:
|
||||||
flutter_test:
|
flutter_test:
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue