1 /**
2  * @file lv_menu_private.h
3  *
4  */
5 
6 #ifndef LV_MENU_PRIVATE_H
7 #define LV_MENU_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_menu.h"
19 
20 #if LV_USE_MENU
21 
22 /*********************
23  *      DEFINES
24  *********************/
25 
26 /**********************
27  *      TYPEDEFS
28  **********************/
29 
30 struct _lv_menu_load_page_event_data_t {
31     lv_obj_t * menu;
32     lv_obj_t * page;
33 };
34 
35 struct _lv_menu_history_t {
36     lv_obj_t * page;
37 };
38 
39 struct _lv_menu_t {
40     lv_obj_t obj;
41     lv_obj_t * storage; /**<  a pointer to obj that is the parent of all pages not displayed */
42     lv_obj_t * main;
43     lv_obj_t * main_page;
44     lv_obj_t * main_header;
45     lv_obj_t *
46     main_header_back_btn; /**<  a pointer to obj that on click triggers back btn event handler, can be same as 'main_header' */
47     lv_obj_t * main_header_title;
48     lv_obj_t * sidebar;
49     lv_obj_t * sidebar_page;
50     lv_obj_t * sidebar_header;
51     lv_obj_t *
52     sidebar_header_back_btn; /**<  a pointer to obj that on click triggers back btn event handler, can be same as 'sidebar_header' */
53     lv_obj_t * sidebar_header_title;
54     lv_obj_t * selected_tab;
55     lv_ll_t history_ll;
56     uint8_t cur_depth;
57     uint8_t prev_depth;
58     uint8_t sidebar_generated : 1;
59     lv_menu_mode_header_t mode_header : 3;
60     lv_menu_mode_root_back_button_t mode_root_back_btn : 1;
61 };
62 
63 struct _lv_menu_page_t {
64     lv_obj_t obj;
65     char  *  title;
66     bool     static_title;
67 };
68 
69 
70 /**********************
71  * GLOBAL PROTOTYPES
72  **********************/
73 
74 /**********************
75  *      MACROS
76  **********************/
77 
78 #endif /* LV_USE_MENU */
79 
80 #ifdef __cplusplus
81 } /*extern "C"*/
82 #endif
83 
84 #endif /*LV_MENU_PRIVATE_H*/
85