Mercurial > yawc
comparison cursors/9cursors.c @ 0:f0372d3356b4 default tip
initial import
| author | Yasuri <linuxoverwindows@charliesmp.net> |
|---|---|
| date | Sun, 30 Aug 2026 12:47:10 -0500 |
| parents | |
| children |
comparison
equal
deleted
inserted
replaced
| -1:000000000000 | 0:f0372d3356b4 |
|---|---|
| 1 #include "dat.h" | |
| 2 #include "fns.h" | |
| 3 #include <cursor.h> | |
| 4 #include <draw.h> | |
| 5 #include <fcall.h> | |
| 6 #include <frame.h> | |
| 7 #include <keyboard.h> | |
| 8 #include <libc.h> | |
| 9 #include <mouse.h> | |
| 10 #include <thread.h> | |
| 11 #include <u.h> | |
| 12 | |
| 13 Cursor crosscursor = { | |
| 14 {-7, -7}, | |
| 15 { | |
| 16 0x03, 0xC0, 0x03, 0xC0, 0x03, 0xC0, 0x03, 0xC0, 0x03, 0xC0, 0x03, | |
| 17 0xC0, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x03, 0xC0, | |
| 18 0x03, 0xC0, 0x03, 0xC0, 0x03, 0xC0, 0x03, 0xC0, 0x03, 0xC0, | |
| 19 }, | |
| 20 { | |
| 21 0x00, 0x00, 0x01, 0x80, 0x01, 0x80, 0x01, 0x80, 0x01, 0x80, 0x01, | |
| 22 0x80, 0x01, 0x80, 0x7F, 0xFE, 0x7F, 0xFE, 0x01, 0x80, 0x01, 0x80, | |
| 23 0x01, 0x80, 0x01, 0x80, 0x01, 0x80, 0x01, 0x80, 0x00, 0x00, | |
| 24 }}; | |
| 25 | |
| 26 Cursor boxcursor = { | |
| 27 {-7, -7}, | |
| 28 { | |
| 29 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xF8, | |
| 30 0x1F, 0xF8, 0x1F, 0xF8, 0x1F, 0xF8, 0x1F, 0xF8, 0x1F, 0xF8, 0x1F, | |
| 31 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, | |
| 32 }, | |
| 33 { | |
| 34 0x00, 0x00, 0x7F, 0xFE, 0x7F, 0xFE, 0x7F, 0xFE, 0x70, 0x0E, 0x70, | |
| 35 0x0E, 0x70, 0x0E, 0x70, 0x0E, 0x70, 0x0E, 0x70, 0x0E, 0x70, 0x0E, | |
| 36 0x70, 0x0E, 0x7F, 0xFE, 0x7F, 0xFE, 0x7F, 0xFE, 0x00, 0x00, | |
| 37 }}; | |
| 38 | |
| 39 Cursor sightcursor = { | |
| 40 {-7, -7}, | |
| 41 { | |
| 42 0x1F, 0xF8, 0x3F, 0xFC, 0x7F, 0xFE, 0xFB, 0xDF, 0xF3, 0xCF, 0xE3, | |
| 43 0xC7, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xE3, 0xC7, | |
| 44 0xF3, 0xCF, 0x7B, 0xDF, 0x7F, 0xFE, 0x3F, 0xFC, 0x1F, 0xF8, | |
| 45 }, | |
| 46 { | |
| 47 0x00, 0x00, 0x0F, 0xF0, 0x31, 0x8C, 0x21, 0x84, 0x41, 0x82, 0x41, | |
| 48 0x82, 0x41, 0x82, 0x7F, 0xFE, 0x7F, 0xFE, 0x41, 0x82, 0x41, 0x82, | |
| 49 0x41, 0x82, 0x21, 0x84, 0x31, 0x8C, 0x0F, 0xF0, 0x00, 0x00, | |
| 50 }}; | |
| 51 | |
| 52 Cursor whitearrow = { | |
| 53 {0, 0}, | |
| 54 { | |
| 55 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFE, 0xFF, 0xFC, 0xFF, 0xF0, 0xFF, | |
| 56 0xF0, 0xFF, 0xF8, 0xFF, 0xFC, 0xFF, 0xFE, 0xFF, 0xFF, 0xFF, 0xFE, | |
| 57 0xFF, 0xFC, 0xF3, 0xF8, 0xF1, 0xF0, 0xE0, 0xE0, 0xC0, 0x40, | |
| 58 }, | |
| 59 { | |
| 60 0xFF, 0xFF, 0xFF, 0xFF, 0xC0, 0x06, 0xC0, 0x1C, 0xC0, 0x30, 0xC0, | |
| 61 0x30, 0xC0, 0x38, 0xC0, 0x1C, 0xC0, 0x0E, 0xC0, 0x07, 0xCE, 0x0E, | |
| 62 0xDF, 0x1C, 0xD3, 0xB8, 0xF1, 0xF0, 0xE0, 0xE0, 0xC0, 0x40, | |
| 63 }}; | |
| 64 | |
| 65 Cursor query = { | |
| 66 {-7, -7}, | |
| 67 { | |
| 68 0x0f, 0xf0, 0x1f, 0xf8, 0x3f, 0xfc, 0x7f, 0xfe, 0x7c, 0x7e, 0x78, | |
| 69 0x7e, 0x00, 0xfc, 0x01, 0xf8, 0x03, 0xf0, 0x07, 0xe0, 0x07, 0xc0, | |
| 70 0x07, 0xc0, 0x07, 0xc0, 0x07, 0xc0, 0x07, 0xc0, 0x07, 0xc0, | |
| 71 }, | |
| 72 { | |
| 73 0x00, 0x00, 0x0f, 0xf0, 0x1f, 0xf8, 0x3c, 0x3c, 0x38, 0x1c, 0x00, | |
| 74 0x3c, 0x00, 0x78, 0x00, 0xf0, 0x01, 0xe0, 0x03, 0xc0, 0x03, 0x80, | |
| 75 0x03, 0x80, 0x00, 0x00, 0x03, 0x80, 0x03, 0x80, 0x00, 0x00, | |
| 76 }}; | |
| 77 | |
| 78 Cursor tl = { | |
| 79 {-4, -4}, | |
| 80 { | |
| 81 0xfe, 0x00, 0x82, 0x00, 0x8c, 0x00, 0x87, 0xff, 0xa0, 0x01, 0xb0, | |
| 82 0x01, 0xd0, 0x01, 0x11, 0xff, 0x11, 0x00, 0x11, 0x00, 0x11, 0x00, | |
| 83 0x11, 0x00, 0x11, 0x00, 0x11, 0x00, 0x11, 0x00, 0x1f, 0x00, | |
| 84 }, | |
| 85 { | |
| 86 0x00, 0x00, 0x7c, 0x00, 0x70, 0x00, 0x78, 0x00, 0x5f, 0xfe, 0x4f, | |
| 87 0xfe, 0x0f, 0xfe, 0x0e, 0x00, 0x0e, 0x00, 0x0e, 0x00, 0x0e, 0x00, | |
| 88 0x0e, 0x00, 0x0e, 0x00, 0x0e, 0x00, 0x0e, 0x00, 0x00, 0x00, | |
| 89 }}; | |
| 90 | |
| 91 Cursor skull = { | |
| 92 {-7, -7}, | |
| 93 { | |
| 94 0x00, 0x00, 0x00, 0x00, 0xc0, 0x03, 0xe7, 0xe7, 0xff, 0xff, 0xff, | |
| 95 0xff, 0x3f, 0xfc, 0x1f, 0xf8, 0x0f, 0xf0, 0x3f, 0xfc, 0xff, 0xff, | |
| 96 0xff, 0xff, 0xef, 0xf7, 0xc7, 0xe3, 0x00, 0x00, 0x00, 0x00, | |
| 97 }, | |
| 98 { | |
| 99 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xC0, 0x03, 0xE7, 0xE7, 0x3F, | |
| 100 0xFC, 0x0F, 0xF0, 0x0D, 0xB0, 0x07, 0xE0, 0x06, 0x60, 0x37, 0xEC, | |
| 101 0xE4, 0x27, 0xC3, 0xC3, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | |
| 102 }}; | |
| 103 | |
| 104 Cursor t = { | |
| 105 {-7, -8}, | |
| 106 { | |
| 107 0x00, 0x00, 0x00, 0x00, 0x03, 0x80, 0x06, 0xc0, 0x1c, 0x70, 0x10, | |
| 108 0x10, 0x0c, 0x60, 0xfc, 0x7f, 0x80, 0x01, 0x80, 0x01, 0x80, 0x01, | |
| 109 0xff, 0xff, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | |
| 110 }, | |
| 111 { | |
| 112 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x03, 0x80, 0x0f, | |
| 113 0xe0, 0x03, 0x80, 0x03, 0x80, 0x7f, 0xfe, 0x7f, 0xfe, 0x7f, 0xfe, | |
| 114 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | |
| 115 }}; | |
| 116 | |
| 117 Cursor tr = { | |
| 118 {-11, -4}, | |
| 119 { | |
| 120 0x00, 0x7f, 0x00, 0x41, 0x00, 0x31, 0xff, 0xe1, 0x80, 0x05, 0x80, | |
| 121 0x0d, 0x80, 0x0b, 0xff, 0x88, 0x00, 0x88, 0x0, 0x88, 0x00, 0x88, | |
| 122 0x00, 0x88, 0x00, 0x88, 0x00, 0x88, 0x00, 0x88, 0x00, 0xf8, | |
| 123 }, | |
| 124 { | |
| 125 0x00, 0x00, 0x00, 0x3e, 0x00, 0x0e, 0x00, 0x1e, 0x7f, 0xfa, 0x7f, | |
| 126 0xf2, 0x7f, 0xf0, 0x00, 0x70, 0x00, 0x70, 0x00, 0x70, 0x00, 0x70, | |
| 127 0x00, 0x70, 0x00, 0x70, 0x00, 0x70, 0x00, 0x70, 0x00, 0x00, | |
| 128 }}; | |
| 129 | |
| 130 Cursor r = { | |
| 131 {-8, -7}, | |
| 132 { | |
| 133 0x07, 0xc0, 0x04, 0x40, 0x04, 0x40, 0x04, 0x58, 0x04, 0x68, 0x04, | |
| 134 0x6c, 0x04, 0x06, 0x04, 0x02, 0x04, 0x06, 0x04, 0x6c, 0x04, 0x68, | |
| 135 0x04, 0x58, 0x04, 0x40, 0x04, 0x40, 0x04, 0x40, 0x07, 0xc0, | |
| 136 }, | |
| 137 { | |
| 138 0x00, 0x00, 0x03, 0x80, 0x03, 0x80, 0x03, 0x80, 0x03, 0x90, 0x03, | |
| 139 0x90, 0x03, 0xf8, 0x03, 0xfc, 0x03, 0xf8, 0x03, 0x90, 0x03, 0x90, | |
| 140 0x03, 0x80, 0x03, 0x80, 0x03, 0x80, 0x03, 0x80, 0x00, 0x00, | |
| 141 }}; | |
| 142 | |
| 143 Cursor br = { | |
| 144 {-11, -11}, | |
| 145 { | |
| 146 0x00, 0xf8, 0x00, 0x88, 0x00, 0x88, 0x00, 0x88, 0x00, 0x88, 0x00, | |
| 147 0x88, 0x00, 0x88, 0x00, 0x88, 0xff, 0x88, 0x80, 0x0b, 0x80, 0x0d, | |
| 148 0x80, 0x05, 0xff, 0xe1, 0x00, 0x31, 0x00, 0x41, 0x00, 0x7f, | |
| 149 }, | |
| 150 { | |
| 151 0x00, 0x00, 0x00, 0x70, 0x00, 0x70, 0x00, 0x70, 0x0, 0x70, 0x00, | |
| 152 0x70, 0x00, 0x70, 0x00, 0x70, 0x00, 0x70, 0x7f, 0xf0, 0x7f, 0xf2, | |
| 153 0x7f, 0xfa, 0x00, 0x1e, 0x00, 0x0e, 0x00, 0x3e, 0x00, 0x00, | |
| 154 }}; | |
| 155 | |
| 156 Cursor b = { | |
| 157 {-7, -7}, | |
| 158 { | |
| 159 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xff, 0xff, 0x80, | |
| 160 0x01, 0x80, 0x01, 0x80, 0x01, 0xfc, 0x7f, 0x0c, 0x60, 0x10, 0x10, | |
| 161 0x1c, 0x70, 0x06, 0xc0, 0x03, 0x80, 0x00, 0x00, 0x00, 0x00, | |
| 162 }, | |
| 163 { | |
| 164 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x7f, | |
| 165 0xfe, 0x7f, 0xfe, 0x7f, 0xfe, 0x03, 0x80, 0x03, 0x80, 0x0f, 0xe0, | |
| 166 0x03, 0x80, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | |
| 167 }}; | |
| 168 | |
| 169 Cursor bl = { | |
| 170 {-4, -11}, | |
| 171 { | |
| 172 0x1f, 0x00, 0x11, 0x00, 0x11, 0x00, 0x11, 0x00, 0x11, 0x00, 0x11, | |
| 173 0x00, 0x11, 0x00, 0x11, 0x00, 0x11, 0xff, 0xd0, 0x01, 0xb0, 0x01, | |
| 174 0xa0, 0x01, 0x87, 0xff, 0x8c, 0x00, 0x82, 0x00, 0xfe, 0x00, | |
| 175 }, | |
| 176 { | |
| 177 0x00, 0x00, 0x0e, 0x00, 0x0e, 0x00, 0x0e, 0x00, 0x0e, 0x00, 0x0e, | |
| 178 0x00, 0x0e, 0x00, 0x0e, 0x00, 0x0e, 0x00, 0x0f, 0xfe, 0x4f, 0xfe, | |
| 179 0x5f, 0xfe, 0x78, 0x00, 0x70, 0x00, 0x7c, 0x00, 0x00, 0x0, | |
| 180 }}; | |
| 181 | |
| 182 Cursor l = { | |
| 183 {-7, -7}, | |
| 184 { | |
| 185 0x03, 0xe0, 0x02, 0x20, 0x02, 0x20, 0x1a, 0x20, 0x16, 0x20, 0x36, | |
| 186 0x20, 0x60, 0x20, 0x40, 0x20, 0x60, 0x20, 0x36, 0x20, 0x16, 0x20, | |
| 187 0x1a, 0x20, 0x02, 0x20, 0x02, 0x20, 0x02, 0x20, 0x03, 0xe0, | |
| 188 }, | |
| 189 { | |
| 190 0x00, 0x00, 0x01, 0xc0, 0x01, 0xc0, 0x01, 0xc0, 0x09, 0xc0, 0x09, | |
| 191 0xc0, 0x1f, 0xc0, 0x3f, 0xc0, 0x1f, 0xc0, 0x09, 0xc0, 0x09, 0xc0, | |
| 192 0x01, 0xc0, 0x01, 0xc0, 0x01, 0xc0, 0x01, 0xc0, 0x00, 0x00, | |
| 193 }}; | |
| 194 | |
| 195 Cursor *corners[9] = { | |
| 196 &tl, &t, &tr, &l, nil, &r, &bl, &b, &br, | |
| 197 }; | |
| 198 | |
| 199 void | |
| 200 iconinit(void) | |
| 201 { | |
| 202 background = | |
| 203 allocimage(display, Rect(0, 0, 1, 1), screen->chan, 1, 0x777777FF); | |
| 204 | |
| 205 /* greys are multiples of 0x11111100+0xFF, 14* being palest */ | |
| 206 cols[BACK] = | |
| 207 allocimage(display, Rect(0, 0, 1, 1), CMAP8, 1, 0xFFFFFFFF ^ reverse); | |
| 208 cols[BORD] = | |
| 209 allocimage(display, Rect(0, 0, 1, 1), CMAP8, 1, 0x999999FF ^ reverse); | |
| 210 cols[TEXT] = | |
| 211 allocimage(display, Rect(0, 0, 1, 1), CMAP8, 1, 0x000000FF ^ reverse); | |
| 212 cols[HTEXT] = allocimage(display, Rect(0, 0, 1, 1), CMAP8, 1, 0x000000FF); | |
| 213 if (!reverse) { | |
| 214 cols[HIGH] = allocimage(display, Rect(0, 0, 1, 1), CMAP8, 1, 0xCCCCCCFF); | |
| 215 titlecol = allocimage(display, Rect(0, 0, 1, 1), CMAP8, 1, DGreygreen); | |
| 216 lighttitlecol = | |
| 217 allocimage(display, Rect(0, 0, 1, 1), CMAP8, 1, DPalegreygreen); | |
| 218 } else { | |
| 219 cols[HIGH] = allocimage(display, Rect(0, 0, 1, 1), CMAP8, 1, DPurpleblue); | |
| 220 titlecol = allocimage(display, Rect(0, 0, 1, 1), CMAP8, 1, DPurpleblue); | |
| 221 lighttitlecol = allocimage(display, Rect(0, 0, 1, 1), CMAP8, 1, 0x222222FF); | |
| 222 } | |
| 223 dholdcol = allocimage(display, Rect(0, 0, 1, 1), CMAP8, 1, DMedblue); | |
| 224 lightholdcol = allocimage(display, Rect(0, 0, 1, 1), CMAP8, 1, DGreyblue); | |
| 225 paleholdcol = allocimage(display, Rect(0, 0, 1, 1), CMAP8, 1, DPalegreyblue); | |
| 226 paletextcol = | |
| 227 allocimage(display, Rect(0, 0, 1, 1), CMAP8, 1, 0x666666FF ^ reverse); | |
| 228 sizecol = allocimage(display, Rect(0, 0, 1, 1), CMAP8, 1, DRed); | |
| 229 | |
| 230 if (reverse == 0) | |
| 231 holdcol = dholdcol; | |
| 232 else | |
| 233 holdcol = paleholdcol; | |
| 234 } |
