From fb526d239af04183f5751f209c269d13b244de80 Mon Sep 17 00:00:00 2001 From: Federico Mena Quintero Date: Fri, 16 Jan 2004 19:18:28 +0000 Subject: Fix #130969. 2004-01-16 Federico Mena Quintero Fix #130969. * gtk/gtkcellrenderer.h (struct _GtkCellRendererClass): Added an editing_canceled signal. * gtk/gtkcellrenderer.c (gtk_cell_renderer_class_init): Create the "editing-canceled" signal. (gtk_cell_renderer_editing_canceled): New function. * gtk/gtkcellrenderertext.c (gtk_cell_renderer_text_editing_done): Call gtk_cell_renderer_editing_canceled(). --- gtk/gtkcellrenderer.c | 50 ++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 50 insertions(+) (limited to 'gtk/gtkcellrenderer.c') diff --git a/gtk/gtkcellrenderer.c b/gtk/gtkcellrenderer.c index 153cc9dd13..c19ee74976 100644 --- a/gtk/gtkcellrenderer.c +++ b/gtk/gtkcellrenderer.c @@ -19,6 +19,7 @@ #include "gtkcellrenderer.h" #include "gtkintl.h" +#include "gtkmarshalers.h" #include "gtktreeprivate.h" static void gtk_cell_renderer_init (GtkCellRenderer *cell); @@ -61,6 +62,15 @@ enum { PROP_CELL_BACKGROUND_SET }; +/* Signal IDs */ +enum { + EDITING_CANCELED, + LAST_SIGNAL +}; + +static guint cell_renderer_signals[LAST_SIGNAL] = { 0 }; + + GType gtk_cell_renderer_get_type (void) { @@ -113,6 +123,27 @@ gtk_cell_renderer_class_init (GtkCellRendererClass *class) class->render = NULL; class->get_size = NULL; + /** + * GtkCellRenderer::editing-canceled: + * + * This signal gets emitted when the user cancels the process of editing a + * cell. For example, an editable cell renderer could be written to cancel + * editing when the user presses Escape. + * + * See also: gtk_cell_renderer_editing_canceled() + * + * Since: 2.4 + */ + + cell_renderer_signals[EDITING_CANCELED] = + g_signal_new ("editing-canceled", + G_OBJECT_CLASS_TYPE (object_class), + G_SIGNAL_RUN_FIRST, + G_STRUCT_OFFSET (GtkCellRendererClass, editing_canceled), + NULL, NULL, + _gtk_marshal_VOID__VOID, + G_TYPE_NONE, 0); + g_object_class_install_property (object_class, PROP_MODE, g_param_spec_enum ("mode", @@ -654,3 +685,22 @@ gtk_cell_renderer_get_fixed_size (GtkCellRenderer *cell, if (height) (* height) = cell->height; } + +/** + * gtk_cell_renderer_editing_canceled: + * @cell: A #GtkCellRenderer + * + * Causes the cell renderer to emit the "editing-canceled" signal. This + * function is for use only by implementations of cell renderers that need to + * notify the client program that an editing process was canceled and the + * changes were not committed. + * + * Since: 2.4 + **/ +void +gtk_cell_renderer_editing_canceled (GtkCellRenderer *cell) +{ + g_return_if_fail (GTK_IS_CELL_RENDERER (cell)); + + g_signal_emit (cell, cell_renderer_signals[EDITING_CANCELED], 0); +} -- cgit v1.2.1