summaryrefslogtreecommitdiff
path: root/src/Gtk/Widgets.icl
diff options
context:
space:
mode:
Diffstat (limited to 'src/Gtk/Widgets.icl')
-rw-r--r--src/Gtk/Widgets.icl28
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 ()