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

📄 plxbrow.c

📁 mtk wap和mms代码。。适应mtk 25。26平台
💻 C
📖 第 1 页 / 共 5 页
字号:
/****************************************************************************
* Function	MenuViewCurrFocusPage
* Purpose  	
* Params	
* Return	
* Remarks	
\****************************************************************************/
#ifdef  __PLXBROW_KEYENTER_NOSUPPORT_
static  void  MenuViewCurrFocusPage(void)
{
	int   vKey = WBKEY_F5;
	int	nType;
	int	flag = 0;
	
	if(NULL == plxBrowInfo.hBrow)
		return;

	nType = PWBE_GetCurFocusType(plxBrowInfo.hBrow);
	if(WBFOCUS_SELECT == nType || WBFOCUS_EDIT == nType)
		flag = 1;
	
	if(0 ==  flag)
		GoBackHistory();
	PWBE_ProcessEvent(plxBrowInfo.hBrow, WBET_KEYDOWN, vKey, 0);
	if(1 == flag)
	{
		DeleteScreenIfPresent(SCR_ID_PLX_BROW_MENU);
	}
}
#endif


/****************************************************************************
* Function	MenuOpenHomePage
* Purpose	when menu item homepage confirmed
* Params	
* Return	
* Remarks	
\****************************************************************************/
static void MenuOpenHomePage(void){
	GoBackHistory();
//	OpenHomePage();
	PlxBrowOpenWebPage((char*)PlxBrowGetHomepage()); 

}


/****************************************************************************
* Function	MenuRefreshCurPage
* Purpose	when menu item refresh confirmed
* Params	
* Return	
* Remarks	
\****************************************************************************/
static void MenuRefreshCurPage(void){
	GoBackHistory();
	PWBE_Refresh(plxBrowInfo.hBrow);
}


/****************************************************************************
* Function	MenuGoBack
* Purpose	browser menu back item hilight handler
* Params	
* Return	
* Remarks	
\****************************************************************************/
static void MenuGoBack(void){
#ifndef  __PLXBROW_RSK_PREVPAGE_
	GoBackHistory();
#endif
	PWBE_PrevPage(plxBrowInfo.hBrow);
}


/****************************************************************************
* Function	MenuStop
* Purpose	browser menu stop item hilight handler
* Params	
* Return	
* Remarks	
\****************************************************************************/
static void MenuStop(void){
	GoBackHistory();
	PWBE_Stop(plxBrowInfo.hBrow);
}


/****************************************************************************
* Function	rePaintBrowser
* Purpose	when the browse need paint, call this
* Params	
* Return	
* Remarks	
\****************************************************************************/
static void rePaintBrowser(void){
	WB_PAGEINFO pageInfo;
	WB_RECT rcPt;
	WB_SBSTATE  iScrollShow;


#ifdef __PLXBROW_LOGO_NOSCROLL_		
	if(0 == plxBrowInfo.bShowLogo)
#endif
	{
		//set horizontal scrollbar
		PWBE_GetPageInfo(plxBrowInfo.hBrow, WBSBT_HORZ, &pageInfo);
#ifdef __PLXBROW_DYNCSHOW_HSCROLL_
		if(pageInfo.nMax > pageInfo.nPage )
			iScrollShow = WBSBS_ENABLE;
		else
			iScrollShow = WBSBS_DISABLE;
#else
		iScrollShow = WBSBS_ENABLE;
#endif
		PWBCBSetScrollPosProc(0, WBSBT_HORZ, &pageInfo, iScrollShow);
		
		//set vertical scrollbar
		PWBE_GetPageInfo(plxBrowInfo.hBrow, WBSBT_VERT, &pageInfo);
#ifdef __PLXBROW_DYNCSHOW_VSCROLL_
		if(pageInfo.nMax > pageInfo.nPage )
			iScrollShow = WBSBS_ENABLE;
		else
			iScrollShow = WBSBS_DISABLE;
#else
		iScrollShow = WBSBS_ENABLE;
#endif
		
		PWBCBSetScrollPosProc(0, WBSBT_VERT, &pageInfo, iScrollShow);
	}
	rcPt.left = rcPt.top = 0;
    rcPt.right = plxBrowInfo.rcInScreen.right - plxBrowInfo.rcInScreen.left;
    rcPt.bottom = plxBrowInfo.rcInScreen.bottom - plxBrowInfo.rcInScreen.top;

	PWBCBBeginDisplay(0, 0);
	PWBE_RefreshPaint(plxBrowInfo.hBrow, &rcPt);
	PWBCBEndDisplay(0);
	PWBDrawStatusBar(&plxBrowInfo.rcStatusBar, plxBrowInfo.curStatusStr);
}


