diff --git a/Source/Libs/GLibSharp/Marshaller.cs b/Source/Libs/GLibSharp/Marshaller.cs index 449e5b7f3..bb70434da 100644 --- a/Source/Libs/GLibSharp/Marshaller.cs +++ b/Source/Libs/GLibSharp/Marshaller.cs @@ -48,15 +48,14 @@ namespace GLib { g_free (ptrs [i]); } [UnmanagedFunctionPointer(CallingConvention.Cdecl)] - delegate IntPtr d_g_filename_to_utf8(IntPtr mem, int len, IntPtr read, out IntPtr written, out IntPtr error); + delegate IntPtr d_g_filename_to_utf8(IntPtr mem, IntPtr len, IntPtr read, out IntPtr written, out IntPtr error); static d_g_filename_to_utf8 g_filename_to_utf8 = FuncLoader.LoadFunction(FuncLoader.GetProcAddress(GLibrary.Load(Library.GLib), "g_filename_to_utf8")); public static string FilenamePtrToString (IntPtr ptr) { if (ptr == IntPtr.Zero) return null; - IntPtr dummy, error; - IntPtr utf8 = g_filename_to_utf8 (ptr, -1, IntPtr.Zero, out dummy, out error); + IntPtr utf8 = g_filename_to_utf8 (ptr, (IntPtr)(-1), IntPtr.Zero, out _, out var error); if (error != IntPtr.Zero) throw new GLib.GException (error); @@ -117,7 +116,7 @@ namespace GLib { return ret; } [UnmanagedFunctionPointer(CallingConvention.Cdecl)] - delegate IntPtr d_g_filename_from_utf8(IntPtr mem, int len, IntPtr read, out IntPtr written, out IntPtr error); + delegate IntPtr d_g_filename_from_utf8(IntPtr mem, IntPtr len, IntPtr read, out IntPtr written, out IntPtr error); static d_g_filename_from_utf8 g_filename_from_utf8 = FuncLoader.LoadFunction(FuncLoader.GetProcAddress(GLibrary.Load(Library.GLib), "g_filename_from_utf8")); public static IntPtr StringToFilenamePtr (string str) @@ -125,9 +124,8 @@ namespace GLib { if (str == null) return IntPtr.Zero; - IntPtr dummy, error; IntPtr utf8 = StringToPtrGStrdup (str); - IntPtr result = g_filename_from_utf8 (utf8, -1, IntPtr.Zero, out dummy, out error); + IntPtr result = g_filename_from_utf8 (utf8, (IntPtr)(-1), IntPtr.Zero, out _, out var error); g_free (utf8); if (error != IntPtr.Zero) diff --git a/Source/Samples/Sections/Dialogs/FileChooserDialogSection.cs b/Source/Samples/Sections/Dialogs/FileChooserDialogSection.cs new file mode 100644 index 000000000..6c75a366a --- /dev/null +++ b/Source/Samples/Sections/Dialogs/FileChooserDialogSection.cs @@ -0,0 +1,32 @@ +using Gtk; + +namespace Samples +{ + [Section(ContentType = typeof(FileChooserDialog), Category = Category.Dialogs)] + class FileChooserDialogSection : ListSection + { + public FileChooserDialogSection () + { + AddItem ($"Press button to open {nameof(FileChooserDialog)} :", new FileChooserDialogDemo ("Press me")); + } + } + + class FileChooserDialogDemo : Button + { + public FileChooserDialogDemo (string text) : base (text) { } + + protected override void OnPressed () + { + var fcd = new FileChooserDialog ("Open File", null, FileChooserAction.Open); + fcd.AddButton (Stock.Cancel, ResponseType.Cancel); + fcd.AddButton (Stock.Open, ResponseType.Ok); + fcd.DefaultResponse = ResponseType.Ok; + fcd.SelectMultiple = false; + + ResponseType response = (ResponseType) fcd.Run (); + if (response == ResponseType.Ok) + ApplicationOutput.WriteLine (fcd.Filename); + fcd.Destroy (); + } + } +} \ No newline at end of file