examples/lib use the new wrappers
This commit is contained in:
parent
ddb7185482
commit
b559285b78
133 changed files with 17038 additions and 151734 deletions
|
|
@ -18,21 +18,18 @@ import
|
|||
when defined(Windows):
|
||||
import windows, ShellAPI, os
|
||||
|
||||
type
|
||||
PWindow* = PGtkWindow ## A shortcut for a GTK window.
|
||||
|
||||
proc info*(window: PWindow, msg: string) =
|
||||
## Shows an information message to the user. The process waits until the
|
||||
## user presses the OK button.
|
||||
when defined(Windows):
|
||||
discard MessageBoxA(0, msg, "Information", MB_OK or MB_ICONINFORMATION)
|
||||
else:
|
||||
var dialog = GTK_DIALOG(gtk_message_dialog_new(window,
|
||||
GTK_DIALOG_MODAL or GTK_DIALOG_DESTROY_WITH_PARENT,
|
||||
GTK_MESSAGE_INFO, GTK_BUTTONS_OK, "%s", cstring(msg)))
|
||||
gtk_window_set_title(dialog, "Information")
|
||||
discard gtk_dialog_run(dialog)
|
||||
gtk_widget_destroy(dialog)
|
||||
var dialog = message_dialog_new(window,
|
||||
DIALOG_MODAL or DIALOG_DESTROY_WITH_PARENT,
|
||||
MESSAGE_INFO, BUTTONS_OK, "%s", cstring(msg))
|
||||
setTitle(dialog, "Information")
|
||||
discard run(dialog)
|
||||
destroy(PWidget(dialog))
|
||||
|
||||
proc warning*(window: PWindow, msg: string) =
|
||||
## Shows a warning message to the user. The process waits until the user
|
||||
|
|
@ -40,12 +37,12 @@ proc warning*(window: PWindow, msg: string) =
|
|||
when defined(Windows):
|
||||
discard MessageBoxA(0, msg, "Warning", MB_OK or MB_ICONWARNING)
|
||||
else:
|
||||
var dialog = GTK_DIALOG(gtk_message_dialog_new(window,
|
||||
GTK_DIALOG_MODAL or GTK_DIALOG_DESTROY_WITH_PARENT,
|
||||
GTK_MESSAGE_WARNING, GTK_BUTTONS_OK, "%s", cstring(msg)))
|
||||
gtk_window_set_title(dialog, "Warning")
|
||||
discard gtk_dialog_run(dialog)
|
||||
gtk_widget_destroy(dialog)
|
||||
var dialog = DIALOG(message_dialog_new(window,
|
||||
DIALOG_MODAL or DIALOG_DESTROY_WITH_PARENT,
|
||||
MESSAGE_WARNING, BUTTONS_OK, "%s", cstring(msg)))
|
||||
setTitle(dialog, "Warning")
|
||||
discard run(dialog)
|
||||
destroy(PWidget(dialog))
|
||||
|
||||
proc error*(window: PWindow, msg: string) =
|
||||
## Shows an error message to the user. The process waits until the user
|
||||
|
|
@ -53,12 +50,12 @@ proc error*(window: PWindow, msg: string) =
|
|||
when defined(Windows):
|
||||
discard MessageBoxA(0, msg, "Error", MB_OK or MB_ICONERROR)
|
||||
else:
|
||||
var dialog = GTK_DIALOG(gtk_message_dialog_new(window,
|
||||
GTK_DIALOG_MODAL or GTK_DIALOG_DESTROY_WITH_PARENT,
|
||||
GTK_MESSAGE_ERROR, GTK_BUTTONS_OK, "%s", cstring(msg)))
|
||||
gtk_window_set_title(dialog, "Error")
|
||||
discard gtk_dialog_run(dialog)
|
||||
gtk_widget_destroy(dialog)
|
||||
var dialog = DIALOG(message_dialog_new(window,
|
||||
DIALOG_MODAL or DIALOG_DESTROY_WITH_PARENT,
|
||||
MESSAGE_ERROR, BUTTONS_OK, "%s", cstring(msg)))
|
||||
setTitle(dialog, "Error")
|
||||
discard run(dialog)
|
||||
destroy(PWidget(dialog))
|
||||
|
||||
|
||||
proc ChooseFileToOpen*(window: PWindow, root: string = ""): string =
|
||||
|
|
@ -82,21 +79,19 @@ proc ChooseFileToOpen*(window: PWindow, root: string = ""): string =
|
|||
else:
|
||||
result = ""
|
||||
else:
|
||||
var
|
||||
chooser: PGtkDialog
|
||||
chooser = GTK_DIALOG(gtk_file_chooser_dialog_new("Open File", window,
|
||||
GTK_FILE_CHOOSER_ACTION_OPEN,
|
||||
GTK_STOCK_CANCEL, GTK_RESPONSE_CANCEL,
|
||||
GTK_STOCK_OPEN, GTK_RESPONSE_OK, nil))
|
||||
var chooser = file_chooser_dialog_new("Open File", window,
|
||||
FILE_CHOOSER_ACTION_OPEN,
|
||||
STOCK_CANCEL, RESPONSE_CANCEL,
|
||||
STOCK_OPEN, RESPONSE_OK, nil)
|
||||
if root.len > 0:
|
||||
discard gtk_file_chooser_set_current_folder(chooser, root)
|
||||
if gtk_dialog_run(chooser) == cint(GTK_RESPONSE_OK):
|
||||
var x = gtk_file_chooser_get_filename(chooser)
|
||||
discard set_current_folder(chooser, root)
|
||||
if run(chooser) == cint(RESPONSE_OK):
|
||||
var x = get_filename(chooser)
|
||||
result = $x
|
||||
g_free(x)
|
||||
else:
|
||||
result = ""
|
||||
gtk_widget_destroy(chooser)
|
||||
destroy(PWidget(chooser))
|
||||
|
||||
proc ChooseFilesToOpen*(window: PWindow, root: string = ""): seq[string] =
|
||||
## Opens a dialog that requests filenames from the user. Returns ``@[]``
|
||||
|
|
@ -136,25 +131,23 @@ proc ChooseFilesToOpen*(window: PWindow, root: string = ""): seq[string] =
|
|||
if buf[i] == '\0': break
|
||||
for i in 0..result.len-1: result[i] = os.joinPath(path, result[i])
|
||||
else:
|
||||
var
|
||||
chooser: PGtkDialog
|
||||
chooser = GTK_DIALOG(gtk_file_chooser_dialog_new("Open Files", window,
|
||||
GTK_FILE_CHOOSER_ACTION_OPEN,
|
||||
GTK_STOCK_CANCEL, GTK_RESPONSE_CANCEL,
|
||||
GTK_STOCK_OPEN, GTK_RESPONSE_OK, nil))
|
||||
var chooser = file_chooser_dialog_new("Open Files", window,
|
||||
FILE_CHOOSER_ACTION_OPEN,
|
||||
STOCK_CANCEL, RESPONSE_CANCEL,
|
||||
STOCK_OPEN, RESPONSE_OK, nil)
|
||||
if root.len > 0:
|
||||
discard gtk_file_chooser_set_current_folder(chooser, root)
|
||||
gtk_file_chooser_set_select_multiple(chooser, true)
|
||||
discard set_current_folder(chooser, root)
|
||||
set_select_multiple(chooser, true)
|
||||
result = @[]
|
||||
if gtk_dialog_run(chooser) == cint(GTK_RESPONSE_OK):
|
||||
var L = gtk_file_chooser_get_filenames(chooser)
|
||||
if run(chooser) == cint(RESPONSE_OK):
|
||||
var L = get_filenames(chooser)
|
||||
var it = L
|
||||
while it != nil:
|
||||
add(result, $cast[cstring](it.data))
|
||||
g_free(it.data)
|
||||
it = it.next
|
||||
g_slist_free(L)
|
||||
gtk_widget_destroy(chooser)
|
||||
free(L)
|
||||
destroy(PWidget(chooser))
|
||||
|
||||
|
||||
proc ChooseFileToSave*(window: PWindow, root: string = ""): string =
|
||||
|
|
@ -178,22 +171,20 @@ proc ChooseFileToSave*(window: PWindow, root: string = ""): string =
|
|||
else:
|
||||
result = ""
|
||||
else:
|
||||
var
|
||||
chooser: PGtkDialog
|
||||
chooser = GTK_DIALOG(gtk_file_chooser_dialog_new("Save File", window,
|
||||
GTK_FILE_CHOOSER_ACTION_SAVE,
|
||||
GTK_STOCK_CANCEL, GTK_RESPONSE_CANCEL,
|
||||
GTK_STOCK_OPEN, GTK_RESPONSE_OK, nil))
|
||||
var chooser = file_chooser_dialog_new("Save File", window,
|
||||
FILE_CHOOSER_ACTION_SAVE,
|
||||
STOCK_CANCEL, RESPONSE_CANCEL,
|
||||
STOCK_OPEN, RESPONSE_OK, nil)
|
||||
if root.len > 0:
|
||||
discard gtk_file_chooser_set_current_folder(chooser, root)
|
||||
gtk_file_chooser_set_do_overwrite_confirmation(chooser, true)
|
||||
if gtk_dialog_run(chooser) == cint(GTK_RESPONSE_OK):
|
||||
var x = gtk_file_chooser_get_filename(chooser)
|
||||
discard set_current_folder(chooser, root)
|
||||
set_do_overwrite_confirmation(chooser, true)
|
||||
if run(chooser) == cint(RESPONSE_OK):
|
||||
var x = get_filename(chooser)
|
||||
result = $x
|
||||
g_free(x)
|
||||
else:
|
||||
result = ""
|
||||
gtk_widget_destroy(chooser)
|
||||
destroy(PWidget(chooser))
|
||||
|
||||
|
||||
proc ChooseDir*(window: PWindow, root: string = ""): string =
|
||||
|
|
@ -216,19 +207,17 @@ proc ChooseDir*(window: PWindow, root: string = ""): string =
|
|||
Result = $TempPath
|
||||
discard GlobalFreePtr(lpItemID)
|
||||
else:
|
||||
var
|
||||
chooser: PGtkDialog
|
||||
chooser = GTK_DIALOG(gtk_file_chooser_dialog_new("Select Directory", window,
|
||||
GTK_FILE_CHOOSER_ACTION_SELECT_FOLDER,
|
||||
GTK_STOCK_CANCEL, GTK_RESPONSE_CANCEL,
|
||||
GTK_STOCK_OPEN, GTK_RESPONSE_OK, nil))
|
||||
var chooser = file_chooser_dialog_new("Select Directory", window,
|
||||
FILE_CHOOSER_ACTION_SELECT_FOLDER,
|
||||
STOCK_CANCEL, RESPONSE_CANCEL,
|
||||
STOCK_OPEN, RESPONSE_OK, nil)
|
||||
if root.len > 0:
|
||||
discard gtk_file_chooser_set_current_folder(chooser, root)
|
||||
if gtk_dialog_run(chooser) == cint(GTK_RESPONSE_OK):
|
||||
var x = gtk_file_chooser_get_filename(chooser)
|
||||
discard set_current_folder(chooser, root)
|
||||
if run(chooser) == cint(RESPONSE_OK):
|
||||
var x = get_filename(chooser)
|
||||
result = $x
|
||||
g_free(x)
|
||||
else:
|
||||
result = ""
|
||||
gtk_widget_destroy(chooser)
|
||||
destroy(PWidget(chooser))
|
||||
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue