[ 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_Style 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_Style_Font 31 * 32 * @category PHPExcel 33 * @package PHPExcel_Style 34 * @copyright Copyright (c) 2006 - 2014 PHPExcel (http://www.codeplex.com/PHPExcel) 35 */ 36 class PHPExcel_Style_Font extends PHPExcel_Style_Supervisor implements PHPExcel_IComparable 37 { 38 /* Underline types */ 39 const UNDERLINE_NONE = 'none'; 40 const UNDERLINE_DOUBLE = 'double'; 41 const UNDERLINE_DOUBLEACCOUNTING = 'doubleAccounting'; 42 const UNDERLINE_SINGLE = 'single'; 43 const UNDERLINE_SINGLEACCOUNTING = 'singleAccounting'; 44 45 /** 46 * Font Name 47 * 48 * @var string 49 */ 50 protected $_name = 'Calibri'; 51 52 /** 53 * Font Size 54 * 55 * @var float 56 */ 57 protected $_size = 11; 58 59 /** 60 * Bold 61 * 62 * @var boolean 63 */ 64 protected $_bold = FALSE; 65 66 /** 67 * Italic 68 * 69 * @var boolean 70 */ 71 protected $_italic = FALSE; 72 73 /** 74 * Superscript 75 * 76 * @var boolean 77 */ 78 protected $_superScript = FALSE; 79 80 /** 81 * Subscript 82 * 83 * @var boolean 84 */ 85 protected $_subScript = FALSE; 86 87 /** 88 * Underline 89 * 90 * @var string 91 */ 92 protected $_underline = self::UNDERLINE_NONE; 93 94 /** 95 * Strikethrough 96 * 97 * @var boolean 98 */ 99 protected $_strikethrough = FALSE; 100 101 /** 102 * Foreground color 103 * 104 * @var PHPExcel_Style_Color 105 */ 106 protected $_color; 107 108 /** 109 * Create a new PHPExcel_Style_Font 110 * 111 * @param boolean $isSupervisor Flag indicating if this is a supervisor or not 112 * Leave this value at default unless you understand exactly what 113 * its ramifications are 114 * @param boolean $isConditional Flag indicating if this is a conditional style or not 115 * Leave this value at default unless you understand exactly what 116 * its ramifications are 117 */ 118 public function __construct($isSupervisor = FALSE, $isConditional = FALSE) 119 { 120 // Supervisor? 121 parent::__construct($isSupervisor); 122 123 // Initialise values 124 if ($isConditional) { 125 $this->_name = NULL; 126 $this->_size = NULL; 127 $this->_bold = NULL; 128 $this->_italic = NULL; 129 $this->_superScript = NULL; 130 $this->_subScript = NULL; 131 $this->_underline = NULL; 132 $this->_strikethrough = NULL; 133 $this->_color = new PHPExcel_Style_Color(PHPExcel_Style_Color::COLOR_BLACK, $isSupervisor, $isConditional); 134 } else { 135 $this->_color = new PHPExcel_Style_Color(PHPExcel_Style_Color::COLOR_BLACK, $isSupervisor); 136 } 137 // bind parent if we are a supervisor 138 if ($isSupervisor) { 139 $this->_color->bindParent($this, '_color'); 140 } 141 } 142 143 /** 144 * Get the shared style component for the currently active cell in currently active sheet. 145 * Only used for style supervisor 146 * 147 * @return PHPExcel_Style_Font 148 */ 149 public function getSharedComponent() 150 { 151 return $this->_parent->getSharedComponent()->getFont(); 152 } 153 154 /** 155 * Build style array from subcomponents 156 * 157 * @param array $array 158 * @return array 159 */ 160 public function getStyleArray($array) 161 { 162 return array('font' => $array); 163 } 164 165 /** 166 * Apply styles from array 167 * 168 * <code> 169 * $objPHPExcel->getActiveSheet()->getStyle('B2')->getFont()->applyFromArray( 170 * array( 171 * 'name' => 'Arial', 172 * 'bold' => TRUE, 173 * 'italic' => FALSE, 174 * 'underline' => PHPExcel_Style_Font::UNDERLINE_DOUBLE, 175 * 'strike' => FALSE, 176 * 'color' => array( 177 * 'rgb' => '808080' 178 * ) 179 * ) 180 * ); 181 * </code> 182 * 183 * @param array $pStyles Array containing style information 184 * @throws PHPExcel_Exception 185 * @return PHPExcel_Style_Font 186 */ 187 public function applyFromArray($pStyles = null) { 188 if (is_array($pStyles)) { 189 if ($this->_isSupervisor) { 190 $this->getActiveSheet()->getStyle($this->getSelectedCells())->applyFromArray($this->getStyleArray($pStyles)); 191 } else { 192 if (array_key_exists('name', $pStyles)) { 193 $this->setName($pStyles['name']); 194 } 195 if (array_key_exists('bold', $pStyles)) { 196 $this->setBold($pStyles['bold']); 197 } 198 if (array_key_exists('italic', $pStyles)) { 199 $this->setItalic($pStyles['italic']); 200 } 201 if (array_key_exists('superScript', $pStyles)) { 202 $this->setSuperScript($pStyles['superScript']); 203 } 204 if (array_key_exists('subScript', $pStyles)) { 205 $this->setSubScript($pStyles['subScript']); 206 } 207 if (array_key_exists('underline', $pStyles)) { 208 $this->setUnderline($pStyles['underline']); 209 } 210 if (array_key_exists('strike', $pStyles)) { 211 $this->setStrikethrough($pStyles['strike']); 212 } 213 if (array_key_exists('color', $pStyles)) { 214 $this->getColor()->applyFromArray($pStyles['color']); 215 } 216 if (array_key_exists('size', $pStyles)) { 217 $this->setSize($pStyles['size']); 218 } 219 } 220 } else { 221 throw new PHPExcel_Exception("Invalid style array passed."); 222 } 223 return $this; 224 } 225 226 /** 227 * Get Name 228 * 229 * @return string 230 */ 231 public function getName() { 232 if ($this->_isSupervisor) { 233 return $this->getSharedComponent()->getName(); 234 } 235 return $this->_name; 236 } 237 238 /** 239 * Set Name 240 * 241 * @param string $pValue 242 * @return PHPExcel_Style_Font 243 */ 244 public function setName($pValue = 'Calibri') { 245 if ($pValue == '') { 246 $pValue = 'Calibri'; 247 } 248 if ($this->_isSupervisor) { 249 $styleArray = $this->getStyleArray(array('name' => $pValue)); 250 $this->getActiveSheet()->getStyle($this->getSelectedCells())->applyFromArray($styleArray); 251 } else { 252 $this->_name = $pValue; 253 } 254 return $this; 255 } 256 257 /** 258 * Get Size 259 * 260 * @return double 261 */ 262 public function getSize() { 263 if ($this->_isSupervisor) { 264 return $this->getSharedComponent()->getSize(); 265 } 266 return $this->_size; 267 } 268 269 /** 270 * Set Size 271 * 272 * @param double $pValue 273 * @return PHPExcel_Style_Font 274 */ 275 public function setSize($pValue = 10) { 276 if ($pValue == '') { 277 $pValue = 10; 278 } 279 if ($this->_isSupervisor) { 280 $styleArray = $this->getStyleArray(array('size' => $pValue)); 281 $this->getActiveSheet()->getStyle($this->getSelectedCells())->applyFromArray($styleArray); 282 } else { 283 $this->_size = $pValue; 284 } 285 return $this; 286 } 287 288 /** 289 * Get Bold 290 * 291 * @return boolean 292 */ 293 public function getBold() { 294 if ($this->_isSupervisor) { 295 return $this->getSharedComponent()->getBold(); 296 } 297 return $this->_bold; 298 } 299 300 /** 301 * Set Bold 302 * 303 * @param boolean $pValue 304 * @return PHPExcel_Style_Font 305 */ 306 public function setBold($pValue = false) { 307 if ($pValue == '') { 308 $pValue = false; 309 } 310 if ($this->_isSupervisor) { 311 $styleArray = $this->getStyleArray(array('bold' => $pValue)); 312 $this->getActiveSheet()->getStyle($this->getSelectedCells())->applyFromArray($styleArray); 313 } else { 314 $this->_bold = $pValue; 315 } 316 return $this; 317 } 318 319 /** 320 * Get Italic 321 * 322 * @return boolean 323 */ 324 public function getItalic() { 325 if ($this->_isSupervisor) { 326 return $this->getSharedComponent()->getItalic(); 327 } 328 return $this->_italic; 329 } 330 331 /** 332 * Set Italic 333 * 334 * @param boolean $pValue 335 * @return PHPExcel_Style_Font 336 */ 337 public function setItalic($pValue = false) { 338 if ($pValue == '') { 339 $pValue = false; 340 } 341 if ($this->_isSupervisor) { 342 $styleArray = $this->getStyleArray(array('italic' => $pValue)); 343 $this->getActiveSheet()->getStyle($this->getSelectedCells())->applyFromArray($styleArray); 344 } else { 345 $this->_italic = $pValue; 346 } 347 return $this; 348 } 349 350 /** 351 * Get SuperScript 352 * 353 * @return boolean 354 */ 355 public function getSuperScript() { 356 if ($this->_isSupervisor) { 357 return $this->getSharedComponent()->getSuperScript(); 358 } 359 return $this->_superScript; 360 } 361 362 /** 363 * Set SuperScript 364 * 365 * @param boolean $pValue 366 * @return PHPExcel_Style_Font 367 */ 368 public function setSuperScript($pValue = false) { 369 if ($pValue == '') { 370 $pValue = false; 371 } 372 if ($this->_isSupervisor) { 373 $styleArray = $this->getStyleArray(array('superScript' => $pValue)); 374 $this->getActiveSheet()->getStyle($this->getSelectedCells())->applyFromArray($styleArray); 375 } else { 376 $this->_superScript = $pValue; 377 $this->_subScript = !$pValue; 378 } 379 return $this; 380 } 381 382 /** 383 * Get SubScript 384 * 385 * @return boolean 386 */ 387 public function getSubScript() { 388 if ($this->_isSupervisor) { 389 return $this->getSharedComponent()->getSubScript(); 390 } 391 return $this->_subScript; 392 } 393 394 /** 395 * Set SubScript 396 * 397 * @param boolean $pValue 398 * @return PHPExcel_Style_Font 399 */ 400 public function setSubScript($pValue = false) { 401 if ($pValue == '') { 402 $pValue = false; 403 } 404 if ($this->_isSupervisor) { 405 $styleArray = $this->getStyleArray(array('subScript' => $pValue)); 406 $this->getActiveSheet()->getStyle($this->getSelectedCells())->applyFromArray($styleArray); 407 } else { 408 $this->_subScript = $pValue; 409 $this->_superScript = !$pValue; 410 } 411 return $this; 412 } 413 414 /** 415 * Get Underline 416 * 417 * @return string 418 */ 419 public function getUnderline() { 420 if ($this->_isSupervisor) { 421 return $this->getSharedComponent()->getUnderline(); 422 } 423 return $this->_underline; 424 } 425 426 /** 427 * Set Underline 428 * 429 * @param string|boolean $pValue PHPExcel_Style_Font underline type 430 * If a boolean is passed, then TRUE equates to UNDERLINE_SINGLE, 431 * false equates to UNDERLINE_NONE 432 * @return PHPExcel_Style_Font 433 */ 434 public function setUnderline($pValue = self::UNDERLINE_NONE) { 435 if (is_bool($pValue)) { 436 $pValue = ($pValue) ? self::UNDERLINE_SINGLE : self::UNDERLINE_NONE; 437 } elseif ($pValue == '') { 438 $pValue = self::UNDERLINE_NONE; 439 } 440 if ($this->_isSupervisor) { 441 $styleArray = $this->getStyleArray(array('underline' => $pValue)); 442 $this->getActiveSheet()->getStyle($this->getSelectedCells())->applyFromArray($styleArray); 443 } else { 444 $this->_underline = $pValue; 445 } 446 return $this; 447 } 448 449 /** 450 * Get Strikethrough 451 * 452 * @return boolean 453 */ 454 public function getStrikethrough() { 455 if ($this->_isSupervisor) { 456 return $this->getSharedComponent()->getStrikethrough(); 457 } 458 return $this->_strikethrough; 459 } 460 461 /** 462 * Set Strikethrough 463 * 464 * @param boolean $pValue 465 * @return PHPExcel_Style_Font 466 */ 467 public function setStrikethrough($pValue = false) { 468 if ($pValue == '') { 469 $pValue = false; 470 } 471 if ($this->_isSupervisor) { 472 $styleArray = $this->getStyleArray(array('strike' => $pValue)); 473 $this->getActiveSheet()->getStyle($this->getSelectedCells())->applyFromArray($styleArray); 474 } else { 475 $this->_strikethrough = $pValue; 476 } 477 return $this; 478 } 479 480 /** 481 * Get Color 482 * 483 * @return PHPExcel_Style_Color 484 */ 485 public function getColor() { 486 return $this->_color; 487 } 488 489 /** 490 * Set Color 491 * 492 * @param PHPExcel_Style_Color $pValue 493 * @throws PHPExcel_Exception 494 * @return PHPExcel_Style_Font 495 */ 496 public function setColor(PHPExcel_Style_Color $pValue = null) { 497 // make sure parameter is a real color and not a supervisor 498 $color = $pValue->getIsSupervisor() ? $pValue->getSharedComponent() : $pValue; 499 500 if ($this->_isSupervisor) { 501 $styleArray = $this->getColor()->getStyleArray(array('argb' => $color->getARGB())); 502 $this->getActiveSheet()->getStyle($this->getSelectedCells())->applyFromArray($styleArray); 503 } else { 504 $this->_color = $color; 505 } 506 return $this; 507 } 508 509 /** 510 * Get hash code 511 * 512 * @return string Hash code 513 */ 514 public function getHashCode() { 515 if ($this->_isSupervisor) { 516 return $this->getSharedComponent()->getHashCode(); 517 } 518 return md5( 519 $this->_name 520 . $this->_size 521 . ($this->_bold ? 't' : 'f') 522 . ($this->_italic ? 't' : 'f') 523 . ($this->_superScript ? 't' : 'f') 524 . ($this->_subScript ? 't' : 'f') 525 . $this->_underline 526 . ($this->_strikethrough ? 't' : 'f') 527 . $this->_color->getHashCode() 528 . __CLASS__ 529 ); 530 } 531 532 }
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 |