Pārlūkot izejas kodu

feat(ui/walk): 用小键盘走路

dzp 1 gadu atpakaļ
vecāks
revīzija
348b95083d
2 mainītis faili ar 33 papildinājumiem un 0 dzēšanām
  1. 12 0
      etc/ui-settings.tin
  2. 21 0
      plugins/lib/ui/walk.tin

+ 12 - 0
etc/ui-settings.tin

@@ -42,6 +42,18 @@ VAR {命令提示符,默认为空} prompt-prompt {};
     {{key}{\cod}    {meaning}{开启/关闭调试模式}        {action}{option.Toggle DebugLog}}
     {{key}{\coD}    {meaning}{开启/关闭调试日志}        {action}{option.Toggle DebugLogEcho}}
     {{key}{\coe}    {meaning}{开启/关闭命令发送回显}    {action}{option.Toggle EchoCommand}}
+    {{key}{\cok}    {meaning}{开启/关闭小键盘走路}      {action}{option.Toggle KeypadWalk}}
+};
+
+VAR {小键盘走路的键盘扫描码} {global-keypad-walking} {
+    {north}         {\e[A}
+    {south}         {\e[B}
+    {east}          {\e[C}
+    {west}          {\e[D}
+    {northeast}     {\e[5~}
+    {southeast}     {\e[6~}
+    {northwest}     {\e[H}
+    {southwest}     {\e[F}
 };
 
 VAR {HP摘要刷新时机,三选一:{总是|从不|自动}} char.HPSummarize.Echo {自动};

+ 21 - 0
plugins/lib/ui/walk.tin

@@ -27,8 +27,12 @@ PaoTin++ © 2020~2023 的所有版权均由担子炮(dzp <danzipao@gmail.com>) 
     {AUTHOR}    {担子炮}
 };
 
+option.Define {KeypadWalk} {Bool} {是否开启小键盘走路} {false};
+
 #func {lib_ui_walk.Init} {
     ui.walk.Enable;
+    event.Handle {option/changed} {option/changed/KeypadWalk} {lib/ui/walk} {ui.walk.keypad.Toggle};
+    option.Disable KeypadWalk;
     #return {true};
 };
 
@@ -213,3 +217,20 @@ VAR {触屏走路插件的走路命令,默认为 go} ui.walk.cmd {go};
     #local dir {%1};
     $ui.walk.cmd $dir;
 };
+
+#alias {ui.walk.keypad.Toggle} {
+    #if { @option.IsDisable{KeypadWalk} } {
+        okLog 小键盘走路已关闭。;
+        #class ui.walk.Keypad kill;
+    };
+    #else {
+        okLog 小键盘走路已开启。;
+        #class ui.walk.Keypad open;
+        #local dir {};
+        #foreach {*global-keypad-walking[]} {dir} {
+            #local code {$global-keypad-walking[$dir]};
+            #line sub var #macro {$code} {ui.walk.go $dir};
+        };
+        #class ui.walk.Keypad close;
+    };
+};