const Gtk = imports.gi.Gtk;
const Lang = imports.lang;
function ImageViewer () {
this._init ();
}
ImageViewer.prototype = {
_init: function () {
this.window = new Gtk.Window ({title: "Image Viewer Demo"});
this.window.connect ("hide", Gtk.main_quit);
var main_box = new Gtk.Box ({orientation: Gtk.Orientation.VERTICAL, spacing: 0});
this.window.add (main_box);
this.image = new Gtk.Image ();
main_box.pack_start (this.image, true, true, 0);
var open_button = new Gtk.Button ({label: "Open a picture..."});
open_button.connect ("clicked", Lang.bind (this, this._openClicked));
main_box.pack_start (open_button, false, false, 0);
this.window.show_all ();
},
_openClicked: function () {
var chooser = new Gtk.FileChooserDialog ({title: "Select an image",
action: Gtk.FileChooserAction.OPEN,
transient_for: this.window,
modal: true});
chooser.add_button (Gtk.STOCK_CANCEL, 0);
chooser.add_button (Gtk.STOCK_OPEN, 1);
chooser.set_default_response (1);
var filter = new Gtk.FileFilter ();
filter.add_pixbuf_formats ();
chooser.filter = filter;
if (chooser.run () == 1)
this.image.file = chooser.get_filename ();
chooser.destroy ();
}
}
Gtk.init (null, null);
var iv = new ImageViewer ();
Gtk.main ();