From a0f1e0e9db4b0edee45018c47a08761916af0ce6 Mon Sep 17 00:00:00 2001 From: Tomas Bzatek Date: Sat, 7 Jun 2008 20:40:48 +0200 Subject: Revised UTF-8 filenames support --- UGnome.pas | 25 ++++++++++++++++--------- 1 file changed, 16 insertions(+), 9 deletions(-) (limited to 'UGnome.pas') diff --git a/UGnome.pas b/UGnome.pas index f90886b..bbe6b6f 100644 --- a/UGnome.pas +++ b/UGnome.pas @@ -156,7 +156,7 @@ type PGnomeColorPicker = PGtkWidget; const AFTER_ALL_TABS = -1; NOT_IN_APP_WINDOWS = -2; -var libGnomeUI2Handle, libGnome2Handle, libGtk2Handle: Pointer; +var libGlib2Handle, libGtk2Handle, libGnome2Handle, libGnomeUI2Handle: Pointer; gnome_about_new: function (const name, version, copyright, comments: Pchar; const authors, documenters: PPchar; const translator_credits: Pchar; logo_pixbuf: PGdkPixbuf): PGtkWidget; cdecl; {$IFDEF KYLIX} @@ -179,6 +179,7 @@ var libGnomeUI2Handle, libGnome2Handle, libGtk2Handle: Pointer; gnome_date_edit_get_time: function (gde: PGnomeDateEdit): time_t; cdecl; gtk_event_box_set_visible_window: procedure (event_box: PGtkEventBox; visible_window: gboolean); cdecl; gtk_icon_size_lookup_for_settings: function (settings: PGtkSettings; size: TGtkIconSize; width, height: Pgint): gboolean; cdecl; + g_filename_display_name: function (const filename: PChar): PChar; cdecl; @@ -1228,6 +1229,20 @@ begin @gtk_event_box_set_visible_window := nil; // Dynamic loading + libGlib2Handle := dlopen('libglib-2.0.so.0', RTLD_LAZY); + if libGlib2Handle = nil then libGlib2Handle := dlopen('libglib-2.0.so', RTLD_LAZY); + if libGlib2Handle <> nil then begin + @g_filename_display_name := dlsym(libGlib2Handle, 'g_filename_display_name'); + DebugMsg(['libglib-2.0.so loaded, @g_filename_display_name = 0x', IntToHex(QWORD(@g_filename_display_name), 8)]); + end; + libGtk2Handle := dlopen('libgtk-x11-2.0.so.0', RTLD_LAZY); + if libGtk2Handle = nil then libGtk2Handle := dlopen('libgtk-x11-2.0.so', RTLD_LAZY); + if libGtk2Handle <> nil then begin + @gtk_event_box_set_visible_window := dlsym(libGtk2Handle, 'gtk_event_box_set_visible_window'); + @gtk_icon_size_lookup_for_settings := dlsym(libGtk2Handle, 'gtk_icon_size_lookup_for_settings'); + DebugMsg(['libgtk-x11-2.0.so loaded, @gtk_event_box_set_visible_window = 0x', IntToHex(QWORD(@gtk_event_box_set_visible_window), 8), + ', @gtk_icon_size_lookup_for_settings = 0x', IntToHex(QWORD(@gtk_icon_size_lookup_for_settings), 8)]); + end; libGnome2Handle := dlopen('libgnome-2.so.0', RTLD_LAZY); if libGnome2Handle = nil then libGnome2Handle := dlopen('libgnome-2.so', RTLD_LAZY); if libGnome2Handle <> nil then begin @@ -1254,14 +1269,6 @@ begin ', @gnome_icon_entry_new = 0x', IntToHex(QWORD(@gnome_icon_entry_new), 8), ', @gnome_date_edit_new = 0x', IntToHex(QWORD(@gnome_date_edit_new), 8), ', @libgnomeui_module_info_get = 0x', IntToHex(QWORD(@libgnomeui_module_info_get), 8)]); end; - libGtk2Handle := dlopen('libgtk-x11-2.0.so.0', RTLD_LAZY); - if libGtk2Handle = nil then libGtk2Handle := dlopen('libgtk-x11-2.0.so.0', RTLD_LAZY); - if libGtk2Handle <> nil then begin - @gtk_event_box_set_visible_window := dlsym(libGtk2Handle, 'gtk_event_box_set_visible_window'); - @gtk_icon_size_lookup_for_settings := dlsym(libGtk2Handle, 'gtk_icon_size_lookup_for_settings'); - DebugMsg(['libgtk-x11-2.0.so loaded, @gtk_event_box_set_visible_window = 0x', IntToHex(QWORD(@gtk_event_box_set_visible_window), 8), - ', @gtk_icon_size_lookup_for_settings = 0x', IntToHex(QWORD(@gtk_icon_size_lookup_for_settings), 8)]); - end; SetupGnomeLibs; end; -- cgit v1.2.3