MTK IDLE輸入超長號碼顯示變化

2021-05-12 07:33:18 字數 1141 閱讀 5977

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()使用新設定的字型再次重繪撥號框。

MTK idle介面涉及的函式

1 狀態列 狀態列包含電池電量指示,訊號指示,日期時間顯示,運營商名字和各個狀態圖示顯示。電池電量顯示 圖示id為status icon battery strength 位於mainlcd idlescreen statusicons battery 注意的是圖示保證5幀。關於電量顯示的控制位於 ...

用 s方法輸入超過字元陣列大小的字串

在陣列a中本來最多只能存有效字元為3個的字串。但是當我輸入hello時仍然可以正常輸出。這可能是因為scanf s a 只管把敲回車或者得到空格之前的所有字元依次存到位址a中,而printf s n a 又只管把a開始 0 結尾的字串行以字串形式輸出。所以不會受到一開始決定的陣列大小的影響。想象中,...

SQL Server 匯入超大指令碼

通過sql指令碼可將資料匯入資料庫中,但是一般當指令碼檔案超過100m的量級時,ssms就無法執行了。這個時候可通過命令列的 osql 命令讀取指令碼入庫。親測可以成功匯入10g左右大小的指令碼,只不過速度稍慢,需要2個多小時。語法 osql s 伺服器 u 登入名 p 密碼 i sql 具體可參考...