1
0
Fork 0

some more object-oriented-ness & cleanup

This commit is contained in:
mfranz 2006-04-06 09:48:38 +00:00
parent ec42d928df
commit f7c5a40597

View file

@ -44,27 +44,34 @@
m.enabled = 0; m.enabled = 0;
m.mode = options[0]; m.mode = options[0];
m.options = []; m.options = [];
var node = props.globals.getNode("/autopilot/locks");
if (node.getNode(name) == nil or node.getNode(name, 1).getValue() == nil) { var locks = props.globals.getNode("/autopilot/locks", 1);
node.getNode(name, 1).setValue(""); if (locks.getNode(name) == nil or locks.getNode(name, 1).getValue() == nil) {
locks.getNode(name, 1).setValue("");
} }
m.lock = locks.getNode(name);
m.active = dlg.getNode(name ~ "-active", 1); m.active = dlg.getNode(name ~ "-active", 1);
foreach (var o; options) { foreach (var o; options) {
node = dlg.getNode(o); var node = dlg.getNode(o);
if (node == nil) { if (node == nil) {
node = dlg.getNode(o, 1); node = dlg.getNode(o, 1);
node.setBoolValue(0); node.setBoolValue(0);
} }
append(m.options, node); append(m.options, node);
} }
m.listener = setlistener(m.lock, func { m.update(cmdarg().getValue()) }, 1);
return m; return m;
}, },
del : func {
removelistener(me.listener);
},
## handle checkbox ## handle checkbox
# #
enable : func { enable : func {
me.enabled = me.active.getBoolValue(); me.enabled = me.active.getBoolValue();
setprop("/autopilot/locks/" ~ me.name, me.enabled ? me.mode : ""); me.lock.setValue(me.enabled ? me.mode : "");
}, },
## handle radiobuttons ## handle radiobuttons
@ -75,7 +82,7 @@
o.setBoolValue(o.getName() == mode); o.setBoolValue(o.getName() == mode);
} }
if (me.enabled) { if (me.enabled) {
setprop("/autopilot/locks/" ~ me.name, mode); me.lock.setValue(mode);
} }
}, },
@ -104,18 +111,12 @@
var vel = Group.new("speed", ["speed-with-throttle", "speed-with-pitch-trim"]); var vel = Group.new("speed", ["speed-with-throttle", "speed-with-pitch-trim"]);
var alt = Group.new("altitude", ["altitude-hold", "vertical-speed-hold", "pitch-hold", var alt = Group.new("altitude", ["altitude-hold", "vertical-speed-hold", "pitch-hold",
"aoa-hold", "agl-hold", "gs1-hold"]); "aoa-hold", "agl-hold", "gs1-hold"]);
var lst = [
setlistener("/autopilot/locks/heading", func { hdg.update(cmdarg().getValue()) }, 1),
setlistener("/autopilot/locks/speed", func { vel.update(cmdarg().getValue()) }, 1),
setlistener("/autopilot/locks/altitude", func { alt.update(cmdarg().getValue()) }, 1),
];
</open> </open>
<close> <close>
foreach (var l; lst) { hdg.del();
removelistener(l); vel.del();
} alt.del();
</close> </close>
</nasal> </nasal>