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