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

📄 wgui_categories_cm.c

📁 The font library converting tool MCT mainly introduces the process of the font formats to give us a
💻 C
📖 第 1 页 / 共 5 页
字号:
	gdi_layer_pop_clip();
}/* end of dialing_screen_hide_right_softkey */


#ifdef __MMI_TOUCH_DIAL_SCREEN__

#ifdef __MMI_TOUCH_DIAL_SCREEN_WITH_FUNCTION__
void (*dialing_keypad_call_handler)(void) = NULL; 
void (*dialing_keypad_phonebook_handler)(void) = NULL; //011006 dialing screen Calvin

/*****************************************************************************
* FUNCTION
*	SetDialingKeypadCallHandler
*
* DESCRIPTION
*	Set hte callback function for Dialing Icon of touch dialing screen
*
* PARAMETERS
*	void (*handler)(void)
*
* RETURNS
*  void
*
* GLOBALS AFFECTED
* dialing_keypad_call_handler
* 
*****************************************************************************/
void SetDialingKeypadCallHandler(void (*handler)(void))
{
	dialing_keypad_call_handler = handler;
}


/*****************************************************************************
* FUNCTION
*	SetDialingKeypadPhonebookHandler
*
* DESCRIPTION
*	Set hte callback function for Phonebook Icon of touch dialing screen
*
* PARAMETERS
*	void (*handler)(void)
*
* RETURNS
*  void
*
* GLOBALS AFFECTED
* dialing_keypad_phonebook_handler
* 
*****************************************************************************/
void SetDialingKeypadPhonebookHandler(void (*handler)(void))
{
	dialing_keypad_phonebook_handler = handler;
}
#endif

/*****************************************************************************
* FUNCTION
*	PlayDialKeyPadTone
*
* DESCRIPTION
*	Play key tone for dial keypad keys.
*
* PARAMETERS
*	S16			IN			key_type
*
* RETURNS
*  void
*
* GLOBALS AFFECTED
* 
*****************************************************************************/
void PlayDialKeyPadTone(S16 key_type)
{
	S32 key_id = dialing_keypad.key_type;
	KEYBRD_MESSAGE msg;
	
	msg.nKeyCode = KEY_0;

	if ( key_id >=MMI_DIALING_KEY_START && key_id <MMI_DIALING_KEY_STAR ) 
	{   
		msg.nKeyCode = KEY_0+key_id;
	}
	/* 0 */
	else if ( key_id == MMI_DIALING_KEY_ZERO )
	{   
		msg.nKeyCode = KEY_0;
	}
	/* star key */
	else if ( key_id == MMI_DIALING_KEY_STAR )
	{   
		msg.nKeyCode = KEY_STAR;
	}
	/* pound key */
	else if ( key_id == MMI_DIALING_KEY_HASH )
	{   
		msg.nKeyCode = KEY_POUND;
	}
	msg.nMsgType = key_type;
	mmi_kbn_key_tone_hdlr(&msg);
}


/*****************************************************************************
* FUNCTION
*	ExecuteDialKeyPadKeyHandler
*
* DESCRIPTION
*	Excute key handler for dial keypad keys.
*
* PARAMETERS
*	S16			IN			key_type
*
* RETURNS
*  void
*
* GLOBALS AFFECTED
* 
*****************************************************************************/
void ExecuteDialKeyPadKeyHandler(S16 key_type)
{
   /*-----------------------------------------------------------------*/
   /* Local Variables                                                									*/
   /*-----------------------------------------------------------------*/
	S32 key_id = dialing_keypad.key_type;

   /*-----------------------------------------------------------------*/
   /* Code Body                                                      									*/
   /*-----------------------------------------------------------------*/
	/* 1-9 */
	if ( key_id >=MMI_DIALING_KEY_START && key_id <MMI_DIALING_KEY_STAR ) 
	{
		ExecuteCurrKeyHandler((S16)(KEY_0+key_id),key_type);
		PlayDialKeyPadTone(key_type);
	}
	/* 0 */
	else if ( key_id == MMI_DIALING_KEY_ZERO )
	{
		ExecuteCurrKeyHandler(KEY_0,key_type);
		PlayDialKeyPadTone(key_type);
	}
	/* star key */
	else if ( key_id == MMI_DIALING_KEY_STAR )
	{
		ExecuteCurrKeyHandler(KEY_STAR,key_type);
		PlayDialKeyPadTone(key_type);
	}
	/* pound key */
	else if ( key_id == MMI_DIALING_KEY_HASH )
	{
		ExecuteCurrKeyHandler(KEY_POUND,key_type);
		PlayDialKeyPadTone(key_type);
	}
}/* end of ExecuteDialKeyPadKeyHandler */


