X Window研究笔记(13)

原创 2007年09月27日 21:44:00
X Window研究笔记(13)

转载时请注明出处和作者联系方式
作者联系方式:李先静 <xianjimli at hotmail dot com>

13.X Window扩展机制--客户端勾子函数

扩展模块是X Window的主要扩展方式,前面我们介绍它在X Server中的实现。其实在客户端,X Window也为扩展模块扩展提供了方便,以此可以hook一些重要的功能,很多扩展模块都利用了这种机制。hook接口如下:

typedef struct _XExtensionHooks ...{
    
int (*create_gc)(
              Display
*                  /**//* display */,
              GC                        
/**//* gc */,
              XExtCodes
*                /**//* codes */
); 
    
int (*copy_gc)(
              Display
*                  /**//* display */,
              GC                        
/**//* gc */,
              XExtCodes
*                /**//* codes */
);
    
int (*flush_gc)(
              Display
*                  /**//* display */,
              GC                        
/**//* gc */,
              XExtCodes
*                /**//* codes */
);
    
int (*free_gc)(
              Display
*                  /**//* display */,
              GC                        
/**//* gc */,
              XExtCodes
*                /**//* codes */
);
    
int (*create_font)(
              Display
*                  /**//* display */,
              XFontStruct
*              /**//* fs */,
              XExtCodes
*                /**//* codes */
);
    
int (*free_font)(
              Display
*                  /**//* display */,
              XFontStruct
*              /**//* fs */,
              XExtCodes
*                /**//* codes */
);
    
int (*close_display)(
              Display
*                  /**//* display */,
              XExtCodes
*                /**//* codes */
);
Bool (
*wire_to_event)(
               Display
*                 /**//* display */,
               XEvent
*                  /**//* re */,
               xEvent
*                  /**//* event */
);
    Status (
*event_to_wire)(
              Display
*                  /**//* display */,
              XEvent
*                   /**//* re */,
              xEvent
*                   /**//* event */
);
    
int (*error)(
              Display
*                  /**//* display */,
              xError
*                   /**//* err */,
              XExtCodes
*                /**//* codes */,
              
int*                      /**//* ret_code */
);
    
char *(*error_string)(
                Display
*                /**//* display */,
                
int                     /**//* code */,
                XExtCodes
*              /**//* codes */,
                
char*                   /**//* buffer */,
                
int                     /**//* nbytes */
);
}
 XExtensionHooks;


在上面这些函数中,close_display(关闭DISPLAY时被调用),wire_to_event(发现事件时被调用)和 event_to_wire(发出事件时被调用)三个函数使用最为频繁。

示例可以参考lib/Xext中的代码。

(待续)
 
版权声明:本文为博主原创文章,未经博主允许不得转载。

X Window研究笔记

 http://blog.csdn.net/absurd/category/336948.aspx
  • lcj8
  • lcj8
  • 2009年02月17日 17:35
  • 436

X Window研究笔记(6)

X Window研究笔记(6)转载时请注明出处和作者联系方式作者联系方式:李先静 6.X Window输入设备(TinyX)X Window支持的基本输入设备有keyboard、mouse和touch...
  • absurd
  • absurd
  • 2007年09月15日 16:43
  • 4370

X Window研究笔记(10)

X Window研究笔记(10)转载时请注明出处和作者联系方式作者联系方式:李先静 10.X Window扩展机制--扩展(Extension)XWindow中有大量扩展模块,每个扩展模块完成一组相关...
  • absurd
  • absurd
  • 2007年09月23日 11:00
  • 5277

X Window研究笔记(19)

X Window研究笔记(19)转载时请注明出处和作者联系方式作者联系方式:李先静 19.X Window中的图片文件PixmapX Window自己定义了一种图片文件格式,叫做pixmap,与众不同...
  • absurd
  • absurd
  • 2007年10月02日 14:31
  • 3765

X Window研究笔记(17)

X Window研究笔记(17)转载时请注明出处和作者联系方式作者联系方式:李先静 17.X Window 窗口管理器很多人不知道窗口管理器是怎么回事。他们认为 GNOME 和 KDE 就是窗口管理器...
  • absurd
  • absurd
  • 2007年10月02日 14:03
  • 4107

X Window研究笔记(21)

X Window研究笔记(21)转载时请注明出处和作者联系方式作者联系方式:李先静 21.X Window 字符串与AtomAtom是X Window中的一大特色,不把它弄清楚,可能会对阅读其它代码形...
  • hejishan
  • hejishan
  • 2007年12月18日 07:45
  • 237

X Window研究笔记(7)

X Window研究笔记(7) 转载时请注明出处和作者联系方式 作者联系方式:李先静 7.X Window的运行过程 X Window 的入口在programs/Xserver/dix/mai...
  • absurd
  • absurd
  • 2007年09月18日 21:19
  • 4253

X Window研究笔记(20)

X Window研究笔记(20)转载时请注明出处和作者联系方式作者联系方式:李先静 20.X Window资源管理在X Window中,资源是一个广泛使用的概念。它包括图片、光标和窗口等对象,可以是内...
  • hejishan
  • hejishan
  • 2007年12月18日 07:46
  • 233

X Window研究笔记(16)

X Window研究笔记(16)转载时请注明出处和作者联系方式作者联系方式:李先静 16.X Window字体的配置服务器端字体的配置:指定字体搜索路径: 缺省的路径:包括/usr/X11R6/...
  • absurd
  • absurd
  • 2007年10月02日 13:39
  • 3811

X Window研究笔记(15)

X Window研究笔记(15)转载时请注明出处和作者联系方式作者联系方式:李先静 15.X Window支持触摸屏X Window虽然可以直接支持触摸屏设备,但那样要求驱动程序做更多的工作,比如去抖...
  • absurd
  • absurd
  • 2007年10月02日 13:26
  • 4003
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:X Window研究笔记(13)
举报原因:
原因补充:

(最多只允许输入30个字)