diff options
author | Uros Majstorovic <majstor@majstor.org> | 2022-09-04 18:16:20 +0200 |
---|---|---|
committer | Uros Majstorovic <majstor@majstor.org> | 2022-09-04 18:16:20 +0200 |
commit | ec0caa569b356f186e87c13e50550ca1b807dde6 (patch) | |
tree | ab07671a8aed9c573fe20d2d100be0ab1c5e68a7 /fw/fe310/eos/eve/widget/freew.c | |
parent | 7f8e473ac12191ca4449de96033e2acda07dc4c4 (diff) |
eve support when i2s is running
Diffstat (limited to 'fw/fe310/eos/eve/widget/freew.c')
-rw-r--r-- | fw/fe310/eos/eve/widget/freew.c | 17 |
1 files changed, 14 insertions, 3 deletions
diff --git a/fw/fe310/eos/eve/widget/freew.c b/fw/fe310/eos/eve/widget/freew.c index e7591da..11b8e50 100644 --- a/fw/fe310/eos/eve/widget/freew.c +++ b/fw/fe310/eos/eve/widget/freew.c @@ -33,7 +33,9 @@ uint8_t eve_freew_draw(EVEWidget *_widget, uint8_t tag0) { _widget->tag0 = tag0; _widget->tagN = tag0; + eve_cmd_dl(SAVE_CONTEXT()); widget->_draw(widget); + eve_cmd_dl(RESTORE_CONTEXT()); return _widget->tagN; } @@ -43,15 +45,24 @@ int eve_freew_touch(EVEWidget *_widget, EVETouch *touch, uint16_t evt) { int ret; ret = widget->_touch(widget, touch, evt); - if (ret) eve_widget_set_focus(_widget, NULL); return ret; } -void eve_freew_tag(EVEFreeWidget *widget) { +uint8_t eve_freew_tag(EVEFreeWidget *widget) { EVEWidget *_widget = &widget->w; + uint8_t ret = EVE_NOTAG; if (_widget->tagN != EVE_NOTAG) { - eve_cmd_dl(TAG(_widget->tagN)); + ret = _widget->tagN; + eve_cmd_dl(TAG(ret)); _widget->tagN++; } + + return ret; } + +uint8_t eve_widget_tag_index(EVEFreeWidget *widget, uint8_t tag) { + EVEWidget *_widget = &widget->w; + + return tag - _widget->tag0; +}
\ No newline at end of file |