Mercurial > projects > dwt-linux
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);