Subversion Repositories Applications.gtt

Rev

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

Rev Author Line No. Line
60 jpm 1
<?php
2
/*
3
 * This work is hereby released into the Public Domain.
4
 * To view a copy of the public domain dedication,
5
 * visit http://creativecommons.org/licenses/publicdomain/ or send a letter to
6
 * Creative Commons, 559 Nathan Abbott Way, Stanford, California 94305, USA.
7
 *
8
 */
9
 
10
require_once dirname(__FILE__)."/../Graph.class.php";
11
 
12
/**
13
 * Create your colors
14
 *
15
 * @package Artichow
16
 */
17
class awColor {
18
 
19
	public $red;
20
	public $green;
21
	public $blue;
22
	public $alpha;
23
 
24
	/**
25
	 * Build your color
26
	 *
27
	 * @var int $red Red intensity (from 0 to 255)
28
	 * @var int $green Green intensity (from 0 to 255)
29
	 * @var int $blue Blue intensity (from 0 to 255)
30
	 * @var int $alpha Alpha channel (from 0 to 100)
31
	 */
32
	public function __construct($red, $green, $blue, $alpha = 0) {
33
 
34
		$this->red = (int)$red;
35
		$this->green = (int)$green;
36
		$this->blue = (int)$blue;
37
		$this->alpha = (int)round($alpha * 127 / 100);
38
 
39
	}
40
 
41
	/**
42
	 * Get RGB and alpha values of your color
43
	 *
44
	 * @return array
45
	 */
46
	public function getColor() {
47
		return $this->rgba();
48
	}
49
 
50
	/**
51
	 * Change color brightness
52
	 *
53
	 * @param int $brightness Add this intensity to the color (betweeen -255 and +255)
54
	 */
55
	public function brightness($brightness) {
56
 
57
		$brightness = (int)$brightness;
58
 
59
		$this->red = min(255, max(0, $this->red + $brightness));
60
		$this->green = min(255, max(0, $this->green + $brightness));
61
		$this->blue = min(255, max(0, $this->blue + $brightness));
62
 
63
	}
64
 
65
	/**
66
	 * Get RGB and alpha values of your color
67
	 *
68
	 * @return array
69
	 */
70
	public function rgba() {
71
 
72
		return array($this->red, $this->green, $this->blue, $this->alpha);
73
 
74
	}
75
 
76
}
77
 
78
registerClass('Color');
79
 
80
$colors = array(
81
	'Black' => array(0, 0, 0),
82
	'AlmostBlack' => array(48, 48, 48),
83
	'VeryDarkGray' => array(88, 88, 88),
84
	'DarkGray' => array(128, 128, 128),
85
	'MidGray' => array(160, 160, 160),
86
	'LightGray' => array(195, 195, 195),
87
	'VeryLightGray' => array(220, 220, 220),
88
	'White' => array(255, 255, 255),
89
	'VeryDarkRed' => array(64, 0, 0),
90
	'DarkRed' => array(128, 0, 0),
91
	'MidRed' => array(192, 0, 0),
92
	'Red' => array(255, 0, 0),
93
	'LightRed' => array(255, 192, 192),
94
	'VeryDarkGreen' => array(0, 64, 0),
95
	'DarkGreen' => array(0, 128, 0),
96
	'MidGreen' => array(0, 192, 0),
97
	'Green' => array(0, 255, 0),
98
	'LightGreen' => array(192, 255, 192),
99
	'VeryDarkBlue' => array(0, 0, 64),
100
	'DarkBlue' => array(0, 0, 128),
101
	'MidBlue' => array(0, 0, 192),
102
	'Blue' => array(0, 0, 255),
103
	'LightBlue' => array(192, 192, 255),
104
	'VeryDarkYellow' => array(64, 64, 0),
105
	'DarkYellow' => array(128, 128, 0),
106
	'MidYellow' => array(192, 192, 0),
107
	'Yellow' => array(255, 255, 2),
108
	'LightYellow' => array(255, 255, 192),
109
	'VeryDarkCyan' => array(0, 64, 64),
110
	'DarkCyan' => array(0, 128, 128),
111
	'MidCyan' => array(0, 192, 192),
112
	'Cyan' => array(0, 255, 255),
113
	'LightCyan' => array(192, 255, 255),
114
	'VeryDarkMagenta' => array(64, 0, 64),
115
	'DarkMagenta' => array(128, 0, 128),
116
	'MidMagenta' => array(192, 0, 192),
117
	'Magenta' => array(255, 0, 255),
118
	'LightMagenta' => array(255, 192, 255),
119
	'DarkOrange' => array(192, 88, 0),
120
	'Orange' => array(255, 128, 0),
121
	'LightOrange' => array(255, 168, 88),
122
	'VeryLightOrange' => array(255, 220, 168),
123
	'DarkPink' => array(192, 0, 88),
124
	'Pink' => array(255, 0, 128),
125
	'LightPink' => array(255, 88, 168),
126
	'VeryLightPink' => array(255, 168, 220),
127
	'DarkPurple' => array(88, 0, 192),
128
	'Purple' => array(128, 0, 255),
129
	'LightPurple' => array(168, 88, 255),
130
	'VeryLightPurple' => array(220, 168, 255),
131
);
132
 
133
 
134
 
135
$php = '';
136
 
137
foreach($colors as $name => $color) {
138
 
139
	list($red, $green, $blue) = $color;
140
 
141
	$php .= '
142
	class aw'.$name.' extends awColor {
143
 
144
		public function __construct($alpha = 0) {
145
			parent::__construct('.$red.', '.$green.', '.$blue.', $alpha);
146
		}
147
 
148
	}
149
	';
150
 
151
	if(ARTICHOW_PREFIX !== 'aw') {
152
		$php .= '
153
		class '.ARTICHOW_PREFIX.$name.' extends aw'.$name.' {
154
 
155
		}
156
		';
157
	}
158
 
159
}
160
 
161
eval($php);
162
 
163
 
164
 
165
?>