Subversion Repositories planix.SVN

Rev

Rev 2 | Details | Compare with Previous | Last modification | View Log | RSS feed

Rev Author Line No. Line
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
}