From 17123b34b470d16bdd21d4450b66581e47e62bbe Mon Sep 17 00:00:00 2001 From: Stuart Buchanan Date: Fri, 18 Jun 2010 21:14:26 +0100 Subject: [PATCH] Dialog for MP display options --- gui/dialogs/mp-display.xml | 250 +++++++++++++++++++++++++++++++++++++ 1 file changed, 250 insertions(+) create mode 100644 gui/dialogs/mp-display.xml diff --git a/gui/dialogs/mp-display.xml b/gui/dialogs/mp-display.xml new file mode 100644 index 000000000..903b36772 --- /dev/null +++ b/gui/dialogs/mp-display.xml @@ -0,0 +1,250 @@ + + + + + mp-display + false + vbox + + + + var dlg_root = cmdarg(); + + var update = func() { + print("Updating"); + #fgcommand("dialog-update", dlg_root); + fgcommand("dialog-new", dlg_root); + #fgcommand("dialog-show", dlg_root); + } + + 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 resetDialog = func(root) { + + print("resetDialog called " ~ root.getPath()); + + var classes = props.globals.getNode("/sim/multiplay/display").getChildren("usage-class"); + var combo = findElementByName( root, "usage-class-selection" ); + forindex (var i; classes) { + combo.getChild("value", i, 1).setValue(classes[i].getNode("name").getValue()); + } + + var display = findElementByName( root, "usage-class-display" ); + forindex (var i; classes) { + + # We don't allow users to display the "Ignore" class. + if (classes[i].getNode("name").getValue() != "Ignore") { + var check = display.getChild("checkbox", i, 1); + check.getNode("row", 1).setValue(i + 1); + check.getNode("col", 1).setValue(1); + check.getNode("property", 1).setValue(classes[i].getNode("visible").getPath()); + #check.getNode("value", 1).setValue(classes[i]. + #check.getNode("live", 1).setValue(1); + + var text = display.getChild("text", i, 1); + text.getNode("row", 1).setValue(i + 1); + text.getNode("col", 1).setValue(2); + text.getNode("halign", 1).setValue("left"); + text.getNode("label", 1).setValue(classes[i].getNode("name").getValue()); + } + } + } + + resetDialog(dlg_root); + + + + + hbox + + + + + + + hbox + + + + + hbox + left + + + + + + usage-class-selection + fill + true + sim/multiplay/usage-class + + dialog-apply + usage-class-selection + + + nasal + + + + + + + hbox + + + + + hbox + left + + + + + + + table + center + usage-class-display + top + + + + hbox + left + + + + + + add + true + fill + true + 20 + /sim/multiplay/new-usage-class + + + + + + + hbox + left + + errormsg + + + + + hbox + + + + + + + + + + + +