| 134 uic_add_group_widget(obj->ctx, widget, (ui_enablefunc)ui_set_enabled, groups); |
134 uic_add_group_widget(obj->ctx, widget, (ui_enablefunc)ui_set_enabled, groups); |
| 135 cxListFree(groups); |
135 cxListFree(groups); |
| 136 } |
136 } |
| 137 } |
137 } |
| 138 |
138 |
| 139 /* |
|
| 140 void add_menuitem_st_widget( |
|
| 141 GtkWidget *parent, |
|
| 142 int index, |
|
| 143 UiMenuItemI *item, |
|
| 144 UiObject *obj) |
|
| 145 { |
|
| 146 UiStMenuItem *i = (UiStMenuItem*)item; |
|
| 147 |
|
| 148 GtkWidget *widget = gtk_image_menu_item_new_from_stock(i->stockid, obj->ctx->accel_group); |
|
| 149 |
|
| 150 if(i->callback != NULL) { |
|
| 151 UiEventData *event = malloc(sizeof(UiEventData)); |
|
| 152 event->obj = obj; |
|
| 153 event->userdata = i->userdata; |
|
| 154 event->callback = i->callback; |
|
| 155 event->value = 0; |
|
| 156 |
|
| 157 g_signal_connect( |
|
| 158 widget, |
|
| 159 "activate", |
|
| 160 G_CALLBACK(ui_menu_event_wrapper), |
|
| 161 event); |
|
| 162 g_signal_connect( |
|
| 163 widget, |
|
| 164 "destroy", |
|
| 165 G_CALLBACK(ui_destroy_userdata), |
|
| 166 event); |
|
| 167 } |
|
| 168 |
|
| 169 gtk_menu_shell_append(GTK_MENU_SHELL(parent), widget); |
|
| 170 |
|
| 171 if(i->groups) { |
|
| 172 uic_add_group_widget(obj->ctx, widget, (ui_enablefunc)ui_set_enabled, i->groups); |
|
| 173 } |
|
| 174 } |
|
| 175 */ |
|
| 176 |
|
| 177 void add_menuseparator_widget( |
139 void add_menuseparator_widget( |
| 178 GtkWidget *parent, |
140 GtkWidget *parent, |
| 179 int index, |
141 int index, |
| 180 UiMenuItemI *item, |
142 UiMenuItemI *item, |
| 181 UiObject *obj) |
143 UiObject *obj) |
| 212 } |
174 } |
| 213 |
175 |
| 214 void add_radioitem_widget(GtkWidget *p, int index, UiMenuItemI *item, UiObject *obj) { |
176 void add_radioitem_widget(GtkWidget *p, int index, UiMenuItemI *item, UiObject *obj) { |
| 215 // TODO |
177 // TODO |
| 216 } |
178 } |
| 217 |
|
| 218 /* |
|
| 219 void add_checkitemnv_widget(GtkWidget *p, int index, UiMenuItemI *item, UiObject *obj) { |
|
| 220 UiCheckItemNV *ci = (UiCheckItemNV*)item; |
|
| 221 GtkWidget *widget = gtk_check_menu_item_new_with_mnemonic(ci->label); |
|
| 222 gtk_menu_shell_append(GTK_MENU_SHELL(p), widget); |
|
| 223 |
|
| 224 UiVar *var = uic_create_var(obj->ctx, ci->varname, UI_VAR_INTEGER); |
|
| 225 if(var) { |
|
| 226 UiInteger *value = var->value; |
|
| 227 value->obj = widget; |
|
| 228 value->get = ui_checkitem_get; |
|
| 229 value->set = ui_checkitem_set; |
|
| 230 value = 0; |
|
| 231 } else { |
|
| 232 // TODO: error |
|
| 233 } |
|
| 234 } |
|
| 235 */ |
|
| 236 |
179 |
| 237 static void menuitem_list_remove_binding(void *obj) { |
180 static void menuitem_list_remove_binding(void *obj) { |
| 238 UiActiveMenuItemList *ls = obj; |
181 UiActiveMenuItemList *ls = obj; |
| 239 UiList *list = ls->var->value; |
182 UiList *list = ls->var->value; |
| 240 CxList *bindings = list->obj; |
183 CxList *bindings = list->obj; |