]> Pileus Git - ~andy/gtk/commitdiff
Make gtk_combo_box_get_active_text do the right thing for GtkComboBoxEntry
authorMatthias Clasen <mclasen@redhat.com>
Fri, 1 Apr 2005 20:53:04 +0000 (20:53 +0000)
committerMatthias Clasen <matthiasc@src.gnome.org>
Fri, 1 Apr 2005 20:53:04 +0000 (20:53 +0000)
2005-04-01  Matthias Clasen  <mclasen@redhat.com>

Make gtk_combo_box_get_active_text do the right thing for
GtkComboBoxEntry (#171373, Robert Staudinger)

* gtk/gtkcombobox.h: Add a get_active_text vfunc.

* gtk/gtkcombobox.c (gtk_combo_box_real_get_active_text): And
implement it here.

* gtk/gtkcomboboxentry.c (gtk_combo_box_entry_get_active_text):
Implement get_active_text by always returning the content of
the entry.

ChangeLog
ChangeLog.pre-2-10
ChangeLog.pre-2-8
gtk/gtkcombobox.c
gtk/gtkcombobox.h
gtk/gtkcomboboxentry.c

index 53cb82ed47ec482e10cbf03a34b4a9f702cf570d..be4b005cfc38804b69d46c5453bc1bf66983e117 100644 (file)
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,17 @@
+2005-04-01  Matthias Clasen  <mclasen@redhat.com>
+
+       Make gtk_combo_box_get_active_text do the right thing for
+       GtkComboBoxEntry (#171373, Robert Staudinger)
+       
+       * gtk/gtkcombobox.h: Add a get_active_text vfunc.
+       
+       * gtk/gtkcombobox.c (gtk_combo_box_real_get_active_text): And
+       implement it here.
+
+       * gtk/gtkcomboboxentry.c (gtk_combo_box_entry_get_active_text): 
+       Implement get_active_text by always returning the content of 
+       the entry.
+
 2005-03-31  Sven Neumann  <sven@gimp.org>
 
        Merged from gtk-2-6:
index 53cb82ed47ec482e10cbf03a34b4a9f702cf570d..be4b005cfc38804b69d46c5453bc1bf66983e117 100644 (file)
@@ -1,3 +1,17 @@
+2005-04-01  Matthias Clasen  <mclasen@redhat.com>
+
+       Make gtk_combo_box_get_active_text do the right thing for
+       GtkComboBoxEntry (#171373, Robert Staudinger)
+       
+       * gtk/gtkcombobox.h: Add a get_active_text vfunc.
+       
+       * gtk/gtkcombobox.c (gtk_combo_box_real_get_active_text): And
+       implement it here.
+
+       * gtk/gtkcomboboxentry.c (gtk_combo_box_entry_get_active_text): 
+       Implement get_active_text by always returning the content of 
+       the entry.
+
 2005-03-31  Sven Neumann  <sven@gimp.org>
 
        Merged from gtk-2-6:
index 53cb82ed47ec482e10cbf03a34b4a9f702cf570d..be4b005cfc38804b69d46c5453bc1bf66983e117 100644 (file)
@@ -1,3 +1,17 @@
+2005-04-01  Matthias Clasen  <mclasen@redhat.com>
+
+       Make gtk_combo_box_get_active_text do the right thing for
+       GtkComboBoxEntry (#171373, Robert Staudinger)
+       
+       * gtk/gtkcombobox.h: Add a get_active_text vfunc.
+       
+       * gtk/gtkcombobox.c (gtk_combo_box_real_get_active_text): And
+       implement it here.
+
+       * gtk/gtkcomboboxentry.c (gtk_combo_box_entry_get_active_text): 
+       Implement get_active_text by always returning the content of 
+       the entry.
+
 2005-03-31  Sven Neumann  <sven@gimp.org>
 
        Merged from gtk-2-6:
index 11d85358cb4fdd978173269cae7944693cd2abf3..67e8dc2966b85eb3afde41704941ca07df8d2b93 100644 (file)
@@ -285,6 +285,7 @@ static gboolean gtk_combo_box_key_press            (GtkWidget        *widget,
                                                    gpointer          data);
 
 static void     gtk_combo_box_check_appearance     (GtkComboBox      *combo_box);
+static gchar *  gtk_combo_box_real_get_active_text (GtkComboBox      *combo_box);
 
 /* listening to the model */
 static void     gtk_combo_box_model_row_inserted   (GtkTreeModel     *model,
@@ -492,6 +493,8 @@ gtk_combo_box_class_init (GtkComboBoxClass *klass)
 
   binding_set = gtk_binding_set_by_class (klass);
 
+  klass->get_active_text = gtk_combo_box_real_get_active_text;
+
   container_class = (GtkContainerClass *)klass;
   container_class->forall = gtk_combo_box_forall;
   container_class->add = gtk_combo_box_add;
@@ -4743,7 +4746,8 @@ gtk_combo_box_remove_text (GtkComboBox *combo_box,
  *
  * Returns the currently active string in @combo_box or %NULL if none
  * is selected.  Note that you can only use this function with combo
- * boxes constructed with gtk_combo_box_new_text().
+ * boxes constructed with gtk_combo_box_new_text() and with 
+ * #GtkComboBoxEntry<!-- -->s.
  *
  * Returns: a newly allocated string containing the currently active text.
  *
@@ -4751,11 +4755,25 @@ gtk_combo_box_remove_text (GtkComboBox *combo_box,
  */
 gchar *
 gtk_combo_box_get_active_text (GtkComboBox *combo_box)
+{
+  GtkComboBoxClass *class;
+
+  g_return_val_if_fail (GTK_IS_COMBO_BOX (combo_box), NULL);
+
+  class = GTK_COMBO_BOX_GET_CLASS (combo_box);
+
+  if (class->get_active_text)
+    return (* class->get_active_text) (combo_box);
+
+  return NULL;
+}
+
+static gchar *
+gtk_combo_box_real_get_active_text (GtkComboBox *combo_box)
 {
   GtkTreeIter iter;
   gchar *text = NULL;
 
-  g_return_val_if_fail (GTK_IS_COMBO_BOX (combo_box), NULL);
   g_return_val_if_fail (GTK_IS_LIST_STORE (combo_box->priv->model), NULL);
 
   if (gtk_combo_box_get_active_iter (combo_box, &iter))
index 79c675837ae656362a7401a150de841dd2381fd7..e8b2a46cc4220f5c1f4048725c5455ad533c841f 100644 (file)
@@ -52,11 +52,13 @@ struct _GtkComboBoxClass
   /* signals */
   void     (* changed)          (GtkComboBox *combo_box);
 
+  /* vfuncs */
+  gchar *  (* get_active_text)  (GtkComboBox *combo_box);
+
   /* Padding for future expansion */
   void (*_gtk_reserved0) (void);
   void (*_gtk_reserved1) (void);
   void (*_gtk_reserved2) (void);
-  void (*_gtk_reserved3) (void);
 };
 
 
index 3b2974e1ffe2fab30b4a0e7cfddf1297f1dba445..108605465deef781964267d48411228428d1063a 100644 (file)
@@ -50,6 +50,7 @@ static void gtk_combo_box_entry_get_property     (GObject               *object,
                                                   GValue                *value,
                                                   GParamSpec            *pspec);
 
+static gchar *gtk_combo_box_entry_get_active_text (GtkComboBox *combo_box);
 static void gtk_combo_box_entry_active_changed   (GtkComboBox           *combo_box,
                                                   gpointer               user_data);
 static void gtk_combo_box_entry_contents_changed (GtkEntry              *entry,
@@ -101,7 +102,8 @@ gtk_combo_box_entry_class_init (GtkComboBoxEntryClass *klass)
 {
   GObjectClass *object_class;
   GtkWidgetClass *widget_class;
-
+  GtkComboBoxClass *combo_class;
+  
   object_class = (GObjectClass *)klass;
   object_class->set_property = gtk_combo_box_entry_set_property;
   object_class->get_property = gtk_combo_box_entry_get_property;
@@ -109,6 +111,9 @@ gtk_combo_box_entry_class_init (GtkComboBoxEntryClass *klass)
   widget_class = (GtkWidgetClass *)klass;
   widget_class->mnemonic_activate = gtk_combo_box_entry_mnemonic_activate;
 
+  combo_class = (GtkComboBoxClass *)klass;
+  combo_class->get_active_text = gtk_combo_box_entry_get_active_text;
+  
   g_object_class_install_property (object_class,
                                    PROP_TEXT_COLUMN,
                                    g_param_spec_int ("text-column",
@@ -384,5 +389,16 @@ gtk_combo_box_entry_new_text (void)
   return entry_box;
 }
 
+static gchar *
+gtk_combo_box_entry_get_active_text (GtkComboBox *combo_box)
+{
+  GtkComboBoxEntry *combo = GTK_COMBO_BOX_ENTRY (combo_box);
+
+  if (combo->priv->entry)
+    return g_strdup (gtk_entry_get_text (combo->priv->entry));
+
+  return NULL;
+}
+
 #define __GTK_COMBO_BOX_ENTRY_C__
 #include "gtkaliasdef.c"