Avoid duplication of "findElementByName" function.
Now moved to common gui.nas.
This commit is contained in:
parent
e1d0910ef5
commit
b62c1c01b7
5 changed files with 46 additions and 70 deletions
|
@ -89,11 +89,31 @@ var setCursor = func(x = nil, y = nil, cursor = nil) {
|
|||
fgcommand("set-cursor", args);
|
||||
return args.getNode("cursor").getValue();
|
||||
}
|
||||
|
||||
##
|
||||
# Supported mouse cursor types.
|
||||
#
|
||||
var cursor_types = { none: 0, pointer: 1, wait: 2, crosshair: 3, leftright: 4,
|
||||
topside: 5, bottomside: 6, leftside: 7, rightside: 8,
|
||||
topleft: 9, topright: 10, bottomleft: 11, bottomright: 12,
|
||||
};
|
||||
|
||||
##
|
||||
# Find a GUI element by given name.
|
||||
# dialog: dialog root property.
|
||||
# name: name of GUI element to be searched.
|
||||
# Returns GUI element when found, nil otherwise.
|
||||
#
|
||||
var findElementByName = func(dialog,name) {
|
||||
foreach( var child; dialog.getChildren() ) {
|
||||
var n = child.getNode( "name" );
|
||||
if( n != nil and n.getValue() == name )
|
||||
return child;
|
||||
var f = findElementByName(child, name);
|
||||
if( f != nil ) return f;
|
||||
}
|
||||
return nil;
|
||||
};
|
||||
|
||||
|
||||
########################################################################
|
||||
|
|
|
@ -26,7 +26,7 @@
|
|||
|
||||
# Populate the view combo box with a list of the available views
|
||||
initViews : func(update) {
|
||||
var combo = me.findElementByName( me.dlgRoot, "view-selector" );
|
||||
var combo = gui.findElementByName( me.dlgRoot, "view-selector" );
|
||||
if (update)
|
||||
combo.removeChildren("value");
|
||||
|
||||
|
@ -35,21 +35,21 @@
|
|||
foreach (var v; view.views) {
|
||||
var name = "Unnamed view " ~ v.getIndex();
|
||||
if (v.getNode("name") != nil) {
|
||||
name = v.getNode("name").getValue();
|
||||
name = v.getNode("name").getValue();
|
||||
}
|
||||
|
||||
# Pre-populate the combo box selected value
|
||||
if (i == current_view) {
|
||||
setprop("/sim/replay/view-name", name);
|
||||
setprop("/sim/replay/view-name", name);
|
||||
}
|
||||
if (update)
|
||||
combo.getNode("value[" ~ i ~ "]", 1).setValue(name);
|
||||
i = i + 1;
|
||||
i += 1;
|
||||
}
|
||||
},
|
||||
|
||||
open : func {
|
||||
var replaySlider = me.findElementByName( me.dlgRoot, "replay-time-slider" );
|
||||
var replaySlider = gui.findElementByName( me.dlgRoot, "replay-time-slider" );
|
||||
me.maxProp = replaySlider.getChild("max");
|
||||
me.minProp = replaySlider.getChild("min");
|
||||
me.speedUpListenerId = setlistener( "/sim/speed-up", func(n) { me.updateListener(n); }, 1, 1 );
|
||||
|
@ -72,24 +72,13 @@
|
|||
}
|
||||
setprop("/sim/gui/dialogs/replay/time-factor","" ~ SpeedUp ~ "x");
|
||||
me.initViews(0);
|
||||
},
|
||||
},
|
||||
|
||||
close : func {
|
||||
removelistener( me.speedUpListenerId );
|
||||
removelistener( me.viewListenerId );
|
||||
},
|
||||
|
||||
findElementByName : func(base,name) {
|
||||
foreach( var child; base.getChildren() ) {
|
||||
var n = child.getNode( "name" );
|
||||
if( n != nil and n.getValue() == name )
|
||||
return child;
|
||||
var f = me.findElementByName(child,name);
|
||||
if( f != nil ) return f;
|
||||
}
|
||||
return nil;
|
||||
},
|
||||
|
||||
};
|
||||
|
||||
var controller = ReplayDialogController.new( cmdarg() );
|
||||
|
@ -147,7 +136,7 @@
|
|||
<object-name>replay-looped</object-name>
|
||||
</binding>
|
||||
</checkbox>
|
||||
<input>
|
||||
<input>
|
||||
<name>replay-duration</name>
|
||||
<pref-width>40</pref-width>
|
||||
<color>
|
||||
|
@ -161,7 +150,7 @@
|
|||
<command>dialog-apply</command>
|
||||
<object-name>replay-duration</object-name>
|
||||
</binding>
|
||||
</input>
|
||||
</input>
|
||||
|
||||
<empty><pref-width>40</pref-width></empty>
|
||||
|
||||
|
@ -214,8 +203,8 @@
|
|||
<alpha type="float">0.8</alpha>
|
||||
</color>
|
||||
<binding>
|
||||
<command>nasal</command>
|
||||
<script>controls.speedup(-1);</script>
|
||||
<command>nasal</command>
|
||||
<script>controls.speedup(-1);</script>
|
||||
</binding>
|
||||
</button>
|
||||
<text>
|
||||
|
@ -242,12 +231,12 @@
|
|||
<alpha type="float">0.8</alpha>
|
||||
</color>
|
||||
<binding>
|
||||
<command>nasal</command>
|
||||
<script>controls.speedup(1);</script>
|
||||
<command>nasal</command>
|
||||
<script>controls.speedup(1);</script>
|
||||
</binding>
|
||||
</button>
|
||||
|
||||
<empty><stretch>1</stretch></empty>
|
||||
<empty><stretch>1</stretch></empty>
|
||||
|
||||
<button>
|
||||
<legend>Hide</legend>
|
||||
|
@ -260,10 +249,10 @@
|
|||
</color>
|
||||
<pref-width>40</pref-width>
|
||||
<binding>
|
||||
<command>nasal</command>
|
||||
<script><![CDATA[
|
||||
<command>nasal</command>
|
||||
<script><![CDATA[
|
||||
setprop("/sim/messages/copilot", "Replay active. 'Esc' to stop. 'Ctrl-R' to show replay controls.");
|
||||
]]></script>
|
||||
]]></script>
|
||||
</binding>
|
||||
<binding>
|
||||
<command>dialog-close</command>
|
||||
|
@ -286,8 +275,8 @@
|
|||
<alpha type="float">0.8</alpha>
|
||||
</color>
|
||||
<binding>
|
||||
<command>nasal</command>
|
||||
<script>controls.replaySkip(-30);</script>
|
||||
<command>nasal</command>
|
||||
<script>controls.replaySkip(-30);</script>
|
||||
</binding>
|
||||
</button>
|
||||
|
||||
|
@ -302,8 +291,8 @@
|
|||
<alpha type="float">0.8</alpha>
|
||||
</color>
|
||||
<binding>
|
||||
<command>nasal</command>
|
||||
<script>controls.replaySkip(-5);</script>
|
||||
<command>nasal</command>
|
||||
<script>controls.replaySkip(-5);</script>
|
||||
</binding>
|
||||
</button>
|
||||
|
||||
|
@ -335,7 +324,7 @@
|
|||
<min>0</min><!-- property is updated on "dialog open" -->
|
||||
<max>1.0</max><!-- property is updated on "dialog open" -->
|
||||
<property>/sim/replay/time</property>
|
||||
<live>true</live>
|
||||
<live>true</live>
|
||||
<binding>
|
||||
<command>dialog-apply</command>
|
||||
<object-name>replay-time-slider</object-name>
|
||||
|
@ -367,8 +356,8 @@
|
|||
<alpha type="float">0.8</alpha>
|
||||
</color>
|
||||
<binding>
|
||||
<command>nasal</command>
|
||||
<script>controls.replaySkip(5);</script>
|
||||
<command>nasal</command>
|
||||
<script>controls.replaySkip(5);</script>
|
||||
</binding>
|
||||
</button>
|
||||
|
||||
|
|
|
@ -108,17 +108,6 @@
|
|||
<open><![CDATA[
|
||||
var dlg_root = cmdarg();
|
||||
|
||||
var findElementByName = func(rootN, name) {
|
||||
foreach( var child; rootN.getChildren() ) {
|
||||
var n = child.getNode( "name" );
|
||||
if( n != nil and n.getValue() == name )
|
||||
return child;
|
||||
var f = findElementByName(child,name);
|
||||
if( f != nil ) return f;
|
||||
}
|
||||
return nil;
|
||||
};
|
||||
|
||||
var isEnabledScenario = func(scenario) {
|
||||
foreach( var n; props.globals.getNode("sim/ai",1).getChildren("scenario") )
|
||||
if( n.getValue() == scenario )
|
||||
|
@ -138,7 +127,7 @@
|
|||
propertyRoot.getNode("selected",1).setBoolValue(isEnabledScenario(file));
|
||||
propertyRoot.getNode("name",1).setValue(file);
|
||||
|
||||
var group = findElementByName( dlg_root, columns[math.mod(nr,2)] ).getChild("group", nr, 1 );
|
||||
var group = gui.findElementByName( dlg_root, columns[math.mod(nr,2)] ).getChild("group", nr, 1 );
|
||||
group.getNode("layout",1).setValue("hbox");
|
||||
var cb = group.getNode("checkbox",1);
|
||||
cb.getNode("property",1).setValue(propertyRoot.getNode("selected").getPath());
|
||||
|
|
|
@ -329,19 +329,8 @@
|
|||
<open><![CDATA[
|
||||
var dlg_root = cmdarg();
|
||||
|
||||
var findElementByName = func(rootN, name) {
|
||||
foreach( var child; rootN.getChildren() ) {
|
||||
var n = child.getNode( "name" );
|
||||
if( n != nil and n.getValue() == name )
|
||||
return child;
|
||||
var f = findElementByName(child,name);
|
||||
if( f != nil ) return f;
|
||||
}
|
||||
return nil;
|
||||
};
|
||||
|
||||
# Fill the sound device combo box
|
||||
var combo = findElementByName( dlg_root, "source-selection" );
|
||||
var combo = gui.findElementByName( dlg_root, "source-selection" );
|
||||
var wsn = props.globals.getNode( "sim/sound/devices" );
|
||||
if( wsn != nil ) {
|
||||
var devices = wsn.getChildren("device");
|
||||
|
|
|
@ -1961,7 +1961,7 @@
|
|||
|
||||
|
||||
# fill the METAR source combo box
|
||||
var combo = me.findElementByName( me.dlgRoot, "source-selection" );
|
||||
var combo = gui.findElementByName( me.dlgRoot, "source-selection" );
|
||||
var wsn = props.globals.getNode( "/environment/weather-scenarios" );
|
||||
if( wsn != nil ) {
|
||||
var scenarios = wsn.getChildren("scenario");
|
||||
|
@ -2020,17 +2020,6 @@
|
|||
return nil;
|
||||
},
|
||||
|
||||
findElementByName : func(base,name) {
|
||||
foreach( var child; base.getChildren() ) {
|
||||
var n = child.getNode( "name" );
|
||||
if( n != nil and n.getValue() == name )
|
||||
return child;
|
||||
var f = me.findElementByName(child,name);
|
||||
if( f != nil ) return f;
|
||||
}
|
||||
return nil;
|
||||
},
|
||||
|
||||
scenarioListener : func( n ) {
|
||||
description = "";
|
||||
metar = "nil";
|
||||
|
|
Loading…
Add table
Reference in a new issue