/** Update the File Explore page. **/ VOID LibUpdateFileExplorePage ( VOID ) { UINTN Index; MENU_ENTRY *NewMenuEntry; FILE_CONTEXT *NewFileContext; MENU_OPTION *MenuOption; NewMenuEntry = NULL; NewFileContext = NULL; LibRefreshUpdateData (); MenuOption = gFileExplorerPrivate.FsOptionMenu; for (Index = 0; Index < MenuOption->MenuNumber; Index++) { NewMenuEntry = LibGetMenuEntry (MenuOption, Index); NewFileContext = (FILE_CONTEXT *) NewMenuEntry->VariableContext; if (!NewFileContext->IsDir) { // // Create Text opcode for directory, also create Text opcode for file in FileExplorerStateBootFromFile. // HiiCreateActionOpCode ( mLibStartOpCodeHandle, (UINT16) (FILE_OPTION_OFFSET + Index), NewMenuEntry->DisplayStringToken, STRING_TOKEN (STR_NULL_STRING), EFI_IFR_FLAG_CALLBACK, 0 ); } else { // // Create Goto opcode for file in FileExplorerStateAddBootOption or FileExplorerStateAddDriverOptionState. // HiiCreateGotoOpCode ( mLibStartOpCodeHandle, FORM_FILE_EXPLORER_ID, NewMenuEntry->DisplayStringToken, STRING_TOKEN (STR_NULL_STRING), EFI_IFR_FLAG_CALLBACK, (UINT16) (FILE_OPTION_OFFSET + Index) ); } } HiiUpdateForm ( gFileExplorerPrivate.FeHiiHandle, &FileExplorerGuid, FORM_FILE_EXPLORER_ID, mLibStartOpCodeHandle, // Label FORM_FILE_EXPLORER_ID mLibEndOpCodeHandle // LABEL_END ); }
/** Update the File Explore page. **/ VOID LibUpdateFileExplorePage ( VOID ) { UINTN Index; MENU_ENTRY *NewMenuEntry; FILE_CONTEXT *NewFileContext; MENU_OPTION *MenuOption; BOOLEAN CreateNewFile; NewMenuEntry = NULL; NewFileContext = NULL; CreateNewFile = FALSE; LibRefreshUpdateData (); MenuOption = gFileExplorerPrivate.FsOptionMenu; mQuestionIdUpdate += QUESTION_ID_UPDATE_STEP; for (Index = 0; Index < MenuOption->MenuNumber; Index++) { NewMenuEntry = LibGetMenuEntry (MenuOption, Index); NewFileContext = (FILE_CONTEXT *) NewMenuEntry->VariableContext; if (!NewFileContext->IsRoot && !CreateNewFile) { HiiCreateGotoOpCode ( mLibStartOpCodeHandle, FORM_ADD_NEW_FILE_ID, STRING_TOKEN (STR_NEW_FILE), STRING_TOKEN (STR_NEW_FILE_HELP), EFI_IFR_FLAG_CALLBACK, (UINT16) (mNewFileQuestionId++) ); HiiCreateGotoOpCode ( mLibStartOpCodeHandle, FORM_ADD_NEW_FOLDER_ID, STRING_TOKEN (STR_NEW_FOLDER), STRING_TOKEN (STR_NEW_FOLDER_HELP), EFI_IFR_FLAG_CALLBACK, (UINT16) (mNewFolderQuestionId++) ); HiiCreateTextOpCode( mLibStartOpCodeHandle, STRING_TOKEN (STR_NULL_STRING), STRING_TOKEN (STR_NULL_STRING), 0 ); CreateNewFile = TRUE; } if (!NewFileContext->IsDir) { // // Create Text opcode for directory, also create Text opcode for file in FileExplorerStateBootFromFile. // HiiCreateActionOpCode ( mLibStartOpCodeHandle, (UINT16) (FILE_OPTION_OFFSET + Index + mQuestionIdUpdate), NewMenuEntry->DisplayStringToken, STRING_TOKEN (STR_NULL_STRING), EFI_IFR_FLAG_CALLBACK, 0 ); } else { // // Create Goto opcode for file in FileExplorerStateAddBootOption or FileExplorerStateAddDriverOptionState. // HiiCreateGotoOpCode ( mLibStartOpCodeHandle, FORM_FILE_EXPLORER_ID, NewMenuEntry->DisplayStringToken, STRING_TOKEN (STR_NULL_STRING), EFI_IFR_FLAG_CALLBACK, (UINT16) (FILE_OPTION_OFFSET + Index + mQuestionIdUpdate) ); } } HiiUpdateForm ( gFileExplorerPrivate.FeHiiHandle, &FileExplorerGuid, FORM_FILE_EXPLORER_ID, mLibStartOpCodeHandle, // Label FORM_FILE_EXPLORER_ID mLibEndOpCodeHandle // LABEL_END ); }