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

📄 plxbrowfile.c

📁 mtk wap和mms代码。。适应mtk 25。26平台
💻 C
📖 第 1 页 / 共 5 页
字号:
						 PLXBROW_SAVEPAGE_INLINEITEM_MAX_NUM, SavePageIcons,
						 wgui_inline_items, 0,guiBuffer);
	SetCategory57RightSoftkeyFunctions(SavePageBack,SavePageBack); 
	SetCategory57LeftSoftkeyFunction(EntryPlxBrowSavePageInputScreen);
	SetKeyHandler(SavePageKeyEndHandler,KEY_END,KEY_EVENT_DOWN);
}


/****************************************************************************
* Function	static void plxBrowSetSavePageInlineItems(void)
* Purpose	set the inline items of the save page screen		 	
* Params	
* Return	
* Remarks	
\****************************************************************************/
static void plxBrowSetSavePageInlineItems(void)
{
	
	SetInlineItemCaption(&(wgui_inline_items[0]),(U8*)get_string(STR_ID_PLX_BROW_SAVEPAGE_SAVECAPTION));

	SetInlineItemActivation(&(wgui_inline_items[1]),INLINE_ITEM_ACTIVATE_WITHOUT_KEY_EVENT,0);
	SetInlineItemDisplayOnly(&(wgui_inline_items[1]), (U8*) g_szCurrSavePageName); //use Unicode
}


/****************************************************************************
* Function	static void plxBrowSavePageHiliteInlineItem(S32 index)
* Purpose			
* Params	
* Return	
* Remarks	
\****************************************************************************/
static void plxBrowSavePageHiliteInlineItem(S32 index)
{
	ChangeLeftSoftkey(STR_GLOBAL_EDIT,IMG_GLOBAL_OK);
	SetLeftSoftkeyFunction(EntryPlxBrowSavePageInputScreen,KEY_EVENT_UP);
	if(0 != pfnUnicodeStrlen((const S8*)g_szCurrSavePageName))
		ChangeRightSoftkey(STR_GLOBAL_DONE,IMG_GLOBAL_BACK);
	else
		ChangeRightSoftkey(STR_GLOBAL_BACK,IMG_GLOBAL_BACK);
	SetRightSoftkeyFunction(SavePageBack, KEY_EVENT_UP);
	SetKeyHandler(EntryPlxBrowSavePageInputScreen,KEY_ENTER,KEY_EVENT_UP);
		
}


/****************************************************************************
* Function	static void ExitPlxBrowSavePageScreen(void)
* Purpose	exit the save page screen		
* Params	
* Return	
* Remarks	
\****************************************************************************/
static void ExitPlxBrowSavePageScreen(void)
{
	history    ScrDA;	/* Variable to hold the history data*/
	S16 		nHistory=0;
	U16 		size;

	CloseCategory57Screen();

	ScrDA.scrnID = SCR_ID_PLX_BROW_SAVEPAGE;
	ScrDA.entryFuncPtr = EntryPlxBrowSavePageScreen;

	pfnUnicodeStrcpy((S8*)ScrDA.inputBuffer,(S8*)&nHistory);
	GetCategoryHistory(ScrDA.guiBuffer);
	size = (U16)GetCategory57DataSize();
	GetCategory57Data ((U8*)ScrDA.inputBuffer );
	AddNHistory(ScrDA,size);
}


/****************************************************************************
* Function	static void SavePageBack(void)
* Purpose	
* Params	
* Return	
* Remarks	
\****************************************************************************/
static void SavePageBack(void)
{
	int  nToneId = WARNING_TONE;
	if(0  != pfnUnicodeStrlen((const S8*)g_szCurrSavePageName))
	{
		PLIB_ConfirmBox(NULL, (const WCHAR *)get_string(STR_ID_PLX_BROW_SAVE_SAVEORNOT_CONFIRM),
				NULL,NULL,NULL,0, (void *)&nToneId, 0, SavePageBackConfirmCB);
		SetKeyHandler(SavePageKeyEndHandler,KEY_END,KEY_EVENT_DOWN);
	}
	else 
		plxBrowSavePageRskFunc();
}


