1
0
mirror of https://github.com/lvgl/lvgl.git synced 2025-01-21 06:53:01 +08:00
lvgl/lv_obj/lv_indev.h
2017-10-10 16:17:23 +02:00

105 lines
2.4 KiB
C

/**
* @file lv_indev_proc.h
*
*/
#ifndef LV_INDEV_H
#define LV_INDEV_H
#ifdef __cplusplus
extern "C" {
#endif
/*********************
* INCLUDES
*********************/
#include "lv_obj.h"
#include "../lv_hal/lv_hal_indev.h"
/*********************
* DEFINES
*********************/
/**********************
* TYPEDEFS
**********************/
typedef enum
{
LV_ACTION_RES_INV = 0, /*Typically indicates that the object is deleted (become invalid) in the action function*/
LV_ACTION_RES_OK, /*The object is valid (no deleted) after the action*/
}lv_action_res_t;
typedef lv_action_res_t ( * lv_action_t) (struct __LV_OBJ_T * obj);
/**********************
* GLOBAL PROTOTYPES
**********************/
/**
* Initialize the display input subsystem
*/
void lv_indev_init(void);
/**
* Get the currently processed input device. Can be used in action functions too.
* @return pointer to the currently processed input device or NULL if no input device processing right now
*/
lv_indev_t * lv_indev_get_act(void);
/**
* Reset all display inputs
*/
void lv_indev_reset(lv_indev_t * indev);
/**
* Reset the long press state of a display input
* @param indev_proc pointer to a display input
*/
void lv_indev_reset_lpr(lv_indev_t * indev_proc);
/**
* Enable input devices device by type
* @param indev pointer to an input device
* @param cur_obj pointer to an object to be used as cursor
*/
void lv_indev_set_cursor(lv_indev_t * indev, lv_obj_t * cur_obj);
/**
* Get the last point on display input
* @param indev_proc pointer to a display input
* @param point pointer to a point to store the result
*/
void lv_indev_get_point(lv_indev_t * indev_proc, point_t * point);
/**
* Check if there is dragging on display input or not
* @param indev_proc pointer to a display input
* @return true: drag is in progress
*/
bool lv_indev_is_dragging(lv_indev_t * indev_proc);
/**
* Get the vector of dragging on a display input
* @param indev_proc pointer to a display input
* @param point pointer to a point to store the vector
*/
void lv_indev_get_vect(lv_indev_t * indev_proc, point_t * point);
/**
* Do nothing until the next release
* @param indev_proc pointer to a display input
*/
void lv_indev_wait_release(lv_indev_t * indev_proc);
/**********************
* MACROS
**********************/
#ifdef __cplusplus
} /* extern "C" */
#endif
#endif /*LV_INDEV_H*/