對MTK按鍵事件的簡單分析

2021-04-26 15:10:40 字數 1186 閱讀 7664

主要簡單分析一下左右軟體的事件,以左軟鍵事件為例

牽涉到的常用函式:

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是回車,當這個...