data.c 6.0 KB

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