diff dwt/internal/gtk/OS.d @ 165:1b025870f242

debugging dynamic gtk2 load and gtk_init crash
author Frank Benoit <benoit@tionex.de>
date Sat, 16 Feb 2008 03:13:04 +0100
parents fb5cc45e0be6
children 38afe5c8e5b7
line wrap: on
line diff
--- a/dwt/internal/gtk/OS.d	Sat Feb 16 00:21:07 2008 +0100
+++ b/dwt/internal/gtk/OS.d	Sat Feb 16 03:13:04 2008 +0100
@@ -21,6 +21,7 @@
 import tango.core.Traits;
 import tango.stdc.locale;
 import tango.stdc.posix.stdlib : realpath;
+import tango.util.log.Trace;
 
 import  dwt.internal.c.gtk,
         dwt.internal.c.gdk,
@@ -35,6 +36,8 @@
         dwt.internal.c.Xrender,
         dwt.internal.c.glib_object;
 
+//version=GTK_DYN_LINK;
+
 public alias dwt.internal.c.glib_object.GPollFD GPollFD;
 public alias dwt.internal.c.glib_object.GClosure GClosure;
 public alias dwt.internal.c.glib_object.GList GList;
@@ -602,6 +605,7 @@
     alias ParameterTupleOf!(cFunc) P;
     alias ReturnTypeOf!(cFunc) R;
     mixin("public static R " ~ NameOfFunc!(cFunc) ~ "( P p ){
+        Trace.formatln( \"OS." ~ NameOfFunc!(cFunc) ~ "()\" );
         lock.lock();
         scope(exit) lock.unlock();
         return cFunc(p);
@@ -625,14 +629,16 @@
     return (major << 16) + (minor << 8) + micro;
 }
 private int GTK_VERSION(){
-    return buildVERSION(gtk_major_version, gtk_minor_version, gtk_micro_version);
+    version( GTK_DYN_LINK ) return buildVERSION(*gtk_major_version, *gtk_minor_version, *gtk_micro_version);
+    else                    return buildVERSION( gtk_major_version,  gtk_minor_version,  gtk_micro_version);
 }
 
 public class OS : Platform {
 
     static this(){
+        dwt.internal.c.gtk.loadLib();
         if (OS.GTK_VERSION >= OS.buildVERSION (2, 10, 0)){
-            dwt.internal.c.gtk_unix_print_2_0.loadLib();
+//            dwt.internal.c.gtk_unix_print_2_0.loadLib();
         }
     }
 
@@ -1146,13 +1152,16 @@
 public static const int PictOpOver = 3;
 
     public static int gtk_major_version(){
-        return .gtk_major_version;
+        version(GTK_DYN_LINK) return *.gtk_minor_version;
+        else                  return .gtk_minor_version;
     }
     public static int gtk_minor_version(){
-        return .gtk_minor_version;
+        version(GTK_DYN_LINK) return *.gtk_minor_version;
+        else                  return .gtk_minor_version;
     }
     public static int gtk_micro_version(){
-        return .gtk_micro_version;
+        version(GTK_DYN_LINK) return *.gtk_micro_version;
+        else                  return .gtk_micro_version;
     }
     mixin ForwardGtkOsCFunc!(localeconv_decimal_point);
     mixin ForwardGtkOsCFunc!(realpath);