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.icl33
1 files changed, 29 insertions, 4 deletions
diff --git a/src/Gtk/Widgets.icl b/src/Gtk/Widgets.icl
index b7e4798..f9fb9a3 100644
--- a/src/Gtk/Widgets.icl
+++ b/src/Gtk/Widgets.icl
@@ -130,6 +130,7 @@ newMenuBar = toStateR gtk_menu_bar_new >>= show
:: GtkMenuItem :== Pointer
instance gtkWidget GtkMenuItem where gtkWidget mi = mi
+instance gtkMenuItem GtkMenuItem where gtkMenuItem mi = mi
newMenuItem :: !String -> GtkM GtkMenuItem
newMenuItem label =
@@ -138,11 +139,35 @@ newMenuItem label =
toState (gtk_menu_item_set_use_underline item True) >>|
show item
-setSubMenu :: !GtkMenuItem !GtkMenu -> GtkM GtkMenu
+setSubMenu :: !mi !GtkMenu -> GtkM GtkMenu | gtkMenuItem mi
setSubMenu item menu =
- toState (gtk_menu_item_set_submenu item menu) >>|
+ toState (gtk_menu_item_set_submenu (gtkMenuItem item) menu) >>|
pure menu
+:: GtkCheckMenuItem :== Pointer
+
+instance gtkWidget GtkCheckMenuItem where gtkWidget cmi = cmi
+instance gtkMenuItem GtkCheckMenuItem where gtkMenuItem cmi = cmi
+instance ptr GtkCheckMenuItem
+where
+ toPtr cmi = cmi
+ fromPtr cmi = cmi
+
+newCheckMenuItem :: !String -> GtkM GtkCheckMenuItem
+newCheckMenuItem label =
+ toStateR gtk_check_menu_item_new >>= \item ->
+ toState (gtk_menu_item_set_label item label) >>|
+ toState (gtk_menu_item_set_use_underline item True) >>|
+ show item
+
+isActive :: !GtkCheckMenuItem -> GtkM Bool
+isActive item = toStateR (gtk_check_menu_item_get_active item)
+
+setActive :: !Bool !GtkCheckMenuItem -> GtkM GtkCheckMenuItem
+setActive active item =
+ toState (gtk_check_menu_item_set_active item active) >>|
+ pure item
+
:: GtkMenuShell :== Pointer
instance gtkWidget GtkMenuShell where gtkWidget ms = ms
@@ -151,9 +176,9 @@ instance gtkMenuShell GtkMenu where gtkMenuShell m = m
instance gtkMenuShell GtkMenuBar where gtkMenuShell mb = mb
instance gtkMenuShell GtkMenuShell where gtkMenuShell ms = ms
-appendToMenuShell :: !s !GtkMenuItem -> GtkM GtkMenuItem | gtkMenuShell s
+appendToMenuShell :: !s !mi -> GtkM mi | gtkMenuShell s & gtkMenuItem mi
appendToMenuShell shell item =
- toState (gtk_menu_shell_append (gtkMenuShell shell) item) >>|
+ toState (gtk_menu_shell_append (gtkMenuShell shell) (gtkMenuItem item)) >>|
pure item
:: GtkPaned :== Pointer