Skip to content

Commit 011508f

Browse files
committed
添加显示模式功能
1 parent 54e2076 commit 011508f

File tree

3 files changed

+62
-30
lines changed

3 files changed

+62
-30
lines changed

lib/providers/key_event.dart

Lines changed: 29 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -46,6 +46,18 @@ enum ModifierKey {
4646
}
4747
}
4848

49+
enum TopWindowMode {
50+
none("不置顶"),
51+
top("置顶");
52+
53+
const TopWindowMode(this.label);
54+
55+
final String label;
56+
57+
@override
58+
String toString() => label;
59+
}
60+
4961
// key visualization history mode
5062
enum VisualizationHistoryMode {
5163
none("无"),
@@ -99,6 +111,9 @@ class KeyEventProvider extends ChangeNotifier with TrayListener {
99111
// errors
100112
bool _hasError = false;
101113

114+
// 窗口置顶
115+
TopWindowMode _topWindow = TopWindowMode.top;
116+
102117
// toggle for styling, if true keeps the events
103118
// on display unless changed by others
104119
bool _styling = false;
@@ -206,6 +221,8 @@ class KeyEventProvider extends ChangeNotifier with TrayListener {
206221

207222
bool get hasError => _hasError;
208223

224+
TopWindowMode get topWindow => _topWindow;
225+
209226
bool get filterHotkeys => _filterHotkeys;
210227

211228
Map<ModifierKey, bool> get ignoreKeys => _ignoreKeys;
@@ -264,6 +281,18 @@ class KeyEventProvider extends ChangeNotifier with TrayListener {
264281
notifyListeners();
265282
}
266283

284+
set topWindow(value) {
285+
_topWindow = value;
286+
if (_topWindow == TopWindowMode.top) {
287+
// 置顶
288+
windowManager.setAlwaysOnTop(true);
289+
} else {
290+
// 取消置顶
291+
windowManager.setAlwaysOnTop(false);
292+
}
293+
notifyListeners();
294+
}
295+
267296
set filterHotkeys(value) {
268297
_filterHotkeys = value;
269298
notifyListeners();

lib/windows/settings/views/general.dart

Lines changed: 13 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -15,16 +15,19 @@ class GeneralTabView extends StatelessWidget {
1515
return Column(
1616
children: [
1717
PanelItem(
18-
title: "最上层显示",
19-
subtitle: "开关最上层显示(还没做呢》^《)",
20-
action: Selector<KeyEventProvider, bool>(
21-
selector: (_, keyEvent) => keyEvent.filterHotkeys,
22-
builder: (_, filterHotkeys, __) => XSwitch(
23-
value: filterHotkeys,
24-
onChange: (bool value) {
25-
context.keyEvent.filterHotkeys = value;
26-
},
27-
),
18+
title: "显示模式",
19+
subtitle: "显示模式",
20+
action: Selector<KeyEventProvider, TopWindowMode>(
21+
selector: (_, keyEvent) => keyEvent.topWindow,
22+
builder: (context, historyMode, __) {
23+
return XDropdown<TopWindowMode>(
24+
value: historyMode,
25+
options: TopWindowMode.values,
26+
onChanged: (value) {
27+
context.keyEvent.topWindow = value;
28+
},
29+
);
30+
},
2831
),
2932
),
3033
const Divider(),

pubspec.lock

Lines changed: 20 additions & 20 deletions
Original file line numberDiff line numberDiff line change
@@ -156,27 +156,27 @@ packages:
156156
dependency: transitive
157157
description:
158158
name: get_it
159-
sha256: e87cd1d108e472a0580348a543a0c49ed3d70c8a5c809c6d418583e595d0a389
159+
sha256: a4292e7cf67193f8e7c1258203104eb2a51ec8b3a04baa14695f4064c144297b
160160
url: "https://pub.dev"
161161
source: hosted
162-
version: "8.1.0"
162+
version: "8.2.0"
163163
hid_listener:
164164
dependency: "direct main"
165165
description:
166166
path: "."
167167
ref: main
168-
resolved-ref: "5d3fb374573c4c8c1d56f271eecb48e9171156a6"
168+
resolved-ref: "04b1c352c9a22645d7b6a8a3938a1d923bf514e2"
169169
url: "https://github.com/mulaRahul/hid_listener.git"
170170
source: git
171171
version: "2.0.1"
172172
http:
173173
dependency: transitive
174174
description:
175175
name: http
176-
sha256: "2c11f3f94c687ee9bad77c171151672986360b2b001d109814ee7140b2cf261b"
176+
sha256: bb2ce4590bc2667c96f318d68cac1b5a7987ec819351d32b1c987239a815e007
177177
url: "https://pub.dev"
178178
source: hosted
179-
version: "1.4.0"
179+
version: "1.5.0"
180180
http_parser:
181181
dependency: transitive
182182
description:
@@ -277,10 +277,10 @@ packages:
277277
dependency: "direct dev"
278278
description:
279279
name: msix
280-
sha256: bbb9b3ff4a9f8e7e7507b2a22dc0517fd1fe3db44e72de7ab052cb6b362406ee
280+
sha256: f88033fcb9e0dd8de5b18897cbebbd28ea30596810f4a7c86b12b0c03ace87e5
281281
url: "https://pub.dev"
282282
source: hosted
283-
version: "3.16.10"
283+
version: "3.16.12"
284284
nested:
285285
dependency: transitive
286286
description:
@@ -333,10 +333,10 @@ packages:
333333
dependency: transitive
334334
description:
335335
name: path_provider_foundation
336-
sha256: "4843174df4d288f5e29185bd6e72a6fbdf5a4a4602717eed565497429f179942"
336+
sha256: "16eef174aacb07e09c351502740fa6254c165757638eba1e9116b0a781201bbd"
337337
url: "https://pub.dev"
338338
source: hosted
339-
version: "2.4.1"
339+
version: "2.4.2"
340340
path_provider_linux:
341341
dependency: transitive
342342
description:
@@ -546,18 +546,18 @@ packages:
546546
dependency: transitive
547547
description:
548548
name: url_launcher_android
549-
sha256: "8582d7f6fe14d2652b4c45c9b6c14c0b678c2af2d083a11b604caeba51930d79"
549+
sha256: "0aedad096a85b49df2e4725fa32118f9fa580f3b14af7a2d2221896a02cd5656"
550550
url: "https://pub.dev"
551551
source: hosted
552-
version: "6.3.16"
552+
version: "6.3.17"
553553
url_launcher_ios:
554554
dependency: transitive
555555
description:
556556
name: url_launcher_ios
557-
sha256: "7f2022359d4c099eea7df3fdf739f7d3d3b9faf3166fb1dd390775176e0b76cb"
557+
sha256: d80b3f567a617cb923546034cc94bfe44eb15f989fe670b37f26abdb9d939cb7
558558
url: "https://pub.dev"
559559
source: hosted
560-
version: "6.3.3"
560+
version: "6.3.4"
561561
url_launcher_linux:
562562
dependency: transitive
563563
description:
@@ -570,10 +570,10 @@ packages:
570570
dependency: transitive
571571
description:
572572
name: url_launcher_macos
573-
sha256: "17ba2000b847f334f16626a574c702b196723af2a289e7a93ffcb79acff855c2"
573+
sha256: c043a77d6600ac9c38300567f33ef12b0ef4f4783a2c1f00231d2b1941fea13f
574574
url: "https://pub.dev"
575575
source: hosted
576-
version: "3.2.2"
576+
version: "3.2.3"
577577
url_launcher_platform_interface:
578578
dependency: transitive
579579
description:
@@ -618,10 +618,10 @@ packages:
618618
dependency: transitive
619619
description:
620620
name: vector_graphics_compiler
621-
sha256: "557a315b7d2a6dbb0aaaff84d857967ce6bdc96a63dc6ee2a57ce5a6ee5d3331"
621+
sha256: ca81fdfaf62a5ab45d7296614aea108d2c7d0efca8393e96174bf4d51e6725b0
622622
url: "https://pub.dev"
623623
source: hosted
624-
version: "1.1.17"
624+
version: "1.1.18"
625625
vector_math:
626626
dependency: "direct main"
627627
description:
@@ -634,10 +634,10 @@ packages:
634634
dependency: transitive
635635
description:
636636
name: vm_service
637-
sha256: ddfa8d30d89985b96407efce8acbdd124701f96741f2d981ca860662f1c0dc02
637+
sha256: "45caa6c5917fa127b5dbcfbd1fa60b14e583afdc08bfc96dda38886ca252eb60"
638638
url: "https://pub.dev"
639639
source: hosted
640-
version: "15.0.0"
640+
version: "15.0.2"
641641
web:
642642
dependency: transitive
643643
description:
@@ -689,4 +689,4 @@ packages:
689689
version: "3.1.3"
690690
sdks:
691691
dart: ">=3.8.0-0 <4.0.0"
692-
flutter: ">=3.27.0"
692+
flutter: ">=3.29.0"

0 commit comments

Comments
 (0)