Initial repo created
[timetracker.git] / WEB-INF / lib / libchart / classes / view / color / ColorSet.php
1 <?php
2         /* Libchart - PHP chart library
3          * Copyright (C) 2005-2008 Jean-Marc Trémeaux (jm.tremeaux at gmail.com)
4          * 
5          * This program is free software: you can redistribute it and/or modify
6          * it under the terms of the GNU General Public License as published by
7          * the Free Software Foundation, either version 3 of the License, or
8          * (at your option) any later version.
9          * 
10          * This program is distributed in the hope that it will be useful,
11          * but WITHOUT ANY WARRANTY; without even the implied warranty of
12          * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
13          * GNU General Public License for more details.
14          *
15          * You should have received a copy of the GNU General Public License
16          * along with this program.  If not, see <http://www.gnu.org/licenses/>.
17          * 
18          */
19         
20         /**
21          * A set of colors, used for drawing series of data.
22          *
23          * @author Jean-Marc Trémeaux (jm.tremeaux at gmail.com)
24          * Created on 26 july 2007
25          */
26         class ColorSet {
27                 public $colorList;
28                 public $shadowColorList;
29         
30                 /**
31                  * ColorSet constructor.
32                  *
33                  * @param $shadowFactor Shadow factor
34                  * @param $colorArray Colors as an array
35                  */
36                 public function ColorSet($colorList, $shadowFactor) {
37                         $this->colorList = $colorList;
38                         $this->shadowColorList = array();
39
40                         // Generate the shadow color set
41                         foreach ($colorList as $color) {
42                                 $shadowColor = $color->getShadowColor($shadowFactor);
43
44                                 array_push($this->shadowColorList, $shadowColor);
45                         }
46                 }
47                 
48                 /**
49                  * Reset the iterator over the collections of colors.
50                  */
51                 public function reset() {
52                         reset($this->colorList);
53                         reset($this->shadowColorList);
54                 }
55
56                 /**
57                  * Iterate over the colors and shadow colors. When we go after the last one, loop over.
58                  *
59                  */
60                 public function next() {
61                         $value = next($this->colorList);
62                         next($this->shadowColorList);
63                         
64                         // When we go after the last value, loop over.
65                         if ($value == FALSE) {
66                                 $this->reset();
67                         }
68                 }
69
70                 /**
71                  * Returns the current color.
72                  *
73                  * @return Current color
74                  */
75                 public function currentColor() {
76                         return current($this->colorList);
77                 }
78
79                 /**
80                  * Returns the current shadow color.
81                  *
82                  * @return Current shadow color
83                  */
84                 public function currentShadowColor() {
85                         return current($this->shadowColorList);
86                 }
87         }
88 ?>