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

📄 wgui_ems_categories.c

📁 The font library converting tool MCT mainly introduces the process of the font formats to give us a
💻 C
📖 第 1 页 / 共 5 页
字号:
						MMI_EMS_inputbox.flags&=~UI_EMS_INPUT_BOX_WORD_HIGHLIGHT;
#endif
						EMS_inputbox_previous();
						break;
			case 38:
#if(ENABLE_EMS_TEST_WORD_HIGHLIGHT)
						pixtel_UI_EMS_input_box_highlight_cursor_start(&MMI_EMS_inputbox);
						show_EMS_inputbox();
#else
						EMS_inputbox_previous_line();
#endif
						break;
			case 39:
#if(ENABLE_EMS_TEST_WORD_HIGHLIGHT)
						MMI_EMS_inputbox.flags&=~UI_EMS_INPUT_BOX_WORD_HIGHLIGHT;
#endif
						EMS_inputbox_next();
						break;
			case 40:
#if(ENABLE_EMS_TEST_WORD_HIGHLIGHT)
						pixtel_UI_EMS_input_box_highlight_cursor_end(&MMI_EMS_inputbox);
						show_EMS_inputbox();
#else
						EMS_inputbox_next_line();
#endif
						break;
			case 36:	//home
						break;
			case 35:	//end
						break;
			case 33:	//page up
						break;
			case 34:	//page down
						break;
			case 45:	EMS_inputbox_toggle_insert_mode();
						break;
			case 46:	EMS_inputbox_delete();
						break;
		}
	}
#else
	UI_UNUSED_PARAMETER(vkey_code);
	UI_UNUSED_PARAMETER(key_state);
#endif
}

void EMS_inputbox_viewer_key_handler(S32 vkey_code,S32 key_state)
{
#if(MMI_BUILD_TYPE==BUILD_TYPE_X86WIN32)
	if(key_state)
	{	switch(vkey_code)
		{	case 37:
					#ifdef __MMI_MESSAGES_EMS__
						EMS_inputbox_previous_object();
					#else
						EMS_inputbox_previous();
					#endif

						break;
			case 38:	EMS_inputbox_previous_line();
						break;

			case 39:
					#ifdef __MMI_MESSAGES_EMS__
						EMS_inputbox_next_object();
					#else
						EMS_inputbox_next();
					#endif
						break;
			case 40:	EMS_inputbox_next_line();
						break;
			case 36:	//home
						break;
			case 35:	//end
						break;
			case 33:	//page up
						break;
			case 34:	//page down
						break;
			case 45:	//insert
						break;
			case 46:	//delete
						break;
		}
	}
#else
	UI_UNUSED_PARAMETER(vkey_code);
	UI_UNUSED_PARAMETER(key_state);
#endif
}

void EMS_inputbox_multitap_input(UI_character_type c)
{	pixtel_UI_EMS_input_box_insert_multitap_character(&MMI_EMS_inputbox,c);
	redraw_EMS_inputbox();
	EMS_inputbox_input_callback();
}

void EMS_inputbox_multitap_input_complete(void)
{	pixtel_UI_EMS_input_box_confirm_multitap_character(&MMI_EMS_inputbox);
	redraw_EMS_inputbox();
}

void EMS_inputbox_numeric_keyboard_input_handler(S32 keyc)
{	if(keyc>='0' && keyc<='9') 	EMS_inputbox_direct_input((byte)keyc);
	else if(keyc==0x08)			EMS_inputbox_backspace();
	else if(keyc==0x1b)			EMS_inputbox_delete_all();
}

void EMS_inputbox_handle_key_down(MMI_key_code_type k)
{	EMS_inputbox_direct_input((UI_character_type)('0'+k));
}

