X-Git-Url: http://pileus.org/git/?a=blobdiff_plain;f=gtk%2Fgtkcelleditable.c;h=7302549dc677816f24e875135e6733c5304dee4e;hb=ca2368dba958d6fecf2fce417307bb9cbbe6eb6b;hp=a0a818b6107c14036e86c14567649a5c1349c8d7;hpb=eee7bb2b2ec87081b16d8a708853c9396c7695ec;p=~andy%2Fgtk diff --git a/gtk/gtkcelleditable.c b/gtk/gtkcelleditable.c index a0a818b61..7302549dc 100644 --- a/gtk/gtkcelleditable.c +++ b/gtk/gtkcelleditable.c @@ -12,119 +12,92 @@ * Library General Public License for more details. * * You should have received a copy of the GNU Library General Public - * License along with this library; if not, write to the - * Free Software Foundation, Inc., 59 Temple Place - Suite 330, - * Boston, MA 02111-1307, USA. + * License along with this library. If not, see . */ +/** + * SECTION:gtkcelleditable + * @Short_description: Interface for widgets which can are used for editing + * cells + * @Title: GtkCellEditable + * @See_also: #GtkEntry, #GtkCellRenderer + * + * The #GtkCellEditable interface must be implemented for widgets to be usable + * when editing the contents of a #GtkTreeView cell. + */ #include "config.h" #include "gtkcelleditable.h" #include "gtkmarshalers.h" #include "gtkprivate.h" #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); } /** @@ -147,7 +120,7 @@ gtk_cell_editable_start_editing (GtkCellEditable *cell_editable, /** * gtk_cell_editable_editing_done: - * @cell_editable: A #GtkTreeEditable + * @cell_editable: A #GtkCellEditable * * Emits the #GtkCellEditable::editing-done signal. **/ @@ -161,7 +134,7 @@ gtk_cell_editable_editing_done (GtkCellEditable *cell_editable) /** * gtk_cell_editable_remove_widget: - * @cell_editable: A #GtkTreeEditable + * @cell_editable: A #GtkCellEditable * * Emits the #GtkCellEditable::remove-widget signal. **/ @@ -172,6 +145,3 @@ gtk_cell_editable_remove_widget (GtkCellEditable *cell_editable) g_signal_emit_by_name (cell_editable, "remove-widget"); } - -#define __GTK_CELL_EDITABLE_C__ -#include "gtkaliasdef.c"