1
0
mirror of https://github.com/lvgl/lvgl.git synced 2025-01-14 06:42:58 +08:00

feat(example) add obj drag example

This commit is contained in:
Gabor Kiss-Vamosi 2021-05-19 21:54:32 +02:00
parent 9928029a0f
commit 97282e67bd
3 changed files with 41 additions and 1 deletions

View File

@ -91,6 +91,7 @@ void lv_example_meter_4(void);
void lv_example_msgbox_1(void);
void lv_example_obj_1(void);
void lv_example_obj_2(void);
void lv_example_roller_1(void);
void lv_example_roller_2(void);

View File

@ -4,7 +4,13 @@ C
Base objects with custom styles
""""""""""""""""""""""""""""""""
.. lv_example:: lv_ex_widgets/lv_ex_obj/lv_ex_obj_1
.. lv_example:: widgets/obj/lv_example_obj_1
:language: c
Make an object draggable
""""""""""""""""""""""""""""
.. lv_example:: widgets/obj/lv_example_obj_2
:language: c
MicroPython

View File

@ -0,0 +1,33 @@
#include "../../lv_examples.h"
#if LV_BUILD_EXAMPLES
static void drag_event_handler(lv_event_t * e)
{
lv_obj_t * obj = lv_event_get_target(e);
lv_indev_t * indev = lv_indev_get_act();
lv_point_t vect;
lv_indev_get_vect(indev, &vect);
lv_coord_t x = lv_obj_get_x(obj) + vect.x;
lv_coord_t y = lv_obj_get_y(obj) + vect.y;
lv_obj_set_pos(obj, x, y);
}
/**
* Make an object dragable.
*/
void lv_example_obj_2(void)
{
lv_obj_t * obj;
obj = lv_obj_create(lv_scr_act());
lv_obj_set_size(obj, 150, 100);
lv_obj_add_event_cb(obj, drag_event_handler, LV_EVENT_PRESSING, NULL);
lv_obj_t * label = lv_label_create(obj);
lv_label_set_text(label, "Drag me");
lv_obj_center(label);
}
#endif