2007-01-07 Jonathan Pobst <monkey@jpobst.com>
[mono.git] / mcs / class / Managed.Windows.Forms / System.Windows.Forms / MimeIcon.cs
index 201cb2d4b8887fbf1d35aa9f2e450aea96977583..395a1caa127da0d8146af5a95634bd652d076677 100644 (file)
 // OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
 // WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
 //
-// Copyright (c) 2005 Novell, Inc. (http://www.novell.com)
+// Copyright (c) 2006 Alexander Olk
 //
 // Authors:
 //
-//  Alexander Olk      xenomorph2@onlinehome.de
+//  Alexander Olk      alex.olk@googlemail.com
 //
 
 // use
@@ -128,16 +128,12 @@ namespace System.Windows.Forms
                public static int GetIconIndexForFile (string full_filename)
                {
                        lock (lock_object) {
-                               string mime_type = Mime.GetMimeTypeForFile (full_filename);
-                               
                                if (platform == EPlatformHandler.Default) {
-                                       if (mime_type == "inode/directory") {
-                                               return (int)MimeIconIndex ["inode/directory"];
-                                       } else {
-                                               return (int)MimeIconIndex ["unknown/unknown"];
-                                       }
+                                       return (int)MimeIconIndex ["unknown/unknown"];
                                }
                                
+                               string mime_type = Mime.GetMimeTypeForFile (full_filename);
+                               
                                object oindex = GetIconIndex (mime_type);
                                
                                // not found, add it
@@ -388,31 +384,39 @@ namespace System.Windows.Forms
        
        internal class GnomeUtil
        {
-               [DllImport("librsvg-2.so")]
+               const string libgdk = "libgdk-x11-2.0.so.0";
+               const string libgdk_pixbuf = "libgdk_pixbuf-2.0.so.0";
+               const string libgtk = "libgtk-x11-2.0.so.0";
+               const string libglib = "libglib-2.0.so.0";
+               const string libgobject = "libgobject-2.0.so.0";
+               const string libgnomeui = "libgnomeui-2.so.0";
+               const string librsvg = "librsvg-2.so.2";
+               
+               [DllImport(librsvg)]
                static extern IntPtr rsvg_pixbuf_from_file_at_size (string file_name, int  width, int  height, out IntPtr error);
                
-               [DllImport("libgdk-x11-2.0.so.0")]
+               [DllImport(libgdk_pixbuf)]
                static extern bool gdk_pixbuf_save_to_buffer (IntPtr pixbuf, out IntPtr buffer, out UIntPtr buffer_size, string type, out IntPtr error, IntPtr option_dummy);
                
-               [DllImport("libglib-2.0.so")]
+               [DllImport(libglib)]
                static extern void g_free (IntPtr mem);
                
-               [DllImport("libgdk-x11-2.0.so.0")]
+               [DllImport(libgdk)]
                static extern bool gdk_init_check (IntPtr argc, IntPtr argv);
                
-               [DllImport("libgobject-2.0.so")]
+               [DllImport(libgobject)]
                static extern void g_object_unref (IntPtr nativeObject);
                
-               [DllImport("libgnomeui-2.so.0")]
+               [DllImport(libgnomeui)]
                static extern string gnome_icon_lookup (IntPtr icon_theme, IntPtr thumbnail_factory, string file_uri, string custom_icon, IntPtr file_info, string mime_type, GnomeIconLookupFlags flags, IntPtr result);
                
-               [DllImport("libgtk-x11-2.0.so")]
+               [DllImport(libgtk)]
                static extern IntPtr gtk_icon_theme_get_default ();
                
-               [DllImport("libgtk-x11-2.0.so")]
+               [DllImport(libgtk)]
                static extern IntPtr gtk_icon_theme_load_icon (IntPtr icon_theme, string icon_name, int size, GtkIconLookupFlags flags, out IntPtr error);
                
-               [DllImport("libgtk-x11-2.0.so")]
+               [DllImport(libgtk)]
                static extern bool gtk_icon_theme_has_icon (IntPtr icon_theme, string icon_name);
                
                enum GnomeIconLookupFlags