/*****************************************************************************
* FUNCTION
*	Cate16CategoryControlAreaPenDownHandler
*
* DESCRIPTION
*	Pen down events handler function for category16 control area.
*
* PARAMETERS
*	mmi_pen_point_struct			IN			point
*
* RETURNS
*  void
*
* GLOBALS AFFECTED
* 
*****************************************************************************/
MMI_BOOL Cate16CategoryControlAreaPenDownHandler(mmi_pen_point_struct point )
{
   /*-----------------------------------------------------------------*/
   /* Local Variables                                                									*/
   /*-----------------------------------------------------------------*/
	MMI_BOOL ret = MMI_FALSE;
	mmi_gui_pen_event_param_struct	dialing_key_param;
	mmi_gui_dialing_key_pen_enum dialing_key_menu_event;


   /*-----------------------------------------------------------------*/
   /* Code Body                                                      									*/
   /*-----------------------------------------------------------------*/
	/* Get dialing screen  event type according to current state of dialing screen */
	ret = pixtel_UI_dialing_screen_translate_pen_event(&dialing_keypad,point.x,point.y, MMI_PEN_EVENT_DOWN, &dialing_key_menu_event, &dialing_key_param);

	if(ret)
	{
		gdi_layer_blt_previous(0,0,UI_device_width - 1, UI_device_height -1);
		ExecuteDialKeyPadKeyHandler(KEY_EVENT_DOWN);
	}
	return ret;
}/* end of Cate16CategoryControlAreaPenDownHandler */


/*****************************************************************************
* FUNCTION
*	Cate16CategoryControlAreaPenUpHandler
*
* DESCRIPTION
*	Pen up events handler function for category16 control area.
*
* PARAMETERS
*	mmi_pen_point_struct			IN			point
*
* RETURNS
*  void
*
* GLOBALS AFFECTED
* 
*****************************************************************************/
MMI_BOOL Cate16CategoryControlAreaPenUpHandler(mmi_pen_point_struct point )
{
   /*-----------------------------------------------------------------*/
   /* Local Variables                                                									*/
   /*-----------------------------------------------------------------*/
	MMI_BOOL ret = MMI_FALSE;
	mmi_gui_pen_event_param_struct	dialing_key_param;
	mmi_gui_dialing_key_pen_enum dialing_key_menu_event;

   /*-----------------------------------------------------------------*/
   /* Code Body                                                      									*/
   /*-----------------------------------------------------------------*/
	/* Get dialing screen  event type according to current state of dialing screen */
	ret = pixtel_UI_dialing_screen_translate_pen_event(&dialing_keypad,point.x,point.y, MMI_PEN_EVENT_UP, &dialing_key_menu_event, &dialing_key_param);
	if(ret)
	{
//		if(dialing_key_menu_event == GUI_DIALING_KEYPAD_PEN_INSERT_HASH ||
//			dialing_key_menu_event == GUI_DIALING_KEYPAD_PEN_INSERT_STAR )
			ExecuteDialKeyPadKeyHandler(KEY_EVENT_UP);

	#if defined (__MMI_TOUCH_DIAL_SCREEN_WITH_FUNCTION__)
		if(dialing_key_menu_event == GUI_DIALING_KEYPAD_PEN_INSERT_PHB)
		{
			if(dialing_keypad_phonebook_handler!=NULL)
			{
				dialing_keypad_phonebook_handler();
			}
			else
			{
				mmi_phb_idle_enter_phb_list();
			}
		}
		else if(dialing_key_menu_event == GUI_DIALING_KEYPAD_PEN_INSERT_CALL)
		{
			//ASSERT(dialing_keypad_call_handler != NULL);
			/* This handler might be null in flight mode, not necessary to assert */
			if((mmi_bootup_get_active_flight_mode() == 0 || mmi_bootup_is_sim_valid() == 0) && (dialing_keypad_call_handler != NULL) )
					dialing_keypad_call_handler();
		}
	#endif

	}
	gdi_layer_blt_previous(0, 0, UI_device_width - 1, UI_device_height -1);
	return ret;
}/* end of Cate16CategoryControlAreaPenUpHandler */


