var GUI = { new : func(isfd, isfd_canvas, scale = 1.0) { var obj = { parents : [ GUI ], isfd : isfd, width : 528, height : 528, scale : scale }; obj.window = canvas.Window.new([obj.scale*obj.width,obj.scale*obj.height],"dialog").set('title',"ISFD"); obj.window.del = func() { # Over-ride the window.del function so we clean up when the user closes the window # Use call method to ensure we have the correct closure. call(obj.cleanup, [], obj); }; # creating the top-level/root group which will contain all other elements/group obj.myCanvas = obj.window.createCanvas(); obj.myCanvas.set("name", "ISFD"); obj.root = obj.myCanvas.createGroup(); # Project the canvas onto the dialog var mfd_child = obj.root.createChild("image") .setFile(isfd_canvas.getPath()) .set("z-index", 150) .setTranslation(obj.scale*8,obj.scale*8) .setSize(obj.scale*512, obj.scale*512); # Create the surround fascia, which is just a PNG image; var child = obj.root.createChild("image") .setFile("Aircraft/Instruments-3d/ISFD/fascia.png") .set("z-index", 100) .setTranslation(0, 0) .setSize(obj.scale*obj.width,obj.scale*obj.height); return obj; }, cleanup : func() { me.isfd.del(); # Clean up the window itself call(canvas.Window.del, [], me.window); }, };