Add FileChooserDialog to samples app
This shows the original issue on macOS/arm64 (if the rest of the PR is not applied) ``` GLib.GException: Invalid byte sequence in conversion input at GLib.Marshaller.FilenamePtrToString(IntPtr ptr) in /Users/poupou/git/external/GtkSharp/Source/Libs/GLibSharp/Marshaller.cs:line 62 at GLib.Marshaller.FilenamePtrToStringGFree(IntPtr ptr) in /Users/poupou/git/external/GtkSharp/Source/Libs/GLibSharp/Marshaller.cs:line 68 at Gtk.FileChooserDialog.get_Filename() in /Users/poupou/git/external/GtkSharp/Source/Libs/GtkSharp/Generated/Gtk/FileChooserDialog.cs:line 222 at Samples.FileChooserDialogDemo.OnPressed() in /Users/poupou/git/external/GtkSharp/Source/Samples/Sections/Dialogs/FileChooserDialogSection.cs:line 28 at Gtk.Button.Pressed_cb(IntPtr inst) in /Users/poupou/git/external/GtkSharp/Source/Libs/GtkSharp/Generated/Gtk/Button.cs:line 388 at GLib.ExceptionManager.RaiseUnhandledException(Exception e, Boolean is_terminal) in /Users/poupou/git/external/GtkSharp/Source/Libs/GLibSharp/ExceptionManager.cs:line 58 at Gtk.Button.Pressed_cb(IntPtr inst) in /Users/poupou/git/external/GtkSharp/Source/Libs/GtkSharp/Generated/Gtk/Button.cs:line 388 at Gtk.Application.Run() in /Users/poupou/git/external/GtkSharp/Source/Libs/GtkSharp/Application.cs:line 115 at Samples.Program.Main(String[] args) in /Users/poupou/git/external/GtkSharp/Source/Samples/Program.cs:line 44 ```
This commit is contained in:
parent
7391aac88d
commit
fd3eb0c839
1 changed files with 32 additions and 0 deletions
32
Source/Samples/Sections/Dialogs/FileChooserDialogSection.cs
Normal file
32
Source/Samples/Sections/Dialogs/FileChooserDialogSection.cs
Normal file
|
@ -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 ();
|
||||
}
|
||||
}
|
||||
}
|
Loading…
Reference in a new issue