Merge commit '9fd7e88'
This commit is contained in:
commit
2d00d51107
3 changed files with 142 additions and 80 deletions
|
@ -155,7 +155,7 @@ _setlistener("/sim/signals/nasal-dir-initialized", func {
|
||||||
menubarAutoVisibilityListener = setlistener( "/devices/status/mice/mouse/y", func(n) {
|
menubarAutoVisibilityListener = setlistener( "/devices/status/mice/mouse/y", func(n) {
|
||||||
if( n.getValue() == nil ) return;
|
if( n.getValue() == nil ) return;
|
||||||
if( mouseMode.getValue() != 0 ) return;
|
if( mouseMode.getValue() != 0 ) return;
|
||||||
|
|
||||||
if( n.getValue() <= menubarAutoVisibilityEdge.getValue() )
|
if( n.getValue() <= menubarAutoVisibilityEdge.getValue() )
|
||||||
menubarVisibility.setBoolValue( 1 );
|
menubarVisibility.setBoolValue( 1 );
|
||||||
|
|
||||||
|
@ -372,10 +372,10 @@ var OverlaySelector = {
|
||||||
|
|
||||||
var m = Dialog.new(data.getNode("dialog", 1), "gui/dialogs/overlay-select.xml", name);
|
var m = Dialog.new(data.getNode("dialog", 1), "gui/dialogs/overlay-select.xml", name);
|
||||||
m.parents = [OverlaySelector, Dialog];
|
m.parents = [OverlaySelector, Dialog];
|
||||||
|
|
||||||
# resolve the path in FG_ROOT, and --fg-aircraft dir, etc
|
# resolve the path in FG_ROOT, and --fg-aircraft dir, etc
|
||||||
m.dir = resolvepath(dir) ~ "/";
|
m.dir = resolvepath(dir) ~ "/";
|
||||||
|
|
||||||
var relpath = func(p) substr(p, p[0] == `/`);
|
var relpath = func(p) substr(p, p[0] == `/`);
|
||||||
m.nameprop = relpath(nameprop);
|
m.nameprop = relpath(nameprop);
|
||||||
m.sortprop = relpath(sortprop or nameprop);
|
m.sortprop = relpath(sortprop or nameprop);
|
||||||
|
@ -724,8 +724,17 @@ var showWeightDialog = func {
|
||||||
dialog[name].set("name", name);
|
dialog[name].set("name", name);
|
||||||
dialog[name].set("layout", "vbox");
|
dialog[name].set("layout", "vbox");
|
||||||
|
|
||||||
var header = dialog[name].addChild("text");
|
var header = dialog[name].addChild("group");
|
||||||
header.set("label", title);
|
header.set("layout", "hbox");
|
||||||
|
header.addChild("empty").set("stretch", "1");
|
||||||
|
header.addChild("text").set("label", title);
|
||||||
|
header.addChild("empty").set("stretch", "1");
|
||||||
|
var w = header.addChild("button");
|
||||||
|
w.set("pref-width", 16);
|
||||||
|
w.set("pref-height", 16);
|
||||||
|
w.set("legend", "");
|
||||||
|
w.set("default", 0);
|
||||||
|
w.setBinding("dialog-close");
|
||||||
|
|
||||||
dialog[name].addChild("hrule");
|
dialog[name].addChild("hrule");
|
||||||
|
|
||||||
|
@ -801,15 +810,17 @@ var showWeightDialog = func {
|
||||||
weightitem = nil;
|
weightitem = nil;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
dialog[name].addChild("hrule");
|
||||||
|
|
||||||
var buttonBar = dialog[name].addChild("group");
|
var buttonBar = dialog[name].addChild("group");
|
||||||
buttonBar.set("layout", "hbox");
|
buttonBar.set("layout", "hbox");
|
||||||
buttonBar.set("default-padding", 10);
|
buttonBar.set("default-padding", 10);
|
||||||
|
|
||||||
var ok = buttonBar.addChild("button");
|
var close = buttonBar.addChild("button");
|
||||||
ok.set("legend", "OK");
|
close.set("legend", "Close");
|
||||||
ok.set("key", "esc");
|
close.set("default", "true");
|
||||||
ok.setBinding("dialog-apply");
|
close.set("key", "Enter");
|
||||||
ok.setBinding("dialog-close");
|
close.setBinding("dialog-close");
|
||||||
|
|
||||||
# Temporary helper function
|
# Temporary helper function
|
||||||
var tcell = func(parent, type, row, col) {
|
var tcell = func(parent, type, row, col) {
|
||||||
|
|
|
@ -216,12 +216,12 @@ var parse_msg = func (source, msg) {
|
||||||
var pos = Binary.decodeCoord(substr(msg, 6));
|
var pos = Binary.decodeCoord(substr(msg, 6));
|
||||||
var radius = Binary.decodeDouble(substr(msg, 36));
|
var radius = Binary.decodeDouble(substr(msg, 36));
|
||||||
resolve_retardant_drop(pos, radius, 0, 0);
|
resolve_retardant_drop(pos, radius, 0, 0);
|
||||||
}
|
}
|
||||||
if (type == 4) {
|
if (type == 4) {
|
||||||
var pos = Binary.decodeCoord(substr(msg, 6));
|
var pos = Binary.decodeCoord(substr(msg, 6));
|
||||||
var radius = Binary.decodeDouble(substr(msg, 36));
|
var radius = Binary.decodeDouble(substr(msg, 36));
|
||||||
resolve_foam_drop(pos, radius, 0, 0);
|
resolve_foam_drop(pos, radius, 0, 0);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
###############################################################################
|
###############################################################################
|
||||||
|
@ -356,7 +356,7 @@ var FireCell = {
|
||||||
CAFire.set_cell(me.x + d[0], me.y + d[1],
|
CAFire.set_cell(me.x + d[0], me.y + d[1],
|
||||||
FireCell.new(me.x + d[0],
|
FireCell.new(me.x + d[0],
|
||||||
me.y + d[1]));
|
me.y + d[1]));
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
foreach (var d; CAFire.NEIGHBOURS[1]) {
|
foreach (var d; CAFire.NEIGHBOURS[1]) {
|
||||||
|
@ -385,7 +385,7 @@ var CellModel = {
|
||||||
############################################################
|
############################################################
|
||||||
new : func (x, y, alt) {
|
new : func (x, y, alt) {
|
||||||
var m = { parents: [CellModel] };
|
var m = { parents: [CellModel] };
|
||||||
m.type = "none";
|
m.type = "none";
|
||||||
m.model = nil;
|
m.model = nil;
|
||||||
m.lat = y * CAFire.CELL_SIZE/60.0 + 0.5 * CAFire.CELL_SIZE / 60.0;
|
m.lat = y * CAFire.CELL_SIZE/60.0 + 0.5 * CAFire.CELL_SIZE / 60.0;
|
||||||
m.lon = x * CAFire.CELL_SIZE/60.0 + 0.5 * CAFire.CELL_SIZE / 60.0;
|
m.lon = x * CAFire.CELL_SIZE/60.0 + 0.5 * CAFire.CELL_SIZE / 60.0;
|
||||||
|
@ -488,7 +488,7 @@ CAFireModels.update = func {
|
||||||
var c = me.pending[0];
|
var c = me.pending[0];
|
||||||
me.pending = subvec(me.pending, 1);
|
me.pending = subvec(me.pending, 1);
|
||||||
work -= 1;
|
work -= 1;
|
||||||
if (contains(c, "alt")) {
|
if (contains(c, "alt")) {
|
||||||
if (me.grid[c.x] == nil) {
|
if (me.grid[c.x] == nil) {
|
||||||
me.grid[c.x] = {};
|
me.grid[c.x] = {};
|
||||||
}
|
}
|
||||||
|
@ -606,7 +606,7 @@ CAFire.ignite = func (lat, lon) {
|
||||||
# Resolve a water drop.
|
# Resolve a water drop.
|
||||||
# For now: Assume that water makes the affected cell nonflammable forever
|
# For now: Assume that water makes the affected cell nonflammable forever
|
||||||
# and extinguishes it if burning.
|
# and extinguishes it if burning.
|
||||||
# radius - meter : double
|
# radius - meter : double
|
||||||
# Note: volume is unused ATM.
|
# Note: volume is unused ATM.
|
||||||
CAFire.resolve_water_drop = func (lat, lon, radius, volume=0) {
|
CAFire.resolve_water_drop = func (lat, lon, radius, volume=0) {
|
||||||
trace("CAFire.resolve_water_drop: Dumping water at " ~ lat ~", " ~ lon ~
|
trace("CAFire.resolve_water_drop: Dumping water at " ~ lat ~", " ~ lon ~
|
||||||
|
@ -652,7 +652,7 @@ CAFire.resolve_retardant_drop = func (lat, lon, radius, volume=0) {
|
||||||
# Resolve a foam drop.
|
# Resolve a foam drop.
|
||||||
# For now: Assume that water makes the affected cell nonflammable forever
|
# For now: Assume that water makes the affected cell nonflammable forever
|
||||||
# and extinguishes it if burning.
|
# and extinguishes it if burning.
|
||||||
# radius - meter : double
|
# radius - meter : double
|
||||||
# Note: volume is unused ATM.
|
# Note: volume is unused ATM.
|
||||||
CAFire.resolve_foam_drop = func (lat, lon, radius, volume=0) {
|
CAFire.resolve_foam_drop = func (lat, lon, radius, volume=0) {
|
||||||
trace("CAFire.resolve_foam_drop: Dumping foam at " ~ lat ~", " ~ lon ~
|
trace("CAFire.resolve_foam_drop: Dumping foam at " ~ lat ~", " ~ lon ~
|
||||||
|
@ -904,7 +904,7 @@ _setlistener("/sim/signals/nasal-dir-initialized", func {
|
||||||
if (getprop(save_on_exit_pp))
|
if (getprop(save_on_exit_pp))
|
||||||
CAFire.save_event_log(SAVEDIR ~ "fire_log.xml");
|
CAFire.save_event_log(SAVEDIR ~ "fire_log.xml");
|
||||||
});
|
});
|
||||||
|
|
||||||
if (getprop(restore_on_startup_pp)) {
|
if (getprop(restore_on_startup_pp)) {
|
||||||
settimer(func {
|
settimer(func {
|
||||||
# Delay loading the log until the terrain is there. Note: hack.
|
# Delay loading the log until the terrain is there. Note: hack.
|
||||||
|
@ -952,7 +952,7 @@ var dialog = {
|
||||||
me.x = x;
|
me.x = x;
|
||||||
me.y = y;
|
me.y = y;
|
||||||
me.bg = [0, 0, 0, 0.3]; # background color
|
me.bg = [0, 0, 0, 0.3]; # background color
|
||||||
me.fg = [[1.0, 1.0, 1.0, 1.0]];
|
me.fg = [[1.0, 1.0, 1.0, 1.0]];
|
||||||
#
|
#
|
||||||
# "private"
|
# "private"
|
||||||
me.title = "Wildfire";
|
me.title = "Wildfire";
|
||||||
|
@ -979,12 +979,12 @@ var dialog = {
|
||||||
titlebar.set("layout", "hbox");
|
titlebar.set("layout", "hbox");
|
||||||
titlebar.addChild("empty").set("stretch", 1);
|
titlebar.addChild("empty").set("stretch", 1);
|
||||||
titlebar.addChild("text").set("label", "Wildfire settings");
|
titlebar.addChild("text").set("label", "Wildfire settings");
|
||||||
|
titlebar.addChild("empty").set("stretch", 1);
|
||||||
var w = titlebar.addChild("button");
|
var w = titlebar.addChild("button");
|
||||||
w.set("pref-width", 16);
|
w.set("pref-width", 16);
|
||||||
w.set("pref-height", 16);
|
w.set("pref-height", 16);
|
||||||
w.set("legend", "");
|
w.set("legend", "");
|
||||||
w.set("default", 0);
|
w.set("default", 0);
|
||||||
w.set("key", "esc");
|
|
||||||
w.setBinding("nasal", "wildfire.dialog.destroy(); ");
|
w.setBinding("nasal", "wildfire.dialog.destroy(); ");
|
||||||
w.setBinding("dialog-close");
|
w.setBinding("dialog-close");
|
||||||
me.dialog.addChild("hrule");
|
me.dialog.addChild("hrule");
|
||||||
|
@ -1011,13 +1011,25 @@ var dialog = {
|
||||||
}
|
}
|
||||||
me.dialog.addChild("hrule");
|
me.dialog.addChild("hrule");
|
||||||
|
|
||||||
|
# Buttons
|
||||||
|
var buttons = me.dialog.addChild("group");
|
||||||
|
buttons.node.setValues({"layout" : "hbox"});
|
||||||
|
|
||||||
# Load button.
|
# Load button.
|
||||||
var load = me.dialog.addChild("button");
|
var load = buttons.addChild("button");
|
||||||
load.node.setValues({"legend" : "Load Wildfire log",
|
load.node.setValues({"legend" : "Load Wildfire log",
|
||||||
"halign" : "center"});
|
"halign" : "center"});
|
||||||
load.setBinding("nasal",
|
load.setBinding("nasal",
|
||||||
"wildfire.dialog.select_and_load()");
|
"wildfire.dialog.select_and_load()");
|
||||||
|
|
||||||
|
# Close button
|
||||||
|
var close = buttons.addChild("button");
|
||||||
|
close.node.setValues({"legend" : "Close",
|
||||||
|
"default" : "true",
|
||||||
|
"key" : "Esc"});
|
||||||
|
close.setBinding("nasal", "wildfire.dialog.destroy();");
|
||||||
|
close.setBinding("dialog-close");
|
||||||
|
|
||||||
fgcommand("dialog-new", me.dialog.prop());
|
fgcommand("dialog-new", me.dialog.prop());
|
||||||
fgcommand("dialog-show", me.namenode);
|
fgcommand("dialog-show", me.namenode);
|
||||||
},
|
},
|
||||||
|
|
|
@ -21,7 +21,7 @@ command interface /autopilot/route-manager/input:
|
||||||
var ft = getprop("/sim/startup/units") == "feet";
|
var ft = getprop("/sim/startup/units") == "feet";
|
||||||
var dlg = props.globals.getNode("/sim/gui/dialogs/route-manager", 1);
|
var dlg = props.globals.getNode("/sim/gui/dialogs/route-manager", 1);
|
||||||
var selection = dlg.getNode("selection", 1);
|
var selection = dlg.getNode("selection", 1);
|
||||||
var input = dlg.getNode("input", 1);
|
var input = dlg.getNode("input", 1);
|
||||||
var routem = props.globals.getNode("/autopilot/route-manager", 1);
|
var routem = props.globals.getNode("/autopilot/route-manager", 1);
|
||||||
|
|
||||||
selection.setIntValue(-1);
|
selection.setIntValue(-1);
|
||||||
|
@ -32,7 +32,7 @@ command interface /autopilot/route-manager/input:
|
||||||
var route = routem.getNode("route", 1);
|
var route = routem.getNode("route", 1);
|
||||||
var dep = routem.getNode("departure", 1);
|
var dep = routem.getNode("departure", 1);
|
||||||
var dest = routem.getNode("destination", 1);
|
var dest = routem.getNode("destination", 1);
|
||||||
|
|
||||||
var sel_index = func {
|
var sel_index = func {
|
||||||
return int(selection.getValue());
|
return int(selection.getValue());
|
||||||
}
|
}
|
||||||
|
@ -47,10 +47,10 @@ command interface /autopilot/route-manager/input:
|
||||||
# when selection index is valid, insert *after* the waypoint
|
# when selection index is valid, insert *after* the waypoint
|
||||||
insertIndex = insertIndex + 1;
|
insertIndex = insertIndex + 1;
|
||||||
}
|
}
|
||||||
|
|
||||||
cmd.setValue("@insert" ~ insertIndex ~ ":" ~ input.getValue());
|
cmd.setValue("@insert" ~ insertIndex ~ ":" ~ input.getValue());
|
||||||
input.setValue("");
|
input.setValue("");
|
||||||
|
|
||||||
if (insertIndex >= 0) {
|
if (insertIndex >= 0) {
|
||||||
selection.setValue(insertIndex);
|
selection.setValue(insertIndex);
|
||||||
gui.dialog_update("route-manager");
|
gui.dialog_update("route-manager");
|
||||||
|
@ -60,15 +60,15 @@ command interface /autopilot/route-manager/input:
|
||||||
var remove = func {
|
var remove = func {
|
||||||
cmd.setValue("@delete" ~ sel_index());
|
cmd.setValue("@delete" ~ sel_index());
|
||||||
}
|
}
|
||||||
|
|
||||||
var route = func {
|
var route = func {
|
||||||
cmd.setValue("@route" ~ sel_index());
|
cmd.setValue("@route" ~ sel_index());
|
||||||
}
|
}
|
||||||
|
|
||||||
var jump_to = func {
|
var jump_to = func {
|
||||||
cmd.setValue("@jump" ~ sel_index());
|
cmd.setValue("@jump" ~ sel_index());
|
||||||
}
|
}
|
||||||
|
|
||||||
var load_route = func(path) {
|
var load_route = func(path) {
|
||||||
routem.getNode("file-path", 1).setValue(path.getValue());
|
routem.getNode("file-path", 1).setValue(path.getValue());
|
||||||
cmd.setValue("@load");
|
cmd.setValue("@load");
|
||||||
|
@ -80,26 +80,26 @@ command interface /autopilot/route-manager/input:
|
||||||
cmd.setValue("@save");
|
cmd.setValue("@save");
|
||||||
gui.dialog_update("route-manager");
|
gui.dialog_update("route-manager");
|
||||||
}
|
}
|
||||||
|
|
||||||
var file_selector = gui.FileSelector.new(load_route, "Load flight-plan", "Load");
|
var file_selector = gui.FileSelector.new(load_route, "Load flight-plan", "Load");
|
||||||
var save_selector = gui.FileSelector.new(save_route, "Save flight-plan", "Save");
|
var save_selector = gui.FileSelector.new(save_route, "Save flight-plan", "Save");
|
||||||
|
|
||||||
var activate_fp = func {
|
var activate_fp = func {
|
||||||
cmd.setValue("@activate");
|
cmd.setValue("@activate");
|
||||||
}
|
}
|
||||||
|
|
||||||
var departureRunways = dlg.getNode("departure-runways", 1);
|
var departureRunways = dlg.getNode("departure-runways", 1);
|
||||||
var destRunways = dlg.getNode("destination-runways", 1);
|
var destRunways = dlg.getNode("destination-runways", 1);
|
||||||
var sids = dlg.getNode("sids", 1);
|
var sids = dlg.getNode("sids", 1);
|
||||||
var stars = dlg.getNode("stars", 1);
|
var stars = dlg.getNode("stars", 1);
|
||||||
|
|
||||||
var updateRunways = func {
|
var updateRunways = func {
|
||||||
var depIcao = dep.getNode("airport").getValue();
|
var depIcao = dep.getNode("airport").getValue();
|
||||||
departureRunways.removeChildren("value");
|
departureRunways.removeChildren("value");
|
||||||
|
|
||||||
var currentRunway = dep.getNode("runway").getValue();
|
var currentRunway = dep.getNode("runway").getValue();
|
||||||
var foundCurrent = 0;
|
var foundCurrent = 0;
|
||||||
|
|
||||||
var apt = airportinfo(depIcao);
|
var apt = airportinfo(depIcao);
|
||||||
if (apt != nil) {
|
if (apt != nil) {
|
||||||
var i=0;
|
var i=0;
|
||||||
|
@ -111,16 +111,16 @@ command interface /autopilot/route-manager/input:
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
if (!foundCurrent) {
|
if (!foundCurrent) {
|
||||||
dep.getNode("runway").clearValue();
|
dep.getNode("runway").clearValue();
|
||||||
}
|
}
|
||||||
|
|
||||||
var destIcao = dest.getNode("airport").getValue();
|
var destIcao = dest.getNode("airport").getValue();
|
||||||
destRunways.removeChildren("value");
|
destRunways.removeChildren("value");
|
||||||
currentRunway = dest.getNode("runway").getValue();
|
currentRunway = dest.getNode("runway").getValue();
|
||||||
foundCurrent = 0;
|
foundCurrent = 0;
|
||||||
|
|
||||||
var apt = airportinfo(destIcao);
|
var apt = airportinfo(destIcao);
|
||||||
if (apt != nil) {
|
if (apt != nil) {
|
||||||
var i=0;
|
var i=0;
|
||||||
|
@ -132,15 +132,15 @@ command interface /autopilot/route-manager/input:
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
if (!foundCurrent) {
|
if (!foundCurrent) {
|
||||||
dest.getNode("runway").clearValue();
|
dest.getNode("runway").clearValue();
|
||||||
}
|
}
|
||||||
|
|
||||||
print("updated runways");
|
print("updated runways");
|
||||||
gui.dialog_update("route-manager");
|
gui.dialog_update("route-manager");
|
||||||
}
|
}
|
||||||
|
|
||||||
var updateSIDs = func {
|
var updateSIDs = func {
|
||||||
sids.removeChildren("value");
|
sids.removeChildren("value");
|
||||||
var depIcao = dep.getNode("airport").getValue();
|
var depIcao = dep.getNode("airport").getValue();
|
||||||
|
@ -151,17 +151,17 @@ command interface /autopilot/route-manager/input:
|
||||||
gui.dialog_update("route-manager", "sid");
|
gui.dialog_update("route-manager", "sid");
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
sids.getNode("value[0]", 1).setValue("(none)");
|
sids.getNode("value[0]", 1).setValue("(none)");
|
||||||
var i=1;
|
var i=1;
|
||||||
foreach (var s; apt.runways[rwy].sids) {
|
foreach (var s; apt.runways[rwy].sids) {
|
||||||
sids.getNode("value[" ~ i ~ "]", 1).setValue(s);
|
sids.getNode("value[" ~ i ~ "]", 1).setValue(s);
|
||||||
i += 1;
|
i += 1;
|
||||||
}
|
}
|
||||||
|
|
||||||
gui.dialog_update("route-manager", "sid");
|
gui.dialog_update("route-manager", "sid");
|
||||||
}
|
}
|
||||||
|
|
||||||
var updateSTARs = func {
|
var updateSTARs = func {
|
||||||
stars.removeChildren("value");
|
stars.removeChildren("value");
|
||||||
var icao = dest.getNode("airport").getValue();
|
var icao = dest.getNode("airport").getValue();
|
||||||
|
@ -172,20 +172,20 @@ command interface /autopilot/route-manager/input:
|
||||||
gui.dialog_update("route-manager", "star");
|
gui.dialog_update("route-manager", "star");
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
var i=1;
|
var i=1;
|
||||||
stars.getNode("value[0]", 1).setValue("(none)");
|
stars.getNode("value[0]", 1).setValue("(none)");
|
||||||
foreach (var s; apt.runways[rwy].stars) {
|
foreach (var s; apt.runways[rwy].stars) {
|
||||||
stars.getNode("value[" ~ i ~ "]", 1).setValue(s);
|
stars.getNode("value[" ~ i ~ "]", 1).setValue(s);
|
||||||
i += 1;
|
i += 1;
|
||||||
}
|
}
|
||||||
|
|
||||||
gui.dialog_update("route-manager", "star");
|
gui.dialog_update("route-manager", "star");
|
||||||
}
|
}
|
||||||
|
|
||||||
# initialise departure values based on current position
|
# initialise departure values based on current position
|
||||||
cmd.setValue("@posinit");
|
cmd.setValue("@posinit");
|
||||||
|
|
||||||
updateRunways();
|
updateRunways();
|
||||||
updateSIDs();
|
updateSIDs();
|
||||||
updateSTARs();
|
updateSTARs();
|
||||||
|
@ -222,14 +222,19 @@ command interface /autopilot/route-manager/input:
|
||||||
</group>
|
</group>
|
||||||
<hrule/>
|
<hrule/>
|
||||||
<!-- departure / arrival airport information -->
|
<!-- departure / arrival airport information -->
|
||||||
|
|
||||||
<group>
|
<group>
|
||||||
<layout>hbox</layout>
|
<layout>table</layout>
|
||||||
<text>
|
<text>
|
||||||
|
<row>0</row>
|
||||||
|
<col>0</col>
|
||||||
|
<halign>right</halign>
|
||||||
<label>Departure:</label>
|
<label>Departure:</label>
|
||||||
<pref-width>80</pref-width>
|
|
||||||
</text>
|
</text>
|
||||||
<input>
|
<input>
|
||||||
|
<row>0</row>
|
||||||
|
<col>1</col>
|
||||||
|
<halign>left</halign>
|
||||||
<name>departure-airport</name>
|
<name>departure-airport</name>
|
||||||
<pref-width>60</pref-width>
|
<pref-width>60</pref-width>
|
||||||
<property>/autopilot/route-manager/departure/airport</property>
|
<property>/autopilot/route-manager/departure/airport</property>
|
||||||
|
@ -238,31 +243,38 @@ command interface /autopilot/route-manager/input:
|
||||||
<command>dialog-apply</command>
|
<command>dialog-apply</command>
|
||||||
<object-name>departure-airport</object-name>
|
<object-name>departure-airport</object-name>
|
||||||
</binding>
|
</binding>
|
||||||
|
|
||||||
<binding>
|
<binding>
|
||||||
<command>nasal</command>
|
<command>nasal</command>
|
||||||
<script>updateRunways();</script>
|
<script>updateRunways();</script>
|
||||||
</binding>
|
</binding>
|
||||||
</input>
|
</input>
|
||||||
|
|
||||||
<text>
|
<text>
|
||||||
|
<row>0</row>
|
||||||
|
<col>2</col>
|
||||||
<format>%s</format>
|
<format>%s</format>
|
||||||
<property>/autopilot/route-manager/departure/name</property>
|
<property>/autopilot/route-manager/departure/name</property>
|
||||||
<live>true</live>
|
<live>true</live>
|
||||||
<stretch>true</stretch>
|
<stretch>true</stretch>
|
||||||
<halign>fill</halign>
|
<halign>fill</halign>
|
||||||
</text>
|
</text>
|
||||||
|
|
||||||
<text>
|
<text>
|
||||||
|
<row>0</row>
|
||||||
|
<col>3</col>
|
||||||
|
<halign>right</halign>
|
||||||
<label>Rwy:</label>
|
<label>Rwy:</label>
|
||||||
</text>
|
</text>
|
||||||
<combo>
|
<combo>
|
||||||
|
<row>0</row>
|
||||||
|
<col>4</col>
|
||||||
|
<halign>left</halign>
|
||||||
<name>departure-runway</name>
|
<name>departure-runway</name>
|
||||||
<pref-width>60</pref-width>
|
|
||||||
<property>/autopilot/route-manager/departure/runway</property>
|
<property>/autopilot/route-manager/departure/runway</property>
|
||||||
<editable>false</editable>
|
<editable>false</editable>
|
||||||
<properties>/sim/gui/dialogs/route-manager/departure-runways</properties>
|
<properties>/sim/gui/dialogs/route-manager/departure-runways</properties>
|
||||||
|
|
||||||
<binding>
|
<binding>
|
||||||
<command>dialog-apply</command>
|
<command>dialog-apply</command>
|
||||||
<object-name>departure-runway</object-name>
|
<object-name>departure-runway</object-name>
|
||||||
|
@ -272,33 +284,40 @@ command interface /autopilot/route-manager/input:
|
||||||
<script>updateSIDs();</script>
|
<script>updateSIDs();</script>
|
||||||
</binding>
|
</binding>
|
||||||
</combo>
|
</combo>
|
||||||
|
|
||||||
<text>
|
<text>
|
||||||
|
<row>0</row>
|
||||||
|
<col>5</col>
|
||||||
|
<halign>right</halign>
|
||||||
<label>SID:</label>
|
<label>SID:</label>
|
||||||
</text>
|
</text>
|
||||||
<combo>
|
<combo>
|
||||||
|
<row>0</row>
|
||||||
|
<col>6</col>
|
||||||
|
<halign>left</halign>
|
||||||
<name>sid</name>
|
<name>sid</name>
|
||||||
<pref-width>100</pref-width>
|
|
||||||
<property>/autopilot/route-manager/departure/sid</property>
|
<property>/autopilot/route-manager/departure/sid</property>
|
||||||
<editable>false</editable>
|
<editable>false</editable>
|
||||||
<properties>/sim/gui/dialogs/route-manager/sids</properties>
|
<properties>/sim/gui/dialogs/route-manager/sids</properties>
|
||||||
|
|
||||||
<binding>
|
<binding>
|
||||||
<command>dialog-apply</command>
|
<command>dialog-apply</command>
|
||||||
<object-name>sid</object-name>
|
<object-name>sid</object-name>
|
||||||
</binding>
|
</binding>
|
||||||
</combo>
|
</combo>
|
||||||
</group>
|
|
||||||
|
|
||||||
<group>
|
|
||||||
<layout>hbox</layout>
|
|
||||||
<text>
|
<text>
|
||||||
|
<row>1</row>
|
||||||
|
<col>0</col>
|
||||||
|
<halign>right</halign>
|
||||||
<label>Arrival:</label>
|
<label>Arrival:</label>
|
||||||
<pref-width>80</pref-width>
|
|
||||||
</text>
|
</text>
|
||||||
<input>
|
<input>
|
||||||
<name>destination-airport</name>
|
<row>1</row>
|
||||||
|
<col>1</col>
|
||||||
|
<halign>left</halign>
|
||||||
<pref-width>60</pref-width>
|
<pref-width>60</pref-width>
|
||||||
|
<name>destination-airport</name>
|
||||||
<property>/autopilot/route-manager/destination/airport</property>
|
<property>/autopilot/route-manager/destination/airport</property>
|
||||||
<live>true</live>
|
<live>true</live>
|
||||||
<binding>
|
<binding>
|
||||||
|
@ -311,44 +330,57 @@ command interface /autopilot/route-manager/input:
|
||||||
</binding>
|
</binding>
|
||||||
</input>
|
</input>
|
||||||
<text>
|
<text>
|
||||||
|
<row>1</row>
|
||||||
|
<col>2</col>
|
||||||
<stretch>true</stretch>
|
<stretch>true</stretch>
|
||||||
|
<pref-width>200</pref-width>
|
||||||
<format>%s</format>
|
<format>%s</format>
|
||||||
<property>/autopilot/route-manager/destination/name</property>
|
<property>/autopilot/route-manager/destination/name</property>
|
||||||
<live>true</live>
|
<live>true</live>
|
||||||
<halign>fill</halign>
|
<halign>fill</halign>
|
||||||
</text>
|
</text>
|
||||||
|
|
||||||
<text>
|
<text>
|
||||||
|
<row>1</row>
|
||||||
|
<col>3</col>
|
||||||
|
<halign>right</halign>
|
||||||
<label>Rwy:</label>
|
<label>Rwy:</label>
|
||||||
</text>
|
</text>
|
||||||
<combo>
|
<combo>
|
||||||
|
<row>1</row>
|
||||||
|
<col>4</col>
|
||||||
|
<halign>left</halign>
|
||||||
<name>destination-runway</name>
|
<name>destination-runway</name>
|
||||||
<pref-width>60</pref-width>
|
|
||||||
<property>/autopilot/route-manager/destination/runway</property>
|
<property>/autopilot/route-manager/destination/runway</property>
|
||||||
<editable>false</editable>
|
<editable>false</editable>
|
||||||
<properties>/sim/gui/dialogs/route-manager/destination-runways</properties>
|
<properties>/sim/gui/dialogs/route-manager/destination-runways</properties>
|
||||||
|
|
||||||
<binding>
|
<binding>
|
||||||
<command>dialog-apply</command>
|
<command>dialog-apply</command>
|
||||||
<object-name>destination-runway</object-name>
|
<object-name>destination-runway</object-name>
|
||||||
</binding>
|
</binding>
|
||||||
|
|
||||||
<binding>
|
<binding>
|
||||||
<command>nasal</command>
|
<command>nasal</command>
|
||||||
<script>updateSTARs();</script>
|
<script>updateSTARs();</script>
|
||||||
</binding>
|
</binding>
|
||||||
</combo>
|
</combo>
|
||||||
|
|
||||||
<text>
|
<text>
|
||||||
|
<row>1</row>
|
||||||
|
<col>5</col>
|
||||||
|
<halign>right</halign>
|
||||||
<label>STAR:</label>
|
<label>STAR:</label>
|
||||||
</text>
|
</text>
|
||||||
<combo>
|
<combo>
|
||||||
|
<row>1</row>
|
||||||
|
<col>6</col>
|
||||||
|
<halign>left</halign>
|
||||||
<name>star</name>
|
<name>star</name>
|
||||||
<pref-width>100</pref-width>
|
|
||||||
<property>/autopilot/route-manager/destination/star</property>
|
<property>/autopilot/route-manager/destination/star</property>
|
||||||
<editable>false</editable>
|
<editable>false</editable>
|
||||||
<properties>/sim/gui/dialogs/route-manager/stars</properties>
|
<properties>/sim/gui/dialogs/route-manager/stars</properties>
|
||||||
|
|
||||||
<binding>
|
<binding>
|
||||||
<command>dialog-apply</command>
|
<command>dialog-apply</command>
|
||||||
<object-name>star</object-name>
|
<object-name>star</object-name>
|
||||||
|
@ -369,38 +401,38 @@ command interface /autopilot/route-manager/input:
|
||||||
<pref-width>150</pref-width>
|
<pref-width>150</pref-width>
|
||||||
<property>/autopilot/route-manager/alternate/airport</property>
|
<property>/autopilot/route-manager/alternate/airport</property>
|
||||||
</input>
|
</input>
|
||||||
|
|
||||||
</group>
|
</group>
|
||||||
-->
|
-->
|
||||||
<group>
|
<group>
|
||||||
<layout>hbox</layout>
|
<layout>hbox</layout>
|
||||||
<text>
|
<text>
|
||||||
|
<halign>right</halign>
|
||||||
<label>Cruise Speed (kts):</label>
|
<label>Cruise Speed (kts):</label>
|
||||||
<pref-width>80</pref-width>
|
|
||||||
</text>
|
</text>
|
||||||
<input>
|
<input>
|
||||||
<name>cruise-speed</name>
|
<name>cruise-speed</name>
|
||||||
<live>true</live>
|
<live>true</live>
|
||||||
<halign>fill</halign>
|
<halign>left</halign>
|
||||||
<stretch>true</stretch>
|
<stretch>true</stretch>
|
||||||
<pref-width>150</pref-width>
|
<pref-width>100</pref-width>
|
||||||
<property>/autopilot/route-manager/cruise/speed-kts</property>
|
<property>/autopilot/route-manager/cruise/speed-kts</property>
|
||||||
</input>
|
</input>
|
||||||
|
|
||||||
<text>
|
<text>
|
||||||
<label>Cruise Altitude (ft/FL):</label>
|
<label>Cruise Altitude (ft/FL):</label>
|
||||||
<pref-width>80</pref-width>
|
<halign>right</halign>
|
||||||
</text>
|
</text>
|
||||||
<input>
|
<input>
|
||||||
<name>cruise-alt</name>
|
<name>cruise-alt</name>
|
||||||
<live>true</live>
|
<live>true</live>
|
||||||
<halign>fill</halign>
|
<halign>left</halign>
|
||||||
<stretch>true</stretch>
|
<stretch>true</stretch>
|
||||||
<pref-width>150</pref-width>
|
<pref-width>100</pref-width>
|
||||||
<property>/autopilot/route-manager/cruise/altitude-ft</property>
|
<property>/autopilot/route-manager/cruise/altitude-ft</property>
|
||||||
</input>
|
</input>
|
||||||
</group>
|
</group>
|
||||||
|
|
||||||
<hrule/>
|
<hrule/>
|
||||||
|
|
||||||
<group>
|
<group>
|
||||||
|
@ -560,7 +592,7 @@ command interface /autopilot/route-manager/input:
|
||||||
<script>activate_fp()</script>
|
<script>activate_fp()</script>
|
||||||
</binding>
|
</binding>
|
||||||
</button>
|
</button>
|
||||||
|
|
||||||
<empty><stretch>true</stretch></empty>
|
<empty><stretch>true</stretch></empty>
|
||||||
|
|
||||||
<button>
|
<button>
|
||||||
|
@ -582,5 +614,12 @@ command interface /autopilot/route-manager/input:
|
||||||
<script>save_selector.open();</script>
|
<script>save_selector.open();</script>
|
||||||
</binding>
|
</binding>
|
||||||
</button>
|
</button>
|
||||||
|
<button>
|
||||||
|
<legend>Close</legend>
|
||||||
|
<key>Esc</key>
|
||||||
|
<binding>
|
||||||
|
<command>dialog-close</command>
|
||||||
|
</binding>
|
||||||
|
</button>
|
||||||
</group>
|
</group>
|
||||||
</PropertyList>
|
</PropertyList>
|
||||||
|
|
Loading…
Reference in a new issue