Skip to content

Commit 6648621

Browse files
Feedback from almighty atomique
1 parent 3f5e02e commit 6648621

File tree

1 file changed

+30
-8
lines changed

1 file changed

+30
-8
lines changed

CYD-Klipper/src/ui/panels/move_panel_slider.cpp

Lines changed: 30 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -49,8 +49,16 @@ static void z_line_custom(lv_event_t * e)
4949
lv_create_keyboard_text_entry(z_line_custom_callback, "Set Z position", LV_KEYBOARD_MODE_NUMBER, LV_PCT(75), 6);
5050
}
5151

52-
static void pos_update(lv_obj_t *obj, const char* target_template, float target)
52+
static void pos_update(lv_event_t * e, const char* target_template, float target)
5353
{
54+
lv_obj_t* obj = lv_event_get_target(e);
55+
lv_obj_t* slider = (lv_obj_t*)lv_event_get_user_data(e);
56+
57+
if (lv_slider_is_dragged(slider))
58+
{
59+
return;
60+
}
61+
5462
if (lv_obj_check_type(obj, &lv_label_class))
5563
{
5664
char pos_buff[12];
@@ -65,17 +73,17 @@ static void pos_update(lv_obj_t *obj, const char* target_template, float target)
6573

6674
static void x_pos_update(lv_event_t * e)
6775
{
68-
pos_update(lv_event_get_target(e), "%.1f " LV_SYMBOL_EDIT, get_current_printer_data()->position[0]);
76+
pos_update(e, "%.1f " LV_SYMBOL_EDIT, get_current_printer_data()->position[0]);
6977
}
7078

7179
static void y_pos_update(lv_event_t * e)
7280
{
73-
pos_update(lv_event_get_target(e), "%.1f", get_current_printer_data()->position[1]);
81+
pos_update(e, "%.1f", get_current_printer_data()->position[1]);
7482
}
7583

7684
static void z_pos_update(lv_event_t * e)
7785
{
78-
pos_update(lv_event_get_target(e), "%.2f", get_current_printer_data()->position[2]);
86+
pos_update(e, "%.2f", get_current_printer_data()->position[2]);
7987
}
8088

8189
static void x_slider_update(lv_event_t * e)
@@ -103,6 +111,17 @@ static void disable_steppers_button_click(lv_event_t * e)
103111
current_printer_execute_feature(PrinterFeatures::PrinterFeatureDisableSteppers);
104112
}
105113

114+
static void set_label_slider_position(lv_event_t * e)
115+
{
116+
lv_obj_t* slider = lv_event_get_target(e);
117+
lv_obj_t* label = (lv_obj_t*)lv_event_get_user_data(e);
118+
119+
if (lv_slider_is_dragged(slider))
120+
{
121+
lv_label_set_text_fmt(label, "%d", lv_slider_get_value(slider));
122+
}
123+
}
124+
106125
static void switch_to_params_panel_button_click(lv_event_t * e)
107126
{
108127
lv_obj_t * panel = lv_event_get_target(e);
@@ -131,7 +150,6 @@ static void make_vertical_slider(
131150
lv_obj_add_event_cb(sub_root, on_edit, LV_EVENT_CLICKED, NULL);
132151

133152
lv_obj_t* top_label = lv_label_create(sub_root);
134-
lv_obj_add_event_cb(top_label, position_change, LV_EVENT_MSG_RECEIVED, NULL);
135153
lv_msg_subsribe_obj(DATA_PRINTER_DATA, top_label, NULL);
136154

137155
lv_obj_t* one_below_label = lv_label_create(sub_root);
@@ -145,11 +163,13 @@ static void make_vertical_slider(
145163
lv_obj_set_width(slider, CYD_SCREEN_MIN_BUTTON_WIDTH_PX / 2);
146164
lv_slider_set_range(slider, min, max);
147165
lv_obj_add_event_cb(slider, on_slider_change, LV_EVENT_RELEASED, NULL);
148-
lv_obj_add_event_cb(slider, position_change, LV_EVENT_MSG_RECEIVED, NULL);
166+
lv_obj_add_event_cb(slider, position_change, LV_EVENT_MSG_RECEIVED, slider);
167+
lv_obj_add_event_cb(slider, set_label_slider_position, LV_EVENT_VALUE_CHANGED, top_label);
149168
lv_msg_subsribe_obj(DATA_PRINTER_DATA, slider, NULL);
150169

151170
lv_obj_t* last_label = lv_label_create(root);
152171
lv_label_set_text_fmt(last_label, "%s-", axis);
172+
lv_obj_add_event_cb(top_label, position_change, LV_EVENT_MSG_RECEIVED, slider);
153173
}
154174

155175
static void make_horizontal_slider(
@@ -175,7 +195,6 @@ static void make_horizontal_slider(
175195
lv_label_set_text_fmt(left_label, "%s-", axis);
176196

177197
lv_obj_t* position_label = lv_label_create(upper);
178-
lv_obj_add_event_cb(position_label, position_change, LV_EVENT_MSG_RECEIVED, NULL);
179198
lv_msg_subsribe_obj(DATA_PRINTER_DATA, position_label, NULL);
180199

181200
lv_obj_t* right_label = lv_label_create(upper);
@@ -185,12 +204,15 @@ static void make_horizontal_slider(
185204
lv_obj_set_size(slider, LV_PCT(100), CYD_SCREEN_MIN_BUTTON_HEIGHT_PX / 2);
186205
lv_slider_set_range(slider, min, max);
187206
lv_obj_add_event_cb(slider, on_slider_change, LV_EVENT_RELEASED, NULL);
188-
lv_obj_add_event_cb(slider, position_change, LV_EVENT_MSG_RECEIVED, NULL);
207+
lv_obj_add_event_cb(slider, position_change, LV_EVENT_MSG_RECEIVED, slider);
208+
lv_obj_add_event_cb(slider, set_label_slider_position, LV_EVENT_VALUE_CHANGED, position_label);
189209
lv_msg_subsribe_obj(DATA_PRINTER_DATA, slider, NULL);
190210

191211
lv_obj_set_style_pad_bottom(root, 10, 0);
192212
lv_obj_set_style_pad_bottom(upper, 10, 0);
193213
lv_obj_set_style_pad_column(upper, 10, 0);
214+
215+
lv_obj_add_event_cb(position_label, position_change, LV_EVENT_MSG_RECEIVED, slider);
194216
}
195217

196218
static void create_button(lv_obj_t* parent, lv_event_cb_t on_click, const char* text)

0 commit comments

Comments
 (0)