joystick-infovbox3hbox1true
value = func(p, default = "") {
return p != nil and (var v = p.getValue()) != nil ? v : default;
}
items = func(it, name) {
var t = "";
foreach (var x; it) {
t ~= " [";
t ~= value(x.getNode("name"), name ~ " #" ~ x.getIndex());
t ~= "] ";
t ~= value(x.getNode("desc"), "???");
t ~= "\n";
}
return t;
}
var t = "";
var joysticks = props.globals.getNode("/input/joysticks").getChildren("js");
var numjoysticks = size(joysticks);
forindex (var i; joysticks) {
var js = joysticks[i];
t ~= "Joystick #" ~ js.getIndex() ~ ": \"" ~ value(js.getNode("id"), "[unnamed]") ~ "\"\n\n";
t ~= " Configuration: " ~ value(js.getNode("source"), "[user defined]") ~ "\n";
var names = js.getChildren("name");
if (size(names)) {
t ~= " Used for: ";
var last = pop(names);
foreach (var n; names) {
t ~= '"' ~ value(n) ~ '", ';
}
t ~= '"' ~ value(last) ~ '"';
}
t ~= "\n\n";
t ~= items(js.getChildren("axis"), "Axis");
t ~= "\n";
t ~= items(js.getChildren("button"), "Button");
if (numjoysticks > 1 and i < numjoysticks - 1) {
t ~= "\n\n\n----------------------------------------\n\n\n";
}
}
var text = props.globals.getNode("/sim/gui/dialogs/joystick-info/text", 1);
text.setValue(t);
text.setValue("");
fill64048020truefalse/sim/gui/dialogs/joystick-info/text