主要簡單分析一下左右軟體的事件,以左軟鍵事件為例
牽涉到的常用函式:
void setkeyhandler( funcptr funcptr, u16 keycode, u16 keytype );
void setleftsoftkeyfunction( void (*f)(void), mmi_key_event_type k );
void changeleftsoftkey( u16 s, u16 i );
1. setkeyhandler與setleftsoftkeyfunction
(1). setkeyhandler
主要作用就是將需要起作用的函式的指標(funcptr)
-->全域性矩陣陣列currkeyfuncptrs[keycode][keytype]的指定位置 ;
(2). setleftsoftkeyfunction
該函式內部主要流程:
step1. call register_left_softkey_handler( )
這個函式call setkeyhandler: 儲存需要起作用的函式(left_softkey_down/left_softkey_up)
以left_softkey為例, 該函式首先首先重新整理按鍵區域影象(redraw_softkey),
然後執行關聯函式(softkey_functions[key][k]).
step2. 在上一步裡我們會發現,softkey_functions[key][k]裡的函式指標沒有初始化
通過 call set_left_softkey_function(f, k);
--->softkey_functions[key][k] = f;
這樣,就成功的把按鍵按下/放開的作用函式與具體的動作關聯起來了。
step3. 最後call setinputboxlskfunction(f)
--->將上述函式與特定的輸入(如觸控筆)關聯起來。
(3). 以上兩個函式的主要區別:
setleftsoftkeyfunction可以識別長按狀態並且可以關聯觸控筆操作等。
2. changeleftsoftkey
主要執行流程:
step1. call change_left_softkey: 設定左軟鍵圖表,文字
step2. redraw_softkey: 重新整理左軟鍵顯示區域
MTK平台學習 對MTK按鍵事件的簡單分析
主要簡單分析一下左右軟體的事件,以左軟鍵事件為例 牽涉到的常用函式 void setkeyhandler funcptr funcptr,u16 keycode,u16 keytype void setleftsoftkeyfunction void f void mmi key event typ...
qt按鍵事件處理機制分析
本為以qt2.3.12作為原始碼進行分析。下面是乙個簡單的顯示乙個按鍵,並將按鍵鏈結到退出操作的程式,本文將一步一步分析,qt是如何實現此操作的。qpushbutton是繼承於qbutton的,我們可以到qbutton.cpp中檢視click 事件是如何產生的。qt2 src widgets qbu...
Input的按鍵事件
onkeydown 當按鍵按下會觸發的事件,當需要特定的按鍵按下,可以使用if event.keycode 這裡的?就是 keycode 的碼,可以檢視 根據對照表,找到自己需要的keycode碼 填入?處 例如if event.keycode 13 jump keycode碼的 13是回車,當這個...