| #include <u.h> |
| #include <libc.h> |
| #include <draw.h> |
| #include <thread.h> |
| #include <cursor.h> |
| #include <mouse.h> |
| #include <keyboard.h> |
| #include <frame.h> |
| #include <fcall.h> |
| #include "dat.h" |
| #include "fns.h" |
| |
| Cursor crosscursor = { |
| {-7, -7}, |
| {0x03, 0xC0, 0x03, 0xC0, 0x03, 0xC0, 0x03, 0xC0, |
| 0x03, 0xC0, 0x03, 0xC0, 0xFF, 0xFF, 0xFF, 0xFF, |
| 0xFF, 0xFF, 0xFF, 0xFF, 0x03, 0xC0, 0x03, 0xC0, |
| 0x03, 0xC0, 0x03, 0xC0, 0x03, 0xC0, 0x03, 0xC0, }, |
| {0x00, 0x00, 0x01, 0x80, 0x01, 0x80, 0x01, 0x80, |
| 0x01, 0x80, 0x01, 0x80, 0x01, 0x80, 0x7F, 0xFE, |
| 0x7F, 0xFE, 0x01, 0x80, 0x01, 0x80, 0x01, 0x80, |
| 0x01, 0x80, 0x01, 0x80, 0x01, 0x80, 0x00, 0x00, } |
| }; |
| |
| Cursor boxcursor = { |
| {-7, -7}, |
| {0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, |
| 0xFF, 0xFF, 0xF8, 0x1F, 0xF8, 0x1F, 0xF8, 0x1F, |
| 0xF8, 0x1F, 0xF8, 0x1F, 0xF8, 0x1F, 0xFF, 0xFF, |
| 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, }, |
| {0x00, 0x00, 0x7F, 0xFE, 0x7F, 0xFE, 0x7F, 0xFE, |
| 0x70, 0x0E, 0x70, 0x0E, 0x70, 0x0E, 0x70, 0x0E, |
| 0x70, 0x0E, 0x70, 0x0E, 0x70, 0x0E, 0x70, 0x0E, |
| 0x7F, 0xFE, 0x7F, 0xFE, 0x7F, 0xFE, 0x00, 0x00, } |
| }; |
| |
| Cursor sightcursor = { |
| {-7, -7}, |
| {0x1F, 0xF8, 0x3F, 0xFC, 0x7F, 0xFE, 0xFB, 0xDF, |
| 0xF3, 0xCF, 0xE3, 0xC7, 0xFF, 0xFF, 0xFF, 0xFF, |
| 0xFF, 0xFF, 0xFF, 0xFF, 0xE3, 0xC7, 0xF3, 0xCF, |
| 0x7B, 0xDF, 0x7F, 0xFE, 0x3F, 0xFC, 0x1F, 0xF8, }, |
| {0x00, 0x00, 0x0F, 0xF0, 0x31, 0x8C, 0x21, 0x84, |
| 0x41, 0x82, 0x41, 0x82, 0x41, 0x82, 0x7F, 0xFE, |
| 0x7F, 0xFE, 0x41, 0x82, 0x41, 0x82, 0x41, 0x82, |
| 0x21, 0x84, 0x31, 0x8C, 0x0F, 0xF0, 0x00, 0x00, } |
| }; |
| |
| Cursor whitearrow = { |
| {0, 0}, |
| {0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFE, 0xFF, 0xFC, |
| 0xFF, 0xF0, 0xFF, 0xF0, 0xFF, 0xF8, 0xFF, 0xFC, |
| 0xFF, 0xFE, 0xFF, 0xFF, 0xFF, 0xFE, 0xFF, 0xFC, |
| 0xF3, 0xF8, 0xF1, 0xF0, 0xE0, 0xE0, 0xC0, 0x40, }, |
| {0xFF, 0xFF, 0xFF, 0xFF, 0xC0, 0x06, 0xC0, 0x1C, |
| 0xC0, 0x30, 0xC0, 0x30, 0xC0, 0x38, 0xC0, 0x1C, |
| 0xC0, 0x0E, 0xC0, 0x07, 0xCE, 0x0E, 0xDF, 0x1C, |
| 0xD3, 0xB8, 0xF1, 0xF0, 0xE0, 0xE0, 0xC0, 0x40, } |
| }; |
| |
| Cursor query = { |
| {-7,-7}, |
| {0x0f, 0xf0, 0x1f, 0xf8, 0x3f, 0xfc, 0x7f, 0xfe, |
| 0x7c, 0x7e, 0x78, 0x7e, 0x00, 0xfc, 0x01, 0xf8, |
| 0x03, 0xf0, 0x07, 0xe0, 0x07, 0xc0, 0x07, 0xc0, |
| 0x07, 0xc0, 0x07, 0xc0, 0x07, 0xc0, 0x07, 0xc0, }, |
| {0x00, 0x00, 0x0f, 0xf0, 0x1f, 0xf8, 0x3c, 0x3c, |
| 0x38, 0x1c, 0x00, 0x3c, 0x00, 0x78, 0x00, 0xf0, |
| 0x01, 0xe0, 0x03, 0xc0, 0x03, 0x80, 0x03, 0x80, |
| 0x00, 0x00, 0x03, 0x80, 0x03, 0x80, 0x00, 0x00, } |
| }; |
| |
| Cursor tl = { |
| {-4, -4}, |
| {0xfe, 0x00, 0x82, 0x00, 0x8c, 0x00, 0x87, 0xff, |
| 0xa0, 0x01, 0xb0, 0x01, 0xd0, 0x01, 0x11, 0xff, |
| 0x11, 0x00, 0x11, 0x00, 0x11, 0x00, 0x11, 0x00, |
| 0x11, 0x00, 0x11, 0x00, 0x11, 0x00, 0x1f, 0x00, }, |
| {0x00, 0x00, 0x7c, 0x00, 0x70, 0x00, 0x78, 0x00, |
| 0x5f, 0xfe, 0x4f, 0xfe, 0x0f, 0xfe, 0x0e, 0x00, |
| 0x0e, 0x00, 0x0e, 0x00, 0x0e, 0x00, 0x0e, 0x00, |
| 0x0e, 0x00, 0x0e, 0x00, 0x0e, 0x00, 0x00, 0x00, } |
| }; |
| |
| Cursor t = { |
| {-7, -8}, |
| {0x00, 0x00, 0x00, 0x00, 0x03, 0x80, 0x06, 0xc0, |
| 0x1c, 0x70, 0x10, 0x10, 0x0c, 0x60, 0xfc, 0x7f, |
| 0x80, 0x01, 0x80, 0x01, 0x80, 0x01, 0xff, 0xff, |
| 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, }, |
| {0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, |
| 0x03, 0x80, 0x0f, 0xe0, 0x03, 0x80, 0x03, 0x80, |
| 0x7f, 0xfe, 0x7f, 0xfe, 0x7f, 0xfe, 0x00, 0x00, |
| 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, } |
| }; |
| |
| Cursor tr = { |
| {-11, -4}, |
| {0x00, 0x7f, 0x00, 0x41, 0x00, 0x31, 0xff, 0xe1, |
| 0x80, 0x05, 0x80, 0x0d, 0x80, 0x0b, 0xff, 0x88, |
| 0x00, 0x88, 0x0, 0x88, 0x00, 0x88, 0x00, 0x88, |
| 0x00, 0x88, 0x00, 0x88, 0x00, 0x88, 0x00, 0xf8, }, |
| {0x00, 0x00, 0x00, 0x3e, 0x00, 0x0e, 0x00, 0x1e, |
| 0x7f, 0xfa, 0x7f, 0xf2, 0x7f, 0xf0, 0x00, 0x70, |
| 0x00, 0x70, 0x00, 0x70, 0x00, 0x70, 0x00, 0x70, |
| 0x00, 0x70, 0x00, 0x70, 0x00, 0x70, 0x00, 0x00, } |
| }; |
| |
| Cursor r = { |
| {-8, -7}, |
| {0x07, 0xc0, 0x04, 0x40, 0x04, 0x40, 0x04, 0x58, |
| 0x04, 0x68, 0x04, 0x6c, 0x04, 0x06, 0x04, 0x02, |
| 0x04, 0x06, 0x04, 0x6c, 0x04, 0x68, 0x04, 0x58, |
| 0x04, 0x40, 0x04, 0x40, 0x04, 0x40, 0x07, 0xc0, }, |
| {0x00, 0x00, 0x03, 0x80, 0x03, 0x80, 0x03, 0x80, |
| 0x03, 0x90, 0x03, 0x90, 0x03, 0xf8, 0x03, 0xfc, |
| 0x03, 0xf8, 0x03, 0x90, 0x03, 0x90, 0x03, 0x80, |
| 0x03, 0x80, 0x03, 0x80, 0x03, 0x80, 0x00, 0x00, } |
| }; |
| |
| Cursor br = { |
| {-11, -11}, |
| {0x00, 0xf8, 0x00, 0x88, 0x00, 0x88, 0x00, 0x88, |
| 0x00, 0x88, 0x00, 0x88, 0x00, 0x88, 0x00, 0x88, |
| 0xff, 0x88, 0x80, 0x0b, 0x80, 0x0d, 0x80, 0x05, |
| 0xff, 0xe1, 0x00, 0x31, 0x00, 0x41, 0x00, 0x7f, }, |
| {0x00, 0x00, 0x00, 0x70, 0x00, 0x70, 0x00, 0x70, |
| 0x0, 0x70, 0x00, 0x70, 0x00, 0x70, 0x00, 0x70, |
| 0x00, 0x70, 0x7f, 0xf0, 0x7f, 0xf2, 0x7f, 0xfa, |
| 0x00, 0x1e, 0x00, 0x0e, 0x00, 0x3e, 0x00, 0x00, } |
| }; |
| |
| Cursor b = { |
| {-7, -7}, |
| {0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, |
| 0xff, 0xff, 0x80, 0x01, 0x80, 0x01, 0x80, 0x01, |
| 0xfc, 0x7f, 0x0c, 0x60, 0x10, 0x10, 0x1c, 0x70, |
| 0x06, 0xc0, 0x03, 0x80, 0x00, 0x00, 0x00, 0x00, }, |
| {0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, |
| 0x00, 0x00, 0x7f, 0xfe, 0x7f, 0xfe, 0x7f, 0xfe, |
| 0x03, 0x80, 0x03, 0x80, 0x0f, 0xe0, 0x03, 0x80, |
| 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, } |
| }; |
| |
| Cursor bl = { |
| {-4, -11}, |
| {0x1f, 0x00, 0x11, 0x00, 0x11, 0x00, 0x11, 0x00, |
| 0x11, 0x00, 0x11, 0x00, 0x11, 0x00, 0x11, 0x00, |
| 0x11, 0xff, 0xd0, 0x01, 0xb0, 0x01, 0xa0, 0x01, |
| 0x87, 0xff, 0x8c, 0x00, 0x82, 0x00, 0xfe, 0x00, }, |
| {0x00, 0x00, 0x0e, 0x00, 0x0e, 0x00, 0x0e, 0x00, |
| 0x0e, 0x00, 0x0e, 0x00, 0x0e, 0x00, 0x0e, 0x00, |
| 0x0e, 0x00, 0x0f, 0xfe, 0x4f, 0xfe, 0x5f, 0xfe, |
| 0x78, 0x00, 0x70, 0x00, 0x7c, 0x00, 0x00, 0x0, } |
| }; |
| |
| Cursor l = { |
| {-7, -7}, |
| {0x03, 0xe0, 0x02, 0x20, 0x02, 0x20, 0x1a, 0x20, |
| 0x16, 0x20, 0x36, 0x20, 0x60, 0x20, 0x40, 0x20, |
| 0x60, 0x20, 0x36, 0x20, 0x16, 0x20, 0x1a, 0x20, |
| 0x02, 0x20, 0x02, 0x20, 0x02, 0x20, 0x03, 0xe0, }, |
| {0x00, 0x00, 0x01, 0xc0, 0x01, 0xc0, 0x01, 0xc0, |
| 0x09, 0xc0, 0x09, 0xc0, 0x1f, 0xc0, 0x3f, 0xc0, |
| 0x1f, 0xc0, 0x09, 0xc0, 0x09, 0xc0, 0x01, 0xc0, |
| 0x01, 0xc0, 0x01, 0xc0, 0x01, 0xc0, 0x00, 0x00, } |
| }; |
| |
| Cursor *corners[9] = { |
| &tl, &t, &tr, |
| &l, nil, &r, |
| &bl, &b, &br |
| }; |
| |
| void |
| iconinit(void) |
| { |
| background = allocimage(display, Rect(0,0,1,1), RGB24, 1, 0x777777FF); |
| red = allocimage(display, Rect(0,0,1,1), RGB24, 1, 0xDD0000FF); |
| } |