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()使用新设置的字体再次重绘拨号框。