Lines Matching refs:menu

116 bool lv_menu_item_back_button_is_root(lv_obj_t * menu, lv_obj_t * obj);
178 lv_menu_t * menu = (lv_menu_t *)obj; in lv_menu_refr() local
179 lv_ll_t * history_ll = &(menu->history_ll); in lv_menu_refr()
191 menu->cur_depth--; in lv_menu_refr()
206 lv_menu_t * menu = (lv_menu_t *)obj; in lv_menu_set_page() local
209 if(menu->main_page != NULL) { in lv_menu_set_page()
210 lv_obj_set_parent(menu->main_page, menu->storage); in lv_menu_set_page()
215 lv_ll_t * history_ll = &(menu->history_ll); in lv_menu_set_page()
219 menu->cur_depth++; in lv_menu_set_page()
222 lv_obj_set_parent(page, menu->main); in lv_menu_set_page()
229 menu->main_page = page; in lv_menu_set_page()
232 if(menu->selected_tab != NULL) { in lv_menu_set_page()
233 if(menu->sidebar_page != NULL) { in lv_menu_set_page()
234 lv_obj_add_state(menu->selected_tab, LV_STATE_CHECKED); in lv_menu_set_page()
237 lv_obj_remove_state(menu->selected_tab, LV_STATE_CHECKED); in lv_menu_set_page()
242 if(menu->sidebar_page != NULL) { in lv_menu_set_page()
244 if(menu->sidebar_generated) { in lv_menu_set_page()
245 if(menu->mode_root_back_btn == LV_MENU_ROOT_BACK_BUTTON_ENABLED) { in lv_menu_set_page()
247 lv_obj_remove_flag(menu->sidebar_header_back_btn, LV_OBJ_FLAG_HIDDEN); in lv_menu_set_page()
248 lv_obj_add_flag(menu->sidebar_header_back_btn, LV_OBJ_FLAG_CLICKABLE); in lv_menu_set_page()
251 lv_obj_add_flag(menu->sidebar_header_back_btn, LV_OBJ_FLAG_HIDDEN); in lv_menu_set_page()
252 lv_obj_remove_flag(menu->sidebar_header_back_btn, LV_OBJ_FLAG_CLICKABLE); in lv_menu_set_page()
256 if(menu->cur_depth >= 2) { in lv_menu_set_page()
257 lv_obj_remove_flag(menu->main_header_back_btn, LV_OBJ_FLAG_HIDDEN); in lv_menu_set_page()
258 lv_obj_add_flag(menu->main_header_back_btn, LV_OBJ_FLAG_CLICKABLE); in lv_menu_set_page()
261 lv_obj_add_flag(menu->main_header_back_btn, LV_OBJ_FLAG_HIDDEN); in lv_menu_set_page()
262 lv_obj_remove_flag(menu->main_header_back_btn, LV_OBJ_FLAG_CLICKABLE); in lv_menu_set_page()
267 if(menu->cur_depth >= 2 || menu->mode_root_back_btn == LV_MENU_ROOT_BACK_BUTTON_ENABLED) { in lv_menu_set_page()
268 lv_obj_remove_flag(menu->main_header_back_btn, LV_OBJ_FLAG_HIDDEN); in lv_menu_set_page()
269 lv_obj_add_flag(menu->main_header_back_btn, LV_OBJ_FLAG_CLICKABLE); in lv_menu_set_page()
272 lv_obj_add_flag(menu->main_header_back_btn, LV_OBJ_FLAG_HIDDEN); in lv_menu_set_page()
273 lv_obj_remove_flag(menu->main_header_back_btn, LV_OBJ_FLAG_CLICKABLE); in lv_menu_set_page()
277 lv_obj_send_event((lv_obj_t *)menu, LV_EVENT_VALUE_CHANGED, NULL); in lv_menu_set_page()
286 lv_menu_t * menu = (lv_menu_t *)obj; in lv_menu_set_sidebar_page() local
291 if(!menu->sidebar_generated) { in lv_menu_set_sidebar_page()
300 menu->sidebar = sidebar_cont; in lv_menu_set_sidebar_page()
309 menu->sidebar_header = sidebar_header; in lv_menu_set_sidebar_page()
311 lv_obj_t * sidebar_header_back_btn = lv_button_create(menu->sidebar_header); in lv_menu_set_sidebar_page()
312 … lv_obj_add_event_cb(sidebar_header_back_btn, lv_menu_back_event_cb, LV_EVENT_CLICKED, menu); in lv_menu_set_sidebar_page()
315 menu->sidebar_header_back_btn = sidebar_header_back_btn; in lv_menu_set_sidebar_page()
317 lv_obj_t * sidebar_header_back_icon = lv_image_create(menu->sidebar_header_back_btn); in lv_menu_set_sidebar_page()
320 lv_obj_t * sidebar_header_title = lv_label_create(menu->sidebar_header); in lv_menu_set_sidebar_page()
322 menu->sidebar_header_title = sidebar_header_title; in lv_menu_set_sidebar_page()
324 menu->sidebar_generated = true; in lv_menu_set_sidebar_page()
327 lv_obj_set_parent(page, menu->sidebar); in lv_menu_set_sidebar_page()
333 if(menu->sidebar_generated) { in lv_menu_set_sidebar_page()
334 lv_obj_set_parent(menu->sidebar_page, menu->storage); in lv_menu_set_sidebar_page()
335 lv_obj_delete(menu->sidebar); in lv_menu_set_sidebar_page()
337 menu->sidebar_generated = false; in lv_menu_set_sidebar_page()
341 menu->sidebar_page = page; in lv_menu_set_sidebar_page()
349 lv_menu_t * menu = (lv_menu_t *)obj; in lv_menu_set_mode_header() local
351 if(menu->mode_header != mode) { in lv_menu_set_mode_header()
352 menu->mode_header = mode; in lv_menu_set_mode_header()
354 if(menu->sidebar_generated) lv_menu_refr_sidebar_header_mode(obj); in lv_menu_set_mode_header()
362 lv_menu_t * menu = (lv_menu_t *)obj; in lv_menu_set_mode_root_back_button() local
364 if(menu->mode_root_back_btn != mode) { in lv_menu_set_mode_root_back_button()
365 menu->mode_root_back_btn = mode; in lv_menu_set_mode_root_back_button()
370 void lv_menu_set_load_page_event(lv_obj_t * menu, lv_obj_t * obj, lv_obj_t * page) in lv_menu_set_load_page_event() argument
372 LV_ASSERT_OBJ(menu, MY_CLASS); in lv_menu_set_load_page_event()
391 event_data->menu = menu; in lv_menu_set_load_page_event()
456 lv_menu_t * menu = (lv_menu_t *)obj; in lv_menu_get_cur_main_page() local
457 return menu->main_page; in lv_menu_get_cur_main_page()
464 lv_menu_t * menu = (lv_menu_t *)obj; in lv_menu_get_cur_sidebar_page() local
465 return menu->sidebar_page; in lv_menu_get_cur_sidebar_page()
472 lv_menu_t * menu = (lv_menu_t *)obj; in lv_menu_get_main_header() local
473 return menu->main_header; in lv_menu_get_main_header()
480 lv_menu_t * menu = (lv_menu_t *)obj; in lv_menu_get_main_header_back_button() local
481 return menu->main_header_back_btn; in lv_menu_get_main_header_back_button()
488 lv_menu_t * menu = (lv_menu_t *)obj; in lv_menu_get_sidebar_header() local
489 return menu->sidebar_header; in lv_menu_get_sidebar_header()
496 lv_menu_t * menu = (lv_menu_t *)obj; in lv_menu_get_sidebar_header_back_button() local
497 return menu->sidebar_header_back_btn; in lv_menu_get_sidebar_header_back_button()
500 bool lv_menu_back_button_is_root(lv_obj_t * menu, lv_obj_t * obj) in lv_menu_back_button_is_root() argument
502 LV_ASSERT_OBJ(menu, MY_CLASS); in lv_menu_back_button_is_root()
504 if(obj == ((lv_menu_t *)menu)->sidebar_header_back_btn) { in lv_menu_back_button_is_root()
508 if(obj == ((lv_menu_t *)menu)->main_header_back_btn && ((lv_menu_t *)menu)->prev_depth <= 1) { in lv_menu_back_button_is_root()
519 lv_menu_t * menu = (lv_menu_t *)obj; in lv_menu_clear_history() local
520 lv_ll_t * history_ll = &(menu->history_ll); in lv_menu_clear_history()
524 menu->cur_depth = 0; in lv_menu_clear_history()
539 lv_menu_t * menu = (lv_menu_t *)obj; in lv_menu_constructor() local
541 menu->mode_header = LV_MENU_HEADER_TOP_FIXED; in lv_menu_constructor()
542 menu->mode_root_back_btn = LV_MENU_ROOT_BACK_BUTTON_DISABLED; in lv_menu_constructor()
543 menu->cur_depth = 0; in lv_menu_constructor()
544 menu->prev_depth = 0; in lv_menu_constructor()
545 menu->sidebar_generated = false; in lv_menu_constructor()
547 lv_ll_init(&(menu->history_ll), sizeof(lv_menu_history_t)); in lv_menu_constructor()
549 menu->storage = lv_obj_create(obj); in lv_menu_constructor()
550 lv_obj_add_flag(menu->storage, LV_OBJ_FLAG_HIDDEN); in lv_menu_constructor()
552 menu->sidebar = NULL; in lv_menu_constructor()
553 menu->sidebar_header = NULL; in lv_menu_constructor()
554 menu->sidebar_header_back_btn = NULL; in lv_menu_constructor()
555 menu->sidebar_header_title = NULL; in lv_menu_constructor()
556 menu->sidebar_page = NULL; in lv_menu_constructor()
565 menu->main = main_cont; in lv_menu_constructor()
574 menu->main_header = main_header; in lv_menu_constructor()
577 lv_obj_t * main_header_back_btn = lv_button_create(menu->main_header); in lv_menu_constructor()
578 lv_obj_add_event_cb(main_header_back_btn, lv_menu_back_event_cb, LV_EVENT_CLICKED, menu); in lv_menu_constructor()
581 menu->main_header_back_btn = main_header_back_btn; in lv_menu_constructor()
583 lv_obj_t * main_header_back_icon = lv_image_create(menu->main_header_back_btn); in lv_menu_constructor()
586 lv_obj_t * main_header_title = lv_label_create(menu->main_header); in lv_menu_constructor()
588 menu->main_header_title = main_header_title; in lv_menu_constructor()
590 menu->main_page = NULL; in lv_menu_constructor()
591 menu->selected_tab = NULL; in lv_menu_constructor()
593 lv_obj_add_event_cb(obj, lv_menu_value_changed_event_cb, LV_EVENT_VALUE_CHANGED, menu); in lv_menu_constructor()
603 lv_menu_t * menu = (lv_menu_t *)obj; in lv_menu_destructor() local
604 lv_ll_t * history_ll = &(menu->history_ll); in lv_menu_destructor()
615 lv_menu_t * menu = (lv_menu_t *)lv_obj_get_parent(obj); in lv_menu_page_constructor() local
617 lv_obj_set_parent(obj, ((lv_menu_t *)menu)->storage); in lv_menu_page_constructor()
655 lv_menu_t * menu = (lv_menu_t *)obj; in lv_menu_refr_sidebar_header_mode() local
657 if(menu->sidebar_header == NULL || menu->sidebar_page == NULL) return; in lv_menu_refr_sidebar_header_mode()
659 switch(menu->mode_header) { in lv_menu_refr_sidebar_header_mode()
662 lv_obj_move_to_index(menu->sidebar_header, 0); in lv_menu_refr_sidebar_header_mode()
663 lv_obj_set_flex_grow(menu->sidebar_page, 1); in lv_menu_refr_sidebar_header_mode()
666 lv_obj_move_to_index(menu->sidebar_header, 0); in lv_menu_refr_sidebar_header_mode()
667 lv_obj_set_flex_grow(menu->sidebar_page, 0); in lv_menu_refr_sidebar_header_mode()
670 lv_obj_move_to_index(menu->sidebar_header, 1); in lv_menu_refr_sidebar_header_mode()
671 lv_obj_set_flex_grow(menu->sidebar_page, 1); in lv_menu_refr_sidebar_header_mode()
675 lv_obj_refr_size(menu->sidebar_header); in lv_menu_refr_sidebar_header_mode()
676 lv_obj_refr_size(menu->sidebar_page); in lv_menu_refr_sidebar_header_mode()
678 if(lv_obj_get_content_height(menu->sidebar_header) == 0) { in lv_menu_refr_sidebar_header_mode()
679 lv_obj_add_flag(menu->sidebar_header, LV_OBJ_FLAG_HIDDEN); in lv_menu_refr_sidebar_header_mode()
682 lv_obj_remove_flag(menu->sidebar_header, LV_OBJ_FLAG_HIDDEN); in lv_menu_refr_sidebar_header_mode()
690 lv_menu_t * menu = (lv_menu_t *)obj; in lv_menu_refr_main_header_mode() local
692 if(menu->main_header == NULL || menu->main_page == NULL) return; in lv_menu_refr_main_header_mode()
694 switch(menu->mode_header) { in lv_menu_refr_main_header_mode()
697 lv_obj_move_to_index(menu->main_header, 0); in lv_menu_refr_main_header_mode()
698 lv_obj_set_flex_grow(menu->main_page, 1); in lv_menu_refr_main_header_mode()
701 lv_obj_move_to_index(menu->main_header, 0); in lv_menu_refr_main_header_mode()
702 lv_obj_set_flex_grow(menu->main_page, 0); in lv_menu_refr_main_header_mode()
705 lv_obj_move_to_index(menu->main_header, 1); in lv_menu_refr_main_header_mode()
706 lv_obj_set_flex_grow(menu->main_page, 1); in lv_menu_refr_main_header_mode()
710 lv_obj_refr_size(menu->main_header); in lv_menu_refr_main_header_mode()
711 lv_obj_refr_size(menu->main_page); in lv_menu_refr_main_header_mode()
712 lv_obj_update_layout(menu->main_header); in lv_menu_refr_main_header_mode()
714 if(lv_obj_get_content_height(menu->main_header) == 0) { in lv_menu_refr_main_header_mode()
715 lv_obj_add_flag(menu->main_header, LV_OBJ_FLAG_HIDDEN); in lv_menu_refr_main_header_mode()
718 lv_obj_remove_flag(menu->main_header, LV_OBJ_FLAG_HIDDEN); in lv_menu_refr_main_header_mode()
726 lv_menu_t * menu = (lv_menu_t *)(event_data->menu); in lv_menu_load_page_event_cb() local
729 if(menu->sidebar_page != NULL) { in lv_menu_load_page_event_cb()
735 if(parent == (lv_obj_t *)menu) break; in lv_menu_load_page_event_cb()
736 if(parent == menu->sidebar) { in lv_menu_load_page_event_cb()
745 if(menu->selected_tab != obj && menu->selected_tab != NULL) { in lv_menu_load_page_event_cb()
746 lv_obj_remove_state(menu->selected_tab, LV_STATE_CHECKED); in lv_menu_load_page_event_cb()
749 lv_menu_clear_history((lv_obj_t *)menu); in lv_menu_load_page_event_cb()
751 menu->selected_tab = obj; in lv_menu_load_page_event_cb()
755 lv_menu_set_page((lv_obj_t *)menu, page); in lv_menu_load_page_event_cb()
757 if(lv_group_get_default() != NULL && menu->sidebar_page == NULL) { in lv_menu_load_page_event_cb()
775 lv_menu_t * menu = (lv_menu_t *)lv_event_get_user_data(e); in lv_menu_back_event_cb() local
777 if(!(obj == menu->main_header_back_btn || obj == menu->sidebar_header_back_btn)) return; in lv_menu_back_event_cb()
779 menu->prev_depth = menu->cur_depth; /* Save the previous value for user event handler */ in lv_menu_back_event_cb()
781 if(lv_menu_back_button_is_root((lv_obj_t *)menu, obj)) return; in lv_menu_back_event_cb()
783 lv_ll_t * history_ll = &(menu->history_ll); in lv_menu_back_event_cb()
796 menu->cur_depth--; in lv_menu_back_event_cb()
800 menu->cur_depth--; in lv_menu_back_event_cb()
801 lv_menu_set_page(&(menu->obj), prev_hist->page); in lv_menu_back_event_cb()
811 lv_menu_t * menu = (lv_menu_t *)obj; in lv_menu_value_changed_event_cb() local
814 if(main_page != NULL && menu->main_header_title != NULL) { in lv_menu_value_changed_event_cb()
816 lv_label_set_text(menu->main_header_title, main_page->title); in lv_menu_value_changed_event_cb()
817 lv_obj_remove_flag(menu->main_header_title, LV_OBJ_FLAG_HIDDEN); in lv_menu_value_changed_event_cb()
820 lv_obj_add_flag(menu->main_header_title, LV_OBJ_FLAG_HIDDEN); in lv_menu_value_changed_event_cb()
825 if(sidebar_page != NULL && menu->sidebar_header_title != NULL) { in lv_menu_value_changed_event_cb()
827 lv_label_set_text(menu->sidebar_header_title, sidebar_page->title); in lv_menu_value_changed_event_cb()
828 lv_obj_remove_flag(menu->sidebar_header_title, LV_OBJ_FLAG_HIDDEN); in lv_menu_value_changed_event_cb()
831 lv_obj_add_flag(menu->sidebar_header_title, LV_OBJ_FLAG_HIDDEN); in lv_menu_value_changed_event_cb()