Add "up" and "down" events to toggle, switch and checkbox

This commit is contained in:
fvanroie 2021-04-14 23:12:55 +02:00
parent e84b8d2521
commit d1a2fa5a1b

View File

@ -317,38 +317,38 @@ void toggle_event_handler(lv_obj_t* obj, lv_event_t event)
{ {
log_event("toggle", event); log_event("toggle", event);
if(event == LV_EVENT_VALUE_CHANGED) { switch(event) {
bool val = 0; case LV_EVENT_PRESSED:
hasp_update_sleep_state(); // wakeup? hasp_update_sleep_state(); // wakeup?
case LV_EVENT_RELEASED:
switch(obj->user_data.objid) { switch(obj->user_data.objid) {
case LV_HASP_SWITCH: case LV_HASP_SWITCH:
val = lv_switch_get_state(obj); last_value_sent = lv_switch_get_state(obj);
break; break;
case LV_HASP_CHECKBOX: case LV_HASP_CHECKBOX:
val = lv_checkbox_is_checked(obj); last_value_sent = lv_checkbox_is_checked(obj);
break; break;
case LV_HASP_BUTTON: { case LV_HASP_BUTTON: {
val = lv_obj_get_state(obj, LV_BTN_PART_MAIN) & LV_STATE_CHECKED; last_value_sent = lv_obj_get_state(obj, LV_BTN_PART_MAIN) & LV_STATE_CHECKED;
break; break;
}
default:
return;
} }
default: event_object_val_event(obj, event == LV_EVENT_PRESSED ? HASP_EVENT_DOWN : HASP_EVENT_UP, last_value_sent);
return; dispatch_normalized_group_value(obj->user_data.groupid, obj, last_value_sent, HASP_EVENT_OFF,
} HASP_EVENT_ON);
break;
// snprintf_P(property, sizeof(property), PSTR("val")); case LV_EVENT_DELETE:
// attr_out_int(obj, property, val); LOG_VERBOSE(TAG_EVENT, F(D_OBJECT_DELETED));
event_delete_object(obj);
hasp_update_sleep_state(); // wakeup? break;
event_object_val_event(obj, val, val);
dispatch_normalized_group_value(obj->user_data.groupid, obj, val, HASP_EVENT_OFF, HASP_EVENT_ON);
} else if(event == LV_EVENT_DELETE) {
LOG_VERBOSE(TAG_EVENT, F(D_OBJECT_DELETED));
event_delete_object(obj);
} }
} }