MINIGUI输入模块代码文件分析

更新时间:2023-06-23 06:57:43 阅读: 评论:0

MINIGUI输入模块代码文件分析
    一、文件分析
    1、ial.h输入抽象层相关的数据结构和宏定义
    (1)对各类鼠标击键事件展开宏定义。
    #defineial_mou_leftbutton4#defineial_mou_middlebutton2#defineial_mou_rightbutton1#defineial_mou_fourthbutton8#defineial_mou_fifthbutton16#defineial_mou_sixthbutton32
milkyway
    #defineial_mou_retbutton64
    (2)对鼠标事件和键盘事件进行宏定义。
    #defineial_mouevent1
    #defineial_keyevent2
    (3)定义处置输出事件的结构体input
    typedefstructtaginput{
    char*id;
    //initializationandtermination
    bool(*init_input)(structtaginput*input,constchar*mdev,constchar*mtype);void(*term_input)(void);
    //mouoperations
    int(*update_mou)(void);void(*get_mou_xy)(int*x,int*y);void(*t_mou_xy)(intx,inty);int(*get_mou_button)(void);
    void(*t_mou_range)(intminx,intminy,intmaxx,intmaxy);void(*suspend_mou)(void);int(*resume_mou)(void);
    //keyboardoperations
    int(*update_keyboard)(void);constchar*(*get_keyboard_state)(void);void(*suspend_keyboard)(void);int(*resume_keyboard)(void);void(*t_leds)(unsignedintleds);
    int(*wait_event)(intwhich,intmaxfd,fd_t*in,fd_t*out,fd_t*except,structtimeval*timeout);
    charmdev[max_path+1];}input;
    (4)定义处置输出事件的函数。
    #defineial_initinput(*__mg_cur_input->init_input)#defineial_terminput(*__mg_cur_input->term_input)#defineial_updatemou(*__mg_cur_input->update_mou)……
    (5)声明输出抽象化层初始化函数和完结函数。
童声英文歌    intinitial(void);voidterminateial(void);
wbl
    2、ial.c输出抽象化层有关函数
    (1)根据定义的输入引擎include对应的头文件。
    #ifdef_qvfb_ial#include\#endif……
    (2)宏定义输入引擎的名称和类型字符长度。
    #definelen_engine_name16#definelen_mtype_name16菊粉酶
    (3)定义input数组inputs,存放支持的输入引擎的名称、初始化和终止函数。
猫和老鼠动画片下载    staticinputinputs[]={
    #ifdef_dummy_ial
    {\,initdummyinput,termdummyinput},#endif
    #ifdef_auto_ial
商务英语多少钱
    {\,initautoinput,termautoinput},#ifdef_qvfb_ial
    {\,initqvfbinput,termqvfbinput},#endif……
    #ifdef_tfstb_ial
    {\,inittfstbinput,termtfstbinput},#endif
    #ifdef_hi3610_ial
    {\,inithi3610input,termhi3610input},#endif};
    (4)定义当前输出。
former什么意思
    input*__mg_cur_input;
    (5)赢得积极支持的输出引擎的个数即inputs数组涵盖的元素个数。
    #definenr_inputs(sizeof(inputs)/sizeof(input))
    (6)intinitial(void):同时实现输出抽象化层的初始化。
    函数的主要作用:1获得当前输入引擎的参数,包括名称、路径、类型。
    2挑选输出引擎:将__mg_cur_input指向当前采用的输出引擎的参数放置的地址:__mg_cur_input=inputs+i,或者设置为第一个输出引擎。
    3根据获得的参数进行初始化:ial_initinput(__mg_cur_input,mdev,mtype)
    (7)voidterminateial(void)
naive是什么意思    函数的主要作用:终止输入抽象层ial_terminput()
    (8)定义了一系列鼠标校正函数
    当定义了_misc_moucalibrate时启用这些函数
    3、event.h输出事件有关的数据结构和宏定义
    (1)定义鼠标移动事件结构体:
    typedefstruct_mouevent{intevent;//命令事件类型intx;//鼠标的边线inty;
    dwordstatus;//状态}mouevent;
    typedefmouevent*pmouevent;
    (2)宏定义不同的鼠标事件类型对应的数值:
    #defineme_moved0x0000#defineme_leftmask0x000f#defineme_leftdown0x0001#defineme_leftup0x0002#defineme_leftdblclick0x0003#defineme_rightmask0x00f0#defineme_rightdown0x0010#defineme_rightup0x0020#defineme_rightdblclick0x0030#defineme_middlemask0x0f00#defineme_middledown0x0100#defineme_middleup0x0200#defineme_middledblclick0x0300#defineme_repeated0xf000
    (3)定义键盘事件的结构体
    typedefstruct_keyevent{intevent;//事件类型intscancode;//按键读取码dwordstatus;//状态信息
    }keyevent;
    typedefkeyevent*pkeyevent;
    (4)宏定义不同的键盘事件类型对应的数值:
    #defineke_keymask0x000f#defineke_keydown0x0001#defineke_keyup0x0002#defineke_keylongpress0x0004#defineke_keyalwayspress0x0008#defineke_syskeymask0x00f0#defineke_syskeydown0x0010#defineke_syskeyup0x0020
    (5)定义底层事件数据类型的联合体:表示底层事件的类型可以为鼠标事件也可以为键盘事件。
    typedefunion_lweventdata{moueventme;keyeventke;}lweventdata;
    (6)定义底层事件结构体:
    typedefstruct_lwevent{
    inttype;//底层事件类型intcount;//发生时间dwordstatus;//状态lweventdatadata;//数据}lwevent;
    typedeflwevent*plwevent;
ensure    (7)宏定义三种底层事件的类型:
    #definelwetype_timeout0#definelwetype_key1#definelwetype_mou2
    (8)声明函数初始化顶层事件函数、终止底层事件函数和获得底层事件函数:
    boolinitlwevent(void);voidterminatelwevent(void);
    boolgetlwevent(intevent,plweventlwe);
    (9)宏定义鼠标事件的有关参数
读者文摘txt下载    #definemoupara\#definemoupara_dblclicktime\#definedef_mc_dblclick300#defineeventpara\#defineeventpara_repeatuc\#defineeventpara_timeoutuc\
    #definedef_uc_timeout300000#definedef_repeat_time50000#definedef_lpress_time500#definedef_apress_time1000#definedef_interval_time200
    4、event.c输入事件相关函数

本文发布于:2023-06-23 06:57:43,感谢您对本站的认可!

本文链接:https://www.wtabcd.cn/fanwen/fan/78/1019270.html

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。

标签:事件   定义   函数   输出   引擎
相关文章
留言与评论(共有 0 条评论)
   
验证码:
推荐文章
排行榜
Copyright ©2019-2022 Comsenz Inc.Powered by © 专利检索| 网站地图