2 |
- |
1 |
#include <u.h>
|
|
|
2 |
#include <libc.h>
|
|
|
3 |
#include <thread.h>
|
|
|
4 |
#include <draw.h>
|
|
|
5 |
#include <keyboard.h>
|
|
|
6 |
#include <mouse.h>
|
|
|
7 |
#include <control.h>
|
|
|
8 |
#include "colors.h"
|
|
|
9 |
|
|
|
10 |
Font *boldfont;
|
|
|
11 |
Font *romanfont;
|
|
|
12 |
|
|
|
13 |
Image *background;
|
|
|
14 |
Image *bordercolor;
|
|
|
15 |
Image *black;
|
|
|
16 |
Image *blue;
|
|
|
17 |
Image *darkblue;
|
|
|
18 |
Image *darkgrey;
|
|
|
19 |
Image *darkgreen;
|
|
|
20 |
Image *darkmagenta;
|
|
|
21 |
Image *green;
|
|
|
22 |
Image *grey;
|
|
|
23 |
Image *high;
|
|
|
24 |
Image *land;
|
|
|
25 |
Image *lightblue;
|
|
|
26 |
Image *lightgreen;
|
|
|
27 |
Image *lightgrey;
|
|
|
28 |
Image *lightmagenta;
|
|
|
29 |
Image *low;
|
|
|
30 |
Image *magenta;
|
|
|
31 |
Image *oceanblue;
|
|
|
32 |
Image *pale;
|
|
|
33 |
Image *paleblue;
|
|
|
34 |
Image *paleyellow;
|
|
|
35 |
Image *red;
|
|
|
36 |
Image *sea;
|
|
|
37 |
Image *white;
|
|
|
38 |
Image *yellow;
|
|
|
39 |
|
|
|
40 |
static ulong
|
|
|
41 |
rgba(ulong rgba)
|
|
|
42 |
{
|
|
|
43 |
uchar r, g, b, a;
|
|
|
44 |
|
|
|
45 |
a = rgba & 0xff;
|
|
|
46 |
b = (rgba >>= 8) & 0xff;
|
|
|
47 |
g = (rgba >>= 8) & 0xff;
|
|
|
48 |
r = (rgba >> 8) & 0xff;
|
|
|
49 |
rgba = ((r * a / 0xff) & 0xff);
|
|
|
50 |
rgba = ((g * a / 0xff) & 0xff) | (rgba << 8);
|
|
|
51 |
rgba = ((b * a / 0xff) & 0xff) | (rgba << 8);
|
|
|
52 |
rgba = (a & 0xff) | (rgba << 8);
|
|
|
53 |
return rgba;
|
|
|
54 |
}
|
|
|
55 |
|
|
|
56 |
void
|
|
|
57 |
colorinit(char *roman, char *bold)
|
|
|
58 |
{
|
|
|
59 |
Rectangle r = Rect(0, 0, 1, 1);
|
|
|
60 |
|
|
|
61 |
white = display->white;
|
|
|
62 |
black = display->black;
|
|
|
63 |
blue = allocimage(display, r, screen->chan, 1, rgba(0x0000ffff));
|
|
|
64 |
darkblue = allocimage(display, r, screen->chan, 1, rgba(0x0000ccff));
|
|
|
65 |
darkgrey = allocimage(display, r, screen->chan, 1, rgba(0x444444ff));
|
|
|
66 |
darkgreen = allocimage(display, r, screen->chan, 1, rgba(0x008800ff));
|
|
|
67 |
darkmagenta = allocimage(display, r, screen->chan, 1, rgba(0x770077ff));
|
|
|
68 |
green = allocimage(display, r, screen->chan, 1, rgba(0x00ff00ff));
|
|
|
69 |
grey = allocimage(display, r, screen->chan, 1, rgba(0x888888ff));
|
|
|
70 |
high = allocimage(display, r, screen->chan, 1, rgba(0x00ccccff));
|
|
|
71 |
land = allocimage(display, r, screen->chan, 1, rgba(0xe0ffe0ff));
|
|
|
72 |
lightblue = allocimage(display, r, screen->chan, 1, rgba(0x88ccccff));
|
|
|
73 |
lightgreen = allocimage(display, r, screen->chan, 1, rgba(0xaaffaaff));
|
|
|
74 |
lightgrey = allocimage(display, r, screen->chan, 1, rgba(0xddddddff));
|
|
|
75 |
lightmagenta = allocimage(display, r, screen->chan, 1, rgba(0xff88ffff));
|
|
|
76 |
low = allocimage(display, r, screen->chan, 1, rgba(0xddddddff));
|
|
|
77 |
magenta = allocimage(display, r, screen->chan, 1, rgba(0xbb00bbff));
|
|
|
78 |
oceanblue = allocimage(display, r, screen->chan, 1, rgba(0x93ddddff));
|
|
|
79 |
pale = allocimage(display, r, screen->chan, 1, rgba(0xffffaaff));
|
|
|
80 |
paleblue = allocimage(display, r, screen->chan, 1, rgba(0xddffffff));
|
|
|
81 |
paleyellow = allocimage(display, r, screen->chan, 1, rgba(0xeeee9eff));
|
|
|
82 |
red = allocimage(display, r, screen->chan, 1, rgba(0xff0000ff));
|
|
|
83 |
sea = allocimage(display, r, screen->chan, 1, rgba(0xe0e0ffff));
|
|
|
84 |
yellow = allocimage(display, r, screen->chan, 1, rgba(0xffff00ff));
|
|
|
85 |
background = sea;
|
|
|
86 |
bordercolor = darkgreen;
|
|
|
87 |
|
|
|
88 |
namectlimage(background, "background");
|
|
|
89 |
namectlimage(bordercolor, "border");
|
|
|
90 |
namectlimage(black, "black");
|
|
|
91 |
namectlimage(blue, "blue");
|
|
|
92 |
namectlimage(darkblue, "darkblue");
|
|
|
93 |
namectlimage(darkgreen, "darkgreen");
|
|
|
94 |
namectlimage(darkmagenta, "darkmagenta");
|
|
|
95 |
namectlimage(green, "green");
|
|
|
96 |
namectlimage(grey, "grey");
|
|
|
97 |
namectlimage(high, "high");
|
|
|
98 |
namectlimage(land, "land");
|
|
|
99 |
namectlimage(lightblue, "lightblue");
|
|
|
100 |
namectlimage(lightgreen, "lightgreen");
|
|
|
101 |
namectlimage(lightgrey, "lightgrey");
|
|
|
102 |
namectlimage(lightmagenta, "lightmagenta");
|
|
|
103 |
namectlimage(low, "low");
|
|
|
104 |
namectlimage(magenta, "magenta");
|
|
|
105 |
namectlimage(oceanblue, "oceanblue");
|
|
|
106 |
namectlimage(pale, "pale");
|
|
|
107 |
namectlimage(paleblue, "paleblue");
|
|
|
108 |
namectlimage(paleyellow, "paleyellow");
|
|
|
109 |
namectlimage(red, "red");
|
|
|
110 |
namectlimage(sea, "sea");
|
|
|
111 |
namectlimage(white, "white");
|
|
|
112 |
namectlimage(yellow, "yellow");
|
|
|
113 |
|
|
|
114 |
if ((romanfont = openfont(display, roman)) == nil)
|
|
|
115 |
sysfatal("openfont %s: %r", roman);
|
|
|
116 |
namectlfont(romanfont, "romanfont");
|
|
|
117 |
if ((boldfont = openfont(display, bold)) == nil)
|
|
|
118 |
sysfatal("openfont %s: %r", bold);
|
|
|
119 |
namectlfont(boldfont, "boldfont");
|
|
|
120 |
}
|