diff --git a/Nasal/canvas/gui.nas b/Nasal/canvas/gui.nas index c1f0cf5a4..e86bcca2d 100644 --- a/Nasal/canvas/gui.nas +++ b/Nasal/canvas/gui.nas @@ -209,13 +209,21 @@ var Window = { gui.focused_window = nil; return me; }, - setPosition: func(x, y) + setPosition: func { + if( size(arg) == 1 ) + var arg = arg[0]; + var (x, y) = arg; + me.setInt("tf/t[0]", x); me.setInt("tf/t[1]", y); }, - setSize: func(w, h) + setSize: func { + if( size(arg) == 1 ) + var arg = arg[0]; + var (w, h) = arg; + me.set("content-size[0]", w); me.set("content-size[1]", h); @@ -224,8 +232,12 @@ var Window = { return me; }, - move: func(x, y) + move: func { + if( size(arg) == 1 ) + var arg = arg[0]; + var (x, y) = arg; + me.setInt("tf/t[0]", me.get("tf/t[0]", 10) + x); me.setInt("tf/t[1]", me.get("tf/t[1]", 30) + y); }, diff --git a/Nasal/canvas/gui/dialogs/AircraftCenter.nas b/Nasal/canvas/gui/dialogs/AircraftCenter.nas index 926dac140..c63bf803e 100644 --- a/Nasal/canvas/gui/dialogs/AircraftCenter.nas +++ b/Nasal/canvas/gui/dialogs/AircraftCenter.nas @@ -122,39 +122,35 @@ var AircraftCenter = { (func { var p = package; var b = gui.widgets.Button.new(me._scroll_content, style, {}); - var installed = p.installed; var install_text = sprintf("Install (%.1fMB)", p.fileSize/1024/1024); - if( installed ) + if( p.installed ) b.setText("Remove"); else b.setText(install_text); b.listen("clicked", func { - if( installed ) + if( p.installed ) { p.uninstall(); - installed = 0; b.setText(install_text); } else { - b.setEnabled(0) - .setText("Wait..."); - p.install() - .progress(func(i, cur, total) - b.setText(sprintf("%.1f%%", (cur / total) * 100)) - ) - .fail(func b.setText('Failed')) - .done(func { - installed = 1; - b.setText("Remove") - .setEnabled(1); - }); + b.setText("Wait...").setEnabled(0); + p.install(); } }); + p.existingInstall(func(pkg, ins) { + ins.progress(func(i, cur, total) + b.setText(sprintf("%.1f%%", (cur / total) * 100)) + ); + ins.fail(func b.setText('Failed')); + ins.done(func b.setText("Remove").setEnabled(1)); + }); + title_box.addItem(b); })(); diff --git a/Nasal/canvas/gui/widgets/Button.nas b/Nasal/canvas/gui/widgets/Button.nas index c388a2aee..03ba3a5e2 100644 --- a/Nasal/canvas/gui/widgets/Button.nas +++ b/Nasal/canvas/gui/widgets/Button.nas @@ -15,7 +15,8 @@ gui.widgets.Button = { }, setText: func(text) { - me._view.setText(me, text); + if( me._view != nil ) + me._view.setText(me, text); return me; }, setCheckable: func(checkable)