| /* |
| * Structure pointed to by X field of Memimage |
| */ |
| |
| typedef struct Xmem Xmem; |
| typedef struct Xprivate Xprivate; |
| |
| enum |
| { |
| PMundef = ~0 |
| }; |
| |
| struct Xmem |
| { |
| int pixmap; /* pixmap id */ |
| XImage *xi; /* local image */ |
| int dirty; /* is the X server ahead of us? */ |
| Rectangle dirtyr; /* which pixels? */ |
| Rectangle r; /* size of image */ |
| }; |
| |
| struct Xprivate { |
| u32int chan; |
| XColormap cmap; |
| XCursor cursor; |
| XDisplay *display; |
| int fd; /* of display */ |
| int depth; /* of screen */ |
| XDrawable drawable; |
| XColor map[256]; |
| XColor map7[128]; |
| uchar map7to8[128][2]; |
| XGC gccopy; |
| XGC gccopy0; |
| XGC gcfill; |
| u32int gcfillcolor; |
| XGC gcfill0; |
| u32int gcfill0color; |
| XGC gcreplsrc; |
| u32int gcreplsrctile; |
| XGC gcreplsrc0; |
| u32int gcreplsrc0tile; |
| XGC gcsimplesrc; |
| u32int gcsimplesrccolor; |
| u32int gcsimplesrcpixmap; |
| XGC gcsimplesrc0; |
| u32int gcsimplesrc0color; |
| u32int gcsimplesrc0pixmap; |
| XGC gczero; |
| u32int gczeropixmap; |
| XGC gczero0; |
| u32int gczero0pixmap; |
| Rectangle newscreenr; |
| Memimage* screenimage; |
| QLock screenlock; |
| XDrawable screenpm; |
| XDrawable nextscreenpm; |
| Rectangle screenr; |
| int toplan9[256]; |
| int tox11[256]; |
| int usetable; |
| XVisual *vis; |
| Atom clipboard; |
| Atom utf8string; |
| Atom targets; |
| Atom text; |
| Atom compoundtext; |
| Atom takefocus; |
| Atom losefocus; |
| Atom wmprotos; |
| uint putsnarf; |
| uint assertsnarf; |
| int destroyed; |
| }; |
| |
| extern Xprivate _x; |
| |
| extern Memimage *_xallocmemimage(Rectangle, u32int, int); |
| extern XImage *_xallocxdata(Memimage*, Rectangle); |
| extern void _xdirtyxdata(Memimage*, Rectangle); |
| extern void _xfillcolor(Memimage*, Rectangle, u32int); |
| extern void _xfreexdata(Memimage*); |
| extern XImage *_xgetxdata(Memimage*, Rectangle); |
| extern void _xputxdata(Memimage*, Rectangle); |
| |
| struct Mouse; |
| extern int _xtoplan9mouse(XEvent*, struct Mouse*); |
| extern int _xtoplan9kbd(XEvent*); |
| extern void _xexpose(XEvent*); |
| extern int _xselect(XEvent*); |
| extern int _xconfigure(XEvent*); |
| extern int _xdestroy(XEvent*); |
| extern void _flushmemscreen(Rectangle); |
| extern void _xmoveto(Point); |
| struct Cursor; |
| extern void _xsetcursor(struct Cursor*); |
| extern void _xbouncemouse(Mouse*); |
| extern int _xsetlabel(char*); |
| extern Memimage* _xattach(char*, char*); |
| extern char* _xgetsnarf(void); |
| extern void _xputsnarf(char *data); |
| extern void _xtopwindow(void); |
| extern void _xresizewindow(Rectangle); |
| extern void _xmovewindow(Rectangle); |
| extern int _xreplacescreenimage(void); |
| |
| #define MouseMask (\ |
| ButtonPressMask|\ |
| ButtonReleaseMask|\ |
| PointerMotionMask|\ |
| Button1MotionMask|\ |
| Button2MotionMask|\ |
| Button3MotionMask) |
| |
| extern Rectangle screenrect; |
| extern Rectangle windowrect; |
| extern int fullscreen; |