<!-- @page { margin: 2cm } P { margin-bottom: 0.21cm } -->
Xlib 学习笔记
第一章
1.2 X Window System概念
display: 由键盘,鼠标和一个或多个屏幕组成的一个工作站
screen:一个display可以有多个screen
server-client模型:
窗口管理器
事件
X扩展
第二章 X概念
x协议:
请求消息
回复消息:需要回复的请求比较浪费资源,需要等待网络传输
事件:
错误:
缓冲:
xlib会保存请求来使客户端持续运行不至于等待网络传输。
引起发送缓冲情况有:
调用等待事件函数但事件队列中没有匹配的事件,如:XNextEvent
客户端调用从服务器获得信息的函数,Query Fetch Get类函数
客户端强制刷新缓冲 XFlush XSync
资源
为了减少网络传输,x为每个抽象事物使用一个唯一id进行标识(window, gc, etc),也就是atom
properties和atoms
property是每个window拥有的一组属性。atom用来标识每个property,可通过XInternAtom()获得atom。XA_为前坠的宏代表内置的atom
窗口管理器:
substructure redirection。substurcture引用大小,位置,子窗口z序。redirection代表对窗口配置改变的请求。请求由窗口管理器决定是否实施。
Window
Window Characteristics:
父窗体:每个窗体都有父窗体,除了root window。
窗体坐标系统:以窗体左上角为原点
window 配置包含: 高和宽,边框宽度,位置xy,z序。
depth色深,visual
窗体类别 inputoutput, inputonly
一组window属性:边框和背景的颜色,当窗体大小变化时窗体内布局如何变化,窗体何时自动保存被遮盖的内容,接受什么类型的事件,是否允许窗体移动显示不同过窗口管理器,窗体使用哪个colormap,窗体内显示什么样的指针。
Mapping 和 Visibility
XMapWindow() 在当前z-order位置映射窗口,XMapRaised()将窗口放到Z-order顶部映射,当窗体是第一次创建时,两者行为一样,都在顶层显示窗体。