void register_EMS_inputbox_keys(void)
{	SetKeyHandler(EMS_inputbox_previous,KEY_LEFT_ARROW,KEY_EVENT_DOWN);
	SetKeyHandler(EMS_inputbox_next,KEY_RIGHT_ARROW,KEY_EVENT_DOWN);
	SetKeyHandler(EMS_inputbox_previous_line,KEY_UP_ARROW,KEY_EVENT_DOWN);
	SetKeyHandler(EMS_inputbox_next_line,KEY_DOWN_ARROW,KEY_EVENT_DOWN);
	//SetKeyHandler(EMS_inputbox_backspace,KEY_CLEAR,KEY_EVENT_DOWN);
	register_keyboard_key_handler(EMS_inputbox_key_handler);
}

void wgui_EMS_inputbox_handle_symbol_picker_star_key(void)
{	disable_active_multitap();
	EntrySymbolPickerScreen();
}
//PMT dara added for Multitap thai 
#ifdef __MMI_MULTITAP_THAI__
void wgui_EMS_inputbox_handle_symbol_picker_star_key_bymultitapthai(void)
{
	if(Get_inputbox_update_states() == 1)
	{
		pixtel_UI_EMS_input_box_backspace(&MMI_EMS_inputbox);
		wgui_EMS_text_format=MMI_EMS_inputbox.text_format;
	}
	wgui_EMS_inputbox_handle_symbol_picker_star_key();
}
#endif
//MTK Elvis modify for Thai
#if !defined(__MMI_MULTITAP_FOR_STAR_AND_POUND__)
#else
extern FuncPtr currKeyFuncPtrs[MAX_KEYS][MAX_KEY_TYPE];
#endif
//PMT dara added for Multitap thai 
#ifdef __MMI_MULTITAP_THAI__
//return 0 not accept input
//return 1 accept input
//return 2 normal
//return 3 means reset the MMI_active_multitap. not use
byte EMS_inputbox_check_multitap_thai_input(UI_character_type inputchar,byte *updatef)
{
	EMSPosition			p=MMI_EMS_inputbox.data->CurrentPosition;
	EMSObject*			current_object;
	UI_character_type	c;
	byte				r;
	UI_character_type   cc;
	
	r = pixtel_UI_EMS_input_box_get_previous_object(MMI_EMS_inputbox.data,&p,&c,&current_object);
	
	if(r == 1)//means that the previous is character
	{
		if((inputchar >= 0x0e34 && inputchar <= 0x0e39) || inputchar == 0x0e31)	//Above Vowels and Below Vowels
		{
			if(c == 0x0e30 || c == 0x0e32 || c == 0x0e33 || c == 0x0e46 || c == 0x0e2f || c == 0x0e3f || (c >= 0x0e40 && c <= 0x0e44) || c == 0x0030)
			{
				if(c ==  0x0030 && *updatef == 1)
				{
					MMI_EMS_inputbox.flags&=~UI_EMS_INPUT_BOX_STATE_MULTITAP;
					pixtel_UI_EMS_input_box_backspace(&MMI_EMS_inputbox);
					pixtel_UI_EMS_input_box_insert_character(&MMI_EMS_inputbox,inputchar);
					redraw_EMS_inputbox();
					wgui_EMS_redraw_remaining_characters_display();
					return 1;
				}
				pixtel_UI_EMS_input_box_insert_character(&MMI_EMS_inputbox,0x0030);
				redraw_EMS_inputbox();
				wgui_EMS_redraw_remaining_characters_display();
				return 0;	//not accept input
			}
			else if((c == 0x0e31 || (c >= 0x0e34 && c <= 0x0e39)))
			{//Above Vowels and Below Vowels
				if(*updatef == 0)
				{
					pixtel_UI_EMS_input_box_insert_character(&MMI_EMS_inputbox,0x0030);
					redraw_EMS_inputbox();
					wgui_EMS_redraw_remaining_characters_display();
					return 0;
				}
				pixtel_UI_EMS_input_box_backspace(&MMI_EMS_inputbox);
				pixtel_UI_EMS_input_box_insert_character(&MMI_EMS_inputbox,inputchar);
				redraw_EMS_inputbox();
				wgui_EMS_redraw_remaining_characters_display();
				return 1;
			}
			else if(c >= 0x0e47 && c <= 0x0e4c)	
			{//tone
				if(*updatef == 0)
				{
					pixtel_UI_EMS_input_box_insert_character(&MMI_EMS_inputbox,0x0030);
					redraw_EMS_inputbox();
					wgui_EMS_redraw_remaining_characters_display();
					return 0;
				}
				pixtel_UI_EMS_input_box_backspace(&MMI_EMS_inputbox);
				if(c == 0x0e47)
				{
					pixtel_UI_EMS_input_box_insert_character(&MMI_EMS_inputbox,inputchar);
					redraw_EMS_inputbox();
					wgui_EMS_redraw_remaining_characters_display();
					return 1;
				}
				r = pixtel_UI_EMS_input_box_get_previous_object(MMI_EMS_inputbox.data,&p,&cc,&current_object);
				if (r == 1 && ((cc >= 0x0e34 && cc <= 0x0e39) || cc == 0x0e31))
				{
					pixtel_UI_EMS_input_box_backspace(&MMI_EMS_inputbox);
					pixtel_UI_EMS_input_box_insert_character(&MMI_EMS_inputbox,inputchar);
					pixtel_UI_EMS_input_box_insert_character(&MMI_EMS_inputbox,c);
					redraw_EMS_inputbox();
					wgui_EMS_redraw_remaining_characters_display();
				}
				else
				{
					pixtel_UI_EMS_input_box_insert_character(&MMI_EMS_inputbox,inputchar);
					pixtel_UI_EMS_input_box_insert_character(&MMI_EMS_inputbox,c);
					redraw_EMS_inputbox();
					wgui_EMS_redraw_remaining_characters_display();
				}
				return 1;
			}
			else if(c >= 0x0e01 && c <= 0x0e2e)
			{
				//msz00065_20051010 peng hua add for multitap thai begin
				if(pixtel_UI_EMS_check_input_test_overflow(&MMI_EMS_inputbox,inputchar))
				//msz00065_20051010 peng hua add for multitap thai end
					*updatef = 1;
				pixtel_UI_EMS_input_box_insert_character(&MMI_EMS_inputbox,inputchar);
				redraw_EMS_inputbox();
				wgui_EMS_redraw_remaining_characters_display();
				return 1;
			}
			else
			{
				if (*updatef == 0)
				{
					pixtel_UI_EMS_input_box_insert_character(&MMI_EMS_inputbox,0x0030);
					*updatef = 0;
					redraw_EMS_inputbox();
					wgui_EMS_redraw_remaining_characters_display();
				}
				return 0;
			}
		}
		else if(inputchar == 0x0030)
		{
			if (*updatef == 1)
			{
				pixtel_UI_EMS_input_box_backspace(&MMI_EMS_inputbox);
//				redraw_EMS_inputbox();
				return 2;
			}
		}
		else if(inputchar >= 0x0e47 && inputchar <= 0x0e4c)	
		{
			if(c == 0x0e30 || c == 0x0e32 || c == 0x0e33 || c == 0x0e46 || c == 0x0e2f || c == 0x0e3f || (c >= 0x0e40 && c <= 0x0e44) || c == 0x0030)
			{
				if((c == 0x0e46 || c == 0x0e2f || c == 0x0e3f) && *updatef == 1)
				{
					MMI_EMS_inputbox.flags&=~UI_EMS_INPUT_BOX_STATE_MULTITAP;
					redraw_EMS_inputbox();
					pixtel_UI_EMS_input_box_backspace(&MMI_EMS_inputbox);
					pixtel_UI_EMS_input_box_insert_character(&MMI_EMS_inputbox,inputchar);
					redraw_EMS_inputbox();
					wgui_EMS_redraw_remaining_characters_display();
				}
				return 1;	//not accept input
			}
			else if((c >= 0x0e47 && c <= 0x0e4c))	
			{//tone
				if(*updatef == 0)
					return 1;

				pixtel_UI_EMS_input_box_backspace(&MMI_EMS_inputbox);
				if(inputchar == 0x0e47)	//
				{
					r = pixtel_UI_EMS_input_box_get_previous_object(MMI_EMS_inputbox.data,&p,&cc,&current_object);
					if (r == 1 && ((cc >= 0x0e34 && cc <= 0x0e39) || cc == 0x0e31))
					{
						pixtel_UI_EMS_input_box_backspace(&MMI_EMS_inputbox);
						pixtel_UI_EMS_input_box_insert_character(&MMI_EMS_inputbox,inputchar);
						redraw_EMS_inputbox();
						wgui_EMS_redraw_remaining_characters_display();
						return 1;
					}
				}				
				pixtel_UI_EMS_input_box_insert_character(&MMI_EMS_inputbox,inputchar);
				redraw_EMS_inputbox();
				wgui_EMS_redraw_remaining_characters_display();
				return 1;
			}
			else if(c >= 0x0e01 && c <= 0x0e2e)
			{
				//msz00065_20051010 peng hua add for multitap thai begin
				if(pixtel_UI_EMS_check_input_test_overflow(&MMI_EMS_inputbox,inputchar))
				//msz00065_20051010 peng hua add for multitap thai end
				*updatef = 1;
				pixtel_UI_EMS_input_box_insert_character(&MMI_EMS_inputbox,inputchar);
				redraw_EMS_inputbox();
				wgui_EMS_redraw_remaining_characters_display();
				return 1;
			}
			else if((c >= 0x0e34 && c <= 0x0e39) || c == 0x0e31)
			{
				//msz00065_20051010 peng hua add for multitap thai begin
				if(pixtel_UI_EMS_check_input_test_overflow(&MMI_EMS_inputbox,inputchar))
				//msz00065_20051010 peng hua add for multitap thai end
				*updatef = 1;
				if(inputchar == 0x0e47)	//
				{
					pixtel_UI_EMS_input_box_backspace(&MMI_EMS_inputbox);
				}
				pixtel_UI_EMS_input_box_insert_character(&MMI_EMS_inputbox,inputchar);
				redraw_EMS_inputbox();
				wgui_EMS_redraw_remaining_characters_display();
				return 1;
			}
			else
			{
				if(*updatef == 1)
					pixtel_UI_EMS_input_box_backspace(&MMI_EMS_inputbox);
				return 1;
			}
		}
		if((inputchar == 0x0e46 || inputchar == 0x0e2f || inputchar == 0x0e3f) && *updatef == 1)
		{
			pixtel_UI_EMS_input_box_backspace(&MMI_EMS_inputbox);
			MMI_EMS_inputbox.flags&=~UI_EMS_INPUT_BOX_STATE_MULTITAP;
//			pixtel_UI_EMS_input_box_insert_character(&MMI_EMS_inputbox,inputchar);
//			redraw_EMS_inputbox();
			return 2;
		}
	}
	else	//object
	{
		if((inputchar >= 0x0e34 && inputchar <= 0x0e39) || inputchar == 0x0e31)
			return 0;
		if(inputchar >= 0x0e47 && inputchar <= 0x0e4c)
			return 0;
	}
	return 2;
}
#endif

