[goffice] GOArrowSel: allow selection of type.



commit 6f6d25ec214adbf713360a456c2c3df740380e9c
Author: Morten Welinder <terra gnome org>
Date:   Wed Feb 11 10:51:55 2015 -0500

    GOArrowSel: allow selection of type.

 goffice/gtk/go-arrow-sel.c  |   21 ++++++++++++++++-----
 goffice/gtk/go-arrow-sel.ui |   35 ++++++++++++++++++-----------------
 2 files changed, 34 insertions(+), 22 deletions(-)
---
diff --git a/goffice/gtk/go-arrow-sel.c b/goffice/gtk/go-arrow-sel.c
index 9fd228f..24b348c 100644
--- a/goffice/gtk/go-arrow-sel.c
+++ b/goffice/gtk/go-arrow-sel.c
@@ -34,6 +34,7 @@ struct _GOArrowSel {
        GtkBuilder *gui;
        GOArrow arrow;
 
+       GtkWidget *type_selector;
        GtkSpinButton *spin_a, *spin_b, *spin_c;
        GtkWidget *preview;
 };
@@ -50,13 +51,19 @@ enum {
 static GObjectClass *as_parent_class;
 
 static void
-cb_spin_changed (GtkWidget *spin, GOArrowSel *as)
+cb_changed (GOArrowSel *as)
 {
        GOArrow arr = as->arrow;
+       int idx;
 
+       idx = gtk_combo_box_get_active (GTK_COMBO_BOX (as->type_selector));
+       if (idx >= 0)
+               arr.typ = idx;
        arr.a = gtk_spin_button_get_value (as->spin_a);
        arr.b = gtk_spin_button_get_value (as->spin_b);
        arr.c = gtk_spin_button_get_value (as->spin_c);
+
+
        go_arrow_sel_set_arrow (as, &arr);
 }
 
@@ -88,7 +95,7 @@ go_arrow_sel_constructor (GType type,
                          guint n_construct_properties,
                          GObjectConstructParam *construct_params)
 {
-       GtkWidget *arrowsel, *placeholder;
+       GtkWidget *arrowsel;
        GOArrowSel *as = (GOArrowSel *)
                (as_parent_class->constructor (type,
                                                n_construct_properties,
@@ -99,11 +106,14 @@ go_arrow_sel_constructor (GType type,
 
        as->gui = go_gtk_builder_load_internal ("res:go:gtk/go-arrow-sel.ui", GETTEXT_PACKAGE, NULL);
        as->spin_a = GTK_SPIN_BUTTON (go_gtk_builder_get_widget (as->gui, "spin_a"));
-       g_signal_connect (as->spin_a, "value-changed", G_CALLBACK (cb_spin_changed), as);
+       g_signal_connect_swapped (as->spin_a, "value-changed", G_CALLBACK (cb_changed), as);
        as->spin_b = GTK_SPIN_BUTTON (go_gtk_builder_get_widget (as->gui, "spin_b"));
-       g_signal_connect (as->spin_b, "value-changed", G_CALLBACK (cb_spin_changed), as);
+       g_signal_connect_swapped (as->spin_b, "value-changed", G_CALLBACK (cb_changed), as);
        as->spin_c = GTK_SPIN_BUTTON (go_gtk_builder_get_widget (as->gui, "spin_c"));
-       g_signal_connect (as->spin_c, "value-changed", G_CALLBACK (cb_spin_changed), as);
+       g_signal_connect_swapped (as->spin_c, "value-changed", G_CALLBACK (cb_changed), as);
+
+       as->type_selector = go_gtk_builder_get_widget (as->gui, "type-selector");
+       g_signal_connect_swapped (as->type_selector, "changed", G_CALLBACK (cb_changed), as);
 
        as->preview = go_gtk_builder_get_widget (as->gui, "preview");
        g_signal_connect (G_OBJECT (as->preview), "draw",
@@ -224,6 +234,7 @@ go_arrow_sel_set_arrow (GOArrowSel *as, GOArrow const *arrow)
        g_object_freeze_notify (G_OBJECT (as));
        as->arrow = *arrow;
        g_object_notify (G_OBJECT (as), "arrow");
+       gtk_combo_box_set_active (GTK_COMBO_BOX (as->type_selector), arrow->typ);
        gtk_spin_button_set_value (as->spin_a, arrow->a);
        gtk_spin_button_set_value (as->spin_b, arrow->b);
        gtk_spin_button_set_value (as->spin_c, arrow->c);
diff --git a/goffice/gtk/go-arrow-sel.ui b/goffice/gtk/go-arrow-sel.ui
index d53f7d6..226c13d 100644
--- a/goffice/gtk/go-arrow-sel.ui
+++ b/goffice/gtk/go-arrow-sel.ui
@@ -1,5 +1,5 @@
 <?xml version="1.0" encoding="UTF-8"?>
-<!-- Generated with glade 3.16.0 on Wed Feb 11 08:26:35 2015 -->
+<!-- Generated with glade 3.16.0 on Wed Feb 11 09:58:36 2015 -->
 <interface>
   <!-- interface-requires gtk+ 3.8 -->
   <object class="GtkAdjustment" id="adjustment1">
@@ -29,22 +29,6 @@
         <property name="row_spacing">6</property>
         <property name="column_spacing">12</property>
         <child>
-          <object class="GtkBox" id="type_placeholder">
-            <property name="visible">True</property>
-            <property name="can_focus">False</property>
-            <property name="orientation">vertical</property>
-            <child>
-              <placeholder/>
-            </child>
-          </object>
-          <packing>
-            <property name="left_attach">0</property>
-            <property name="top_attach">0</property>
-            <property name="width">2</property>
-            <property name="height">1</property>
-          </packing>
-        </child>
-        <child>
           <object class="GtkLabel" id="label1">
             <property name="visible">True</property>
             <property name="can_focus">False</property>
@@ -133,6 +117,23 @@
             <property name="height">1</property>
           </packing>
         </child>
+        <child>
+          <object class="GtkComboBoxText" id="type-selector">
+            <property name="visible">True</property>
+            <property name="can_focus">False</property>
+            <items>
+              <item translatable="yes">None</item>
+              <item translatable="yes">Kite</item>
+              <item translatable="yes">Oval</item>
+            </items>
+          </object>
+          <packing>
+            <property name="left_attach">0</property>
+            <property name="top_attach">0</property>
+            <property name="width">2</property>
+            <property name="height">1</property>
+          </packing>
+        </child>
       </object>
       <packing>
         <property name="expand">False</property>


[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]