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 chan;
24 XColormap cmap;
25 XCursor cursor;
26 XDisplay *display;
27 int depth; /* of screen */
28 XDrawable drawable;
29 XColor map[256];
30 XColor map7[128];
31 uchar map7to8[128][2];
32 XGC gccopy;
33 XGC gccopy0;
34 XGC gcfill;
35 u32int gcfillcolor;
36 XGC gcfill0;
37 u32int gcfill0color;
38 XGC gcreplsrc;
39 u32int gcreplsrctile;
40 XGC gcreplsrc0;
41 u32int gcreplsrc0tile;
42 XGC gcsimplesrc;
43 u32int gcsimplesrccolor;
44 u32int gcsimplesrcpixmap;
45 XGC gcsimplesrc0;
46 u32int gcsimplesrc0color;
47 u32int gcsimplesrc0pixmap;
48 XGC gczero;
49 u32int gczeropixmap;
50 XGC gczero0;
51 u32int gczero0pixmap;
52 XDisplay *kbdcon;
53 XDisplay *mousecon;
54 Rectangle newscreenr;
55 Memimage* screenimage;
56 QLock screenlock;
57 XDrawable screenpm;
58 XDrawable nextscreenpm;
59 Rectangle screenr;
60 XDisplay *snarfcon;
61 int toplan9[256];
62 int tox11[256];
63 int usetable;
64 XVisual *vis;
65 Atom clipboard;
66 Atom utf8string;
67 Atom targets;
68 Atom text;
69 Atom compoundtext;
70 Atom takefocus;
71 Atom losefocus;
72 Atom wmprotos;
73 uint putsnarf;
74 uint assertsnarf;
75 int destroyed;
76 };
78 extern Xprivate _x;
80 extern Memimage *_xallocmemimage(Rectangle, u32int, int);
81 extern XImage *_xallocxdata(Memimage*, Rectangle);
82 extern void _xdirtyxdata(Memimage*, Rectangle);
83 extern void _xfillcolor(Memimage*, Rectangle, u32int);
84 extern void _xfreexdata(Memimage*);
85 extern XImage *_xgetxdata(Memimage*, Rectangle);
86 extern void _xputxdata(Memimage*, Rectangle);
87 extern void _initdisplaymemimage(Display*, Memimage*);
89 struct Mouse;
90 extern int _xtoplan9mouse(XDisplay*, XEvent*, struct Mouse*);
91 extern int _xtoplan9kbd(XEvent*);
92 extern void _xexpose(XEvent*, XDisplay*);
93 extern int _xselect(XEvent*, XDisplay*);
94 extern int _xconfigure(XEvent*, XDisplay*);
95 extern int _xdestroy(XEvent*, XDisplay*);
96 extern void _flushmemscreen(Rectangle);
97 extern void _xmoveto(Point);
98 struct Cursor;
99 extern void _xsetcursor(struct Cursor*);
101 #define MouseMask (\
102 ButtonPressMask|\
103 ButtonReleaseMask|\
104 PointerMotionMask|\
105 Button1MotionMask|\
106 Button2MotionMask|\
107 Button3MotionMask)