ui/winui/button.cpp

branch
newapi
changeset 206
7ebc5a747c6f
parent 205
b1ac0dd1d38b
child 213
7e39db525fd9
equal deleted inserted replaced
205:b1ac0dd1d38b 206:7ebc5a747c6f
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);

mercurial