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

📄 plxbrow.c

📁 mtk wap和mms代码。。适应mtk 25。26平台
💻 C
📖 第 1 页 / 共 5 页
字号:
			}
		}
		else if( nUtf8UrlLen < nAverageUrlLen && nTempSavedUrlLen >nAverageUrlLen + URL_LEN_INTERVAL * 4)
		{
			pTemp = PlxAppRealloc(szTempSavedUrl, nAverageUrlLen + URL_LEN_INTERVAL);
			if(NULL != pTemp)
			{
				szTempSavedUrl = pTemp;
				strcpy(szTempSavedUrl,szUtf8Url);
				nTempSavedUrlLen = nAverageUrlLen + URL_LEN_INTERVAL;
			}
			else
			{
				strcpy(szTempSavedUrl, szUtf8Url);
			}
		}
		else
		{
			if(szTempSavedUrl)
				strcpy(szTempSavedUrl,szUtf8Url);
		}
	}
#ifdef __PLXBROW_DEBUG_
	PlxTrace("[%d]  PlxBrowSaveCurrentUrl -----> szTempSavedUrl= %s     ----->  nAverageUrlLen=%d ",__LINE__, szTempSavedUrl, nAverageUrlLen);
#endif

#endif // __PLXBROW_SWITCH_PROTOCOL_
}


