diff options
-rw-r--r-- | ChangeLog | 18 | ||||
-rw-r--r-- | gtk/gtk.symbols | 2 | ||||
-rw-r--r-- | gtk/gtkobject.c | 6 | ||||
-rw-r--r-- | gtk/gtksettings.c | 16 | ||||
-rw-r--r-- | gtk/gtktypeutils.c | 12 | ||||
-rw-r--r-- | gtk/gtktypeutils.h | 13 | ||||
-rw-r--r-- | tests/testgtk.c | 6 |
7 files changed, 58 insertions, 15 deletions
@@ -1,3 +1,21 @@ +2008-06-18 Michael Natterer <mitch@imendio.com> + + * gtk/gtktypeutils.[ch]: deprecate gtk_type_class(). + + * gtk/gtk.symbols: changed accordingly. + + * gtk/gtksettings.c (gtk_settings_install_property) + (gtk_settings_install_property_parser): get rid of using + gtk_type_class() by keeping a static reference to GtkSettingsClass + around in both functions and passing that pointer on to + settings_install_property_parser(). + + * tests/testgtk.c: use g_type_class_ref()/unref() instead of + gtk_type_class(). + + * gtk/gtkobject.c: #undef GTK_DISABLE_DEPRECATED around including + gtktypeutils.h. + 2008-06-17 Johan Dahlin <jdahlin@async.com.br> * gtk/gtkstyle.c: Add deprecated version diff --git a/gtk/gtk.symbols b/gtk/gtk.symbols index 5abe507bad..162a173f6e 100644 --- a/gtk/gtk.symbols +++ b/gtk/gtk.symbols @@ -4481,7 +4481,6 @@ gtk_tree_view_columns_autosize #if IN_HEADER(__GTK_TYPE_UTILS_H__) #if IN_FILE(__GTK_TYPE_UTILS_C__) -gtk_type_class gtk_identifier_get_type G_GNUC_CONST #ifndef GTK_DISABLE_DEPRECATED gtk_type_enum_find_value @@ -4491,6 +4490,7 @@ gtk_type_flags_get_values gtk_type_init gtk_type_new gtk_type_unique +gtk_type_class #endif #endif #endif diff --git a/gtk/gtkobject.c b/gtk/gtkobject.c index d5a185176e..c83242955d 100644 --- a/gtk/gtkobject.c +++ b/gtk/gtkobject.c @@ -25,13 +25,19 @@ */ #include <config.h> + #include <stdarg.h> #include <string.h> #include <stdio.h> + +#undef GTK_DISABLE_DEPRECATED + #include "gtkobject.h" #include "gtkintl.h" #include "gtkmarshalers.h" #include "gtkprivate.h" + +#define GTK_DISABLE_DEPRECATED #include "gtkalias.h" diff --git a/gtk/gtksettings.c b/gtk/gtksettings.c index a603fafc32..94cc2b621c 100644 --- a/gtk/gtksettings.c +++ b/gtk/gtksettings.c @@ -1280,23 +1280,33 @@ _gtk_rc_property_parser_from_type (GType type) void gtk_settings_install_property (GParamSpec *pspec) { + static GtkSettingsClass *klass = NULL; + GtkRcPropertyParser parser; g_return_if_fail (G_IS_PARAM_SPEC (pspec)); + if (! klass) + klass = g_type_class_ref (GTK_TYPE_SETTINGS); + parser = _gtk_rc_property_parser_from_type (G_PARAM_SPEC_VALUE_TYPE (pspec)); - settings_install_property_parser (gtk_type_class (GTK_TYPE_SETTINGS), pspec, parser); + settings_install_property_parser (klass, pspec, parser); } void gtk_settings_install_property_parser (GParamSpec *pspec, GtkRcPropertyParser parser) { + static GtkSettingsClass *klass = NULL; + g_return_if_fail (G_IS_PARAM_SPEC (pspec)); g_return_if_fail (parser != NULL); - - settings_install_property_parser (gtk_type_class (GTK_TYPE_SETTINGS), pspec, parser); + + if (! klass) + klass = g_type_class_ref (GTK_TYPE_SETTINGS); + + settings_install_property_parser (klass, pspec, parser); } static void diff --git a/gtk/gtktypeutils.c b/gtk/gtktypeutils.c index 71159a9a68..26ff4d63e6 100644 --- a/gtk/gtktypeutils.c +++ b/gtk/gtktypeutils.c @@ -60,6 +60,18 @@ gtk_type_unique (GtkType parent_type, return g_type_register_static (parent_type, gtkinfo->type_name, &tinfo, 0); } +/** + * gtk_type_class + * @type: a #GtkType. + * + * Returns a pointer pointing to the class of @type or %NULL if there + * was any trouble identifying @type. Initializes the class if + * necessary. + * + * Returns: pointer to the class. + * + * Deprecated: 2.14: Use g_type_class_peek() or g_type_class_ref() instead. + **/ gpointer gtk_type_class (GtkType type) { diff --git a/gtk/gtktypeutils.h b/gtk/gtktypeutils.h index 1c8aa558d3..4898f75261 100644 --- a/gtk/gtktypeutils.h +++ b/gtk/gtktypeutils.h @@ -235,15 +235,10 @@ struct _GtkTypeInfo GtkClassInitFunc base_class_init_func; }; -#endif /* GTK_DISABLE_DEPRECATED */ - -gpointer gtk_type_class (GtkType type); - -#ifndef GTK_DISABLE_DEPRECATED - -GtkType gtk_type_unique (GtkType parent_type, - const GtkTypeInfo *gtkinfo); -gpointer gtk_type_new (GtkType type); +GtkType gtk_type_unique (GtkType parent_type, + const GtkTypeInfo *gtkinfo); +gpointer gtk_type_class (GtkType type); +gpointer gtk_type_new (GtkType type); /* --- compatibility defines --- */ #define gtk_type_name(type) g_type_name (type) diff --git a/tests/testgtk.c b/tests/testgtk.c index ae0700b006..9fab6f4fbf 100644 --- a/tests/testgtk.c +++ b/tests/testgtk.c @@ -6077,7 +6077,7 @@ set_cursor (GtkWidget *spinner, label = g_object_get_data (G_OBJECT (spinner), "user_data"); - class = gtk_type_class (GDK_TYPE_CURSOR_TYPE); + class = g_type_class_ref (GDK_TYPE_CURSOR_TYPE); vals = class->values; while (vals && vals->value != c) @@ -6087,6 +6087,8 @@ set_cursor (GtkWidget *spinner, else gtk_label_set_text (GTK_LABEL (label), "<unknown>"); + g_type_class_unref (class); + cursor = gdk_cursor_new_for_display (gtk_widget_get_display (widget), c); gdk_window_set_cursor (widget->window, cursor); gdk_cursor_unref (cursor); @@ -13941,7 +13943,7 @@ main (int argc, char *argv[]) /* bindings test */ - binding_set = gtk_binding_set_by_class (gtk_type_class (GTK_TYPE_WIDGET)); + binding_set = gtk_binding_set_by_class (g_type_class_ref (GTK_TYPE_WIDGET)); gtk_binding_entry_add_signal (binding_set, '9', GDK_CONTROL_MASK | GDK_RELEASE_MASK, "debug_msg", |