105b261ecSmrg/* 205b261ecSmrg 305b261ecSmrgCopyright 1993 by Davor Matic 405b261ecSmrg 505b261ecSmrgPermission to use, copy, modify, distribute, and sell this software 605b261ecSmrgand its documentation for any purpose is hereby granted without fee, 705b261ecSmrgprovided that the above copyright notice appear in all copies and that 805b261ecSmrgboth that copyright notice and this permission notice appear in 905b261ecSmrgsupporting documentation. Davor Matic makes no representations about 1005b261ecSmrgthe suitability of this software for any purpose. It is provided "as 1105b261ecSmrgis" without express or implied warranty. 1205b261ecSmrg 1305b261ecSmrg*/ 1405b261ecSmrg 1505b261ecSmrg#ifndef XNESTWINDOW_H 1605b261ecSmrg#define XNESTWINDOW_H 1705b261ecSmrg 1805b261ecSmrgtypedef struct { 1935c4bbdfSmrg Window window; 2035c4bbdfSmrg Window parent; 2135c4bbdfSmrg int x; 2235c4bbdfSmrg int y; 2335c4bbdfSmrg unsigned int width; 2435c4bbdfSmrg unsigned int height; 2535c4bbdfSmrg unsigned int border_width; 2635c4bbdfSmrg Window sibling_above; 2735c4bbdfSmrg RegionPtr bounding_shape; 2835c4bbdfSmrg RegionPtr clip_shape; 2905b261ecSmrg} xnestPrivWin; 3005b261ecSmrg 3105b261ecSmrgtypedef struct { 3235c4bbdfSmrg WindowPtr pWin; 3335c4bbdfSmrg Window window; 3405b261ecSmrg} xnestWindowMatch; 3505b261ecSmrg 366747b715Smrgextern DevPrivateKeyRec xnestWindowPrivateKeyRec; 3735c4bbdfSmrg 386747b715Smrg#define xnestWindowPrivateKey (&xnestWindowPrivateKeyRec) 3905b261ecSmrg 404642e01fSmrg#define xnestWindowPriv(pWin) ((xnestPrivWin *) \ 414642e01fSmrg dixLookupPrivate(&(pWin)->devPrivates, xnestWindowPrivateKey)) 4205b261ecSmrg 4305b261ecSmrg#define xnestWindow(pWin) (xnestWindowPriv(pWin)->window) 4405b261ecSmrg 4505b261ecSmrg#define xnestWindowParent(pWin) \ 4605b261ecSmrg ((pWin)->parent ? \ 4705b261ecSmrg xnestWindow((pWin)->parent) : \ 4805b261ecSmrg xnestDefaultWindows[pWin->drawable.pScreen->myNum]) 4905b261ecSmrg 5005b261ecSmrg#define xnestWindowSiblingAbove(pWin) \ 5105b261ecSmrg ((pWin)->prevSib ? xnestWindow((pWin)->prevSib) : None) 5205b261ecSmrg 5305b261ecSmrg#define xnestWindowSiblingBelow(pWin) \ 5405b261ecSmrg ((pWin)->nextSib ? xnestWindow((pWin)->nextSib) : None) 5505b261ecSmrg 5605b261ecSmrg#define CWParent CWSibling 5705b261ecSmrg#define CWStackingOrder CWStackMode 5805b261ecSmrg 5905b261ecSmrgWindowPtr xnestWindowPtr(Window window); 6005b261ecSmrgBool xnestCreateWindow(WindowPtr pWin); 6105b261ecSmrgBool xnestDestroyWindow(WindowPtr pWin); 6205b261ecSmrgBool xnestPositionWindow(WindowPtr pWin, int x, int y); 6305b261ecSmrgvoid xnestConfigureWindow(WindowPtr pWin, unsigned int mask); 6405b261ecSmrgBool xnestChangeWindowAttributes(WindowPtr pWin, unsigned long mask); 6505b261ecSmrgBool xnestRealizeWindow(WindowPtr pWin); 6605b261ecSmrgBool xnestUnrealizeWindow(WindowPtr pWin); 6705b261ecSmrgvoid xnestCopyWindow(WindowPtr pWin, xPoint oldOrigin, RegionPtr oldRegion); 6805b261ecSmrgvoid xnestClipNotify(WindowPtr pWin, int dx, int dy); 6935c4bbdfSmrgvoid xnestWindowExposures(WindowPtr pWin, RegionPtr pRgn); 706747b715Smrgvoid xnestSetShape(WindowPtr pWin, int kind); 7105b261ecSmrgvoid xnestShapeWindow(WindowPtr pWin); 7205b261ecSmrg 7335c4bbdfSmrg#endif /* XNESTWINDOW_H */ 74