[gtk+/wip/baedert/gtkimageview: 2041/2075] demo: Separate code and declarations
- From: Timm Bäder <baedert src gnome org>
- To: commits-list gnome org
- Cc:
- Subject: [gtk+/wip/baedert/gtkimageview: 2041/2075] demo: Separate code and declarations
- Date: Sun, 12 Feb 2017 10:02:07 +0000 (UTC)
commit 6b3536cbb428d52ef9d4709566d8d4a05a6af660
Author: Timm Bäder <mail baedert org>
Date: Fri Jan 22 17:39:27 2016 +0100
demo: Separate code and declarations
demos/gtk-demo/image_view.c | 46 +++++++++++++++++++++++++++++++++-------
demos/gtk-demo/image_view.ui | 47 ++++++++++++++++++++++++++++++-----------
2 files changed, 72 insertions(+), 21 deletions(-)
---
diff --git a/demos/gtk-demo/image_view.c b/demos/gtk-demo/image_view.c
index 425c307..5ee4205 100644
--- a/demos/gtk-demo/image_view.c
+++ b/demos/gtk-demo/image_view.c
@@ -5,6 +5,14 @@
GtkWidget *image_view;
GtkWidget *uri_entry;
+
+void
+reset_view_button_clicked_cb ()
+{
+ gtk_image_view_set_scale (GTK_IMAGE_VIEW (image_view), 1.0);
+ gtk_image_view_set_angle (GTK_IMAGE_VIEW (image_view), 0.0);
+}
+
void
generic_cb ()
{
@@ -23,6 +31,27 @@ file_set_cb (GtkFileChooserButton *widget,
NULL,
generic_cb,
NULL);
+
+ g_free (filename);
+}
+
+static void
+image_loaded_cb (GObject *source_object,
+ GAsyncResult *result,
+ gpointer user_data)
+{
+ GtkImageView *image_view = GTK_IMAGE_VIEW (source_object);
+ GError *error = NULL;
+
+ gtk_image_view_load_from_file_finish (image_view,
+ result,
+ &error);
+
+ if (error)
+ {
+ g_message ("Error: %s", error->message);
+ return;
+ }
}
void
@@ -34,7 +63,7 @@ load_button_cb ()
file,
1,
NULL,
- generic_cb,
+ image_loaded_cb,
NULL);
}
@@ -95,11 +124,12 @@ scrolled_check_button_active_cb (GObject *source)
gtk_scrolled_window_set_policy (GTK_SCROLLED_WINDOW (scroller),
GTK_POLICY_ALWAYS,
GTK_POLICY_ALWAYS);
- gtk_scrolled_window_set_overlay_scrolling (GTK_SCROLLED_WINDOW (scroller), FALSE);
- gtk_widget_show (scroller);
+ g_object_ref (image_view);
gtk_container_remove (GTK_CONTAINER (parent), image_view);
gtk_container_add (GTK_CONTAINER (scroller), image_view);
gtk_container_add (GTK_CONTAINER (parent), scroller);
+ gtk_widget_show (scroller);
+ g_object_unref (image_view);
}
}
@@ -127,11 +157,11 @@ load_pixbuf_button_clicked_cb ()
GdkPixbuf *pixbuf;
/* I really hope you have this. */
- pixbuf = gdk_pixbuf_new_from_file ("/home/baedert/imageview2.png",
+ pixbuf = gdk_pixbuf_new_from_file ("/usr/share/backgrounds/gnome/Fabric.jpg",
NULL);
g_assert (pixbuf != NULL);
- gtk_image_view_set_pixbuf (GTK_IMAGE_VIEW (image_view), pixbuf, 2);
+ gtk_image_view_set_pixbuf (GTK_IMAGE_VIEW (image_view), pixbuf, 0);
g_object_unref (G_OBJECT (pixbuf));
}
@@ -209,8 +239,6 @@ do_image_view (GtkWidget *do_widget)
{
GtkWidget *window = gtk_window_new (GTK_WINDOW_TOPLEVEL);
GtkBuilder *builder = gtk_builder_new_from_resource ("/imageview/image_view.ui");
- image_view = GTK_WIDGET (gtk_builder_get_object (builder, "image_view"));
- uri_entry = GTK_WIDGET (gtk_builder_get_object (builder, "uri_entry"));
GtkWidget *box = GTK_WIDGET (gtk_builder_get_object (builder, "box"));
GtkWidget *snap_angle_button = GTK_WIDGET (gtk_builder_get_object (builder, "snap_angle_check_button"));
GtkWidget *fit_allocation_button = GTK_WIDGET (gtk_builder_get_object (builder,
"fit_allocation_check_button"));
@@ -219,13 +247,15 @@ do_image_view (GtkWidget *do_widget)
GtkAdjustment *scale_adjustment = GTK_ADJUSTMENT (gtk_builder_get_object (builder, "scale_adjustment"));
GtkAdjustment *angle_adjustment = GTK_ADJUSTMENT (gtk_builder_get_object (builder, "angle_adjustment"));
+ image_view = GTK_WIDGET (gtk_builder_get_object (builder, "image_view"));
+ uri_entry = GTK_WIDGET (gtk_builder_get_object (builder, "uri_entry"));
/*gtk_window_set_title (GTK_WINDOW (window), "blue: current, green: anchor");*/
g_object_bind_property (scale_adjustment, "value", image_view, "scale",
G_BINDING_BIDIRECTIONAL);
- g_object_bind_property (image_view, "angle", angle_adjustment, "value",
+ g_object_bind_property (angle_adjustment, "value", image_view, "angle",
G_BINDING_BIDIRECTIONAL | G_BINDING_SYNC_CREATE);
g_object_bind_property (image_view, "snap-angle", snap_angle_button, "active",
G_BINDING_BIDIRECTIONAL | G_BINDING_SYNC_CREATE);
diff --git a/demos/gtk-demo/image_view.ui b/demos/gtk-demo/image_view.ui
index 4438917..1ea05f1 100644
--- a/demos/gtk-demo/image_view.ui
+++ b/demos/gtk-demo/image_view.ui
@@ -2,13 +2,14 @@
<interface>
<object class="GtkAdjustment" id="scale_adjustment">
<property name="upper">5</property>
+ <property name="lower">0.05</property>
<property name="value">1.0</property>
- <property name="step_increment">0.001</property>
+ <property name="step_increment">0.01</property>
</object>
<object class="GtkAdjustment" id="angle_adjustment">
<property name="upper">360</property>
- <property name="value">3</property>
+ <property name="value">0</property>
<property name="step_increment">0.1</property>
<!--<property name="step_increment">1</property>-->
<!--<property name="step_increment">45</property>-->
@@ -142,6 +143,7 @@
<object class="GtkCheckButton" id="scrolled_check_button">
<property name="visible">true</property>
<property name="label">In ScrolledWindow</property>
+ <property name="active">true</property>
<signal name="toggled" handler="scrolled_check_button_active_cb" />
</object>
<packing>
@@ -205,11 +207,11 @@
</packing>
</child>
+
<child>
- <object class="GtkSpinButton" id="angle_spin_button">
+ <object class="GtkScale" id="angle_spin_button">
<property name="visible">true</property>
<property name="digits">2</property>
- <property name="numeric">true</property>
<property name="adjustment">angle_adjustment</property>
</object>
<packing>
@@ -219,7 +221,6 @@
</packing>
</child>
-
<child>
<object class="GtkLabel">
<property name="visible">true</property>
@@ -235,10 +236,9 @@
</child>
<child>
- <object class="GtkSpinButton" id="scale_spin_button">
+ <object class="GtkScale" id="scale_spin_button">
<property name="visible">true</property>
<property name="digits">2</property>
- <property name="numeric">true</property>
<property name="adjustment">scale_adjustment</property>
</object>
<packing>
@@ -292,20 +292,41 @@
</packing>
</child>
+
+ <child>
+ <object class="GtkButton" id="reset_button">
+ <property name="visible">true</property>
+ <property name="label" translatable="true">Reset View</property>
+ <property name="valign">end</property>
+ <property name="vexpand">true</property>
+ <signal name="clicked" handler="reset_view_button_clicked_cb" />
+ </object>
+ <packing>
+ <property name="left_attach">0</property>
+ <property name="top_attach">16</property>
+ <property name="width">2</property>
+ </packing>
+ </child>
+
+
</object>
</child>
<child>
- <object class="GtkImageView" id="image_view">
+ <object class="GtkScrolledWindow">
<property name="visible">true</property>
- <property name="hexpand">true</property>
- <property name="vexpand">true</property>
- <property name="width_request">400</property>
- <property name="height_request">400</property>
+ <child>
+ <object class="GtkImageView" id="image_view">
+ <property name="visible">true</property>
+ <property name="hexpand">true</property>
+ <property name="vexpand">true</property>
+ <property name="width_request">400</property>
+ <property name="height_request">400</property>
+ </object>
+ </child>
</object>
</child>
-
</object>
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]