MTK:IDLE输入超长号码显示变化

1.MMI_key_input_handler()

2.dialer_inputbox_handle_key_down()

3.dialer_inputbox_direct_input()

3-1.gui_dialer_input_box_insert_character()

(1)       把输入的字符添加进去

(2)       b->validation_callback(b->text, b->current_text_p, (b->text_length >> 1) - 1);

(3)       b->change_callback(); 即:dialer_input_box_change_callback()

(3-1)gui_show_dialer_input_box()

gui_show_dialer_input_box_ext() 第一次SHOW拨号框,只SHOW第一行。在SHOW时首先获取字符高度:character_height = gui_get_character_height();即获取:gpCurrentFont->nHeight。

如果一行显示不下(通过if ((text_x - (character_width + text_gap)) < x1 + 2)来判断),就让MMI_dialer_inputbox->n_lines++,然后直接退出。

(3-2)通过for (i = 0; i < text_length; i++)循环,如果长度超过一行,就重新设置字体MMI_dialer_inputbox.text_font = (&wgui_dialer_box_f2); size:4—>1。

(3-3)dial_text_on_change()(需要搜索下是在哪里设置的此函数)

IdleDialPadInputBoxChange()                                           ChangeLeftSoftkey-change_softkey-set_softkey_labelgui_resize_icontext_button-UI_set_font-SetFont()此函数重新设置了gnCurrentFont!!!

3-2.redraw_dialer_inputbox()

       gui_show_dialer_input_box()使用新设置的字体再次重绘拨号框。

你可能感兴趣的:(ext,input,insert,callback,character,MTK)