/****************************************************************************
* Function	PWBProcessKeyEvent
* Purpose	receive & deal with keypad event
* Params	
* Return	
* Remarks	
\****************************************************************************/
static void PWBProcessKeyEvent(){
	U16 keyCode, keyType;
	WB_VKEY vKey;

	GetkeyInfo(&keyCode, &keyType);
	switch(keyCode) {
	case KEY_UP_ARROW:
		vKey = WBKEY_UP;
#ifdef __PLXBROW_UPDOWNKEY_TO_SWITCHPAGE_
		if(KEY_EVENT_DOWN == keyType)
			PWBE_ProcessEvent(plxBrowInfo.hBrow,WBET_KEYDOWN, WBKEY_PAGEUP, 0);
		return;
#endif
		break;
		
	case KEY_DOWN_ARROW:
		vKey = WBKEY_DOWN;
#ifdef __PLXBROW_UPDOWNKEY_TO_SWITCHPAGE_
		if(KEY_EVENT_DOWN == keyType)
			PWBE_ProcessEvent(plxBrowInfo.hBrow,WBET_KEYDOWN, WBKEY_PAGEDOWN, 0);
		return;
#endif
		break;

	case KEY_LEFT_ARROW:
		vKey = WBKEY_LEFT;
		break;

	case KEY_RIGHT_ARROW:
		vKey = WBKEY_RIGHT;
		break;

	case KEY_VOL_UP:
		vKey = WBKEY_UP;
#ifdef __PLXBROW_VOLKEY_TO_SWITCHPAGE_
		if(KEY_EVENT_DOWN == keyType)
			PWBE_ProcessEvent(plxBrowInfo.hBrow,WBET_VERTSCROLL, WBKEY_PAGEUP, 0);
		return;
#endif
		break;

	case KEY_VOL_DOWN:
		vKey = WBKEY_DOWN;
#ifdef __PLXBROW_VOLKEY_TO_SWITCHPAGE_
		if(KEY_EVENT_DOWN == keyType)
			PWBE_ProcessEvent(plxBrowInfo.hBrow,WBET_VERTSCROLL, WBKEY_PAGEDOWN, 0);
		return;
#endif
		break;

	case KEY_ENTER:
		vKey = WBKEY_F5;
		break;

#ifdef  __PLXBROW_SUPPORT_VOLENTER_KEY_
	case PBKEY_VOL_ENTER:
		vKey = WBKEY_F5;
		break;
#endif

	default:
		return;

	}

	if (KEY_EVENT_UP == keyType) {
		//key up
		PWBE_ProcessEvent(plxBrowInfo.hBrow, WBET_KEYUP, vKey, 0);
	}
	else if(KEY_EVENT_DOWN == keyType){
		//key down
		PWBE_ProcessEvent(plxBrowInfo.hBrow, WBET_KEYDOWN, vKey, 0);
	}
}


/****************************************************************************
* Function	PWBProcessCharEvent
* Purpose	receive & deal with input event
* Params	
* Return	
* Remarks	
\****************************************************************************/
static void PWBProcessCharEvent(){
	U16		keyCode;
	U16		keyType;
	char	strCode;
	
	GetkeyInfo(&keyCode, &keyType);
	if(KEY_EVENT_DOWN != keyType)
		return;
	switch(keyCode)
	{
	case KEY_0:
	case KEY_1:
	case KEY_2:
	case KEY_3:
	case KEY_4:
	case KEY_5:
	case KEY_6:
	case KEY_7:
	case KEY_8:
	case KEY_9:
		strCode = '0' + keyCode - KEY_0;
		break;
	case KEY_STAR:
		strCode = '*';
		break;
	case KEY_POUND:
		strCode = '#';
		break;
	default:
		return;
	}	
	PWBE_ProcessEvent(plxBrowInfo.hBrow, WBET_CHAR, (char)strCode, 0);
}


