mirror of
https://github.com/HASwitchPlate/openHASP.git
synced 2025-07-27 13:16:45 +00:00
Add image_recolor properties
This commit is contained in:
parent
6ea6c8c297
commit
75b65aa523
@ -1240,7 +1240,21 @@ static void hasp_local_style_attr(lv_obj_t* obj, const char* attr_p, uint16_t at
|
|||||||
// return;
|
// return;
|
||||||
|
|
||||||
/* Image attributes */
|
/* Image attributes */
|
||||||
// Todo
|
case ATTR_IMAGE_RECOLOR_OPA:
|
||||||
|
return attribute_image_recolor_opa(obj, part, state, update, attr_p, (lv_opa_t)var);
|
||||||
|
case ATTR_IMAGE_OPA:
|
||||||
|
return attribute_image_opa(obj, part, state, update, attr_p, (lv_opa_t)var);
|
||||||
|
case ATTR_IMAGE_RECOLOR: {
|
||||||
|
if(update) {
|
||||||
|
lv_color32_t c;
|
||||||
|
if(Parser::haspPayloadToColor(payload, c))
|
||||||
|
lv_obj_set_style_local_image_recolor(obj, part, state,
|
||||||
|
lv_color_make(c.ch.red, c.ch.green, c.ch.blue));
|
||||||
|
} else {
|
||||||
|
attr_out_color(obj, attr, lv_obj_get_style_image_recolor(obj, part));
|
||||||
|
}
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
/* Transition attributes */
|
/* Transition attributes */
|
||||||
// Todo
|
// Todo
|
||||||
@ -1253,21 +1267,20 @@ static void hasp_local_style_attr(lv_obj_t* obj, const char* attr_p, uint16_t at
|
|||||||
result = false;
|
result = false;
|
||||||
}
|
}
|
||||||
|
|
||||||
static void hasp_process_arc_attribute(lv_obj_t* obj, const char* attr_p, uint16_t attr_hash, const char* payload,
|
static bool hasp_process_arc_attribute(lv_obj_t* obj, const char* attr, uint16_t attr_hash, const char* payload,
|
||||||
bool update)
|
bool update)
|
||||||
{
|
{
|
||||||
// We already know it's a arc object
|
|
||||||
uint16_t val = atoi(payload);
|
uint16_t val = atoi(payload);
|
||||||
|
|
||||||
char* attr = (char*)attr_p;
|
// We already know it's a arc object
|
||||||
// if(*attr == '.') attr++; // strip leading '.'
|
|
||||||
|
|
||||||
switch(attr_hash) {
|
switch(attr_hash) {
|
||||||
case ATTR_TYPE:
|
case ATTR_TYPE:
|
||||||
return (update) ? lv_arc_set_type(obj, val % 3) : attr_out_int(obj, attr, lv_arc_get_type(obj));
|
(update) ? lv_arc_set_type(obj, val % 3) : attr_out_int(obj, attr, lv_arc_get_type(obj));
|
||||||
|
return true;
|
||||||
|
|
||||||
case ATTR_ROTATION:
|
case ATTR_ROTATION:
|
||||||
return (update) ? lv_arc_set_rotation(obj, val) : attr_out_int(obj, attr, my_arc_get_rotation(obj));
|
(update) ? lv_arc_set_rotation(obj, val) : attr_out_int(obj, attr, my_arc_get_rotation(obj));
|
||||||
|
return true;
|
||||||
|
|
||||||
case ATTR_ADJUSTABLE:
|
case ATTR_ADJUSTABLE:
|
||||||
if(update) {
|
if(update) {
|
||||||
@ -1277,26 +1290,29 @@ static void hasp_process_arc_attribute(lv_obj_t* obj, const char* attr_p, uint16
|
|||||||
} else {
|
} else {
|
||||||
attr_out_int(obj, attr, lv_arc_get_adjustable(obj));
|
attr_out_int(obj, attr, lv_arc_get_adjustable(obj));
|
||||||
}
|
}
|
||||||
return;
|
return true;
|
||||||
|
|
||||||
case ATTR_START_ANGLE:
|
case ATTR_START_ANGLE:
|
||||||
return (update) ? lv_arc_set_bg_start_angle(obj, val)
|
(update) ? lv_arc_set_bg_start_angle(obj, val) : attr_out_int(obj, attr, lv_arc_get_bg_angle_start(obj));
|
||||||
: attr_out_int(obj, attr, lv_arc_get_bg_angle_start(obj));
|
return true;
|
||||||
|
|
||||||
case ATTR_END_ANGLE:
|
case ATTR_END_ANGLE:
|
||||||
return (update) ? lv_arc_set_bg_end_angle(obj, val) : attr_out_int(obj, attr, lv_arc_get_bg_angle_end(obj));
|
(update) ? lv_arc_set_bg_end_angle(obj, val) : attr_out_int(obj, attr, lv_arc_get_bg_angle_end(obj));
|
||||||
|
return true;
|
||||||
|
|
||||||
case ATTR_START_ANGLE1:
|
case ATTR_START_ANGLE1:
|
||||||
return (update) ? lv_arc_set_start_angle(obj, val) : attr_out_int(obj, attr, lv_arc_get_angle_start(obj));
|
(update) ? lv_arc_set_start_angle(obj, val) : attr_out_int(obj, attr, lv_arc_get_angle_start(obj));
|
||||||
|
return true;
|
||||||
|
|
||||||
case ATTR_END_ANGLE1:
|
case ATTR_END_ANGLE1:
|
||||||
return (update) ? lv_arc_set_end_angle(obj, val) : attr_out_int(obj, attr, lv_arc_get_angle_end(obj));
|
(update) ? lv_arc_set_end_angle(obj, val) : attr_out_int(obj, attr, lv_arc_get_angle_end(obj));
|
||||||
|
return true;
|
||||||
}
|
}
|
||||||
|
|
||||||
LOG_WARNING(TAG_ATTR, F(D_ATTRIBUTE_UNKNOWN), attr_p);
|
return false;
|
||||||
}
|
}
|
||||||
|
|
||||||
static void hasp_process_lmeter_attribute(lv_obj_t* obj, const char* attr, uint16_t attr_hash, const char* payload,
|
static bool hasp_process_lmeter_attribute(lv_obj_t* obj, const char* attr, uint16_t attr_hash, const char* payload,
|
||||||
bool update)
|
bool update)
|
||||||
{
|
{
|
||||||
uint16_t val = atoi(payload);
|
uint16_t val = atoi(payload);
|
||||||
@ -1307,24 +1323,27 @@ static void hasp_process_lmeter_attribute(lv_obj_t* obj, const char* attr, uint1
|
|||||||
|
|
||||||
switch(attr_hash) {
|
switch(attr_hash) {
|
||||||
case ATTR_TYPE:
|
case ATTR_TYPE:
|
||||||
return (update) ? lv_linemeter_set_mirror(obj, val != 0)
|
(update) ? lv_linemeter_set_mirror(obj, val != 0) : attr_out_int(obj, attr, lv_linemeter_get_mirror(obj));
|
||||||
: attr_out_int(obj, attr, lv_linemeter_get_mirror(obj));
|
return true;
|
||||||
|
|
||||||
case ATTR_ROTATION:
|
case ATTR_ROTATION:
|
||||||
return (update) ? lv_linemeter_set_angle_offset(obj, val)
|
(update) ? lv_linemeter_set_angle_offset(obj, val)
|
||||||
: attr_out_int(obj, attr, lv_linemeter_get_angle_offset(obj));
|
: attr_out_int(obj, attr, lv_linemeter_get_angle_offset(obj));
|
||||||
|
return true;
|
||||||
|
|
||||||
case ATTR_LINE_COUNT:
|
case ATTR_LINE_COUNT:
|
||||||
return (update) ? lv_linemeter_set_scale(obj, angle, val) : attr_out_int(obj, attr, line_count);
|
(update) ? lv_linemeter_set_scale(obj, angle, val) : attr_out_int(obj, attr, line_count);
|
||||||
|
return true;
|
||||||
|
|
||||||
case ATTR_ANGLE:
|
case ATTR_ANGLE:
|
||||||
return (update) ? lv_linemeter_set_scale(obj, val, line_count) : attr_out_int(obj, attr, angle);
|
(update) ? lv_linemeter_set_scale(obj, val, line_count) : attr_out_int(obj, attr, angle);
|
||||||
|
return true;
|
||||||
}
|
}
|
||||||
|
|
||||||
LOG_WARNING(TAG_ATTR, F(D_ATTRIBUTE_UNKNOWN), attr);
|
return false;
|
||||||
}
|
}
|
||||||
|
|
||||||
static void hasp_process_dropdown_attribute(lv_obj_t* obj, const char* attr, uint16_t attr_hash, const char* payload,
|
static bool hasp_process_dropdown_attribute(lv_obj_t* obj, const char* attr, uint16_t attr_hash, const char* payload,
|
||||||
bool update)
|
bool update)
|
||||||
{
|
{
|
||||||
int16_t intval = atoi(payload);
|
int16_t intval = atoi(payload);
|
||||||
@ -1333,28 +1352,33 @@ static void hasp_process_dropdown_attribute(lv_obj_t* obj, const char* attr, uin
|
|||||||
// We already know it's a gauge object
|
// We already know it's a gauge object
|
||||||
switch(attr_hash) {
|
switch(attr_hash) {
|
||||||
case ATTR_DIRECTION:
|
case ATTR_DIRECTION:
|
||||||
return (update) ? lv_dropdown_set_dir(obj, intval) : attr_out_int(obj, attr, lv_dropdown_get_dir(obj));
|
(update) ? lv_dropdown_set_dir(obj, intval) : attr_out_int(obj, attr, lv_dropdown_get_dir(obj));
|
||||||
|
return true;
|
||||||
|
|
||||||
case ATTR_SYMBOL:
|
case ATTR_SYMBOL:
|
||||||
return (update) ? lv_dropdown_set_symbol(obj, payload)
|
(update) ? lv_dropdown_set_symbol(obj, payload) : attr_out_str(obj, attr, lv_dropdown_get_symbol(obj));
|
||||||
: attr_out_str(obj, attr, lv_dropdown_get_symbol(obj));
|
return true;
|
||||||
|
|
||||||
case ATTR_OPEN:
|
case ATTR_OPEN:
|
||||||
return lv_dropdown_open(obj);
|
lv_dropdown_open(obj);
|
||||||
|
return true;
|
||||||
|
|
||||||
case ATTR_CLOSE:
|
case ATTR_CLOSE:
|
||||||
return lv_dropdown_close(obj);
|
lv_dropdown_close(obj);
|
||||||
|
return true;
|
||||||
|
|
||||||
case ATTR_MAX_HEIGHT:
|
case ATTR_MAX_HEIGHT:
|
||||||
return (update) ? lv_dropdown_set_max_height(obj, intval)
|
(update) ? lv_dropdown_set_max_height(obj, intval)
|
||||||
: attr_out_int(obj, attr, lv_dropdown_get_max_height(obj));
|
: attr_out_int(obj, attr, lv_dropdown_get_max_height(obj));
|
||||||
|
return true;
|
||||||
|
|
||||||
case ATTR_SHOW_SELECTED:
|
case ATTR_SHOW_SELECTED:
|
||||||
return (update) ? lv_dropdown_set_show_selected(obj, val)
|
(update) ? lv_dropdown_set_show_selected(obj, val)
|
||||||
: attr_out_int(obj, attr, lv_dropdown_get_show_selected(obj));
|
: attr_out_int(obj, attr, lv_dropdown_get_show_selected(obj));
|
||||||
|
return true;
|
||||||
}
|
}
|
||||||
|
|
||||||
LOG_WARNING(TAG_ATTR, F(D_ATTRIBUTE_UNKNOWN), attr);
|
return false;
|
||||||
}
|
}
|
||||||
|
|
||||||
static bool hasp_process_gauge_attribute(lv_obj_t* obj, const char* attr, uint16_t attr_hash, const char* payload,
|
static bool hasp_process_gauge_attribute(lv_obj_t* obj, const char* attr, uint16_t attr_hash, const char* payload,
|
||||||
@ -1413,14 +1437,13 @@ static bool hasp_process_gauge_attribute(lv_obj_t* obj, const char* attr, uint16
|
|||||||
return true; // found
|
return true; // found
|
||||||
}
|
}
|
||||||
|
|
||||||
LOG_WARNING(TAG_ATTR, F(D_ATTRIBUTE_UNKNOWN), attr);
|
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
|
|
||||||
// ##################### Common Attributes ########################################################
|
// ##################### Common Attributes ########################################################
|
||||||
|
|
||||||
static inline void hasp_process_page_attributes(lv_obj_t* obj, const char* attr_p, uint16_t attr_hash, uint8_t val,
|
static bool hasp_process_page_attributes(lv_obj_t* obj, const char* attr_p, uint16_t attr_hash, uint8_t val,
|
||||||
bool update)
|
bool update)
|
||||||
{
|
{
|
||||||
uint8_t pageid;
|
uint8_t pageid;
|
||||||
|
|
||||||
@ -1428,18 +1451,19 @@ static inline void hasp_process_page_attributes(lv_obj_t* obj, const char* attr_
|
|||||||
switch(attr_hash) {
|
switch(attr_hash) {
|
||||||
case ATTR_NEXT:
|
case ATTR_NEXT:
|
||||||
update ? haspPages.set_next(pageid, val) : attr_out_int(obj, attr_p, haspPages.get_next(pageid));
|
update ? haspPages.set_next(pageid, val) : attr_out_int(obj, attr_p, haspPages.get_next(pageid));
|
||||||
break;
|
return true;
|
||||||
|
|
||||||
case ATTR_PREV:
|
case ATTR_PREV:
|
||||||
update ? haspPages.set_prev(pageid, val) : attr_out_int(obj, attr_p, haspPages.get_prev(pageid));
|
update ? haspPages.set_prev(pageid, val) : attr_out_int(obj, attr_p, haspPages.get_prev(pageid));
|
||||||
break;
|
return true;
|
||||||
|
|
||||||
// case ATTR_BACK:
|
// case ATTR_BACK:
|
||||||
default:
|
default:
|
||||||
update ? haspPages.set_back(pageid, val) : attr_out_int(obj, attr_p, haspPages.get_back(pageid));
|
update ? haspPages.set_back(pageid, val) : attr_out_int(obj, attr_p, haspPages.get_back(pageid));
|
||||||
break;
|
return true;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
return false;
|
||||||
}
|
}
|
||||||
|
|
||||||
static bool hasp_process_obj_attribute_text(lv_obj_t* obj, const char* attr, const char* payload, bool update)
|
static bool hasp_process_obj_attribute_text(lv_obj_t* obj, const char* attr, const char* payload, bool update)
|
||||||
@ -1484,12 +1508,12 @@ static bool hasp_process_obj_attribute_text(lv_obj_t* obj, const char* attr, con
|
|||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
default:
|
default:
|
||||||
LOG_WARNING(TAG_ATTR, F(D_ATTRIBUTE_UNKNOWN), attr);
|
break;
|
||||||
}
|
}
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
|
|
||||||
static inline bool attr_anim_time(lv_obj_t* obj, const char* attr, uint16_t val, bool update)
|
static bool attr_anim_time(lv_obj_t* obj, const char* attr, uint16_t val, bool update)
|
||||||
{
|
{
|
||||||
{ // Use anim_time for const lv_obj getters
|
{ // Use anim_time for const lv_obj getters
|
||||||
hasp_attr_update16_const_t anim_time[] = {{LV_HASP_BAR, lv_bar_set_anim_time, lv_bar_get_anim_time},
|
hasp_attr_update16_const_t anim_time[] = {{LV_HASP_BAR, lv_bar_set_anim_time, lv_bar_get_anim_time},
|
||||||
@ -1572,7 +1596,7 @@ bool hasp_process_obj_attribute_val(lv_obj_t* obj, const char* attr, int16_t int
|
|||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
|
||||||
static void hasp_process_obj_attribute_range(lv_obj_t* obj, const char* attr, const char* payload, bool update,
|
static bool hasp_process_obj_attribute_range(lv_obj_t* obj, const char* attr, const char* payload, bool update,
|
||||||
bool set_min, bool set_max)
|
bool set_min, bool set_max)
|
||||||
{
|
{
|
||||||
int16_t val = atoi(payload);
|
int16_t val = atoi(payload);
|
||||||
@ -1581,52 +1605,58 @@ static void hasp_process_obj_attribute_range(lv_obj_t* obj, const char* attr, co
|
|||||||
if(obj_check_type(obj, LV_HASP_SLIDER)) {
|
if(obj_check_type(obj, LV_HASP_SLIDER)) {
|
||||||
int16_t min = lv_slider_get_min_value(obj);
|
int16_t min = lv_slider_get_min_value(obj);
|
||||||
int16_t max = lv_slider_get_max_value(obj);
|
int16_t max = lv_slider_get_max_value(obj);
|
||||||
if(update && (set_min ? val : min) == (set_max ? val : max)) return; // prevent setting min=max
|
if(update && (set_min ? val : min) == (set_max ? val : max)) return false; // prevent setting min=max
|
||||||
return update ? lv_slider_set_range(obj, set_min ? val : min, set_max ? val : max)
|
update ? lv_slider_set_range(obj, set_min ? val : min, set_max ? val : max)
|
||||||
: attr_out_int(obj, attr, set_min ? min : max);
|
: attr_out_int(obj, attr, set_min ? min : max);
|
||||||
|
return true;
|
||||||
}
|
}
|
||||||
|
|
||||||
if(obj_check_type(obj, LV_HASP_GAUGE)) {
|
if(obj_check_type(obj, LV_HASP_GAUGE)) {
|
||||||
int32_t min = lv_gauge_get_min_value(obj);
|
int32_t min = lv_gauge_get_min_value(obj);
|
||||||
int32_t max = lv_gauge_get_max_value(obj);
|
int32_t max = lv_gauge_get_max_value(obj);
|
||||||
if(update && (set_min ? val32 : min) == (set_max ? val32 : max)) return; // prevent setting min=max
|
if(update && (set_min ? val32 : min) == (set_max ? val32 : max)) return false; // prevent setting min=max
|
||||||
return update ? lv_gauge_set_range(obj, set_min ? val32 : min, set_max ? val32 : max)
|
update ? lv_gauge_set_range(obj, set_min ? val32 : min, set_max ? val32 : max)
|
||||||
: attr_out_int(obj, attr, set_min ? min : max);
|
: attr_out_int(obj, attr, set_min ? min : max);
|
||||||
|
return true;
|
||||||
}
|
}
|
||||||
|
|
||||||
if(obj_check_type(obj, LV_HASP_ARC)) {
|
if(obj_check_type(obj, LV_HASP_ARC)) {
|
||||||
int16_t min = lv_arc_get_min_value(obj);
|
int16_t min = lv_arc_get_min_value(obj);
|
||||||
int16_t max = lv_arc_get_max_value(obj);
|
int16_t max = lv_arc_get_max_value(obj);
|
||||||
if(update && (set_min ? val : min) == (set_max ? val : max)) return; // prevent setting min=max
|
if(update && (set_min ? val : min) == (set_max ? val : max)) return false; // prevent setting min=max
|
||||||
return update ? lv_arc_set_range(obj, set_min ? val : min, set_max ? val : max)
|
update ? lv_arc_set_range(obj, set_min ? val : min, set_max ? val : max)
|
||||||
: attr_out_int(obj, attr, set_min ? min : max);
|
: attr_out_int(obj, attr, set_min ? min : max);
|
||||||
|
return true;
|
||||||
}
|
}
|
||||||
|
|
||||||
if(obj_check_type(obj, LV_HASP_BAR)) {
|
if(obj_check_type(obj, LV_HASP_BAR)) {
|
||||||
int16_t min = lv_bar_get_min_value(obj);
|
int16_t min = lv_bar_get_min_value(obj);
|
||||||
int16_t max = lv_bar_get_max_value(obj);
|
int16_t max = lv_bar_get_max_value(obj);
|
||||||
if(update && (set_min ? val : min) == (set_max ? val : max)) return; // prevent setting min=max
|
if(update && (set_min ? val : min) == (set_max ? val : max)) return false; // prevent setting min=max
|
||||||
return update ? lv_bar_set_range(obj, set_min ? val : min, set_max ? val : max)
|
update ? lv_bar_set_range(obj, set_min ? val : min, set_max ? val : max)
|
||||||
: attr_out_int(obj, attr, set_min ? min : max);
|
: attr_out_int(obj, attr, set_min ? min : max);
|
||||||
|
return true;
|
||||||
}
|
}
|
||||||
|
|
||||||
if(obj_check_type(obj, LV_HASP_LMETER)) {
|
if(obj_check_type(obj, LV_HASP_LMETER)) {
|
||||||
int32_t min = lv_linemeter_get_min_value(obj);
|
int32_t min = lv_linemeter_get_min_value(obj);
|
||||||
int32_t max = lv_linemeter_get_max_value(obj);
|
int32_t max = lv_linemeter_get_max_value(obj);
|
||||||
if(update && (set_min ? val32 : min) == (set_max ? val32 : max)) return; // prevent setting min=max
|
if(update && (set_min ? val32 : min) == (set_max ? val32 : max)) return false; // prevent setting min=max
|
||||||
return update ? lv_linemeter_set_range(obj, set_min ? val32 : min, set_max ? val32 : max)
|
update ? lv_linemeter_set_range(obj, set_min ? val32 : min, set_max ? val32 : max)
|
||||||
: attr_out_int(obj, attr, set_min ? min : max);
|
: attr_out_int(obj, attr, set_min ? min : max);
|
||||||
|
return true;
|
||||||
}
|
}
|
||||||
|
|
||||||
if(obj_check_type(obj, LV_HASP_CHART)) {
|
if(obj_check_type(obj, LV_HASP_CHART)) {
|
||||||
int16_t min = my_chart_get_min_value(obj);
|
int16_t min = my_chart_get_min_value(obj);
|
||||||
int16_t max = my_chart_get_max_value(obj);
|
int16_t max = my_chart_get_max_value(obj);
|
||||||
if(update && (set_min ? val : min) == (set_max ? val : max)) return; // prevent setting min=max
|
if(update && (set_min ? val : min) == (set_max ? val : max)) return false; // prevent setting min=max
|
||||||
return update ? lv_chart_set_range(obj, set_min ? val : min, set_max ? val : max)
|
update ? lv_chart_set_range(obj, set_min ? val : min, set_max ? val : max)
|
||||||
: attr_out_int(obj, attr, set_min ? min : max);
|
: attr_out_int(obj, attr, set_min ? min : max);
|
||||||
|
return true;
|
||||||
}
|
}
|
||||||
|
|
||||||
LOG_WARNING(TAG_ATTR, F(D_ATTRIBUTE_UNKNOWN), attr);
|
return false;
|
||||||
}
|
}
|
||||||
|
|
||||||
// ##################### Default Attributes ########################################################
|
// ##################### Default Attributes ########################################################
|
||||||
@ -1679,7 +1709,7 @@ void hasp_process_obj_attribute(lv_obj_t* obj, const char* attr_p, const char* p
|
|||||||
return; // attribute_found
|
return; // attribute_found
|
||||||
|
|
||||||
case ATTR_OBJID:
|
case ATTR_OBJID:
|
||||||
if(update) LOG_WARNING(TAG_ATTR, F(D_ATTRIBUTE_READ_ONLY), attr_p);
|
if(update && val != obj->user_data.objid) LOG_WARNING(TAG_ATTR, F(D_ATTRIBUTE_READ_ONLY), attr_p);
|
||||||
attr_out_int(obj, attr, obj->user_data.objid);
|
attr_out_int(obj, attr, obj->user_data.objid);
|
||||||
return; // attribute_found
|
return; // attribute_found
|
||||||
|
|
||||||
@ -1753,12 +1783,12 @@ void hasp_process_obj_attribute(lv_obj_t* obj, const char* attr_p, const char* p
|
|||||||
break; // not found
|
break; // not found
|
||||||
|
|
||||||
case ATTR_MIN:
|
case ATTR_MIN:
|
||||||
hasp_process_obj_attribute_range(obj, attr, payload, update, true, false);
|
if(hasp_process_obj_attribute_range(obj, attr, payload, update, true, false)) return; // attribute_found
|
||||||
return; // attribute_found
|
break;
|
||||||
|
|
||||||
case ATTR_MAX:
|
case ATTR_MAX:
|
||||||
hasp_process_obj_attribute_range(obj, attr, payload, update, false, true);
|
if(hasp_process_obj_attribute_range(obj, attr, payload, update, false, true)) return; // attribute_found
|
||||||
return; // attribute_found
|
break;
|
||||||
|
|
||||||
case ATTR_OPACITY:
|
case ATTR_OPACITY:
|
||||||
update ? lv_obj_set_style_local_opa_scale(obj, LV_OBJ_PART_MAIN, LV_STATE_DEFAULT, val)
|
update ? lv_obj_set_style_local_opa_scale(obj, LV_OBJ_PART_MAIN, LV_STATE_DEFAULT, val)
|
||||||
@ -1774,23 +1804,6 @@ void hasp_process_obj_attribute(lv_obj_t* obj, const char* attr_p, const char* p
|
|||||||
: attr_out_int(obj, attr, obj->user_data.swipeid);
|
: attr_out_int(obj, attr, obj->user_data.swipeid);
|
||||||
return; // attribute_found
|
return; // attribute_found
|
||||||
|
|
||||||
case ATTR_SRC:
|
|
||||||
if(obj_check_type(obj, LV_HASP_IMAGE)) {
|
|
||||||
if(update) {
|
|
||||||
lv_img_cache_invalidate_src(lv_img_get_src(obj));
|
|
||||||
lv_img_set_src(obj, payload);
|
|
||||||
} else {
|
|
||||||
switch(lv_img_src_get_type(obj)) {
|
|
||||||
case LV_IMG_SRC_FILE:
|
|
||||||
return attr_out_str(obj, attr, lv_img_get_file_name(obj));
|
|
||||||
case LV_IMG_SRC_SYMBOL:
|
|
||||||
return attr_out_str(obj, attr, (char*)lv_img_get_src(obj));
|
|
||||||
}
|
|
||||||
}
|
|
||||||
return; // attribute_found
|
|
||||||
}
|
|
||||||
break; // not found
|
|
||||||
|
|
||||||
case ATTR_ANIM_SPEED:
|
case ATTR_ANIM_SPEED:
|
||||||
if(obj_check_type(obj, LV_HASP_LABEL)) {
|
if(obj_check_type(obj, LV_HASP_LABEL)) {
|
||||||
update ? lv_label_set_anim_speed(obj, (uint16_t)val)
|
update ? lv_label_set_anim_speed(obj, (uint16_t)val)
|
||||||
@ -1801,7 +1814,7 @@ void hasp_process_obj_attribute(lv_obj_t* obj, const char* attr_p, const char* p
|
|||||||
|
|
||||||
case ATTR_ANIM_TIME:
|
case ATTR_ANIM_TIME:
|
||||||
if(attr_anim_time(obj, attr, val, update)) return; // attribute_found
|
if(attr_anim_time(obj, attr, val, update)) return; // attribute_found
|
||||||
break; // not found
|
break;
|
||||||
|
|
||||||
case ATTR_ROWS:
|
case ATTR_ROWS:
|
||||||
switch(obj_get_type(obj)) {
|
switch(obj_get_type(obj)) {
|
||||||
@ -1983,45 +1996,6 @@ void hasp_process_obj_attribute(lv_obj_t* obj, const char* attr_p, const char* p
|
|||||||
}
|
}
|
||||||
break; // not found
|
break; // not found
|
||||||
|
|
||||||
case ATTR_CRITICAL_VALUE:
|
|
||||||
case ATTR_ANGLE:
|
|
||||||
case ATTR_LABEL_COUNT:
|
|
||||||
case ATTR_LINE_COUNT:
|
|
||||||
case ATTR_FORMAT:
|
|
||||||
case ATTR_TYPE:
|
|
||||||
case ATTR_ROTATION:
|
|
||||||
case ATTR_ADJUSTABLE:
|
|
||||||
case ATTR_START_ANGLE:
|
|
||||||
case ATTR_END_ANGLE:
|
|
||||||
case ATTR_START_ANGLE1:
|
|
||||||
case ATTR_END_ANGLE1:
|
|
||||||
switch(obj_get_type(obj)) {
|
|
||||||
case LV_HASP_ARC:
|
|
||||||
hasp_process_arc_attribute(obj, attr_p, attr_hash, payload, update);
|
|
||||||
return; // attribute_found
|
|
||||||
case LV_HASP_GAUGE:
|
|
||||||
if(hasp_process_gauge_attribute(obj, attr_p, attr_hash, payload, update)) return; // attribute_found
|
|
||||||
break; // not found
|
|
||||||
case LV_HASP_LMETER:
|
|
||||||
hasp_process_lmeter_attribute(obj, attr_p, attr_hash, payload, update);
|
|
||||||
return; // attribute_found
|
|
||||||
default:
|
|
||||||
break; // not found
|
|
||||||
}
|
|
||||||
break; // not found
|
|
||||||
|
|
||||||
case ATTR_DIRECTION:
|
|
||||||
case ATTR_SYMBOL:
|
|
||||||
case ATTR_OPEN:
|
|
||||||
case ATTR_CLOSE:
|
|
||||||
case ATTR_MAX_HEIGHT:
|
|
||||||
case ATTR_SHOW_SELECTED:
|
|
||||||
if(obj_check_type(obj, LV_HASP_DROPDOWN)) {
|
|
||||||
hasp_process_dropdown_attribute(obj, attr_p, attr_hash, payload, update);
|
|
||||||
return; // attribute_found
|
|
||||||
}
|
|
||||||
break; // not found
|
|
||||||
|
|
||||||
case ATTR_RED: // TODO: remove temp RED
|
case ATTR_RED: // TODO: remove temp RED
|
||||||
if(obj_check_type(obj, LV_HASP_BTNMATRIX)) {
|
if(obj_check_type(obj, LV_HASP_BTNMATRIX)) {
|
||||||
my_btnmatrix_map_clear(obj); // TODO : remove this test property
|
my_btnmatrix_map_clear(obj); // TODO : remove this test property
|
||||||
@ -2053,21 +2027,75 @@ void hasp_process_obj_attribute(lv_obj_t* obj, const char* attr_p, const char* p
|
|||||||
lv_obj_move_background(obj);
|
lv_obj_move_background(obj);
|
||||||
}
|
}
|
||||||
return; // attribute_found
|
return; // attribute_found
|
||||||
|
}
|
||||||
|
|
||||||
case ATTR_NEXT:
|
// Properties by object type
|
||||||
case ATTR_PREV:
|
switch(obj_get_type(obj)) {
|
||||||
case ATTR_BACK:
|
case LV_HASP_IMAGE:
|
||||||
if(obj_check_type(obj, LV_HASP_SCREEN)) {
|
switch(attr_hash) {
|
||||||
hasp_process_page_attributes(obj, attr_p, attr_hash, val, update);
|
case ATTR_OFFSET_X:
|
||||||
|
update ? lv_img_set_offset_x(obj, val) : attr_out_int(obj, attr, lv_img_get_offset_x(obj));
|
||||||
|
return;
|
||||||
|
case ATTR_OFFSET_Y:
|
||||||
|
update ? lv_img_set_offset_y(obj, val) : attr_out_int(obj, attr, lv_img_get_offset_y(obj));
|
||||||
|
return;
|
||||||
|
case ATTR_AUTO_SIZE:
|
||||||
|
update ? lv_img_set_auto_size(obj, !!val) : attr_out_int(obj, attr, lv_img_get_auto_size(obj));
|
||||||
|
return;
|
||||||
|
case ATTR_SRC:
|
||||||
|
if(update) {
|
||||||
|
lv_img_cache_invalidate_src(lv_img_get_src(obj));
|
||||||
|
lv_img_set_src(obj, payload);
|
||||||
|
} else {
|
||||||
|
switch(lv_img_src_get_type(obj)) {
|
||||||
|
case LV_IMG_SRC_FILE:
|
||||||
|
return attr_out_str(obj, attr, lv_img_get_file_name(obj));
|
||||||
|
case LV_IMG_SRC_SYMBOL:
|
||||||
|
return attr_out_str(obj, attr, (char*)lv_img_get_src(obj));
|
||||||
|
}
|
||||||
|
}
|
||||||
|
return; // attribute_found
|
||||||
|
}
|
||||||
|
break; // not found
|
||||||
|
|
||||||
|
case LV_HASP_PAGE:
|
||||||
|
if(hasp_process_page_attributes(obj, attr_p, attr_hash, val, update)) {
|
||||||
return; // attribute_found
|
return; // attribute_found
|
||||||
}
|
}
|
||||||
break; // not found
|
break; // not found
|
||||||
|
|
||||||
default: {
|
case LV_HASP_DROPDOWN:
|
||||||
bool result;
|
if(hasp_process_dropdown_attribute(obj, attr_p, attr_hash, payload, update)) {
|
||||||
hasp_local_style_attr(obj, attr, attr_hash, payload, update, result);
|
return; // attribute_found
|
||||||
if(result) return; // attribute_found
|
}
|
||||||
}
|
break; // not found
|
||||||
|
|
||||||
|
case LV_HASP_ARC:
|
||||||
|
if(hasp_process_arc_attribute(obj, attr_p, attr_hash, payload, update)) {
|
||||||
|
return; // attribute_found
|
||||||
|
}
|
||||||
|
break; // not found
|
||||||
|
|
||||||
|
case LV_HASP_GAUGE:
|
||||||
|
if(hasp_process_gauge_attribute(obj, attr_p, attr_hash, payload, update)) {
|
||||||
|
return; // attribute_found
|
||||||
|
}
|
||||||
|
break; // not found
|
||||||
|
|
||||||
|
case LV_HASP_LMETER:
|
||||||
|
if(hasp_process_lmeter_attribute(obj, attr_p, attr_hash, payload, update)) {
|
||||||
|
return; // attribute_found
|
||||||
|
}
|
||||||
|
break; // not found
|
||||||
|
|
||||||
|
default:
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
|
||||||
|
{
|
||||||
|
bool result;
|
||||||
|
hasp_local_style_attr(obj, attr, attr_hash, payload, update, result);
|
||||||
|
if(result) return; // attribute_found
|
||||||
}
|
}
|
||||||
|
|
||||||
LOG_WARNING(TAG_ATTR, F(D_ATTRIBUTE_UNKNOWN " (%d)"), attr_p, attr_hash);
|
LOG_WARNING(TAG_ATTR, F(D_ATTRIBUTE_UNKNOWN " (%d)"), attr_p, attr_hash);
|
||||||
|
@ -348,6 +348,11 @@ _HASP_ATTRIBUTE(SCALE_END_LINE_WIDTH, scale_end_line_width, lv_style_int_t)
|
|||||||
#define ATTR_MODAL 7405
|
#define ATTR_MODAL 7405
|
||||||
#define ATTR_AUTO_CLOSE 7880
|
#define ATTR_AUTO_CLOSE 7880
|
||||||
|
|
||||||
|
// Image
|
||||||
|
#define ATTR_OFFSET_X 65388
|
||||||
|
#define ATTR_OFFSET_Y 65389
|
||||||
|
#define ATTR_AUTO_SIZE 63729
|
||||||
|
|
||||||
/* hasp user data */
|
/* hasp user data */
|
||||||
#define ATTR_ACTION 42102
|
#define ATTR_ACTION 42102
|
||||||
#define ATTR_TRANSITION 10933
|
#define ATTR_TRANSITION 10933
|
||||||
|
Loading…
x
Reference in New Issue
Block a user