X-Git-Url: https://git.saurik.com/wxWidgets.git/blobdiff_plain/8e125ff1145c4c3154a59efe3e60c58a7fd0861d..ad653fa23069c5d9378247084f03c9a718c3ad62:/src/gtk/treeentry_gtk.c?ds=inline diff --git a/src/gtk/treeentry_gtk.c b/src/gtk/treeentry_gtk.c index 5b76211109..f1a211b7e3 100644 --- a/src/gtk/treeentry_gtk.c +++ b/src/gtk/treeentry_gtk.c @@ -14,7 +14,7 @@ typedef pid_t GPid; #define GSEAL(x) x #endif -#include "wx/gtk/treeentry_gtk.h" +#include "wx/gtk/private/treeentry_gtk.h" /* GtkTreeEntry @@ -32,22 +32,22 @@ typedef pid_t GPid; */ /* forwards */ -static void gtk_tree_entry_class_init(GtkTreeEntryClass* klass); -static void gtk_tree_entry_init (GTypeInstance* instance, gpointer g_class); -static void gtk_tree_entry_string_transform_func(const GValue *src_value, +static void wx_tree_entry_class_init(void* g_class, void* class_data); +static void wx_tree_entry_string_transform_func(const GValue *src_value, GValue *dest_value); -static void gtk_tree_entry_dispose(GObject* obj); +static void wx_tree_entry_dispose(GObject* obj); +static GObjectClass* parent_class; /* public */ -GtkTreeEntry* -gtk_tree_entry_new() +wxTreeEntry* +wx_tree_entry_new() { - return GTK_TREE_ENTRY(g_object_new(GTK_TYPE_TREE_ENTRY, NULL)); + return WX_TREE_ENTRY(g_object_new(WX_TYPE_TREE_ENTRY, NULL)); } GType -gtk_tree_entry_get_type () +wx_tree_entry_get_type() { static GType tree_entry_type = 0; @@ -55,48 +55,53 @@ gtk_tree_entry_get_type () { const GTypeInfo tree_entry_info = { - sizeof (GtkTreeEntryClass), + sizeof(GObjectClass), NULL, /* base_init */ NULL, /* base_finalize */ - (GClassInitFunc) gtk_tree_entry_class_init, /* class_init */ + wx_tree_entry_class_init, NULL, /* class_finalize */ NULL, /* class_data */ - sizeof (GtkTreeEntry), + sizeof(wxTreeEntry), 16, /* n_preallocs */ - (GInstanceInitFunc) gtk_tree_entry_init, /*instance_init*/ + NULL, /* instance_init */ NULL /* value_table */ }; - tree_entry_type = g_type_register_static (G_TYPE_OBJECT, "GtkTreeEntry", + tree_entry_type = g_type_register_static (G_TYPE_OBJECT, "wxTreeEntry", &tree_entry_info, (GTypeFlags)0); g_value_register_transform_func(tree_entry_type, G_TYPE_STRING, - gtk_tree_entry_string_transform_func); + wx_tree_entry_string_transform_func); } return tree_entry_type; } -gchar* gtk_tree_entry_get_collate_key (GtkTreeEntry* entry) +char* wx_tree_entry_get_collate_key(wxTreeEntry* entry) { + if (entry->collate_key == NULL) + { + char* temp = g_utf8_casefold(entry->label, -1); + entry->collate_key = g_utf8_collate_key(temp, -1); + g_free(temp); + } return entry->collate_key; } -gchar* gtk_tree_entry_get_label (GtkTreeEntry* entry) +char* wx_tree_entry_get_label(wxTreeEntry* entry) { - g_assert(GTK_IS_TREE_ENTRY(entry)); + g_assert(WX_IS_TREE_ENTRY(entry)); return entry->label; } -gpointer gtk_tree_entry_get_userdata (GtkTreeEntry* entry) +void* wx_tree_entry_get_userdata(wxTreeEntry* entry) { - g_assert(GTK_IS_TREE_ENTRY(entry)); + g_assert(WX_IS_TREE_ENTRY(entry)); return entry->userdata; } -void gtk_tree_entry_set_label (GtkTreeEntry* entry, const gchar* label) +void wx_tree_entry_set_label(wxTreeEntry* entry, const char* label) { - gchar *temp; - g_assert(GTK_IS_TREE_ENTRY(entry)); + g_assert(WX_IS_TREE_ENTRY(entry)); /* free previous if it exists */ if(entry->label) @@ -106,66 +111,53 @@ void gtk_tree_entry_set_label (GtkTreeEntry* entry, const gchar* label } entry->label = g_strdup(label); - temp = g_utf8_casefold(label, -1); /* -1 == null terminated */ - entry->collate_key = g_utf8_collate_key(temp, -1); /* -1 == null terminated */ - g_free( temp ); + entry->collate_key = NULL; } -void gtk_tree_entry_set_userdata (GtkTreeEntry* entry, gpointer userdata) +void wx_tree_entry_set_userdata(wxTreeEntry* entry, void* userdata) { - g_assert(GTK_IS_TREE_ENTRY(entry)); + g_assert(WX_IS_TREE_ENTRY(entry)); entry->userdata = userdata; } -void gtk_tree_entry_set_destroy_func (GtkTreeEntry* entry, - GtkTreeEntryDestroy destroy_func, +void wx_tree_entry_set_destroy_func(wxTreeEntry* entry, + wxTreeEntryDestroy destroy_func, gpointer destroy_func_data) { - g_assert(GTK_IS_TREE_ENTRY(entry)); + g_assert(WX_IS_TREE_ENTRY(entry)); entry->destroy_func = destroy_func; entry->destroy_func_data = destroy_func_data; } /* private */ -static void gtk_tree_entry_class_init(GtkTreeEntryClass* klass) -{ - GObjectClass* gobject_class = G_OBJECT_CLASS(klass); - gobject_class->dispose = gtk_tree_entry_dispose; -} - -static void gtk_tree_entry_init (GTypeInstance* instance, gpointer g_class) +static void wx_tree_entry_class_init(void* g_class, void* class_data) { - GtkTreeEntry* entry = (GtkTreeEntry*) instance; - - /* clear */ - entry->label = NULL; - entry->collate_key = NULL; - entry->userdata = NULL; - entry->destroy_func_data = NULL; - entry->destroy_func = NULL; + GObjectClass* gobject_class = G_OBJECT_CLASS(g_class); + gobject_class->dispose = wx_tree_entry_dispose; + parent_class = G_OBJECT_CLASS(g_type_class_peek_parent(g_class)); } -static void gtk_tree_entry_string_transform_func(const GValue *src_value, +static void wx_tree_entry_string_transform_func(const GValue *src_value, GValue *dest_value) { - GtkTreeEntry *entry; + wxTreeEntry* entry; void* src_ptr = g_value_peek_pointer(src_value); /* Make sure src is a treeentry and dest can hold a string */ - g_assert(GTK_IS_TREE_ENTRY(src_ptr)); + g_assert(WX_IS_TREE_ENTRY(src_ptr)); g_assert(G_VALUE_HOLDS(dest_value, G_TYPE_STRING)); - entry = GTK_TREE_ENTRY(src_ptr); + entry = WX_TREE_ENTRY(src_ptr); g_value_set_string(dest_value, entry->label); } -static void gtk_tree_entry_dispose(GObject* obj) +static void wx_tree_entry_dispose(GObject* obj) { - GtkTreeEntry *entry; + wxTreeEntry* entry; - g_assert(GTK_IS_TREE_ENTRY(obj)); + g_assert(WX_IS_TREE_ENTRY(obj)); - entry = GTK_TREE_ENTRY(obj); + entry = WX_TREE_ENTRY(obj); /* free label if it exists */ if(entry->label) @@ -186,4 +178,6 @@ static void gtk_tree_entry_dispose(GObject* obj) /* clear userdata */ entry->userdata = NULL; + + parent_class->dispose(obj); }