mirror of
https://github.com/HASwitchPlate/openHASP.git
synced 2025-07-24 11:46:34 +00:00
Add get_obj_type_name
This commit is contained in:
parent
6c69a235c1
commit
b8bbf0c642
@ -1407,12 +1407,14 @@ void hasp_process_obj_attribute(lv_obj_t* obj, const char* attr_p, const char* p
|
||||
update ? (void)(obj->user_data.groupid = (uint8_t)val) : hasp_out_int(obj, attr, obj->user_data.groupid);
|
||||
break; // attribute_found
|
||||
|
||||
case ATTR_OBJ:
|
||||
if(update) LOG_WARNING(TAG_ATTR, F(D_ATTRIBUTE_READ_ONLY), attr_p);
|
||||
hasp_out_str(obj, attr, get_obj_type_name(obj));
|
||||
break; // attribute_found
|
||||
|
||||
case ATTR_OBJID:
|
||||
if(update) {
|
||||
LOG_WARNING(TAG_ATTR, F(D_ATTRIBUTE_READ_ONLY), attr_p);
|
||||
} else {
|
||||
hasp_out_int(obj, attr, obj->user_data.objid);
|
||||
}
|
||||
if(update) LOG_WARNING(TAG_ATTR, F(D_ATTRIBUTE_READ_ONLY), attr_p);
|
||||
hasp_out_int(obj, attr, obj->user_data.objid);
|
||||
break; // attribute_found
|
||||
|
||||
case ATTR_X:
|
||||
|
@ -314,5 +314,6 @@ _HASP_ATTRIBUTE(SCALE_END_LINE_WIDTH, scale_end_line_width, lv_style_int_t)
|
||||
/* hasp user data */
|
||||
#define ATTR_GROUPID 48986
|
||||
#define ATTR_OBJID 41010
|
||||
#define ATTR_OBJ 53623
|
||||
|
||||
#endif
|
||||
|
@ -152,6 +152,20 @@ bool hasp_find_id_from_obj(lv_obj_t* obj, uint8_t* pageid, uint8_t* objid)
|
||||
// }
|
||||
// }
|
||||
|
||||
/**
|
||||
* Get the object type name of an object
|
||||
* @param obj an lv_obj_t* of the object to check its type
|
||||
* @return name of the object type
|
||||
* @note
|
||||
*/
|
||||
const char* get_obj_type_name(lv_obj_t* obj)
|
||||
{
|
||||
lv_obj_type_t list;
|
||||
lv_obj_get_type(obj, &list);
|
||||
const char* objtype = list.type[0];
|
||||
return objtype + 3; // skip lv_
|
||||
}
|
||||
|
||||
/**
|
||||
* Check if an lvgl objecttype name corresponds to a given HASP object ID
|
||||
* @param obj an lv_obj_t* of the object to check its type
|
||||
@ -352,7 +366,8 @@ void generic_event_handler(lv_obj_t* obj, lv_event_t event)
|
||||
|
||||
hasp_update_sleep_state(); // wakeup?
|
||||
dispatch_object_generic_event(obj, eventid); // send object event
|
||||
dispatch_normalized_group_value(obj->user_data.groupid, NORMALIZE(dispatch_get_event_state(eventid), 0, 1), obj);
|
||||
dispatch_normalized_group_value(obj->user_data.groupid, obj, dispatch_get_event_state(eventid), HASP_EVENT_OFF,
|
||||
HASP_EVENT_ON);
|
||||
}
|
||||
|
||||
/**
|
||||
@ -390,7 +405,7 @@ void toggle_event_handler(lv_obj_t* obj, lv_event_t event)
|
||||
|
||||
hasp_update_sleep_state(); // wakeup?
|
||||
dispatch_object_toggle_event(obj, val);
|
||||
dispatch_normalized_group_value(obj->user_data.groupid, NORMALIZE(val, 0, 1), obj);
|
||||
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_HASP, F(D_OBJECT_DELETED));
|
||||
@ -454,7 +469,7 @@ static void selector_event_handler(lv_obj_t* obj, lv_event_t event)
|
||||
// hasp_send_obj_attribute_str(obj, property, buffer);
|
||||
|
||||
dispatch_object_selection_changed(obj, val, buffer);
|
||||
if(max > 0) dispatch_normalized_group_value(obj->user_data.groupid, NORMALIZE(val, 0, max), obj);
|
||||
if(max > 0) dispatch_normalized_group_value(obj->user_data.groupid, obj, val, 0, max);
|
||||
|
||||
} else if(event == LV_EVENT_DELETE) {
|
||||
LOG_VERBOSE(TAG_HASP, F(D_OBJECT_DELETED));
|
||||
@ -500,7 +515,7 @@ void slider_event_handler(lv_obj_t* obj, lv_event_t event)
|
||||
return;
|
||||
}
|
||||
dispatch_object_value_changed(obj, val);
|
||||
dispatch_normalized_group_value(obj->user_data.groupid, NORMALIZE(val, min, max), obj);
|
||||
dispatch_normalized_group_value(obj->user_data.groupid, obj, val, min, max);
|
||||
|
||||
} else if(event == LV_EVENT_DELETE) {
|
||||
LOG_VERBOSE(TAG_HASP, F(D_OBJECT_DELETED));
|
||||
|
@ -66,6 +66,7 @@ lv_obj_t* hasp_find_obj_from_parent_id(lv_obj_t* parent, uint8_t objid);
|
||||
// lv_obj_t * hasp_find_obj_from_page_id(uint8_t pageid, uint8_t objid);
|
||||
bool hasp_find_id_from_obj(lv_obj_t* obj, uint8_t* pageid, uint8_t* objid);
|
||||
// bool check_obj_type_str(const char * lvobjtype, lv_hasp_obj_type_t haspobjtype);
|
||||
const char* get_obj_type_name(lv_obj_t* obj);
|
||||
bool check_obj_type(lv_obj_t* obj, lv_hasp_obj_type_t haspobjtype);
|
||||
void hasp_object_tree(lv_obj_t* parent, uint8_t pageid, uint16_t level);
|
||||
void hasp_object_delete(lv_obj_t* obj);
|
||||
|
Loading…
x
Reference in New Issue
Block a user