Blob


1 /*
2 * Structure pointed to by X field of Memimage
3 */
5 typedef struct Xmem Xmem;
6 typedef struct Xprivate Xprivate;
8 enum
9 {
10 PMundef = ~0
11 };
13 struct Xmem
14 {
15 int pixmap; /* pixmap id */
16 XImage *xi; /* local image */
17 int dirty; /* is the X server ahead of us? */
18 Rectangle dirtyr; /* which pixels? */
19 Rectangle r; /* size of image */
20 };
22 struct Xprivate {
23 u32int black;
24 u32int chan;
25 XColormap cmap;
26 XCursor cursor;
27 XDisplay *display;
28 int depth; /* of screen */
29 XDrawable drawable;
30 XColor map[256];
31 XColor map7[128];
32 uchar map7to8[128][2];
33 XGC gccopy;
34 XGC gccopy0;
35 XGC gcfill;
36 u32int gcfillcolor;
37 XGC gcfill0;
38 u32int gcfill0color;
39 XGC gcreplsrc;
40 u32int gcreplsrctile;
41 XGC gcreplsrc0;
42 u32int gcreplsrc0tile;
43 XGC gcsimplesrc;
44 u32int gcsimplesrccolor;
45 u32int gcsimplesrcpixmap;
46 XGC gcsimplesrc0;
47 u32int gcsimplesrc0color;
48 u32int gcsimplesrc0pixmap;
49 XGC gczero;
50 u32int gczeropixmap;
51 XGC gczero0;
52 u32int gczero0pixmap;
53 XDisplay *kbdcon;
54 XDisplay *mousecon;
55 Rectangle newscreenr;
56 Memimage* screenimage;
57 QLock screenlock;
58 XDrawable screenpm;
59 XDrawable nextscreenpm;
60 Rectangle screenr;
61 XDisplay *snarfcon;
62 int toplan9[256];
63 int tox11[256];
64 int usetable;
65 XVisual *vis;
66 u32int white;
67 Atom clipboard;
68 Atom utf8string;
69 Atom targets;
70 Atom text;
71 Atom compoundtext;
72 Atom takefocus;
73 Atom losefocus;
74 Atom wmprotos;
75 uint putsnarf;
76 uint assertsnarf;
77 int destroyed;
78 };
80 extern Xprivate _x;
82 extern Memimage *_xallocmemimage(Rectangle, u32int, int);
83 extern XImage *_xallocxdata(Memimage*, Rectangle);
84 extern void _xdirtyxdata(Memimage*, Rectangle);
85 extern void _xfillcolor(Memimage*, Rectangle, u32int);
86 extern void _xfreexdata(Memimage*);
87 extern XImage *_xgetxdata(Memimage*, Rectangle);
88 extern void _xputxdata(Memimage*, Rectangle);
89 extern void _initdisplaymemimage(Display*, Memimage*);
91 struct Mouse;
92 extern int _xtoplan9mouse(XDisplay*, XEvent*, struct Mouse*);
93 extern int _xtoplan9kbd(XEvent*);
94 extern void _xexpose(XEvent*, XDisplay*);
95 extern int _xselect(XEvent*, XDisplay*);
96 extern int _xconfigure(XEvent*, XDisplay*);
97 extern int _xdestroy(XEvent*, XDisplay*);
98 extern void _flushmemscreen(Rectangle);
99 extern void _xmoveto(Point);
100 struct Cursor;
101 extern void _xsetcursor(struct Cursor*);
103 #define MouseMask (\
104 ButtonPressMask|\
105 ButtonReleaseMask|\
106 PointerMotionMask|\
107 Button1MotionMask|\
108 Button2MotionMask|\
109 Button3MotionMask)