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) { |
72 ls = (UiMenu*)ls->item.next; |
71 ls = (UiMenu*)ls->item.next; |
73 } |
72 } |
74 |
73 |
75 return mb; |
74 return mb; |
76 } |
75 } |
77 |
|
78 void add_menu_widget(GtkWidget *parent, int i, UiMenuItemI *item, UiObject *obj) { |
|
79 // TODO |
|
80 } |
|
81 |
|
82 #ifdef DEPRECATED_TOOLKIT |
|
83 |
76 |
84 void add_menu_widget(GtkWidget *parent, int i, UiMenuItemI *item, UiObject *obj) { |
77 void add_menu_widget(GtkWidget *parent, int i, UiMenuItemI *item, UiObject *obj) { |
85 UiMenu *menu = (UiMenu*)item; |
78 UiMenu *menu = (UiMenu*)item; |
86 |
79 |
87 GtkWidget *menu_widget = gtk_menu_new(); |
80 GtkWidget *menu_widget = gtk_menu_new(); |
178 GTK_MENU_SHELL(parent), |
173 GTK_MENU_SHELL(parent), |
179 gtk_separator_menu_item_new()); |
174 gtk_separator_menu_item_new()); |
180 } |
175 } |
181 |
176 |
182 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) { |
183 UiCheckItem *ci = (UiCheckItem*)item; |
178 UiMenuCheckItem *ci = (UiMenuCheckItem*)item; |
184 GtkWidget *widget = gtk_check_menu_item_new_with_mnemonic(ci->label); |
179 GtkWidget *widget = gtk_check_menu_item_new_with_mnemonic(ci->label); |
185 gtk_menu_shell_append(GTK_MENU_SHELL(p), widget); |
180 gtk_menu_shell_append(GTK_MENU_SHELL(p), widget); |
186 |
181 |
187 if(ci->callback) { |
182 if(ci->callback) { |
188 UiEventData *event = malloc(sizeof(UiEventData)); |
183 UiEventData *event = malloc(sizeof(UiEventData)); |
202 G_CALLBACK(ui_destroy_userdata), |
197 G_CALLBACK(ui_destroy_userdata), |
203 event); |
198 event); |
204 } |
199 } |
205 } |
200 } |
206 |
201 |
|
202 void add_radioitem_widget(GtkWidget *p, int index, UiMenuItemI *item, UiObject *obj) { |
|
203 // TODO |
|
204 } |
|
205 |
|
206 /* |
207 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) { |
208 UiCheckItemNV *ci = (UiCheckItemNV*)item; |
208 UiCheckItemNV *ci = (UiCheckItemNV*)item; |
209 GtkWidget *widget = gtk_check_menu_item_new_with_mnemonic(ci->label); |
209 GtkWidget *widget = gtk_check_menu_item_new_with_mnemonic(ci->label); |
210 gtk_menu_shell_append(GTK_MENU_SHELL(p), widget); |
210 gtk_menu_shell_append(GTK_MENU_SHELL(p), widget); |
211 |
211 |