mirror of
https://github.com/CTCaer/hekate
synced 2024-09-07 08:39:00 +00:00
158 lines
4.2 KiB
C
158 lines
4.2 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"
|
||
|
#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*/
|