1 /**
2  * @file lv_buttonmatrix_private.h
3  *
4  */
5 
6 #ifndef LV_BUTTONMATRIX_PRIVATE_H
7 #define LV_BUTTONMATRIX_PRIVATE_H
8 
9 #ifdef __cplusplus
10 extern "C" {
11 #endif
12 
13 /*********************
14  *      INCLUDES
15  *********************/
16 
17 #include "../../core/lv_obj_private.h"
18 #include "lv_buttonmatrix.h"
19 
20 #if LV_USE_BUTTONMATRIX != 0
21 
22 /*********************
23  *      DEFINES
24  *********************/
25 
26 /**********************
27  *      TYPEDEFS
28  **********************/
29 
30 /** Data of button matrix */
31 struct _lv_buttonmatrix_t {
32     lv_obj_t obj;
33     const char * const * map_p;          /**< Pointer to the current map */
34     lv_area_t * button_areas;            /**< Array of areas of buttons */
35     lv_buttonmatrix_ctrl_t * ctrl_bits;  /**< Array of control bytes */
36     uint32_t btn_cnt;                    /**< Number of button in 'map_p'(Handled by the library) */
37     uint32_t row_cnt;                    /**< Number of rows in 'map_p'(Handled by the library) */
38     uint32_t btn_id_sel;                 /**< Index of the active button (being pressed/released etc) or LV_BUTTONMATRIX_BUTTON_NONE */
39     uint32_t one_check : 1;              /**< Single button toggled at once */
40 };
41 
42 
43 /**********************
44  * GLOBAL PROTOTYPES
45  **********************/
46 
47 /**********************
48  *      MACROS
49  **********************/
50 
51 #endif /* LV_USE_BUTTONMATRIX != 0 */
52 
53 #ifdef __cplusplus
54 } /*extern "C"*/
55 #endif
56 
57 #endif /*LV_BUTTONMATRIX_PRIVATE_H*/
58