6062169172506e251bc78f38b3c314c07323167c
[cl-gtk2.git] / gtk / gtk.menu.lisp
1 (in-package :gtk)
2
3 (defcfun (menu-reorder-child "gtk_menu_reorder_child") :void
4   (menu g-object)
5   (child g-object)
6   (position :int))
7
8 (export 'menu-reorder-child)
9
10 (defcfun (menu-attach "gtk_menu_attach") :void
11   (menu g-object)
12   (child g-object)
13   (left-attach :uint)
14   (right-attach :uint)
15   (top-attach :uint)
16   (bottom-attach :uint))
17
18 (export 'menu-attach)
19
20 (defcfun gtk-menu-popup :void
21   (menu g-object)
22   (parent-menu-shell g-object)
23   (parent-menu-item g-object)
24   (menu-position-func :pointer)
25   (data :pointer)
26   (button :uint)
27   (activate-time :uint32))
28
29 (defcallback gtk-menu-position-func-callback :void
30     ((menu g-object) (x :pointer) (y :pointer) (push-in :pointer) (data :pointer))
31   (restart-case
32       (multiple-value-bind (rx ry rpush-in) (funcall (get-stable-pointer-value data)
33                                                      menu)
34         (setf (mem-ref x :int) rx
35               (mem-ref y :int) ry
36               (mem-ref push-in :boolean) rpush-in))
37     (return-zero () (setf (mem-ref x :int) 0
38                           (mem-ref y :int) 0
39                           (mem-ref push-in :boolean) nil))))
40
41 (defun menu-popup (menu &key parent-menu-shell parent-menu-item position-func (button 0) (activate-time (current-event-time)))
42   (if position-func
43       (with-stable-pointer (ptr position-func)
44         (gtk-menu-popup menu parent-menu-shell parent-menu-item
45                         (callback gtk-menu-position-func-callback)
46                         ptr button activate-time))
47       (gtk-menu-popup menu parent-menu-shell parent-menu-item (callback gtk-menu-position-func-callback) (null-pointer) (null-pointer) activate-time)))
48
49 (export 'menu-popup)
50
51 (defcfun (menu-popdown "gtk_menu_popdown") :void
52   (menu g-object))
53
54 (export 'menu-popdown)
55
56 (defcfun (menu-reposition "gtk_menu_reposition") :void
57   (menu g-object))
58
59 (export 'menu-reposition)
60
61 ; TODO: gtk_menu_attach_to_widget
62
63 (defcfun (menu-detach "gtk_menu_detach") :void
64   (menu (g-object menu)))
65
66 (export 'menu-detach)
67
68 ; TODO: gtk_menu_get_attach_to_widget
69
70 (defcfun (menu-attached-to-widget "gtk_menu_get_for_attach_widget") (glist (g-object menu) :free-from-foreign nil)
71   (width (g-object widget)))
72
73 (export 'menu-attached-to-widget)
74
75 (defcfun (radio-menu-item-group "gtk_radio_menu_item_get_group") (glist (g-object radio-menu-item) :free-from-foreign nil)
76   (radio-menu-item (g-object radio-menu-item)))
77
78 (export 'radio-menu-item-group)
79
80 (defcfun (tool-shell-rebuild-menu "gtk_tool_shell_rebuild_menu") :void
81   (shell (g-object tool-shell)))
82
83 (export 'tool-shell-rebuild-menu)
84
85 (defcfun (menu-shell-append "gtk_menu_shell_append") :void
86   (menu-shell g-object)
87   (child g-object))
88
89 (export 'menu-shell-append)
90
91 (defcfun (menu-shell-prepend "gtk_menu_shell_prepend") :void
92   (menu-shell g-object)
93   (child g-object))
94
95 (export 'menu-shell-prepend)
96
97 (defcfun (menu-shell-insert "gtk_menu_shell_insert") :void
98   (menu-shell g-object)
99   (child g-object)
100   (position :int))
101
102 (export 'menu-shell-insert)
103
104 (defcfun (menu-shell-deactivate "gtk_menu_shell_deactivate") :void
105   (menu-shell g-object))
106
107 (export 'menu-shell-deactivate)
108
109 (defcfun (menu-shell-select-item "gtk_menu_shell_select_item") :void
110   (menu-shell g-object)
111   (menu-item g-object))
112
113 (export 'menu-shell-select-item)
114
115 (defcfun gtk-menu-shell-select-first :void
116   (menu-shell g-object)
117   (search-sensitive :boolean))
118
119 (defun menu-shell-select-first (menu-shell &optional (search-sensitive t))
120   (gtk-menu-shell-select-first menu-shell search-sensitive))
121
122 (export 'menu-shell-select-first)
123
124 (defcfun (menu-shell-deselect "gtk_menu_shell_deselect") :void
125   (menu-shell g-object))
126
127 (export 'menu-shell-deselect)
128
129 (defcfun gtk-menu-shell-activate-item :void
130   (menu-shell g-object)
131   (menu-item g-object)
132   (force-deactivate :boolean))
133
134 (defun menu-shell-activate-item (menu-shell menu-item &optional force-deactivate)
135   (gtk-menu-shell-activate-item menu-shell menu-item force-deactivate))
136
137 (export 'menu-shell-activate-item)
138
139 (defcfun (menu-shell-cancel "gtk_menu_shell_cancel") :void
140   (menu-shell g-object))
141
142 (export 'menu-shell-cancel)
143
144 ; TODO: GtkToolShell
145
146 (defcfun (toolbar-insert "gtk_toolbar_insert") :void
147   (toolbar g-object)
148   (item g-object)
149   (pos :int))
150
151 (export 'toolbar-insert)
152
153 (defcfun (toolbar-item-index "gtk_toolbar_get_item_index") :int
154   (toolbar g-object)
155   (item g-object))
156
157 (export 'toolbar-item-index)
158
159 (defcfun (toolbar-items-count "gtk_toolbar_get_n_items") :int
160   (toolbar g-object))
161
162 (export 'toolbar-items-count)
163
164 (defcfun (toolbar-nth-item "gtk_toolbar_get_nth_item") g-object
165   (toolbar g-object)
166   (n :int))
167
168 (export 'toolbar-nth-item)
169
170 (defcfun (toolbar-get-drop-index "gtk_toolbar_get_drop_index") :int
171   (toolbar g-object)
172   (x :int)
173   (y :int))
174
175 (export 'toolbar-get-drop-index)
176
177 (defcfun (toolbar-set-drop-highlight-item "gtk_toolbar_set_drop_highlight_item") :void
178   (toolbar g-object)
179   (tool-item g-object)
180   (index :int))
181
182 (export 'toolbar-set-drop-highlight-item)
183
184 (defcfun (toolbar-unset-style "gtk_toolbar_unset_style") :void
185   (toolbar g-object))
186
187 (export 'toolbar-unset-style)
188
189 (defcfun (tool-item-retrieve-proxy-menu-item "gtk_tool_item_retrieve_proxy_menu_item") g-object
190   (tool-item g-object))
191
192 (export 'tool-item-retrieve-proxy-menu-item)
193
194 ; TODO: gtk_tool_item_get_proxy_menu_item
195
196 ; TODO: gtk_tool_item_set_proxy_menu_item
197
198 (defcfun (tool-item-rebuild-menu "gtk_tool_item_rebuild_menu") :void
199   (tool-item g-object))
200
201 (export 'tool-item-rebuild-menu)
202
203 (defcfun (radio-tool-button-get-group "gtk_radio_tool_button_get_group")
204     (gslist (g-object radio-tool-button) :free-from-foreign nil)
205   (button (g-object radio-tool-button)))