]> Pileus Git - ~andy/gtk/commitdiff
Fix #130969.
authorFederico Mena Quintero <federico@ximian.com>
Fri, 16 Jan 2004 19:18:28 +0000 (19:18 +0000)
committerFederico Mena Quintero <federico@src.gnome.org>
Fri, 16 Jan 2004 19:18:28 +0000 (19:18 +0000)
2004-01-16  Federico Mena Quintero  <federico@ximian.com>

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().

ChangeLog
ChangeLog.pre-2-10
ChangeLog.pre-2-4
ChangeLog.pre-2-6
ChangeLog.pre-2-8
gtk/gtkcellrenderer.c
gtk/gtkcellrenderer.h
gtk/gtkcellrenderertext.c

index 323399823d00bd3526c167683f9671f42e7270b8..517d227818cf87167098bcb1040e3dc9a69861c8 100644 (file)
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,17 @@
+2004-01-16  Federico Mena Quintero  <federico@ximian.com>
+
+       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().
+
 2004-01-16  Federico Mena Quintero  <federico@ximian.com>
 
        * gtk/gtkfilechooserdefault.c
index 323399823d00bd3526c167683f9671f42e7270b8..517d227818cf87167098bcb1040e3dc9a69861c8 100644 (file)
@@ -1,3 +1,17 @@
+2004-01-16  Federico Mena Quintero  <federico@ximian.com>
+
+       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().
+
 2004-01-16  Federico Mena Quintero  <federico@ximian.com>
 
        * gtk/gtkfilechooserdefault.c
index 323399823d00bd3526c167683f9671f42e7270b8..517d227818cf87167098bcb1040e3dc9a69861c8 100644 (file)
@@ -1,3 +1,17 @@
+2004-01-16  Federico Mena Quintero  <federico@ximian.com>
+
+       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().
+
 2004-01-16  Federico Mena Quintero  <federico@ximian.com>
 
        * gtk/gtkfilechooserdefault.c
index 323399823d00bd3526c167683f9671f42e7270b8..517d227818cf87167098bcb1040e3dc9a69861c8 100644 (file)
@@ -1,3 +1,17 @@
+2004-01-16  Federico Mena Quintero  <federico@ximian.com>
+
+       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().
+
 2004-01-16  Federico Mena Quintero  <federico@ximian.com>
 
        * gtk/gtkfilechooserdefault.c
index 323399823d00bd3526c167683f9671f42e7270b8..517d227818cf87167098bcb1040e3dc9a69861c8 100644 (file)
@@ -1,3 +1,17 @@
+2004-01-16  Federico Mena Quintero  <federico@ximian.com>
+
+       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().
+
 2004-01-16  Federico Mena Quintero  <federico@ximian.com>
 
        * gtk/gtkfilechooserdefault.c
index 153cc9dd13e3a5dcd0bf82e2c3f93ff769f3e705..c19ee7497631db1113b272354f9efa1171e5cdca 100644 (file)
@@ -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);
+}
index 0dd241b9ff592a11b5a9419a3f474a2e6ee2a2be..5b681aeb979d8048b004b7473f3a3d1cb979963c 100644 (file)
@@ -107,11 +107,13 @@ struct _GtkCellRendererClass
                                      GdkRectangle         *cell_area,
                                      GtkCellRendererState  flags);
 
+  /* Signals */
+  void (* editing_canceled) (GtkCellRenderer *cell);
+
   /* Padding for future expansion */
   void (*_gtk_reserved1) (void);
   void (*_gtk_reserved2) (void);
   void (*_gtk_reserved3) (void);
-  void (*_gtk_reserved4) (void);
 };
 
 GType            gtk_cell_renderer_get_type       (void) G_GNUC_CONST;
@@ -151,8 +153,10 @@ void             gtk_cell_renderer_get_fixed_size (GtkCellRenderer      *cell,
                                                   gint                 *width,
                                                   gint                 *height);
 
+/* For use by cell renderer implementations only */
+void gtk_cell_renderer_editing_canceled (GtkCellRenderer *cell);
+
 
 G_END_DECLS
 
 #endif /* __GTK_CELL_RENDERER_H__ */
index fe79f6cfaeed21fe2b86e01ed7ec031a19dfb75d..f03f6e45ce1dc7050914c5a45aabc771026719e9 100644 (file)
@@ -1439,7 +1439,10 @@ gtk_cell_renderer_text_editing_done (GtkCellEditable *entry,
     }
 
   if (GTK_ENTRY (entry)->editing_canceled)
-    return;
+    {
+      gtk_cell_renderer_editing_canceled (GTK_CELL_RENDERER (data));
+      return;
+    }
 
   path = g_object_get_data (G_OBJECT (entry), GTK_CELL_RENDERER_TEXT_PATH);
   new_text = gtk_entry_get_text (GTK_ENTRY (entry));