diff options
Diffstat (limited to 'src/cmd/devdraw/x11-memdraw.h')
-rw-r--r-- | src/cmd/devdraw/x11-memdraw.h | 113 |
1 files changed, 113 insertions, 0 deletions
diff --git a/src/cmd/devdraw/x11-memdraw.h b/src/cmd/devdraw/x11-memdraw.h new file mode 100644 index 00000000..eba9e0db --- /dev/null +++ b/src/cmd/devdraw/x11-memdraw.h @@ -0,0 +1,113 @@ +/* + * 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 int _xreplacescreenimage(void); + +#define MouseMask (\ + ButtonPressMask|\ + ButtonReleaseMask|\ + PointerMotionMask|\ + Button1MotionMask|\ + Button2MotionMask|\ + Button3MotionMask) + |