/****************************************************************************
* Function	EntryPlxBrowserScreen
* Purpose	enter browser's view screen
* Params	
* Return	
* Remarks	
\****************************************************************************/
void EntryPlxBrowserScreen(void){
	U8* guiBuffer;       /* Buffer holding history data */
	WB_PAGEINFO pageInfo;
//	char*		strUrl;
//	int			nUrlLen;
//	char*		strTempUrl=NULL;
	U16			nRskId;
	
	EntryNewScreen(SCR_ID_PLX_BROW_VIEW, LeaveBrowserScreen, EntryPlxBrowserScreen, NULL);

	/* 2 Get current screen to gui buffer  for history purposes*/
	guiBuffer = GetCurrGuiBuffer(SCR_ID_PLX_BROW_VIEW);	
	
	/* 6 Set current parent id*/
//	SetParentHandler(MENU_ID_PLX_MAIN);
	
	/* 7 Register highlight handler to be called in menu screen */
	RegisterHighlightHandler(ExecuteCurrHiliteHandler);
	
	/* 8 Display Category1 Screen */
	MMI_menu_shortcut_number = -1; 
#ifndef __PLXBROW_RSK_PREVPAGE_
//	nRskId = STR_GLOBAL_QUIT;
	nRskId = STR_ID_PLX_BROW_QUIT;
#else
	nRskId = STR_GLOBAL_BACK;// STR_ID_PLX_BROW_BACK;
#endif

#ifdef __PLXBROW_LOGO_NOSCROLL_		
	if(NULL == plxBrowInfo.hBrow)
		plxBrowInfo.bShowLogo = TRUE;
#ifndef  __PLXBROW_SWITCH_PROTOCOL_
	if(NULL != plxBrowInfo.hBrow && TRUE == PlxBrowIsBrowserNeedRestart())
		plxBrowInfo.bShowLogo = TRUE;
#endif  
#endif //__PLXBROW_LOGO_NOSCROLL_

	PlxDrawBrowserScreen(0, IMG_ID_PLX_BROW, STR_ID_PLX_BROW_OPTION, IMG_GLOBAL_OK,
						  nRskId, IMG_GLOBAL_BACK,
						  guiBuffer);
	plxBrowInfo.bInBrowsing = 1;
	PlxBrowSetCallBackFunc();

	if(NULL == plxBrowInfo.hBrow)
	{
		InitPlxBrowserUI();
		InitPlxBrowserUIData();
//		PlxAppMemcpy(pWebPageTitle, "\x20\x00\x00\x00", 4);
		pfnUnicodeStrcpy((S8*)pWebPageTitle, (const S8*)get_string(STR_ID_PLX_BROW));
		MMI_title_string = (UI_string_type)pWebPageTitle;
		draw_title();

#ifndef __PLXBROW_LOGO_NOSCROLL_		
		pageInfo.nMax = 1;
		pageInfo.nPage = 1;
		pageInfo.nPos = 1;
#ifndef __PLXBROW_DYNCSHOW_HSCROLL_
		PWBCBSetScrollPosProc(0, WBSBT_HORZ, &pageInfo, WBSBS_ENABLE);
#else
		PWBCBSetScrollPosProc(0, WBSBT_HORZ, &pageInfo, WBSBS_DISABLE);
#endif

#ifndef __PLXBROW_DYNCSHOW_VSCROLL_
		PWBCBSetScrollPosProc(0, WBSBT_VERT, &pageInfo, WBSBS_ENABLE);
#else
		PWBCBSetScrollPosProc(0, WBSBT_VERT, &pageInfo, WBSBS_DISABLE);
#endif
#endif //__PLXBROW_LOGO_NOSCROLL_

		PWBDrawBrowserWaitingImage();
		if(FALSE == bInExittingStatus)
			StartPlxBrowser();
		else
		{
			nBrowserStatus = BROWSER_START_WAIT_EXIT;
			PWBDrawStatusBar(&plxBrowInfo.rcStatusBar, STR_ID_PLX_BROW_STATUS_CONNECTSTART);
#ifdef __PLXBROW_DEBUG_
		PlxTrace("[%d]  EntryPlxBrowserScreen ----->Waitting Start the browser! ",__LINE__);
#endif
		}
//		WaittingStartPlxBrowser();
		
	}

#ifndef  __PLXBROW_SWITCH_PROTOCOL_
	else if(NULL != plxBrowInfo.hBrow && TRUE == PlxBrowIsBrowserNeedRestart())
	{	
//		PlxAppMemcpy(pWebPageTitle, "\x20\x00\x00\x00", 4);
		pfnUnicodeStrcpy((S8*)pWebPageTitle, (const S8*)get_string(STR_ID_PLX_BROW));
		MMI_title_string = (UI_string_type)pWebPageTitle;
		draw_title();

#ifndef __PLXBROW_LOGO_NOSCROLL_
		pageInfo.nMax = 1;
		pageInfo.nPage = 1;
		pageInfo.nPos = 1;
#ifndef __PLXBROW_DYNCSHOW_HSCROLL_
		PWBCBSetScrollPosProc(0, WBSBT_HORZ, &pageInfo, WBSBS_ENABLE);
#else
		PWBCBSetScrollPosProc(0, WBSBT_HORZ, &pageInfo, WBSBS_DISABLE);
#endif

#ifndef __PLXBROW_DYNCSHOW_VSCROLL_
		PWBCBSetScrollPosProc(0, WBSBT_VERT, &pageInfo, WBSBS_ENABLE);
#else
		PWBCBSetScrollPosProc(0, WBSBT_VERT, &pageInfo, WBSBS_DISABLE);
#endif
#endif //__PLXBROW_LOGO_NOSCROLL_

		PWBDrawBrowserWaitingImage();
		plxBrowInfo.bShowLogo = TRUE;
/*		do this when the url changed notify message comes and the PWBE_NewPage is called 
		strUrl =(char*) PWBE_GetCurURLName(plxBrowInfo.hBrow);
		if(NULL != strUrl && (0 != (nUrlLen = strlen(strUrl))))
		{
			if(NULL != (szTempSavedUrl = PlxAppRealloc(szTempSavedUrl,nUrlLen+1)))
				strcpy(szTempSavedUrl,strUrl);
		}
*/		
#ifdef __PLXBROW_DEBUG_
		PlxTrace("[%d]  EntryPlxBrowserScreen -----> Destroy Engine and waitting restart the browser! ", __LINE__);
#endif
		DeInitPlxBrowserEngine();

	}
#endif // __PLXBROW_SWITCH_PROTOCOL_

	else{
#ifdef __PLXBROW_DEBUG_
		if(TRUE == PlxBrowIsBrowserNeedRestart())
			PlxTrace("[%d]  EntryPlxBrowserScreen -----> Gateway, port or net account id is changed! ",__LINE__);
		else if(TRUE == PlxBrowIsBrowserOptionChanged())
			PlxTrace("[%d]  EntryPlxBrowserScreen -----> Some options excluding network setting are changed ! ",__LINE__);
#endif

#ifdef  __PLXBROW_SWITCH_PROTOCOL_
		if(TRUE == PlxBrowIsBrowserNeedRestart())
		{
			PlxBrowResetProtocol();
			InitPlxBrowserEngineOption();
			PlxBrowResetSettingChangeFlag();
		}
		else if(TRUE == PlxBrowIsBrowserOptionChanged())
		{
			InitPlxBrowserEngineOption();
			PlxBrowResetSettingChangeFlag();
		}
#else		
		if(TRUE == PlxBrowIsBrowserOptionChanged())
		{
			InitPlxBrowserEngineOption();
			PlxBrowResetSettingChangeFlag();
		}
#endif // __PLXBROW_SWITCH_PROTOCOL_

		MMI_title_string = (UI_string_type)pWebPageTitle;
		draw_title();
		if (plxBrowInfo.bShowLogo) 
		{
			PWBDrawBrowserWaitingImage();
		}
		rePaintBrowser();
	}
	
}


