diff options
-rw-r--r-- | main.c | 21 |
1 files changed, 11 insertions, 10 deletions
@@ -1,5 +1,5 @@ #include <gtk-3.0/gtk/gtk.h> -#define TIMEOUT 50 +#define TIMEOUT 20 GtkWidget *window; GtkWidget *image; @@ -48,15 +48,12 @@ gboolean resize_done(gpointer data) new_pixbuf_height = pixbuf_height; } - gtk_container_remove(GTK_CONTAINER(window), GTK_WIDGET(image)); if (curr_pixbuf != NULL) g_object_unref(curr_pixbuf); curr_pixbuf = gdk_pixbuf_scale_simple(GDK_PIXBUF(pixbuf), new_pixbuf_width, new_pixbuf_height, GDK_INTERP_BILINEAR); - image = gtk_image_new_from_pixbuf(GDK_PIXBUF(curr_pixbuf)); - gtk_container_add(GTK_CONTAINER(window), GTK_WIDGET(image)); - gtk_widget_show_all(GTK_WIDGET(window)); + gtk_image_set_from_pixbuf(GTK_IMAGE(image), GDK_PIXBUF(curr_pixbuf)); return FALSE; } @@ -74,13 +71,13 @@ static void activate(GtkApplication *app, gpointer user_data) GError *error = NULL; window = gtk_application_window_new(app); + gtk_window_set_title(GTK_WINDOW(window), "qwe"); + gtk_window_set_default_size(GTK_WINDOW(window), 300, 300); g_signal_connect(G_OBJECT(window), "configure-event", G_CALLBACK(configure_callback), NULL); g_signal_connect(G_OBJECT(window), "key-press-event", G_CALLBACK(key_press), NULL); - gtk_window_set_title(GTK_WINDOW(window), "qwe"); - gtk_window_set_default_size(GTK_WINDOW(window), 300, 300); pixbuf = gdk_pixbuf_new_from_file( "/home/nirav/Downloads/Saved Pictures/bash help shortcuts.png", &error); @@ -90,13 +87,17 @@ static void activate(GtkApplication *app, gpointer user_data) g_clear_error(&error); return; } - image = gtk_image_new_from_pixbuf(GDK_PIXBUF(pixbuf)); pixbuf_width = gdk_pixbuf_get_width(GDK_PIXBUF(pixbuf)); pixbuf_height = gdk_pixbuf_get_height(GDK_PIXBUF(pixbuf)); aspect_ratio = (double)pixbuf_width / (double)pixbuf_height; - - gtk_container_add(GTK_CONTAINER(window), GTK_WIDGET(image)); + GtkWidget *scrolled_window = + gtk_scrolled_window_new(NULL, NULL); + gtk_scrolled_window_set_policy(GTK_SCROLLED_WINDOW(scrolled_window), + GTK_POLICY_AUTOMATIC, + GTK_POLICY_AUTOMATIC); + gtk_container_add(GTK_CONTAINER(scrolled_window), GTK_WIDGET(image)); + gtk_container_add(GTK_CONTAINER(window), GTK_WIDGET(scrolled_window)); gtk_widget_show_all(GTK_WIDGET(window)); } |