/*****************************************************************************
* FUNCTION
*	Cate16CategoryControlAreaPenMoveHandler
*
* DESCRIPTION
*	Pen move events handler function for category16 control area.
*
* PARAMETERS
*	mmi_pen_point_struct			IN			point
*
* RETURNS
*  void
*
* GLOBALS AFFECTED
* 
*****************************************************************************/
MMI_BOOL Cate16CategoryControlAreaPenMoveHandler(mmi_pen_point_struct point )
{
   /*-----------------------------------------------------------------*/
   /* Local Variables                                                									*/
   /*-----------------------------------------------------------------*/
	S16	x1,x2,y1,y2;
	mmi_gui_dialing_key_pen_enum menu_event;
	mmi_gui_pen_event_param_struct	dialing_key_param;

   /*-----------------------------------------------------------------*/
   /* Code Body                                                      									*/
   /*-----------------------------------------------------------------*/
	/* Get dialing screen  event type according to current state of dialing screen */
	pixtel_UI_dialing_screen_translate_pen_event(&dialing_keypad, point.x, point.y, MMI_PEN_EVENT_MOVE, &menu_event,&dialing_key_param);
	if (menu_event == GUI_DIALING_KEYPAD_HIGHLIGHT_CHANGED || menu_event == GUI_DIALING_KEYPAD_PEN_INSERT_STAR)
	{
		PlayDialKeyPadTone(KEY_EVENT_UP);
		x1 = dialing_keypad.selected_key_x;
		y1 = dialing_keypad.selected_key_y;

	#if defined (__MMI_TOUCH_DIAL_SCREEN_WITH_FUNCTION__)
		if (dialing_keypad.key_type >= MMI_DIALING_KEY_FUNC)
		{
			x2 = x1 + dialing_keypad.func_key_width-1;
			y2 = y1 + dialing_keypad.func_key_height-1;
		}
		else
	#endif
		{
			x2 = x1 + dialing_keypad.key_width-1;
			y2 = y1 + dialing_keypad.key_height-1;
		}

		gdi_layer_push_clip();
		gdi_layer_set_clip(x1, y1,x2, y2);

#ifdef __GDI_MEMORY_PROFILE_2__
		gdi_draw_solid_rect(x1, y1, x2, y2, GDI_COLOR_TRANSPARENT);
#else 
		gdi_image_cache_bmp_draw(x1, y1, &(dialing_keypad.selected_key_bitmap));//072305 Calvin modified
#endif
		gdi_layer_pop_clip();

		if(menu_event == GUI_DIALING_KEYPAD_PEN_INSERT_STAR)
			dialer_inputbox_handle_multitap_star_key_up();
	}

	gdi_layer_blt_previous(0, 0, UI_device_width - 1, UI_device_height -1);
	if (GetDTMFKeyUpFlag())
	{
		MakePsStopDTMFTone();
		SetDTMFKeyUpFlag(FALSE);
	}
	return MMI_TRUE;
}/* end of Cate16CategoryControlAreaPenMoveHandler */


/*****************************************************************************
* FUNCTION
*	Cate16CategoryControlAreaPenRepeatHandler
*
* DESCRIPTION
*	Pen repeat events handler function for category16 control area.
*
* PARAMETERS
*	mmi_pen_point_struct			IN			point
*
* RETURNS
*  void
*
* GLOBALS AFFECTED
* 
*****************************************************************************/
MMI_BOOL Cate16CategoryControlAreaPenRepeatHandler(mmi_pen_point_struct point)
{
   /*-----------------------------------------------------------------*/
   /* Local Variables                                                									*/
   /*-----------------------------------------------------------------*/
	MMI_BOOL ret;
	mmi_gui_pen_event_param_struct	dialing_key_param;
	mmi_gui_dialing_key_pen_enum dialing_key_menu_event;
	
   /*-----------------------------------------------------------------*/
   /* Code Body                                                      									*/
   /*-----------------------------------------------------------------*/
	/* Get dialing screen  event type according to current state of dialing screen */
	ret = pixtel_UI_dialing_screen_translate_pen_event(&dialing_keypad,point.x,point.y, MMI_PEN_EVENT_REPEAT, &dialing_key_menu_event, &dialing_key_param);

	if ( ret )
		ExecuteDialKeyPadKeyHandler(KEY_EVENT_REPEAT);

	gdi_layer_blt_previous(0, 0, UI_device_width - 1, UI_device_height -1);
	return MMI_TRUE;
}/* end of Cate16CategoryControlAreaPenRepeatHandler */


/*****************************************************************************
* FUNCTION
*	Cate16CategoryControlAreaPenLongTapHandler
*
* DESCRIPTION
*	Pen long tap events handler function for category16 control area.
*
* PARAMETERS
*	mmi_pen_point_struct			IN			point
*
* RETURNS
*  void
*
* GLOBALS AFFECTED
* 
*****************************************************************************/
MMI_BOOL Cate16CategoryControlAreaPenLongTapHandler(mmi_pen_point_struct point)
{
   /*-----------------------------------------------------------------*/
   /* Local Variables                                                									*/
   /*-----------------------------------------------------------------*/
	mmi_gui_pen_event_param_struct	dialing_key_param;
	mmi_gui_dialing_key_pen_enum dialing_key_menu_event;

   /*-----------------------------------------------------------------*/
   /* Code Body                                                      									*/
   /*-----------------------------------------------------------------*/
	/* Get dialing screen  event type according to current state of dialing screen */
	pixtel_UI_dialing_screen_translate_pen_event(&dialing_keypad,point.x,point.y, MMI_PEN_EVENT_LONG_TAP, &dialing_key_menu_event, &dialing_key_param);
	ExecuteDialKeyPadKeyHandler(KEY_EVENT_LONG_PRESS);

	gdi_layer_blt_previous(0, 0, UI_device_width - 1, UI_device_height -1);
	return MMI_TRUE;
}

/*****************************************************************************
* FUNCTION
*	Cate16CategoryControlAreaPenAbortHandler

⌨️ 快捷键说明

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