1
0
mirror of https://github.com/lvgl/lvgl.git synced 2025-01-21 06:53:01 +08:00
lvgl/lv_obj/lv_dispi.h

107 lines
2.3 KiB
C
Raw Normal View History

2016-06-08 07:25:08 +02:00
/**
* @file lv_dispi.h
*
*/
#ifndef LV_DISPI_H
#define LV_DISPI_H
/*********************
* INCLUDES
*********************/
#include "lv_obj.h"
/*********************
* DEFINES
*********************/
/**********************
* TYPEDEFS
**********************/
typedef struct
{
bool pressed;
point_t act_point;
point_t last_point;
point_t vect;
point_t vect_sum;
2016-10-07 11:15:46 +02:00
lv_obj_t * act_obj;
lv_obj_t * last_obj;
2016-06-08 07:25:08 +02:00
uint32_t press_time_stamp;
uint32_t lpr_rep_time_stamp;
2016-06-08 07:25:08 +02:00
/*Flags*/
uint8_t drag_range_out :1;
2016-06-08 07:25:08 +02:00
uint8_t drag_in_prog :1;
uint8_t long_press_sent :1;
uint8_t wait_release :1;
2016-06-08 07:25:08 +02:00
}lv_dispi_t;
typedef enum
{
2017-05-14 18:49:44 +02:00
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, lv_dispi_t * dispi);
2016-06-08 07:25:08 +02:00
/**********************
* GLOBAL PROTOTYPES
**********************/
/**
* Initialize the display input subsystem
*/
2016-06-08 07:25:08 +02:00
void lv_dispi_init(void);
/**
* Get an array with all the display inputs. Contains (INDEV_NUM elements)
* @return pointer to a an lv_dispi_t array.
*/
lv_dispi_t * lv_dispi_get_array(void);
/**
* Reset all display inputs
*/
2016-06-08 07:25:08 +02:00
void lv_dispi_reset(void);
/**
* Reset the long press state of a display input
* @param dispi pointer to a display input
*/
2017-01-09 06:48:02 +01:00
void lv_dispi_reset_lpr(lv_dispi_t * dispi);
/**
* Get the last point on display input
* @param dispi pointer to a display input
* @param point pointer to a point to store the result
*/
void lv_dispi_get_point(lv_dispi_t * dispi, point_t * point);
/**
* Check if there is dragging on display input or not
* @param dispi pointer to a display input
* @return true: drag is in progress
*/
bool lv_dispi_is_dragging(lv_dispi_t * dispi);
/**
* Get the vector of dragging on a display input
* @param dispi pointer to a display input
* @param point pointer to a point to store the vector
*/
void lv_dispi_get_vect(lv_dispi_t * dispi, point_t * point);
/**
* Do nothing until the next release
* @param dispi pointer to a display input
*/
void lv_dispi_wait_release(lv_dispi_t * dispi);
2016-06-08 07:25:08 +02:00
/**********************
* MACROS
**********************/
#endif