From 37738a3c266d8d6d5f77b81df78206dac35e8fff Mon Sep 17 00:00:00 2001 From: Mike Kestner Date: Thu, 1 Apr 2004 17:40:54 +0000 Subject: [PATCH] 2004-04-01 Jeroen Zwartepoorte * gnome/IconTheme.custom : GetSearchPath impl [fixes #51599]. svn path=/trunk/gtk-sharp/; revision=24913 --- ChangeLog | 4 ++++ gnome/IconTheme.custom | 29 +++++++++++++++++++++++++++++ 2 files changed, 33 insertions(+) diff --git a/ChangeLog b/ChangeLog index 750aa4dca..ab84aa314 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,7 @@ +2004-04-01 Jeroen Zwartepoorte + + * gnome/IconTheme.custom : GetSearchPath impl [fixes #51599]. + 2004-04-01 Joshua Tauberer * gdk/Gdk.metadata : hide Region.GetRectangles diff --git a/gnome/IconTheme.custom b/gnome/IconTheme.custom index 52a8211c1..c2fd1368e 100644 --- a/gnome/IconTheme.custom +++ b/gnome/IconTheme.custom @@ -1,6 +1,7 @@ // IconTheme.custom - customizations to Gnome.IconTheme // // Authors: Mike Kestner +// Jerone Zwartepoorte // // Copyright (c) 2004 Novell, Inc. @@ -21,3 +22,31 @@ return result; } + [DllImport("gnomeui-2")] + static extern void gnome_icon_theme_get_search_path(IntPtr raw, out IntPtr path, out int n_elements); + + [DllImport("libglib-2.0-0.dll")] + static extern void g_strfreev (IntPtr mem); + + public string[] SearchPath { + get { + string[] retval; + + unsafe { + int length; + IntPtr raw_ret; + gnome_icon_theme_get_search_path (Handle, out raw_ret, out length); + int size = Marshal.SizeOf (typeof (IntPtr)); + retval = new string[length]; + for (int i = 0, j = 0; i < length; i++, j += size) { + IntPtr string_ptr = Marshal.ReadIntPtr (new IntPtr (raw_ret.ToInt32 () + j)); + retval[i] = Marshal.PtrToStringAnsi (string_ptr); + } + + g_strfreev (raw_ret); + } + + return retval; + } + } +