2006-10-21 10:19:04 +00:00
|
|
|
<?xml version="1.0"?>
|
|
|
|
|
|
|
|
<PropertyList>
|
|
|
|
<name>joystick-info</name>
|
|
|
|
<layout>vbox</layout>
|
|
|
|
<default-padding>3</default-padding>
|
|
|
|
|
|
|
|
<group>
|
|
|
|
<layout>hbox</layout>
|
|
|
|
<default-padding>1</default-padding>
|
|
|
|
|
2006-10-21 22:03:01 +00:00
|
|
|
<empty><stretch>true</stretch></empty>
|
2006-10-21 10:19:04 +00:00
|
|
|
|
|
|
|
<text>
|
|
|
|
<label>Joystick Information</label>
|
|
|
|
</text>
|
|
|
|
|
|
|
|
<empty><stretch>true</stretch></empty>
|
|
|
|
|
|
|
|
<button>
|
|
|
|
<legend></legend>
|
|
|
|
<key>Esc</key>
|
|
|
|
<pref-width>16</pref-width>
|
|
|
|
<pref-height>16</pref-height>
|
|
|
|
<border>2</border>
|
|
|
|
<binding>
|
|
|
|
<command>dialog-close</command>
|
|
|
|
</binding>
|
|
|
|
</button>
|
|
|
|
</group>
|
|
|
|
|
|
|
|
<hrule><empty/></hrule>
|
|
|
|
|
|
|
|
<nasal>
|
|
|
|
<open>
|
|
|
|
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 ~= " [";
|
2006-10-21 11:46:43 +00:00
|
|
|
t ~= value(x.getNode("name"), name ~ " #" ~ x.getIndex());
|
2006-10-21 13:50:54 +00:00
|
|
|
t ~= "] ... ";
|
2006-10-21 10:19:04 +00:00
|
|
|
t ~= value(x.getNode("desc"), "???");
|
|
|
|
t ~= "\n";
|
|
|
|
}
|
|
|
|
return t;
|
|
|
|
}
|
|
|
|
|
|
|
|
var t = "";
|
|
|
|
var joysticks = props.globals.getNode("/input/joysticks").getChildren("js");
|
2006-10-21 13:50:54 +00:00
|
|
|
var numjs = size(joysticks);
|
2006-10-21 10:19:04 +00:00
|
|
|
forindex (var i; joysticks) {
|
|
|
|
var js = joysticks[i];
|
2006-10-21 22:03:01 +00:00
|
|
|
var id = value(js.getNode("id"), "[unnamed]");
|
|
|
|
var source = value(js.getNode("source"), "[user defined]");
|
2006-10-21 10:19:04 +00:00
|
|
|
var names = js.getChildren("name");
|
2006-10-21 22:03:01 +00:00
|
|
|
|
|
|
|
t ~= "Joystick #" ~ js.getIndex() ~ ": \"" ~ id ~ "\"\n\n";
|
|
|
|
t ~= " Driver: " ~ source ~ "\n";
|
2006-10-21 10:19:04 +00:00
|
|
|
if (size(names)) {
|
|
|
|
t ~= " Used for: ";
|
2006-10-21 10:50:42 +00:00
|
|
|
var last = pop(names);
|
2006-10-21 10:19:04 +00:00
|
|
|
foreach (var n; names) {
|
|
|
|
t ~= '"' ~ value(n) ~ '", ';
|
|
|
|
}
|
2006-10-21 10:50:42 +00:00
|
|
|
t ~= '"' ~ value(last) ~ '"';
|
2006-10-21 10:19:04 +00:00
|
|
|
}
|
|
|
|
t ~= "\n\n";
|
|
|
|
t ~= items(js.getChildren("axis"), "Axis");
|
2006-10-21 11:46:43 +00:00
|
|
|
t ~= "\n";
|
|
|
|
t ~= items(js.getChildren("button"), "Button");
|
2006-10-21 10:19:04 +00:00
|
|
|
|
2006-10-21 13:50:54 +00:00
|
|
|
var help = value(js.getNode("help"), nil);
|
|
|
|
if (help != nil) {
|
|
|
|
t ~= "\n\n" ~ help;
|
|
|
|
}
|
|
|
|
|
|
|
|
if (numjs > 1 and i < numjs - 1) {
|
2006-10-21 10:19:04 +00:00
|
|
|
t ~= "\n\n\n----------------------------------------\n\n\n";
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
var text = props.globals.getNode("/sim/gui/dialogs/joystick-info/text", 1);
|
|
|
|
text.setValue(t);
|
|
|
|
</open>
|
|
|
|
|
|
|
|
<close>
|
|
|
|
text.setValue("");
|
|
|
|
</close>
|
|
|
|
</nasal>
|
|
|
|
|
|
|
|
<textbox>
|
|
|
|
<halign>fill</halign>
|
|
|
|
<pref-width>640</pref-width>
|
|
|
|
<pref-height>480</pref-height>
|
|
|
|
<slider>20</slider>
|
|
|
|
<wrap>true</wrap>
|
|
|
|
<editable>false</editable>
|
|
|
|
<property>/sim/gui/dialogs/joystick-info/text</property>
|
|
|
|
</textbox>
|
|
|
|
</PropertyList>
|