Merge code of ding.

This commit is contained in:
xiaojiazhu 2023-10-14 15:38:17 +08:00
parent 2e2ce5a8a2
commit 5ba4a9f588
2 changed files with 294 additions and 285 deletions

View File

@ -2,14 +2,13 @@
#include "PrjInc.h" #include "PrjInc.h"
#include "UIFlowLVGL/UIFlowLVGL.h" #include "UIFlowLVGL/UIFlowLVGL.h"
#include "UIApp/Network/UIAppNetwork.h" #include "UIApp/Network/UIAppNetwork.h"
#include "UIFlowLVGL/UIFlowMenuCommonItem/MenuQR.h"
#include "UIFlowLVGL_SPORTCAM.h"
#include <kwrap/debug.h> #include <kwrap/debug.h>
#define PAGE 6 #define PAGE 32
#define PER_PAGE_NUM 5
#define TAB_PAGE 4 #define TAB_PAGE 4
static TM_MENU *g_pItemMenu = 0; //static TM_MENU *g_pItemMenu = 0;
static lv_group_t* gp = NULL; static lv_group_t* gp = NULL;
static lv_obj_t* menu_tab = NULL; static lv_obj_t* menu_tab = NULL;
static lv_obj_t* menu_item = 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_option4 = NULL;
//static lv_obj_t* container_option5 = NULL; //static lv_obj_t* container_option5 = NULL;
#endif #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) 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); 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; g_pItemMenu = pMenu;
} }
static TM_MENU *MenuCommonItem_GetCurrentMenu(void) static TM_MENU *LV_MenuCommonItem_GetCurrentMenu(void)
{ {
return g_pItemMenu; 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_MENU* pMenu = TM_GetMenu();
TM_PAGE *pPage; TM_PAGE *pPage;
TM_ITEM *pItem; TM_ITEM *pItem;
pPage = &pMenu->pPages[pMenu->SelPage]; 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->Status == TMS_ON_TAB){
if(pMenu->SelPage == 0){ if(pPage->SelItem == 0){
DBG_WRN("already foucs on tab !"); // DBG_WRN("already foucs on tab !");
DBG_DUMP("^Galready foucs on tab !");
return; 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{ }else{
//if item = 0; up key foucs to tab //if item = 0; up key foucs to tab
if(pMenu->SelPage == 0){ if(pPage->SelItem == 0){
pMenu->Status = TMS_ON_TAB; pMenu->Status = TMS_ON_TAB;
pItem = &pPage->pItems[0]; 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_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, pItem->IconId);
lv_plugin_menu_set_item_hidden(menu_item, 0, false); lv_plugin_menu_set_item_hidden(menu_item, 0, false);
// pPage->SelItem = 255;
return; return;
} }
pPage->SelItem--;
pMenu->SelPage--; LV_MenuCommonItem_UpdateContent(pMenu);
lv_plugin_menu_select_prev_item(menu_item); 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_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){ if (pMenu->Status == TMS_ON_TAB){
pMenu->Status = TMS_ON_ITEM; pMenu->Status = TMS_ON_ITEM;
pMenu->SelPage = 0; pPage->SelItem = 0;
LV_MenuCommonItem_UpdateContent(pMenu);
lv_plugin_menu_select_item(menu_item, 0); lv_plugin_menu_select_item(menu_item, 0);
}else{ }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_plugin_menu_select_next_item(menu_item);
} }
// LV_MenuCommonItem_UpdateContent(pMenu);
} }
static void LV_MenuItem_OnUp(lv_obj_t* obj)
#if 1
static void MenuItem_OnUp(lv_obj_t* obj)
{ {
TM_MENU* pMenu = TM_GetMenu(); TM_MENU* pMenu = TM_GetMenu();
@ -101,12 +120,14 @@ static void MenuItem_OnUp(lv_obj_t* obj)
{ {
TM_ShiftTab(pMenu, -1); TM_ShiftTab(pMenu, -1);
lv_plugin_menu_select_prev_item(menu_tab); 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(); TM_MENU* pMenu = TM_GetMenu();
@ -115,25 +136,26 @@ static void MenuItem_OnDown(lv_obj_t* obj)
{ {
TM_ShiftTab(pMenu, +1); TM_ShiftTab(pMenu, +1);
lv_plugin_menu_select_next_item(menu_tab); 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_MENU *pMenu = TM_GetMenu();
TM_PAGE *pPage; TM_PAGE *pPage;
TM_ITEM *pItem; TM_ITEM *pItem;
// TM_MENU *pNextMenu; // 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) if (pMenu->Status == TMS_ON_ITEM)
{ {
pPage = &pMenu->pPages[pMenu->SelPage]; pItem = &pPage->pItems[pPage->SelItem];
// pPage->SelItem = UxMenu_GetData(&MenuCommonItem_MenuCtrl, MNU_CURITM); // update selected item of tab menu // DBG_DUMP("\r\n %s pPage SelItem= %d\r\n", __func__, pPage->SelItem);
pItem = &pPage->pItems[pPage->SelItem];
//#NT#2016/09/20#Bob Huang -begin //#NT#2016/09/20#Bob Huang -begin
//#NT#Support HDMI Display with 3DNR Out //#NT#Support HDMI Display with 3DNR Out
//Only support FHD p30 size, cannot change size when 3DNR Out enabled //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 #endif
//#NT#2016/09/20#Bob Huang -end //#NT#2016/09/20#Bob Huang -end
if (pItem->Count != 0 && pItem->SysFlag != 0) // standard process 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) 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; pMenu->Status = TMS_ON_CUSTOM;
TM_ITEM_CALLBACK(pItem, 0, 0); // execute custom menu flow TM_ITEM_CALLBACK(pItem, 0, 0); // execute custom menu flow
} }
} }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);
#if 0 // lv_plugin_menu_set_item_img_id(menu_item, 0, LV_PLUGIN_MENU_ITEM_VISIBLE_STATE_NUM, pItem->IconId);
pMenu = TM_GetMenu(); lv_plugin_menu_set_item_img_id(menu_item, 0, LV_PLUGIN_MENU_ITEM_VISIBLE_STATE_NUM, LV_PLUGIN_IMG_ID_SF_MENU_RELEASE);
pPage = &pMenu->pPages[pMenu->SelPage]; lv_plugin_menu_set_item_hidden(menu_item, 0, false);
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);
}
} }
#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) #if (MOVIE_MODE==ENABLE)
//#NT#2016/08/19#Lincy Lin#[0106935] -begin //#NT#2016/08/19#Lincy Lin#[0106935] -begin
//#NT# Support change WDR, SHDR, RSC setting will change mode after exit menu //#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"); DBG_DUMP("MenuItem_OnOpen\r\n");
TM_MENU *pMenu = NULL; 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 //pNextMenu = &gCommonMenu;//use for codebase sportcam/LVGL UI or touch
pCurMenu = &gMovieMenu; pCurMenu = &gMovieMenu;
#endif #endif
pCurMenu = &gGeneralMenu; // pCurMenu = QR_UI
//replace to setup menu dynamically //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[1]= gPhotoMenu.pPages[0]; //= General_UI
pCurMenu->pPages[2]= gPlaybackMenu.pPages[0]; //= Send_UI pCurMenu->pPages[2]= gPlaybackMenu.pPages[0]; //= Send_UI
pCurMenu->pPages[3]= gSetupMenu.pPages[0]; //= QR_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_init_items(menu_item, PAGE);
} }
// lv_plugin_menu_select_item(menu_item, 0); // 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_PAGE *pPage;
TM_ITEM *pItem; TM_ITEM *pItem;
TM_OPTION *pOption; TM_OPTION *pOption;
UINT32 i = 0; UINT32 i = 0;
UINT16 Sel_item = 0;
// UINT16 Sel_page = 0;
UINT16 itemIndex = 0; UINT16 itemIndex = 0;
BOOL u_hiddenitem = false; BOOL u_hiddenitem = false;
BOOL u_ItemSel = false; BOOL u_ItemSel = false;
lv_plugin_res_id img_id = LV_PLUGIN_IMG_ID_ICON_REC_TRANSPAENT; lv_plugin_res_id img_id = LV_PLUGIN_IMG_ID_ICON_REC_TRANSPAENT;
// UINT32 uiIcon[TAB_PAGE]; // 2 pages per menu // UINT32 uiIcon[TAB_PAGE]; // 2 pages per menu
// UINT32 uiText[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 #if 0
DBG_DUMP("\r\n %s pMenu Status= %d\r\n", __func__, pMenu->Status); 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 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 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 pMenu Count= %d\r\n", __func__, pMenu->Count);
#endif
DBG_DUMP("\r\n %s pPage TextId= %d\r\n", __func__, pPage->TextId); pPage = &pMenu->pPages[pMenu->SelPage];
DBG_DUMP("\r\n %s pPage IconId= %d\r\n", __func__, pPage->IconId); pItem = &pPage->pItems[pPage->SelItem];
DBG_DUMP("\r\n %s pPage IconIdX= %d\r\n", __func__, pPage->IconIdX); #if 1
DBG_DUMP("\r\n %s pPage SelItem= %d\r\n", __func__, pPage->SelItem); // DBG_DUMP("\r\n %s pPage TextId= %d\r\n", __func__, pPage->TextId);
DBG_DUMP("\r\n %s pPage FirstItem= %d\r\n", __func__, pPage->FirstItem); // DBG_DUMP("\r\n %s pPage IconId= %d\r\n", __func__, pPage->IconId);
DBG_DUMP("\r\n %s pPage Count= %d\r\n", __func__, pPage->Count); // 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 #endif
#if 0 #if 0
if (pMenu->Status == TMS_ON_TAB) if (pMenu->Status == TMS_ON_TAB)
@ -379,24 +332,52 @@ static void MenuCommonItem_UpdateContent(TM_MENU *pMenu)
} }
} }
#endif #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 //draw item form startIndex
for (i = 0; i < PAGE; i++) { for (i = 0; i < PER_PAGE_NUM; i++) {
//check item if disable //check item if disable
TM_CheckItemStatus(pMenu, &itemIndex, TRUE); 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_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_img_id(menu_item, i, LV_PLUGIN_MENU_ITEM_VISIBLE_STATE_NUM, pItem->IconId);
lv_plugin_menu_set_item_hidden(menu_item, i, true); lv_plugin_menu_set_item_hidden(menu_item, i, true);
u_ItemSel = true; u_ItemSel = true;
} else { } else {
#if 0////demo for only one container #if 0////demo for only one container
DBG_DUMP("\r\n %s check i= %d\r\n", __func__, i);
pItem = &pPage->pItems[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_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_img_id(menu_item, i, LV_PLUGIN_MENU_ITEM_VISIBLE_STATE_NUM, pItem->IconId);
lv_plugin_menu_set_item_hidden(menu_item, i, false); lv_plugin_menu_set_item_hidden(menu_item, i, false);
#endif u_ItemSel = false;
pItem = &pPage->pItems[itemIndex]; #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){ if(pItem->ItemId == IDM_MOVIE_WDR){
static lv_plugin_res_id res[] = { static lv_plugin_res_id res[] = {
LV_PLUGIN_IMG_ID_SF_OFF, LV_PLUGIN_IMG_ID_SF_OFF,
@ -411,10 +392,11 @@ static void MenuCommonItem_UpdateContent(TM_MENU *pMenu)
DBG_ERR("NO_match_ItemID, add please!"); DBG_ERR("NO_match_ItemID, add please!");
break; break;
} }
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_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_img_id(menu_item, i, LV_PLUGIN_MENU_ITEM_VISIBLE_STATE_NUM, pItem->IconId);
lv_plugin_menu_set_item_hidden(menu_item, i, false); lv_plugin_menu_set_item_hidden(menu_item, i, false);
}
u_hiddenitem = true; u_hiddenitem = true;
}else{ }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_string_id(menu_item, i, LV_PLUGIN_MENU_ITEM_VISIBLE_STATE_NUM, pItem->TextId);
@ -422,29 +404,11 @@ static void MenuCommonItem_UpdateContent(TM_MENU *pMenu)
lv_plugin_menu_set_item_hidden(menu_item, i, false); lv_plugin_menu_set_item_hidden(menu_item, i, false);
u_hiddenitem = false; u_hiddenitem = false;
} }
u_ItemSel = false; // SelOption = (Sel_item * PER_PAGE_NUM) + i;
itemIndex++; // DBG_DUMP("\r\n %s SelOption F= %d\r\n", __func__, SelOption);
}
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{
if(!u_hiddenitem){ if(!u_hiddenitem){
pOption = &pItem->pOptions[SysGetFlag(pItem->SysFlag)];
if(i == 0){ if(i == 0){
lv_obj_set_hidden(image_option_01_scr_uiflowmenucommonitem, true); lv_obj_set_hidden(image_option_01_scr_uiflowmenucommonitem, true);
lv_plugin_label_set_text(label_option_1_scr_uiflowmenucommonitem, pOption->TextId); 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); 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); 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) static void UIFlowMenuCommonItem_Key(lv_obj_t* obj, uint32_t key)
{ {
printf(" wwwwwwwwwwwwwwwwww key = %d\n", key);
switch(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_NEXT:
// case LV_USER_KEY_DOWN:
{ {
printf("=============== down.\n"); LV_MenuItem_OnNext(obj);
MenuItem_OnNext(obj);
break; break;
} }
case LV_USER_KEY_PREV: case LV_USER_KEY_PREV:
// case LV_USER_KEY_UP:
{ {
printf("=============== up.\n"); LV_MenuItem_OnPrev(obj);
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; break;
} }
case LV_USER_KEY_SELECT: case LV_USER_KEY_SELECT:
{ {
printf("=============== select.\n"); CHKPNT;
MenuItem_OnSelected(obj); LV_MenuItem_OnSelected(obj);
break; break;
} }
@ -602,7 +584,7 @@ static void UIFlowMenuCommonItem_ScrClose(lv_obj_t* obj)
{ {
DBG_DUMP("%s\r\n", __func__); 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); set_indev_keypad_group(obj);
if(msg){ if(msg){
if(msg->event == NVTRET_ENTER_MENU){ if(msg->event == NVTRET_ENTER_MENU){
TM_MENU *pMenu = NULL; TM_MENU* pMenu = TM_GetMenu();
TM_MENU *pNextMenu; // UINT32 uiItem,uiOption;
#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; pMenu->Status = TMS_ON_ITEM;
LV_MenuCommonItem_UpdateContent(pMenu);
MenuCommonItem_UpdateContent(pMenu);
} }
} }
@ -658,9 +621,6 @@ void UIFlowMenuCommonItemEventCallback(lv_obj_t* obj, lv_event_t event)
UIFlowMenuCommonItem_ScrOpen(obj); UIFlowMenuCommonItem_ScrOpen(obj);
break; break;
} }
// case NVTEVT_KEY_MOVIE:
// printf("=================== left.\n");
// break;
case LV_PLUGIN_EVENT_SCR_CLOSE: case LV_PLUGIN_EVENT_SCR_CLOSE:
{ {
@ -684,8 +644,7 @@ void UIFlowMenuCommonItemEventCallback(lv_obj_t* obj, lv_event_t event)
break; break;
case LV_EVENT_CLICKED: case LV_EVENT_CLICKED:
printf("=================== menu press right, rec LV_EVENT_CLICKED\n"); LV_MenuItem_OnSelected(obj);
MenuItem_OnSelected(obj);
break; break;
case LV_EVENT_KEY: case LV_EVENT_KEY:

View File

@ -4,7 +4,7 @@
#include "UIApp/Network/UIAppNetwork.h" #include "UIApp/Network/UIAppNetwork.h"
#include <kwrap/debug.h> #include <kwrap/debug.h>
#define PAGE 6 #define OPTION_PAGE_NUM 5
static lv_group_t* gp = NULL; static lv_group_t* gp = NULL;
static lv_obj_t* menu_item = 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* label_menu_option = NULL;
//static lv_obj_t* option_title = NULL; //static lv_obj_t* option_title = NULL;
static TM_MENU *g_pOptionMenu = 0; //static TM_MENU *g_pOptionMenu = 0;
UINT16 PrevOption = 0; UINT16 PrevOption = 0;
UINT16 s_SelOption = 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); lv_indev_set_group(indev, gp);
} }
#if 0
static void MenuCommonOption_SetCurrentMenu(TM_MENU *pMenu) static void MenuCommonOption_SetCurrentMenu(TM_MENU *pMenu)
{ {
g_pOptionMenu = pMenu; g_pOptionMenu = pMenu;
@ -39,7 +40,9 @@ static TM_MENU *MenuCommonOption_GetCurrentMenu(void)
{ {
return g_pOptionMenu; return g_pOptionMenu;
} }
#endif
#if 0
static void UIFlowMenuCommonOption_CloseScr(lv_obj_t* obj) static void UIFlowMenuCommonOption_CloseScr(lv_obj_t* obj)
{ {
TM_MENU *pMenu; TM_MENU *pMenu;
@ -54,8 +57,8 @@ static void UIFlowMenuCommonOption_CloseScr(lv_obj_t* obj)
SelOption = SysGetFlag(pItem->SysFlag); SelOption = SysGetFlag(pItem->SysFlag);
if(SelOption != PrevOption){ if(SelOption != PrevOption){
SelOption = PrevOption; // SelOption = PrevOption;
DBG_DUMP("%s SelOption =%d\r\n", __func__,SelOption); // DBG_DUMP("%s SelOption =%d\r\n", __func__,SelOption);
pMenu->Status = TMS_ON_OPTION; pMenu->Status = TMS_ON_OPTION;
TM_CheckOptionStatus(pMenu, &SelOption, TRUE); TM_CheckOptionStatus(pMenu, &SelOption, TRUE);
@ -71,8 +74,9 @@ static void UIFlowMenuCommonOption_CloseScr(lv_obj_t* obj)
memset(enableIndex, 0, 30); memset(enableIndex, 0, 30);
lv_plugin_scr_close(UIFlowMenuCommonItem, NULL); 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_PAGE *pPage;
TM_ITEM *pItem; TM_ITEM *pItem;
@ -80,18 +84,74 @@ static void MenuCommonOption_UpdateContent(TM_MENU *pMenu)
UINT32 i; UINT32 i;
UINT16 startIndex = 0; UINT16 startIndex = 0;
UINT16 itemIndex = 0; UINT16 itemIndex = 0;
#if 1
UINT16 SelOption = 0; UINT16 SelOption = 0;
UINT32 Selindex = 0; UINT32 Selindex = 0;
BOOL ui_hidden = true; BOOL ui_hidden = true;
#endif
pPage = &pMenu->pPages[pMenu->SelPage]; pPage = &pMenu->pPages[pMenu->SelPage];
pItem = &pPage->pItems[pPage->SelItem]; 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);
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); SelOption = SysGetFlag(pItem->SysFlag);
DBG_DUMP("%s SelOption =%d\r\n", __func__,SelOption);
#if 1 #if 1
if (pItem->Count) { if (pItem->Count) {
DBG_DUMP("%s IconId =%d\r\n", __func__,pItem->IconId); // DBG_DUMP("%s IconId =%d\r\n", __func__,pItem->IconId);
DBG_DUMP("%s TextId =%d\r\n", __func__,pItem->TextId); // 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, LV_PLUGIN_IMG_ID_SF_IMAGE_SIZE);
lv_plugin_img_set_src(image_option_title_scr_uiflowmenucommonoption, pItem->IconId); lv_plugin_img_set_src(image_option_title_scr_uiflowmenucommonoption, pItem->IconId);
@ -121,22 +181,22 @@ static void MenuCommonOption_UpdateContent(TM_MENU *pMenu)
itemIndex++; itemIndex++;
} }
if(Selindex){ if(Selindex){
if((Selindex / PAGE) == 0){ if((Selindex / OPTION_PAGE_NUM) == 0){
Selindex = 0; Selindex = 0;
}else{ }else{
Selindex = (Selindex / PAGE); Selindex = (Selindex / OPTION_PAGE_NUM);
} }
} }
for(i = 0; i < PAGE; i++){ for(i = 0; i < OPTION_PAGE_NUM; i++){
pOption = &pItem->pOptions[enableIndex[i + (Selindex * PAGE)]]; pOption = &pItem->pOptions[enableIndex[i + (Selindex * OPTION_PAGE_NUM)]];
if (((enableIndex[i + (Selindex * PAGE)]) > (pItem->Count -1)) && (i < PAGE)) { 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_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_img_id(menu_item, i, LV_PLUGIN_MENU_ITEM_VISIBLE_STATE_NUM, pOption->IconId);
lv_plugin_menu_set_item_hidden(menu_item, i, true); lv_plugin_menu_set_item_hidden(menu_item, i, true);
ui_hidden = 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_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_img_id(menu_item, i, LV_PLUGIN_MENU_ITEM_VISIBLE_STATE_NUM, pOption->IconId);
lv_plugin_menu_set_item_hidden(menu_item, i, true); 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_img_id(menu_item, i, LV_PLUGIN_MENU_ITEM_VISIBLE_STATE_NUM, pOption->IconId);
lv_plugin_menu_set_item_hidden(menu_item, i, false); lv_plugin_menu_set_item_hidden(menu_item, i, false);
ui_hidden = true; ui_hidden = true;
if(enableIndex[i+(Selindex * PAGE)] == SelOption){ if(enableIndex[i+(Selindex * OPTION_PAGE_NUM)] == SelOption){
s_SelOption = i + (Selindex * PAGE); s_SelOption = i + (Selindex * OPTION_PAGE_NUM);
lv_plugin_menu_select_item(menu_item, i); lv_plugin_menu_select_item(menu_item, i);
ui_hidden = false; ui_hidden = false;
} }
} }
// DBG_DUMP("%s ui_hidden=%d\r\n", __func__,ui_hidden); // DBG_DUMP("%s ui_hidden=%d\r\n", __func__,ui_hidden);
if(i==0){ if(i==0){
lv_obj_set_hidden(image_option1_scr_uiflowmenucommonoption, ui_hidden); lv_obj_set_hidden(image_option1_scr_uiflowmenucommonoption, ui_hidden);
@ -203,29 +264,17 @@ static void MenuCommonOption_UpdateContent(TM_MENU *pMenu)
} }
} }
#endif #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_MENU* pMenu = TM_GetMenu();
TM_PAGE *pPage; TM_PAGE* pPage;
TM_ITEM *pItem; TM_ITEM* pItem;
//TM_OPTION *pOption; //TM_OPTION *pOption;
UINT16 SelOption = 0; 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 = &pMenu->pPages[pMenu->SelPage];
// pPage->SelItem = 0; // pPage->SelItem = 0;
DBG_DUMP("%s pPage->SelItem=%d\r\n", __func__,pPage->SelItem); 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 */ /* check menu item is init */
if(!lv_plugin_menu_item_cnt(menu_item)){ if(!lv_plugin_menu_item_cnt(menu_item)){
/* allocate 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); //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_PAGE *pPage;
TM_ITEM *pItem; TM_ITEM *pItem;
UINT16 SelOption = 0; UINT16 SelOption = 0;
pMenu = MenuCommonOption_GetCurrentMenu();
pPage = &pMenu->pPages[pMenu->SelPage]; pPage = &pMenu->pPages[pMenu->SelPage];
pItem = &pPage->pItems[pPage->SelItem]; pItem = &pPage->pItems[pPage->SelItem];
SelOption = SysGetFlag(pItem->SysFlag); SelOption = SysGetFlag(pItem->SysFlag);
@ -279,46 +322,50 @@ static void MenuItem_OnNext(lv_obj_t* obj)
SelOption++; SelOption++;
if (SelOption == pItem->Count){ if (SelOption == pItem->Count){
// Close current UI Window now // Close current UI Window now
UIFlowMenuCommonOption_CloseScr(obj); SysSetFlag(pItem->SysFlag, PrevOption);
lv_plugin_scr_close(obj, NULL);
// UIFlowMenuCommonOption_CloseScr(obj);
}else{ }else{
SysSetFlag(pItem->SysFlag, SelOption); SysSetFlag(pItem->SysFlag, SelOption);
lv_plugin_menu_select_next_item(menu_item); lv_plugin_menu_select_next_item(menu_item);
LV_MenuCommonOption_UpdateContent(pMenu);
} }
DBG_DUMP("%s flag=%d\r\n", __func__,SysGetFlag(pItem->SysFlag)); 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_PAGE *pPage;
TM_ITEM *pItem; TM_ITEM *pItem;
UINT16 SelOption = 0; UINT16 SelOption = 0;
pMenu = MenuCommonOption_GetCurrentMenu();
pPage = &pMenu->pPages[pMenu->SelPage]; pPage = &pMenu->pPages[pMenu->SelPage];
pItem = &pPage->pItems[pPage->SelItem]; pItem = &pPage->pItems[pPage->SelItem];
SelOption = SysGetFlag(pItem->SysFlag); SelOption = SysGetFlag(pItem->SysFlag);
if (SelOption == 0) { if (SelOption == 0) {
// Close current UI Window now // Close current UI Window now
UIFlowMenuCommonOption_CloseScr(obj); SysSetFlag(pItem->SysFlag, PrevOption);
lv_plugin_scr_close(obj, NULL);
// UIFlowMenuCommonOption_CloseScr(obj);
} else { } else {
SelOption--; SelOption--;
SysSetFlag(pItem->SysFlag, SelOption); SysSetFlag(pItem->SysFlag, SelOption);
lv_plugin_menu_select_prev_item(menu_item); lv_plugin_menu_select_prev_item(menu_item);
LV_MenuCommonOption_UpdateContent(pMenu);
} }
DBG_DUMP("%s flag=%d\r\n", __func__,SysGetFlag(pItem->SysFlag)); 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_PAGE *pPage;
TM_ITEM *pItem; TM_ITEM *pItem;
TM_OPTION *pOption; TM_OPTION *pOption;
UINT16 SelOption = 0; UINT16 SelOption = 0;
pMenu = MenuCommonOption_GetCurrentMenu();
pPage = &pMenu->pPages[pMenu->SelPage]; pPage = &pMenu->pPages[pMenu->SelPage];
pItem = &pPage->pItems[pPage->SelItem]; pItem = &pPage->pItems[pPage->SelItem];
@ -337,6 +384,7 @@ static void MenuItem_OnSelected(lv_obj_t* obj)
SelOption = SysGetFlag(pItem->SysFlag); SelOption = SysGetFlag(pItem->SysFlag);
DBG_DUMP("%s SelOption =%d\r\n", __func__,SelOption); DBG_DUMP("%s SelOption =%d\r\n", __func__,SelOption);
pMenu->Status = TMS_ON_OPTION; pMenu->Status = TMS_ON_OPTION;
PrevOption = SelOption;
TM_CheckOptionStatus(pMenu, &SelOption, TRUE); 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); // 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_NEXT:
case LV_USER_KEY_DOWN:
{ {
MenuItem_OnNext(obj); LV_MenuOption_OnNext(obj);
break; break;
} }
case LV_USER_KEY_PREV: case LV_USER_KEY_PREV:
case LV_USER_KEY_UP:
{ {
MenuItem_OnPrev(obj); LV_MenuOption_OnPrev(obj);
break; break;
} }
case LV_USER_KEY_SELECT: case LV_USER_KEY_SELECT:
{ {
MenuItem_OnSelected(obj); LV_MenuOption_OnSelected(obj);
break; break;
} }
case LV_USER_KEY_SHUTTER2: case LV_USER_KEY_SHUTTER2:
{ {
UIFlowMenuCommonOption_CloseScr(obj); LV_MenuOption_OnSelected(obj);
break; break;
} }
@ -498,7 +548,7 @@ void UIFlowMenuCommonOptionEventCallback(lv_obj_t* obj, lv_event_t event)
break; break;
case LV_EVENT_CLICKED: case LV_EVENT_CLICKED:
MenuItem_OnSelected(obj); LV_MenuOption_OnSelected(obj);
break; break;
case LV_EVENT_KEY: case LV_EVENT_KEY: