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

📄 dict_start.c

📁 在MTK下开发的一个词典项目
💻 C
📖 第 1 页 / 共 4 页
字号:
	{
		MY_GB_TO_UNICODE(un_buff,str_exit,16);
		if(i)
		{
			Show_Text_Best(142,200,50,20,un_buff,255,255,255);
		}
		else
			Show_Text_Best(142,200,50,20,un_buff,0,0,0);
	}
	else
	{
		if(DICT_IS_INPUT_NULL)
		{
			MY_GB_TO_UNICODE(un_buff,str_e,16);
			if(i)
			{
				Show_Text_Best(142,200,50,20,un_buff,255,255,255);
			}
			else
				Show_Text_Best(142,200,50,20,un_buff,0,0,0);			
		}
		else
		{
			MY_GB_TO_UNICODE(un_buff,str_delete,16);
			if(i)
			{
				Show_Text_Best(142,201,50,20,un_buff,255,255,255);
			}
			else
				Show_Text_Best(142,201,50,20,un_buff,0,0,0);				
		}
	}
	Text_Clip_End();
}
void dict_show_lsk_fun(int i)
{
	unsigned char str_help[] = "帮助";
	unsigned char str_input[] = "输入";
	unsigned char un_buff[16];
//	dict_draw_picture_by_name((char*)"dict\\dict_bottom_left.gif",0,198);
	Text_Clip_Begin();
	memset(un_buff,0,16);
	MY_GB_TO_UNICODE(un_buff,str_input,16);
	if(i)
		Show_Text_Best(4,201,50,20,un_buff,255,255,255);
	else
	Show_Text_Best(4,201,50,20,un_buff,0,0,0);				
	Text_Clip_End();
}
void dict_editbox_update_callback()
{
	StartTimer(LEARN_MACHINE_GET_WORDLIST, 700, dict_get_word_list);
}
void dict_get_word_list(void)
{
	unsigned short input_buffer[64];
	unsigned char  *p_word=NULL;
	int i;
	int flag;

	if (UCS2_Text_len((unsigned short *)MMI_singleline_inputbox.text)>0)
	{DICT_IS_INPUT_NULL=0;}
	else  DICT_IS_INPUT_NULL = 1;

	zt_dict_list_roll_content_current_line = 1;
	word_list_num = 0;
	dict_cur_focus = 0;
	dict_list_cur_line = 0;
	dict_list_begin = 0;
	memset(word_list,0,1024);
//	memset(all_explain)

	if (DICT_IS_INPUT_NULL)
	{
//		MY_write_error_info("dict input is null");

		memset(gb_buffer,0,128);
		switch (dict_sc_cur_menu)
		{
		case 0:
		case 4:
		case 5:
			memcpy(gb_buffer,"a",2);
			DICT_IS_SHOW_CUR_ITEM = 0;
			
			break;
		case 1:
		case 2:
			memcpy(gb_buffer,"阿",2);
			DICT_IS_SHOW_CUR_ITEM = 0;
			break;
		case 3:
			memcpy(gb_buffer,"阿",2);
		}
//		dict_show_bottom_text(0,0,0);
		dict_show_lsk_fun(0);
		dict_show_rsk_fun(0);
	}
	else
	{
		DICT_IS_SHOW_CUR_ITEM = 1;
//		dict_show_bottom_text(0,1,0);
		dict_show_lsk_fun(0);
		dict_show_rsk_fun(0);
		memset(input_buffer, 0, 128);
		memset(gb_buffer, 0, 128);
		if(dict_sc_cur_menu == 3)
		{
			memcpy(input_buffer, MMI_singleline_inputbox.text, 2);	
		}
		else
		memcpy(input_buffer, MMI_singleline_inputbox.text, MMI_singleline_inputbox.text_length);	
		LM_UNICODE_TO_GB(gb_buffer, (unsigned char *)input_buffer, 128);
		if(gb_buffer[0]==0) return;
	}
		switch(dict_sc_cur_menu)//联想单词
		{
		case 0:
			word_list_num = Get_English_Word_List(gb_buffer,word_list,0);
			break;
		case 1:
			word_list_num = Get_Chinese_Word_List(gb_buffer,word_list,0);
			break;
		case 2:
			flag = get_idiom_list((char*)gb_buffer,(char*)word_list,dict_idiom_list_id);
			p_word = word_list;
			for (i=0;i<=20&&*p_word!=0;i++)
			{
				word_list_num++;
				p_word = p_word + strlen((char*)p_word) + 1;
			}
			break;
		case 3:
			zt_dict_exp_roll_content_current_line = 1;
//			MY_write_error_info("begin get explain");
//			MY_write_error_info("\r\n");
			dict_get_explain();
			return;
			break;
		case 4:
			word_list_num = Get_class_word(gb_buffer,word_list,14,0);
			break;
		case 5:
			word_list_num = Get_class_word(gb_buffer,word_list,13,0);
		}//end switch在有输入的情况下联想单词

		if (word_list_num == 0)
		{
			if (dict_cur_focus==0)
			{
				dict_draw_picture_by_name((char*)"dict\\list_bg.gif",0,70);
				dict_draw_picture_by_name((char*)"dict\\explain_bg.gif",85,70);
			}
			else
			{

				dict_draw_picture_by_name((char*)"dict\\dict_list_bg_unsel.gif",0,70);
				dict_draw_picture_by_name("dict\\dict_explain_bg_sel.gif",85,70);
			}
			
		}
		else
		{
			p_word = word_list;
			for(i=0;i<word_list_num&&i<20;i++)
			{
				strcpy((char*)dict_word_list_array[i],(char *)p_word);
				p_word = p_word + strlen((char*)p_word) + 1;
			}
		}
		if (word_list_num==0)
		{
//			word_list_num=0;
			memset(word_list,0,1024);
			memset(dict_word_list_array,0,1600);
		}
	ZXWX_init_Vscroll_bar((unsigned char *)&zt_dict_list_vertical_scroll_bar,////buff
			74,////x
			70,////y
			13,////宽(默认值 SCROLL_BAR_DEFAULT_WIDTH)
			130,////高
			13,////两端按钮的高度(默认值(正方形): scroll_bar_width)
			(unsigned short)(word_list_num+WORD_NUM_PER_PAGE-1),////共显示多少行
			(unsigned short)WORD_NUM_PER_PAGE////一屏显示下多少行
			// win_id
			);
	ZXWX_Vscroll_bar_set_handle(
			(unsigned char *)(&zt_dict_list_vertical_scroll_bar),////buff
			ZT_Dict_List_Rollbar_CallbackMain
			);
	ZXWX_show_Vscroll_bar((unsigned char *)(&zt_dict_list_vertical_scroll_bar));
	dict_output_word_list(1);
}
void dict_output_word_list(int flag)
{
	int i;
	unsigned char text_buff[128];
	if (word_list_num == 0)
	{
		if (dict_cur_focus == 0)
		{
//			Draw_Picture_by_name(DISK_TYPE,(char*)"dict\\list_bg.gif",0,88,0);
			dict_draw_picture_by_name((char*)"dict\\list_bg.gif",0,70);
		}
		else
		{
//			Draw_Picture_by_name(DISK_TYPE,(char*)"dict\\dict_list_bg_unsel.gif",0,88,0);
			dict_draw_picture_by_name((char*)"dict\\dict_list_bg_unsel.gif",0,70);
		}
		dict_get_explain();
		return;
	}
	dict_list_cur_line = dict_list_cur_line + zt_dict_list_flag;
	zt_dict_list_flag = 0;
	if (dict_list_cur_line<0)
	{
		dict_list_cur_line = 0;
	}
	else if(dict_list_cur_line>=WORD_NUM_PER_PAGE)
		dict_list_cur_line = WORD_NUM_PER_PAGE - 1;
	dict_list_begin = zt_dict_list_roll_content_current_line - dict_list_cur_line - 1;
	if (dict_cur_focus == 0)
	{
//		Draw_Picture_by_name(DISK_TYPE,(char*)"dict\\list_bg.gif",0,88,0);
		dict_draw_picture_by_name((char*)"dict\\list_bg.gif",0,70);
	}
	else
	{
//		Draw_Picture_by_name(DISK_TYPE,(char*)"dict\\dict_list_bg_unsel.gif",0,88,0);
		dict_draw_picture_by_name((char*)"dict\\dict_list_bg_unsel.gif",0,70);
	}
	if (DICT_IS_SHOW_CUR_ITEM)
	{
//		Draw_Picture_by_name(DISK_TYPE,(char*)"dict\\list_item_sel.gif",2,90+dict_list_cur_line*25,0);
//		dict_draw_picture_by_name((char*)"dict\\list_item_sel.gif",2,90+dict_list_cur_line*25);
		switch(dict_list_cur_line)
		{
			case 0:
				dict_draw_picture_by_name((char*)"dict\\list_item_sel.gif",0,71);
				break;
			case 1:
				dict_draw_picture_by_name((char*)"dict\\list_item_sel.gif",0,93);
				break;
			case 2:
				dict_draw_picture_by_name((char*)"dict\\list_item_sel.gif",0,114);
				break;
			case 3:
				dict_draw_picture_by_name((char*)"dict\\list_item_sel.gif",0,135);
				break;
			case 4:
				dict_draw_picture_by_name((char*)"dict\\list_item_sel.gif",0,156);
				break;
			case 5:
				dict_draw_picture_by_name((char*)"dict\\list_item_sel.gif",0,177);
				break;
		}
	}
	Text_Clip_Begin();
	for (i=0;i<WORD_NUM_PER_PAGE&&i<word_list_num;i++)
	{
		MY_GB_TO_UNICODE(text_buff,(unsigned char*)dict_word_list_array[dict_list_begin+i],64);
		
//		Show_Text_Best(2,(unsigned short)(70+22*i),72,25,text_buff,0,0,0);
		switch(i)
		{
			case 0:
				Show_Text_Best(2,72,72,25,text_buff,0,0,0);
				break;
			case 1:
				Show_Text_Best(2,94,72,25,text_buff,0,0,0);
				break;
			case 2:
				Show_Text_Best(2,115,72,25,text_buff,0,0,0);
				break;
			case 3:
				Show_Text_Best(2,137,72,25,text_buff,0,0,0);
				break;
			case 4:
				Show_Text_Best(2,(unsigned short)(70+22*i),72,25,text_buff,0,0,0);
				break;
			case 5:
				Show_Text_Best(2,(unsigned short)(70+22*i),72,25,text_buff,0,0,0);
				break;
		}
		
	}
	Text_Clip_End();//modify
	if (flag)
	{
		zt_dict_exp_roll_content_current_line = 1;
		dict_get_explain();
	}
}
void dict_get_explain(void)
{
	unsigned char cur_word[128];
	unsigned char cur_word_explain[512];
	unsigned char idiom_sound[128];
	unsigned short id = 0;
	unsigned char all_explain_buffer[1024];
	int i;
	unsigned char chn_sound1_buf[128];
	unsigned char chn_sound2_buf[128];

//	if (DICT_IS_INPUT_NULL&&dict_sc_cur_menu!=3)
	if (DICT_IS_SHOW_CUR_ITEM==0&&dict_sc_cur_menu!=3)
	{
		dict_output_word_explain();
		return;
	}
	explain_line_num = 0;
	memset(cur_word,0,128);
	memset(cur_word_explain,0,512);
	memset(cur_sound,0,128);
	memset(idiom_sound,0,128);
	memset(dict_explain_array,0,1024);
	memset(all_explain_buffer,0,1024);
	memset(cur_sound,0,128);
	if (dict_sc_cur_menu!=3)
	{
		strcpy((char*)cur_word,(char*)dict_word_list_array[dict_list_cur_line+dict_list_begin]);
	}
	

	switch(dict_sc_cur_menu)
	{
	case 0:
		if (word_list_num==0)
		{break;}
		get_english_word_explain(cur_word,cur_sound,cur_word_explain);
		if(strlen((char*)cur_sound) ==0)
		{
			dict_sound_begin_line = 100;
		}
		else
		{
			dict_sound_begin_line = dict_divide_text_to_arraylist(114,(char*)cur_word,(char*)dict_explain_array,20);
		}
//		Change_Sound_Text(cur_sound);////转换音标编码
		Change_Explain_Text((char *)cur_word_explain);////转换一下解释的格式
		strcat((char*)all_explain_buffer,(char*)cur_word);
		strcat((char*)all_explain_buffer,"\n");
		strcat((char*)all_explain_buffer,(char*)cur_sound);
		strcat((char*)all_explain_buffer,"\n");
		strcat((char*)all_explain_buffer,(char*)cur_word_explain);
		break;
	case 1:
		if (word_list_num==0)
		{break;}
		get_Chinese_word_explain(cur_word, cur_word_explain);
		strcat((char*)all_explain_buffer,(char*)cur_word);
		strcat((char*)all_explain_buffer,"\n");
		strcat((char*)all_explain_buffer,(char*)cur_word_explain);
		break;
	case 2:
		if (word_list_num==0)
		{break;}
		id = dict_idiom_list_id[zt_dict_list_roll_content_current_line-1];
		get_idiom_explain(id, (char*)idiom_sound,(char*)cur_word_explain);
		strcat((char*)all_explain_buffer,(char*)cur_word);
		strcat((char*)all_explain_buffer,"\n");
		strcat((char*)all_explain_buffer,(char*)idiom_sound);
		strcat((char*)all_explain_buffer,(char*)cur_word_explain);
		break;
	case 3:
//		MY_write_error_info("get chn info begin");
		i = get_chn_info((char*)gb_buffer,mmi_ps_chn_info);
//		MY_write_error_info("end of get chn info");
		if (i==0)
		{
			sprintf((char*)cur_word_explain,"很抱歉,没有找到该汉字的解释");
		}
		else
		{
//			MY_write_error_info("get chn explain begin");
 			i=get_chn_explain(&mmi_s_chn_info,(char*)chn_sound1_buf,(char*)chn_sound2_buf,(char*)cur_word_explain);
//			MY_write_error_info("get chn explain end ");
			if (i==0)
			{
				sprintf((char*)cur_word_explain,"很抱歉,没有找到该汉字的解释");
				break;
			}
		}
		strcat((char*)all_explain_buffer,(char*)gb_buffer);
		strcat((char*)all_explain_buffer,(char*)":");
		strcat((char*)all_explain_buffer,(char*)"\n");
		strcat((char*)all_explain_buffer,(char*)cur_word_explain);
//		MY_write_error_info((char*)all_explain_buffer);
//		MY_write_error_info("\r\n");
		break;
	case 4:
		get_english_word_explain(cur_word, cur_sound, cur_word_explain);
		if(strlen((char*)cur_sound) ==0)
		{
			dict_sound_begin_line = 100;
		}
		else
		{
			dict_sound_begin_line = dict_divide_text_to_arraylist(114,(char*)cur_word,(char*)dict_explain_array,20);
		}
//		Change_Sound_Text(cur_sound);////转换音标编码
		Change_Explain_Text((char *)cur_word_explain);////转换一下解释的格式
		strcat((char*)all_explain_buffer,(char*)cur_word);
		strcat((char*)all_explain_buffer,"\n");
		strcat((char*)all_explain_buffer,(char*)cur_sound);
		strcat((char*)all_explain_buffer,"\n");
		strcat((char*)all_explain_buffer,(char*)cur_word_explain);
		break;
	case 5:
		get_english_word_explain(cur_word, cur_sound, cur_word_explain);
		if(strlen((char*)cur_sound) ==0)
		{
			dict_sound_begin_line = 100;
		}
		else
		{
			dict_sound_begin_line = dict_divide_text_to_arraylist(114,(char*)cur_word,(char*)dict_explain_array,20);
		}
//		Change_Sound_Text(cur_sound);////转换音标编码
		Change_Explain_Text((char *)cur_word_explain);////转换一下解释的格式
		strcat((char*)all_explain_buffer,(char*)cur_word);
		strcat((char*)all_explain_buffer,"\n");
		strcat((char*)all_explain_buffer,(char*)cur_sound);
		strcat((char*)all_explain_buffer,"\n");
		strcat((char*)all_explain_buffer,(char*)cur_word_explain);
		break;
	}
	memset(dict_explain_array,0,1024);
	if (dict_sc_cur_menu!=3)
	{
		explain_line_num = dict_divide_text_to_arraylist(65,(char*)all_explain_buffer,(char*)dict_explain_array,20);
	}
	else
		explain_line_num = dict_divide_text_to_arraylist(138,(char*)all_explain_buffer,(char*)dict_explain_array,40);
	ZXWX_init_Vscroll_bar((unsigned char *)&zt_dict_exp_vertical_scroll_bar,////buff
		163,////x
		70,////y
		13,////宽(默认值 SCROLL_BAR_DEFAULT_WIDTH)
		128,////高
		13,////两端按钮的高度(默认值(正方形): scroll_bar_width)
		(unsigned short)explain_line_num,////共显示多少行
		(unsigned short)EXP_NUM_PER_PAGE////一屏显示下多少行
		//win_id
		);
	ZXWX_Vscroll_bar_set_handle(
		(unsigned char *)(&zt_dict_exp_vertical_scroll_bar),////buff
		ZT_Dict_Exp_Rollbar_CallbackMain
		);
	ZXWX_show_Vscroll_bar((unsigned char *)(&zt_dict_exp_vertical_scroll_bar));
	dict_output_word_explain();
}
void dict_output_word_explain()
{
	int i;
	int first_sound_len;
	int second_sound_len;
	unsigned char un_buff[80];
	unsigned char temp_buffer[30];
	stFontAttribute	*LM_Font_PT;
	if (DICT_IS_SHOW_CUR_ITEM==0&&dict_sc_cur_menu!=3)
	{
//		Draw_Picture_by_name(DISK_TYPE,"dict\\dict_no_word_bg.gif",111,88,0);
		MY_graph_begin();
		dict_draw_picture_by_name("dict\\dict_no_word_bg.gif",88,70);
		MY_graph_end();
		return;
	}
	if (dict_sc_cur_menu != 3)
	{
		if(dict_cur_focus==0)
			dict_draw_picture_by_name("dict\\explain_bg.gif",88,70);
		else
			dict_draw_picture_by_name("dict\\dict_explain_bg_sel.gif",88,70);
		Text_Clip_Begin();
		for (i=0;i<EXP_NUM_PER_PAGE&&(zt_dict_exp_roll_content_current_line+i)<=explain_line_num;i++)
		{
			memset(un_buff,0,80);
			if(dict_sc_cur_menu == 0||dict_sc_cur_menu == 4||dict_sc_cur_menu == 5)
			{
				if(i==dict_sound_begin_line&&strlen((char*)cur_sound)!=0)
					{
						first_sound_len = strlen((char*)((((i+zt_dict_exp_roll_content_current_line-1)*20)+dict_explain_array)));
						memset(temp_buffer,0,30);
						memcpy(temp_buffer,((i+zt_dict_exp_roll_content_current_line-1)*20)+dict_explain_array,20);
						MY_GB_TO_UNICODE(un_buff,(unsigned char*)(temp_buffer),64);
//						Show_Text_Best(114,(unsigned short)(90+i*20),200,25,un_buff,0,0,0);
//						Change_Sound_Text(temp_buffer,un_buff);
	//					gui_set_font(LM_Font_PT);
						gui_move_text_cursor(90,(unsigned int)(75+i*20));
						gui_print_text((unsigned short*)(un_buff));

⌨️ 快捷键说明

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