5.界面的处理

fcitx基于xlib实现简单界面,导致缺乏配置窗口,影响易用性。文章建议将其界面独立为so,利用GTK等高级图形库提升用户体验。尽管xlib代码繁琐,但目前设计确保了轻量级优势。fcitx有3个窗口,主窗口、虚拟键盘和候选词窗口,注解主要针对创建主窗口的代码。

​ fcitx是使用xlib写的界面。我们知道,xlib在linux下是最底层的图形库。QT和GTK都是基于xlib写的。所以,理论上讲,fcitx完全可以在没有QT和GTK的情况下运行。但是,也正是这个原因,fcitx的界面非常的简单。连基本的配置界面都没有。从程序的易用性方面讲,有一个配置窗口是非常合理而且合情的。但是,直接使用xlib处理界面实在不是太好的主意。尤其是用它来处理复杂一些的界面。

​ 其实,fcitx完全可以将界面独立出来,而不在主程序中实现。写成一个so,抽象一下。将界面作为一个整体来处理。然后,在使用gtk之类的高级一点的图形库写复杂的配置界面等等。所以,个人认为,fcitx的界面部分实在是没有多少好分析的。仅仅是因为采用xlib写,非常繁琐,所以,代码感觉比较多。如果使用Gtk之类的写,代码肯定要少很多,而且很容易阅读。不过,那样一来,也失去了现在这种界面的优势。

​ 在fcitx中,主要有3个窗口,主窗口、虚拟键盘窗口和候选词窗口。这3个窗口都比较简单。没有多少界面元素。所以,我就不再详细的解说了。仅仅对创建主窗口部分的代码做一点简单的注解。

// 创建主窗口。
// 主窗口的颜色之类的信息已经全部在LoadConfig函数里读入。
Bool CreateMainWindow (void)
{
    XSetWindowAttributes attrib;
    unsigned long   attribmask;
    int             iBackPixel;

    attrib
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值