var dialog = nil; var namenode = nil; var close = func { zkv500.isOn = 0; fgcommand("dialog-close", namenode); delete(gui.dialog, "\"zkv500\""); dialog = nil; } var _title = func { var titlebar = dialog.addChild("group"); titlebar.set("layout", "hbox"); var wdg = titlebar.addChild("text"); wdg.set("label", "test zkv500"); titlebar.addChild("empty").set("stretch", 1); var wdg = titlebar.addChild("button"); wdg.node.setValues({"pref-width": 16, "pref-height": 16, legend: "", default: 0}); wdg.setBinding("nasal", "zkv_dbg.close()"); } var _top_buttons = func { dialog.addChild("hrule"); var buttons = dialog.addChild("group"); buttons.set("layout", "hbox"); var wdg = buttons.addChild("button"); wdg.node.setValues({legend: "P", "pref-height": 20}); wdg.setBinding("nasal", "zkv500.left_knob(1)"); var wdg = buttons.addChild("button"); wdg.node.setValues({legend: "en", "pref-height": 20}); wdg.setBinding("nasal", "zkv500.enter_button()"); var wdg = buttons.addChild("button"); wdg.node.setValues({legend: "es", "pref-height": 20}); wdg.setBinding("nasal", "zkv500.escape_button()"); var wdg = buttons.addChild("button"); wdg.node.setValues({legend: "st", "pref-height": 20}); wdg.setBinding("nasal", "zkv500.start_button()"); var wdg = buttons.addChild("button"); wdg.node.setValues({legend: "S", "pref-height": 20}); wdg.setBinding("nasal", "zkv500.right_knob(1)"); } var _content = func { dialog.addChild("hrule"); var content = dialog.addChild("group"); content.set("layout", "table"); content.set("default-padding", 0); for (var i = 0; i < 5; i += 1) { var line = content.addChild("text"); line.node.setValues({"row":i,"col":0,"label":" "}); var line = content.addChild("text"); line.node.setValues({ "row": i, "col": 1, "property": "/instrumentation/zkv500/line["~i~"]", "halign": "left", "live": 1 }); var line = content.addChild("text"); line.node.setValues({"row":i,"col":2,"label":" "}); } } var _bottom_buttons = func { dialog.addChild("hrule"); var buttons = dialog.addChild("group"); buttons.set("layout", "hbox"); var wdg = buttons.addChild("button"); wdg.node.setValues({legend: "M", "pref-height": 20}); wdg.setBinding("nasal", "zkv500.select_mode(1)"); buttons.addChild("empty").set("stretch", 1); var wdg = buttons.addChild("button"); wdg.node.setValues({legend: "0/1", "pref-height": 20}); wdg.setBinding("nasal", "zkv500.switch_ON_OFF()"); } var reload_zkv_code = func { var zkv500_dir = getprop("/sim/fg-root") ~ "/Aircraft/Instruments-3d/zkv500/"; io.load_nasal(zkv500_dir ~ "ZKV500.nas","zkv500"); io.load_nasal(zkv500_dir ~ "AirportScreens.nas","zkv500"); io.load_nasal(zkv500_dir ~ "TurnpointScreens.nas","zkv500"); io.load_nasal(zkv500_dir ~ "MainScreens.nas","zkv500"); io.load_nasal(zkv500_dir ~ "TaskScreens.nas","zkv500"); print("debugger: zkv500 loaded"); zkv500.isOn = 0; zkv500.init(); } var test = func { dialog == nil or close(); reload_zkv_code(); namenode = props.Node.new({"dialog-name" : "zkv500" }); dialog = gui.Widget.new(); dialog.set("name", "zkv500"); dialog.set("layout", "vbox"); dialog.set("default-padding", 0); _title(); _top_buttons(); _content(); _bottom_buttons(); fgcommand("dialog-new", dialog.prop()); fgcommand("dialog-show", namenode); print("debugger: zkv500 testing interface loaded"); }