|
楼主 |
发表于 2006-12-30 13:24:05
|
显示全部楼层
2. XWindowAttributes;
typedef struct {
int x, y; /* location of window */
int width, height; /* width and height of window */
int border_width; /* border width of window */
int depth; /* depth of window */
Visual *visual; /* the associated visual structure */
Window root; /* root of screen containing window */
int class; /* InputOutput, InputOnly*/
int bit_gravity; /* one of the bit gravity values */
int win_gravity; /* one of the window gravity values */
int backing_store; /* NotUseful, WhenMapped, Always */
unsigned long backing_planes; /* planes to be preserved if possible */
unsigned long backing_pixel; /* value to be used when restoring planes */
Bool save_under; /* boolean, should bits under be saved? */
Colormap colormap; /* color map to be associated with window */
Bool map_installed; /* boolean, is color map currently installed*/
int map_state; /* IsUnmapped, IsUnviewable, IsViewable */
long all_event_masks; /* set of events all people have interest in*/
long your_event_mask; /* my event mask */
long do_not_propagate_mask; /* set of events that should not propagate */
Bool override_redirect; /* boolean value for override-redirect */
Screen *screen; /* back pointer to correct screen */
} XWindowAttributes;
有一定窗口设计经验的人都知道,一个窗口有很多描述。例如:x,y,width,height。一看就知道。我就不
多说了。
从图形库和窗口设计角度我要和大家谈谈 map_state。它有如下三个值。
* IsUnmapped 没有被允许显示;
* IsViewable 可以显示;
* IsUnviewable 这个窗口被设置为可显示;但是他的父辈不能显示。
当一个窗口被建立时他们的属性是:IsUnmapped;当使用XMapWindow,函数后表明该窗口可以显示。
属性应该:IsViewable。 但是当它判断它的父辈的map_state != IsViewable;他应该为:
IsUnviewable。 |
|