diff options
| author | trustable-code <krauter.simon@arcor.de> | 2017-08-08 19:01:18 +0200 |
|---|---|---|
| committer | trustable-code <krauter.simon@arcor.de> | 2017-08-08 19:01:18 +0200 |
| commit | d7666326125cc7c2c3867f744c47d7021b8e7e85 (patch) | |
| tree | 7a8fc83b428fb26f7ef72aa9ad1cb73b743cdefe /src/nigui/private/gtk3/platform_impl.nim | |
| parent | 77f5e8b4e5f9a1e52e798f7a3e5841c8cfbea5e9 (diff) | |
| download | NiGui-d7666326125cc7c2c3867f744c47d7021b8e7e85.tar.gz NiGui-d7666326125cc7c2c3867f744c47d7021b8e7e85.zip | |
Add clipboard functions
Diffstat (limited to 'src/nigui/private/gtk3/platform_impl.nim')
| -rwxr-xr-x | src/nigui/private/gtk3/platform_impl.nim | 20 |
1 files changed, 20 insertions, 0 deletions
diff --git a/src/nigui/private/gtk3/platform_impl.nim b/src/nigui/private/gtk3/platform_impl.nim index 32473bf..00fd9d8 100755 --- a/src/nigui/private/gtk3/platform_impl.nim +++ b/src/nigui/private/gtk3/platform_impl.nim @@ -20,6 +20,9 @@ var pLastMouseButtonDownControl: ControlImpl var pLastMouseButtonDownControlX: int var pLastMouseButtonDownControlY: int +var pClipboardPtr: pointer +var pClipboardText: string + proc pRaiseGError(error: ptr GError) = if error == nil: raiseError("Unkown error") @@ -278,6 +281,8 @@ proc pSetDragDest(widget: pointer) = proc init(app: App) = gtk_init(nil, nil) + pClipboardPtr = gtk_clipboard_get(GDK_SELECTION_CLIPBOARD) + # Determine default styles: var window = gtk_window_new(GTK_WINDOW_TOPLEVEL) var context = gtk_widget_get_style_context(window) @@ -294,6 +299,21 @@ proc processEvents(app: App) = while gtk_events_pending() == 1: discard gtk_main_iteration() +proc pClipboardTextReceivedFunc(clipboard: pointer, text: cstring, data: pointer): bool {.cdecl.} = + pClipboardText = $text + if pClipboardText == nil: + pClipboardText = "" + +proc clipboardText(app: App): string = + pClipboardText = nil + gtk_clipboard_request_text(pClipboardPtr, pClipboardTextReceivedFunc, nil) + while pClipboardText == nil: + discard gtk_main_iteration() + result = pClipboardText + +proc `clipboardText=`(app: App, text: string) = + gtk_clipboard_set_text(pClipboardPtr, text, text.len.cint) + # ---------------------------------------------------------------------------------------- # Dialogs |
