PageRenderTime 33ms CodeModel.GetById 14ms app.highlight 13ms RepoModel.GetById 1ms app.codeStats 0ms

/PHPExcel/Worksheet/Drawing/Shadow.php

https://bitbucket.org/nfredricks/wp-employee-time
PHP | 288 lines | 100 code | 26 blank | 162 comment | 2 complexity | 40ec74b884eb8579a4c65e0caf0e8d2b MD5 | raw file
  1<?php
  2/**
  3 * PHPExcel
  4 *
  5 * Copyright (c) 2006 - 2012 PHPExcel
  6 *
  7 * This library is free software; you can redistribute it and/or
  8 * modify it under the terms of the GNU Lesser General Public
  9 * License as published by the Free Software Foundation; either
 10 * version 2.1 of the License, or (at your option) any later version.
 11 *
 12 * This library is distributed in the hope that it will be useful,
 13 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 14 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
 15 * Lesser General Public License for more details.
 16 *
 17 * You should have received a copy of the GNU Lesser General Public
 18 * License along with this library; if not, write to the Free Software
 19 * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301  USA
 20 *
 21 * @category   PHPExcel
 22 * @package    PHPExcel_Worksheet_Drawing
 23 * @copyright  Copyright (c) 2006 - 2012 PHPExcel (http://www.codeplex.com/PHPExcel)
 24 * @license    http://www.gnu.org/licenses/old-licenses/lgpl-2.1.txt	LGPL
 25 * @version    1.7.8, 2012-10-12
 26 */
 27
 28
 29/**
 30 * PHPExcel_Worksheet_Drawing_Shadow
 31 *
 32 * @category   PHPExcel
 33 * @package    PHPExcel_Worksheet_Drawing
 34 * @copyright  Copyright (c) 2006 - 2012 PHPExcel (http://www.codeplex.com/PHPExcel)
 35 */
 36class PHPExcel_Worksheet_Drawing_Shadow implements PHPExcel_IComparable
 37{
 38	/* Shadow alignment */
 39	const SHADOW_BOTTOM							= 'b';
 40	const SHADOW_BOTTOM_LEFT					= 'bl';
 41	const SHADOW_BOTTOM_RIGHT					= 'br';
 42	const SHADOW_CENTER							= 'ctr';
 43	const SHADOW_LEFT							= 'l';
 44	const SHADOW_TOP							= 't';
 45	const SHADOW_TOP_LEFT						= 'tl';
 46	const SHADOW_TOP_RIGHT						= 'tr';
 47
 48	/**
 49	 * Visible
 50	 *
 51	 * @var boolean
 52	 */
 53	private $_visible;
 54
 55	/**
 56	 * Blur radius
 57	 *
 58	 * Defaults to 6
 59	 *
 60	 * @var int
 61	 */
 62	private $_blurRadius;
 63
 64	/**
 65	 * Shadow distance
 66	 *
 67	 * Defaults to 2
 68	 *
 69	 * @var int
 70	 */
 71	private $_distance;
 72
 73	/**
 74	 * Shadow direction (in degrees)
 75	 *
 76	 * @var int
 77	 */
 78	private $_direction;
 79
 80	/**
 81	 * Shadow alignment
 82	 *
 83	 * @var int
 84	 */
 85	private $_alignment;
 86
 87	/**
 88	 * Color
 89	 *
 90	 * @var PHPExcel_Style_Color
 91	 */
 92	private $_color;
 93
 94	/**
 95	 * Alpha
 96	 *
 97	 * @var int
 98	 */
 99	private $_alpha;
100
101    /**
102     * Create a new PHPExcel_Worksheet_Drawing_Shadow
103     */
104    public function __construct()
105    {
106    	// Initialise values
107    	$this->_visible				= false;
108    	$this->_blurRadius			= 6;
109    	$this->_distance			= 2;
110    	$this->_direction			= 0;
111    	$this->_alignment			= PHPExcel_Worksheet_Drawing_Shadow::SHADOW_BOTTOM_RIGHT;
112    	$this->_color				= new PHPExcel_Style_Color(PHPExcel_Style_Color::COLOR_BLACK);
113    	$this->_alpha				= 50;
114    }
115
116    /**
117     * Get Visible
118     *
119     * @return boolean
120     */
121    public function getVisible() {
122    	return $this->_visible;
123    }
124
125    /**
126     * Set Visible
127     *
128     * @param boolean $pValue
129     * @return PHPExcel_Worksheet_Drawing_Shadow
130     */
131    public function setVisible($pValue = false) {
132    	$this->_visible = $pValue;
133    	return $this;
134    }
135
136    /**
137     * Get Blur radius
138     *
139     * @return int
140     */
141    public function getBlurRadius() {
142    	return $this->_blurRadius;
143    }
144
145    /**
146     * Set Blur radius
147     *
148     * @param int $pValue
149     * @return PHPExcel_Worksheet_Drawing_Shadow
150     */
151    public function setBlurRadius($pValue = 6) {
152    	$this->_blurRadius = $pValue;
153    	return $this;
154    }
155
156    /**
157     * Get Shadow distance
158     *
159     * @return int
160     */
161    public function getDistance() {
162    	return $this->_distance;
163    }
164
165    /**
166     * Set Shadow distance
167     *
168     * @param int $pValue
169     * @return PHPExcel_Worksheet_Drawing_Shadow
170     */
171    public function setDistance($pValue = 2) {
172    	$this->_distance = $pValue;
173    	return $this;
174    }
175
176    /**
177     * Get Shadow direction (in degrees)
178     *
179     * @return int
180     */
181    public function getDirection() {
182    	return $this->_direction;
183    }
184
185    /**
186     * Set Shadow direction (in degrees)
187     *
188     * @param int $pValue
189     * @return PHPExcel_Worksheet_Drawing_Shadow
190     */
191    public function setDirection($pValue = 0) {
192    	$this->_direction = $pValue;
193    	return $this;
194    }
195
196   /**
197     * Get Shadow alignment
198     *
199     * @return int
200     */
201    public function getAlignment() {
202    	return $this->_alignment;
203    }
204
205    /**
206     * Set Shadow alignment
207     *
208     * @param int $pValue
209     * @return PHPExcel_Worksheet_Drawing_Shadow
210     */
211    public function setAlignment($pValue = 0) {
212    	$this->_alignment = $pValue;
213    	return $this;
214    }
215
216   /**
217     * Get Color
218     *
219     * @return PHPExcel_Style_Color
220     */
221    public function getColor() {
222    	return $this->_color;
223    }
224
225    /**
226     * Set Color
227     *
228     * @param 	PHPExcel_Style_Color $pValue
229     * @throws 	Exception
230     * @return PHPExcel_Worksheet_Drawing_Shadow
231     */
232    public function setColor(PHPExcel_Style_Color $pValue = null) {
233   		$this->_color = $pValue;
234   		return $this;
235    }
236
237   /**
238     * Get Alpha
239     *
240     * @return int
241     */
242    public function getAlpha() {
243    	return $this->_alpha;
244    }
245
246    /**
247     * Set Alpha
248     *
249     * @param int $pValue
250     * @return PHPExcel_Worksheet_Drawing_Shadow
251     */
252    public function setAlpha($pValue = 0) {
253    	$this->_alpha = $pValue;
254    	return $this;
255    }
256
257	/**
258	 * Get hash code
259	 *
260	 * @return string	Hash code
261	 */
262	public function getHashCode() {
263    	return md5(
264    		  ($this->_visible ? 't' : 'f')
265    		. $this->_blurRadius
266    		. $this->_distance
267    		. $this->_direction
268    		. $this->_alignment
269    		. $this->_color->getHashCode()
270    		. $this->_alpha
271    		. __CLASS__
272    	);
273    }
274
275	/**
276	 * Implement PHP __clone to create a deep clone, not just a shallow copy.
277	 */
278	public function __clone() {
279		$vars = get_object_vars($this);
280		foreach ($vars as $key => $value) {
281			if (is_object($value)) {
282				$this->$key = clone $value;
283			} else {
284				$this->$key = $value;
285			}
286		}
287	}
288}