Blame platform-demos/C/image-viewer/image-viewer.js

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