/*******************************************************************************/
// Modify for MTK Emu problem

/****************************************************************************
* Function	testPaintEmu
* Purpose	repaint screen in emu
* Params	
* Return	
* Remarks	
\****************************************************************************/
void testPaintEmu(void){
//	pixtel_UI_BLT_double_buffer(0, 0, 172, 220);
	pixtel_UI_BLT_double_buffer(0, 0, UI_DEVICE_WIDTH, UI_DEVICE_HEIGHT);
}


/****************************************************************************
* Function	DrawSpaceInScrollBars
* Purpose	draw the space between horizonal and vertical scrollbars while two of scrollbars are showing
* Params	
* Return	
* Remarks	
\****************************************************************************/
void DrawSpaceInScrollBars(void)
{
#if !(defined (__PLXBROW_DISABLE_VSCROLL_) || defined(__PLXBROW_DISABLE_HSCROLL_))

	WB_RECT 		rcSpace ;
	int				bar_height;
	int				nHScrollWidth;
	int				nVScrollWidth;

#ifdef  __PLXBROW_LOGO_NOSCROLL_
	if(plxBrowInfo.bShowLogo)
		return;
#endif //__PLXBROW_LOGO_NOSCROLL_
	
	bar_height = GetBrowserStatusBarHeight();
	nHScrollWidth = GetBrowserHScrollWidth();
	nVScrollWidth = GetBrowserVScrollWidth();

	rcSpace.left =  MMI_content_width - (nVScrollWidth) ;
	rcSpace.top =  MMI_content_height + MMI_title_height + MMI_title_y - (nHScrollWidth) - bar_height;
	rcSpace.right = MMI_content_width;
	rcSpace.bottom =rcSpace.top+ nHScrollWidth ;//+ 1; 

	pixtel_UI_lock_double_buffer();
	pixtel_UI_push_clip();
	pixtel_UI_set_clip(rcSpace.left, rcSpace.top, rcSpace.right, rcSpace.bottom);

	#if defined(__PLXBROW_DYNCSHOW_HSCROLL_) || defined (__PLXBROW_DYNCSHOW_VSCROLL_)
	{
		WB_PAGEINFO HPageInfo;
		WB_PAGEINFO VPageInfo;
		
		PWBE_GetPageInfo(plxBrowInfo.hBrow, WBSBT_HORZ, &HPageInfo);
		PWBE_GetPageInfo(plxBrowInfo.hBrow, WBSBT_VERT, &VPageInfo);
		if((plxBrowInfo.hBrow != NULL)  &&  (HPageInfo.nMax > HPageInfo.nPage && VPageInfo.nMax > VPageInfo.nPage))
		{
			pixtel_UI_draw_filled_area((s32)rcSpace.left, (s32)rcSpace.top,	(s32)rcSpace.right,	(s32)rcSpace.bottom,
					current_MMI_theme->scrollbar_background_filler);
		}
	}
	#else  
	{
		pixtel_UI_draw_filled_area((s32)rcSpace.left, (s32)rcSpace.top,	(s32)rcSpace.right,	(s32)rcSpace.bottom,
					current_MMI_theme->scrollbar_background_filler);
	}
	#endif

	pixtel_UI_pop_clip();
	pixtel_UI_unlock_double_buffer();
	pixtel_UI_BLT_double_buffer(rcSpace.left, rcSpace.top, rcSpace.right, rcSpace.bottom);

#endif 
}


