diff options
Diffstat (limited to 'src/Gtk')
-rw-r--r-- | src/Gtk/Internal.dcl | 1 | ||||
-rw-r--r-- | src/Gtk/Internal.icl | 8 | ||||
-rw-r--r-- | src/Gtk/Widgets.dcl | 2 | ||||
-rw-r--r-- | src/Gtk/Widgets.icl | 6 |
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 |