diff options
author | Camil Staps | 2019-10-23 11:22:15 +0200 |
---|---|---|
committer | Camil Staps | 2019-10-23 11:22:15 +0200 |
commit | d490e14ebbb93b5f23f9f9906acfb5cb51dc77f1 (patch) | |
tree | 4244c6f5a2e388fc3c5da4066d08586e290cc363 /src/Gtk/Widgets.icl | |
parent | Add rudimentary shares system (diff) |
Add GtkDialog and GtkSpinner functionality
Diffstat (limited to 'src/Gtk/Widgets.icl')
-rw-r--r-- | src/Gtk/Widgets.icl | 28 |
1 files changed, 28 insertions, 0 deletions
diff --git a/src/Gtk/Widgets.icl b/src/Gtk/Widgets.icl index 5be2cea..a2a0349 100644 --- a/src/Gtk/Widgets.icl +++ b/src/Gtk/Widgets.icl @@ -54,9 +54,24 @@ where toPtr d = d fromPtr d = d +instance tune d GtkModal | gtkDialog d +where + tune setting dialog = + toState (gtk_dialog_set_modal (gtkDialog dialog) setting=:Modal) >>| + pure dialog + +newDialog :: !GtkWindow -> GtkM GtkDialog +newDialog window = + toStateR gtk_dialog_new >>= \dialog -> + toState (gtk_window_set_transient_for dialog window) >>| + pure dialog + runDialog :: !d -> GtkM GtkResponse | gtkDialog d runDialog dialog = fromInt <$> toStateR (gtk_dialog_run (gtkDialog dialog)) +getContentArea :: !d -> GtkBox | gtkDialog d +getContentArea dialog = gtk_dialog_get_content_area (gtkDialog dialog) + getFileWithDialog :: !GtkWindow !GtkFileChooserAction !(Maybe String) -> GtkM (Maybe FilePath) getFileWithDialog window action title = toStateR (gtk_file_chooser_dialog_new title window (toInt action) buttons) >>= \dialog -> @@ -170,6 +185,19 @@ instance gtkContainer GtkScrolledWindow where gtkContainer sw = sw newScrolledWindow :: GtkM GtkScrolledWindow newScrolledWindow = toStateR (gtk_scrolled_window_new 0 0) >>= show +:: GtkSpinner :== Pointer + +instance gtkWidget GtkSpinner where gtkWidget s = s + +newSpinner :: GtkM GtkSpinner +newSpinner = toStateR gtk_spinner_new >>= show + +startSpinner :: !GtkSpinner -> GtkM GtkSpinner +startSpinner spinner = toState (gtk_spinner_start spinner) >>| pure spinner + +stopSpinner :: !GtkSpinner -> GtkM GtkSpinner +stopSpinner spinner = toState (gtk_spinner_stop spinner) >>| pure spinner + :: GtkTextBuffer :== Pointer insertAtCursor :: !String !GtkTextBuffer -> GtkM () |