summaryrefslogtreecommitdiff
path: root/src/nigui/private/gtk3
diff options
context:
space:
mode:
authortrustable-code <krauter.simon@arcor.de>2019-11-03 20:06:04 +0100
committertrustable-code <krauter.simon@arcor.de>2019-11-03 20:06:04 +0100
commitfe3db61a8c890ebbd8661ee2eaabfdd6f2121c95 (patch)
tree5aafef584a645be29592ccd54d178ed54d2df0b9 /src/nigui/private/gtk3
parent2ec9ad141413d79e3221161d52adb74f34f193e9 (diff)
downloadNiGui-fe3db61a8c890ebbd8661ee2eaabfdd6f2121c95.tar.gz
NiGui-fe3db61a8c890ebbd8661ee2eaabfdd6f2121c95.zip
Add SelectDirectoryDialog
Fixes #67
Diffstat (limited to 'src/nigui/private/gtk3')
-rwxr-xr-xsrc/nigui/private/gtk3/platform_impl.nim11
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