From 5e777e97bcc9ef54831f4ad4083b923111ffca12 Mon Sep 17 00:00:00 2001 From: debuggerx Date: Fri, 24 Sep 2021 19:21:21 +0800 Subject: [PATCH 01/13] wip: drawer. --- app/lib/models/content_layout.dart | 10 ++++++++ app/lib/pages/content.dart | 33 ++++++++++++++++++++++++ app/lib/{widgets => pages}/footer.dart | 0 app/lib/pages/gesture_editor.dart | 15 +++++++++++ app/lib/pages/home.dart | 10 +++----- app/lib/pages/local_manager.dart | 46 ++++++++++++++++++++++++++++++++++ app/lib/pages/market.dart | 12 +++++++++ 7 files changed, 120 insertions(+), 6 deletions(-) create mode 100644 app/lib/models/content_layout.dart create mode 100644 app/lib/pages/content.dart rename app/lib/{widgets => pages}/footer.dart (100%) create mode 100644 app/lib/pages/gesture_editor.dart create mode 100644 app/lib/pages/local_manager.dart create mode 100644 app/lib/pages/market.dart diff --git a/app/lib/models/content_layout.dart b/app/lib/models/content_layout.dart new file mode 100644 index 0000000..4e11242 --- /dev/null +++ b/app/lib/models/content_layout.dart @@ -0,0 +1,10 @@ +import 'package:dde_gesture_manager/builder/provider_annotation.dart'; + +@ProviderModel() +class ContentLayout { + @ProviderModelProp() + bool? localManagerOpened; + + @ProviderModelProp() + bool? marketOpened; +} diff --git a/app/lib/pages/content.dart b/app/lib/pages/content.dart new file mode 100644 index 0000000..6eb14ac --- /dev/null +++ b/app/lib/pages/content.dart @@ -0,0 +1,33 @@ +import 'package:dde_gesture_manager/extensions.dart'; +import 'package:dde_gesture_manager/pages/gesture_editor.dart'; +import 'package:dde_gesture_manager/pages/local_manager.dart'; +import 'package:dde_gesture_manager/pages/market.dart'; +import 'package:flutter/material.dart'; +import 'package:dde_gesture_manager/models/content_layout.provider.dart'; + +class Content extends StatefulWidget { + const Content({Key? key}) : super(key: key); + + @override + _ContentState createState() => _ContentState(); +} + +class _ContentState extends State { + @override + Widget build(BuildContext context) { + return ChangeNotifierProvider( + create: (context) => ContentLayoutProvider() + ..localManagerOpened = true + ..marketOpened = true, + builder: (context, child) => Row( + mainAxisSize: MainAxisSize.max, + mainAxisAlignment: MainAxisAlignment.spaceBetween, + children: [ + LocalManager(), + GestureEditor(), + Market(), + ], + ), + ); + } +} diff --git a/app/lib/widgets/footer.dart b/app/lib/pages/footer.dart similarity index 100% rename from app/lib/widgets/footer.dart rename to app/lib/pages/footer.dart diff --git a/app/lib/pages/gesture_editor.dart b/app/lib/pages/gesture_editor.dart new file mode 100644 index 0000000..ac8691c --- /dev/null +++ b/app/lib/pages/gesture_editor.dart @@ -0,0 +1,15 @@ +import 'package:flutter/material.dart'; + +class GestureEditor extends StatelessWidget { + const GestureEditor({Key? key}) : super(key: key); + + @override + Widget build(BuildContext context) { + return Container( + color: Colors.black45, + child: Column( + children: [], + ), + ); + } +} diff --git a/app/lib/pages/home.dart b/app/lib/pages/home.dart index d24aa85..f1c3a4a 100644 --- a/app/lib/pages/home.dart +++ b/app/lib/pages/home.dart @@ -1,4 +1,5 @@ -import 'package:dde_gesture_manager/widgets/footer.dart'; +import 'package:dde_gesture_manager/pages/content.dart'; +import 'package:dde_gesture_manager/pages/footer.dart'; import 'package:flutter/material.dart'; class HomePage extends StatefulWidget { @@ -16,11 +17,8 @@ class _HomePageState extends State { mainAxisSize: MainAxisSize.max, mainAxisAlignment: MainAxisAlignment.spaceBetween, children: [ - Row( - mainAxisSize: MainAxisSize.max, - children: [ - Text('WIP'), - ], + Flexible( + child: Content(), ), SizedBox( height: 36, diff --git a/app/lib/pages/local_manager.dart b/app/lib/pages/local_manager.dart new file mode 100644 index 0000000..824162b --- /dev/null +++ b/app/lib/pages/local_manager.dart @@ -0,0 +1,46 @@ +import 'package:dde_gesture_manager/models/content_layout.provider.dart'; +import 'package:flutter/animation.dart'; +import 'package:flutter/cupertino.dart'; +import 'package:flutter/material.dart'; +import 'package:dde_gesture_manager/extensions.dart'; + +class LocalManager extends StatelessWidget { + const LocalManager({ + Key? key, + }) : super(key: key); + + @override + Widget build(BuildContext context) { + var isOpen = context.watch().localManagerOpened == true; + isOpen.sout(); + return AnimatedContainer( + duration: Duration(milliseconds: 300), + curve: Curves.easeInOut, + color: context.t.backgroundColor, + width: isOpen ? 200 : 36, + child: Column( + children: [ + OverflowBox( + child: SizedBox( + width: 200, + child: Row( + mainAxisAlignment: MainAxisAlignment.spaceBetween, + children: [ + Flexible( + child: Text("本地配置"), + ), + IconButton( + onPressed: () => context.read().setProps(localManagerOpened: !isOpen), + icon: Icon( + isOpen ? CupertinoIcons.chevron_left_2 : CupertinoIcons.chevron_right_2, + ), + ), + ], + ), + ), + ), + ], + ), + ); + } +} diff --git a/app/lib/pages/market.dart b/app/lib/pages/market.dart new file mode 100644 index 0000000..11ad12e --- /dev/null +++ b/app/lib/pages/market.dart @@ -0,0 +1,12 @@ +import 'package:flutter/material.dart'; + +class Market extends StatelessWidget { + const Market({ + Key? key, + }) : super(key: key); + + @override + Widget build(BuildContext context) { + return Container(); + } +} From d0bd2af9b5101450b69f78c415e2714d8f226975 Mon Sep 17 00:00:00 2001 From: debuggerx Date: Fri, 24 Sep 2021 23:36:18 +0800 Subject: [PATCH 02/13] wip: drawer. --- app/lib/pages/local_manager.dart | 29 +++++++++++++++++++---------- 1 file changed, 19 insertions(+), 10 deletions(-) diff --git a/app/lib/pages/local_manager.dart b/app/lib/pages/local_manager.dart index 824162b..ac02a8c 100644 --- a/app/lib/pages/local_manager.dart +++ b/app/lib/pages/local_manager.dart @@ -16,18 +16,27 @@ class LocalManager extends StatelessWidget { return AnimatedContainer( duration: Duration(milliseconds: 300), curve: Curves.easeInOut, - color: context.t.backgroundColor, width: isOpen ? 200 : 36, - child: Column( - children: [ - OverflowBox( - child: SizedBox( - width: 200, - child: Row( + child: OverflowBox( + alignment: Alignment.centerRight, + maxWidth: 200, + minWidth: 200, + child: Material( + color: context.t.backgroundColor, + elevation: 20, + child: Column( + mainAxisAlignment: MainAxisAlignment.start, + children: [ + Row( mainAxisAlignment: MainAxisAlignment.spaceBetween, children: [ Flexible( - child: Text("本地配置"), + child: Center( + child: Text( + "本地配置", + textAlign: TextAlign.center, + ), + ), ), IconButton( onPressed: () => context.read().setProps(localManagerOpened: !isOpen), @@ -37,9 +46,9 @@ class LocalManager extends StatelessWidget { ), ], ), - ), + ], ), - ], + ), ), ); } From fdba64e748c1c2a78cb6f0927b9b46a156bf5f9c Mon Sep 17 00:00:00 2001 From: debuggerx Date: Sun, 26 Sep 2021 20:47:01 +0800 Subject: [PATCH 03/13] feat: responsive layout. --- app/lib/constants/constants.dart | 18 ++++++++++++++ app/lib/main.dart | 1 + app/lib/pages/content.dart | 42 ++++++++++++++++++++++---------- app/lib/pages/gesture_editor.dart | 50 +++++++++++++++++++++++++++++++++++---- app/lib/pages/local_manager.dart | 17 ++++++------- app/lib/pages/market.dart | 44 +++++++++++++++++++++++++++++++++- app/lib/utils/helper.dart | 48 +++++++++++++++++++++++++++++++++++++ app/lib/utils/init_linux.dart | 3 ++- 8 files changed, 197 insertions(+), 26 deletions(-) create mode 100644 app/lib/constants/constants.dart diff --git a/app/lib/constants/constants.dart b/app/lib/constants/constants.dart new file mode 100644 index 0000000..30e9c29 --- /dev/null +++ b/app/lib/constants/constants.dart @@ -0,0 +1,18 @@ +import 'package:flutter/cupertino.dart'; + +const double localManagerPanelWidth = 200; + +const double marketPanelWidth = 200; + +const shortDuration = const Duration(milliseconds: 100); + +const mediumDuration = const Duration(milliseconds: 300); + +const longDuration = const Duration(milliseconds: 500); + +const minWindowSize = const Size(800, 600); + +enum PanelType { + local_manager, + market, +} \ No newline at end of file diff --git a/app/lib/main.dart b/app/lib/main.dart index 702852e..0e634e1 100644 --- a/app/lib/main.dart +++ b/app/lib/main.dart @@ -54,6 +54,7 @@ class MyApp extends StatelessWidget { localizationsDelegates: context.localizationDelegates, supportedLocales: context.supportedLocales, locale: context.locale, + debugShowCheckedModeBanner: false, home: AnimatedCrossFade( crossFadeState: isDarkMode != null ? CrossFadeState.showSecond : CrossFadeState.showFirst, alignment: Alignment.center, diff --git a/app/lib/pages/content.dart b/app/lib/pages/content.dart index 6eb14ac..daa897f 100644 --- a/app/lib/pages/content.dart +++ b/app/lib/pages/content.dart @@ -4,6 +4,7 @@ import 'package:dde_gesture_manager/pages/local_manager.dart'; import 'package:dde_gesture_manager/pages/market.dart'; import 'package:flutter/material.dart'; import 'package:dde_gesture_manager/models/content_layout.provider.dart'; +import 'package:dde_gesture_manager/utils/helper.dart'; class Content extends StatefulWidget { const Content({Key? key}) : super(key: key); @@ -13,21 +14,38 @@ class Content extends StatefulWidget { } class _ContentState extends State { + double? preWindowWidth; + @override Widget build(BuildContext context) { - return ChangeNotifierProvider( + var windowWidth = MediaQuery.of(context).size.width; + var preferredPanelsStatus = H.getPreferredPanelsStatus(windowWidth); + var widthChanged = preWindowWidth != null && preWindowWidth != windowWidth; + var widget = ChangeNotifierProvider( create: (context) => ContentLayoutProvider() - ..localManagerOpened = true - ..marketOpened = true, - builder: (context, child) => Row( - mainAxisSize: MainAxisSize.max, - mainAxisAlignment: MainAxisAlignment.spaceBetween, - children: [ - LocalManager(), - GestureEditor(), - Market(), - ], - ), + ..localManagerOpened = preferredPanelsStatus.localManagerPanelOpened + ..marketOpened = preferredPanelsStatus.marketPanelOpened, + builder: (context, child) { + if (widthChanged && mounted) { + Future.microtask( + () => context.read().setProps( + localManagerOpened: preferredPanelsStatus.localManagerPanelOpened, + marketOpened: preferredPanelsStatus.marketPanelOpened, + ), + ); + } + return Row( + mainAxisSize: MainAxisSize.max, + mainAxisAlignment: MainAxisAlignment.spaceBetween, + children: [ + LocalManager(), + GestureEditor(), + Market(), + ], + ); + }, ); + preWindowWidth = windowWidth; + return widget; } } diff --git a/app/lib/pages/gesture_editor.dart b/app/lib/pages/gesture_editor.dart index ac8691c..54407a8 100644 --- a/app/lib/pages/gesture_editor.dart +++ b/app/lib/pages/gesture_editor.dart @@ -1,14 +1,56 @@ +import 'package:dde_gesture_manager/constants/constants.dart'; +import 'package:dde_gesture_manager/models/content_layout.provider.dart'; +import 'package:dde_gesture_manager/utils/helper.dart'; +import 'package:flutter/cupertino.dart'; import 'package:flutter/material.dart'; +import 'package:dde_gesture_manager/extensions.dart'; class GestureEditor extends StatelessWidget { const GestureEditor({Key? key}) : super(key: key); @override Widget build(BuildContext context) { - return Container( - color: Colors.black45, - child: Column( - children: [], + var layoutProvider = context.watch(); + return Flexible( + child: Container( + color: Colors.black45, + child: Column( + mainAxisAlignment: MainAxisAlignment.spaceBetween, + children: [ + Row( + mainAxisAlignment: MainAxisAlignment.spaceBetween, + children: [ + Visibility( + visible: layoutProvider.localManagerOpened == false, + child: IconButton( + onPressed: () => H.openPanel(context, PanelType.local_manager), + icon: Icon( + CupertinoIcons.square_list, + ), + ), + ), + Visibility( + visible: layoutProvider.marketOpened == false, + child: IconButton( + onPressed: () => H.openPanel(context, PanelType.market), + icon: Icon( + CupertinoIcons.cart, + ), + ), + ), + ], + ), + Container( + child: Row( + mainAxisAlignment: MainAxisAlignment.spaceBetween, + children: [ + Text("<编辑器区域"), + Text("编辑器区域>"), + ], + ), + ), + ], + ), ), ); } diff --git a/app/lib/pages/local_manager.dart b/app/lib/pages/local_manager.dart index ac02a8c..c5ced46 100644 --- a/app/lib/pages/local_manager.dart +++ b/app/lib/pages/local_manager.dart @@ -3,6 +3,7 @@ import 'package:flutter/animation.dart'; import 'package:flutter/cupertino.dart'; import 'package:flutter/material.dart'; import 'package:dde_gesture_manager/extensions.dart'; +import 'package:dde_gesture_manager/constants/constants.dart'; class LocalManager extends StatelessWidget { const LocalManager({ @@ -12,18 +13,18 @@ class LocalManager extends StatelessWidget { @override Widget build(BuildContext context) { var isOpen = context.watch().localManagerOpened == true; - isOpen.sout(); return AnimatedContainer( - duration: Duration(milliseconds: 300), + duration: mediumDuration, curve: Curves.easeInOut, - width: isOpen ? 200 : 36, + width: isOpen ? localManagerPanelWidth : 0, child: OverflowBox( alignment: Alignment.centerRight, - maxWidth: 200, - minWidth: 200, + maxWidth: localManagerPanelWidth, + minWidth: localManagerPanelWidth, child: Material( - color: context.t.backgroundColor, - elevation: 20, + // color: context.t.backgroundColor, + color: Colors.deepPurple, + elevation: isOpen ? 20 : 0, child: Column( mainAxisAlignment: MainAxisAlignment.start, children: [ @@ -41,7 +42,7 @@ class LocalManager extends StatelessWidget { IconButton( onPressed: () => context.read().setProps(localManagerOpened: !isOpen), icon: Icon( - isOpen ? CupertinoIcons.chevron_left_2 : CupertinoIcons.chevron_right_2, + CupertinoIcons.chevron_left_2, ), ), ], diff --git a/app/lib/pages/market.dart b/app/lib/pages/market.dart index 11ad12e..061e3b5 100644 --- a/app/lib/pages/market.dart +++ b/app/lib/pages/market.dart @@ -1,4 +1,8 @@ +import 'package:dde_gesture_manager/constants/constants.dart'; +import 'package:dde_gesture_manager/models/content_layout.provider.dart'; +import 'package:flutter/cupertino.dart'; import 'package:flutter/material.dart'; +import 'package:dde_gesture_manager/extensions.dart'; class Market extends StatelessWidget { const Market({ @@ -7,6 +11,44 @@ class Market extends StatelessWidget { @override Widget build(BuildContext context) { - return Container(); + var isOpen = context.watch().marketOpened == true; + return AnimatedContainer( + duration: mediumDuration, + curve: Curves.easeInOut, + width: isOpen ? marketPanelWidth : 0, + child: OverflowBox( + alignment: Alignment.centerLeft, + maxWidth: marketPanelWidth, + minWidth: marketPanelWidth, + child: Material( + color: Colors.deepPurpleAccent, + elevation: isOpen ? 20 : 0, + child: Column( + mainAxisAlignment: MainAxisAlignment.start, + children: [ + Row( + mainAxisAlignment: MainAxisAlignment.spaceBetween, + children: [ + IconButton( + onPressed: () => context.read().setProps(marketOpened: !isOpen), + icon: Icon( + CupertinoIcons.chevron_right_2, + ), + ), + Flexible( + child: Center( + child: Text( + "配置市场", + textAlign: TextAlign.center, + ), + ), + ), + ], + ), + ], + ), + ), + ), + ); } } diff --git a/app/lib/utils/helper.dart b/app/lib/utils/helper.dart index f306e6a..0e67a88 100644 --- a/app/lib/utils/helper.dart +++ b/app/lib/utils/helper.dart @@ -1,4 +1,8 @@ +import 'package:dde_gesture_manager/models/content_layout.provider.dart'; +import 'package:flutter/cupertino.dart'; import 'package:shared_preferences/shared_preferences.dart'; +import 'package:dde_gesture_manager/constants/constants.dart'; +import 'package:dde_gesture_manager/extensions.dart'; class H { H._(); @@ -14,4 +18,48 @@ class H { initSharedPreference() async { _sp = await SharedPreferences.getInstance(); } + + static void openPanel(BuildContext context, PanelType panelType) { + var windowWidth = MediaQuery.of(context).size.width; + if (windowWidth < minWindowSize.width + localManagerPanelWidth + marketPanelWidth) { + context.read().setProps( + localManagerOpened: panelType == PanelType.local_manager, + marketOpened: panelType == PanelType.market, + ); + } else { + switch (panelType) { + case PanelType.local_manager: + return context.read().setProps(localManagerOpened: true); + case PanelType.market: + return context.read().setProps(marketOpened: true); + } + } + } + + static PreferredPanelsStatus getPreferredPanelsStatus(double windowWidth) { + var preferredPanelsStatus = PreferredPanelsStatus(localManagerPanelOpened: true, marketPanelOpened: true); + if (windowWidth > minWindowSize.width + localManagerPanelWidth + marketPanelWidth) + return preferredPanelsStatus; + else if (windowWidth < minWindowSize.width + localManagerPanelWidth) + return preferredPanelsStatus + ..marketPanelOpened = false + ..localManagerPanelOpened = false; + else + return preferredPanelsStatus..marketPanelOpened = false; + } +} + +class PreferredPanelsStatus { + bool localManagerPanelOpened; + bool marketPanelOpened; + + PreferredPanelsStatus({ + required this.localManagerPanelOpened, + required this.marketPanelOpened, + }); + + @override + String toString() { + return 'PreferredPanelsStatus{localManagerPanelOpened: $localManagerPanelOpened, marketPanelOpened: $marketPanelOpened}'; + } } diff --git a/app/lib/utils/init_linux.dart b/app/lib/utils/init_linux.dart index e11a845..ca8faa7 100644 --- a/app/lib/utils/init_linux.dart +++ b/app/lib/utils/init_linux.dart @@ -1,3 +1,4 @@ +import 'package:dde_gesture_manager/constants/constants.dart'; import 'package:dde_gesture_manager/constants/sp_keys.dart'; import 'package:dde_gesture_manager/constants/supported_locales.dart'; import 'package:dde_gesture_manager/extensions.dart'; @@ -40,7 +41,7 @@ Future initConfigs() async { var userLanguageIndex = H().sp.getInt(SPKeys.userLanguage) ?? 0; var locale = supportedLocales[userLanguageIndex]; windowManager.setTitle(CodegenLoader.mapLocales[locale.toString()]?[LocaleKeys.app_name]); - windowManager.setMinimumSize(const Size(800, 600)); + windowManager.setMinimumSize(minWindowSize); } var windowManager = WindowManager.instance; From 92a2e4c365f79ad76ebf058f85ef572ea9b939b4 Mon Sep 17 00:00:00 2001 From: debuggerx Date: Mon, 27 Sep 2021 00:14:48 +0800 Subject: [PATCH 04/13] feat: update theme colors. --- app/lib/pages/gesture_editor.dart | 70 +++++++++++++++++++++------------------ app/lib/pages/local_manager.dart | 5 ++- app/lib/pages/market.dart | 4 +-- app/lib/themes/dark.dart | 2 ++ app/lib/themes/light.dart | 4 ++- 5 files changed, 47 insertions(+), 38 deletions(-) diff --git a/app/lib/pages/gesture_editor.dart b/app/lib/pages/gesture_editor.dart index 54407a8..f5ae806 100644 --- a/app/lib/pages/gesture_editor.dart +++ b/app/lib/pages/gesture_editor.dart @@ -12,44 +12,50 @@ class GestureEditor extends StatelessWidget { Widget build(BuildContext context) { var layoutProvider = context.watch(); return Flexible( - child: Container( - color: Colors.black45, - child: Column( - mainAxisAlignment: MainAxisAlignment.spaceBetween, - children: [ - Row( - mainAxisAlignment: MainAxisAlignment.spaceBetween, - children: [ - Visibility( - visible: layoutProvider.localManagerOpened == false, - child: IconButton( - onPressed: () => H.openPanel(context, PanelType.local_manager), - icon: Icon( - CupertinoIcons.square_list, + child: Padding( + padding: const EdgeInsets.all(10), + child: Container( + decoration: BoxDecoration( + color: context.t.backgroundColor, + borderRadius: BorderRadius.circular(10), + ), + child: Column( + mainAxisAlignment: MainAxisAlignment.spaceBetween, + children: [ + Row( + mainAxisAlignment: MainAxisAlignment.spaceBetween, + children: [ + Visibility( + visible: layoutProvider.localManagerOpened == false, + child: IconButton( + onPressed: () => H.openPanel(context, PanelType.local_manager), + icon: Icon( + CupertinoIcons.square_list, + ), ), ), - ), - Visibility( - visible: layoutProvider.marketOpened == false, - child: IconButton( - onPressed: () => H.openPanel(context, PanelType.market), - icon: Icon( - CupertinoIcons.cart, + Visibility( + visible: layoutProvider.marketOpened == false, + child: IconButton( + onPressed: () => H.openPanel(context, PanelType.market), + icon: Icon( + CupertinoIcons.cart, + ), ), ), - ), - ], - ), - Container( - child: Row( - mainAxisAlignment: MainAxisAlignment.spaceBetween, - children: [ - Text("<编辑器区域"), - Text("编辑器区域>"), ], ), - ), - ], + Container( + child: Row( + mainAxisAlignment: MainAxisAlignment.spaceBetween, + children: [ + Text("<编辑器区域"), + Text("编辑器区域>"), + ], + ), + ), + ], + ), ), ), ); diff --git a/app/lib/pages/local_manager.dart b/app/lib/pages/local_manager.dart index c5ced46..78f4b85 100644 --- a/app/lib/pages/local_manager.dart +++ b/app/lib/pages/local_manager.dart @@ -22,9 +22,8 @@ class LocalManager extends StatelessWidget { maxWidth: localManagerPanelWidth, minWidth: localManagerPanelWidth, child: Material( - // color: context.t.backgroundColor, - color: Colors.deepPurple, - elevation: isOpen ? 20 : 0, + color: context.t.backgroundColor, + elevation: isOpen ? 10 : 0, child: Column( mainAxisAlignment: MainAxisAlignment.start, children: [ diff --git a/app/lib/pages/market.dart b/app/lib/pages/market.dart index 061e3b5..16fc90c 100644 --- a/app/lib/pages/market.dart +++ b/app/lib/pages/market.dart @@ -21,8 +21,8 @@ class Market extends StatelessWidget { maxWidth: marketPanelWidth, minWidth: marketPanelWidth, child: Material( - color: Colors.deepPurpleAccent, - elevation: isOpen ? 20 : 0, + color: context.t.backgroundColor, + elevation: isOpen ? 10 : 0, child: Column( mainAxisAlignment: MainAxisAlignment.start, children: [ diff --git a/app/lib/themes/dark.dart b/app/lib/themes/dark.dart index c7d3266..39f81d5 100644 --- a/app/lib/themes/dark.dart +++ b/app/lib/themes/dark.dart @@ -2,4 +2,6 @@ import 'package:flutter/material.dart'; var darkTheme = ThemeData.dark().copyWith( primaryColor: Colors.grey, + scaffoldBackgroundColor: Color(0xff252525), + backgroundColor: Color(0xff282828), ); diff --git a/app/lib/themes/light.dart b/app/lib/themes/light.dart index 4939083..a10c4b4 100644 --- a/app/lib/themes/light.dart +++ b/app/lib/themes/light.dart @@ -2,4 +2,6 @@ import 'package:flutter/material.dart'; var lightTheme = ThemeData.light().copyWith( primaryColor: Colors.blue, -); \ No newline at end of file + scaffoldBackgroundColor: Color(0xfff8f8f8), + backgroundColor: Color(0xffffffff), +); From bba3b5d3d10d94e638b77059216ae0caf28fe14b Mon Sep 17 00:00:00 2001 From: debuggerx Date: Tue, 28 Sep 2021 18:35:35 +0800 Subject: [PATCH 05/13] feat: add dde_button widget. --- app/lib/constants/constants.dart | 12 ++++-- app/lib/pages/footer.dart | 5 ++- app/lib/pages/gesture_editor.dart | 68 ++++++++++++++++++---------------- app/lib/pages/local_manager.dart | 56 +++++++++++++++++----------- app/lib/pages/market.dart | 53 +++++++++++++++----------- app/lib/themes/dark.dart | 11 ++++++ app/lib/themes/light.dart | 11 ++++++ app/lib/widgets/dde_button.dart | 54 +++++++++++++++++++++++++++ app/lib/widgets/help_button.dart | 28 ++++++++++++++ app/lib/widgets/language_switcher.dart | 3 +- app/lib/widgets/theme_switcher.dart | 4 +- app/pubspec.yaml | 1 + app/resources/langs/en.json | 10 ++++- app/resources/langs/zh-CN.json | 10 ++++- 14 files changed, 240 insertions(+), 86 deletions(-) create mode 100644 app/lib/widgets/dde_button.dart create mode 100644 app/lib/widgets/help_button.dart diff --git a/app/lib/constants/constants.dart b/app/lib/constants/constants.dart index 30e9c29..f55a401 100644 --- a/app/lib/constants/constants.dart +++ b/app/lib/constants/constants.dart @@ -1,8 +1,10 @@ import 'package:flutter/cupertino.dart'; -const double localManagerPanelWidth = 200; +/// [UOS设计指南](https://docs.uniontech.com/zh/content/t_dbG3kBK9iDf9B963ok) -const double marketPanelWidth = 200; +const double localManagerPanelWidth = 260; + +const double marketPanelWidth = 300; const shortDuration = const Duration(milliseconds: 100); @@ -12,7 +14,11 @@ const longDuration = const Duration(milliseconds: 500); const minWindowSize = const Size(800, 600); +const double defaultBorderRadius = 8; + +const double defaultButtonHeight = 36; + enum PanelType { local_manager, market, -} \ No newline at end of file +} diff --git a/app/lib/pages/footer.dart b/app/lib/pages/footer.dart index 38a1f95..a4eaaf3 100644 --- a/app/lib/pages/footer.dart +++ b/app/lib/pages/footer.dart @@ -1,4 +1,5 @@ import 'package:dde_gesture_manager/extensions.dart'; +import 'package:dde_gesture_manager/widgets/help_button.dart'; import 'package:dde_gesture_manager/widgets/language_switcher.dart'; import 'package:dde_gesture_manager/widgets/theme_switcher.dart'; import 'package:dde_gesture_manager/widgets/version_checker.dart'; @@ -27,9 +28,9 @@ class _FooterState extends State