Mercurial > projects > dwt2
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): |