move improved help screen generator multikey.{xml -> nas}
This commit is contained in:
parent
772112df89
commit
32c5cde2f0
2 changed files with 39 additions and 34 deletions
|
@ -46,40 +46,7 @@
|
||||||
<exit/>
|
<exit/>
|
||||||
<binding>
|
<binding>
|
||||||
<command>nasal</command>
|
<command>nasal</command>
|
||||||
<script>
|
<script>multikey.help()</script>
|
||||||
var (curr, title) = (0, "");
|
|
||||||
foreach (var k; sort(multikey.data, func(a, b) cmp(a[0], b[0]))) {
|
|
||||||
var bndg = k[1].getChildren("binding");
|
|
||||||
var desc = k[1].getNode("desc", 1).getValue() or "??";
|
|
||||||
if (size(k[0]) == 1 or k[0][0] == `%`)
|
|
||||||
title = desc;
|
|
||||||
if (!size(bndg) or size(bndg) == 1
|
|
||||||
and bndg[0].getNode("command", 1).getValue() == "null")
|
|
||||||
continue;
|
|
||||||
if (k[0][0] != curr) {
|
|
||||||
curr = k[0][0];
|
|
||||||
var line = "--------------------------------------------";
|
|
||||||
printf("-- %s %s", title, substr(line, size(title) + 2));
|
|
||||||
}
|
|
||||||
var cmd = k[0];
|
|
||||||
cmd = string.replace(cmd, "%u", debug._c("32", "%u"));
|
|
||||||
cmd = string.replace(cmd, "%d", debug._c("31", "%d"));
|
|
||||||
cmd = string.replace(cmd, "%f", debug._c("36", "%f"));
|
|
||||||
cmd = string.replace(cmd, "<", debug._c("35", "<"));
|
|
||||||
cmd = string.replace(cmd, ">", debug._c("35", ">"));
|
|
||||||
cmd = string.replace(cmd, "^", debug._c("35", "^"));
|
|
||||||
cmd = string.replace(cmd, "_", debug._c("35", "_"));
|
|
||||||
printf("%s\t%s", cmd, desc);
|
|
||||||
}
|
|
||||||
print("------------------------------------------\n\tLegend:\n");
|
|
||||||
printf("\t%s ... unsigned number", debug._c("32", "%u"));
|
|
||||||
printf("\t%s ... signed number", debug._c("31", "%d"));
|
|
||||||
printf("\t%s ... floation point number", debug._c("36", "%f"));
|
|
||||||
printf("\t%s ... cursor left", debug._c("35", "<"));
|
|
||||||
printf("\t%s ... cursor right", debug._c("35", ">"));
|
|
||||||
printf("\t%s ... cursor up", debug._c("35", "^"));
|
|
||||||
printf("\t%s ... cursor down", debug._c("35", "_"));
|
|
||||||
</script>
|
|
||||||
</binding>
|
</binding>
|
||||||
</key>
|
</key>
|
||||||
|
|
||||||
|
|
|
@ -33,6 +33,8 @@ var handle_key = func(key) {
|
||||||
return 1;
|
return 1;
|
||||||
} elsif (key == 8) {
|
} elsif (key == 8) {
|
||||||
cmd = substr(cmd, 0, size(cmd) - 1);
|
cmd = substr(cmd, 0, size(cmd) - 1);
|
||||||
|
} elsif (key == 9) {
|
||||||
|
#
|
||||||
} elsif (key == `\n` or key == `\r`) {
|
} elsif (key == `\n` or key == `\r`) {
|
||||||
mode = 2;
|
mode = 2;
|
||||||
} elsif (contains(translate, key)) {
|
} elsif (contains(translate, key)) {
|
||||||
|
@ -89,6 +91,42 @@ var popup = func(cmd, title = nil) {
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
var help = func {
|
||||||
|
var (curr, title) = (0, "");
|
||||||
|
foreach (var k; sort(data, func(a, b) cmp(a[0], b[0]))) {
|
||||||
|
var bndg = k[1].getChildren("binding");
|
||||||
|
var desc = k[1].getNode("desc", 1).getValue() or "??";
|
||||||
|
if (size(k[0]) == 1 or k[0][0] == `%`)
|
||||||
|
title = desc;
|
||||||
|
if (!size(bndg) or size(bndg) == 1
|
||||||
|
and bndg[0].getNode("command", 1).getValue() == "null")
|
||||||
|
continue;
|
||||||
|
if (string.isalnum(k[0][0]) and k[0][0] != curr) {
|
||||||
|
curr = k[0][0];
|
||||||
|
var line = "--------------------------------------------";
|
||||||
|
print(debug._c("33", sprintf("\n-- %s %s", title, substr(line, size(title) + 2))));
|
||||||
|
}
|
||||||
|
var cmd = k[0];
|
||||||
|
cmd = string.replace(cmd, "%u", debug._c("32", "%u"));
|
||||||
|
cmd = string.replace(cmd, "%d", debug._c("31", "%d"));
|
||||||
|
cmd = string.replace(cmd, "%f", debug._c("36", "%f"));
|
||||||
|
cmd = string.replace(cmd, "<", debug._c("35", "<"));
|
||||||
|
cmd = string.replace(cmd, ">", debug._c("35", ">"));
|
||||||
|
cmd = string.replace(cmd, "^", debug._c("35", "^"));
|
||||||
|
cmd = string.replace(cmd, "_", debug._c("35", "_"));
|
||||||
|
printf("%s\t%s", cmd, desc);
|
||||||
|
}
|
||||||
|
print(debug._c("33", "\n-- Legend ------------------------------------"));
|
||||||
|
printf("\t%s ... unsigned number", debug._c("32", "%u"));
|
||||||
|
printf("\t%s ... signed number", debug._c("31", "%d"));
|
||||||
|
printf("\t%s ... floation point number", debug._c("36", "%f"));
|
||||||
|
printf("\t%s ... cursor left", debug._c("35", "<"));
|
||||||
|
printf("\t%s ... cursor right", debug._c("35", ">"));
|
||||||
|
printf("\t%s ... cursor up", debug._c("35", "^"));
|
||||||
|
printf("\t%s ... cursor down", debug._c("35", "_"));
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
var init = func {
|
var init = func {
|
||||||
globals["__multikey"] = { _: };
|
globals["__multikey"] = { _: };
|
||||||
var tree = props.globals.getNode("/input/keyboard/multikey", 1);
|
var tree = props.globals.getNode("/input/keyboard/multikey", 1);
|
||||||
|
|
Loading…
Add table
Reference in a new issue