/****************************************************************************
* Function	ExitBrowViewScreen
* Purpose	
* Params	
* Return	
* Remarks	
\****************************************************************************/
void ExitBrowViewScreen(void)
{
	reset_softkeys();
	ExitCategoryFunction=MMI_dummy_function;
	RedrawCategoryFunction=MMI_dummy_function;
	GetCategoryHistory=dummy_get_history;
	GetCategoryHistorySize=dummy_get_history_size;
}

#ifdef __MMI_WALLPAPER_ON_BOTTOM__
extern UI_image_ID_type	idle_screen_wallpaper_ID;
extern gdi_handle wgui_base_layer;
extern gdi_handle wgui_layer_1;
#endif
/****************************************************************************
* Function	PlxDrawBrowserScreen
* Purpose	Modify ShowCategory400Screen for Pollex need (MTK emu problem)
* Params	
* Return	
* Remarks	
\****************************************************************************/
static void PlxDrawBrowserScreen(U16 title,U16 title_icon,U16 left_softkey,U16 left_softkey_icon,U16 right_softkey,U16 right_softkey_icon,U8* history_buffer)
{	
/*
	WB_RECT 		rcSpace ;
	int				bar_height;
	int				nHScrollWidth;
	int				nVScrollWidth;
*/	UI_font_type 	pFont = &MMI_default_font;
	
/*	bar_height = GetBrowserStatusBarHeight();
	nHScrollWidth = GetBrowserHScrollWidth();
	nVScrollWidth = GetBrowserVScrollWidth();

	rcSpace.left =  MMI_content_width - (nVScrollWidth) ;
	rcSpace.top =  MMI_content_height + MMI_title_height + MMI_title_y - (nHScrollWidth) - bar_height;
	rcSpace.right = MMI_content_width;
	rcSpace.bottom =rcSpace.top+ nHScrollWidth + 1; 
*/	

	pixtel_UI_lock_double_buffer();
#ifdef __MMI_WALLPAPER_ON_BOTTOM__
	wgui_set_wallpaper_on_bottom(MMI_TRUE);
		/* 053005 Calvin added */
#ifdef __MMI_DRAW_MANAGER__
    dm_set_scr_bg_redraw(MMI_TRUE);
#endif

    pixtel_UI_reset_clip();
	gdi_layer_multi_layer_enable();
	gdi_layer_get_base_handle(&wgui_base_layer);
	pixtel_UI_layer_transparent(wgui_base_layer, UI_SUBMENU_OPACITY_BASED_LAYER, 
        0, 0, UI_device_width-1, UI_device_height-1);
	if (wgui_layer_1 == GDI_LAYER_EMPTY_HANDLE)
	{
		gdi_layer_create(0, 0, UI_device_width, UI_device_height, &wgui_layer_1);
    }

#if defined (__MMI_UI_TRANSPARENT_EFFECT__) || defined (__MMI_UI_LIST_HIGHLIGHT_EFFECTS__)        
    if(pixtel_UI_get_transparent_source_layer()==GDI_LAYER_EMPTY_HANDLE)
    {
        pixtel_UI_set_transparent_source_layer(wgui_layer_1);
    }
#endif

    gdi_layer_set_active(wgui_layer_1);
	gdi_layer_lock_frame_buffer();
		
	gdi_layer_push_clip();
	gdi_layer_reset_clip();

	gdi_layer_set_opacity(TRUE, 150);
	gdi_image_draw_animation(0,0, get_image(idle_screen_wallpaper_ID),NULL);
		
	gdi_layer_pop_clip();
					
	gdi_layer_unlock_frame_buffer();
	gdi_layer_restore_base_active();

	gdi_layer_set_blt_layer(wgui_layer_1, wgui_base_layer, 0, 0);
	gdi_layer_blt_previous(0, 0, UI_device_width-1, UI_device_height-1);

	gdi_layer_set_active(wgui_base_layer);

#endif  // __MMI_WALLPAPER_ON_BOTTOM__
	pixtel_UI_push_clip();
	pixtel_UI_set_clip(0,0,UI_device_width-1,UI_device_height-1);
	clear_screen();
	clear_category_screen_key_hand

⌨️ 快捷键说明

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