PageRenderTime 34ms CodeModel.GetById 23ms app.highlight 8ms RepoModel.GetById 1ms app.codeStats 0ms

/PHPExcel/Comment.php

https://bitbucket.org/nfredricks/wp-employee-time
PHP | 317 lines | 103 code | 30 blank | 184 comment | 2 complexity | a488dd0e3e82c0d56d73dede1536d907 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
 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_Comment
 31 *
 32 * @category   PHPExcel
 33 * @package    PHPExcel
 34 * @copyright  Copyright (c) 2006 - 2012 PHPExcel (http://www.codeplex.com/PHPExcel)
 35 */
 36class PHPExcel_Comment implements PHPExcel_IComparable
 37{
 38	/**
 39	 * Author
 40	 *
 41	 * @var string
 42	 */
 43	private $_author;
 44
 45	/**
 46	 * Rich text comment
 47	 *
 48	 * @var PHPExcel_RichText
 49	 */
 50	private $_text;
 51
 52	/**
 53	 * Comment width (CSS style, i.e. XXpx or YYpt)
 54	 *
 55	 * @var string
 56	 */
 57	private $_width = '96pt';
 58
 59	/**
 60	 * Left margin (CSS style, i.e. XXpx or YYpt)
 61	 *
 62	 * @var string
 63	 */
 64	private $_marginLeft = '59.25pt';
 65
 66	/**
 67	 * Top margin (CSS style, i.e. XXpx or YYpt)
 68	 *
 69	 * @var string
 70	 */
 71	private $_marginTop = '1.5pt';
 72
 73	/**
 74	 * Visible
 75	 *
 76	 * @var boolean
 77	 */
 78	private $_visible = false;
 79
 80	/**
 81	 * Comment height (CSS style, i.e. XXpx or YYpt)
 82	 *
 83	 * @var string
 84	 */
 85	private $_height = '55.5pt';
 86
 87	/**
 88	 * Comment fill color
 89	 *
 90	 * @var PHPExcel_Style_Color
 91	 */
 92	private $_fillColor;
 93
 94	/**
 95	 * Alignment
 96	 *
 97	 * @var string
 98	 */
 99	private $_alignment;
100
101    /**
102     * Create a new PHPExcel_Comment
103     *
104     * @throws	Exception
105     */
106    public function __construct()
107    {
108    	// Initialise variables
109    	$this->_author		= 'Author';
110    	$this->_text		= new PHPExcel_RichText();
111    	$this->_fillColor	= new PHPExcel_Style_Color('FFFFFFE1');
112		$this->_alignment	= PHPExcel_Style_Alignment::HORIZONTAL_GENERAL;
113    }
114
115    /**
116     * Get Author
117     *
118     * @return string
119     */
120    public function getAuthor() {
121    	return $this->_author;
122    }
123
124    /**
125     * Set Author
126     *
127     * @param string $pValue
128     * @return PHPExcel_Comment
129     */
130	public function setAuthor($pValue = '') {
131		$this->_author = $pValue;
132		return $this;
133	}
134
135    /**
136     * Get Rich text comment
137     *
138     * @return PHPExcel_RichText
139     */
140    public function getText() {
141    	return $this->_text;
142    }
143
144    /**
145     * Set Rich text comment
146     *
147     * @param PHPExcel_RichText $pValue
148     * @return PHPExcel_Comment
149     */
150    public function setText(PHPExcel_RichText $pValue) {
151    	$this->_text = $pValue;
152    	return $this;
153    }
154
155    /**
156     * Get comment width (CSS style, i.e. XXpx or YYpt)
157     *
158     * @return string
159     */
160    public function getWidth() {
161        return $this->_width;
162    }
163
164    /**
165     * Set comment width (CSS style, i.e. XXpx or YYpt)
166     *
167     * @param string $value
168     * @return PHPExcel_Comment
169     */
170    public function setWidth($value = '96pt') {
171        $this->_width = $value;
172        return $this;
173    }
174
175    /**
176     * Get comment height (CSS style, i.e. XXpx or YYpt)
177     *
178     * @return string
179     */
180    public function getHeight() {
181        return $this->_height;
182    }
183
184    /**
185     * Set comment height (CSS style, i.e. XXpx or YYpt)
186     *
187     * @param string $value
188     * @return PHPExcel_Comment
189     */
190    public function setHeight($value = '55.5pt') {
191        $this->_height = $value;
192        return $this;
193    }
194
195    /**
196     * Get left margin (CSS style, i.e. XXpx or YYpt)
197     *
198     * @return string
199     */
200    public function getMarginLeft() {
201        return $this->_marginLeft;
202    }
203
204    /**
205     * Set left margin (CSS style, i.e. XXpx or YYpt)
206     *
207     * @param string $value
208     * @return PHPExcel_Comment
209     */
210    public function setMarginLeft($value = '59.25pt') {
211        $this->_marginLeft = $value;
212        return $this;
213    }
214
215    /**
216     * Get top margin (CSS style, i.e. XXpx or YYpt)
217     *
218     * @return string
219     */
220    public function getMarginTop() {
221        return $this->_marginTop;
222    }
223
224    /**
225     * Set top margin (CSS style, i.e. XXpx or YYpt)
226     *
227     * @param string $value
228     * @return PHPExcel_Comment
229     */
230    public function setMarginTop($value = '1.5pt') {
231        $this->_marginTop = $value;
232        return $this;
233    }
234
235    /**
236     * Is the comment visible by default?
237     *
238     * @return boolean
239     */
240    public function getVisible() {
241        return $this->_visible;
242    }
243
244    /**
245     * Set comment default visibility
246     *
247     * @param boolean $value
248     * @return PHPExcel_Comment
249     */
250    public function setVisible($value = false) {
251        $this->_visible = $value;
252        return $this;
253    }
254
255    /**
256     * Get fill color
257     *
258     * @return PHPExcel_Style_Color
259     */
260    public function getFillColor() {
261        return $this->_fillColor;
262    }
263
264    /**
265     * Set Alignment
266     *
267     * @param string $pValue
268     * @return PHPExcel_Comment
269     */
270    public function setAlignment($pValue = PHPExcel_Style_Alignment::HORIZONTAL_GENERAL) {
271		$this->_alignment = $pValue;
272		return $this;
273    }
274
275    /**
276     * Get Alignment
277     *
278     * @return string
279     */
280    public function getAlignment() {
281		return $this->_alignment;
282    }
283
284	/**
285	 * Get hash code
286	 *
287	 * @return string	Hash code
288	 */
289	public function getHashCode() {
290    	return md5(
291    		  $this->_author
292    		. $this->_text->getHashCode()
293    		. $this->_width
294    		. $this->_height
295    		. $this->_marginLeft
296    		. $this->_marginTop
297    		. ($this->_visible ? 1 : 0)
298    		. $this->_fillColor->getHashCode()
299    		. $this->_alignment
300    		. __CLASS__
301    	);
302    }
303
304	/**
305	 * Implement PHP __clone to create a deep clone, not just a shallow copy.
306	 */
307	public function __clone() {
308		$vars = get_object_vars($this);
309		foreach ($vars as $key => $value) {
310			if (is_object($value)) {
311				$this->$key = clone $value;
312			} else {
313				$this->$key = $value;
314			}
315		}
316	}
317}