📄 plxbrowfile.c
字号:
case SSR_FILEOPENFAIL:
GoBackToHistory(SCR_ID_PLX_BROW_VIEW);
// DisplayPopup((U8*)get_string(STR_ID_PLX_BROW_SAVEPAGE_ERR_FILEOPENFAIL),IMG_ID_PLX_PUBLIC_SUBMENU_POPFAIL /*IMG_GLOBAL_WARNING*/,0,UI_POPUP_NOTIFYDURATION_TIME,WARNING_TONE);
#ifdef __PLXBROW_SUPPORT_HOTPLUG_
if(PMSDC_NONE == PlxBrowIsMemCardPluged())
{
PLIB_MessageBox(PMBTYPE_ERROR, NULL, (const WCHAR *)get_string(STR_ID_PLX_BROW_SAVEERRNOCARD), UI_POPUP_NOTIFYDURATION_TIME);
break;
}
if (PMSDC_WRONG == PlxBrowIsMemCardPluged())
{
PLIB_NotifyMSDCWrong();
break;
}
#endif // __PLXBROW_SUPPORT_HOTPLUG_
PLIB_MessageBox(PMBTYPE_ERROR, NULL, (const WCHAR *) GetString(STR_ID_PLX_BROW_ERR_INVALIDINPUT/*STR_ID_PLX_BROW_SAVEPAGE_ERR_FILEOPENFAIL*/), UI_POPUP_NOTIFYDURATION_TIME);
break;
case SSR_DRMNOSAVE:
GoBackToHistory(SCR_ID_PLX_BROW_VIEW);
// DisplayPopup((U8*)get_string(STR_ID_PLX_BROW_SAVEPAGE_ERR_DRMNOSAVE),IMG_ID_PLX_PUBLIC_SUBMENU_POPFAIL /*IMG_GLOBAL_WARNING*/,0,UI_POPUP_NOTIFYDURATION_TIME,WARNING_TONE);
PLIB_MessageBox(PMBTYPE_ERROR, NULL, (const WCHAR *) GetString(STR_ID_PLX_BROW_SAVEPAGE_ERR_DRMNOSAVE), UI_POPUP_NOTIFYDURATION_TIME);
break;
case SSR_SEMI_OK:
GoBackToHistory(SCR_ID_PLX_BROW_VIEW);
PLIB_MessageBox(PMBTYPE_WARNING, NULL, (const WCHAR *) GetString(STR_ID_PLX_BROW_SAVEPAGE_ERR_SEMIOK), UI_POPUP_NOTIFYDURATION_TIME);
break;
default: // SSR_OK:
GoBackToHistory(SCR_ID_PLX_BROW_VIEW);
// DisplayPopup((U8*)get_string(STR_ID_PLX_BROW_SAVEPAGE_ERR_NOERROR),IMG_ID_PLX_PUBLIC_SUBMENU_POPOK /*IMG_GLOBAL_SAVE*/,0,UI_POPUP_NOTIFYDURATION_TIME,SUCCESS_TONE);
PLIB_MessageBox(PMBTYPE_SUCCESS, NULL, (const WCHAR *) GetString(STR_ID_PLX_BROW_SAVEPAGE_ERR_NOERROR), UI_POPUP_NOTIFYDURATION_TIME);
break;
}
return;
}
/****************************************************************************
* Function static void SavePageKeyEndHandler(void)
* Purpose key end handler of save page module
* Params
* Return
* Remarks
\****************************************************************************/
void ExecGeneralKeyEndHandler (FuncPtr handler);
static void SavePageKeyEndHandler(void)
{
/* int nToneId = WARNING_TONE;
if(TRUE == IsScreenPresent(SCR_ID_PLX_BROW_VIEW))
PLIB_ConfirmBox(NULL, (const WCHAR *) get_string(STR_ID_PLX_BROW_EXIT_CONFIRM), NULL,NULL,
NULL,0, (void*)&nToneId, 0, SavePageKeyEndExitConfirmCB);
else
*/
ExecGeneralKeyEndHandler (SavePageKeyEndExitLskFunc);
}
/****************************************************************************
* Function SavePageKeyEndExitConfirmCB
* Purpose
* Params
* Return
* Remarks
\****************************************************************************/
static void SavePageKeyEndExitConfirmCB(PLIBEVENT event)
{
if( PEVENT_POSITIVE== event)
SavePageKeyEndExitLskFunc();
else if(PEVENT_NEGTIVE == event)
GoBackHistory();
}
/****************************************************************************
* Function SavePageKeyEndExitLskFunc
* Purpose
* Params
* Return
* Remarks
\****************************************************************************/
static void SavePageKeyEndExitLskFunc(void)
{
// DeInitPlxBrowser();
// DisplayIdleScreen();
PlxBrowExitBrowserAndGoIdle();
}
/****************************************************************************
* Function SavePageHistoryDelCB
* Purpose
* Params
* Return
* Remarks
\****************************************************************************/
static U8 SavePageHistoryDelCB(void* param)
{
if(TRUE == bWaitSavePageExKeyEndFlag)
{
bWaitSavePageExKeyEndFlag = FALSE;
DeInitPlxBrowser();
}
return 0;
}
////////////////////////////////File ////////////////////////////////////////////////
typedef struct tagPageSavedInfo{
int nPageSize;
int nSubDocSize;
}PageSavedInfo, *PPageSavedInfo;
static PageSavedInfo g_PageInfo[PLXBROW_FILE_SAVEPAGE_MAX_NUM];
static char* g_plxBrowFileStore[PLXBROW_FILE_SAVEPAGE_MAX_NUM];
static int g_NumOfFileSaved= 0;
static BOOL g_bPlxBrowFileIsLoad = FALSE;
static int g_curHiliteFileID = 0;
static HDMENU g_hPlxBrowFileMenu = NULL;
//file handle
void InitPlxBrowFile(void);
void DeInitPlxBrowFile(void);
static int LoadFileStore(void);
static int EmptyFileStore(void);
static void ResetFileStore(int DeleteID);
static int DeletePageSaved(const WCHAR* pszWidePageName);
static void GetPageSavedInfo(const WCHAR* pszWidePageName, PPageSavedInfo pPageInfo);
//file screen
static void EntryPlxBrowFileScreen(void);
static void GetCurHiliteFileItemID(S32 itemHilite);
static pBOOL GetNextFileItem( S32 item_index, UI_string_type str_buff, UI_image_type* img_buff_p, U8 str_img_mask );
static S32 GetFileItemHint ( S32 item_index, UI_string_type *hint_array );
static void ExitPlxBrowFileScreen(void);
//file menu screen
static void EntryPlxBrowFileMenu(void);
static int CreateFileMenu(void);
static void ModifyFileMenu(void);
static int FileMenuNty(HDMENU hMenu, unsigned long id, unsigned long event);
//file menu item handle
static void JumpToSelFileScreen(void);
static void EntryDelFileConfirmScreen (void);
static void EntryDelAllFileConfirmScreen (void);
static void DelFileConfirmCB(PLIBEVENT event);
static void DelAllFileConfirmCB(PLIBEVENT event);
static void FileDelRskFunc(void);
static void FileDelLskFunc(void);
static void FileDelAllLskFunc(void);
//key end handler
static void FileKeyEndHandler(void);
static void FileKeyEndExitLskFunc(void);
static void FileKeyEndExitConfirmCB(PLIBEVENT event);
/****************************************************************************
* Function void EntryOfPlxBrowFile(void)
* Purpose
* Params
* Return
* Remarks
\****************************************************************************/
void EntryOfPlxBrowFile(void)
{
#ifdef __PLXBROW_SUPPORT_HOTPLUG_
if(PMSDC_OK != PlxBrowIsMemCardPluged())
{
if(TRUE == IsScreenPresent(SCR_ID_PLX_BROW_VIEW))
GoBackToHistory(SCR_ID_PLX_BROW_VIEW);
if ( PMSDC_NONE == PlxBrowIsMemCardPluged())
PLIB_MessageBox(PMBTYPE_WARNING, NULL, (const WCHAR *)get_string(STR_ID_PLX_BROW_INSERTCARD), UI_POPUP_NOTIFYDURATION_TIME);
else
PLIB_NotifyMSDCWrong();
return;
}
#endif //__PLXBROW_SUPPORT_HOTPLUG_
InitPlxBrowFile();
if(0 >= g_NumOfFileSaved)
{
DeInitPlxBrowFile();
if(TRUE == IsScreenPresent(SCR_ID_PLX_BROW_VIEW))
GoBackToHistory(SCR_ID_PLX_BROW_VIEW);
PLIB_MessageBox(PMBTYPE_EMPTY, NULL, (const WCHAR *)get_string(STR_GLOBAL_EMPTY), UI_POPUP_NOTIFYDURATION_TIME);
return;
}
EntryPlxBrowFileScreen();
}
/****************************************************************************
* Function void InitPlxBrowFile(void)
* Purpose
* Params
* Return
* Remarks
\****************************************************************************/
void InitPlxBrowFile(void)
{
g_curHiliteFileID = 0;
g_hPlxBrowFileMenu = NULL;
LoadFileStore();
}
/****************************************************************************
* Function void DeInitPlxBrowFile(void)
* Purpose
* Params
* Return
* Remarks
\****************************************************************************/
void DeInitPlxBrowFile(void)
{
EmptyFileStore();
if(NULL != g_hPlxBrowFileMenu)
{
PlxDestroyDMenu(g_hPlxBrowFileMenu);
g_hPlxBrowFileMenu = NULL;
}
g_curHiliteFileID = 0;
}
/****************************************************************************
* Function static int LoadFileStore(void)
* Purpose load file list
* Params
* Return
* Remarks
\****************************************************************************/
static int LoadFileStore(void)
{
FS_HANDLE handle;
FS_DOSDirEntry file_info;
U8 file_name[PLXBROW_FILENAME_MAX_LEN + 2];
char szFindMode[8];
WCHAR *szCurrPath;
int nTotalFileNum = 0;
int nWideFileNameLen =0;
int flag = 0;
int i;
char *szWideChar;
int nPathLen;
if(TRUE == g_bPlxBrowFileIsLoad)
return 0;
nPathLen = strlen(GetPBUISavePageDirectory()) + strlen(PLXBROW_PWBE_SAVE_LOG_FILENAME);
if(NULL == (szWideChar = PlxAppMalloc(nPathLen * 2 + 2 )))
{
PLIB_MessageBox(PMBTYPE_ERROR, NULL, (const WCHAR *)get_string(STR_ID_PLX_BROW_ERR_MEMORYMALLOC), UI_POPUP_NOTIFYDURATION_TIME);
return -1;
}
if(NULL == (szCurrPath = PlxAppMalloc(PLXBROW_MAX_PATH*2)))
{
PLIB_MessageBox(PMBTYPE_ERROR, NULL, (const WCHAR *)get_string(STR_ID_PLX_BROW_ERR_MEMORYMALLOC), UI_POPUP_NOTIFYDURATION_TIME);
PlxAppFree(szWideChar);
return -1;
}
AnsiiToUnicodeString((S8 *) szWideChar, (S8 *)GetPBUISavePageDirectory());
if(FALSE == TestAndCreateDownloadDir((const WCHAR*)szWideChar))
{
PlxAppFree(szWideChar);
PlxAppFree(szCurrPath);
return -1;
}
FS_GetCurrentDir((WCHAR*)szCurrPath,PLXBROW_MAX_PATH);
FS_SetCurrentDir((const WCHAR*)szWideChar);
for(i = 0; i<PLXBROW_FILE_SAVEPAGE_MAX_NUM; i++)
{
g_plxBrowFileStore[i] = NULL;
//init page size
g_PageInfo[i].nPageSize = 0;
g_PageInfo[i].nSubDocSize = 0;
}
// memset(file_name,0x0,PLXBROW_FILENAME_MAX_LEN);
AnsiiToUnicodeString((S8 *)szFindMode, (S8 *)"*.*ml*");
//pfnUnicodeStrcat((PS8)szFindMode, (PS8)L"*.*");
if(0 <= (handle = FS_FindFirst((WCHAR *)szFindMode, 0, FS_ATTR_DIR, &file_info, (WCHAR *)file_name, PLXBROW_FILENAME_MAX_LEN/2)))
{
AnsiiToUnicodeString((S8 *)szWideChar, (S8 *)PLXBROW_PWBE_SAVE_LOG_FILENAME);
if(0 != pfnUnicodeStrcmp((const S8*)file_name, (const S8*)szWideChar))
{
nWideFileNameLen = pfnUnicodeStrlen((const S8*)file_name);
if(NULL != (g_plxBrowFileStore[nTotalFileNum] = PlxAppMalloc((nWideFileNameLen +1)*2)))
{
pfnUnicodeStrcpy((S8*)g_plxBrowFileStore[nTotalFileNum],(const S8*)file_name);
//get page size
g_PageInfo[nTotalFileNum].nPageSize =file_info.FileSize;
GetPageSavedInfo((const WCHAR *)file_name,&g_PageInfo[nTotalFileNum]);
nTotalFileNum ++;
// memset(file_name,0x0,PLXBROW_FILENAME_MAX_LEN );
}
else
flag=1;
}
while(0 == flag && FS_NO_ERROR == FS_FindNext(handle,&file_info,(WCHAR*)file_name,PLXBROW_FILENAME_MAX_LEN/2))
{
if(nTotalFileNum >= PLXBROW_FILE_SAVEPAGE_MAX_NUM)
break;
if(0 == pfnUnicodeStrcmp((const S8*)file_name, (const S8*)szWideChar))
continue;
nWideFileNameLen = pfnUnicodeStrlen((const S8*)file_name);
if(NULL != (g_plxBrowFileStore[nTotalFileNum] = PlxAppMalloc((nWideFileNameLen +1)*2)))
{
pfnUnicodeStrcpy((S8*)g_plxBrowFileStore[nTotalFileNum],(const S8*)file_name);
//get page size
g_PageInfo[nTotalFileNum].nPageSize = file_info.FileSize;
GetPageSavedInfo((const WCHAR *)file_name,&g_PageInfo[nTotalFileNum]);
nTotalFileNum ++;
// memset(file_name,0x0,PLXBROW_FILENAME_MAX_LEN);
}
else
{
PLIB_MessageBox(PMBTYPE_ERROR, NULL, (const WCHAR *)get_string(STR_ID_PLX_BROW_ERR_MEMORYMALLOC), UI_POPUP_NOTIFYDURATION_TIME);
flag = 1;
}
}
}
FS_FindClose(handle);
FS_SetCurrentDir((const WCHAR*)szCurrPath);
PlxAppFree(szWideChar);
PlxAppFree(szCurrPath);
g_bPlxBrowFileIsLoad = TRUE;
g_NumOfFileSaved = nTotalFileNum;
return 0;
}
/****************************************************************************
* Function static int EmptyFileStore(void)
* Purpose free the file store
* Params
* Return
* Remarks
\****************************************************************************/
static int EmptyFileStore(void)
{
int i;
for(i=0; i<PLXBROW_FILE_SAVEPAGE_MAX_NUM; i++)
{
if(NULL != g_plxBrowFileStore[i])
{
PlxAppFree(g_plxBrowFileStore[i]);
g_plxBrowFileStore[i]=NULL;
//deinit page size
g_PageInfo[i].nPageSize = 0;
g_PageInfo[i].nSubDocSize = 0;
}
}
g_NumOfFileSaved = 0;
g_bPlxBrowFileIsLoad = FALSE;
return i;
}
/****************************************************************************
* Function static int ResetFileStore(int DeleteID)
* Purpose reorder the file store
* Params
* Return
* Remarks
\****************************************************************************/
static void ResetFileStore(int DeleteID)
{
int i;
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -