Blame


1 e830a908 2005-11-06 devnull #include <u.h>
2 e830a908 2005-11-06 devnull #include <libc.h>
3 e830a908 2005-11-06 devnull #include <draw.h>
4 e830a908 2005-11-06 devnull #include <thread.h>
5 e830a908 2005-11-06 devnull #include <cursor.h>
6 e830a908 2005-11-06 devnull #include <mouse.h>
7 e830a908 2005-11-06 devnull #include <keyboard.h>
8 e830a908 2005-11-06 devnull #include <frame.h>
9 e830a908 2005-11-06 devnull #include <fcall.h>
10 e830a908 2005-11-06 devnull #include "dat.h"
11 e830a908 2005-11-06 devnull #include "fns.h"
12 e830a908 2005-11-06 devnull
13 e830a908 2005-11-06 devnull Cursor crosscursor = {
14 e830a908 2005-11-06 devnull {-7, -7},
15 e830a908 2005-11-06 devnull {0x03, 0xC0, 0x03, 0xC0, 0x03, 0xC0, 0x03, 0xC0,
16 e830a908 2005-11-06 devnull 0x03, 0xC0, 0x03, 0xC0, 0xFF, 0xFF, 0xFF, 0xFF,
17 e830a908 2005-11-06 devnull 0xFF, 0xFF, 0xFF, 0xFF, 0x03, 0xC0, 0x03, 0xC0,
18 e830a908 2005-11-06 devnull 0x03, 0xC0, 0x03, 0xC0, 0x03, 0xC0, 0x03, 0xC0, },
19 e830a908 2005-11-06 devnull {0x00, 0x00, 0x01, 0x80, 0x01, 0x80, 0x01, 0x80,
20 e830a908 2005-11-06 devnull 0x01, 0x80, 0x01, 0x80, 0x01, 0x80, 0x7F, 0xFE,
21 e830a908 2005-11-06 devnull 0x7F, 0xFE, 0x01, 0x80, 0x01, 0x80, 0x01, 0x80,
22 e830a908 2005-11-06 devnull 0x01, 0x80, 0x01, 0x80, 0x01, 0x80, 0x00, 0x00, }
23 e830a908 2005-11-06 devnull };
24 e830a908 2005-11-06 devnull
25 e830a908 2005-11-06 devnull Cursor boxcursor = {
26 e830a908 2005-11-06 devnull {-7, -7},
27 e830a908 2005-11-06 devnull {0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF,
28 e830a908 2005-11-06 devnull 0xFF, 0xFF, 0xF8, 0x1F, 0xF8, 0x1F, 0xF8, 0x1F,
29 e830a908 2005-11-06 devnull 0xF8, 0x1F, 0xF8, 0x1F, 0xF8, 0x1F, 0xFF, 0xFF,
30 e830a908 2005-11-06 devnull 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, },
31 e830a908 2005-11-06 devnull {0x00, 0x00, 0x7F, 0xFE, 0x7F, 0xFE, 0x7F, 0xFE,
32 e830a908 2005-11-06 devnull 0x70, 0x0E, 0x70, 0x0E, 0x70, 0x0E, 0x70, 0x0E,
33 e830a908 2005-11-06 devnull 0x70, 0x0E, 0x70, 0x0E, 0x70, 0x0E, 0x70, 0x0E,
34 e830a908 2005-11-06 devnull 0x7F, 0xFE, 0x7F, 0xFE, 0x7F, 0xFE, 0x00, 0x00, }
35 e830a908 2005-11-06 devnull };
36 e830a908 2005-11-06 devnull
37 e830a908 2005-11-06 devnull Cursor sightcursor = {
38 e830a908 2005-11-06 devnull {-7, -7},
39 e830a908 2005-11-06 devnull {0x1F, 0xF8, 0x3F, 0xFC, 0x7F, 0xFE, 0xFB, 0xDF,
40 e830a908 2005-11-06 devnull 0xF3, 0xCF, 0xE3, 0xC7, 0xFF, 0xFF, 0xFF, 0xFF,
41 e830a908 2005-11-06 devnull 0xFF, 0xFF, 0xFF, 0xFF, 0xE3, 0xC7, 0xF3, 0xCF,
42 e830a908 2005-11-06 devnull 0x7B, 0xDF, 0x7F, 0xFE, 0x3F, 0xFC, 0x1F, 0xF8, },
43 e830a908 2005-11-06 devnull {0x00, 0x00, 0x0F, 0xF0, 0x31, 0x8C, 0x21, 0x84,
44 e830a908 2005-11-06 devnull 0x41, 0x82, 0x41, 0x82, 0x41, 0x82, 0x7F, 0xFE,
45 e830a908 2005-11-06 devnull 0x7F, 0xFE, 0x41, 0x82, 0x41, 0x82, 0x41, 0x82,
46 e830a908 2005-11-06 devnull 0x21, 0x84, 0x31, 0x8C, 0x0F, 0xF0, 0x00, 0x00, }
47 e830a908 2005-11-06 devnull };
48 e830a908 2005-11-06 devnull
49 e830a908 2005-11-06 devnull Cursor whitearrow = {
50 e830a908 2005-11-06 devnull {0, 0},
51 fa325e9b 2020-01-10 cross {0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFE, 0xFF, 0xFC,
52 fa325e9b 2020-01-10 cross 0xFF, 0xF0, 0xFF, 0xF0, 0xFF, 0xF8, 0xFF, 0xFC,
53 fa325e9b 2020-01-10 cross 0xFF, 0xFE, 0xFF, 0xFF, 0xFF, 0xFE, 0xFF, 0xFC,
54 e830a908 2005-11-06 devnull 0xF3, 0xF8, 0xF1, 0xF0, 0xE0, 0xE0, 0xC0, 0x40, },
55 fa325e9b 2020-01-10 cross {0xFF, 0xFF, 0xFF, 0xFF, 0xC0, 0x06, 0xC0, 0x1C,
56 fa325e9b 2020-01-10 cross 0xC0, 0x30, 0xC0, 0x30, 0xC0, 0x38, 0xC0, 0x1C,
57 fa325e9b 2020-01-10 cross 0xC0, 0x0E, 0xC0, 0x07, 0xCE, 0x0E, 0xDF, 0x1C,
58 e830a908 2005-11-06 devnull 0xD3, 0xB8, 0xF1, 0xF0, 0xE0, 0xE0, 0xC0, 0x40, }
59 e830a908 2005-11-06 devnull };
60 e830a908 2005-11-06 devnull
61 e830a908 2005-11-06 devnull Cursor query = {
62 e830a908 2005-11-06 devnull {-7,-7},
63 fa325e9b 2020-01-10 cross {0x0f, 0xf0, 0x1f, 0xf8, 0x3f, 0xfc, 0x7f, 0xfe,
64 fa325e9b 2020-01-10 cross 0x7c, 0x7e, 0x78, 0x7e, 0x00, 0xfc, 0x01, 0xf8,
65 fa325e9b 2020-01-10 cross 0x03, 0xf0, 0x07, 0xe0, 0x07, 0xc0, 0x07, 0xc0,
66 e830a908 2005-11-06 devnull 0x07, 0xc0, 0x07, 0xc0, 0x07, 0xc0, 0x07, 0xc0, },
67 fa325e9b 2020-01-10 cross {0x00, 0x00, 0x0f, 0xf0, 0x1f, 0xf8, 0x3c, 0x3c,
68 fa325e9b 2020-01-10 cross 0x38, 0x1c, 0x00, 0x3c, 0x00, 0x78, 0x00, 0xf0,
69 fa325e9b 2020-01-10 cross 0x01, 0xe0, 0x03, 0xc0, 0x03, 0x80, 0x03, 0x80,
70 e830a908 2005-11-06 devnull 0x00, 0x00, 0x03, 0x80, 0x03, 0x80, 0x00, 0x00, }
71 e830a908 2005-11-06 devnull };
72 e830a908 2005-11-06 devnull
73 e830a908 2005-11-06 devnull Cursor tl = {
74 e830a908 2005-11-06 devnull {-4, -4},
75 fa325e9b 2020-01-10 cross {0xfe, 0x00, 0x82, 0x00, 0x8c, 0x00, 0x87, 0xff,
76 fa325e9b 2020-01-10 cross 0xa0, 0x01, 0xb0, 0x01, 0xd0, 0x01, 0x11, 0xff,
77 fa325e9b 2020-01-10 cross 0x11, 0x00, 0x11, 0x00, 0x11, 0x00, 0x11, 0x00,
78 e830a908 2005-11-06 devnull 0x11, 0x00, 0x11, 0x00, 0x11, 0x00, 0x1f, 0x00, },
79 fa325e9b 2020-01-10 cross {0x00, 0x00, 0x7c, 0x00, 0x70, 0x00, 0x78, 0x00,
80 fa325e9b 2020-01-10 cross 0x5f, 0xfe, 0x4f, 0xfe, 0x0f, 0xfe, 0x0e, 0x00,
81 fa325e9b 2020-01-10 cross 0x0e, 0x00, 0x0e, 0x00, 0x0e, 0x00, 0x0e, 0x00,
82 e830a908 2005-11-06 devnull 0x0e, 0x00, 0x0e, 0x00, 0x0e, 0x00, 0x00, 0x00, }
83 e830a908 2005-11-06 devnull };
84 e830a908 2005-11-06 devnull
85 e830a908 2005-11-06 devnull Cursor t = {
86 e830a908 2005-11-06 devnull {-7, -8},
87 fa325e9b 2020-01-10 cross {0x00, 0x00, 0x00, 0x00, 0x03, 0x80, 0x06, 0xc0,
88 fa325e9b 2020-01-10 cross 0x1c, 0x70, 0x10, 0x10, 0x0c, 0x60, 0xfc, 0x7f,
89 fa325e9b 2020-01-10 cross 0x80, 0x01, 0x80, 0x01, 0x80, 0x01, 0xff, 0xff,
90 e830a908 2005-11-06 devnull 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, },
91 fa325e9b 2020-01-10 cross {0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00,
92 fa325e9b 2020-01-10 cross 0x03, 0x80, 0x0f, 0xe0, 0x03, 0x80, 0x03, 0x80,
93 fa325e9b 2020-01-10 cross 0x7f, 0xfe, 0x7f, 0xfe, 0x7f, 0xfe, 0x00, 0x00,
94 e830a908 2005-11-06 devnull 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, }
95 e830a908 2005-11-06 devnull };
96 e830a908 2005-11-06 devnull
97 e830a908 2005-11-06 devnull Cursor tr = {
98 e830a908 2005-11-06 devnull {-11, -4},
99 fa325e9b 2020-01-10 cross {0x00, 0x7f, 0x00, 0x41, 0x00, 0x31, 0xff, 0xe1,
100 fa325e9b 2020-01-10 cross 0x80, 0x05, 0x80, 0x0d, 0x80, 0x0b, 0xff, 0x88,
101 fa325e9b 2020-01-10 cross 0x00, 0x88, 0x0, 0x88, 0x00, 0x88, 0x00, 0x88,
102 e830a908 2005-11-06 devnull 0x00, 0x88, 0x00, 0x88, 0x00, 0x88, 0x00, 0xf8, },
103 fa325e9b 2020-01-10 cross {0x00, 0x00, 0x00, 0x3e, 0x00, 0x0e, 0x00, 0x1e,
104 fa325e9b 2020-01-10 cross 0x7f, 0xfa, 0x7f, 0xf2, 0x7f, 0xf0, 0x00, 0x70,
105 fa325e9b 2020-01-10 cross 0x00, 0x70, 0x00, 0x70, 0x00, 0x70, 0x00, 0x70,
106 e830a908 2005-11-06 devnull 0x00, 0x70, 0x00, 0x70, 0x00, 0x70, 0x00, 0x00, }
107 e830a908 2005-11-06 devnull };
108 e830a908 2005-11-06 devnull
109 e830a908 2005-11-06 devnull Cursor r = {
110 e830a908 2005-11-06 devnull {-8, -7},
111 fa325e9b 2020-01-10 cross {0x07, 0xc0, 0x04, 0x40, 0x04, 0x40, 0x04, 0x58,
112 fa325e9b 2020-01-10 cross 0x04, 0x68, 0x04, 0x6c, 0x04, 0x06, 0x04, 0x02,
113 fa325e9b 2020-01-10 cross 0x04, 0x06, 0x04, 0x6c, 0x04, 0x68, 0x04, 0x58,
114 e830a908 2005-11-06 devnull 0x04, 0x40, 0x04, 0x40, 0x04, 0x40, 0x07, 0xc0, },
115 fa325e9b 2020-01-10 cross {0x00, 0x00, 0x03, 0x80, 0x03, 0x80, 0x03, 0x80,
116 fa325e9b 2020-01-10 cross 0x03, 0x90, 0x03, 0x90, 0x03, 0xf8, 0x03, 0xfc,
117 fa325e9b 2020-01-10 cross 0x03, 0xf8, 0x03, 0x90, 0x03, 0x90, 0x03, 0x80,
118 e830a908 2005-11-06 devnull 0x03, 0x80, 0x03, 0x80, 0x03, 0x80, 0x00, 0x00, }
119 e830a908 2005-11-06 devnull };
120 e830a908 2005-11-06 devnull
121 e830a908 2005-11-06 devnull Cursor br = {
122 e830a908 2005-11-06 devnull {-11, -11},
123 fa325e9b 2020-01-10 cross {0x00, 0xf8, 0x00, 0x88, 0x00, 0x88, 0x00, 0x88,
124 fa325e9b 2020-01-10 cross 0x00, 0x88, 0x00, 0x88, 0x00, 0x88, 0x00, 0x88,
125 fa325e9b 2020-01-10 cross 0xff, 0x88, 0x80, 0x0b, 0x80, 0x0d, 0x80, 0x05,
126 e830a908 2005-11-06 devnull 0xff, 0xe1, 0x00, 0x31, 0x00, 0x41, 0x00, 0x7f, },
127 fa325e9b 2020-01-10 cross {0x00, 0x00, 0x00, 0x70, 0x00, 0x70, 0x00, 0x70,
128 fa325e9b 2020-01-10 cross 0x0, 0x70, 0x00, 0x70, 0x00, 0x70, 0x00, 0x70,
129 fa325e9b 2020-01-10 cross 0x00, 0x70, 0x7f, 0xf0, 0x7f, 0xf2, 0x7f, 0xfa,
130 e830a908 2005-11-06 devnull 0x00, 0x1e, 0x00, 0x0e, 0x00, 0x3e, 0x00, 0x00, }
131 e830a908 2005-11-06 devnull };
132 e830a908 2005-11-06 devnull
133 e830a908 2005-11-06 devnull Cursor b = {
134 e830a908 2005-11-06 devnull {-7, -7},
135 fa325e9b 2020-01-10 cross {0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
136 fa325e9b 2020-01-10 cross 0xff, 0xff, 0x80, 0x01, 0x80, 0x01, 0x80, 0x01,
137 fa325e9b 2020-01-10 cross 0xfc, 0x7f, 0x0c, 0x60, 0x10, 0x10, 0x1c, 0x70,
138 e830a908 2005-11-06 devnull 0x06, 0xc0, 0x03, 0x80, 0x00, 0x00, 0x00, 0x00, },
139 fa325e9b 2020-01-10 cross {0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
140 fa325e9b 2020-01-10 cross 0x00, 0x00, 0x7f, 0xfe, 0x7f, 0xfe, 0x7f, 0xfe,
141 fa325e9b 2020-01-10 cross 0x03, 0x80, 0x03, 0x80, 0x0f, 0xe0, 0x03, 0x80,
142 e830a908 2005-11-06 devnull 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, }
143 e830a908 2005-11-06 devnull };
144 e830a908 2005-11-06 devnull
145 e830a908 2005-11-06 devnull Cursor bl = {
146 e830a908 2005-11-06 devnull {-4, -11},
147 fa325e9b 2020-01-10 cross {0x1f, 0x00, 0x11, 0x00, 0x11, 0x00, 0x11, 0x00,
148 fa325e9b 2020-01-10 cross 0x11, 0x00, 0x11, 0x00, 0x11, 0x00, 0x11, 0x00,
149 fa325e9b 2020-01-10 cross 0x11, 0xff, 0xd0, 0x01, 0xb0, 0x01, 0xa0, 0x01,
150 e830a908 2005-11-06 devnull 0x87, 0xff, 0x8c, 0x00, 0x82, 0x00, 0xfe, 0x00, },
151 fa325e9b 2020-01-10 cross {0x00, 0x00, 0x0e, 0x00, 0x0e, 0x00, 0x0e, 0x00,
152 fa325e9b 2020-01-10 cross 0x0e, 0x00, 0x0e, 0x00, 0x0e, 0x00, 0x0e, 0x00,
153 fa325e9b 2020-01-10 cross 0x0e, 0x00, 0x0f, 0xfe, 0x4f, 0xfe, 0x5f, 0xfe,
154 e830a908 2005-11-06 devnull 0x78, 0x00, 0x70, 0x00, 0x7c, 0x00, 0x00, 0x0, }
155 e830a908 2005-11-06 devnull };
156 e830a908 2005-11-06 devnull
157 e830a908 2005-11-06 devnull Cursor l = {
158 e830a908 2005-11-06 devnull {-7, -7},
159 fa325e9b 2020-01-10 cross {0x03, 0xe0, 0x02, 0x20, 0x02, 0x20, 0x1a, 0x20,
160 fa325e9b 2020-01-10 cross 0x16, 0x20, 0x36, 0x20, 0x60, 0x20, 0x40, 0x20,
161 fa325e9b 2020-01-10 cross 0x60, 0x20, 0x36, 0x20, 0x16, 0x20, 0x1a, 0x20,
162 e830a908 2005-11-06 devnull 0x02, 0x20, 0x02, 0x20, 0x02, 0x20, 0x03, 0xe0, },
163 fa325e9b 2020-01-10 cross {0x00, 0x00, 0x01, 0xc0, 0x01, 0xc0, 0x01, 0xc0,
164 fa325e9b 2020-01-10 cross 0x09, 0xc0, 0x09, 0xc0, 0x1f, 0xc0, 0x3f, 0xc0,
165 fa325e9b 2020-01-10 cross 0x1f, 0xc0, 0x09, 0xc0, 0x09, 0xc0, 0x01, 0xc0,
166 e830a908 2005-11-06 devnull 0x01, 0xc0, 0x01, 0xc0, 0x01, 0xc0, 0x00, 0x00, }
167 e830a908 2005-11-06 devnull };
168 e830a908 2005-11-06 devnull
169 e830a908 2005-11-06 devnull Cursor *corners[9] = {
170 e830a908 2005-11-06 devnull &tl, &t, &tr,
171 e830a908 2005-11-06 devnull &l, nil, &r,
172 cbeb0b26 2006-04-01 devnull &bl, &b, &br
173 e830a908 2005-11-06 devnull };
174 e830a908 2005-11-06 devnull
175 e830a908 2005-11-06 devnull void
176 e830a908 2005-11-06 devnull iconinit(void)
177 e830a908 2005-11-06 devnull {
178 e830a908 2005-11-06 devnull background = allocimage(display, Rect(0,0,1,1), RGB24, 1, 0x777777FF);
179 e830a908 2005-11-06 devnull red = allocimage(display, Rect(0,0,1,1), RGB24, 1, 0xDD0000FF);
180 e830a908 2005-11-06 devnull }