第一个基于XServer的程序

看了fcitx源码很长时间,里面的结构也大概明白了,但是按键消息怎么给输入法的总是不明白,前几天看到一个Linux下输入法的说明文章,才一下子解开了这个迷,原来有一个XIM(X Input Method),在Linux下弄输入法,就是对这个库编程。网址在这里:

http://www.ibm.com/developerworks/cn/linux/i18n/xim/xim-2/index.html

 

有了这个文章的帮助,很容易就把fcitx的整体结构看清楚了。主要用的是xlib的库,每一个输入法的相关函数封装到了一个结构中,这个结构包括了有关输入法的所有操作函数,然后在切换输入法的时候,把这个结构换一下就可以。所有的输入法结构的初始化在SetIM函数中,可以清楚的看到,用RegisterNewIM函数来注册,在这个函数里,就可以看到,把每个输入法相关的函数都放到了IM结构中,IM的定义如下

 

在程序中,定义了一个IM *im变量,用来保存现在的输入法。在SetIM中会给这个im分配内存,    im = (IM *) malloc (sizeof (IM) * iIMCount);

这样,处理完成后,就等待客户端程序的事件了。原来这这么一个过程

现在fcitx的结构要比以前的结构清楚多了。

 

程序结构清楚了,下一步就是学习了。首先从最简单的做起,一个XServer的客户端,显示一个小窗口,因为要给用户一个界面来看到现在的输入法状态。

代码如下

 

编译此代码:gcc -lX11 -o firstxlib firstxlib.o

 最后附一个Xlib Manual的网址:http://tronche.com/gui/x/xlib/

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值