# HG changeset patch # User Frank Benoit # Date 1203117667 -3600 # Node ID fb5cc45e0be6222b6dfdef5449c109ccde844977 # Parent 20f31a1921ff93bcef95fc2990086b96a30a44a2 dynamic loading for unix-print diff -r 20f31a1921ff -r fb5cc45e0be6 dwt/internal/c/gtk_unix_print_2_0.d --- a/dwt/internal/c/gtk_unix_print_2_0.d Fri Feb 15 03:27:55 2008 +0100 +++ b/dwt/internal/c/gtk_unix_print_2_0.d Sat Feb 16 00:21:07 2008 +0100 @@ -4,6 +4,39 @@ ******************************************************************************/ module dwt.internal.c.gtk_unix_print_2_0; +version=DYNLINK; + +version(DYNLINK){ + import tango.sys.SharedLib : SharedLib; + import tango.util.log.Trace; + struct Symbol{ + char[] name; + void** symbol; + } +} + +void loadLib(){ + version(DYNLINK){ + char[] libname = "libgtk-x11-2.0.so"; + + SharedLib lib = SharedLib.load( libname ); + if( lib is null ){ + lib = SharedLib.load( libname ~ ".0" ); + } + + if ( lib !is null ) { + foreach( inout s; symbols ){ + *s.symbol = lib.getSymbol( s.name.ptr ); + if( s.symbol is null ){ + Trace.formatln( "{}: Symbol '{}' not found", libname, s.name ); + } + } + } else { + Trace.formatln( "Could not load the library {}", libname ); + } + } +} + extern(C): align(4): @@ -246,55 +279,55 @@ Symbol[] symbols = [ - { gtk_print_unix_dialog_set_manual_capabilities, cast(void**)& gtk_print_unix_dialog_set_manual_capabilities}, - { gtk_print_unix_dialog_add_custom_tab, cast(void**)& gtk_print_unix_dialog_add_custom_tab}, - { gtk_print_unix_dialog_get_selected_printer, cast(void**)& gtk_print_unix_dialog_get_selected_printer}, - { gtk_print_unix_dialog_get_settings, cast(void**)& gtk_print_unix_dialog_get_settings}, - { gtk_print_unix_dialog_set_settings, cast(void**)& gtk_print_unix_dialog_set_settings}, - { gtk_print_unix_dialog_get_current_page, cast(void**)& gtk_print_unix_dialog_get_current_page}, - { gtk_print_unix_dialog_set_current_page, cast(void**)& gtk_print_unix_dialog_set_current_page}, - { gtk_print_unix_dialog_get_page_setup, cast(void**)& gtk_print_unix_dialog_get_page_setup}, - { gtk_print_unix_dialog_set_page_setup, cast(void**)& gtk_print_unix_dialog_set_page_setup}, - { gtk_print_unix_dialog_new, cast(void**)& gtk_print_unix_dialog_new}, - { gtk_print_unix_dialog_get_type, cast(void**)& gtk_print_unix_dialog_get_type}, - { gtk_print_job_send, cast(void**)& gtk_print_job_send}, - { gtk_print_job_get_track_print_status, cast(void**)& gtk_print_job_get_track_print_status}, - { gtk_print_job_set_track_print_status, cast(void**)& gtk_print_job_set_track_print_status}, - { gtk_print_job_get_surface, cast(void**)& gtk_print_job_get_surface}, - { gtk_print_job_set_source_file, cast(void**)& gtk_print_job_set_source_file}, - { gtk_print_job_get_status, cast(void**)& gtk_print_job_get_status}, - { gtk_print_job_get_title, cast(void**)& gtk_print_job_get_title}, - { gtk_print_job_get_printer, cast(void**)& gtk_print_job_get_printer}, - { gtk_print_job_get_settings, cast(void**)& gtk_print_job_get_settings}, - { gtk_print_job_new, cast(void**)& gtk_print_job_new}, - { gtk_print_job_get_type, cast(void**)& gtk_print_job_get_type}, - { gtk_enumerate_printers, cast(void**)& gtk_enumerate_printers}, - { gtk_printer_get_capabilities, cast(void**)& gtk_printer_get_capabilities}, - { gtk_printer_request_details, cast(void**)& gtk_printer_request_details}, - { gtk_printer_has_details, cast(void**)& gtk_printer_has_details}, - { gtk_printer_compare, cast(void**)& gtk_printer_compare}, - { gtk_printer_list_papers, cast(void**)& gtk_printer_list_papers}, - { gtk_printer_accepts_ps, cast(void**)& gtk_printer_accepts_ps}, - { gtk_printer_accepts_pdf, cast(void**)& gtk_printer_accepts_pdf}, - { gtk_printer_is_default, cast(void**)& gtk_printer_is_default}, - { gtk_printer_is_virtual, cast(void**)& gtk_printer_is_virtual}, - { gtk_printer_is_active, cast(void**)& gtk_printer_is_active}, - { gtk_printer_get_job_count, cast(void**)& gtk_printer_get_job_count}, - { gtk_printer_get_icon_name, cast(void**)& gtk_printer_get_icon_name}, - { gtk_printer_get_location, cast(void**)& gtk_printer_get_location}, - { gtk_printer_get_description, cast(void**)& gtk_printer_get_description}, - { gtk_printer_get_state_message, cast(void**)& gtk_printer_get_state_message}, - { gtk_printer_get_name, cast(void**)& gtk_printer_get_name}, - { gtk_printer_get_backend, cast(void**)& gtk_printer_get_backend}, - { gtk_printer_new, cast(void**)& gtk_printer_new}, - { gtk_printer_get_type, cast(void**)& gtk_printer_get_type}, - { gtk_print_capabilities_get_type, cast(void**)& gtk_print_capabilities_get_type}, - { gtk_page_setup_unix_dialog_get_print_settings, cast(void**)& gtk_page_setup_unix_dialog_get_print_settings}, - { gtk_page_setup_unix_dialog_set_print_settings, cast(void**)& gtk_page_setup_unix_dialog_set_print_settings}, - { gtk_page_setup_unix_dialog_get_page_setup, cast(void**)& gtk_page_setup_unix_dialog_get_page_setup}, - { gtk_page_setup_unix_dialog_set_page_setup, cast(void**)& gtk_page_setup_unix_dialog_set_page_setup}, - { gtk_page_setup_unix_dialog_new, cast(void**)& gtk_page_setup_unix_dialog_new}, - { gtk_page_setup_unix_dialog_get_type, cast(void**)& gtk_page_setup_unix_dialog_get_type}, + { "gtk_print_unix_dialog_set_manual_capabilities", cast(void**)& gtk_print_unix_dialog_set_manual_capabilities}, + { "gtk_print_unix_dialog_add_custom_tab", cast(void**)& gtk_print_unix_dialog_add_custom_tab}, + { "gtk_print_unix_dialog_get_selected_printer", cast(void**)& gtk_print_unix_dialog_get_selected_printer}, + { "gtk_print_unix_dialog_get_settings", cast(void**)& gtk_print_unix_dialog_get_settings}, + { "gtk_print_unix_dialog_set_settings", cast(void**)& gtk_print_unix_dialog_set_settings}, + { "gtk_print_unix_dialog_get_current_page", cast(void**)& gtk_print_unix_dialog_get_current_page}, + { "gtk_print_unix_dialog_set_current_page", cast(void**)& gtk_print_unix_dialog_set_current_page}, + { "gtk_print_unix_dialog_get_page_setup", cast(void**)& gtk_print_unix_dialog_get_page_setup}, + { "gtk_print_unix_dialog_set_page_setup", cast(void**)& gtk_print_unix_dialog_set_page_setup}, + { "gtk_print_unix_dialog_new", cast(void**)& gtk_print_unix_dialog_new}, + { "gtk_print_unix_dialog_get_type", cast(void**)& gtk_print_unix_dialog_get_type}, + { "gtk_print_job_send", cast(void**)& gtk_print_job_send}, + { "gtk_print_job_get_track_print_status", cast(void**)& gtk_print_job_get_track_print_status}, + { "gtk_print_job_set_track_print_status", cast(void**)& gtk_print_job_set_track_print_status}, + { "gtk_print_job_get_surface", cast(void**)& gtk_print_job_get_surface}, + { "gtk_print_job_set_source_file", cast(void**)& gtk_print_job_set_source_file}, + { "gtk_print_job_get_status", cast(void**)& gtk_print_job_get_status}, + { "gtk_print_job_get_title", cast(void**)& gtk_print_job_get_title}, + { "gtk_print_job_get_printer", cast(void**)& gtk_print_job_get_printer}, + { "gtk_print_job_get_settings", cast(void**)& gtk_print_job_get_settings}, + { "gtk_print_job_new", cast(void**)& gtk_print_job_new}, + { "gtk_print_job_get_type", cast(void**)& gtk_print_job_get_type}, + { "gtk_enumerate_printers", cast(void**)& gtk_enumerate_printers}, + { "gtk_printer_get_capabilities", cast(void**)& gtk_printer_get_capabilities}, + { "gtk_printer_request_details", cast(void**)& gtk_printer_request_details}, + { "gtk_printer_has_details", cast(void**)& gtk_printer_has_details}, + { "gtk_printer_compare", cast(void**)& gtk_printer_compare}, + { "gtk_printer_list_papers", cast(void**)& gtk_printer_list_papers}, + { "gtk_printer_accepts_ps", cast(void**)& gtk_printer_accepts_ps}, + { "gtk_printer_accepts_pdf", cast(void**)& gtk_printer_accepts_pdf}, + { "gtk_printer_is_default", cast(void**)& gtk_printer_is_default}, + { "gtk_printer_is_virtual", cast(void**)& gtk_printer_is_virtual}, + { "gtk_printer_is_active", cast(void**)& gtk_printer_is_active}, + { "gtk_printer_get_job_count", cast(void**)& gtk_printer_get_job_count}, + { "gtk_printer_get_icon_name", cast(void**)& gtk_printer_get_icon_name}, + { "gtk_printer_get_location", cast(void**)& gtk_printer_get_location}, + { "gtk_printer_get_description", cast(void**)& gtk_printer_get_description}, + { "gtk_printer_get_state_message", cast(void**)& gtk_printer_get_state_message}, + { "gtk_printer_get_name", cast(void**)& gtk_printer_get_name}, + { "gtk_printer_get_backend", cast(void**)& gtk_printer_get_backend}, + { "gtk_printer_new", cast(void**)& gtk_printer_new}, + { "gtk_printer_get_type", cast(void**)& gtk_printer_get_type}, + { "gtk_print_capabilities_get_type", cast(void**)& gtk_print_capabilities_get_type}, + { "gtk_page_setup_unix_dialog_get_print_settings", cast(void**)& gtk_page_setup_unix_dialog_get_print_settings}, + { "gtk_page_setup_unix_dialog_set_print_settings", cast(void**)& gtk_page_setup_unix_dialog_set_print_settings}, + { "gtk_page_setup_unix_dialog_get_page_setup", cast(void**)& gtk_page_setup_unix_dialog_get_page_setup}, + { "gtk_page_setup_unix_dialog_set_page_setup", cast(void**)& gtk_page_setup_unix_dialog_set_page_setup}, + { "gtk_page_setup_unix_dialog_new", cast(void**)& gtk_page_setup_unix_dialog_new}, + { "gtk_page_setup_unix_dialog_get_type", cast(void**)& gtk_page_setup_unix_dialog_get_type}, ]; } else { // version(DYNLINK) diff -r 20f31a1921ff -r fb5cc45e0be6 dwt/internal/gtk/OS.d --- a/dwt/internal/gtk/OS.d Fri Feb 15 03:27:55 2008 +0100 +++ b/dwt/internal/gtk/OS.d Sat Feb 16 00:21:07 2008 +0100 @@ -630,6 +630,14 @@ public class OS : Platform { + static this(){ + if (OS.GTK_VERSION >= OS.buildVERSION (2, 10, 0)){ + dwt.internal.c.gtk_unix_print_2_0.loadLib(); + } + } + + + /** OS Constants */ public static const bool IsAIX = false; public static const bool IsSunOS = false;