[ Index ] |
PHP Cross Reference of moodle-2.8 |
[Summary view] [Print] [Text view]
1 <?php 2 /** 3 * PHPExcel 4 * 5 * Copyright (c) 2006 - 2014 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 23 * @copyright Copyright (c) 2006 - 2014 PHPExcel (http://www.codeplex.com/PHPExcel) 24 * @license http://www.gnu.org/licenses/old-licenses/lgpl-2.1.txt LGPL 25 * @version ##VERSION##, ##DATE## 26 */ 27 28 29 /** 30 * PHPExcel_Worksheet_BaseDrawing 31 * 32 * @category PHPExcel 33 * @package PHPExcel_Worksheet 34 * @copyright Copyright (c) 2006 - 2014 PHPExcel (http://www.codeplex.com/PHPExcel) 35 */ 36 class PHPExcel_Worksheet_BaseDrawing implements PHPExcel_IComparable 37 { 38 /** 39 * Image counter 40 * 41 * @var int 42 */ 43 private static $_imageCounter = 0; 44 45 /** 46 * Image index 47 * 48 * @var int 49 */ 50 private $_imageIndex = 0; 51 52 /** 53 * Name 54 * 55 * @var string 56 */ 57 protected $_name; 58 59 /** 60 * Description 61 * 62 * @var string 63 */ 64 protected $_description; 65 66 /** 67 * Worksheet 68 * 69 * @var PHPExcel_Worksheet 70 */ 71 protected $_worksheet; 72 73 /** 74 * Coordinates 75 * 76 * @var string 77 */ 78 protected $_coordinates; 79 80 /** 81 * Offset X 82 * 83 * @var int 84 */ 85 protected $_offsetX; 86 87 /** 88 * Offset Y 89 * 90 * @var int 91 */ 92 protected $_offsetY; 93 94 /** 95 * Width 96 * 97 * @var int 98 */ 99 protected $_width; 100 101 /** 102 * Height 103 * 104 * @var int 105 */ 106 protected $_height; 107 108 /** 109 * Proportional resize 110 * 111 * @var boolean 112 */ 113 protected $_resizeProportional; 114 115 /** 116 * Rotation 117 * 118 * @var int 119 */ 120 protected $_rotation; 121 122 /** 123 * Shadow 124 * 125 * @var PHPExcel_Worksheet_Drawing_Shadow 126 */ 127 protected $_shadow; 128 129 /** 130 * Create a new PHPExcel_Worksheet_BaseDrawing 131 */ 132 public function __construct() 133 { 134 // Initialise values 135 $this->_name = ''; 136 $this->_description = ''; 137 $this->_worksheet = null; 138 $this->_coordinates = 'A1'; 139 $this->_offsetX = 0; 140 $this->_offsetY = 0; 141 $this->_width = 0; 142 $this->_height = 0; 143 $this->_resizeProportional = true; 144 $this->_rotation = 0; 145 $this->_shadow = new PHPExcel_Worksheet_Drawing_Shadow(); 146 147 // Set image index 148 self::$_imageCounter++; 149 $this->_imageIndex = self::$_imageCounter; 150 } 151 152 /** 153 * Get image index 154 * 155 * @return int 156 */ 157 public function getImageIndex() { 158 return $this->_imageIndex; 159 } 160 161 /** 162 * Get Name 163 * 164 * @return string 165 */ 166 public function getName() { 167 return $this->_name; 168 } 169 170 /** 171 * Set Name 172 * 173 * @param string $pValue 174 * @return PHPExcel_Worksheet_BaseDrawing 175 */ 176 public function setName($pValue = '') { 177 $this->_name = $pValue; 178 return $this; 179 } 180 181 /** 182 * Get Description 183 * 184 * @return string 185 */ 186 public function getDescription() { 187 return $this->_description; 188 } 189 190 /** 191 * Set Description 192 * 193 * @param string $pValue 194 * @return PHPExcel_Worksheet_BaseDrawing 195 */ 196 public function setDescription($pValue = '') { 197 $this->_description = $pValue; 198 return $this; 199 } 200 201 /** 202 * Get Worksheet 203 * 204 * @return PHPExcel_Worksheet 205 */ 206 public function getWorksheet() { 207 return $this->_worksheet; 208 } 209 210 /** 211 * Set Worksheet 212 * 213 * @param PHPExcel_Worksheet $pValue 214 * @param bool $pOverrideOld If a Worksheet has already been assigned, overwrite it and remove image from old Worksheet? 215 * @throws PHPExcel_Exception 216 * @return PHPExcel_Worksheet_BaseDrawing 217 */ 218 public function setWorksheet(PHPExcel_Worksheet $pValue = null, $pOverrideOld = false) { 219 if (is_null($this->_worksheet)) { 220 // Add drawing to PHPExcel_Worksheet 221 $this->_worksheet = $pValue; 222 $this->_worksheet->getCell($this->_coordinates); 223 $this->_worksheet->getDrawingCollection()->append($this); 224 } else { 225 if ($pOverrideOld) { 226 // Remove drawing from old PHPExcel_Worksheet 227 $iterator = $this->_worksheet->getDrawingCollection()->getIterator(); 228 229 while ($iterator->valid()) { 230 if ($iterator->current()->getHashCode() == $this->getHashCode()) { 231 $this->_worksheet->getDrawingCollection()->offsetUnset( $iterator->key() ); 232 $this->_worksheet = null; 233 break; 234 } 235 } 236 237 // Set new PHPExcel_Worksheet 238 $this->setWorksheet($pValue); 239 } else { 240 throw new PHPExcel_Exception("A PHPExcel_Worksheet has already been assigned. Drawings can only exist on one PHPExcel_Worksheet."); 241 } 242 } 243 return $this; 244 } 245 246 /** 247 * Get Coordinates 248 * 249 * @return string 250 */ 251 public function getCoordinates() { 252 return $this->_coordinates; 253 } 254 255 /** 256 * Set Coordinates 257 * 258 * @param string $pValue 259 * @return PHPExcel_Worksheet_BaseDrawing 260 */ 261 public function setCoordinates($pValue = 'A1') { 262 $this->_coordinates = $pValue; 263 return $this; 264 } 265 266 /** 267 * Get OffsetX 268 * 269 * @return int 270 */ 271 public function getOffsetX() { 272 return $this->_offsetX; 273 } 274 275 /** 276 * Set OffsetX 277 * 278 * @param int $pValue 279 * @return PHPExcel_Worksheet_BaseDrawing 280 */ 281 public function setOffsetX($pValue = 0) { 282 $this->_offsetX = $pValue; 283 return $this; 284 } 285 286 /** 287 * Get OffsetY 288 * 289 * @return int 290 */ 291 public function getOffsetY() { 292 return $this->_offsetY; 293 } 294 295 /** 296 * Set OffsetY 297 * 298 * @param int $pValue 299 * @return PHPExcel_Worksheet_BaseDrawing 300 */ 301 public function setOffsetY($pValue = 0) { 302 $this->_offsetY = $pValue; 303 return $this; 304 } 305 306 /** 307 * Get Width 308 * 309 * @return int 310 */ 311 public function getWidth() { 312 return $this->_width; 313 } 314 315 /** 316 * Set Width 317 * 318 * @param int $pValue 319 * @return PHPExcel_Worksheet_BaseDrawing 320 */ 321 public function setWidth($pValue = 0) { 322 // Resize proportional? 323 if ($this->_resizeProportional && $pValue != 0) { 324 $ratio = $this->_height / $this->_width; 325 $this->_height = round($ratio * $pValue); 326 } 327 328 // Set width 329 $this->_width = $pValue; 330 331 return $this; 332 } 333 334 /** 335 * Get Height 336 * 337 * @return int 338 */ 339 public function getHeight() { 340 return $this->_height; 341 } 342 343 /** 344 * Set Height 345 * 346 * @param int $pValue 347 * @return PHPExcel_Worksheet_BaseDrawing 348 */ 349 public function setHeight($pValue = 0) { 350 // Resize proportional? 351 if ($this->_resizeProportional && $pValue != 0) { 352 $ratio = $this->_width / $this->_height; 353 $this->_width = round($ratio * $pValue); 354 } 355 356 // Set height 357 $this->_height = $pValue; 358 359 return $this; 360 } 361 362 /** 363 * Set width and height with proportional resize 364 * Example: 365 * <code> 366 * $objDrawing->setResizeProportional(true); 367 * $objDrawing->setWidthAndHeight(160,120); 368 * </code> 369 * 370 * @author Vincent@luo MSN:[email protected] 371 * @param int $width 372 * @param int $height 373 * @return PHPExcel_Worksheet_BaseDrawing 374 */ 375 public function setWidthAndHeight($width = 0, $height = 0) { 376 $xratio = $width / $this->_width; 377 $yratio = $height / $this->_height; 378 if ($this->_resizeProportional && !($width == 0 || $height == 0)) { 379 if (($xratio * $this->_height) < $height) { 380 $this->_height = ceil($xratio * $this->_height); 381 $this->_width = $width; 382 } else { 383 $this->_width = ceil($yratio * $this->_width); 384 $this->_height = $height; 385 } 386 } 387 return $this; 388 } 389 390 /** 391 * Get ResizeProportional 392 * 393 * @return boolean 394 */ 395 public function getResizeProportional() { 396 return $this->_resizeProportional; 397 } 398 399 /** 400 * Set ResizeProportional 401 * 402 * @param boolean $pValue 403 * @return PHPExcel_Worksheet_BaseDrawing 404 */ 405 public function setResizeProportional($pValue = true) { 406 $this->_resizeProportional = $pValue; 407 return $this; 408 } 409 410 /** 411 * Get Rotation 412 * 413 * @return int 414 */ 415 public function getRotation() { 416 return $this->_rotation; 417 } 418 419 /** 420 * Set Rotation 421 * 422 * @param int $pValue 423 * @return PHPExcel_Worksheet_BaseDrawing 424 */ 425 public function setRotation($pValue = 0) { 426 $this->_rotation = $pValue; 427 return $this; 428 } 429 430 /** 431 * Get Shadow 432 * 433 * @return PHPExcel_Worksheet_Drawing_Shadow 434 */ 435 public function getShadow() { 436 return $this->_shadow; 437 } 438 439 /** 440 * Set Shadow 441 * 442 * @param PHPExcel_Worksheet_Drawing_Shadow $pValue 443 * @throws PHPExcel_Exception 444 * @return PHPExcel_Worksheet_BaseDrawing 445 */ 446 public function setShadow(PHPExcel_Worksheet_Drawing_Shadow $pValue = null) { 447 $this->_shadow = $pValue; 448 return $this; 449 } 450 451 /** 452 * Get hash code 453 * 454 * @return string Hash code 455 */ 456 public function getHashCode() { 457 return md5( 458 $this->_name 459 . $this->_description 460 . $this->_worksheet->getHashCode() 461 . $this->_coordinates 462 . $this->_offsetX 463 . $this->_offsetY 464 . $this->_width 465 . $this->_height 466 . $this->_rotation 467 . $this->_shadow->getHashCode() 468 . __CLASS__ 469 ); 470 } 471 472 /** 473 * Implement PHP __clone to create a deep clone, not just a shallow copy. 474 */ 475 public function __clone() { 476 $vars = get_object_vars($this); 477 foreach ($vars as $key => $value) { 478 if (is_object($value)) { 479 $this->$key = clone $value; 480 } else { 481 $this->$key = $value; 482 } 483 } 484 } 485 }
title
Description
Body
title
Description
Body
title
Description
Body
title
Body
Generated: Fri Nov 28 20:29:05 2014 | Cross-referenced by PHPXref 0.7.1 |