/****************************************************************************
* Function	PlxBrowSetBrowserRskGoBack
* Purpose	
* Params	
* Return	
* Remarks	
\****************************************************************************/
void PlxBrowSetBrowserRskGoBack(void)
{
#ifdef __PLXBROW_RSK_PREVPAGE_
	if(FALSE == plxBrowInfo.bInBrowsing)
		return;
	if(TRUE == PlxBrowIsPrevPageEnable())
	{
//		ChangeRightSoftkey(STR_GLOBAL_BACK/* STR_ID_PLX_BROW_BACK*/, IMG_GLOBAL_BACK );
//		EnableRightSoftkey(STR_GLOBAL_BACK/* STR_ID_PLX_BROW_BACK*/,IMG_GLOBAL_BACK );
		SetRightSoftkeyFunction(MenuGoBack,KEY_EVENT_UP);
	}
	else
	{
//		ChangeRightSoftkey(0, IMG_GLOBAL_BACK );
//		DisableRightSoftkey(STR_GLOBAL_BACK/* STR_ID_PLX_BROW_BACK*/,IMG_GLOBAL_BACK );
		SetRightSoftkeyFunction(BrowserRskToMainList, KEY_EVENT_UP);
	}
#endif 
}


/****************************************************************************
* Function	BrowserRskToMainList
* Purpose	
* Params	
* Return	
* Remarks	
\****************************************************************************/

static void  BrowserRskToMainList(void)
{	
#ifdef __PLXBROW_RSK_PREVPAGE_
		ExitBrowserLskFunc();
#endif	
}


