1
0
Fork 0
fgdata/gui/dialogs/view.xml
Alexis bc4371bcd4 view.ScreenWidthCompens() : optional FOV compensation for wider screens.
It keeps an equivalent of 55° FOV on a 4:3 zone centered on the screen
whichever is the screen width/height ratio. Works only if width >= height.
2012-10-04 22:15:52 +02:00

122 lines
2.6 KiB
XML

<?xml version="1.0"?>
<PropertyList>
<name>view</name>
<modal>false</modal>
<layout>vbox</layout>
<group>
<layout>hbox</layout>
<empty><stretch>1</stretch></empty>
<text>
<label>View Options</label>
</text>
<empty><stretch>1</stretch></empty>
<button>
<pref-width>16</pref-width>
<pref-height>16</pref-height>
<legend></legend>
<keynum>27</keynum>
<border>2</border>
<binding>
<command>dialog-close</command>
</binding>
</button>
</group>
<hrule/>
<text>
<label>Select Active Views</label>
</text>
<nasal>
<open>
var group = cmdarg().getChildren("group")[1];
var ac = getprop("/sim/aircraft");
group.removeChildren("checkbox");
group.removeChildren("hrule");
group.removeChildren("text");
var mode = 0;
foreach (var v; view.views) {
var index = v.getIndex();
var enabled = v.initNode("enabled", 1, "BOOL");
var name = v.getNode("name");
if (name != nil) {
if (index >= 200) {
if (mode != 2) {
mode = 2;
group.getChild("hrule", 1, 1);
var t = group.getChild("text", 1, 1);
t.getNode("label", 1).setValue("Other Views");
}
} elsif (index >= 100) {
aircraft.data.add(enabled);
if (mode != 1) {
mode = 1;
group.getChild("hrule", 0, 1);
var t = group.getChild("text", 0, 1);
t.getNode("label", 1).setValue("\"" ~ ac ~ "\" Specific Views");
}
}
var target = group.getChild("checkbox", index, 1);
props.copy(group.getNode("checkbox-template"), target);
target.getNode("label").setValue(name != nil ? name.getValue() : ("** unnamed view " ~ index ~ " **"));
target.getNode("property").setValue(enabled.getPath());
}
}
</open>
</nasal>
<group>
<layout>vbox</layout>
<halign>center</halign>
<checkbox-template>
<halign>left</halign>
<label><!----></label>
<property><!----></property>
<binding>
<command>dialog-apply</command>
</binding>
</checkbox-template>
</group>
<hrule/>
<group>
<layout>hbox</layout>
<checkbox>
<property>sim/current-view/field-of-view-compensation</property>
<live>false</live>
<binding>
<command>nasal</command>
<script>view.screenWidthCompens(1)</script>
</binding>
</checkbox>
<text>
<label>Compensate Field of View for wider screens</label>
</text>
</group>
<hrule/>
<button>
<legend>Close</legend>
<default>true</default>
<key>Esc</key>
<binding>
<command>dialog-apply</command>
</binding>
<binding>
<command>dialog-close</command>
</binding>
</button>
</PropertyList>