/** 初始化部件事件处理 */ void LCUIWidgetEvent_Init(void) { Queue_Init( &widget_proc_record, sizeof(WidgetRecordItem), NULL ); LCUISysEvent_Connect( LCUI_MOUSEBUTTONDOWN, LCUI_HandleMouseButton, NULL ); LCUISysEvent_Connect( LCUI_MOUSEBUTTONUP, LCUI_HandleMouseButton, NULL ); LCUISysEvent_Connect( LCUI_MOUSEMOTION, LCUI_HandleMouseMotion, NULL ); LCUISysEvent_Connect( LCUI_KEYDOWN, WidgetFocusProc, NULL ); LCUISysEvent_Connect( LCUI_KEYUP, WidgetFocusProc, NULL ); }
/** 捕捉键盘按键输入 */ static void StartCatchKey( LCUI_Widget *btn ) { if( tip_box ) { return; } /* 创建提示框 */ tip_box = Widget_New(NULL); tip_label = Widget_New("label"); /* 将label部件添加至提示框中 */ Widget_Container_Add( tip_box, tip_label ); /* 设置提示框中显示的文本 */ Label_TextW( tip_label, TEXT_PLEASE_PRESS_KEY ); /* 设置提示框位置、尺寸及样式 */ Widget_SetAlign( tip_label, ALIGN_MIDDLE_CENTER, Pos(0,0) ); Widget_SetAlign( tip_box, ALIGN_MIDDLE_CENTER, Pos(0,0) ); Widget_Resize( tip_box, TIPBOX_SIZE ); Widget_SetBackgroundTransparent( tip_box, FALSE ); Widget_SetBorder( tip_box, Border(1,BORDER_STYLE_SOLID,RGB(200,200,200)) ); /* 连接LCUI_KEYDOWN事件,以在键盘按键被按下时进行响应 */ keyboard_connect_id = LCUISysEvent_Connect( LCUI_KEYDOWN, ProcKeyDown, btn ); Widget_Show( tip_label ); Widget_SetModal( tip_box, TRUE ); Widget_Show( tip_box ); }