/****************************************************************************
* Function	static void SavePageBackConfirmCB(PLIBEVENT event)
* Purpose	
* Params	
* Return	
* Remarks	
\****************************************************************************/
static void SavePageBackConfirmCB(PLIBEVENT event)
{
	if(PEVENT_POSITIVE == event)
	{
		plxBrowSavePageLskFunc();
	}
	else if(PEVENT_NEGTIVE == event)
	{
		plxBrowSavePageRskFunc();
	}
}


/****************************************************************************
* Function	static void plxBrowSavePageRskFunc(void)
* Purpose	
* Params	
* Return	
* Remarks	
\****************************************************************************/
static void plxBrowSavePageRskFunc(void)
{
	memset(g_szCurrSavePageName,0x0,PLXBROW_FILENAME_MAX_LEN);
	memset(g_szTempPageName,0x0,PLXBROW_FILENAME_MAX_LEN);
	if(TRUE == IsScreenPresent(SCR_ID_PLX_BROW_VIEW))
		GoBackToHistory(SCR_ID_PLX_BROW_VIEW);
	else
		GoBackHistory();
}


/****************************************************************************
* Function	static void plxBrowSavePageLskFunc(void)
* Purpose	
* Params	
* Return	
* Remarks	
\****************************************************************************/
static void plxBrowSavePageLskFunc(void)
{
	int   nWidePageNameLen;
	char  szWideNameSuffix [PLXBROW_FILENAME_MAX_LEN];
	char  szWideFullName[PLXBROW_FILENAME_MAX_LEN];

	if(0 == (nWidePageNameLen = pfnUnicodeStrlen((const S8*)g_szCurrSavePageName)))
	{
		GoBackHistory();
	//	DisplayPopup((U8*)get_string(STR_ID_PLX_BROW_SAVEPAGE_ERR_NULLNAME),IMG_ID_PLX_PUBLIC_SUBMENU_POPFAIL /*IMG_GLOBAL_WARNING*/, 0, UI_POPUP_NOTIFYDURATION_TIME,WARNING_TONE);
		PLIB_MessageBox(PMBTYPE_WARNING, NULL, (const WCHAR *) GetString(STR_ID_PLX_BROW_SAVEPAGE_ERR_NULLNAME), UI_POPUP_NOTIFYDURATION_TIME);
		return;			
	}
	GetPageTypeStrIDAndSuffix(PWBE_GetSourceType(PlxBrowGetBrowserHandle()), szWideNameSuffix);
	pfnUnicodeStrcpy(szWideFullName,g_szCurrSavePageName);
	pfnUnicodeStrcat(szWideFullName,szWideNameSuffix);
	if(TRUE == IsCurrPageExisted((const char *)szWideFullName))
	{	
		GoBackHistory();
		EntrySaveFileExistConfirmScreen();	
	}
	else
		SaveFileExistConfirmLskFunc();

	return;
}



/****************************************************************************
* Function	static void EntryPlxBrowSavePageInputScreen(void)
* Purpose	enter the save page input screen
* Params	
* Return	
* Remarks	
\****************************************************************************/
static void EntryPlxBrowSavePageInputScreen(void)
{
	
	U8* guiBuffer;

	if(FALSE == bIsPageNameChanged)
	{
		pfnUnicodeStrcpy((S8*)g_szTempPageName,(S8*)g_szCurrSavePageName);
		bIsPageNameChanged = TRUE;
	}
	EntryNewScreen(SCR_ID_PLX_BROW_SAVEPAGE_INPUT, NULL, EntryPlxBrowSavePageInputScreen,  NULL);
	SetParentHandler(0);
	guiBuffer = GetCurrGuiBuffer(SCR_ID_PLX_BROW_SAVEPAGE_INPUT);
	ShowCategory5Screen(STR_ID_PLX_BROW_SAVEPAGE_SAVECAPTION, 0,
						  STR_GLOBAL_OPTIONS, IMG_GLOBAL_OPTIONS,
						  STR_GLOBAL_BACK, IMG_GLOBAL_BACK,
						  INPUT_TYPE_ALPHANUMERIC_LOWERCASE,
						  (U8*)g_szTempPageName,
						  PLXBROW_FILENAME_MAINNAME_MAX_NUM + 1, guiBuffer); 
	SetLeftSoftkeyFunction(EnterSavePageInputOK,KEY_EVENT_UP);
	SetCategory5RightSoftkeyFunction(plxBrowSavePageInputRskFunc,KEY_EVENT_UP);
//	SetKeyHandler(EnterSavePageInputOK,KEY_ENTER, KEY_EVENT_UP);
//	ClearKeyHandler(KEY_END,KEY_EVENT_DOWN);
	SetKeyHandler(SavePageKeyEndHandler,KEY_END,KEY_EVENT_DOWN);
	SetDelScrnIDCallbackHandler(SCR_ID_PLX_BROW_SAVEPAGE_INPUT, SavePageHistoryDelCB);
	bWaitSavePageExKeyEndFlag = TRUE;
}


