[maemo-commits] [maemo-commits] r15328 - in projects/haf/trunk/gtk+: . gtk
From: subversion at stage.maemo.org subversion at stage.maemo.orgDate: Mon Mar 31 21:22:15 EEST 2008
- Previous message: [maemo-commits] r15327 - in projects/haf/trunk/dosfstools/debian: . patches
- Next message: [maemo-commits] r15329 - projects/haf/trunk/gtk+/gtk
- Messages sorted by: [ date ] [ thread ] [ subject ] [ author ]
Author: kris Date: 2008-03-31 21:22:10 +0300 (Mon, 31 Mar 2008) New Revision: 15328 Modified: projects/haf/trunk/gtk+/ChangeLog projects/haf/trunk/gtk+/gtk/gtkcellrenderercombo.c projects/haf/trunk/gtk+/gtk/gtkmarshalers.list Log: 2008-03-31 Kristian Rietveld <kris at imendio.com> Introduce a changed signal for GtkCellRendererCombo to be able to fix NB#80708. * gtk/gtkmarshalers.list: add VOID:STRING,BOXED marshaler. * gtk/gtkcellrenderercombo.c (gtk_cell_renderer_combo_class_init): add changed signal, (gtk_cell_renderer_combo_editing_done), (gtk_cell_renderer_combo_changed): emit the changed signal after the embedded combo box has emitted changed. Modified: projects/haf/trunk/gtk+/ChangeLog =================================================================== --- projects/haf/trunk/gtk+/ChangeLog 2008-03-31 13:51:51 UTC (rev 15327) +++ projects/haf/trunk/gtk+/ChangeLog 2008-03-31 18:22:10 UTC (rev 15328) @@ -1,3 +1,16 @@ +2008-03-31 Kristian Rietveld <kris at imendio.com> + + Introduce a changed signal for GtkCellRendererCombo to be + able to fix NB#80708. + + * gtk/gtkmarshalers.list: add VOID:STRING,BOXED marshaler. + + * gtk/gtkcellrenderercombo.c (gtk_cell_renderer_combo_class_init): + add changed signal, + (gtk_cell_renderer_combo_editing_done), + (gtk_cell_renderer_combo_changed): emit the changed signal after + the embedded combo box has emitted changed. + 2008-03-05 Kristian Rietveld <kris at imendio.com> Introduce CellDataFunc hint functionality for NB#78800. Modified: projects/haf/trunk/gtk+/gtk/gtkcellrenderercombo.c =================================================================== --- projects/haf/trunk/gtk+/gtk/gtkcellrenderercombo.c 2008-03-31 13:51:51 UTC (rev 15327) +++ projects/haf/trunk/gtk+/gtk/gtkcellrenderercombo.c 2008-03-31 18:22:10 UTC (rev 15328) @@ -28,6 +28,7 @@ #include "gtkcellrenderertext.h" #include "gtkcombobox.h" #include "gtkcomboboxentry.h" +#include "gtkmarshalers.h" #include "gtkprivate.h" #include "gtkalias.h" @@ -59,6 +60,13 @@ PROP_HAS_ENTRY }; +enum { + CHANGED, + LAST_SIGNAL +}; + +static guint cell_renderer_combo_signals[LAST_SIGNAL] = { 0, }; + #define GTK_CELL_RENDERER_COMBO_PATH "gtk-cell-renderer-combo-path" G_DEFINE_TYPE (GtkCellRendererCombo, gtk_cell_renderer_combo, GTK_TYPE_CELL_RENDERER_TEXT) @@ -130,6 +138,40 @@ TRUE, GTK_PARAM_READWRITE)); + + /** + * GtkCellRendererCombo::changed: + * @combo: the object on which the signal is emitted + * @path_string: a string of the path identifying the edited cell + * (relative to the tree view model) + * @new_iter: the new iter selected in the combo box + * (relative to the combo box model) + * + * This signal is emitted each time after the user selected an item in + * the combo box, either by using the mouse or the arrow keys. Contrary + * to GtkComboBox, GtkCellRendererCombo::changed is not emitted for + * changes made to a selected item in the entry. The argument @new_iter + * corresponds to the newly selected item in the combo box and it is relative + * to the GtkTreeModel set via the model property on GtkCellRendererCombo. + * + * You most probably want to refrain changing the model displayed by + * the view this cell renderer is contained in until this cell renderer + * emits the edited or editing_canceled signal in case you want to + * work around the default value acceptance behavior. + * + * Since: maemo 4.0 + * Stability: Unstable + */ + cell_renderer_combo_signals[CHANGED] = + g_signal_new (I_("changed"), + G_TYPE_FROM_CLASS (object_class), + G_SIGNAL_RUN_LAST, + 0, + NULL, NULL, + _gtk_marshal_VOID__STRING_BOXED, + G_TYPE_NONE, 2, + G_TYPE_STRING, + GTK_TYPE_TREE_ITER); } static void @@ -246,6 +288,25 @@ } static void +gtk_cell_renderer_combo_changed (GtkComboBox *combo, + gpointer data) +{ + GtkTreeIter iter; + GtkCellRendererCombo *cell; + + cell = GTK_CELL_RENDERER_COMBO (data); + + if (gtk_combo_box_get_active_iter (combo, &iter)) + { + const char *path; + + path = g_object_get_data (G_OBJECT (combo), GTK_CELL_RENDERER_COMBO_PATH); + g_signal_emit (cell, cell_renderer_combo_signals[CHANGED], 0, + path, &iter); + } +} + +static void gtk_cell_renderer_combo_editing_done (GtkCellEditable *combo, gpointer data) { @@ -386,6 +447,9 @@ g_signal_connect (GTK_CELL_EDITABLE (combo), "editing_done", G_CALLBACK (gtk_cell_renderer_combo_editing_done), cell_combo); + g_signal_connect (GTK_CELL_EDITABLE (combo), "changed", + G_CALLBACK (gtk_cell_renderer_combo_changed), + cell_combo); cell_combo->focus_out_id = g_signal_connect (combo, "focus_out_event", G_CALLBACK (gtk_cell_renderer_combo_focus_out_event), Modified: projects/haf/trunk/gtk+/gtk/gtkmarshalers.list =================================================================== --- projects/haf/trunk/gtk+/gtk/gtkmarshalers.list 2008-03-31 13:51:51 UTC (rev 15327) +++ projects/haf/trunk/gtk+/gtk/gtkmarshalers.list 2008-03-31 18:22:10 UTC (rev 15328) @@ -99,6 +99,7 @@ VOID:POINTER,POINTER,POINTER VOID:POINTER,UINT VOID:STRING +VOID:STRING,BOXED VOID:STRING,STRING VOID:STRING,INT,POINTER VOID:STRING,UINT,FLAGS
- Previous message: [maemo-commits] r15327 - in projects/haf/trunk/dosfstools/debian: . patches
- Next message: [maemo-commits] r15329 - projects/haf/trunk/gtk+/gtk
- Messages sorted by: [ date ] [ thread ] [ subject ] [ author ]