⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 plxbrowfile.c

📁 mtk wap和mms代码。。适应mtk 25。26平台
💻 C
📖 第 1 页 / 共 5 页
字号:
	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 + -