diff options
| author | trustable-code <krauter.simon@arcor.de> | 2019-11-03 20:06:04 +0100 |
|---|---|---|
| committer | trustable-code <krauter.simon@arcor.de> | 2019-11-03 20:06:04 +0100 |
| commit | fe3db61a8c890ebbd8661ee2eaabfdd6f2121c95 (patch) | |
| tree | 5aafef584a645be29592ccd54d178ed54d2df0b9 /src/nigui/private/gtk3/platform_impl.nim | |
| parent | 2ec9ad141413d79e3221161d52adb74f34f193e9 (diff) | |
| download | NiGui-fe3db61a8c890ebbd8661ee2eaabfdd6f2121c95.tar.gz NiGui-fe3db61a8c890ebbd8661ee2eaabfdd6f2121c95.zip | |
Add SelectDirectoryDialog
Fixes #67
Diffstat (limited to 'src/nigui/private/gtk3/platform_impl.nim')
| -rwxr-xr-x | src/nigui/private/gtk3/platform_impl.nim | 11 |
1 files changed, 9 insertions, 2 deletions
diff --git a/src/nigui/private/gtk3/platform_impl.nim b/src/nigui/private/gtk3/platform_impl.nim index bf4b1ab..c5a7fdb 100755 --- a/src/nigui/private/gtk3/platform_impl.nim +++ b/src/nigui/private/gtk3/platform_impl.nim @@ -402,7 +402,6 @@ proc alert(window: Window, message: string, title = "Message") = method run*(dialog: OpenFileDialog) = dialog.files = @[] var chooser = gtk_file_chooser_dialog_new(dialog.title, nil, GTK_FILE_CHOOSER_ACTION_OPEN, "Cancel", GTK_RESPONSE_CANCEL, "Open", GTK_RESPONSE_ACCEPT, nil) - # Issue: When a title is passed, the dialog is shown without a title discard gtk_file_chooser_set_current_folder(chooser, dialog.directory) gtk_file_chooser_set_select_multiple(chooser, dialog.multiple) let res = gtk_dialog_run(chooser) @@ -415,7 +414,6 @@ method run*(dialog: OpenFileDialog) = method run(dialog: SaveFileDialog) = var chooser = gtk_file_chooser_dialog_new(dialog.title, nil, GTK_FILE_CHOOSER_ACTION_SAVE, "Cancel", GTK_RESPONSE_CANCEL, "Save", GTK_RESPONSE_ACCEPT, nil) - # Issue: When a title is passed, the dialog is shown without a title let res = gtk_dialog_run(chooser) discard gtk_file_chooser_set_current_folder(chooser, dialog.directory) if dialog.defaultName.len > 0: @@ -426,6 +424,15 @@ method run(dialog: SaveFileDialog) = dialog.file = "" gtk_widget_destroy(chooser) +method run*(dialog: SelectDirectoryDialog) = + dialog.selectedDirectory = "" + var chooser = gtk_file_chooser_dialog_new(dialog.title, nil, GTK_FILE_CHOOSER_ACTION_SELECT_FOLDER, "Cancel", GTK_RESPONSE_CANCEL, "Select", GTK_RESPONSE_ACCEPT, nil) + discard gtk_file_chooser_set_current_folder(chooser, dialog.startDirectory) + let res = gtk_dialog_run(chooser) + if res == GTK_RESPONSE_ACCEPT: + dialog.selectedDirectory = $gtk_file_chooser_get_filename(chooser) + gtk_widget_destroy(chooser) + # ---------------------------------------------------------------------------------------- # Timers |
