47 lines
1.2 KiB
Text
47 lines
1.2 KiB
Text
|
# See: http://wiki.flightgear.org/MapStructure
|
||
|
# Class things:
|
||
|
var name = 'ALT-profile';
|
||
|
var parents = [SymbolLayer.Controller];
|
||
|
var __self__ = caller(0)[0];
|
||
|
SymbolLayer.Controller.add(name, __self__);
|
||
|
SymbolLayer.add(name, {
|
||
|
parents: [MultiSymbolLayer],
|
||
|
type: name, # Symbol type
|
||
|
df_controller: __self__, # controller to use by default -- this one
|
||
|
df_options: { # default configuration options
|
||
|
active_node: "/autopilot/route-manager/active",
|
||
|
vnav_node: "/autopilot/route-manager/vnav/",
|
||
|
types: ["tc", "td", "sc", "ed"],
|
||
|
}
|
||
|
});
|
||
|
var new = func(layer) {
|
||
|
var m = {
|
||
|
parents: [__self__],
|
||
|
layer: layer,
|
||
|
map: layer.map,
|
||
|
listeners: [],
|
||
|
};
|
||
|
layer.searcher._equals = func(a,b) a.getName() == b.getName();
|
||
|
append(m.listeners, setlistener(layer.options.active_node, func m.layer.update() ));
|
||
|
m.addVisibilityListener();
|
||
|
|
||
|
return m;
|
||
|
};
|
||
|
var del = func() {
|
||
|
foreach (var l; me.listeners)
|
||
|
removelistener(l);
|
||
|
};
|
||
|
|
||
|
var searchCmd = func {
|
||
|
var results = [];
|
||
|
var symNode = props.globals.getNode(me.layer.options.vnav_node);
|
||
|
if (symNode != nil)
|
||
|
foreach (var t; me.layer.options.types) {
|
||
|
var n = symNode.getNode(t);
|
||
|
if (n != nil)
|
||
|
append(results, n);
|
||
|
}
|
||
|
return results;
|
||
|
}
|
||
|
|