some more object-oriented-ness & cleanup
This commit is contained in:
parent
ec42d928df
commit
f7c5a40597
1 changed files with 16 additions and 15 deletions
|
@ -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>
|
||||||
|
|
||||||
|
|
Loading…
Add table
Reference in a new issue