|
Packit |
1470ea |
/* -*- Mode: C; indent-tabs-mode: t; c-basic-offset: 4; tab-width: 4 -*- */
|
|
Packit |
1470ea |
|
|
Packit |
1470ea |
#include <config.h>
|
|
Packit |
1470ea |
#include <gtk/gtk.h>
|
|
Packit |
1470ea |
|
|
Packit |
1470ea |
|
|
Packit |
1470ea |
#include <glib/gi18n.h>
|
|
Packit |
1470ea |
|
|
Packit |
1470ea |
static void
|
|
Packit |
1470ea |
on_open_image (GtkButton* button, gpointer user_data)
|
|
Packit |
1470ea |
{
|
|
Packit |
1470ea |
GtkWidget *image = GTK_WIDGET (user_data);
|
|
Packit |
1470ea |
GtkWidget *toplevel = gtk_widget_get_toplevel (image);
|
|
Packit |
1470ea |
GtkFileFilter *filter = gtk_file_filter_new ();
|
|
Packit |
1470ea |
GtkWidget *dialog = gtk_file_chooser_dialog_new (_("Open image"),
|
|
Packit |
1470ea |
GTK_WINDOW (toplevel),
|
|
Packit |
1470ea |
GTK_FILE_CHOOSER_ACTION_OPEN,
|
|
Packit |
1470ea |
GTK_STOCK_OK, GTK_RESPONSE_ACCEPT,
|
|
Packit |
1470ea |
GTK_STOCK_CANCEL, GTK_RESPONSE_CANCEL,
|
|
Packit |
1470ea |
NULL);
|
|
Packit |
1470ea |
|
|
Packit |
1470ea |
gtk_file_filter_add_pixbuf_formats (filter);
|
|
Packit |
1470ea |
gtk_file_chooser_add_filter (GTK_FILE_CHOOSER (dialog),
|
|
Packit |
1470ea |
filter);
|
|
Packit |
1470ea |
|
|
Packit |
1470ea |
switch (gtk_dialog_run (GTK_DIALOG (dialog)))
|
|
Packit |
1470ea |
{
|
|
Packit |
1470ea |
case GTK_RESPONSE_ACCEPT:
|
|
Packit |
1470ea |
{
|
|
Packit |
1470ea |
gchar *filename =
|
|
Packit |
1470ea |
gtk_file_chooser_get_filename (GTK_FILE_CHOOSER (dialog));
|
|
Packit |
1470ea |
gtk_image_set_from_file (GTK_IMAGE (image), filename);
|
|
Packit |
1470ea |
break;
|
|
Packit |
1470ea |
}
|
|
Packit |
1470ea |
default:
|
|
Packit |
1470ea |
break;
|
|
Packit |
1470ea |
}
|
|
Packit |
1470ea |
gtk_widget_destroy (dialog);
|
|
Packit |
1470ea |
}
|
|
Packit |
1470ea |
|
|
Packit |
1470ea |
|
|
Packit |
1470ea |
static GtkWidget*
|
|
Packit |
1470ea |
create_window (void)
|
|
Packit |
1470ea |
{
|
|
Packit |
1470ea |
GtkWidget *window;
|
|
Packit |
1470ea |
GtkWidget *button;
|
|
Packit |
1470ea |
GtkWidget *image;
|
|
Packit |
1470ea |
GtkWidget *box;
|
|
Packit |
1470ea |
|
|
Packit |
1470ea |
/* Set up the UI */
|
|
Packit |
1470ea |
window = gtk_window_new (GTK_WINDOW_TOPLEVEL);
|
|
Packit |
1470ea |
gtk_window_set_title (GTK_WINDOW (window), "image-viewer-c");
|
|
Packit |
1470ea |
|
|
Packit |
1470ea |
box = gtk_box_new (GTK_ORIENTATION_VERTICAL, 5);
|
|
Packit |
1470ea |
button = gtk_button_new_with_label (_("Open image"));
|
|
Packit |
1470ea |
image = gtk_image_new ();
|
|
Packit |
1470ea |
|
|
Packit |
1470ea |
gtk_box_pack_start (GTK_BOX (box), image, TRUE, TRUE, 0);
|
|
Packit |
1470ea |
gtk_box_pack_start (GTK_BOX (box), button, FALSE, FALSE, 0);
|
|
Packit |
1470ea |
|
|
Packit |
1470ea |
gtk_container_add (GTK_CONTAINER (window), box);
|
|
Packit |
1470ea |
|
|
Packit |
1470ea |
/* Connect signals */
|
|
Packit |
1470ea |
|
|
Packit |
1470ea |
/* Show open dialog when opening a file */
|
|
Packit |
1470ea |
g_signal_connect (button, "clicked", G_CALLBACK (on_open_image), image);
|
|
Packit |
1470ea |
|
|
Packit |
1470ea |
/* Exit when the window is closed */
|
|
Packit |
1470ea |
g_signal_connect (window, "destroy", G_CALLBACK (gtk_main_quit), NULL);
|
|
Packit |
1470ea |
|
|
Packit |
1470ea |
return window;
|
|
Packit |
1470ea |
}
|
|
Packit |
1470ea |
|
|
Packit |
1470ea |
|
|
Packit |
1470ea |
int
|
|
Packit |
1470ea |
main (int argc, char *argv[])
|
|
Packit |
1470ea |
{
|
|
Packit |
1470ea |
GtkWidget *window;
|
|
Packit |
1470ea |
|
|
Packit |
1470ea |
|
|
Packit |
1470ea |
#ifdef ENABLE_NLS
|
|
Packit |
1470ea |
bindtextdomain (GETTEXT_PACKAGE, PACKAGE_LOCALE_DIR);
|
|
Packit |
1470ea |
bind_textdomain_codeset (GETTEXT_PACKAGE, "UTF-8");
|
|
Packit |
1470ea |
textdomain (GETTEXT_PACKAGE);
|
|
Packit |
1470ea |
#endif
|
|
Packit |
1470ea |
|
|
Packit |
1470ea |
|
|
Packit |
1470ea |
gtk_init (&argc, &argv);
|
|
Packit |
1470ea |
|
|
Packit |
1470ea |
window = create_window ();
|
|
Packit |
1470ea |
gtk_widget_show_all (window);
|
|
Packit |
1470ea |
|
|
Packit |
1470ea |
gtk_main ();
|
|
Packit |
1470ea |
return 0;
|
|
Packit |
1470ea |
}
|