?? dict_start.c
字號:
{
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 + -