/****************************************************************************
* Function	EnterSavePageInputOK
* Purpose	when left softkey (ok) is pressed
* Params	
* Return	
* Remarks	
\****************************************************************************/
static void EnterSavePageInputOK (void)
{
    PLIB_RegisterIMEDoneNotify (plxBrowSavePageInputLskFunc);
	PLIB_IMEOptionEntry ();
	SetKeyHandler(SavePageKeyEndHandler,KEY_END,KEY_EVENT_DOWN);

}


/****************************************************************************
* Function	static void plxBrowSavePageInputLskFunc(void)
* Purpose	
* Params	
* Return	
* Remarks	
\****************************************************************************/
static void plxBrowSavePageInputLskFunc(void)
{
	unsigned char * p;
	int         flag=0;
    unsigned short unic;

	if(0 == pfnUnicodeStrlen ((const S8*)g_szTempPageName))
	{
		GoBackHistory();
		PLIB_MessageBox(PMBTYPE_WARNING, NULL, (const WCHAR *)get_string(STR_ID_PLX_BROW_SAVEPAGE_ERR_NULLNAME), UI_POPUP_NOTIFYDURATION_TIME);
		return;
	}
	for(p = (unsigned char *)g_szTempPageName;  !(*p == 0 && *(p+1) == 0); p += 2 )
	{
        unic = *p + (*(p+1) << 8);
        if ((unic==';') || (unic=='/') || (unic=='\\') ||
            (unic=='?') || (unic==':') || (unic=='@') ||
            (unic=='&') || (unic=='$') || (unic=='=') || 
            (unic=='+') || (unic==',') || (unic=='|') ||
            (unic=='<') || (unic=='>') || (unic=='"') ||
            (unic=='%' )|| (unic==' ') ||(unic=='.')) 
        {
            flag = 1;
            break;
        }
	}
	
	if(1 == flag)
	{	//	DisplayPopup((U8 * )get_string(STR_ID_PLX_BROW_ERR_INVALIDINPUT),  IMG_ID_PLX_PUBLIC_SUBMENU_POPFAIL /*IMG_GLOBAL_WARNING*/, 0,UI_POPUP_NOTIFYDURATION_TIME, WARNING_TONE);
		GoBackHistory();
		bIsPageNameChanged = TRUE;
		PLIB_MessageBox(PMBTYPE_WARNING, NULL, (const WCHAR *) GetString(STR_ID_PLX_BROW_ERR_INVALIDINPUT), UI_POPUP_NOTIFYDURATION_TIME);
	}
	else	
	{
		bWaitSavePageExKeyEndFlag = FALSE; //real goback
		pfnUnicodeStrcpy((S8*)g_szCurrSavePageName,(S8*)g_szTempPageName);
		GoBacknHistory(1);
		bIsPageNameChanged = FALSE;
	}
}


/****************************************************************************
* Function	static void plxBrowSavePageInputRskFunc(void)
* Purpose	
* Params	
* Return	
* Remarks	
\****************************************************************************/
static void plxBrowSavePageInputRskFunc(void)
{
	bWaitSavePageExKeyEndFlag = FALSE;
	bIsPageNameChanged = FALSE;
	GoBackHistory();
}


/****************************************************************************
* Function	static void EntrySaveFileExistConfirmScreen(void)
* Purpose	
* Params	
* Return	
* Remarks	
\****************************************************************************/
static void EntrySaveFileExistConfirmScreen(void)
{	
	int   nToneId = WARNING_TONE;

	PLIB_ConfirmBox(NULL, (const WCHAR *) get_string(STR_ID_PLX_BROW_SAVEPAGE_ERR_FILEEXIST), NULL,NULL, 
				NULL,0, (void*)&nToneId, 0, SaveFileExistConfirmCB);
	SetKeyHandler(SavePageKeyEndHandler,KEY_END,KEY_EVENT_DOWN);
}


