static void OnKeyboardEvent( LCUI_SystemEvent *e, void *arg ) { if( e->type == LCUI_KEYDOWN ) { LCUIKeyBoard_HitKey( e->key_code ); } else if( e->type == LCUI_KEYUP ) { LCUIKeyBoard_ReleaseKey( e->key_code ); } }
/* 添加键盘的按键按下事件 */ void LCUI_PostKeyDownEvent( int key_code ) { key_state *data_ptr; LCUI_SystemEvent event; LCUIMutex_Lock( &record_mutex ); data_ptr = KeyStateRecord_FindData( key_code ); LCUIMutex_Unlock( &record_mutex ); /* 已经按下过的按键就不用再触发KEYDOWN事件了 */ if( data_ptr && data_ptr->state == LCUIKEYSTATE_PRESSED ) { return; } event.type = LCUI_KEYDOWN; event.which = key_code; LCUIKeyBoard_HitKey( key_code ); LCUI_PostEvent( "keydown", &event ); }