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 fd; /* of 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 Rectangle newscreenr;
54 Memimage* screenimage;
55 QLock screenlock;
56 XDrawable screenpm;
57 XDrawable nextscreenpm;
58 Rectangle screenr;
59 int toplan9[256];
60 int tox11[256];
61 int usetable;
62 XVisual *vis;
63 Atom clipboard;
64 Atom utf8string;
65 Atom targets;
66 Atom text;
67 Atom compoundtext;
68 Atom takefocus;
69 Atom losefocus;
70 Atom wmprotos;
71 uint putsnarf;
72 uint assertsnarf;
73 int destroyed;
74 };
76 extern Xprivate _x;
78 extern Memimage *_xallocmemimage(Rectangle, u32int, int);
79 extern XImage *_xallocxdata(Memimage*, Rectangle);
80 extern void _xdirtyxdata(Memimage*, Rectangle);
81 extern void _xfillcolor(Memimage*, Rectangle, u32int);
82 extern void _xfreexdata(Memimage*);
83 extern XImage *_xgetxdata(Memimage*, Rectangle);
84 extern void _xputxdata(Memimage*, Rectangle);
86 struct Mouse;
87 extern int _xtoplan9mouse(XEvent*, struct Mouse*);
88 extern int _xtoplan9kbd(XEvent*);
89 extern void _xexpose(XEvent*);
90 extern int _xselect(XEvent*);
91 extern int _xconfigure(XEvent*);
92 extern int _xdestroy(XEvent*);
93 extern void _flushmemscreen(Rectangle);
94 extern void _xmoveto(Point);
95 struct Cursor;
96 extern void _xsetcursor(struct Cursor*);
97 extern void _xbouncemouse(Mouse*);
98 extern int _xsetlabel(char*);
99 extern Memimage* _xattach(char*, char*);
100 extern char* _xgetsnarf(void);
101 extern void _xputsnarf(char *data);
102 extern void _xtopwindow(void);
103 extern void _xresizewindow(Rectangle);
104 extern void _xmovewindow(Rectangle);
105 extern int _xreplacescreenimage(void);
107 #define MouseMask (\
108 ButtonPressMask|\
109 ButtonReleaseMask|\
110 PointerMotionMask|\
111 Button1MotionMask|\
112 Button2MotionMask|\
113 Button3MotionMask)
115 extern Rectangle screenrect;
116 extern Rectangle windowrect;
117 extern int fullscreen;