comparison org.eclipse.swt.gtk.linux.x86/src/org/eclipse/swt/internal/c/gtk.d @ 26:f589fc20a5f9

work on linux phobos
author Frank Benoit <benoit@tionex.de>
date Sat, 21 Mar 2009 11:22:55 +0100
parents f713da8bc051
children c01d033c633a
comparison
equal deleted inserted replaced
25:f713da8bc051 26:f589fc20a5f9
15 version=DYNLINK; 15 version=DYNLINK;
16 16
17 version(DYNLINK){ 17 version(DYNLINK){
18 18
19 19
20 extern (C) int gtk_init_check(int *, char * * *); 20 extern (C) int gtk_init_check(int *, char * * *);
21 extern (C) char * gtk_set_locale(); 21 extern (C) char * gtk_set_locale();
22 extern (C) extern uint gtk_interface_age; 22 extern (C) extern uint gtk_interface_age;
23 extern (C) extern uint gtk_binary_age; 23 extern (C) extern uint gtk_binary_age;
24 extern (C) extern uint gtk_micro_version; 24 extern (C) extern uint gtk_micro_version;
25 extern (C) extern uint gtk_minor_version; 25 extern (C) extern uint gtk_minor_version;
26 extern (C) extern uint gtk_major_version; 26 extern (C) extern uint gtk_major_version;
27 27
28 28
29 import tango.sys.SharedLib : SharedLib; 29 version(Tango){
30 import tango.sys.SharedLib : SharedLib;
31 } else { // Phobos
32 }
33
30 struct Symbol{ 34 struct Symbol{
31 String name; 35 String name;
32 void** symbol; 36 void** symbol;
33 } 37 }
34 } 38 }
35 39
36 void loadLib(){ 40 void loadLib(){
37 version(DYNLINK){ 41 version(DYNLINK){
38 String libname = "libgtk-x11-2.0.so"; 42 version(Tango){
43 String libname = "libgtk-x11-2.0.so";
39 44
40 SharedLib lib = SharedLib.load( libname ); 45 SharedLib lib = SharedLib.load( libname );
41 if( lib is null ){ 46 if( lib is null ){
42 lib = SharedLib.load( libname ~ ".0" ); 47 lib = SharedLib.load( libname ~ ".0" );
48 }
49 int loaded;
50 if ( lib !is null ) {
51 foreach( s; symbols ){
52 try{
53 *s.symbol = lib.getSymbol( s.name.ptr );
54 }
55 catch(Exception e){}
56 if( *s.symbol is null ){
57 //getDwtLogger().trace( __FILE__, __LINE__, "{}: Symbol '{}' not found", libname, s.name );
58 }
59 else{
60 loaded++;
61 }
62 }
63 } else {
64 getDwtLogger().trace( __FILE__, __LINE__, "Could not load the library {}", libname );
65 }
66 assert( gtk_check_version !is null );
67 } else { // Phobos
68 implMissing( __FILE__, __LINE__ );
43 } 69 }
44 int loaded;
45 if ( lib !is null ) {
46 foreach( s; symbols ){
47 try{
48 *s.symbol = lib.getSymbol( s.name.ptr );
49 }
50 catch(Exception e){}
51 if( *s.symbol is null ){
52 //getDwtLogger().trace( __FILE__, __LINE__, "{}: Symbol '{}' not found", libname, s.name );
53 }
54 else{
55 loaded++;
56 }
57 }
58 } else {
59 getDwtLogger().trace( __FILE__, __LINE__, "Could not load the library {}", libname );
60 }
61 assert( gtk_check_version !is null );
62 } 70 }
63 } 71 }
64 72
65 73
66 extern(C): 74 extern(C):