small change of main window API
[lttv.git] / ltt / branches / poly / lttv / modules / gui / API / menu.c
1 #include <lttv/menu.h>
2
3
4 inline LttvMenus *lttv_menus_new() {
5 return g_array_new(FALSE, FALSE, sizeof(lttv_menu_closure));
6 }
7
8 /* MD: delete elements of the array also, but don't free pointed addresses
9 * (functions).
10 */
11 inline void lttv_menus_destroy(LttvMenus *h) {
12 g_array_free(h, TRUE);
13 }
14
15 inline void lttv_menus_add(LttvMenus *h, lttv_constructor f, char* menuPath, char* menuText)
16 {
17 lttv_menu_closure c;
18
19 /* if h is null, do nothing, or popup a warning message */
20 if(h == NULL)return;
21
22 c.con = f;
23 c.menuPath = menuPath;
24 c.menuText = menuText;
25 g_array_append_val(h,c);
26 }
27
28 gboolean lttv_menus_remove(LttvMenus *h, lttv_constructor f)
29 {
30 lttv_menu_closure * tmp;
31 gint i;
32 for(i=0;i<h->len;i++){
33 tmp = & g_array_index(h, lttv_menu_closure, i);
34 if(tmp->con == f)break;
35 }
36 if(i<h->len){
37 g_array_remove_index(h, i);
38 return TRUE;
39 }else return FALSE;
40
41 }
42
43 unsigned lttv_menus_number(LttvMenus *h)
44 {
45 return h->len;
46 }
47
48
This page took 0.031487 seconds and 5 git commands to generate.