void register_EMS_multitap_function(void)
{
/* W06.09 Touch Screen With Keypad V1*/
#if defined(__MMI_FULL_SCREEN_EDITOR__)||defined(__MMI_TOUCH_SCREEN__)
   register_multitap_no_draw_key_handlers();
#else
   register_multitap_key_handlers();
#endif
   register_keyboard_input_handler(EMS_inputbox_alphanumeric_keyboard_input_handler);
   set_multitap_functions(EMS_inputbox_multitap_input,EMS_inputbox_multitap_input_complete);
   wgui_set_EMS_inputbox_RSK();
   register_EMS_inputbox_keys();
   SetKeyHandler(wgui_EMS_inputbox_handle_symbol_picker_star_key,KEY_STAR,KEY_EVENT_DOWN);
}
void change_EMS_inputbox_mode(byte mode)
{
   //PMT dara added for Multitap thai 
#if defined(__MMI_MULTITAP_THAI__)
   SetKeyHandler(handle_category28_change_input_mode,KEY_POUND,KEY_EVENT_DOWN);
#endif

#if !defined(__MMI_MULTITAP_FOR_STAR_AND_POUND__)
#else
   ClearKeyHandler(KEY_POUND,KEY_EVENT_DOWN);
#endif
#ifdef __MMI_GB__
	//如果是英文或者中文输入法,则应该打开候选框
//	GBCheckCandWnd();
#endif //__MMI_GB__
   switch(mode)
   {
      case INPUT_MODE_MULTITAP_UPPERCASE_ABC:
         change_multitap_mode(INPUT_MODE_MULTITAP_UPPERCASE_ABC);
         register_EMS_multitap_function();
#ifdef __MMI_GB__
			//*键切换输入法
			SetKeyHandler(EMS_CHANGE_IM_FUNC, KEY_STAR, KEY_EVENT_DOWN);
#endif
         break;
      
      case INPUT_MODE_MULTITAP_LOWERCASE_ABC:
         change_multitap_mode(INPUT_MODE_MULTITAP_LOWERCASE_ABC);
         register_EMS_multitap_function();
#ifdef __MMI_GB__
			SetKeyHandler(EMS_CHANGE_IM_FUNC, KEY_STAR, KEY_EVENT_DOWN);
#endif
         break;
      //PMT dara added for multitap thai
#if defined(__MMI_MULTITAP_THAI__)
      case INPUT_MODE_MULTITAP_THAI:
         change_multitap_mode(INPUT_MODE_MULTITAP_THAI);
#if defined(__MMI_FULL_SCREEN_EDITOR__)
         register_multitap_no_draw_key_handlers();
#else
         register_multitap_key_handlers();
#endif
         register_MMI_key_input_extend_handler();
				//change_inputbox_type_multitapthai(EMS_INPUTBOX);		//msz065_20050420
         register_keyboard_input_handler(EMS_inputbox_alphanumeric_keyboard_input_handler);
         set_multitap_functions(EMS_inputbox_multitap_input,EMS_inputbox_multitap_input_complete);
         wgui_set_EMS_inputbox_RSK();
         register_EMS_inputbox_keys();
         SetKeyHandler(handle_category28_change_input_mode_bymultitapthai,KEY_POUND,KEY_LONG_PRESS);
         SetKeyHandler(wgui_EMS_inputbox_handle_symbol_picker_star_key_bymultitapthai,KEY_STAR,KEY_LONG_PRESS);
         break;
#endif

#if defined(__MMI_MULTITAP_SPANISH__)
      case INPUT_MODE_MULTITAP_UPPERCASE_SPANISH:
         change_multitap_mode(INPUT_MODE_MULTITAP_UPPERCASE_SPANISH);
         register_EMS_multitap_function();
         break;
      
      case INPUT_MODE_MULTITAP_LOWERCASE_SPANISH:
         change_multitap_mode(INPUT_MODE_MULTITAP_LOWERCASE_SPANISH);
         register_EMS_multitap_function();
         break;
#endif
//PMT VIKASG START 20050729
#if defined(__MMI_MULTITAP_DANISH__)
    	case INPUT_MODE_MULTITAP_UPPERCASE_DANISH:
                                change_multitap_mode(INPUT_MODE_MULTITAP_UPPERCASE_DANISH);
                                register_EMS_multitap_function();
				break;

        case INPUT_MODE_MULTITAP_LOWERCASE_DANISH:
                                change_multitap_mode(INPUT_MODE_MULTITAP_LOWERCASE_DANISH);
                                register_EMS_multitap_function();
				break;
#endif
//PMT VIKASG END 20050729
/

⌨️ 快捷键说明

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