📄 jbrowsermmimain.c
字号:
* RETURNS
* void
*****************************************************************************/
void mmi_brw_entry_goto_url(void)
{
/*----------------------------------------------------------------*/
/* Local Variables */
/*----------------------------------------------------------------*/
MMI_JDD_UI_WINDOW_INFO_STRUCT *jdd_window_info_struct_p = NULL;
JC_UINT32 uiWindowID = 0;
U8 *guiBuffer;
U8 flag = 0;
U8 category501_msgStr[4] = {0, };
/*----------------------------------------------------------------*/
/* Code Body */
/*----------------------------------------------------------------*/
uiWindowID = mmi_jdd_ui_get_appWindowID(E_TASK_BROWSER_CORE);
jdd_window_info_struct_p = (MMI_JDD_UI_WINDOW_INFO_STRUCT*) uiWindowID;
/* This will redraw the Primary MMI Window screen after any interrupt */
PRINT_INFORMATION(("Enter Browser Screen 501"));
EntryNewScreen(SCR_ID_BRW_JBROWSER_MAIN, mmi_brw_exit_goto_url, mmi_brw_entry_goto_url, NULL);
guiBuffer = GetCurrGuiBuffer(SCR_ID_BRW_JBROWSER_MAIN);
if (guiBuffer != NULL)
{
flag = 1;
}
if (IsScreenPresent(SCR_ID_BRW_JBROWSER_MAIN) && GetCurrScrnId() != SCR_ID_BRW_JBROWSER_MAIN)
{
if(g_brw_cntx.launch_brw_ext_app)
{
DeleteScreenIfPresent(SCR_ID_BRW_JBROWSER_MAIN);
}
else
{
DeleteNScrId(SCR_ID_BRW_JBROWSER_MAIN);
}
}
g_brw_cntx.launch_brw_ext_app = MMI_FALSE;
/* Here we are applying one hack to remove the DALMATIAN DOG IMAGE from the category screen.
We will display the image whenever the browser is launched for the first time.
For the first time we will pass category501_msgID = 0 so it will display the DOG IMAGE
and after this we will pass a string ID which has been populated for this specially to
display one blank space.Because, a single chracter can restrict the DALMATIAN DOG IMAGE
to be rendered on Screen. */
#ifdef __MMI_UI_DALMATIAN_EDITOR__
AnsiiToUnicodeString((PS8) category501_msgStr, " ");
#endif
ShowCategory501Screen(
0,/* STR_ID_BRW_INTERNET_SERVICES, */
0,/*GetRootTitleIcon(SERVICES_WAP_MENU_ID),*/
0,/* g_brw_LskLabel, */
0,
0,/* g_brw_RskLabel, */
0,
category501_msgStr,
guiBuffer);
/* PIXTEL_JATAAYU added */
if (jdd_window_info_struct_p != NULL)
{
if (jdd_window_info_struct_p->focussedCtrlTitleControlID != 0)
{
MMI_title_string = (UI_string_type) mmi_brw_get_focussed_ctrl_title();
}
else if (jdd_window_info_struct_p->winProp.pszCaptionValue != NULL)
{
MMI_title_string = (UI_string_type) jdd_window_info_struct_p->winProp.pszCaptionValue;
}
else
{
/* MMI_title_string = (UI_string_type) brw_current_url; */
}
}
if (g_brw_page_cntx.brw_PageFetchStatus)
{
g_brw_title_icon_animation_status = MMI_FALSE;
mmi_brw_show_animated_title();
}
else
{
mmi_brw_show_normal_title();
}
if (E_FALSE == mmi_jdd_ui_get_jdd_flag(JDD_RENDERING_STARTED))
{
mmi_brw_start_animated_splash_screen();
}
mmi_brw_clear_key_handler(KEY_VOL_UP);
mmi_brw_clear_key_handler(KEY_VOL_DOWN);
SetKeyHandler(mmi_jdd_ui_left_key_hdlr, KEY_LEFT_ARROW, KEY_EVENT_DOWN);
SetKeyHandler(mmi_jdd_ui_right_key_hdlr, KEY_RIGHT_ARROW, KEY_EVENT_DOWN);
SetKeyHandler(mmi_jdd_ui_down_key_hdlr, KEY_DOWN_ARROW, KEY_EVENT_DOWN);
SetKeyHandler(mmi_jdd_ui_down_key_hdlr, KEY_VOL_DOWN, KEY_EVENT_DOWN);
SetKeyHandler(mmi_jdd_ui_up_key_hdlr, KEY_UP_ARROW, KEY_EVENT_DOWN);
SetKeyHandler(mmi_jdd_ui_up_key_hdlr, KEY_VOL_UP, KEY_EVENT_DOWN);
SetKeyHandler(mmi_jdd_ui_wap_key_hdlr, KEY_WAP, KEY_EVENT_UP); /* replaced key event down to key event up added by tk */
SetKeyHandler(mmi_jdd_ui_wap_key_hdlr, KEY_SEND, KEY_EVENT_UP); /* replaced key event down to key event up added by tk */
mmi_brw_register_endkey_handler();
/* Below added by Shantanu for accesskey Support - 20060412 */
mmi_brw_register_accesskey_handler();
#ifdef __MMI_TOUCH_SCREEN__
mmi_jdd_ui_register_pen_handler();
#endif
if (flag == 0)
{
mmi_brw_goto_url();
}
else if (g_brw_page_cntx.brw_PageFetchStatus)
{
g_brw_LskLabel = 0;
g_brw_RskLabel = STR_GLOBAL_CANCEL;
g_brw_LskFunPtr = NULL;
g_brw_RskFunPtr = mmi_brw_stop_fetch;
}
else if (g_brw_page_cntx.brw_PageRefreshDispStatus)
{
g_brw_LskLabel = 0;
g_brw_RskLabel = STR_GLOBAL_CANCEL;
g_brw_LskFunPtr = NULL;
g_brw_RskFunPtr = NULL;
}
/* else
{
if (!g_brw_ActiveScreenFlag)
{
g_brw_LskLabel = STR_GLOBAL_OPTIONS;
g_brw_LskFunPtr = mmi_brw_rendered_page_options;
g_brw_RskLabel = 0;
g_brw_RskFunPtr = NULL;
if (E_TRUE == mmi_brw_is_back())
{
g_brw_RskLabel = STR_GLOBAL_BACK;
g_brw_RskFunPtr = mmi_brw_goto_prev_page;
}
g_brw_ActiveScreenFlag = 0;
}
if (jdd_window_info_struct_p != NULL)
{
jdd_MMIShowWindow(uiWindowID, E_TRUE);
}
}
*/
if(flag && (jdd_window_info_struct_p != NULL))
{
jdd_MMIShowWindow(uiWindowID, E_TRUE);
}
//g_brw_page_cntx.brw_isRefreshDisplay = MMI_FALSE;
ChangeRightSoftkey(g_brw_RskLabel, 0);
ChangeLeftSoftkey(g_brw_LskLabel, 0);
SetLeftSoftkeyFunction((FuncPtr) g_brw_LskFunPtr, KEY_EVENT_UP);
SetRightSoftkeyFunction((FuncPtr) g_brw_RskFunPtr, KEY_EVENT_UP);
if (g_brw_notificationFlag)
{
g_brw_notificationFlag = 0;
mmi_jdd_ui_entry_notification_msg_popup();
}
}
/*****************************************************************************
* FUNCTION
* mmi_brw_start_animated_splash_screen
* DESCRIPTION
*
* PARAMETERS
* void
* RETURNS
* void
*****************************************************************************/
void mmi_brw_start_animated_splash_screen(void)
{
/*----------------------------------------------------------------*/
/* Local Variables */
/*----------------------------------------------------------------*/
DeviceCharacteristics dev_ch = {0};
U8 *splash_img = NULL;
S32 img_x = 0, img_y = 0, img_width = 0, img_height = 0;
/*----------------------------------------------------------------*/
/* Code Body */
/*----------------------------------------------------------------*/
mmi_brw_stop_animated_splash_screen();
jdd_MMIGetDeviceCharacteristics(&dev_ch);
splash_img = (PU8) GetImage(IMG_ID_BRW_SPLASH_SCREEN);
gui_measure_image(splash_img, &img_width, &img_height);
img_x = dev_ch.uiWindowX + ((dev_ch.uiRenderingWidth + dev_ch.uiScrollBarWidth - img_width) >> 1);
img_y = dev_ch.uiWindowY + ((dev_ch.uiRenderingHeight + dev_ch.uiScrollBarWidth - img_height) >> 1);
gui_lock_double_buffer();
gui_push_clip();
gui_set_clip(
dev_ch.uiWindowX,
dev_ch.uiWindowY,
dev_ch.uiWindowX + dev_ch.uiRenderingWidth + dev_ch.uiScrollBarWidth - 1,
dev_ch.uiWindowY + dev_ch.uiRenderingHeight + dev_ch.uiScrollBarWidth - 1);
gui_fill_rectangle(
dev_ch.uiWindowX,
dev_ch.uiWindowY,
dev_ch.uiWindowX + dev_ch.uiRenderingWidth + dev_ch.uiScrollBarWidth - 1,
dev_ch.uiWindowY + dev_ch.uiRenderingHeight + dev_ch.uiScrollBarWidth - 1,
gui_color(255, 255, 255));
gdi_image_draw_animation(img_x, img_y, splash_img, &brw_splash_ani_handle);
gui_pop_clip();
gui_unlock_double_buffer();
gui_BLT_double_buffer(
dev_ch.uiWindowX,
dev_ch.uiWindowY,
dev_ch.uiWindowX + dev_ch.uiRenderingWidth + dev_ch.uiScrollBarWidth - 1,
dev_ch.uiWindowY + dev_ch.uiRenderingHeight + dev_ch.uiScrollBarWidth - 1);
}
/*****************************************************************************
* FUNCTION
* mmi_brw_stop_animated_splash_screen
* DESCRIPTION
*
* PARAMETERS
* void
* RETURNS
* void
*****************************************************************************/
void mmi_brw_stop_animated_splash_screen(void)
{
/*----------------------------------------------------------------*/
/* Local Variables */
/*----------------------------------------------------------------*/
DeviceCharacteristics dev_ch = {0};
/*----------------------------------------------------------------*/
/* Code Body */
/*----------------------------------------------------------------*/
if (brw_splash_ani_handle != GDI_ERROR_HANDLE)
{
if (GetActiveScreenId() == SCR_ID_BRW_JBROWSER_MAIN)
{
gui_lock_double_buffer();
gdi_image_stop_animation(brw_splash_ani_handle);
brw_splash_ani_handle = GDI_ERROR_HANDLE;
/* Now fill the area with WHITE COLOR */
jdd_MMIGetDeviceCharacteristics(&dev_ch);
gui_push_clip();
gui_set_clip(
dev_ch.uiWindowX,
dev_ch.uiWindowY,
dev_ch.uiWindowX + dev_ch.uiRenderingWidth + dev_ch.uiScrollBarWidth - 1,
dev_ch.uiWindowY + dev_ch.uiRenderingHeight + dev_ch.uiScrollBarWidth - 1);
gui_fill_rectangle(
dev_ch.uiWindowX,
dev_ch.uiWindowY,
dev_ch.uiWindowX + dev_ch.uiRenderingWidth + dev_ch.uiScrollBarWidth - 1,
dev_ch.uiWindowY + dev_ch.uiRenderingHeight + dev_ch.uiScrollBarWidth - 1,
gui_color(255, 255, 255));
gui_pop_clip();
gui_unlock_double_buffer();
gui_BLT_double_buffer(
dev_ch.uiWindowX,
dev_ch.uiWindowY,
dev_ch.uiWindowX + dev_ch.uiRenderingWidth + dev_ch.uiScrollBarWidth - 1,
dev_ch.uiWindowY + dev_ch.uiRenderingHeight + dev_ch.uiScrollBarWidth - 1);
}
else
{
gdi_image_stop_animation(brw_splash_ani_handle);
brw_splash_ani_handle = GDI_ERROR_HANDLE;
}
}
}
/*****************************************************************************
* FUNCTION
* mmi_brw_register_endkey_handler
* DESCRIPTION
* Function for registration of end key handler in case of CSD bearer
* PARAMETERS
* void
* RETURNS
* void
*****************************************************************************/
void mmi_brw_register_endkey_handler(void)
{
/*----------------------------------------------------------------*/
/* Local Variables */
/*----------------------------------------------------------------*/
nvram_wap_profile_content_struct *activated_wap_profile;
/*----------------------------------------------------------------*/
/* Code Body */
/*----------------------------------------------------------------*/
activated_wap_profile = mmi_ph_get_activated_wap_profile();
if (mmi_ph_check_data_account_type(activated_wap_profile->data_account) == PH_DATA_ACCOUNT_CSD)
{
SetKeyHandler(mmi_brw_goto_idle_screen_event, KEY_END, KEY_EVENT_DOWN);
}
}
/*****************************************************************************
* FUNCTION
* mmi_brw_goto_idle_screen
* DESCRIPTION
* Function for displaying the idle screen
* PARAMETERS
* void
* RETURNS
* void
*****************************************************************************/
void mmi_brw_goto_idle_screen(void)
{
if(g_brw_page_cntx.brw_PageFetchStatus && (!g_brw_page_cntx.brw_pageRenderStatus))
{
jdi_BrowserDisconnect(pBrowserCtxt);
}
else
{
DisplayIdleScr
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -