|
Packit |
1470ea |
using GLib;
|
|
Packit |
1470ea |
using Gtk;
|
|
Packit |
1470ea |
|
|
Packit |
1470ea |
public class Main : Object
|
|
Packit |
1470ea |
{
|
|
Packit |
1470ea |
private Window window;
|
|
Packit |
1470ea |
private Image image;
|
|
Packit |
1470ea |
|
|
Packit |
1470ea |
public Main () {
|
|
Packit |
1470ea |
|
|
Packit |
1470ea |
window = new Window ();
|
|
Packit |
1470ea |
window.set_title ("Image Viewer in Vala");
|
|
Packit |
1470ea |
|
|
Packit |
1470ea |
// Set up the UI
|
|
Packit |
1470ea |
var box = new Box (Orientation.VERTICAL, 5);
|
|
Packit |
1470ea |
var button = new Button.with_label ("Open image");
|
|
Packit |
1470ea |
image = new Image ();
|
|
Packit |
1470ea |
|
|
Packit |
1470ea |
box.pack_start (image, true, true, 0);
|
|
Packit |
1470ea |
box.pack_start (button, false, false, 0);
|
|
Packit |
1470ea |
window.add (box);
|
|
Packit |
1470ea |
|
|
Packit |
1470ea |
// Show open dialog when opening a file
|
|
Packit |
1470ea |
button.clicked.connect (on_open_image);
|
|
Packit |
1470ea |
|
|
Packit |
1470ea |
window.show_all ();
|
|
Packit |
1470ea |
window.destroy.connect (main_quit);
|
|
Packit |
1470ea |
}
|
|
Packit |
1470ea |
|
|
Packit |
1470ea |
public void dialog_response (Dialog dialog, int response_id) {
|
|
Packit |
1470ea |
switch (response_id) {
|
|
Packit |
1470ea |
case ResponseType.ACCEPT:
|
|
Packit |
1470ea |
var filename = (dialog as FileChooserDialog).get_filename ();
|
|
Packit |
1470ea |
image.set_from_file (filename);
|
|
Packit |
1470ea |
break;
|
|
Packit |
1470ea |
default:
|
|
Packit |
1470ea |
break;
|
|
Packit |
1470ea |
}
|
|
Packit |
1470ea |
dialog.destroy ();
|
|
Packit |
1470ea |
}
|
|
Packit |
1470ea |
|
|
Packit |
1470ea |
[CCode (instance_pos = -1)]
|
|
Packit |
1470ea |
public void on_open_image (Button self) {
|
|
Packit |
1470ea |
var filter = new FileFilter ();
|
|
Packit |
1470ea |
var dialog = new FileChooserDialog ("Open image",
|
|
Packit |
1470ea |
window,
|
|
Packit |
1470ea |
FileChooserAction.OPEN,
|
|
Packit |
1470ea |
Stock.CANCEL, ResponseType.CANCEL,
|
|
Packit |
1470ea |
Stock.OK, ResponseType.ACCEPT);
|
|
Packit |
1470ea |
filter.add_pixbuf_formats ();
|
|
Packit |
1470ea |
dialog.add_filter (filter);
|
|
Packit |
1470ea |
dialog.response.connect (dialog_response);
|
|
Packit |
1470ea |
dialog.show ();
|
|
Packit |
1470ea |
}
|
|
Packit |
1470ea |
|
|
Packit |
1470ea |
static int main (string[] args) {
|
|
Packit |
1470ea |
Gtk.init (ref args);
|
|
Packit |
1470ea |
var app = new Main ();
|
|
Packit |
1470ea |
|
|
Packit |
1470ea |
Gtk.main ();
|
|
Packit |
1470ea |
|
|
Packit |
1470ea |
return 0;
|
|
Packit |
1470ea |
}
|
|
Packit |
1470ea |
}
|
|
Packit |
1470ea |
|