xref: /OK3568_Linux_fs/external/xserver/hw/xnest/XNWindow.h (revision 4882a59341e53eb6f0b4789bf948001014eff981)
1 /*
2 
3 Copyright 1993 by Davor Matic
4 
5 Permission to use, copy, modify, distribute, and sell this software
6 and its documentation for any purpose is hereby granted without fee,
7 provided that the above copyright notice appear in all copies and that
8 both that copyright notice and this permission notice appear in
9 supporting documentation.  Davor Matic makes no representations about
10 the suitability of this software for any purpose.  It is provided "as
11 is" without express or implied warranty.
12 
13 */
14 
15 #ifndef XNESTWINDOW_H
16 #define XNESTWINDOW_H
17 
18 typedef struct {
19     Window window;
20     Window parent;
21     int x;
22     int y;
23     unsigned int width;
24     unsigned int height;
25     unsigned int border_width;
26     Window sibling_above;
27     RegionPtr bounding_shape;
28     RegionPtr clip_shape;
29 } xnestPrivWin;
30 
31 typedef struct {
32     WindowPtr pWin;
33     Window window;
34 } xnestWindowMatch;
35 
36 extern DevPrivateKeyRec xnestWindowPrivateKeyRec;
37 
38 #define xnestWindowPrivateKey (&xnestWindowPrivateKeyRec)
39 
40 #define xnestWindowPriv(pWin) ((xnestPrivWin *) \
41     dixLookupPrivate(&(pWin)->devPrivates, xnestWindowPrivateKey))
42 
43 #define xnestWindow(pWin) (xnestWindowPriv(pWin)->window)
44 
45 #define xnestWindowParent(pWin) \
46   ((pWin)->parent ? \
47    xnestWindow((pWin)->parent) : \
48    xnestDefaultWindows[pWin->drawable.pScreen->myNum])
49 
50 #define xnestWindowSiblingAbove(pWin) \
51   ((pWin)->prevSib ? xnestWindow((pWin)->prevSib) : None)
52 
53 #define xnestWindowSiblingBelow(pWin) \
54   ((pWin)->nextSib ? xnestWindow((pWin)->nextSib) : None)
55 
56 #define CWParent CWSibling
57 #define CWStackingOrder CWStackMode
58 
59 WindowPtr xnestWindowPtr(Window window);
60 Bool xnestCreateWindow(WindowPtr pWin);
61 Bool xnestDestroyWindow(WindowPtr pWin);
62 Bool xnestPositionWindow(WindowPtr pWin, int x, int y);
63 void xnestConfigureWindow(WindowPtr pWin, unsigned int mask);
64 Bool xnestChangeWindowAttributes(WindowPtr pWin, unsigned long mask);
65 Bool xnestRealizeWindow(WindowPtr pWin);
66 Bool xnestUnrealizeWindow(WindowPtr pWin);
67 void xnestCopyWindow(WindowPtr pWin, xPoint oldOrigin, RegionPtr oldRegion);
68 void xnestClipNotify(WindowPtr pWin, int dx, int dy);
69 void xnestWindowExposures(WindowPtr pWin, RegionPtr pRgn);
70 void xnestSetShape(WindowPtr pWin, int kind);
71 void xnestShapeWindow(WindowPtr pWin);
72 
73 #endif                          /* XNESTWINDOW_H */
74