BigW Consortium Gitlab
Skip to content
Projects
Groups
Snippets
Help
This project
Loading...
Sign in / Register
Toggle navigation
L
lvgl
Project
Overview
Details
Activity
Cycle Analytics
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Charts
Issues
0
Issues
0
List
Board
Labels
Milestones
Merge Requests
0
Merge Requests
0
Registry
Registry
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Charts
Create a new issue
Commits
Issue Boards
Open sidebar
Forest Godfrey
lvgl
Commits
b2f72d3f
Commit
b2f72d3f
authored
Feb 24, 2018
by
Gabor Kiss-Vamosi
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
LV_INDEV_TYPE_BUTTON added
parent
a676590e
Expand all
Hide whitespace changes
Inline
Side-by-side
Showing
3 changed files
with
31 additions
and
16 deletions
+31
-16
lv_indev.c
lv_core/lv_indev.c
+0
-0
lv_indev.h
lv_core/lv_indev.h
+17
-8
lv_hal_indev.h
lv_hal/lv_hal_indev.h
+14
-8
No files found.
lv_core/lv_indev.c
View file @
b2f72d3f
This diff is collapsed.
Click to expand it.
lv_core/lv_indev.h
View file @
b2f72d3f
...
...
@@ -60,40 +60,49 @@ void lv_indev_reset_lpr(lv_indev_t * indev);
void
lv_indev_enable
(
lv_hal_indev_type_t
type
,
bool
enable
);
/**
* Set a cursor for a pointer input device
* @param indev pointer to an input device
(type: 'LV_INDEV_TYPE_POINTER')
* 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
* @param indev pointer to an input device
(type: 'LV_INDEV_TYPE_KEYPAD')
* 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
,
lv_point_t
*
points
);
/**
* Get the last point of an input device
* 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
(
lv_indev_t
*
indev
,
lv_point_t
*
point
);
/**
* Check if there is dragging with an input device or not
* 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
(
lv_indev_t
*
indev
);
/**
* Get the vector of dragging of an input device
* 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
(
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)
...
...
lv_hal/lv_hal_indev.h
View file @
b2f72d3f
...
...
@@ -33,22 +33,24 @@ typedef enum {
LV_INDEV_TYPE_NONE
,
/*Show uninitialized state*/
LV_INDEV_TYPE_POINTER
,
/*Touch pad, mouse, external button*/
LV_INDEV_TYPE_KEYPAD
,
/*Keypad or keyboard*/
LV_INDEV_TYPE_BUTTON
,
/*External (hardware button) which is assinged to a specific point of the screen*/
}
lv_hal_indev_type_t
;
/*States for input devices*/
typedef
enum
{
LV_INDEV_STATE_REL
,
LV_INDEV_STATE_REL
=
0
,
LV_INDEV_STATE_PR
}
lv_indev_state_t
;
/*Data type when an input device is read */
typedef
struct
{
union
{
lv_point_t
point
;
/*For INDEV_TYPE_POINTER*/
uint32_t
key
;
/*For INDEV_TYPE_KEYPAD*/
lv_point_t
point
;
/*For LV_INDEV_TYPE_POINTER the currently pressed point*/
uint32_t
key
;
/*For LV_INDEV_TYPE_KEYPAD the currently pressed key*/
uint32_t
btn
;
/*For LV_INDEV_TYPE_BUTTON the currently pressed button*/
};
lv_indev_state_t
state
;
/*LV_INDEV_EVENT_REL or LV_INDEV_EVENT_PR*/
void
*
user_data
;
/*'lv_indev_drv_t.priv' for this driver*/
lv_indev_state_t
state
;
/*LV_INDEV_EVENT_REL or LV_INDEV_EVENT_PR*/
void
*
user_data
;
/*'lv_indev_drv_t.priv' for this driver*/
}
lv_indev_data_t
;
/*Initialized by the user and registered by 'lv_indev_add()'*/
...
...
@@ -60,10 +62,11 @@ typedef struct {
struct
_lv_obj_t
;
typedef
struct
_lv_indev_state_t
{
/*Run time data of input devices*/
typedef
struct
_lv_indev_proc_t
{
lv_indev_state_t
state
;
union
{
struct
{
/*Pointer data*/
struct
{
/*Pointer
and button
data*/
lv_point_t
act_point
;
lv_point_t
last_point
;
lv_point_t
vect
;
...
...
@@ -94,13 +97,16 @@ typedef struct _lv_indev_state_t {
struct
_lv_obj_t
;
struct
_lv_group_t
;
/*The main input device descriptor with driver, runtime data ('proc') and some additional information*/
typedef
struct
_lv_indev_t
{
lv_indev_drv_t
driver
;
lv_indev_proc_t
proc
;
uint32_t
last_activity_time
;
union
{
struct
_lv_obj_t
*
cursor
;
struct
_lv_obj_t
*
cursor
;
/*Cursor for LV_INPUT_TYPE_POINTER*/
struct
_lv_group_t
*
group
;
/*Keypad destination group*/
lv_point_t
*
btn_points
;
/*Array points assigned to the button ()screen will be pressed here by the buttons*/
};
struct
_lv_indev_t
*
next
;
}
lv_indev_t
;
...
...
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment