public void Open(string filterString, Action <DialogResult> callback) { foreach (var item in GtkUtil.ConvertFilter(filterString)) { var filter = new FileFilter(); filter.Name = item.Name; filter.AddPattern(item.Pattern); _dialog.AddFilter(filter); } if (_dialog.Run() == (int)ResponseType.Ok) { callback(new DialogResult() { FileName = _dialog.Filename, Success = true }); } _dialog.Destroy(); while (Application.EventsPending()) { Application.RunIteration(); } }
public GtkOpenFileDialog(string title) { GtkUtil.Initialize(); _dialog = new FileChooserDialog(title, null, FileChooserAction.Open, "Cancel", ResponseType.Cancel, "Ok", ResponseType.Ok); while (Application.EventsPending()) { Application.RunIteration(); } }