43 #include <cx/array_list.h> |
43 #include <cx/array_list.h> |
44 |
44 |
45 |
45 |
46 static ui_menu_add_f createMenuItem[] = { |
46 static ui_menu_add_f createMenuItem[] = { |
47 /* UI_MENU */ add_menu_widget, |
47 /* UI_MENU */ add_menu_widget, |
48 /* UI_MENU_SUBMENU */ add_menu_widget, |
|
49 /* UI_MENU_ITEM */ add_menuitem_widget, |
48 /* UI_MENU_ITEM */ add_menuitem_widget, |
50 /* UI_MENU_STOCK_ITEM */ add_menuitem_st_widget, |
|
51 /* UI_MENU_CHECK_ITEM */ add_checkitem_widget, |
49 /* UI_MENU_CHECK_ITEM */ add_checkitem_widget, |
52 /* UI_MENU_CHECK_ITEM_NV */ add_checkitemnv_widget, |
50 /* UI_MENU_RADIO_ITEM */ add_radioitem_widget, |
53 /* UI_MENU_ITEM_LIST */ add_menuitem_list_widget, |
51 /* UI_MENU_ITEM_LIST */ add_menuitem_list_widget, |
54 /* UI_MENU_ITEM_LIST_NV */ NULL, // TODO |
52 /* UI_MENU_CHECKITEM_LIST */ add_menuitem_list_widget, |
|
53 /* UI_MENU_RADIOITEM_LIST */ add_menuitem_list_widget, |
55 /* UI_MENU_SEPARATOR */ add_menuseparator_widget |
54 /* UI_MENU_SEPARATOR */ add_menuseparator_widget |
56 }; |
55 }; |
57 |
56 |
58 // private menu functions |
57 // private menu functions |
59 GtkWidget *ui_create_menubar(UiObject *obj) { |
58 GtkWidget *ui_create_menubar(UiObject *obj) { |
172 GTK_MENU_SHELL(parent), |
173 GTK_MENU_SHELL(parent), |
173 gtk_separator_menu_item_new()); |
174 gtk_separator_menu_item_new()); |
174 } |
175 } |
175 |
176 |
176 void add_checkitem_widget(GtkWidget *p, int index, UiMenuItemI *item, UiObject *obj) { |
177 void add_checkitem_widget(GtkWidget *p, int index, UiMenuItemI *item, UiObject *obj) { |
177 UiCheckItem *ci = (UiCheckItem*)item; |
178 UiMenuCheckItem *ci = (UiMenuCheckItem*)item; |
178 GtkWidget *widget = gtk_check_menu_item_new_with_mnemonic(ci->label); |
179 GtkWidget *widget = gtk_check_menu_item_new_with_mnemonic(ci->label); |
179 gtk_menu_shell_append(GTK_MENU_SHELL(p), widget); |
180 gtk_menu_shell_append(GTK_MENU_SHELL(p), widget); |
180 |
181 |
181 if(ci->callback) { |
182 if(ci->callback) { |
182 UiEventData *event = malloc(sizeof(UiEventData)); |
183 UiEventData *event = malloc(sizeof(UiEventData)); |
196 G_CALLBACK(ui_destroy_userdata), |
197 G_CALLBACK(ui_destroy_userdata), |
197 event); |
198 event); |
198 } |
199 } |
199 } |
200 } |
200 |
201 |
|
202 void add_radioitem_widget(GtkWidget *p, int index, UiMenuItemI *item, UiObject *obj) { |
|
203 // TODO |
|
204 } |
|
205 |
|
206 /* |
201 void add_checkitemnv_widget(GtkWidget *p, int index, UiMenuItemI *item, UiObject *obj) { |
207 void add_checkitemnv_widget(GtkWidget *p, int index, UiMenuItemI *item, UiObject *obj) { |
202 UiCheckItemNV *ci = (UiCheckItemNV*)item; |
208 UiCheckItemNV *ci = (UiCheckItemNV*)item; |
203 GtkWidget *widget = gtk_check_menu_item_new_with_mnemonic(ci->label); |
209 GtkWidget *widget = gtk_check_menu_item_new_with_mnemonic(ci->label); |
204 gtk_menu_shell_append(GTK_MENU_SHELL(p), widget); |
210 gtk_menu_shell_append(GTK_MENU_SHELL(p), widget); |
205 |
211 |