summaryrefslogtreecommitdiff
path: root/src/Gtk
diff options
context:
space:
mode:
Diffstat (limited to 'src/Gtk')
-rw-r--r--src/Gtk/Internal.dcl1
-rw-r--r--src/Gtk/Internal.icl8
-rw-r--r--src/Gtk/Widgets.dcl2
-rw-r--r--src/Gtk/Widgets.icl6
4 files changed, 17 insertions, 0 deletions
diff --git a/src/Gtk/Internal.dcl b/src/Gtk/Internal.dcl
index c038fee..d31a11f 100644
--- a/src/Gtk/Internal.dcl
+++ b/src/Gtk/Internal.dcl
@@ -35,6 +35,7 @@ gtk_container_add :: !Pointer !Pointer !.a -> .a
gtk_css_provider_new :: !.a -> (!Pointer, !.a)
gtk_css_provider_load_from_path :: !Pointer !String !Pointer !.a -> (!Bool, !.a)
+gtk_dialog_add_button :: !Pointer !String !Int !.a -> (!Pointer, !.a)
gtk_dialog_get_content_area :: !Pointer -> Pointer
gtk_dialog_new :: !.a -> (!Pointer, !.a)
gtk_dialog_run :: !Pointer !.a -> (!Int, !.a)
diff --git a/src/Gtk/Internal.icl b/src/Gtk/Internal.icl
index 380e73f..51285e6 100644
--- a/src/Gtk/Internal.icl
+++ b/src/Gtk/Internal.icl
@@ -119,6 +119,14 @@ where
ccall gtk_css_provider_load_from_path "psp:I:A"
}
+gtk_dialog_add_button :: !Pointer !String !Int !.a -> (!Pointer, !.a)
+gtk_dialog_add_button dialog text response env = add dialog (packString text) response env
+where
+ add :: !Pointer !String !Int !.a -> (!Pointer, !.a)
+ add _ _ _ _ = code {
+ ccall gtk_dialog_add_button "psI:p:A"
+ }
+
gtk_dialog_get_content_area :: !Pointer -> Pointer
gtk_dialog_get_content_area dialog = code {
ccall gtk_dialog_get_content_area "p:p"
diff --git a/src/Gtk/Widgets.dcl b/src/Gtk/Widgets.dcl
index d85d93e..c931a53 100644
--- a/src/Gtk/Widgets.dcl
+++ b/src/Gtk/Widgets.dcl
@@ -59,6 +59,8 @@ instance tune d GtkModal | gtkDialog d
newDialog :: !GtkWindow -> GtkM GtkDialog
runDialog :: !d -> GtkM GtkResponse | gtkDialog d
+addButton :: !String !GtkResponse !d -> GtkM GtkButton | gtkDialog d
+
getContentArea :: !d -> GtkBox | gtkDialog d
newMessageDialog :: !GtkWindow !GtkMessageType !GtkButtonsType !String -> GtkM GtkDialog
diff --git a/src/Gtk/Widgets.icl b/src/Gtk/Widgets.icl
index de07c4f..80dad7a 100644
--- a/src/Gtk/Widgets.icl
+++ b/src/Gtk/Widgets.icl
@@ -94,6 +94,12 @@ runDialog dialog =
let (GtkDialog d) = gtkDialog dialog in
fromInt <$> toStateR (gtk_dialog_run d)
+addButton :: !String !GtkResponse !d -> GtkM GtkButton | gtkDialog d
+addButton text response dialog =
+ let (GtkDialog d) = gtkDialog dialog in
+ toStateR (gtk_dialog_add_button d text (toInt response)) >>= \b ->
+ pure (GtkButton b)
+
getContentArea :: !d -> GtkBox | gtkDialog d
getContentArea dialog =
let (GtkDialog d) = gtkDialog dialog in