1
0
Fork 0

Avoid duplication of "findElementByName" function.

Now moved to common gui.nas.
This commit is contained in:
ThorstenB 2012-03-24 12:45:58 +01:00
parent e1d0910ef5
commit b62c1c01b7
5 changed files with 46 additions and 70 deletions

View file

@ -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;
};
########################################################################

View file

@ -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>

View file

@ -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());

View file

@ -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");

View file

@ -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";