#ifndef WINDOW_H
#define WINDOW_H
#include "misc.h"
#include "region.h"
#include "screenint.h"
#include <X11/Xproto.h>
#define TOTALLY_OBSCURED 0
#define UNOBSCURED 1
#define OBSCURED 2
#define VisibilityNotViewable 3
#define WT_STOPWALKING 0
#define WT_WALKCHILDREN 1
#define WT_DONTWALKCHILDREN 2
#define WT_NOMATCH 3
#define NullWindow ((WindowPtr) 0)
struct _DeviceIntRec;
struct _Cursor;
typedef struct _BackingStore *BackingStorePtr;
typedef struct _Window *WindowPtr;
typedef int (*VisitWindowProcPtr)(
WindowPtr ,
pointer );
extern _X_EXPORT int TraverseTree(
WindowPtr ,
VisitWindowProcPtr ,
pointer );
extern _X_EXPORT int WalkTree(
ScreenPtr ,
VisitWindowProcPtr ,
pointer );
extern _X_EXPORT Bool CreateRootWindow(
ScreenPtr );
extern _X_EXPORT void InitRootWindow(
WindowPtr );
typedef WindowPtr (* RealChildHeadProc) (WindowPtr pWin);
extern _X_EXPORT void RegisterRealChildHeadProc (RealChildHeadProc proc);
extern _X_EXPORT WindowPtr RealChildHead(
WindowPtr );
extern _X_EXPORT WindowPtr CreateWindow(
Window ,
WindowPtr ,
int ,
int ,
unsigned int ,
unsigned int ,
unsigned int ,
unsigned int ,
Mask ,
XID* ,
int ,
ClientPtr ,
VisualID ,
int* );
extern _X_EXPORT int DeleteWindow(
pointer ,
XID );
extern _X_EXPORT int DestroySubwindows(
WindowPtr ,
ClientPtr );
#ifdef __APPLE__
#define ChangeWindowAttributes Darwin_X_ChangeWindowAttributes
#endif
extern _X_EXPORT int ChangeWindowAttributes(
WindowPtr ,
Mask ,
XID* ,
ClientPtr );
extern _X_EXPORT int ChangeWindowDeviceCursor(
WindowPtr ,
struct _DeviceIntRec* ,
struct _Cursor* );
extern _X_EXPORT struct _Cursor* WindowGetDeviceCursor(
WindowPtr ,
struct _DeviceIntRec* );
#ifdef __APPLE__
#define GetWindowAttributes(w,c,x) Darwin_X_GetWindowAttributes(w,c,x)
extern void Darwin_X_GetWindowAttributes(
#else
extern _X_EXPORT void GetWindowAttributes(
#endif
WindowPtr ,
ClientPtr ,
xGetWindowAttributesReply* );
extern _X_EXPORT void GravityTranslate(
int ,
int ,
int ,
int ,
int ,
int ,
unsigned ,
int* ,
int* );
extern _X_EXPORT int ConfigureWindow(
WindowPtr ,
Mask ,
XID* ,
ClientPtr );
extern _X_EXPORT int CirculateWindow(
WindowPtr ,
int ,
ClientPtr );
extern _X_EXPORT int ReparentWindow(
WindowPtr ,
WindowPtr ,
int ,
int ,
ClientPtr );
extern _X_EXPORT int MapWindow(
WindowPtr ,
ClientPtr );
extern _X_EXPORT void MapSubwindows(
WindowPtr ,
ClientPtr );
extern _X_EXPORT int UnmapWindow(
WindowPtr ,
Bool );
extern _X_EXPORT void UnmapSubwindows(
WindowPtr );
extern _X_EXPORT void HandleSaveSet(
ClientPtr );
extern _X_EXPORT Bool PointInWindowIsVisible(
WindowPtr ,
int ,
int );
extern _X_EXPORT RegionPtr NotClippedByChildren(
WindowPtr );
extern _X_EXPORT void SendVisibilityNotify(
WindowPtr );
extern _X_EXPORT int dixSaveScreens(
ClientPtr client,
int on,
int mode);
extern _X_EXPORT int SaveScreens(
int on,
int mode);
extern _X_EXPORT WindowPtr FindWindowWithOptional(
WindowPtr );
extern _X_EXPORT void CheckWindowOptionalNeed(
WindowPtr );
extern _X_EXPORT Bool MakeWindowOptional(
WindowPtr );
extern _X_EXPORT WindowPtr MoveWindowInStack(
WindowPtr ,
WindowPtr );
extern _X_EXPORT void SetWinSize(
WindowPtr );
extern _X_EXPORT void SetBorderSize(
WindowPtr );
extern _X_EXPORT void ResizeChildrenWinSize(
WindowPtr ,
int ,
int ,
int ,
int );
extern _X_EXPORT void ShapeExtensionInit(void);
extern _X_EXPORT void SendShapeNotify(
WindowPtr ,
int );
extern _X_EXPORT RegionPtr CreateBoundingShape(
WindowPtr );
extern _X_EXPORT RegionPtr CreateClipShape(
WindowPtr );
extern _X_EXPORT void DisableMapUnmapEvents(
WindowPtr );
extern _X_EXPORT void EnableMapUnmapEvents(
WindowPtr );
#endif