feat: add dde_button widget.

This commit is contained in:
2021-09-28 18:35:35 +08:00
parent 92a2e4c365
commit bba3b5d3d1
14 changed files with 243 additions and 89 deletions
+54
View File
@@ -0,0 +1,54 @@
import 'package:dde_gesture_manager/constants/constants.dart';
import 'package:flutter/material.dart';
import 'package:glass_kit/glass_kit.dart';
class DButton extends StatefulWidget {
final double width;
final double height;
final Widget child;
final GestureTapCallback? onTap;
const DButton({
Key? key,
required this.width,
this.height = defaultButtonHeight,
required this.child,
this.onTap,
}) : super(key: key);
@override
State<DButton> createState() => _DButtonState();
}
class _DButtonState extends State<DButton> {
bool _hovering = false;
@override
Widget build(BuildContext context) {
return GestureDetector(
onTap: widget.onTap,
child: GlassContainer(
width: widget.width,
height: widget.height,
gradient: LinearGradient(
colors: [Colors.white.withOpacity(_hovering ? 0.1 : 0.15), Colors.white.withOpacity(0.1)],
begin: Alignment.topCenter,
end: Alignment.bottomCenter,
),
borderColor: Color(0xff565656),
borderWidth: 1,
borderRadius: BorderRadius.circular(defaultBorderRadius),
child: MouseRegion(
onEnter: (event) => setState(() {
_hovering = true;
}),
onExit: (event) => setState(() {
_hovering = false;
}),
cursor: SystemMouseCursors.click,
child: Center(child: widget.child),
),
),
);
}
}
+28
View File
@@ -0,0 +1,28 @@
import 'package:dde_gesture_manager/extensions.dart';
import 'package:flutter/material.dart';
class HelpButton extends StatelessWidget {
const HelpButton({Key? key}) : super(key: key);
@override
Widget build(BuildContext context) {
return GestureDetector(
onTap: () {},
child: MouseRegion(
cursor: SystemMouseCursors.click,
child: Tooltip(
message: LocaleKeys.help_tip.tr(),
child: Row(
children: [
Icon(Icons.help_outline, size: 20),
Padding(
padding: const EdgeInsets.symmetric(horizontal: 3),
child: Text(LocaleKeys.help_label).tr(),
),
],
),
),
),
);
}
}
+2 -1
View File
@@ -1,3 +1,4 @@
import 'package:collection/collection.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';
@@ -6,7 +7,6 @@ import 'package:dde_gesture_manager/utils/helper.dart';
import 'package:flutter/cupertino.dart';
import 'package:flutter/foundation.dart';
import 'package:flutter/material.dart';
import 'package:collection/collection.dart';
import 'package:window_manager/window_manager.dart';
class LanguageSwitcher extends StatelessWidget {
@@ -18,6 +18,7 @@ class LanguageSwitcher extends StatelessWidget {
var _supportedLocale = supportedLocales.firstWhereOrNull((element) => element == _locale);
return PopupMenuButton<SupportedLocale>(
tooltip: LocaleKeys.language_tip.tr(),
child: Row(
children: [
Icon(Icons.language_outlined, size: 20),
+2 -2
View File
@@ -1,9 +1,9 @@
import 'package:dde_gesture_manager/extensions.dart';
import 'package:dde_gesture_manager/generated/locale_keys.g.dart';
import 'package:dde_gesture_manager/models/configs.dart';
import 'package:dde_gesture_manager/models/configs.provider.dart';
import 'package:flutter/cupertino.dart';
import 'package:flutter/material.dart';
import 'package:dde_gesture_manager/extensions.dart';
class ThemeSwitcher extends StatelessWidget {
const ThemeSwitcher({Key? key}) : super(key: key);
@@ -23,7 +23,7 @@ class ThemeSwitcher extends StatelessWidget {
],
),
padding: EdgeInsets.zero,
tooltip: LocaleKeys.theme_label.tr(),
tooltip: LocaleKeys.theme_tip.tr(),
itemBuilder: (BuildContext context) => [
PopupMenuItem<BrightnessMode>(
child: ListTile(