@@ -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
6674static 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
7179static 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
7684static 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
8189static 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+
106125static 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
155175static 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
196218static void create_button (lv_obj_t * parent, lv_event_cb_t on_click, const char * text)
0 commit comments