[gtk+] widget-factory: More vertical linking examples
- From: Matthias Clasen <matthiasc src gnome org>
- To: commits-list gnome org
- Cc:
- Subject: [gtk+] widget-factory: More vertical linking examples
- Date: Sat, 4 Oct 2014 19:01:38 +0000 (UTC)
commit 79afd7c8d70464a648a1c0d713e24277b9827137
Author: Matthias Clasen <mclasen redhat com>
Date: Sat Oct 4 15:00:10 2014 -0400
widget-factory: More vertical linking examples
demos/widget-factory/widget-factory.c | 74 ++++++++++++++++++++++++++++++++
demos/widget-factory/widget-factory.ui | 62 ++++++++++++++++++++++++++
2 files changed, 136 insertions(+), 0 deletions(-)
---
diff --git a/demos/widget-factory/widget-factory.c b/demos/widget-factory/widget-factory.c
index 12d10a9..3ba5598 100644
--- a/demos/widget-factory/widget-factory.c
+++ b/demos/widget-factory/widget-factory.c
@@ -304,6 +304,68 @@ on_record_button_toggled (GtkToggleButton *button,
}
static void
+on_page_combo_changed (GtkComboBox *combo,
+ gpointer user_data)
+{
+ GtkWidget *from;
+ GtkWidget *to;
+
+ from = GTK_WIDGET (g_object_get_data (G_OBJECT (combo), "range_from_spin"));
+ to = GTK_WIDGET (g_object_get_data (G_OBJECT (combo), "range_to_spin"));
+
+ switch (gtk_combo_box_get_active (combo))
+ {
+ case 0: /* Range */
+ gtk_widget_set_sensitive (from, TRUE);
+ gtk_widget_set_sensitive (to, TRUE);
+ break;
+ case 1: /* All */
+ gtk_widget_set_sensitive (from, FALSE);
+ gtk_widget_set_sensitive (to, FALSE);
+ gtk_spin_button_set_value (GTK_SPIN_BUTTON (from), 1);
+ gtk_spin_button_set_value (GTK_SPIN_BUTTON (to), 99);
+ break;
+ case 2: /* Current */
+ gtk_widget_set_sensitive (from, FALSE);
+ gtk_widget_set_sensitive (to, FALSE);
+ gtk_spin_button_set_value (GTK_SPIN_BUTTON (from), 7);
+ gtk_spin_button_set_value (GTK_SPIN_BUTTON (to), 7);
+ break;
+ default:;
+ }
+}
+
+static void
+on_range_from_changed (GtkSpinButton *from)
+{
+ GtkSpinButton *to;
+ gint v1, v2;
+
+ to = GTK_SPIN_BUTTON (g_object_get_data (G_OBJECT (from), "range_to_spin"));
+
+ v1 = gtk_spin_button_get_value_as_int (from);
+ v2 = gtk_spin_button_get_value_as_int (to);
+
+ if (v1 > v2)
+ gtk_spin_button_set_value (to, v1);
+}
+
+static void
+on_range_to_changed (GtkSpinButton *to)
+{
+ GtkSpinButton *from;
+ gint v1, v2;
+
+ from = GTK_SPIN_BUTTON (g_object_get_data (G_OBJECT (to), "range_from_spin"));
+
+ v1 = gtk_spin_button_get_value_as_int (from);
+ v2 = gtk_spin_button_get_value_as_int (to);
+
+ if (v1 > v2)
+ gtk_spin_button_set_value (from, v2);
+}
+
+static void
update_header (GtkListBoxRow *row,
GtkListBoxRow *before,
gpointer data)
@@ -861,6 +923,7 @@ activate (GApplication *app)
GtkWindow *window;
GtkWidget *widget;
GtkWidget *widget2;
+ GtkWidget *widget3;
GtkWidget *stack;
GtkWidget *dialog;
GtkAdjustment *adj;
@@ -896,6 +959,9 @@ activate (GApplication *app)
gtk_builder_add_callback_symbol (builder, "on_scale_button_value_changed",
(GCallback)on_scale_button_value_changed);
gtk_builder_add_callback_symbol (builder, "on_scale_button_query_tooltip",
(GCallback)on_scale_button_query_tooltip);
gtk_builder_add_callback_symbol (builder, "on_record_button_toggled", (GCallback)on_record_button_toggled);
+ gtk_builder_add_callback_symbol (builder, "on_page_combo_changed", (GCallback)on_page_combo_changed);
+ gtk_builder_add_callback_symbol (builder, "on_range_from_changed", (GCallback)on_range_from_changed);
+ gtk_builder_add_callback_symbol (builder, "on_range_to_changed", (GCallback)on_range_to_changed);
gtk_builder_connect_signals (builder, NULL);
@@ -1002,6 +1068,14 @@ activate (GApplication *app)
populate_colors ((GtkWidget *)gtk_builder_get_object (builder, "munsell"));
+ widget = (GtkWidget *)gtk_builder_get_object (builder, "page_combo");
+ widget2 = (GtkWidget *)gtk_builder_get_object (builder, "range_from_spin");
+ widget3 = (GtkWidget *)gtk_builder_get_object (builder, "range_to_spin");
+ g_object_set_data (G_OBJECT (widget), "range_from_spin", widget2);
+ g_object_set_data (G_OBJECT (widget3), "range_from_spin", widget2);
+ g_object_set_data (G_OBJECT (widget), "range_to_spin", widget3);
+ g_object_set_data (G_OBJECT (widget2), "range_to_spin", widget3);
+
set_accel (GTK_APPLICATION (app), GTK_WIDGET (gtk_builder_get_object (builder, "quitmenuitem")));
set_accel (GTK_APPLICATION (app), GTK_WIDGET (gtk_builder_get_object (builder, "deletemenuitem")));
set_accel (GTK_APPLICATION (app), GTK_WIDGET (gtk_builder_get_object (builder, "searchmenuitem")));
diff --git a/demos/widget-factory/widget-factory.ui b/demos/widget-factory/widget-factory.ui
index c56a66c..cd622e2 100644
--- a/demos/widget-factory/widget-factory.ui
+++ b/demos/widget-factory/widget-factory.ui
@@ -93,6 +93,20 @@
<property name="step_increment">1</property>
<property name="page_increment">10</property>
</object>
+ <object class="GtkAdjustment" id="pg_adjustment">
+ <property name="upper">99</property>
+ <property name="lower">1</property>
+ <property name="value">2</property>
+ <property name="step_increment">1</property>
+ <property name="page_increment">10</property>
+ </object>
+ <object class="GtkAdjustment" id="pg_adjustment2">
+ <property name="upper">99</property>
+ <property name="lower">1</property>
+ <property name="value">4</property>
+ <property name="step_increment">1</property>
+ <property name="page_increment">10</property>
+ </object>
<object class="GtkListStore" id="liststore1">
<columns>
<!-- column-name Cool -->
@@ -3499,6 +3513,54 @@ microphone-sensitivity-medium-symbolic</property>
<property name="title">Address</property>
</packing>
</child>
+ <child>
+ <object class="GtkBox">
+ <property name="visible">True</property>
+ <property name="orientation">vertical</property>
+ <property name="margin">20</property>
+ <property name="halign">center</property>
+ <property name="valign">center</property>
+ <style>
+ <class name="linked"/>
+ </style>
+ <child>
+ <object class="GtkComboBoxText" id="page_combo">
+ <property name="visible">True</property>
+ <property name="active">0</property>
+ <signal name="changed" handler="on_page_combo_changed"/>
+ <items>
+ <item>Range</item>
+ <item>All</item>
+ <item>Current</item>
+ </items>
+ </object>
+ </child>
+ <child>
+ <object class="GtkSpinButton" id="range_from_spin">
+ <property name="visible">True</property>
+ <property name="adjustment">pg_adjustment</property>
+ <signal name="value-changed" handler="on_range_from_changed"/>
+ </object>
+ </child>
+ <child>
+ <object class="GtkSpinButton" id="range_to_spin">
+ <property name="visible">True</property>
+ <property name="adjustment">pg_adjustment2</property>
+ <signal name="value-changed" handler="on_range_to_changed"/>
+ </object>
+ </child>
+ <child>
+ <object class="GtkButton">
+ <property name="visible">True</property>
+ <property name="label">Print</property>
+ </object>
+ </child>
+ </object>
+ <packing>
+ <property name="name">pg</property>
+ <property name="title">Pages</property>
+ </packing>
+ </child>
</object>
</child>
</object>
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]