/** * @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" #include "../lv_core/lv_group.h" /********************* * DEFINES *********************/ /********************** * TYPEDEFS **********************/ /********************** * GLOBAL PROTOTYPES **********************/ /** * Initialize the display input device 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); /** * Get the type of an input device * @param indev pointer to an input device * @return the type of the input device from `lv_hal_indev_type_t` (`LV_INDEV_TYPE_...`) */ lv_hal_indev_type_t lv_indev_get_type(const lv_indev_t * indev); /** * Reset one or all input devices * @param indev pointer to an input device to reset or NULL to reset all of them */ void lv_indev_reset(lv_indev_t * indev); /** * Reset the long press state of an input device * @param indev_proc pointer to an input device */ void lv_indev_reset_lpr(lv_indev_t * indev); /** * Enable input devices device by type * @param type Input device type * @param enable true: enable this type; false: disable this type */ void lv_indev_enable(lv_hal_indev_type_t type, bool enable); /** * Set a cursor for a pointer input device (for LV_INPUT_TYPE_POINTER and LV_INPUT_TYPE_BUTTON) * @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); #if USE_LV_GROUP /** * Set a destination group for a keypad input device (for LV_INDEV_TYPE_KEYPAD) * @param indev pointer to an input device * @param group point to a group */ void lv_indev_set_group(lv_indev_t *indev, lv_group_t *group); #endif /** * Set the an array of points for LV_INDEV_TYPE_BUTTON. * These points will be assigned to the buttons to press a specific point on the screen * @param indev pointer to an input device * @param group point to a group */ void lv_indev_set_button_points(lv_indev_t *indev, const lv_point_t *points); /** * Set feedback callback for indev. * @param indev pointer to an input device * @param feedback feedback callback */ void lv_indev_set_feedback(lv_indev_t *indev, lv_indev_feedback_t feedback); /** * Get the last point of an input device (for LV_INDEV_TYPE_POINTER and LV_INDEV_TYPE_BUTTON) * @param indev pointer to an input device * @param point pointer to a point to store the result */ void lv_indev_get_point(const lv_indev_t * indev, lv_point_t * point); /** * Get the last key of an input device (for LV_INDEV_TYPE_KEYPAD) * @param indev pointer to an input device * @return the last pressed key (0 on error) */ uint32_t lv_indev_get_key(const lv_indev_t * indev); /** * Check if there is dragging with an input device or not (for LV_INDEV_TYPE_POINTER and LV_INDEV_TYPE_BUTTON) * @param indev pointer to an input device * @return true: drag is in progress */ bool lv_indev_is_dragging(const lv_indev_t * indev); /** * Get the vector of dragging of an input device (for LV_INDEV_TYPE_POINTER and LV_INDEV_TYPE_BUTTON) * @param indev pointer to an input device * @param point pointer to a point to store the vector */ void lv_indev_get_vect(const lv_indev_t * indev, lv_point_t * point); /** * Get elapsed time since last press * @param indev pointer to an input device (NULL to get the overall smallest inactivity) * @return Elapsed ticks (milliseconds) since last press */ uint32_t lv_indev_get_inactive_time(const lv_indev_t * indev); /** * Get feedback callback for indev. * @param indev pointer to an input device * @return feedback callback */ lv_indev_feedback_t lv_indev_get_feedback(const lv_indev_t *indev); /** * Do nothing until the next release * @param indev pointer to an input device */ void lv_indev_wait_release(lv_indev_t * indev); /********************** * MACROS **********************/ #ifdef __cplusplus } /* extern "C" */ #endif #endif /*LV_INDEV_H*/