]> git.saurik.com Git - wxWidgets.git/blobdiff - src/gtk/treeentry_gtk.c
Fix crash in wxDC::GetMultiLineTextExtent() after last commit.
[wxWidgets.git] / src / gtk / treeentry_gtk.c
index 288ef11198e5783bd36ac023154f0285877169aa..b890df7a2385f988a122e1e14921d6c53c928e08 100644 (file)
@@ -7,6 +7,13 @@
 // Licence:     wxWindows licence
 /////////////////////////////////////////////////////////////////////////// */
 
+#ifdef __VMS
+#include <types.h>
+typedef pid_t GPid;
+#define G_GNUC_INTERNAL 
+#define GSEAL(x) x
+#endif
+
 #include "wx/gtk/treeentry_gtk.h"
 
 /*
@@ -33,20 +40,20 @@ static void gtk_tree_entry_dispose(GObject* obj);
 
 
 /* public */
-GtkTreeEntry* 
+GtkTreeEntry*
 gtk_tree_entry_new()
 {
     return GTK_TREE_ENTRY(g_object_new(GTK_TYPE_TREE_ENTRY, NULL));
 }
 
-GtkType
+GType
 gtk_tree_entry_get_type ()
 {
-    static GtkType tree_entry_type = 0;
+    static GType tree_entry_type = 0;
 
     if (!tree_entry_type)
     {
-        static const GTypeInfo tree_entry_info =
+        const GTypeInfo tree_entry_info =
         {
             sizeof (GtkTreeEntryClass),
             NULL,           /* base_init */
@@ -57,9 +64,10 @@ gtk_tree_entry_get_type ()
             sizeof (GtkTreeEntry),
             16,             /* n_preallocs */
             (GInstanceInitFunc) gtk_tree_entry_init, /*instance_init*/
+            NULL            /* value_table */
         };
-        tree_entry_type = g_type_register_static (G_TYPE_OBJECT, "GtkTreeEntry", 
-                                                  &tree_entry_info, 
+        tree_entry_type = g_type_register_static (G_TYPE_OBJECT, "GtkTreeEntry",
+                                                  &tree_entry_info,
                                                   (GTypeFlags)0);
         g_value_register_transform_func(tree_entry_type, G_TYPE_STRING,
                                         gtk_tree_entry_string_transform_func);
@@ -87,6 +95,7 @@ gpointer   gtk_tree_entry_get_userdata  (GtkTreeEntry* entry)
 
 void     gtk_tree_entry_set_label       (GtkTreeEntry* entry, const gchar* label)
 {
+    gchar *temp;
     g_assert(GTK_IS_TREE_ENTRY(entry));
 
     /* free previous if it exists */
@@ -97,7 +106,9 @@ void     gtk_tree_entry_set_label       (GtkTreeEntry* entry, const gchar* label
     }
 
     entry->label = g_strdup(label);
-    entry->collate_key = g_utf8_collate_key(label, -1); /* -1 == null terminated */
+    temp = g_utf8_casefold(label, -1); /* -1 == null terminated */
+    entry->collate_key = g_utf8_collate_key(temp, -1); /* -1 == null terminated */
+    g_free( temp );
 }
 
 void   gtk_tree_entry_set_userdata      (GtkTreeEntry* entry, gpointer userdata)
@@ -106,13 +117,13 @@ void   gtk_tree_entry_set_userdata      (GtkTreeEntry* entry, gpointer userdata)
     entry->userdata = userdata;
 }
 
-void   gtk_tree_entry_set_destroy_func  (GtkTreeEntry* entry, 
+void   gtk_tree_entry_set_destroy_func  (GtkTreeEntry* entry,
                                          GtkTreeEntryDestroy destroy_func,
                                          gpointer destroy_func_data)
 {
     g_assert(GTK_IS_TREE_ENTRY(entry));
-    entry->destroy_func = destroy_func;    
-    entry->destroy_func_data = destroy_func_data;    
+    entry->destroy_func = destroy_func;
+    entry->destroy_func_data = destroy_func_data;
 }
 
 /* private */
@@ -137,21 +148,25 @@ static void gtk_tree_entry_init (GTypeInstance* instance, gpointer g_class)
 static void gtk_tree_entry_string_transform_func(const GValue *src_value,
                                                  GValue *dest_value)
 {
+    GtkTreeEntry *entry;
+
     /* Make sure src is a treeentry and dest can hold a string */
     g_assert(GTK_IS_TREE_ENTRY(src_value->data[0].v_pointer));
     g_assert(G_VALUE_HOLDS(dest_value, G_TYPE_STRING));
 
     /* TODO: Use strdup here or just pass it? */
-    GtkTreeEntry* entry = GTK_TREE_ENTRY(src_value->data[0].v_pointer);
+    entry = GTK_TREE_ENTRY(src_value->data[0].v_pointer);
 
-    g_value_set_string(dest_value, g_strdup(entry->label));
+    g_value_set_string(dest_value, entry->label);
 }
 
 static void gtk_tree_entry_dispose(GObject* obj)
 {
+    GtkTreeEntry *entry;
+
     g_assert(GTK_IS_TREE_ENTRY(obj));
 
-    GtkTreeEntry* entry = GTK_TREE_ENTRY(obj);
+    entry = GTK_TREE_ENTRY(obj);
 
     /* free label if it exists */
     if(entry->label)