/****************************************************************************
* Function	PlxBrowSetCallBackFunc
* Purpose	draw the web page view screen
* Params	
* Return	
* Remarks	
\****************************************************************************/
static void PlxBrowSetCallBackFunc(void){
	U16 keyNum[] = {KEY_0, KEY_1, KEY_2, KEY_3, KEY_4, KEY_5, KEY_6,KEY_7,KEY_8,KEY_9,KEY_STAR, KEY_POUND};				
#ifndef  __PLXBROW_SUPPORT_VOLENTER_KEY_
	U16 keyNeeded[] = {KEY_LEFT_ARROW, KEY_RIGHT_ARROW, KEY_UP_ARROW, KEY_DOWN_ARROW, KEY_ENTER, KEY_VOL_UP, KEY_VOL_DOWN};
#else
	U16 keyNeeded[] = {KEY_LEFT_ARROW, KEY_RIGHT_ARROW, KEY_UP_ARROW, KEY_DOWN_ARROW, KEY_ENTER, KEY_VOL_UP, KEY_VOL_DOWN, PBKEY_VOL_ENTER};
#endif


#ifdef __PLXBROW_RSK_PREVPAGE_
	PlxBrowSetBrowserRskGoBack();
#else
	SetRightSoftkeyFunction(EntryPlxBrowserExitConfirm,KEY_EVENT_UP);
#endif
	SetLeftSoftkeyFunction(EntryPlxBrowserMenuScreen, KEY_EVENT_UP);
 	SetGroupKeyHandler(PWBProcessKeyEvent, keyNeeded, sizeof(keyNeeded)/sizeof(U16), KEY_EVENT_UP);
	SetGroupKeyHandler(PWBProcessKeyEvent, keyNeeded, sizeof(keyNeeded)/sizeof(U16), KEY_EVENT_DOWN);
	SetGroupKeyHandler(PWBProcessCharEvent, keyNum, sizeof(keyNum)/sizeof(U16), KEY_EVENT_DOWN);


#ifdef __MMI_TOUCH_SCREEN__
	mmi_pen_register_down_handler(PWBOnTouchPenDown);
	mmi_pen_register_move_handler(PWBOnTouchPenMove);
	mmi_pen_register_up_handler(PWBOnTouchPenUp);
	mmi_pen_register_repeat_handler(PWBOnTouchPenRepeat);
#endif //__MMI_TOUCH_SCREEN__

	SetKeyHandler(BrowserKeyEndHandler,KEY_END,KEY_EVENT_DOWN);
	SetDelScrnIDCallbackHandler(SCR_ID_PLX_BROW_VIEW,BrowserHistoryCBHhandler);
}


/****************************************************************************
* Function	BrowserHistoryCBHhandler
* Purpose	
* Params	
* Return	
* Remarks	
\****************************************************************************/
static U8 BrowserHistoryCBHhandler(void* param)
{
	GUICBExteriorKeyEndHandler();
	if(TRUE == bWaitBrowViewExKeyEndFlag)
	{
		bWaitBrowViewExKeyEndFlag = FALSE;
		DeInitPlxBrowser();
	}	
	if( 0 == param && FALSE == IsScreenPresent(SCR_ID_PLX_BROW_MAIN)
		&& FALSE == IsScreenPresent(SCR_ID_PLX_BROW_PUSH))
	{
		PAPP_WapShutDown();
	}	
	return FALSE;
}


/****************************************************************************
* Function	LeaveBrowserScreen
* Purpose	do sth. when leave browse screen
* Params	
* Return	
* Remarks	
\****************************************************************************/
static void LeaveBrowserScreen(void){
	PlxEndShowAllGifs();
	plxBrowInfo.bInBrowsing = 0;
	pixtel_UI_cancel_timer(StartPlxBrowser);
}


/****************************************************************************
* Function	
* Purpose	
* Params	
* Return	
* Remarks	
\****************************************************************************/
void MenuSetHomePage(void)
{
	const  char* szUtf8Url;
	 szUtf8Url =PWBE_GetCurURLName(PlxBrowGetBrowserHandle());
	 if(NULL == szUtf8Url)
	 {
	 	GoBackHistory();
		PLIB_MessageBox(PMBTYPE_WARNING, NULL, (const WCHAR *)get_string(STR_ID_PLX_BROW_SETHOMEPAGE_ERR_NULLURL), UI_POPUP_NOTIFYDURATION_TIME);
	 }		
	else
	{
		GoBackHistory();
		if(0 == PlxBrowSetHomepage((const char*)szUtf8Url))
			PLIB_MessageBox(PMBTYPE_SUCCESS, NULL,(const WCHAR *) get_string(STR_ID_PLX_BROW_SETHOMEPAGE_SUCCESS),UI_POPUP_NOTIFYDURATION_TIME);
	}
}


