diff --git a/radio/src/thirdparty/libopenui/src/form.cpp b/radio/src/thirdparty/libopenui/src/form.cpp index 91b2659ee..d5dbfb9a7 100644 --- a/radio/src/thirdparty/libopenui/src/form.cpp +++ b/radio/src/thirdparty/libopenui/src/form.cpp @@ -49,8 +49,11 @@ void FormField::setEditMode(bool newEditMode) void FormField::onClicked() { - setEditMode(!editMode); - invalidate(); + lv_indev_type_t indev_type = lv_indev_get_type(lv_indev_get_act()); + if(indev_type != LV_INDEV_TYPE_POINTER) { + setEditMode(!editMode); + invalidate(); + } } void FormField::onCancel() @@ -63,16 +66,8 @@ void FormField::onCancel() } } -FormGroup::Line::Line(FormGroup* parent, lv_obj_t* obj, - FlexGridLayout* layout) : - Window(parent, obj), layout(layout), group(parent) -{ - construct(); -} - -FormGroup::Line::Line(Window* parent, lv_obj_t* obj, FlexGridLayout* layout, - FormGroup* group) : - Window(parent, obj), layout(layout), group(group) +FormGroup::Line::Line(Window* parent, lv_obj_t* obj, FlexGridLayout* layout) : + Window(parent, obj), layout(layout) { construct(); } diff --git a/radio/src/thirdparty/libopenui/src/form.h b/radio/src/thirdparty/libopenui/src/form.h index 71a09571e..cd61dfe2c 100644 --- a/radio/src/thirdparty/libopenui/src/form.h +++ b/radio/src/thirdparty/libopenui/src/form.h @@ -83,17 +83,16 @@ class FormGroup : public Window public: class Line : public Window { - FlexGridLayout* layout; - FormGroup* group; + FlexGridLayout *layout; + FormGroup *group; void construct(); - + public: - Line(FormGroup *parent, lv_obj_t *obj, FlexGridLayout* layout); - Line(Window *parent, lv_obj_t *obj, FlexGridLayout* layout, FormGroup* group); + Line(Window *parent, lv_obj_t *obj, FlexGridLayout *layout = nullptr); protected: - void addChild(Window* window) override; + void addChild(Window *window) override; }; FormGroup(Window *parent, const rect_t &rect, WindowFlags windowflags = 0, diff --git a/radio/src/thirdparty/libopenui/src/slider.cpp b/radio/src/thirdparty/libopenui/src/slider.cpp index 34807c0a4..fc59bca7b 100644 --- a/radio/src/thirdparty/libopenui/src/slider.cpp +++ b/radio/src/thirdparty/libopenui/src/slider.cpp @@ -22,19 +22,14 @@ #include "LvglWrapper.h" -static void slider_changed_cb(lv_event_t * e) +static void slider_changed_cb(lv_event_t* e) { - lv_obj_t * target = lv_event_get_target(e); + lv_obj_t* target = lv_event_get_target(e); auto code = lv_event_get_code(e); Slider* sl = (Slider*)lv_obj_get_user_data(target); if (code == LV_EVENT_VALUE_CHANGED) { - // if (!lv_slider_is_dragged(target)) { - if (sl != nullptr) - sl->setValue(lv_slider_get_value(target)); - // } - } else if (code == LV_EVENT_PRESSED) { - sl->setEditMode(true); + if (sl != nullptr) sl->setValue(lv_slider_get_value(target)); } } @@ -100,36 +95,9 @@ Slider::Slider(Window* parent, const rect_t& rect, int32_t vmin, int32_t vmax, lv_obj_add_style(lvobj, &style_edit, LV_PART_KNOB | LV_STATE_FOCUSED | LV_STATE_EDITED); } -void Slider::paint(BitmapBuffer * dc) -{ -} int Slider::value(coord_t x) const { return vmin + ((vmax - vmin) * x + (rect.w / 2)) / rect.w; } -#if defined(HARDWARE_KEYS) -void Slider::onEvent(event_t event) -{ - TRACE_WINDOWS("%s received event 0x%X", getWindowDebugString().c_str(), event); - - if (editMode) { - if (event == EVT_ROTARY_RIGHT) { - setValue(_getValue() + ROTARY_ENCODER_SPEED()); - lv_slider_set_value(lvobj, _getValue(), LV_ANIM_OFF); - onKeyPress(); - return; - } - else if (event == EVT_ROTARY_LEFT) { - setValue(_getValue() - ROTARY_ENCODER_SPEED()); - lv_slider_set_value(lvobj, _getValue(), LV_ANIM_OFF); - onKeyPress(); - return; - } else if (event == EVT_KEY_FIRST(KEY_EXIT)) - return; - } - - FormField::onEvent(event); -} -#endif diff --git a/radio/src/thirdparty/libopenui/src/slider.h b/radio/src/thirdparty/libopenui/src/slider.h index d289676d7..353c6f832 100644 --- a/radio/src/thirdparty/libopenui/src/slider.h +++ b/radio/src/thirdparty/libopenui/src/slider.h @@ -33,21 +33,14 @@ class Slider : public FormField void setValue(int value) { - if (_setValue != nullptr) - _setValue(limit(vmin, value, vmax)); + if (_setValue != nullptr) _setValue(limit(vmin, value, vmax)); } - void paint(BitmapBuffer* dc) override; - -#if defined(HARDWARE_KEYS) - void onEvent(event_t event) override; -#endif - protected: - int value(coord_t x) const; int vmin; int vmax; - bool sliding = false; std::function _getValue; std::function _setValue; + + int value(coord_t x) const; };