📄 plxbrow.c
字号:
}
}
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 + -