89 |
89 |
90 return widget; |
90 return widget; |
91 } |
91 } |
92 |
92 |
93 |
93 |
94 static void togglebutton_register_checked_observers(ToggleButton button, UiObject* obj, UiVar* var) { |
94 void togglebutton_register_checked_observers(ToggleButton button, UiObject* obj, UiVar* var) { |
95 button.Checked([button, obj, var](IInspectable const& sender, RoutedEventArgs) { |
95 button.Checked([button, obj, var](IInspectable const& sender, RoutedEventArgs) { |
96 UiInteger* i = (UiInteger*)var->value; |
96 UiInteger* i = (UiInteger*)var->value; |
97 UiEvent evt = ui_create_int_event(obj, i->get(i)); |
97 UiEvent evt = ui_create_int_event(obj, i->get(i)); |
98 ui_notify_evt(i->observers, &evt); |
98 ui_notify_evt(i->observers, &evt); |
99 }); |
99 }); |
100 } |
100 } |
101 |
101 |
102 static void togglebutton_register_unchecked_observers(ToggleButton button, UiObject* obj, UiVar* var) { |
102 void togglebutton_register_unchecked_observers(ToggleButton button, UiObject* obj, UiVar* var) { |
103 button.Unchecked([button, obj, var](IInspectable const& sender, RoutedEventArgs) { |
103 button.Unchecked([button, obj, var](IInspectable const& sender, RoutedEventArgs) { |
104 UiInteger* i = (UiInteger*)var->value; |
104 UiInteger* i = (UiInteger*)var->value; |
105 UiEvent evt = ui_create_int_event(obj, i->get(i)); |
105 UiEvent evt = ui_create_int_event(obj, i->get(i)); |
106 ui_notify_evt(i->observers, &evt); |
106 ui_notify_evt(i->observers, &evt); |
107 }); |
107 }); |
108 } |
108 } |
109 |
109 |
110 static void togglebutton_register_callback(ToggleButton button, UiObject *obj, UiToggleArgs& args) { |
110 void togglebutton_register_callback(ToggleButton button, UiObject *obj, UiToggleArgs& args) { |
111 ui_callback callback = args.onchange; |
111 ui_callback callback = args.onchange; |
112 void* cbdata = args.onchangedata; |
112 void* cbdata = args.onchangedata; |
113 if (callback) { |
113 if (callback) { |
114 button.Checked([button, obj, callback, cbdata](IInspectable const& sender, RoutedEventArgs) { |
114 button.Checked([button, obj, callback, cbdata](IInspectable const& sender, RoutedEventArgs) { |
115 UiEvent evt = ui_create_int_event(obj, true); |
115 UiEvent evt = ui_create_int_event(obj, true); |
302 ToggleButton toggleButton = widget->uielement.as<ToggleButton>(); |
302 ToggleButton toggleButton = widget->uielement.as<ToggleButton>(); |
303 toggleButton.IsChecked((bool)value); |
303 toggleButton.IsChecked((bool)value); |
304 integer->value = value; |
304 integer->value = value; |
305 } |
305 } |
306 |
306 |
307 extern "C" int64_t ui_switch_get(UiInteger * integer) { |
307 int64_t ui_switch_get(UiInteger * integer) { |
308 UiWidget* widget = (UiWidget*)integer->obj; |
308 UiWidget* widget = (UiWidget*)integer->obj; |
309 ToggleSwitch toggleButton = widget->uielement.as<ToggleSwitch>(); |
309 ToggleSwitch toggleButton = widget->uielement.as<ToggleSwitch>(); |
310 int val = toggleButton.IsOn(); |
310 int val = toggleButton.IsOn(); |
311 integer->value = val; |
311 integer->value = val; |
312 return val; |
312 return val; |
313 } |
313 } |
314 |
314 |
315 extern "C" void ui_switch_set(UiInteger * integer, int64_t value) { |
315 void ui_switch_set(UiInteger * integer, int64_t value) { |
316 UiWidget* widget = (UiWidget*)integer->obj; |
316 UiWidget* widget = (UiWidget*)integer->obj; |
317 ToggleSwitch toggleButton = widget->uielement.as<ToggleSwitch>(); |
317 ToggleSwitch toggleButton = widget->uielement.as<ToggleSwitch>(); |
318 toggleButton.IsOn((bool)value); |
318 toggleButton.IsOn((bool)value); |
319 integer->value = value; |
319 integer->value = value; |
320 } |
320 } |
321 |
321 |
322 extern "C" int64_t ui_radio_button_get(UiInteger * integer) { |
322 int64_t ui_radio_button_get(UiInteger * integer) { |
323 CxList* list = (CxList*)integer->obj; |
323 CxList* list = (CxList*)integer->obj; |
324 CxIterator i = cxListIterator(list); |
324 CxIterator i = cxListIterator(list); |
325 int selection = -1; |
325 int selection = -1; |
326 cx_foreach(UiWidget*, widget, i) { |
326 cx_foreach(UiWidget*, widget, i) { |
327 ToggleButton button = widget->uielement.as<ToggleButton>(); |
327 ToggleButton button = widget->uielement.as<ToggleButton>(); |
332 } |
332 } |
333 integer->value = selection; |
333 integer->value = selection; |
334 return selection; |
334 return selection; |
335 } |
335 } |
336 |
336 |
337 extern "C" void ui_radio_button_set(UiInteger * integer, int64_t value) { |
337 void ui_radio_button_set(UiInteger * integer, int64_t value) { |
338 CxList* list = (CxList*)integer->obj; |
338 CxList* list = (CxList*)integer->obj; |
339 UiWidget* widget = (UiWidget*)cxListAt(list, value); |
339 UiWidget* widget = (UiWidget*)cxListAt(list, value); |
340 if (widget) { |
340 if (widget) { |
341 ToggleButton button = widget->uielement.as<ToggleButton>(); |
341 ToggleButton button = widget->uielement.as<ToggleButton>(); |
342 button.IsChecked(true); |
342 button.IsChecked(true); |