1
0
Fork 0
fgdata/gui/dialogs/fg1000.xml
2017-11-24 23:04:46 +00:00

892 lines
33 KiB
XML

<?xml version="1.0"?>
<PropertyList>
<name>fg1000</name>
<layout>vbox</layout>
<resizable>true</resizable>
<default-padding>3</default-padding>
<color>
<alpha type="float">1.0</alpha>
</color>
<nasal>
<open><![CDATA[
var self = cmdarg();
var listeners = [];
var mfd = nil;
]]></open>
<close><![CDATA[
foreach (var l; listeners)
removelistener(l);
setsize(listeners, 0);
mfd.del();
]]></close>
</nasal>
<group>
<layout>hbox</layout>
<default-padding>1</default-padding>
<empty><stretch>1</stretch></empty>
<text>
<label>FG1000 MFD</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/>
<group>
<layout>hbox</layout>
<stretch>true</stretch>
<halign>fill</halign>
<!-- Left sidebar NAV & Autopilot-->
<group>
<layout>vbox</layout>
<halign>center</halign>
<valign>top</valign>
<dial>
<name>vol</name>
<label>VOL</label>
<pref-width>30</pref-width>
<property>/gui/dialogs/fg1000/nav-vol</property>
</dial>
<button>
<name>toggle-nav</name>
<legend>&lt;-&gt;</legend>
<pref-width>30</pref-width>
<pref-height>30</pref-height>
<halign>right</halign>
<binding>
<command>property-swap</command>
<condition>
<not>
<property>/instrumentation/nav-selected</property>
</not>
</condition>
<property>/instrumentation/nav[0]/frequencies/selected-mhz</property>
<property>/instrumentation/nav[0]/frequencies/standby-mhz</property>
</binding>
<binding>
<command>property-swap</command>
<condition>
<property>/instrumentation/nav-selected</property>
</condition>
<property>/instrumentation/nav[1]/frequencies/selected-mhz</property>
<property>/instrumentation/nav[1]/frequencies/standby-mhz</property>
</binding>
</button>
<text><label>NAV</label></text>
<group>
<layout>hbox</layout>
<halign>center</halign>
<default-padding>0</default-padding>
<button>
<name>nav-decrease-MHz</name>
<legend>&lt;&lt;</legend>
<pref-width>25</pref-width>
<pref-height>25</pref-height>
</button>
<button>
<name>nav-decrease-KHz</name>
<legend>&lt;</legend>
<pref-width>25</pref-width>
<pref-height>25</pref-height>
</button>
<button>
<name>nav-increase-KHz</name>
<legend>&gt;</legend>
<pref-width>25</pref-width>
<pref-height>25</pref-height>
</button>
<button>
<name>nav-increase-MHz</name>
<legend>&gt;&gt;</legend>
<pref-width>25</pref-width>
<pref-height>25</pref-height>
</button>
</group>
<button>
<name>toggle-nav</name>
<legend>1-2</legend>
<pref-width>50</pref-width>
<pref-height>25</pref-height>
<default-padding>0</default-padding>
<binding>
<command>property-toggle</command>
<property>/instrumentation/nav-selected</property>
</binding>
</button>
<!-- Heading Control -->
<text><label>HDG</label></text>
<dial>
<name>hdg</name>
<width>20</width>
<property>/gui/dialogs/fg1000/hdg</property>
</dial>
<button>
<name>hdg-sync</name>
<legend>HDG SYNC</legend>
<pref-width>75</pref-width>
<pref-height>25</pref-height>
<binding>
<command>property-toggle</command>
<property>/instrumentation/nav-selected</property>
</binding>
</button>
<group>
<!-- AP Controls -->
<layout>table</layout>
<button>
<col>0</col><row>0</row>
<pref-width>40</pref-width>
<pref-height>25</pref-height>
<name>AP</name>
<legend>AP</legend>
<binding>
<command>property-toggle</command>
<property>/sim/instrumentation/fg1000/autopilot/ap</property>
</binding>
</button>
<button>
<col>1</col><row>0</row>
<pref-width>40</pref-width>
<pref-height>25</pref-height>
<name>FD</name>
<legend>FD</legend>
<binding>
<command>property-toggle</command>
<property>/sim/instrumentation/fg1000/autopilot/fd</property>
</binding>
</button>
<button>
<col>0</col><row>1</row>
<pref-width>40</pref-width>
<pref-height>25</pref-height>
<name>HDG</name>
<legend>HDG</legend>
<binding>
<command>property-toggle</command>
<property>/sim/instrumentation/fg1000/autopilot/hdg</property>
</binding>
</button>
<button>
<col>1</col><row>1</row>
<pref-width>40</pref-width>
<pref-height>25</pref-height>
<name>ALT</name>
<legend>ALT</legend>
<binding>
<command>property-toggle</command>
<property>/sim/instrumentation/fg1000/autopilot/alt</property>
</binding>
</button>
<button>
<col>0</col><row>2</row>
<pref-width>40</pref-width>
<pref-height>25</pref-height>
<name>NAV</name>
<legend>NAV</legend>
<binding>
<command>property-toggle</command>
<property>/sim/instrumentation/fg1000/autopilot/nav</property>
</binding>
</button>
<button>
<col>1</col><row>2</row>
<pref-width>40</pref-width>
<pref-height>25</pref-height>
<name>VNV</name>
<legend>VNV</legend>
<binding>
<command>property-toggle</command>
<property>/sim/instrumentation/fg1000/autopilot/vnv</property>
</binding>
</button>
<button>
<col>0</col><row>3</row>
<pref-width>40</pref-width>
<pref-height>25</pref-height>
<name>APR</name>
<legend>APR</legend>
<binding>
<command>property-toggle</command>
<property>/sim/instrumentation/fg1000/autopilot/apr</property>
</binding>
</button>
<button>
<col>1</col><row>3</row>
<pref-width>40</pref-width>
<pref-height>25</pref-height>
<name>BC</name>
<legend>BC</legend>
<binding>
<command>property-toggle</command>
<property>/sim/instrumentation/fg1000/autopilot/bc</property>
</binding>
</button>
<button>
<col>0</col><row>4</row>
<pref-width>40</pref-width>
<pref-height>25</pref-height>
<name>VS</name>
<legend>VS</legend>
<binding>
<command>property-toggle</command>
<property>/sim/instrumentation/fg1000/autopilot/vs</property>
</binding>
</button>
<button>
<col>1</col><row>4</row>
<pref-width>40</pref-width>
<pref-height>25</pref-height>
<name>up</name>
<legend>UP</legend>
<binding>
<command>property-toggle</command>
<property>/sim/instrumentation/fg1000/autopilot/up</property>
</binding>
</button>
<button>
<col>0</col><row>5</row>
<pref-width>40</pref-width>
<pref-height>25</pref-height>
<name>FLC</name>
<legend>FLC</legend>
<binding>
<command>property-toggle</command>
<property>/sim/instrumentation/fg1000/autopilot/flc</property>
</binding>
</button>
<button>
<col>1</col><row>5</row>
<pref-width>40</pref-width>
<pref-height>25</pref-height>
<name>DN</name>
<legend>DN</legend>
<binding>
<command>property-toggle</command>
<property>/sim/instrumentation/fg1000/autopilot/dn</property>
</binding>
</button>
</group>
<text><label>ALT</label></text>
<group>
<layout>hbox</layout>
<halign>center</halign>
<default-padding>0</default-padding>
<!-- ALT controller -->
<button>
<name>alt-decr-large</name>
<legend>&lt;&lt;</legend>
<pref-width>25</pref-width>
<pref-height>25</pref-height>
</button>
<button>
<name>alt-decr-small</name>
<legend>&lt;</legend>
<pref-width>25</pref-width>
<pref-height>25</pref-height>
</button>
<button>
<name>alt-incr-small</name>
<legend>&gt;</legend>
<pref-width>25</pref-width>
<pref-height>25</pref-height>
</button>
<button>
<name>alt-incr-large</name>
<legend>&gt;&gt;</legend>
<pref-width>25</pref-width>
<pref-height>25</pref-height>
</button>
</group>
<!-- End of left hand stack of controls -->
</group>
<vrule/>
<group>
<layout>vbox</layout>
<stretch>true</stretch>
<group>
<canvas>
<name>canvas-map</name>
<valign>center</valign>
<halign>center</halign>
<stretch>false</stretch>
<pref-width>1024</pref-width>
<pref-height>768</pref-height>
<width>1024</width>
<height>768</height>
<nasal><load><![CDATA[
var myCanvas = canvas.get( cmdarg() );
myCanvas.setColorBackground(0,0,0,1.0);
var nasal_dir = getprop("/sim/fg-root") ~ "/Aircraft/Instruments-3d/FG1000/Nasal/";
io.load_nasal(nasal_dir ~ 'MFD.nas', "fg1000");
mfd = fg1000.MFD.new(myCanvas);
softkeypushed = 0;
# Connect the buttons - using the provided model index to get the right ones from the model binding
var softkey_listener = setlistener("/sim/gui/dialogs/fg1000/softkey-pressed", func(v)
{
if (v != nil) {
if (v.getValue()) {
softkeypushed = v.getValue();
#printf("Button %d", softkeypushed);
#mfd._MFDDevice.notifyButton(softkeypushed);
var notification = notifications.PFDEventNotification.new("MFD", 1, notifications.PFDEventNotification.SoftKeyPushed, softkeypushed);
emesary.GlobalTransmitter.NotifyAll(notification);
softkeypushed = 0;
}
}
}
);
append(listeners, softkey_listener);
#append(listeners, setlistener("/sim/gui/dialogs/fg1000/fms-incr-large-pressed", func(v) { mfd._pageGroupController.incrFMSOuter(); } ));
#append(listeners, setlistener("/sim/gui/dialogs/fg1000/fms-incr-small-pressed", func(v) { mfd._pageGroupController.incrFMSInner(); } ));
#append(listeners, setlistener("/sim/gui/dialogs/fg1000/fms-decr-large-pressed", func(v) { mfd._pageGroupController.decrFMSOuter(); } ));
#append(listeners, setlistener("/sim/gui/dialogs/fg1000/fms-decr-small-pressed", func(v) { mfd._pageGroupController.decrFMSInner(); } ));
append(listeners, setlistener("/sim/gui/dialogs/fg1000/fms-incr-large-pressed", func(v) {
var notification = notifications.PFDEventNotification.new("MFD", 1, notifications.PFDEventNotification.HardKeyPushed, { Id: fg1000.MFD.FASCIA.FMS_OUTER, Value: 1.0 });
emesary.GlobalTransmitter.NotifyAll(notification);
} ));
append(listeners, setlistener("/sim/gui/dialogs/fg1000/fms-incr-small-pressed", func(v) {
var notification = notifications.PFDEventNotification.new("MFD", 1, notifications.PFDEventNotification.HardKeyPushed, { Id: fg1000.MFD.FASCIA.FMS_INNER, Value: 1.0 });
emesary.GlobalTransmitter.NotifyAll(notification);
} ));
append(listeners, setlistener("/sim/gui/dialogs/fg1000/fms-decr-large-pressed", func(v) {
var notification = notifications.PFDEventNotification.new("MFD", 1, notifications.PFDEventNotification.HardKeyPushed, { Id: fg1000.MFD.FASCIA.FMS_OUTER, Value: -1.0 });
emesary.GlobalTransmitter.NotifyAll(notification);
} ));
append(listeners, setlistener("/sim/gui/dialogs/fg1000/fms-decr-small-pressed", func(v) {
var notification = notifications.PFDEventNotification.new("MFD", 1, notifications.PFDEventNotification.HardKeyPushed, { Id: fg1000.MFD.FASCIA.FMS_INNER, Value: -1.0 });
emesary.GlobalTransmitter.NotifyAll(notification);
} ));
append(listeners, setlistener("/sim/gui/dialogs/fg1000/range-decr-pressed", func(v) {
var notification = notifications.PFDEventNotification.new("MFD", 1, notifications.PFDEventNotification.HardKeyPushed, { Id: fg1000.MFD.FASCIA.RANGE, Value: -1.0 });
emesary.GlobalTransmitter.NotifyAll(notification);
} ));
append(listeners, setlistener("/sim/gui/dialogs/fg1000/range-incr-pressed", func(v) {
var notification = notifications.PFDEventNotification.new("MFD", 1, notifications.PFDEventNotification.HardKeyPushed, { Id: fg1000.MFD.FASCIA.RANGE, Value: 1.0 });
emesary.GlobalTransmitter.NotifyAll(notification);
} ));
]]></load></nasal>
</canvas>
<layout>hbox</layout>
<stretch>true</stretch>
<halign>fill</halign>
<valign>fill</valign>
</group>
<group>
<!-- Buttons on the bottom of the fascia -->
<layout>hbox</layout>
<stretch>true</stretch>
<halign>fill</halign>
<valign>top</valign>
<button>
<name>softkey-1</name>
<legend>^</legend>
<pref-width>40</pref-width>
<pref-height>25</pref-height>
<binding>
<command>property-assign</command>
<property>/sim/gui/dialogs/fg1000/softkey-pressed</property>
<value>1</value>
</binding>
</button>
<button>
<name>softkey-2</name>
<legend>^</legend>
<pref-width>40</pref-width>
<pref-height>25</pref-height>
<binding>
<command>property-assign</command>
<property>/sim/gui/dialogs/fg1000/softkey-pressed</property>
<value>2</value>
</binding>
</button>
<button>
<name>softkey-3</name>
<legend>^</legend>
<pref-width>40</pref-width>
<pref-height>25</pref-height>
<binding>
<command>property-assign</command>
<property>/sim/gui/dialogs/fg1000/softkey-pressed</property>
<value>3</value>
</binding>
</button>
<button>
<name>softkey-4</name>
<legend>^</legend>
<pref-width>40</pref-width>
<pref-height>25</pref-height>
<binding>
<command>property-assign</command>
<property>/sim/gui/dialogs/fg1000/softkey-pressed</property>
<value>4</value>
</binding>
</button>
<button>
<name>softkey-5</name>
<legend>^</legend>
<pref-width>40</pref-width>
<pref-height>25</pref-height>
<binding>
<command>property-assign</command>
<property>/sim/gui/dialogs/fg1000/softkey-pressed</property>
<value>5</value>
</binding>
</button>
<button>
<name>softkey-6</name>
<legend>^</legend>
<pref-width>40</pref-width>
<pref-height>25</pref-height>
<binding>
<command>property-assign</command>
<property>/sim/gui/dialogs/fg1000/softkey-pressed</property>
<value>6</value>
</binding>
</button>
<button>
<name>softkey-7</name>
<legend>^</legend>
<pref-width>40</pref-width>
<pref-height>25</pref-height>
<binding>
<command>property-assign</command>
<property>/sim/gui/dialogs/fg1000/softkey-pressed</property>
<value>7</value>
</binding>
</button>
<button>
<name>softkey-8</name>
<legend>^</legend>
<pref-width>40</pref-width>
<pref-height>25</pref-height>
<binding>
<command>property-assign</command>
<property>/sim/gui/dialogs/fg1000/softkey-pressed</property>
<value>8</value>
</binding>
</button>
<button>
<name>softkey-9</name>
<legend>^</legend>
<pref-width>40</pref-width>
<pref-height>25</pref-height>
<binding>
<command>property-assign</command>
<property>/sim/gui/dialogs/fg1000/softkey-pressed</property>
<value>9</value>
</binding>
</button>
<button>
<name>softkey-10</name>
<legend>^</legend>
<pref-width>40</pref-width>
<pref-height>25</pref-height>
<binding>
<command>property-assign</command>
<property>/sim/gui/dialogs/fg1000/softkey-pressed</property>
<value>10</value>
</binding>
</button>
<button>
<name>softkey-11</name>
<legend>^</legend>
<pref-width>40</pref-width>
<pref-height>25</pref-height>
<binding>
<command>property-assign</command>
<property>/sim/gui/dialogs/fg1000/softkey-pressed</property>
<value>11</value>
</binding>
</button>
<button>
<name>softkey-12</name>
<legend>^</legend>
<pref-width>40</pref-width>
<pref-height>25</pref-height>
<binding>
<command>property-assign</command>
<property>/sim/gui/dialogs/fg1000/softkey-pressed</property>
<value>12</value>
</binding>
</button>
<!-- End of softkeys -->
</group>
<!-- End of middle vertical panel -->
</group>
<vrule/>
<group>
<!-- Righthand control panel -->
<layout>vbox</layout>
<halign>center</halign>
<valign>top</valign>
<dial>
<name>com-vol</name>
<label>VOL</label>
<pref-width>30</pref-width>
<property>/gui/dialogs/fg1000/com-vol</property>
</dial>
<button>
<name>toggle-com</name>
<legend>&lt;-&gt;</legend>
<pref-width>30</pref-width>
<pref-height>30</pref-height>
<halign>left</halign>
<binding>
<command>property-swap</command>
<condition>
<not>
<property>/instrumentation/com-selected</property>
</not>
</condition>
<property>/instrumentation/com[0]/frequencies/selected-mhz</property>
<property>/instrumentation/com[0]/frequencies/standby-mhz</property>
</binding>
<binding>
<command>property-swap</command>
<condition>
<property>/instrumentation/com-selected</property>
</condition>
<property>/instrumentation/com[1]/frequencies/selected-mhz</property>
<property>/instrumentation/com[1]/frequencies/standby-mhz</property>
</binding>
</button>
<text><label>COM</label></text>
<group>
<layout>hbox</layout>
<halign>center</halign>
<default-padding>0</default-padding>
<button>
<name>com-decrease-MHz</name>
<legend>&lt;&lt;</legend>
<pref-width>25</pref-width>
<pref-height>25</pref-height>
</button>
<button>
<name>com-decrease-KHz</name>
<legend>&lt;</legend>
<pref-width>25</pref-width>
<pref-height>25</pref-height>
</button>
<button>
<name>com-increase-KHz</name>
<legend>&gt;</legend>
<pref-width>25</pref-width>
<pref-height>25</pref-height>
</button>
<button>
<name>com-increase-MHz</name>
<legend>&gt;&gt;</legend>
<pref-width>25</pref-width>
<pref-height>25</pref-height>
</button>
</group>
<button>
<name>toggle-nav</name>
<legend>1-2</legend>
<pref-width>50</pref-width>
<pref-height>25</pref-height>
<default-padding>0</default-padding>
<binding>
<command>property-toggle</command>
<property>/instrumentation/nav-selected</property>
</binding>
</button>
<text>
<label>BARO</label>
</text>
<dial>
<name>baro</name>
<width>20</width>
<property>/gui/dialogs/fg1000/baro</property>
</dial>
<text>
<label>CRS</label>
</text>
<dial>
<name>crs</name>
<width>20</width>
<property>/gui/dialogs/fg1000/crs</property>
<binding><command>dialog-apply</command></binding>
</dial>
<button>
<name>crs-center</name>
<legend>CRS CTR</legend>
<pref-width>75</pref-width>
<pref-height>25</pref-height>
<binding>
<command>property-toggle</command>
<property>/instrumentation/com-selected</property>
</binding>
</button>
<!-- Map Controls -->
<text><label>RANGE</label></text>
<group>
<layout>hbox</layout>
<halign>center</halign>
<default-padding>0</default-padding>
<!-- RANGE controller -->
<button>
<name>range-decr</name>
<legend>&lt;</legend>
<pref-width>25</pref-width>
<pref-height>25</pref-height>
<binding>
<command>property-assign</command>
<property>/sim/gui/dialogs/fg1000/range-incr-pressed</property>
<value>1</value>
</binding>
</button>
<button>
<name>range-incr</name>
<legend>&gt;</legend>
<pref-width>25</pref-width>
<pref-height>25</pref-height>
<binding>
<command>property-assign</command>
<property>/sim/gui/dialogs/fg1000/range-decr-pressed</property>
<value>1</value>
</binding>
</button>
</group>
<group>
<layout>table</layout>
<halign>center</halign>
<default-padding>0</default-padding>
<button>
<row>0</row><col>1</col>
<pref-width>25</pref-width>
<pref-height>25</pref-height>
<name>map-up</name>
<legend>^</legend>
</button>
<button>
<row>1</row><col>0</col>
<pref-width>25</pref-width>
<pref-height>25</pref-height>
<name>map-left</name>
<legend>&lt;</legend>
</button>
<button>
<row>1</row><col>1</col>
<pref-width>25</pref-width>
<pref-height>25</pref-height>
<name>map-ptr</name>
<legend>PTR</legend>
</button>
<button>
<row>1</row><col>2</col>
<pref-width>25</pref-width>
<pref-height>25</pref-height>
<name>map-right</name>
<legend>&gt;</legend>
</button>
<button>
<row>2</row><col>1</col>
<pref-width>25</pref-width>
<pref-height>25</pref-height>
<name>map-down</name>
<legend>v</legend>
</button>
</group>
<group>
<!-- FMS Controls -->
<layout>table</layout>
<halign>center</halign>
<button>
<col>0</col><row>0</row>
<pref-width>40</pref-width>
<pref-height>25</pref-height>
<name>DTO</name>
<legend>DTO</legend>
</button>
<button>
<col>1</col><row>0</row>
<pref-width>40</pref-width>
<pref-height>25</pref-height>
<name>menu</name>
<legend>MENU</legend>
</button>
<button>
<col>0</col><row>1</row>
<pref-width>40</pref-width>
<pref-height>25</pref-height>
<name>FPL</name>
<legend>FPL</legend>
</button>
<button>
<col>1</col><row>1</row>
<pref-width>40</pref-width>
<pref-height>25</pref-height>
<name>PROC</name>
<legend>PROC</legend>
</button>
<button>
<col>0</col><row>2</row>
<pref-width>40</pref-width>
<pref-height>25</pref-height>
<name>CLR</name>
<legend>CLR</legend>
</button>
<button>
<col>1</col><row>2</row>
<pref-width>40</pref-width>
<pref-height>25</pref-height>
<name>ENT</name>
<legend>ENT</legend>
</button>
</group>
<text><label>FMS</label></text>
<group>
<layout>hbox</layout>
<halign>center</halign>
<default-padding>0</default-padding>
<!-- FMS controller -->
<button>
<name>fms-decr-large</name>
<legend>&lt;&lt;</legend>
<pref-width>25</pref-width>
<pref-height>25</pref-height>
<binding>
<command>property-assign</command>
<property>/sim/gui/dialogs/fg1000/fms-decr-large-pressed</property>
<value>1</value>
</binding>
</button>
<button>
<name>fms-decr-small</name>
<legend>&lt;</legend>
<pref-width>25</pref-width>
<pref-height>25</pref-height>
<binding>
<command>property-assign</command>
<property>/sim/gui/dialogs/fg1000/fms-decr-small-pressed</property>
<value>1</value>
</binding>
</button>
<button>
<name>fms-incr-small</name>
<legend>&gt;</legend>
<pref-width>25</pref-width>
<pref-height>25</pref-height>
<binding>
<command>property-assign</command>
<property>/sim/gui/dialogs/fg1000/fms-incr-small-pressed</property>
<value>1</value>
</binding>
</button>
<button>
<name>fms-incr-large</name>
<legend>&gt;&gt;</legend>
<pref-width>25</pref-width>
<pref-height>25</pref-height>
<binding>
<command>property-assign</command>
<property>/sim/gui/dialogs/fg1000/fms-incr-large-pressed</property>
<value>1</value>
</binding>
</button>
</group>
<button>
<name>crsr</name>
<legend>CRSR</legend>
<pref-width>50</pref-width>
<pref-height>25</pref-height>
</button>
</group>
</group>
</PropertyList>