diff --git a/ChangeLog b/ChangeLog index 67a77387f..98619f7d0 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,11 @@ +2004-11-04 Jeroen Zwartepoorte + + * gnomevfs/Directory.cs: Add async GetEntries Uri alias. + * gtk/FileChooserDialog.custom: Add nice custom properties for Uris. + ListFilters, ListShortcutFolders and ListShortcutFolderUris. + * gtk/FileChooserWidget.custom: Idem. + * gtk/Gtk.metadata: Idem. + 2004-11-04 Todd Berman * glib/ListBase.cs: In Empty, call FreeList, not Dispose. diff --git a/gnomevfs/Directory.cs b/gnomevfs/Directory.cs index 4ed4fa03c..89e617d22 100644 --- a/gnomevfs/Directory.cs +++ b/gnomevfs/Directory.cs @@ -49,6 +49,13 @@ namespace Gnome.Vfs { return entries; } + public static void GetEntries (Uri uri, FileInfoOptions options, + uint itemsPerNotification, int priority, + AsyncDirectoryLoadCallback callback) + { + GetEntries (uri.ToString (), options, itemsPerNotification, priority, callback); + } + [DllImport ("gnomevfs-2")] private static extern void gnome_vfs_async_load_directory (out IntPtr handle, string uri, FileInfoOptions options, uint items_per_notification, int priority, AsyncDirectoryLoadCallbackNative native, IntPtr data); diff --git a/gtk/FileChooserDialog.custom b/gtk/FileChooserDialog.custom index c68fbea39..7e54c0f6b 100644 --- a/gtk/FileChooserDialog.custom +++ b/gtk/FileChooserDialog.custom @@ -67,3 +67,67 @@ return result; } } + + [DllImport ("libgtk-win32-2.0-0.dll")] + static extern IntPtr gtk_file_chooser_get_uris (IntPtr raw); + public string[] Uris { + get { + IntPtr raw_ret = gtk_file_chooser_get_uris (Handle); + if (raw_ret == IntPtr.Zero) + return new string[0]; + GLib.SList list = new GLib.SList (raw_ret, typeof (string)); + string[] result = new string [list.Count]; + for (int i = 0; i < list.Count; i++) + result [i] = (string) list [i]; + list.Empty (); + return result; + } + } + + [DllImport ("libgtk-win32-2.0-0.dll")] + static extern IntPtr gtk_file_chooser_list_filters (IntPtr raw); + public FileFilter[] Filters { + get { + IntPtr raw_ret = gtk_file_chooser_list_filters (Handle); + if (raw_ret == IntPtr.Zero) + return new FileFilter[0]; + GLib.SList list = new GLib.SList (raw_ret, typeof (FileFilter)); + FileFilter[] result = new FileFilter [list.Count]; + for (int i = 0; i < list.Count; i++) + result [i] = (FileFilter) list [i]; + list.Dispose (); + return result; + } + } + + [DllImport ("libgtk-win32-2.0-0.dll")] + static extern IntPtr gtk_file_chooser_list_shortcut_folders (IntPtr raw); + public string[] ShortcutFolders { + get { + IntPtr raw_ret = gtk_file_chooser_list_shortcut_folders (Handle); + if (raw_ret == IntPtr.Zero) + return new string[0]; + GLib.SList list = new GLib.SList (raw_ret, typeof (string)); + string[] result = new string [list.Count]; + for (int i = 0; i < list.Count; i++) + result [i] = (string) list [i]; + list.Empty (); + return result; + } + } + + [DllImport ("libgtk-win32-2.0-0.dll")] + static extern IntPtr gtk_file_chooser_list_shortcut_folder_uris (IntPtr raw); + public string[] ShortcutFolderUris { + get { + IntPtr raw_ret = gtk_file_chooser_list_shortcut_folder_uris (Handle); + if (raw_ret == IntPtr.Zero) + return new string[0]; + GLib.SList list = new GLib.SList (raw_ret, typeof (string)); + string[] result = new string [list.Count]; + for (int i = 0; i < list.Count; i++) + result [i] = (string) list [i]; + list.Empty (); + return result; + } + } diff --git a/gtk/FileChooserWidget.custom b/gtk/FileChooserWidget.custom index 9abc8d4d2..4e825a993 100644 --- a/gtk/FileChooserWidget.custom +++ b/gtk/FileChooserWidget.custom @@ -19,19 +19,83 @@ // Boston, MA 02111-1307, USA. -[DllImport ("libgtk-win32-2.0-0.dll")] -static extern IntPtr gtk_file_chooser_get_filenames (IntPtr raw); + [DllImport ("libgtk-win32-2.0-0.dll")] + static extern IntPtr gtk_file_chooser_get_filenames (IntPtr raw); -public string[] Filenames { - get { - IntPtr raw_ret = gtk_file_chooser_get_filenames (Handle); - if (raw_ret == IntPtr.Zero) - return new string[0]; - GLib.SList list = new GLib.SList (raw_ret, typeof (string)); - string[] result = new string [list.Count]; - for (int i = 0; i < list.Count; i++) - result [i] = (string) list [i]; - list.Empty (); - return result; - } -} + public string[] Filenames { + get { + IntPtr raw_ret = gtk_file_chooser_get_filenames (Handle); + if (raw_ret == IntPtr.Zero) + return new string[0]; + GLib.SList list = new GLib.SList (raw_ret, typeof (string)); + string[] result = new string [list.Count]; + for (int i = 0; i < list.Count; i++) + result [i] = (string) list [i]; + list.Empty (); + return result; + } + } + + [DllImport ("libgtk-win32-2.0-0.dll")] + static extern IntPtr gtk_file_chooser_get_uris (IntPtr raw); + public string[] Uris { + get { + IntPtr raw_ret = gtk_file_chooser_get_uris (Handle); + if (raw_ret == IntPtr.Zero) + return new string[0]; + GLib.SList list = new GLib.SList (raw_ret, typeof (string)); + string[] result = new string [list.Count]; + for (int i = 0; i < list.Count; i++) + result [i] = (string) list [i]; + list.Empty (); + return result; + } + } + + [DllImport ("libgtk-win32-2.0-0.dll")] + static extern IntPtr gtk_file_chooser_list_filters (IntPtr raw); + public FileFilter[] Filters { + get { + IntPtr raw_ret = gtk_file_chooser_list_filters (Handle); + if (raw_ret == IntPtr.Zero) + return new FileFilter[0]; + GLib.SList list = new GLib.SList (raw_ret, typeof (FileFilter)); + FileFilter[] result = new FileFilter [list.Count]; + for (int i = 0; i < list.Count; i++) + result [i] = (FileFilter) list [i]; + list.Dispose (); + return result; + } + } + + [DllImport ("libgtk-win32-2.0-0.dll")] + static extern IntPtr gtk_file_chooser_list_shortcut_folders (IntPtr raw); + public string[] ShortcutFolders { + get { + IntPtr raw_ret = gtk_file_chooser_list_shortcut_folders (Handle); + if (raw_ret == IntPtr.Zero) + return new string[0]; + GLib.SList list = new GLib.SList (raw_ret, typeof (string)); + string[] result = new string [list.Count]; + for (int i = 0; i < list.Count; i++) + result [i] = (string) list [i]; + list.Empty (); + return result; + } + } + + [DllImport ("libgtk-win32-2.0-0.dll")] + static extern IntPtr gtk_file_chooser_list_shortcut_folder_uris (IntPtr raw); + public string[] ShortcutFolderUris { + get { + IntPtr raw_ret = gtk_file_chooser_list_shortcut_folder_uris (Handle); + if (raw_ret == IntPtr.Zero) + return new string[0]; + GLib.SList list = new GLib.SList (raw_ret, typeof (string)); + string[] result = new string [list.Count]; + for (int i = 0; i < list.Count; i++) + result [i] = (string) list [i]; + list.Empty (); + return result; + } + } diff --git a/gtk/Gtk.metadata b/gtk/Gtk.metadata index 01b469937..e31b2db09 100644 --- a/gtk/Gtk.metadata +++ b/gtk/Gtk.metadata @@ -65,6 +65,10 @@ TextDeleted TextInserted 1 + 1 + 1 + 1 + 1 out 1 out