66 UiWidget* widget = new UiWidget(elm); |
66 UiWidget* widget = new UiWidget(elm); |
67 ui_context_add_widget_destructor(current->ctx, widget); |
67 ui_context_add_widget_destructor(current->ctx, widget); |
68 |
68 |
69 // register callback |
69 // register callback |
70 if (args.onclick) { |
70 if (args.onclick) { |
71 widget->obj = obj; |
71 ui_callback cbfunc = args.onclick; |
72 widget->event_func = (ui_eventfunc)args.onclick; |
72 void* cbdata = args.onclickdata; |
73 widget->event_data = args.onclickdata; |
73 button.Click([cbfunc, cbdata, obj](IInspectable const& sender, RoutedEventArgs) { |
74 button.Click([widget](IInspectable const& sender, RoutedEventArgs) { |
|
75 ui_callback cb = (ui_callback)widget->event_func; |
|
76 |
|
77 UiEvent evt; |
74 UiEvent evt; |
78 evt.obj = (UiObject*)widget->obj; |
75 evt.obj = obj; |
79 evt.window = evt.obj->window; |
76 evt.window = obj->window; |
80 evt.document = evt.obj->ctx->document; |
77 evt.document = obj->ctx->document; |
81 evt.eventdata = nullptr; |
78 evt.eventdata = nullptr; |
82 evt.intval = 0; |
79 evt.intval = 0; |
83 cb(&evt, widget->event_data); |
80 cbfunc(&evt, cbdata); |
84 }); |
81 }); |
85 } |
82 } |
86 |
83 |
87 // add button to current container |
84 // add button to current container |
88 UI_APPLY_LAYOUT1(current, args); |
85 UI_APPLY_LAYOUT1(current, args); |