From 5ba4a9f58880255d47e6eddfba6f309fa80e2537 Mon Sep 17 00:00:00 2001 From: xiaojiazhu <258828110@qq.com> Date: Sat, 14 Oct 2023 15:38:17 +0800 Subject: [PATCH] Merge code of ding. --- .../UIFlowMenuCommonItemEventCallback.c | 411 ++++++++---------- .../UIFlowMenuCommonOptionEventCallback.c | 168 ++++--- 2 files changed, 294 insertions(+), 285 deletions(-) diff --git a/code/application/source/cardv/SrcCode/UIWnd/LVGL_SPORTCAM/UIFlowLVGL/UIFlowMenuCommonItem/UIFlowMenuCommonItemEventCallback.c b/code/application/source/cardv/SrcCode/UIWnd/LVGL_SPORTCAM/UIFlowLVGL/UIFlowMenuCommonItem/UIFlowMenuCommonItemEventCallback.c index 9689ef177..323eff28a 100755 --- a/code/application/source/cardv/SrcCode/UIWnd/LVGL_SPORTCAM/UIFlowLVGL/UIFlowMenuCommonItem/UIFlowMenuCommonItemEventCallback.c +++ b/code/application/source/cardv/SrcCode/UIWnd/LVGL_SPORTCAM/UIFlowLVGL/UIFlowMenuCommonItem/UIFlowMenuCommonItemEventCallback.c @@ -2,14 +2,13 @@ #include "PrjInc.h" #include "UIFlowLVGL/UIFlowLVGL.h" #include "UIApp/Network/UIAppNetwork.h" -#include "UIFlowLVGL/UIFlowMenuCommonItem/MenuQR.h" -#include "UIFlowLVGL_SPORTCAM.h" #include -#define PAGE 6 +#define PAGE 32 +#define PER_PAGE_NUM 5 #define TAB_PAGE 4 -static TM_MENU *g_pItemMenu = 0; +//static TM_MENU *g_pItemMenu = 0; static lv_group_t* gp = NULL; static lv_obj_t* menu_tab = NULL; static lv_obj_t* menu_item = NULL; @@ -22,7 +21,9 @@ static lv_obj_t* container_option3 = NULL; //static lv_obj_t* container_option4 = NULL; //static lv_obj_t* container_option5 = NULL; #endif -//static lv_obj_t* cont_menu_option2 = NULL; + +UINT16 I_en_Index[PAGE] = {}; +UINT16 ItemEN_Num = 0; static void set_indev_keypad_group(lv_obj_t* obj) { @@ -35,65 +36,83 @@ static void set_indev_keypad_group(lv_obj_t* obj) lv_indev_set_group(indev, gp); } -static void MenuCommonItem_SetCurrentMenu(TM_MENU *pMenu) +#if 0 +static void LV_MenuCommonItem_SetCurrentMenu(TM_MENU *pMenu) { g_pItemMenu = pMenu; } -static TM_MENU *MenuCommonItem_GetCurrentMenu(void) +static TM_MENU *LV_MenuCommonItem_GetCurrentMenu(void) { return g_pItemMenu; } +#endif -static void MenuCommonItem_UpdateContent(TM_MENU *pMenu); +static void LV_MenuCommonItem_UpdateContent(TM_MENU *pMenu); +static void LV_MenuItem_OnSelected(lv_obj_t* obj); -static void MenuItem_OnPrev(lv_obj_t* obj) +static void LV_MenuItem_OnPrev(lv_obj_t* obj) { TM_MENU* pMenu = TM_GetMenu(); TM_PAGE *pPage; TM_ITEM *pItem; pPage = &pMenu->pPages[pMenu->SelPage]; +// DBG_DUMP("\r\n %s pMenu Status= %d\r\n", __func__, pMenu->Status); +// DBG_DUMP("\r\n %s pPage->SelItem= %d\r\n", __func__, pPage->SelItem); if (pMenu->Status == TMS_ON_TAB){ - if(pMenu->SelPage == 0){ - DBG_WRN("already foucs on tab !"); + if(pPage->SelItem == 0){ +// DBG_WRN("already foucs on tab !"); + DBG_DUMP("^Galready foucs on tab !"); return; + }else if(pPage->SelItem < pPage->Count){ + CHKPNT; + pMenu->Status = TMS_ON_ITEM; + LV_MenuCommonItem_UpdateContent(pMenu); + lv_plugin_menu_select_item(menu_item, 0); } - pMenu->Status = TMS_ON_ITEM; - lv_plugin_menu_select_item(menu_item, 0); }else{ //if item = 0; up key foucs to tab - if(pMenu->SelPage == 0){ + if(pPage->SelItem == 0){ pMenu->Status = TMS_ON_TAB; pItem = &pPage->pItems[0]; lv_plugin_menu_set_item_string_id(menu_item, 0, LV_PLUGIN_MENU_ITEM_VISIBLE_STATE_NUM, pItem->TextId); lv_plugin_menu_set_item_img_id(menu_item, 0, LV_PLUGIN_MENU_ITEM_VISIBLE_STATE_NUM, pItem->IconId); lv_plugin_menu_set_item_hidden(menu_item, 0, false); +// pPage->SelItem = 255; return; } - - pMenu->SelPage--; + pPage->SelItem--; + LV_MenuCommonItem_UpdateContent(pMenu); lv_plugin_menu_select_prev_item(menu_item); } } -static void MenuItem_OnNext(lv_obj_t* obj) +static void LV_MenuItem_OnNext(lv_obj_t* obj) { TM_MENU* pMenu = TM_GetMenu(); + TM_PAGE *pPage; + pPage = &pMenu->pPages[pMenu->SelPage]; +// DBG_DUMP("\r\n %s pMenu Status= %d\r\n", __func__, pMenu->Status); if (pMenu->Status == TMS_ON_TAB){ pMenu->Status = TMS_ON_ITEM; - pMenu->SelPage = 0; + pPage->SelItem = 0; + LV_MenuCommonItem_UpdateContent(pMenu); lv_plugin_menu_select_item(menu_item, 0); }else{ - pMenu->SelPage++; + pPage->SelItem++; +// DBG_DUMP("\r\n %s pPage->SelItem= %d\r\n", __func__, pMenu->Status); + if(pPage->SelItem >= pPage->Count){ + pPage->SelItem = (pPage->Count - 1); + return; + } + LV_MenuCommonItem_UpdateContent(pMenu); lv_plugin_menu_select_next_item(menu_item); } +// LV_MenuCommonItem_UpdateContent(pMenu); } - -#if 1 - -static void MenuItem_OnUp(lv_obj_t* obj) +static void LV_MenuItem_OnUp(lv_obj_t* obj) { TM_MENU* pMenu = TM_GetMenu(); @@ -101,12 +120,14 @@ static void MenuItem_OnUp(lv_obj_t* obj) { TM_ShiftTab(pMenu, -1); lv_plugin_menu_select_prev_item(menu_tab); - MenuCommonItem_UpdateContent(pMenu); - } + LV_MenuCommonItem_UpdateContent(pMenu); + }else{ + lv_plugin_scr_close(obj, NULL); + } } -static void MenuItem_OnDown(lv_obj_t* obj) +static void LV_MenuItem_OnDown(lv_obj_t* obj) { TM_MENU* pMenu = TM_GetMenu(); @@ -115,25 +136,26 @@ static void MenuItem_OnDown(lv_obj_t* obj) { TM_ShiftTab(pMenu, +1); lv_plugin_menu_select_next_item(menu_tab); - MenuCommonItem_UpdateContent(pMenu); - } + LV_MenuCommonItem_UpdateContent(pMenu); + }else{ + LV_MenuItem_OnSelected(obj); + } } -#endif -static void MenuItem_OnSelected(lv_obj_t* obj) +static void LV_MenuItem_OnSelected(lv_obj_t* obj) { TM_MENU *pMenu = TM_GetMenu(); TM_PAGE *pPage; TM_ITEM *pItem; // TM_MENU *pNextMenu; - + +// DBG_DUMP("\r\n %s pMenu Status= %d\r\n", __func__, pMenu->Status); + pPage = &pMenu->pPages[pMenu->SelPage]; if (pMenu->Status == TMS_ON_ITEM) { - pPage = &pMenu->pPages[pMenu->SelPage]; -// pPage->SelItem = UxMenu_GetData(&MenuCommonItem_MenuCtrl, MNU_CURITM); // update selected item of tab menu - pItem = &pPage->pItems[pPage->SelItem]; - + pItem = &pPage->pItems[pPage->SelItem]; +// DBG_DUMP("\r\n %s pPage SelItem= %d\r\n", __func__, pPage->SelItem); //#NT#2016/09/20#Bob Huang -begin //#NT#Support HDMI Display with 3DNR Out //Only support FHD p30 size, cannot change size when 3DNR Out enabled @@ -144,7 +166,6 @@ static void MenuItem_OnSelected(lv_obj_t* obj) } #endif //#NT#2016/09/20#Bob Huang -end - if (pItem->Count != 0 && pItem->SysFlag != 0) // standard process { if (TM_MENU_CALLBACK(pMenu, TMM_ENTER_OPTION, MAKE_LONG(pItem->ItemId, 0)) == TMF_PASS_MESSAGE) @@ -163,101 +184,19 @@ static void MenuItem_OnSelected(lv_obj_t* obj) pMenu->Status = TMS_ON_CUSTOM; TM_ITEM_CALLBACK(pItem, 0, 0); // execute custom menu flow } - } - - -#if 0 - pMenu = TM_GetMenu(); - pPage = &pMenu->pPages[pMenu->SelPage]; - pItem = &pPage->pItems[pPage->SelItem]; - - - if (pItem->Count != 0 && pItem->SysFlag != 0 && pItem->ItemId != IDM_COMMON_CLOUD) { -#if 0 - TM_OPTION *pOption; - UINT32 SelOption = 0 ; - SelOption = SysGetFlag(pItem->SysFlag); - - SelOption++; - if (SelOption >= pItem->Count) { - SelOption = 0; - } - - SysSetFlag(pItem->SysFlag, SelOption); - - // toggle icon's string - pOption = &pItem->pOptions[SelOption]; - - lv_plugin_label_set_text(label_menu_option, pOption->TextId); - lv_plugin_label_update_font(label_menu_option, LV_OBJ_PART_MAIN); - - TM_MENU_CALLBACK(pMenu, TMM_CONFIRM_OPTION, MAKE_LONG(pItem->ItemId, SelOption)); -#else -// if (pItem->SysFlag == FL_COMMON_MENU) { -#if (PHOTO_MODE == ENABLE) - // Enter 2nd level menu and pop up current mode's menu lists - if (System_GetState(SYS_STATE_CURRMODE) == PRIMARY_MODE_PHOTO) { - pNextMenu = &gPhotoMenu; -#if (PLAY_MODE == ENABLE) - } else if (System_GetState(SYS_STATE_CURRMODE) == PRIMARY_MODE_PLAYBACK) { - pNextMenu = &gPlaybackMenu; -#endif - } else { - pNextMenu = &gMovieMenu; - } -#else - pNextMenu = &gMovieMenu; -#endif - - lv_plugin_scr_open(UIFlowMenuCommonOption, pNextMenu); - -// } -#endif - } else { - if (pItem->SysFlag == FL_COMMON_MODE) { - // Enter 2nd level menu and pop up various memu item. - lv_plugin_scr_open(UIFlowMenuCommonOption, &gModeMenu); - - } else if (pItem->SysFlag == FL_COMMON_MENU) { -#if (PHOTO_MODE == ENABLE) - // Enter 2nd level menu and pop up current mode's menu lists - if (System_GetState(SYS_STATE_CURRMODE) == PRIMARY_MODE_PHOTO) { - pNextMenu = &gPhotoMenu; -#if (PLAY_MODE == ENABLE) - } else if (System_GetState(SYS_STATE_CURRMODE) == PRIMARY_MODE_PLAYBACK) { - pNextMenu = &gPlaybackMenu; -#endif - } else { - pNextMenu = &gMovieMenu; - } -#else - pNextMenu = &gMovieMenu; -#endif - - lv_plugin_scr_open(UIFlowMenuCommonOption, pNextMenu); - - } else if (pItem->SysFlag == FL_COMMON_SETUP) { - // Enter 2nd level menu and pop up various memu item. - lv_plugin_scr_open(UIFlowMenuCommonOption, &gSetupMenu); - - } else if (pItem->SysFlag == FL_COMMON_EXT_SETUP) { - #if _TODO - // Enter 2nd level menu and pop up various memu item. - //Ux_OpenWindow(&MenuCommonOptionCtrl, 1, &gExtSetupMenu); - #endif - } else { - DBG_ERR("not supp %d\r\n", pItem->SysFlag); - - } + }else if(pMenu->Status == TMS_ON_TAB){ + pItem = &pPage->pItems[pPage->SelItem]; + lv_plugin_menu_set_item_string_id(menu_item, 0, LV_PLUGIN_MENU_ITEM_VISIBLE_STATE_NUM, pItem->TextId); +// lv_plugin_menu_set_item_img_id(menu_item, 0, LV_PLUGIN_MENU_ITEM_VISIBLE_STATE_NUM, pItem->IconId); + lv_plugin_menu_set_item_img_id(menu_item, 0, LV_PLUGIN_MENU_ITEM_VISIBLE_STATE_NUM, LV_PLUGIN_IMG_ID_SF_MENU_RELEASE); + lv_plugin_menu_set_item_hidden(menu_item, 0, false); } -#endif + + } -void MenuItem_OnClose(lv_obj_t* obj) +void LV_MenuItem_OnClose(lv_obj_t* obj) { - Input_SetKeyMask(KEY_PRESS, FLGKEY_KEY_MASK_DEFAULT); - Input_SetKeyMask(KEY_RELEASE, FLGKEY_KEY_MASK_DEFAULT); - Input_SetKeyMask(KEY_CONTINUE, FLGKEY_KEY_MASK_DEFAULT); #if (MOVIE_MODE==ENABLE) //#NT#2016/08/19#Lincy Lin#[0106935] -begin //#NT# Support change WDR, SHDR, RSC setting will change mode after exit menu @@ -280,7 +219,7 @@ void MenuItem_OnClose(lv_obj_t* obj) } -void MenuItem_OnOpen(lv_obj_t* obj) +void LV_MenuItem_OnOpen(lv_obj_t* obj) { DBG_DUMP("MenuItem_OnOpen\r\n"); TM_MENU *pMenu = NULL; @@ -301,8 +240,16 @@ void MenuItem_OnOpen(lv_obj_t* obj) //pNextMenu = &gCommonMenu;//use for codebase sportcam/LVGL UI or touch pCurMenu = &gMovieMenu; #endif - pCurMenu = &gGeneralMenu; + // pCurMenu = QR_UI //replace to setup menu dynamically + //pCurMenu->pPages[0]= gMovieMenu.pPages[0]; //= General_UI +#if 0 + pCurMenu->pPages[1]= gMovieMenu.pPages[0]; //= General_UI + pCurMenu->pPages[2]= gPhotoMenu.pPages[0]; //= Send_UI + pCurMenu->pPages[3]= gPlaybackMenu.pPages[0]; //= QR_UI + pCurMenu->pPages[4]= gSetupMenu.pPages[0]; //= QR_UI +#endif + pCurMenu->pPages[0]= gSFMoreMenu.pPages[0]; //= QR_UI pCurMenu->pPages[1]= gPhotoMenu.pPages[0]; //= General_UI pCurMenu->pPages[2]= gPlaybackMenu.pPages[0]; //= Send_UI pCurMenu->pPages[3]= gSetupMenu.pPages[0]; //= QR_UI @@ -324,37 +271,43 @@ void MenuItem_OnOpen(lv_obj_t* obj) lv_plugin_menu_init_items(menu_item, PAGE); } // lv_plugin_menu_select_item(menu_item, 0); - MenuCommonItem_UpdateContent(pMenu); + LV_MenuCommonItem_UpdateContent(pMenu); } -static void MenuCommonItem_UpdateContent(TM_MENU *pMenu) +static void LV_MenuCommonItem_UpdateContent(TM_MENU *pMenu) { TM_PAGE *pPage; TM_ITEM *pItem; TM_OPTION *pOption; - UINT32 i = 0; + UINT32 i = 0; + UINT16 Sel_item = 0; +// UINT16 Sel_page = 0; UINT16 itemIndex = 0; BOOL u_hiddenitem = false; BOOL u_ItemSel = false; lv_plugin_res_id img_id = LV_PLUGIN_IMG_ID_ICON_REC_TRANSPAENT; // UINT32 uiIcon[TAB_PAGE]; // 2 pages per menu // UINT32 uiText[TAB_PAGE]; // 2 pages per menu +// UINT16 SelOption = 0; +// TM_ITEM u_Item[PAGE]; +//#define LV_PLUGIN_STRING_ID_STRID_FRONT_3840X2160P30 522 - pPage = &pMenu->pPages[pMenu->SelPage]; - pItem = &pPage->pItems[pPage->SelItem]; #if 0 DBG_DUMP("\r\n %s pMenu Status= %d\r\n", __func__, pMenu->Status); DBG_DUMP("\r\n %s pMenu SelPage= %d\r\n", __func__, pMenu->SelPage); DBG_DUMP("\r\n %s pMenu FirstPage= %d\r\n", __func__, pMenu->FirstPage); DBG_DUMP("\r\n %s pMenu Count= %d\r\n", __func__, pMenu->Count); - - DBG_DUMP("\r\n %s pPage TextId= %d\r\n", __func__, pPage->TextId); - DBG_DUMP("\r\n %s pPage IconId= %d\r\n", __func__, pPage->IconId); - DBG_DUMP("\r\n %s pPage IconIdX= %d\r\n", __func__, pPage->IconIdX); - DBG_DUMP("\r\n %s pPage SelItem= %d\r\n", __func__, pPage->SelItem); - DBG_DUMP("\r\n %s pPage FirstItem= %d\r\n", __func__, pPage->FirstItem); - DBG_DUMP("\r\n %s pPage Count= %d\r\n", __func__, pPage->Count); +#endif + pPage = &pMenu->pPages[pMenu->SelPage]; + pItem = &pPage->pItems[pPage->SelItem]; +#if 1 +// DBG_DUMP("\r\n %s pPage TextId= %d\r\n", __func__, pPage->TextId); +// DBG_DUMP("\r\n %s pPage IconId= %d\r\n", __func__, pPage->IconId); +// DBG_DUMP("\r\n %s pPage IconIdX= %d\r\n", __func__, pPage->IconIdX); +// DBG_DUMP("\r\n %s pPage SelItem= %d\r\n", __func__, pPage->SelItem); +// DBG_DUMP("\r\n %s pPage FirstItem= %d\r\n", __func__, pPage->FirstItem); +// DBG_DUMP("\r\n %s pPage Count= %d\r\n", __func__, pPage->Count); #endif #if 0 if (pMenu->Status == TMS_ON_TAB) @@ -379,24 +332,52 @@ static void MenuCommonItem_UpdateContent(TM_MENU *pMenu) } } #endif + if(pPage->SelItem == 0){ + Sel_item = 0; + }else{ + if(pPage->SelItem / PER_PAGE_NUM == 0){ + Sel_item = 0; + }else{ + Sel_item = (pPage->SelItem / PER_PAGE_NUM) ; + } + } + itemIndex = (Sel_item * PER_PAGE_NUM); //draw item form startIndex - for (i = 0; i < PAGE; i++) { + for (i = 0; i < PER_PAGE_NUM; i++) { //check item if disable TM_CheckItemStatus(pMenu, &itemIndex, TRUE); - if ((itemIndex == pPage->Count) && (i < PAGE)) { +// DBG_DUMP("\r\n %s pPage SelItem= %d\r\n", __func__, pPage->SelItem); + pItem = &pPage->pItems[itemIndex]; +// DBG_DUMP("\r\n %s itemIndex= %d\r\n", __func__, itemIndex); +// DBG_DUMP("\r\n %s for page = %d\r\n", __func__, pItem->TextId); +// u_Item[i] = pPage->pItems[i]; +// Sel_page = pPage->SelItem; + if ((itemIndex == pPage->Count) && (i < PER_PAGE_NUM)) { +// if ((pPage->SelItem >= pPage->Count) && (i < PER_PAGE_NUM)) { + CHKPNT; lv_plugin_menu_set_item_string_id(menu_item, i, LV_PLUGIN_MENU_ITEM_VISIBLE_STATE_NUM, pItem->TextId); lv_plugin_menu_set_item_img_id(menu_item, i, LV_PLUGIN_MENU_ITEM_VISIBLE_STATE_NUM, pItem->IconId); lv_plugin_menu_set_item_hidden(menu_item, i, true); u_ItemSel = true; } else { #if 0////demo for only one container + DBG_DUMP("\r\n %s check i= %d\r\n", __func__, i); pItem = &pPage->pItems[i]; + DBG_DUMP("\r\n %s pItem TextId= %d\r\n", __func__, pItem->TextId); + DBG_DUMP("\r\n %s pItem IconId= %d\r\n", __func__, pItem->IconId); lv_plugin_menu_set_item_string_id(menu_item, i, LV_PLUGIN_MENU_ITEM_VISIBLE_STATE_NUM, pItem->TextId); lv_plugin_menu_set_item_img_id(menu_item, i, LV_PLUGIN_MENU_ITEM_VISIBLE_STATE_NUM, pItem->IconId); lv_plugin_menu_set_item_hidden(menu_item, i, false); -#endif - pItem = &pPage->pItems[itemIndex]; + u_ItemSel = false; +#else + //DBG_DUMP("\r\n %s pPage TextId= %d\r\n", __func__, pPage->TextId); +// DBG_DUMP("\r\n %s Sel_item= %d\r\n", __func__, Sel_item); +// DBG_DUMP("\r\n %s itemIndex= %d\r\n", __func__, itemIndex); + + pOption = &pItem->pOptions[SysGetFlag(pItem->SysFlag)]; +// DBG_DUMP("\r\n %s pOption TextId= %d\r\n", __func__, pOption->TextId); + if(pItem->ItemId == IDM_MOVIE_WDR){ static lv_plugin_res_id res[] = { LV_PLUGIN_IMG_ID_SF_OFF, @@ -411,40 +392,23 @@ static void MenuCommonItem_UpdateContent(TM_MENU *pMenu) DBG_ERR("NO_match_ItemID, add please!"); break; } - - lv_plugin_menu_set_item_string_id(menu_item, i, LV_PLUGIN_MENU_ITEM_VISIBLE_STATE_NUM, pItem->TextId); - lv_plugin_menu_set_item_img_id(menu_item, i, LV_PLUGIN_MENU_ITEM_VISIBLE_STATE_NUM, pItem->IconId); - lv_plugin_menu_set_item_hidden(menu_item, i, false); + if(img_id == LV_PLUGIN_IMG_ID_ICON_REC_TRANSPAENT){ + lv_plugin_menu_set_item_string_id(menu_item, i, LV_PLUGIN_MENU_ITEM_VISIBLE_STATE_NUM, pItem->TextId); + lv_plugin_menu_set_item_img_id(menu_item, i, LV_PLUGIN_MENU_ITEM_VISIBLE_STATE_NUM, pItem->IconId); + lv_plugin_menu_set_item_hidden(menu_item, i, false); + } u_hiddenitem = true; }else{ lv_plugin_menu_set_item_string_id(menu_item, i, LV_PLUGIN_MENU_ITEM_VISIBLE_STATE_NUM, pItem->TextId); lv_plugin_menu_set_item_img_id(menu_item, i, LV_PLUGIN_MENU_ITEM_VISIBLE_STATE_NUM, pItem->IconId); lv_plugin_menu_set_item_hidden(menu_item, i, false); u_hiddenitem = false; - } - u_ItemSel = false; - itemIndex++; - } - if(u_ItemSel){ - if(i == 0){ - lv_obj_set_hidden(image_option_01_scr_uiflowmenucommonitem, true); - lv_obj_set_hidden(container_option_1_scr_uiflowmenucommonitem, true); - }else if(i == 1){ - lv_obj_set_hidden(image_option_02_scr_uiflowmenucommonitem, true); - lv_obj_set_hidden(container_option_2_scr_uiflowmenucommonitem, true); - }else if(i == 2){ - lv_obj_set_hidden(image_option_03_scr_uiflowmenucommonitem, true); - lv_obj_set_hidden(container_option_3_scr_uiflowmenucommonitem, true); - }else if(i == 3){ - lv_obj_set_hidden(image_option_04_scr_uiflowmenucommonitem, true); - lv_obj_set_hidden(container_option_4_scr_uiflowmenucommonitem, true); - }else if(i == 4){ - lv_obj_set_hidden(image_option_05_scr_uiflowmenucommonitem, true); - lv_obj_set_hidden(container_option_5_scr_uiflowmenucommonitem, true); } - }else{ +// SelOption = (Sel_item * PER_PAGE_NUM) + i; +// DBG_DUMP("\r\n %s SelOption F= %d\r\n", __func__, SelOption); + + if(!u_hiddenitem){ - pOption = &pItem->pOptions[SysGetFlag(pItem->SysFlag)]; if(i == 0){ lv_obj_set_hidden(image_option_01_scr_uiflowmenucommonitem, true); lv_plugin_label_set_text(label_option_1_scr_uiflowmenucommonitem, pOption->TextId); @@ -494,7 +458,31 @@ static void MenuCommonItem_UpdateContent(TM_MENU *pMenu) lv_obj_set_hidden(image_option_05_scr_uiflowmenucommonitem, false); } } + + + itemIndex++; +#endif } + if(u_ItemSel){ + if(i == 0){ + lv_obj_set_hidden(image_option_01_scr_uiflowmenucommonitem, true); + lv_obj_set_hidden(container_option_1_scr_uiflowmenucommonitem, true); + }else if(i == 1){ + lv_obj_set_hidden(image_option_02_scr_uiflowmenucommonitem, true); + lv_obj_set_hidden(container_option_2_scr_uiflowmenucommonitem, true); + }else if(i == 2){ + lv_obj_set_hidden(image_option_03_scr_uiflowmenucommonitem, true); + lv_obj_set_hidden(container_option_3_scr_uiflowmenucommonitem, true); + }else if(i == 3){ + lv_obj_set_hidden(image_option_04_scr_uiflowmenucommonitem, true); + lv_obj_set_hidden(container_option_4_scr_uiflowmenucommonitem, true); + }else if(i == 4){ + lv_obj_set_hidden(image_option_05_scr_uiflowmenucommonitem, true); + lv_obj_set_hidden(container_option_5_scr_uiflowmenucommonitem, true); + } + } + + } } @@ -539,52 +527,46 @@ static void UIFlowMenuCommonItem_ScrOpen(lv_obj_t* obj) lv_plugin_menu_set_wrap(menu_tab, true); } - MenuItem_OnOpen(obj); + LV_MenuItem_OnOpen(obj); } static void UIFlowMenuCommonItem_Key(lv_obj_t* obj, uint32_t key) { -printf(" wwwwwwwwwwwwwwwwww key = %d\n", key); + switch(key) { - case LV_USER_KEY_RIGHT: - { - printf("=============== right.\n"); - // MenuItem_OnSelected(obj); - // break; - MenuItem_OnDown(obj); - break; - } - - case LV_USER_KEY_LEFT: - { - printf("=============== left.\n"); - MenuItem_OnUp(obj); - break; - } - case LV_USER_KEY_NEXT: - // case LV_USER_KEY_DOWN: { - printf("=============== down.\n"); - MenuItem_OnNext(obj); + LV_MenuItem_OnNext(obj); break; } case LV_USER_KEY_PREV: - // case LV_USER_KEY_UP: { - printf("=============== up.\n"); - MenuItem_OnPrev(obj); + LV_MenuItem_OnPrev(obj); + break; + } + + case LV_KEY_LEFT: + case LV_USER_KEY_UP: + { + LV_MenuItem_OnUp(obj); + break; + } + + case LV_KEY_RIGHT: + case LV_USER_KEY_DOWN: + { + LV_MenuItem_OnDown(obj); break; } case LV_USER_KEY_SELECT: { - printf("=============== select.\n"); - MenuItem_OnSelected(obj); + CHKPNT; + LV_MenuItem_OnSelected(obj); break; } @@ -602,7 +584,7 @@ static void UIFlowMenuCommonItem_ScrClose(lv_obj_t* obj) { DBG_DUMP("%s\r\n", __func__); - MenuItem_OnClose(obj); + LV_MenuItem_OnClose(obj); } @@ -613,30 +595,11 @@ static void UIFlowMenuCommonItem_ChildScrClose(lv_obj_t* obj,const LV_USER_EVENT set_indev_keypad_group(obj); if(msg){ if(msg->event == NVTRET_ENTER_MENU){ - TM_MENU *pMenu = NULL; - TM_MENU *pNextMenu; -#if (PHOTO_MODE == ENABLE) - // Enter 2nd level menu and pop up current mode's menu lists - if (System_GetState(SYS_STATE_CURRMODE) == PRIMARY_MODE_PHOTO) { - pNextMenu = &gPhotoMenu; -#if (PLAY_MODE == ENABLE) - } else if (System_GetState(SYS_STATE_CURRMODE) == PRIMARY_MODE_PLAYBACK) { - pNextMenu = &gPlaybackMenu; -#endif - } else { - pNextMenu = &gMovieMenu; - } -#else - //pNextMenu = &gCommonMenu;//use for codebase sportcam/LVGL UI or touch - pNextMenu = &gMovieMenu; -#endif - - //MenuCommonItem_SetCurrentMenu(&gCommonMenu); - MenuCommonItem_SetCurrentMenu(pNextMenu); - pMenu = MenuCommonItem_GetCurrentMenu(); - pMenu->Status = TMS_ON_ITEM; + TM_MENU* pMenu = TM_GetMenu(); +// UINT32 uiItem,uiOption; - MenuCommonItem_UpdateContent(pMenu); + pMenu->Status = TMS_ON_ITEM; + LV_MenuCommonItem_UpdateContent(pMenu); } } @@ -658,9 +621,6 @@ void UIFlowMenuCommonItemEventCallback(lv_obj_t* obj, lv_event_t event) UIFlowMenuCommonItem_ScrOpen(obj); break; } - // case NVTEVT_KEY_MOVIE: - // printf("=================== left.\n"); - // break; case LV_PLUGIN_EVENT_SCR_CLOSE: { @@ -684,8 +644,7 @@ void UIFlowMenuCommonItemEventCallback(lv_obj_t* obj, lv_event_t event) break; case LV_EVENT_CLICKED: - printf("=================== menu press right, rec LV_EVENT_CLICKED\n"); - MenuItem_OnSelected(obj); + LV_MenuItem_OnSelected(obj); break; case LV_EVENT_KEY: diff --git a/code/application/source/cardv/SrcCode/UIWnd/LVGL_SPORTCAM/UIFlowLVGL/UIFlowMenuCommonOption/UIFlowMenuCommonOptionEventCallback.c b/code/application/source/cardv/SrcCode/UIWnd/LVGL_SPORTCAM/UIFlowLVGL/UIFlowMenuCommonOption/UIFlowMenuCommonOptionEventCallback.c index 2b3e38598..c2109bdb8 100755 --- a/code/application/source/cardv/SrcCode/UIWnd/LVGL_SPORTCAM/UIFlowLVGL/UIFlowMenuCommonOption/UIFlowMenuCommonOptionEventCallback.c +++ b/code/application/source/cardv/SrcCode/UIWnd/LVGL_SPORTCAM/UIFlowLVGL/UIFlowMenuCommonOption/UIFlowMenuCommonOptionEventCallback.c @@ -4,7 +4,7 @@ #include "UIApp/Network/UIAppNetwork.h" #include -#define PAGE 6 +#define OPTION_PAGE_NUM 5 static lv_group_t* gp = NULL; static lv_obj_t* menu_item = NULL; @@ -12,7 +12,7 @@ static lv_obj_t* label_menu_item = NULL; //static lv_obj_t* label_menu_option = NULL; //static lv_obj_t* option_title = NULL; -static TM_MENU *g_pOptionMenu = 0; +//static TM_MENU *g_pOptionMenu = 0; UINT16 PrevOption = 0; UINT16 s_SelOption = 0; @@ -30,6 +30,7 @@ static void set_indev_keypad_group(lv_obj_t* obj) lv_indev_set_group(indev, gp); } +#if 0 static void MenuCommonOption_SetCurrentMenu(TM_MENU *pMenu) { g_pOptionMenu = pMenu; @@ -39,7 +40,9 @@ static TM_MENU *MenuCommonOption_GetCurrentMenu(void) { return g_pOptionMenu; } +#endif +#if 0 static void UIFlowMenuCommonOption_CloseScr(lv_obj_t* obj) { TM_MENU *pMenu; @@ -54,8 +57,8 @@ static void UIFlowMenuCommonOption_CloseScr(lv_obj_t* obj) SelOption = SysGetFlag(pItem->SysFlag); if(SelOption != PrevOption){ - SelOption = PrevOption; - DBG_DUMP("%s SelOption =%d\r\n", __func__,SelOption); +// SelOption = PrevOption; +// DBG_DUMP("%s SelOption =%d\r\n", __func__,SelOption); pMenu->Status = TMS_ON_OPTION; TM_CheckOptionStatus(pMenu, &SelOption, TRUE); @@ -71,8 +74,9 @@ static void UIFlowMenuCommonOption_CloseScr(lv_obj_t* obj) memset(enableIndex, 0, 30); lv_plugin_scr_close(UIFlowMenuCommonItem, NULL); } +#endif -static void MenuCommonOption_UpdateContent(TM_MENU *pMenu) +static void LV_MenuCommonOption_UpdateContent(TM_MENU *pMenu) { TM_PAGE *pPage; TM_ITEM *pItem; @@ -80,18 +84,74 @@ static void MenuCommonOption_UpdateContent(TM_MENU *pMenu) UINT32 i; UINT16 startIndex = 0; UINT16 itemIndex = 0; +#if 1 UINT16 SelOption = 0; UINT32 Selindex = 0; BOOL ui_hidden = true; +#endif + + pPage = &pMenu->pPages[pMenu->SelPage]; + pItem = &pPage->pItems[pPage->SelItem]; +#if 0 + DBG_DUMP("\r\n %s pMenu Status= %d\r\n", __func__, pMenu->Status); + DBG_DUMP("\r\n %s pMenu SelPage= %d\r\n", __func__, pMenu->SelPage); + DBG_DUMP("\r\n %s pMenu FirstPage= %d\r\n", __func__, pMenu->FirstPage); + DBG_DUMP("\r\n %s pMenu Count= %d\r\n", __func__, pMenu->Count); - pPage = &pMenu->pPages[pMenu->SelPage]; - pItem = &pPage->pItems[pPage->SelItem]; + DBG_DUMP("\r\n %s pPage TextId= %d\r\n", __func__, pPage->TextId); + DBG_DUMP("\r\n %s pPage IconId= %d\r\n", __func__, pPage->IconId); + DBG_DUMP("\r\n %s pPage IconIdX= %d\r\n", __func__, pPage->IconIdX); + DBG_DUMP("\r\n %s pPage SelItem= %d\r\n", __func__, pPage->SelItem); + DBG_DUMP("\r\n %s pPage FirstItem= %d\r\n", __func__, pPage->FirstItem); + DBG_DUMP("\r\n %s pPage Count= %d\r\n", __func__, pPage->Count); + + + DBG_DUMP("\r\n %s pItem Count= %d\r\n", __func__, pItem->Count); + DBG_DUMP("\r\n %s pItem TextId= %d\r\n", __func__, pItem->TextId); + DBG_DUMP("\r\n %s pItem IconId= %d\r\n", __func__, pItem->IconId); + DBG_DUMP("\r\n %s pItem SysFlag= %d\r\n", __func__, pItem->SysFlag); +#endif +#if 0 +// lv_plugin_menu_select_item(menu_item, i); + TM_FindStartIndex(pMenu, pItem->Count, &startIndex); + //DBG_DUMP("%s startIndex=%d\r\n", __func__,startIndex); + + //draw item form startIndex + itemIndex = startIndex; + TM_CheckOptionStatus(pMenu, &itemIndex, TRUE); + + for (i = 0; i < OPTION_PAGE_NUM; i++) + { + pOption = &pItem->pOptions[itemIndex]; +// pOption = &pItem->pOptions + //tab option status to menu status + if((pOption->Status & TM_OPTION_STATUS_MASK) == TM_OPTION_ENABLE) + { + CHKPNT; + lv_plugin_menu_set_item_string_id(menu_item, i, LV_PLUGIN_MENU_ITEM_VISIBLE_STATE_NUM, pOption->TextId); +// if(PrevOption == pPage) + //lv_plugin_menu_set_item_img_id(menu_item, i, LV_PLUGIN_MENU_ITEM_VISIBLE_STATE_NUM, pOption->IconId); + lv_plugin_menu_set_item_hidden(menu_item, i, false); + } + else + { + CHKPNT; + lv_plugin_menu_set_item_string_id(menu_item, i, LV_PLUGIN_MENU_ITEM_VISIBLE_STATE_NUM, pOption->TextId); + //lv_plugin_menu_set_item_img_id(menu_item, i, LV_PLUGIN_MENU_ITEM_VISIBLE_STATE_NUM, pOption->IconId); + lv_plugin_menu_set_item_hidden(menu_item, i, true); + } + itemIndex++; + } + + +//return; +#else SelOption = SysGetFlag(pItem->SysFlag); - DBG_DUMP("%s SelOption =%d\r\n", __func__,SelOption); + #if 1 if (pItem->Count) { - DBG_DUMP("%s IconId =%d\r\n", __func__,pItem->IconId); - DBG_DUMP("%s TextId =%d\r\n", __func__,pItem->TextId); +// DBG_DUMP("%s IconId =%d\r\n", __func__,pItem->IconId); +// DBG_DUMP("%s TextId =%d\r\n", __func__,pItem->TextId); // lv_plugin_img_set_src(image_option_title_scr_uiflowmenucommonoption, LV_PLUGIN_IMG_ID_SF_IMAGE_SIZE); lv_plugin_img_set_src(image_option_title_scr_uiflowmenucommonoption, pItem->IconId); @@ -121,22 +181,22 @@ static void MenuCommonOption_UpdateContent(TM_MENU *pMenu) itemIndex++; } if(Selindex){ - if((Selindex / PAGE) == 0){ + if((Selindex / OPTION_PAGE_NUM) == 0){ Selindex = 0; }else{ - Selindex = (Selindex / PAGE); + Selindex = (Selindex / OPTION_PAGE_NUM); } } - for(i = 0; i < PAGE; i++){ - pOption = &pItem->pOptions[enableIndex[i + (Selindex * PAGE)]]; - if (((enableIndex[i + (Selindex * PAGE)]) > (pItem->Count -1)) && (i < PAGE)) { + for(i = 0; i < OPTION_PAGE_NUM; i++){ + pOption = &pItem->pOptions[enableIndex[i + (Selindex * OPTION_PAGE_NUM)]]; + if (((enableIndex[i + (Selindex * OPTION_PAGE_NUM)]) > (pItem->Count -1)) && (i < OPTION_PAGE_NUM)) { lv_plugin_menu_set_item_string_id(menu_item, i, LV_PLUGIN_MENU_ITEM_VISIBLE_STATE_NUM, pOption->TextId); //lv_plugin_menu_set_item_img_id(menu_item, i, LV_PLUGIN_MENU_ITEM_VISIBLE_STATE_NUM, pOption->IconId); lv_plugin_menu_set_item_hidden(menu_item, i, true); ui_hidden = true; - }else if((i + (Selindex * PAGE)) > OptionEN_Num){ + }else if((i + (Selindex * OPTION_PAGE_NUM)) > OptionEN_Num){ lv_plugin_menu_set_item_string_id(menu_item, i, LV_PLUGIN_MENU_ITEM_VISIBLE_STATE_NUM, pOption->TextId); //lv_plugin_menu_set_item_img_id(menu_item, i, LV_PLUGIN_MENU_ITEM_VISIBLE_STATE_NUM, pOption->IconId); lv_plugin_menu_set_item_hidden(menu_item, i, true); @@ -146,12 +206,13 @@ static void MenuCommonOption_UpdateContent(TM_MENU *pMenu) //lv_plugin_menu_set_item_img_id(menu_item, i, LV_PLUGIN_MENU_ITEM_VISIBLE_STATE_NUM, pOption->IconId); lv_plugin_menu_set_item_hidden(menu_item, i, false); ui_hidden = true; - if(enableIndex[i+(Selindex * PAGE)] == SelOption){ - s_SelOption = i + (Selindex * PAGE); + if(enableIndex[i+(Selindex * OPTION_PAGE_NUM)] == SelOption){ + s_SelOption = i + (Selindex * OPTION_PAGE_NUM); lv_plugin_menu_select_item(menu_item, i); ui_hidden = false; } } + // DBG_DUMP("%s ui_hidden=%d\r\n", __func__,ui_hidden); if(i==0){ lv_obj_set_hidden(image_option1_scr_uiflowmenucommonoption, ui_hidden); @@ -203,29 +264,17 @@ static void MenuCommonOption_UpdateContent(TM_MENU *pMenu) } } #endif +#endif } -static void MenuItem_OnOpen(lv_obj_t* obj, TM_MENU *data) +static void LV_MenuOption_OnOpen(lv_obj_t* obj, TM_MENU *data) { - TM_MENU *pMenu; - TM_PAGE *pPage; - TM_ITEM *pItem; + TM_MENU* pMenu = TM_GetMenu(); + TM_PAGE* pPage; + TM_ITEM* pItem; //TM_OPTION *pOption; UINT16 SelOption = 0; - - if(NULL == data) - return; - - MenuCommonOption_SetCurrentMenu(data); - pMenu = MenuCommonOption_GetCurrentMenu(); - pMenu->Status = TMS_ON_OPTION; - // pPage = &pMenu->pPages[pMenu->SelPage]; - // pItem = &pPage->pItems[pPage->SelItem]; - DBG_DUMP("%s pMenu->SelPage=%d\r\n", __func__,pMenu->SelPage); - - // pMenu->SelPage = 0; - pPage = &pMenu->pPages[pMenu->SelPage]; // pPage->SelItem = 0; DBG_DUMP("%s pPage->SelItem=%d\r\n", __func__,pPage->SelItem); @@ -247,28 +296,22 @@ static void MenuItem_OnOpen(lv_obj_t* obj, TM_MENU *data) /* check menu item is init */ if(!lv_plugin_menu_item_cnt(menu_item)){ /* allocate menu item */ - lv_plugin_menu_init_items(menu_item, PAGE); + lv_plugin_menu_init_items(menu_item, OPTION_PAGE_NUM); } - MenuCommonOption_UpdateContent(pMenu); + LV_MenuCommonOption_UpdateContent(pMenu); //lv_plugin_menu_select_item(menu_item, 0); -#if _TODO - // UI_SetDisplayPalette(LAYER_OSD1, 0, 256, gDemoKit_PaletteOption_Palette); -#endif - // Ux_DefaultEvent(pCtrl, NVTEVT_OPEN_WINDOW, paramNum, paramArray); - } -static void MenuItem_OnNext(lv_obj_t* obj) +static void LV_MenuOption_OnNext(lv_obj_t* obj) { - TM_MENU *pMenu; + TM_MENU* pMenu = TM_GetMenu(); TM_PAGE *pPage; TM_ITEM *pItem; UINT16 SelOption = 0; - pMenu = MenuCommonOption_GetCurrentMenu(); pPage = &pMenu->pPages[pMenu->SelPage]; pItem = &pPage->pItems[pPage->SelItem]; SelOption = SysGetFlag(pItem->SysFlag); @@ -279,46 +322,50 @@ static void MenuItem_OnNext(lv_obj_t* obj) SelOption++; if (SelOption == pItem->Count){ // Close current UI Window now - UIFlowMenuCommonOption_CloseScr(obj); + SysSetFlag(pItem->SysFlag, PrevOption); + lv_plugin_scr_close(obj, NULL); +// UIFlowMenuCommonOption_CloseScr(obj); }else{ SysSetFlag(pItem->SysFlag, SelOption); lv_plugin_menu_select_next_item(menu_item); + LV_MenuCommonOption_UpdateContent(pMenu); } DBG_DUMP("%s flag=%d\r\n", __func__,SysGetFlag(pItem->SysFlag)); } -static void MenuItem_OnPrev(lv_obj_t* obj) +static void LV_MenuOption_OnPrev(lv_obj_t* obj) { - TM_MENU *pMenu; + TM_MENU* pMenu = TM_GetMenu(); TM_PAGE *pPage; TM_ITEM *pItem; UINT16 SelOption = 0; - pMenu = MenuCommonOption_GetCurrentMenu(); pPage = &pMenu->pPages[pMenu->SelPage]; pItem = &pPage->pItems[pPage->SelItem]; SelOption = SysGetFlag(pItem->SysFlag); if (SelOption == 0) { // Close current UI Window now - UIFlowMenuCommonOption_CloseScr(obj); + SysSetFlag(pItem->SysFlag, PrevOption); + lv_plugin_scr_close(obj, NULL); +// UIFlowMenuCommonOption_CloseScr(obj); } else { SelOption--; SysSetFlag(pItem->SysFlag, SelOption); lv_plugin_menu_select_prev_item(menu_item); + LV_MenuCommonOption_UpdateContent(pMenu); } DBG_DUMP("%s flag=%d\r\n", __func__,SysGetFlag(pItem->SysFlag)); } -static void MenuItem_OnSelected(lv_obj_t* obj) +static void LV_MenuOption_OnSelected(lv_obj_t* obj) { - TM_MENU *pMenu; + TM_MENU* pMenu = TM_GetMenu(); TM_PAGE *pPage; TM_ITEM *pItem; TM_OPTION *pOption; UINT16 SelOption = 0; - pMenu = MenuCommonOption_GetCurrentMenu(); pPage = &pMenu->pPages[pMenu->SelPage]; pItem = &pPage->pItems[pPage->SelItem]; @@ -337,6 +384,7 @@ static void MenuItem_OnSelected(lv_obj_t* obj) SelOption = SysGetFlag(pItem->SysFlag); DBG_DUMP("%s SelOption =%d\r\n", __func__,SelOption); pMenu->Status = TMS_ON_OPTION; + PrevOption = SelOption; TM_CheckOptionStatus(pMenu, &SelOption, TRUE); @@ -427,7 +475,7 @@ static void UIFlowMenuCommonOption_ScrOpen(lv_obj_t* obj, const void *data) // lv_plugin_menu_set_wrap(option_title, true); // } - MenuItem_OnOpen(obj, (TM_MENU *)data); + LV_MenuOption_OnOpen(obj, (TM_MENU *)data); } @@ -438,26 +486,28 @@ static void UIFlowMenuCommonOption_Key(lv_obj_t* obj, uint32_t key) { case LV_USER_KEY_NEXT: + case LV_USER_KEY_DOWN: { - MenuItem_OnNext(obj); + LV_MenuOption_OnNext(obj); break; } case LV_USER_KEY_PREV: + case LV_USER_KEY_UP: { - MenuItem_OnPrev(obj); + LV_MenuOption_OnPrev(obj); break; } case LV_USER_KEY_SELECT: { - MenuItem_OnSelected(obj); + LV_MenuOption_OnSelected(obj); break; } case LV_USER_KEY_SHUTTER2: { - UIFlowMenuCommonOption_CloseScr(obj); + LV_MenuOption_OnSelected(obj); break; } @@ -498,7 +548,7 @@ void UIFlowMenuCommonOptionEventCallback(lv_obj_t* obj, lv_event_t event) break; case LV_EVENT_CLICKED: - MenuItem_OnSelected(obj); + LV_MenuOption_OnSelected(obj); break; case LV_EVENT_KEY: