ui/gtk/menu.c

changeset 113
dde28a806552
parent 112
c3f2f16fa4b8
equal deleted inserted replaced
112:c3f2f16fa4b8 113:dde28a806552
282 event->obj = list->object; 282 event->obj = list->object;
283 event->userdata = list->userdata; 283 event->userdata = list->userdata;
284 event->callback = list->callback; 284 event->callback = list->callback;
285 event->value = i - 1; 285 event->value = i - 1;
286 event->customdata = elm; 286 event->customdata = elm;
287 event->customint = UI_EVENT_DATA_LIST_ELM;
287 288
288 g_signal_connect( 289 g_signal_connect(
289 widget, 290 widget,
290 "activate", 291 "activate",
291 G_CALLBACK(ui_menu_event_wrapper), 292 G_CALLBACK(ui_menu_event_wrapper),
307 void ui_menu_event_wrapper(GtkMenuItem *item, UiEventData *event) { 308 void ui_menu_event_wrapper(GtkMenuItem *item, UiEventData *event) {
308 UiEvent evt; 309 UiEvent evt;
309 evt.obj = event->obj; 310 evt.obj = event->obj;
310 evt.window = event->obj->window; 311 evt.window = event->obj->window;
311 evt.document = event->obj->ctx->document; 312 evt.document = event->obj->ctx->document;
313 if(event->customdata) {
314 evt.eventdata = event->customdata;
315 evt.eventdatatype = event->customint;
316 } else {
317 evt.eventdata = uic_get_tmp_eventdata();
318 evt.eventdatatype = uic_get_tmp_eventdata_type();
319 }
312 evt.eventdata = event->customdata; 320 evt.eventdata = event->customdata;
313 evt.intval = event->value; 321 evt.intval = event->value;
314 event->callback(&evt, event->userdata); 322 event->callback(&evt, event->userdata);
323 uic_set_tmp_eventdata(NULL, 0);
315 } 324 }
316 325
317 void ui_menu_event_toggled(GtkCheckMenuItem *ci, UiEventData *event) { 326 void ui_menu_event_toggled(GtkCheckMenuItem *ci, UiEventData *event) {
318 UiEvent evt; 327 UiEvent evt;
319 evt.obj = event->obj; 328 evt.obj = event->obj;
745 754
746 UiEvent evt; 755 UiEvent evt;
747 evt.obj = event->obj; 756 evt.obj = event->obj;
748 evt.window = event->obj->window; 757 evt.window = event->obj->window;
749 evt.document = event->obj->ctx->document; 758 evt.document = event->obj->ctx->document;
750 evt.eventdata = event->customdata; 759 if(event->customdata) {
751 evt.eventdatatype = event->customint; 760 evt.eventdata = event->customdata;
761 evt.eventdatatype = event->customint;
762 } else {
763 evt.eventdata = uic_get_tmp_eventdata();
764 evt.eventdatatype = uic_get_tmp_eventdata_type();
765 }
752 evt.intval = intval; 766 evt.intval = intval;
753 event->callback(&evt, event->userdata); 767 event->callback(&evt, event->userdata);
768 uic_set_tmp_eventdata(NULL, 0);
754 } 769 }
755 770
756 void ui_menu_list_item_activate_event_wrapper(GSimpleAction* self, GVariant* parameter, UiEventData *event) { 771 void ui_menu_list_item_activate_event_wrapper(GSimpleAction* self, GVariant* parameter, UiEventData *event) {
757 int index = g_variant_get_int32(parameter); 772 int index = g_variant_get_int32(parameter);
758 UiVar *var = event->customdata; 773 UiVar *var = event->customdata;

mercurial