CEGUI中的事件通过CEGUI::InjectedInputReceiver处理,需要从外部注入输入事件,具体包括如下几个函数:
bool InjectedInputReceiver::injectMouseMove( float delta_x, float delta_y );
bool InjectedInputReceiver::injectMousePosition( float x_pos, float y_pos );
bool InjectedInputReceiver::injectMouseLeaves( void );
bool InjectedInputReceiver::injectMouseButtonDown( MouseButton button );
bool InjectedInputReceiver::injectMouseButtonUp( MouseButton button );
bool InjectedInputReceiver::injectKeyDown( Key::Scan scan_code );
bool InjectedInputReceiver::injectKeyUp( Key::Scan scan_code );
bool InjectedInputReceiver::injectChar( utf32 code_point );
bool InjectedInputReceiver::injectMouseWheelChange( float delta );
bool InjectedInputReceiver::injectTimePulse( float timeElapsed );
bool InjectedInputReceiver::injectMouseButtonClick( MouseButton button );
bool InjectedInputReceiver::injectMouseButtonDoubleClick( MouseButton button );
bool InjectedInputReceiver::injectMouseButtonTripleClick( MouseButton button );
注入输入事件时通过GUIContext(继承自InjectedInputReceiver)实现,获取GUIContext的方法如下:
CEGUI::GUIContext& context = CEGUI::System::getSingleton().getDefaultGUIContext();
详细用法可参照http://static.cegui.org.uk/docs/0.8.7/input_tutorial.html