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

129 lines
3.4 KiB
C
Raw Normal View History

2016-06-08 07:25:08 +02:00
/**
2017-10-09 15:21:26 +02:00
* @file lv_indev_proc.h
*
2016-06-08 07:25:08 +02:00
*/
2017-10-10 16:17:23 +02:00
#ifndef LV_INDEV_H
#define LV_INDEV_H
2016-06-08 07:25:08 +02:00
2017-07-09 15:32:49 +02:00
#ifdef __cplusplus
extern "C" {
#endif
2016-06-08 07:25:08 +02:00
/*********************
* INCLUDES
*********************/
#include "lv_obj.h"
2017-10-09 15:21:26 +02:00
#include "../lv_hal/lv_hal_indev.h"
2017-11-30 11:35:33 +01:00
#include "../lv_core/lv_group.h"
2016-06-08 07:25:08 +02:00
/*********************
* DEFINES
*********************/
/**********************
* TYPEDEFS
**********************/
2016-06-08 07:25:08 +02:00
/**********************
* GLOBAL PROTOTYPES
**********************/
/**
2017-11-19 19:28:45 +01:00
* Initialize the display input device subsystem
*/
2017-10-10 16:17:23 +02:00
void lv_indev_init(void);
/**
2017-10-09 15:21:26 +02:00
* 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
*/
2017-10-09 15:21:26 +02:00
lv_indev_t * lv_indev_get_act(void);
/**
2017-11-19 19:28:45 +01:00
* Reset one or all input devices
2017-12-17 01:54:09 +01:00
* @param indev pointer to an input device to reset or NULL to reset all of them
*/
2017-10-09 15:21:26 +02:00
void lv_indev_reset(lv_indev_t * indev);
/**
2017-11-19 19:28:45 +01:00
* Reset the long press state of an input device
* @param indev_proc pointer to an input device
*/
2017-12-17 01:54:09 +01:00
void lv_indev_reset_lpr(lv_indev_t * indev);
2017-10-10 16:17:23 +02:00
/**
* Enable input devices device by type
2017-11-19 19:28:45 +01:00
* @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);
/**
2018-02-24 13:17:39 +01:00
* 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
2017-10-10 16:17:23 +02:00
* @param cur_obj pointer to an object to be used as cursor
*/
2017-11-19 19:28:45 +01:00
void lv_indev_set_cursor(lv_indev_t *indev, lv_obj_t *cur_obj);
2017-10-10 16:17:23 +02:00
#if USE_LV_GROUP
/**
2018-02-24 13:17:39 +01:00
* Set a destination group for a keypad input device (for LV_INDEV_TYPE_KEYPAD)
* @param indev pointer to an input device
2017-11-19 19:28:45 +01:00
* @param group point to a group
*/
2017-11-19 19:28:45 +01:00
void lv_indev_set_group(lv_indev_t *indev, lv_group_t *group);
2017-11-21 14:52:23 +01:00
#endif
2018-02-24 13:17:39 +01:00
/**
* 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, lv_point_t *points);
/**
2018-02-24 13:17:39 +01:00
* Get the last point of an input device (for LV_INDEV_TYPE_POINTER and LV_INDEV_TYPE_BUTTON)
2017-11-19 19:28:45 +01:00
* @param indev pointer to an input device
* @param point pointer to a point to store the result
*/
2017-11-23 21:28:36 +01:00
void lv_indev_get_point(lv_indev_t * indev, lv_point_t * point);
2018-02-24 13:17:39 +01:00
2017-11-19 19:28:45 +01:00
/**
2018-02-24 13:17:39 +01:00
* Check if there is dragging with an input device or not (for LV_INDEV_TYPE_POINTER and LV_INDEV_TYPE_BUTTON)
2017-11-19 19:28:45 +01:00
* @param indev pointer to an input device
* @return true: drag is in progress
*/
2017-11-19 19:28:45 +01:00
bool lv_indev_is_dragging(lv_indev_t * indev);
/**
2018-02-24 13:17:39 +01:00
* Get the vector of dragging of an input device (for LV_INDEV_TYPE_POINTER and LV_INDEV_TYPE_BUTTON)
2017-11-19 19:28:45 +01:00
* @param indev pointer to an input device
* @param point pointer to a point to store the vector
*/
2017-11-23 21:28:36 +01:00
void lv_indev_get_vect(lv_indev_t * indev, lv_point_t * point);
2017-12-11 10:59:33 +01:00
/**
* Get elapsed time since last press
2017-12-11 12:53:58 +01:00
* @param indev pointer to an input device (NULL to get the overall smallest inactivity)
2017-12-11 10:59:33 +01:00
* @return Elapsed ticks (milliseconds) since last press
*/
uint32_t lv_indev_get_inactive_time(lv_indev_t * indev);
/**
* Do nothing until the next release
2017-11-19 19:28:45 +01:00
* @param indev pointer to an input device
*/
2017-11-19 19:28:45 +01:00
void lv_indev_wait_release(lv_indev_t * indev);
2016-06-08 07:25:08 +02:00
/**********************
* MACROS
**********************/
2017-07-09 15:32:49 +02:00
#ifdef __cplusplus
} /* extern "C" */
#endif
2017-07-09 15:32:49 +02:00
2017-10-10 16:17:23 +02:00
#endif /*LV_INDEV_H*/