/****************************************************************************
* Function	static void EntrySaveFileExistConfirmScreen(void)
* Purpose	
* Params	
* Return	
* Remarks	
\****************************************************************************/
static void SaveFileExistConfirmCB(PLIBEVENT event )
{
	if(PEVENT_POSITIVE == event)
		SaveFileExistConfirmLskFunc();
	else if( PEVENT_NEGTIVE == event)
		SaveFileExistConfirmRskFunc();
}


/****************************************************************************
* Function	static void SaveFileExistConfirmRskFunc(void)
* Purpose	
* Params	
* Return	
* Remarks	
\****************************************************************************/
static void SaveFileExistConfirmRskFunc(void)
{
	GoBackHistory();
}


/****************************************************************************
* Function	static void SaveFileExistConfirmLskFunc(void)
* Purpose	save the file with the name inputed
* Params	
* Return	
* Remarks	
\****************************************************************************/
static void SaveFileExistConfirmLskFunc(void)
{
	int   		nWidePageNameLen;
	char    	*szUtf8PageName;
	char		*szWidePagePath;
	int		    nRetSave;

	

	if(NULL == (szWidePagePath = PlxAppMalloc(PLXBROW_MAX_PATH *2)))
	{
		GoBackToHistory(SCR_ID_PLX_BROW_VIEW);
		PLIB_MessageBox(PMBTYPE_ERROR, NULL, (const WCHAR *)get_string(STR_ID_PLX_BROW_ERR_MEMORYMALLOC),UI_POPUP_NOTIFYDURATION_TIME);
		return;
	}
	if(NULL == (szUtf8PageName = PlxAppMalloc(PLXBROW_MAX_PATH)))
	{
		PlxAppFree(szWidePagePath);
		GoBackToHistory(SCR_ID_PLX_BROW_VIEW);
		PLIB_MessageBox(PMBTYPE_ERROR, NULL, (const WCHAR *)get_string(STR_ID_PLX_BROW_ERR_MEMORYMALLOC),UI_POPUP_NOTIFYDURATION_TIME);
		return;
	}
	AnsiiToUnicodeString((S8 *)szWidePagePath, (S8 *)GetPBUISavePageDirectory());
	pfnUnicodeStrcat(szWidePagePath,g_szCurrSavePageName);
	nWidePageNameLen = pfnUnicodeStrlen((const PS8)szWidePagePath);
	PlxWideCharToUTF8((const char*)szWidePagePath,nWidePageNameLen,szUtf8PageName,PLXBROW_MAX_PATH);
	nRetSave = PWBE_SaveSource(PlxBrowGetBrowserHandle(),szUtf8PageName,PLXBROW_SAVEPAGE_MAXDOCSIZE,PLXBROW_SAVEPAGE_MAXIMGSIZE);
	PlxAppFree(szWidePagePath);
	PlxAppFree(szUtf8PageName);
	switch(nRetSave)
	{
	case  SSR_NODATA:
		GoBackToHistory(SCR_ID_PLX_BROW_VIEW);
	//	DisplayPopup((U8*)get_string(STR_ID_PLX_BROW_SAVEPAGE_ERR_NODATA),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_NODATA), UI_POPUP_NOTIFYDURATION_TIME);
		break;

	case SSR_TOOLARGE:
		GoBackToHistory(SCR_ID_PLX_BROW_VIEW);
	//	DisplayPopup((U8*)get_string(STR_ID_PLX_BROW_SAVEPAGE_ERR_TOOLARGE),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_TOOLARGE), UI_POPUP_NOTIFYDURATION_TIME);
		break;
	
	case SSR_NOFLASHSPACE:
		GoBackToHistory(SCR_ID_PLX_BROW_VIEW);
	//	DisplayPopup((U8*)get_string(STR_ID_PLX_BROW_SAVEPAGE_ERR_NOFLASHSPACE),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_NOFLASHSPACE), UI_POPUP_NOTIFYDURATION_TIME);
		break;

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -