[gtk+] widget-factory: Fix the row activation example
- From: Matthias Clasen <matthiasc src gnome org>
- To: commits-list gnome org
- Cc:
- Subject: [gtk+] widget-factory: Fix the row activation example
- Date: Sat, 12 Jul 2014 21:31:03 +0000 (UTC)
commit f2c6b31e679d54ebc9175536b55e90f5b29ed402
Author: Matthias Clasen <mclasen redhat com>
Date: Sat Jul 12 17:30:25 2014 -0400
widget-factory: Fix the row activation example
Turns out ::activate on listbox rows is only for key bindings,
so use ::row-activated.
demos/widget-factory/widget-factory.c | 36 ++++++++++++++++++++------------
1 files changed, 22 insertions(+), 14 deletions(-)
---
diff --git a/demos/widget-factory/widget-factory.c b/demos/widget-factory/widget-factory.c
index d5ddba0..884ce58 100644
--- a/demos/widget-factory/widget-factory.c
+++ b/demos/widget-factory/widget-factory.c
@@ -524,18 +524,25 @@ populate_colors (GtkWidget *widget)
}
static void
-activate_row3 (GtkListBoxRow *row, GtkWidget *image)
+row_activated (GtkListBox *box, GtkListBoxRow *row)
{
- if (gtk_widget_get_opacity (image) > 0)
- gtk_widget_set_opacity (image, 0);
- else
- gtk_widget_set_opacity (image, 1);
-}
+ GtkWidget *image;
+ GtkWidget *dialog;
-static void
-activate_row4 (GtkListBoxRow *row, GtkWidget *dialog)
-{
- gtk_window_present (GTK_WINDOW (dialog));
+ image = (GtkWidget *)g_object_get_data (G_OBJECT (row), "image");
+ dialog = (GtkWidget *)g_object_get_data (G_OBJECT (row), "dialog");
+
+ if (image)
+ {
+ if (gtk_widget_get_opacity (image) > 0)
+ gtk_widget_set_opacity (image, 0);
+ else
+ gtk_widget_set_opacity (image, 1);
+ }
+ else if (dialog)
+ {
+ gtk_window_present (GTK_WINDOW (dialog));
+ }
}
static void
@@ -592,14 +599,15 @@ activate (GApplication *app)
widget = (GtkWidget *)gtk_builder_get_object (builder, "listbox");
gtk_list_box_set_header_func (GTK_LIST_BOX (widget), update_header, NULL, NULL);
+ g_signal_connect (widget, "row-activated", G_CALLBACK (row_activated), NULL);
+
widget = gtk_widget_get_parent ((GtkWidget *)gtk_builder_get_object (builder, "listboxrow3"));
widget2 = (GtkWidget *)gtk_builder_get_object (builder, "listboxrow3image");
- g_signal_connect (widget, "activate",
- G_CALLBACK (activate_row3), widget2);
+ g_object_set_data (G_OBJECT (widget), "image", widget2);
+
widget = gtk_widget_get_parent ((GtkWidget *)gtk_builder_get_object (builder, "listboxrow4"));
widget2 = (GtkWidget *)gtk_builder_get_object (builder, "info_dialog");
- g_signal_connect (widget, "activate",
- G_CALLBACK (activate_row4), widget2);
+ g_object_set_data (G_OBJECT (widget), "dialog", widget2);
widget = (GtkWidget *)gtk_builder_get_object (builder, "toolbar");
g_object_set_data (G_OBJECT (window), "toolbar", widget);
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]