diff options
author | Javier Jardón <jjardon@gnome.org> | 2009-12-22 00:47:18 +0100 |
---|---|---|
committer | Javier Jardón <jjardon@gnome.org> | 2010-04-13 07:42:34 +0200 |
commit | e53489721644bf8b267edf2b2a665c75c5008423 (patch) | |
tree | ecb8d9611b6aaae22f2af6d1ec928067e320d543 /gtk/gtkcelleditable.c | |
parent | d5585745f1cb07aa0e174326ed22fa2575983a38 (diff) | |
download | gtk+-e53489721644bf8b267edf2b2a665c75c5008423.tar.gz |
Use G_DEFINE_INTERFACE macro in gtkcelleditable
https://bugzilla.gnome.org/show_bug.cgi?id=605186
Diffstat (limited to 'gtk/gtkcelleditable.c')
-rw-r--r-- | gtk/gtkcelleditable.c | 159 |
1 files changed, 62 insertions, 97 deletions
diff --git a/gtk/gtkcelleditable.c b/gtk/gtkcelleditable.c index a0a818b610..330eac5bbb 100644 --- a/gtk/gtkcelleditable.c +++ b/gtk/gtkcelleditable.c @@ -25,106 +25,71 @@ #include "gtkintl.h" #include "gtkalias.h" -static void gtk_cell_editable_base_init (GtkCellEditableIface *iface); - -GType -gtk_cell_editable_get_type (void) -{ - static GType cell_editable_type = 0; - - if (! cell_editable_type) - { - const GTypeInfo cell_editable_info = - { - sizeof (GtkCellEditableIface), /* class_size */ - (GBaseInitFunc) gtk_cell_editable_base_init, /* base_init */ - NULL, /* base_finalize */ - NULL, - NULL, /* class_finalize */ - NULL, /* class_data */ - 0, - 0, - NULL - }; - - cell_editable_type = - g_type_register_static (G_TYPE_INTERFACE, I_("GtkCellEditable"), - &cell_editable_info, 0); - - g_type_interface_add_prerequisite (cell_editable_type, GTK_TYPE_WIDGET); - } - - return cell_editable_type; -} +typedef GtkCellEditableIface GtkCellEditableInterface; +G_DEFINE_INTERFACE(GtkCellEditable, gtk_cell_editable, GTK_TYPE_WIDGET) static void -gtk_cell_editable_base_init (GtkCellEditableIface *iface) +gtk_cell_editable_default_init (GtkCellEditableInterface *iface) { - static gboolean initialized = FALSE; - - if (! initialized) - { - /** - * GtkCellEditable:editing-canceled: - * - * Indicates whether editing on the cell has been canceled. - * - * Since: 2.20 - **/ - g_object_interface_install_property (iface, - g_param_spec_boolean ("editing-canceled", - P_("Editing Canceled"), - P_("Indicates that editing has been canceled"), - FALSE, - GTK_PARAM_READWRITE)); - - /** - * GtkCellEditable::editing-done: - * @cell_editable: the object on which the signal was emitted - * - * This signal is a sign for the cell renderer to update its - * value from the @cell_editable. - * - * Implementations of #GtkCellEditable are responsible for - * emitting this signal when they are done editing, e.g. - * #GtkEntry is emitting it when the user presses Enter. - * - * gtk_cell_editable_editing_done() is a convenience method - * for emitting ::editing-done. - */ - g_signal_new (I_("editing-done"), - GTK_TYPE_CELL_EDITABLE, - G_SIGNAL_RUN_LAST, - G_STRUCT_OFFSET (GtkCellEditableIface, editing_done), - NULL, NULL, - _gtk_marshal_VOID__VOID, - G_TYPE_NONE, 0); - - /** - * GtkCellEditable::remove-widget: - * @cell_editable: the object on which the signal was emitted - * - * This signal is meant to indicate that the cell is finished - * editing, and the widget may now be destroyed. - * - * Implementations of #GtkCellEditable are responsible for - * emitting this signal when they are done editing. It must - * be emitted after the #GtkCellEditable::editing-done signal, - * to give the cell renderer a chance to update the cell's value - * before the widget is removed. - * - * gtk_cell_editable_remove_widget() is a convenience method - * for emitting ::remove-widget. - */ - g_signal_new (I_("remove-widget"), - GTK_TYPE_CELL_EDITABLE, - G_SIGNAL_RUN_LAST, - G_STRUCT_OFFSET (GtkCellEditableIface, remove_widget), - NULL, NULL, - _gtk_marshal_VOID__VOID, - G_TYPE_NONE, 0); - initialized = TRUE; - } + /** + * GtkCellEditable:editing-canceled: + * + * Indicates whether editing on the cell has been canceled. + * + * Since: 2.20 + */ + g_object_interface_install_property (iface, + g_param_spec_boolean ("editing-canceled", + P_("Editing Canceled"), + P_("Indicates that editing has been canceled"), + FALSE, + GTK_PARAM_READWRITE)); + + /** + * GtkCellEditable::editing-done: + * @cell_editable: the object on which the signal was emitted + * + * This signal is a sign for the cell renderer to update its + * value from the @cell_editable. + * + * Implementations of #GtkCellEditable are responsible for + * emitting this signal when they are done editing, e.g. + * #GtkEntry is emitting it when the user presses Enter. + * + * gtk_cell_editable_editing_done() is a convenience method + * for emitting GtkCellEditable::editing-done. + */ + g_signal_new (I_("editing-done"), + GTK_TYPE_CELL_EDITABLE, + G_SIGNAL_RUN_LAST, + G_STRUCT_OFFSET (GtkCellEditableIface, editing_done), + NULL, NULL, + _gtk_marshal_VOID__VOID, + G_TYPE_NONE, 0); + + /** + * GtkCellEditable::remove-widget: + * @cell_editable: the object on which the signal was emitted + * + * This signal is meant to indicate that the cell is finished + * editing, and the widget may now be destroyed. + * + * Implementations of #GtkCellEditable are responsible for + * emitting this signal when they are done editing. It must + * be emitted after the #GtkCellEditable::editing-done signal, + * to give the cell renderer a chance to update the cell's value + * before the widget is removed. + * + * gtk_cell_editable_remove_widget() is a convenience method + * for emitting GtkCellEditable::remove-widget. + */ + g_signal_new (I_("remove-widget"), + GTK_TYPE_CELL_EDITABLE, + G_SIGNAL_RUN_LAST, + G_STRUCT_OFFSET (GtkCellEditableIface, remove_widget), + NULL, NULL, + _gtk_marshal_VOID__VOID, + G_TYPE_NONE, 0); } /** |