feat, mouse wheel and touchpad scroll mode, default or reverse

Signed-off-by: fufesou <shuanglongchen@yeah.net>
This commit is contained in:
fufesou
2023-09-10 14:14:57 +08:00
parent 405363da59
commit eb0a0662a3
7 changed files with 217 additions and 58 deletions

View File

@@ -105,6 +105,7 @@ class _DesktopSettingPageState extends State<DesktopSettingPage>
_TabInfo('Network', Icons.link_outlined, Icons.link),
_TabInfo(
'Display', Icons.desktop_windows_outlined, Icons.desktop_windows),
_TabInfo('Input', Icons.keyboard_outlined, Icons.keyboard),
_TabInfo('Account', Icons.person_outline, Icons.person),
_TabInfo('About', Icons.info_outline, Icons.info)
];
@@ -121,6 +122,7 @@ class _DesktopSettingPageState extends State<DesktopSettingPage>
_Safety(),
_Network(),
_Display(),
_Input(),
_Account(),
_About(),
];
@@ -1220,6 +1222,50 @@ class _DisplayState extends State<_Display> {
}
}
class _Input extends StatefulWidget {
const _Input({Key? key}) : super(key: key);
@override
State<_Input> createState() => _InputState();
}
class _InputState extends State<_Input> {
@override
Widget build(BuildContext context) {
final scrollController = ScrollController();
return DesktopScrollWrapper(
scrollController: scrollController,
child: ListView(
controller: scrollController,
physics: DraggableNeverScrollableScrollPhysics(),
children: [
scrollMode(context),
]).marginOnly(bottom: _kListViewBottomMargin));
}
Widget scrollMode(BuildContext context) {
final key = 'scroll_mode';
onChanged(String value) async {
await bind.mainSetUserDefaultOption(key: key, value: value);
setState(() {});
}
final groupValue = bind.mainGetUserDefaultOption(key: key);
return _Card(title: 'Default Scroll Mode', children: [
_Radio(context,
value: kScrollModeDefault,
groupValue: groupValue,
label: 'Default scroll',
onChanged: onChanged),
_Radio(context,
value: kScrollModeReverse,
groupValue: groupValue,
label: 'Reverse scroll',
onChanged: onChanged),
]);
}
}
class _Account extends StatefulWidget {
const _Account({Key? key}) : super(key: key);