aboutsummaryrefslogtreecommitdiff
path: root/src/cmd/devdraw/x11-memdraw.h
diff options
context:
space:
mode:
Diffstat (limited to 'src/cmd/devdraw/x11-memdraw.h')
-rw-r--r--src/cmd/devdraw/x11-memdraw.h113
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)
+