/****************************************************************************
* Function	
* Purpose	
* Params	
* Return	
* Remarks	
\****************************************************************************/
#ifndef __PLXBROW_DISABLE_HANGUP_
void	MenuHangUp(void)
{
	GoBackHistory();
	PWBE_Hangup(plxBrowInfo.hBrow);
}
#endif		
/****************************************************************************
* Function	EntryOfPlxBrowUrlInput
* Purpose	
* Params	
* Return	
* Remarks	
\****************************************************************************/
void EntryOfPlxBrowUrlInput(void)
{
	if(NULL != szOldLinkInput)
		pfnUnicodeStrcpy((S8*)jumpToBuffer,(const S8*)szOldLinkInput);
	else
		AnsiiToUnicodeString((S8 *)jumpToBuffer, (S8 *)"http://");
	EntryOfPlxBrowserJumptoScreen();
}

/****************************************************************************
* Function	EntryOfPlxBrowserJumptoScreen
* Purpose	enter jumpto url editor screen
* Params	
* Return	
* Remarks	
\****************************************************************************/
static void EntryOfPlxBrowserJumptoScreen(void){
	U8* guiBuffer;       /* Buffer holding history data */
	S16 nInputType;

	EntryNewScreen(SCR_ID_PLX_BROW_JUMPTO, NULL, EntryOfPlxBrowserJumptoScreen, NULL);
	
	/* 2 Get current screen to gui buffer  for history purposes*/
	guiBuffer = GetCurrGuiBuffer(SCR_ID_PLX_BROW_JUMPTO);	
//	RegisterInputBoxEmptyFunction(ChangeEditScreenLskLabel);
//	RegisterInputBoxNotEmptyFunction(ChangeEditScreenLskLabel);

#ifndef _PLXBROW_INPUT_TYPE_
	nInputType = INPUT_TYPE_ALPHANUMERIC_LOWERCASE|INPUT_TYPE_OVERRIDE_DEFAULT|INPUT_TYPE_USE_ONLY_ENGLISH_MODES;
#else
	nInputType = INPUT_TYPE_ALPHANUMERIC_LOWERCASE|INPUT_TYPE_OVERRIDE_DEFAULT;
#endif //_PLXBROW_INPUT_TYPE_

	ShowCategory5Screen(STR_ID_PLX_BROW_JUMPTO, IMG_ID_PLX_BROW,
		STR_GLOBAL_OPTIONS, IMG_GLOBAL_OPTIONS,
		STR_GLOBAL_BACK, IMG_GLOBAL_BACK,
		nInputType,  
		jumpToBuffer, PLXBROW_URL_NAME_LEN ,guiBuffer);
	
	/* 9.Register function with right softkey */
	SetCategory5RightSoftkeyFunction(ExitInputJumpto,KEY_EVENT_UP);
	
	/*Register funtion with left softkey*/
	SetLeftSoftkeyFunction(EnterJumpToUrlOK, KEY_EVENT_UP);
//	SetKeyHandler(EnterJumpToUrlOK, KEY_ENTER, KEY_EVENT_UP);
//	ClearKeyHandler(KEY_END,KEY_EVENT_DOWN);
	SetKeyHandler(BrowserKeyEndHandler, KEY_END,KEY_EVENT_DOWN);
	SetDelScrnIDCallbackHandler(SCR_ID_PLX_BROW_JUMPTO,BrowserHistoryCBHhandler);
	bWaitBrowViewExKeyEndFlag = TRUE;
	bIsLinkInput = TRUE;
#ifdef __PLXBROW_PUSH_TEST_
	SetKeyHandler(TestSIPush,KEY_VOL_UP, KEY_EVENT_UP);
	SetKeyHandler(TestTextPush,KEY_VOL_DOWN, KEY_EVENT_UP);
#endif //__PLXBROW_PUSH_TEST_	

}



/****************************************************************************
* Function	EnterJumpToUrlOK
* Purpose	
* Params	
* Return	
* Remarks	
\****************************************************************************/
static void EnterJumpToUrlOK (void)
{
    PLIB_RegisterIMEDoneNotify (ConfirmInputJumpTo);
	PLIB_IMEOptionEntry ();
	SetKeyHandler(BrowserKeyEndHandler, KEY_END,KEY_EVENT_DOWN);

}

⌨️ 快捷键说明

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