Пример #1
0
 /**
  * @param Style $styleToUpdate (passed as reference)
  * @param Style $baseStyle
  * @return void
  */
 private function mergeFontStyles($styleToUpdate, $baseStyle)
 {
     if (!$this->hasSetFontBold && $baseStyle->isFontBold()) {
         $styleToUpdate->setFontBold();
     }
     if (!$this->hasSetFontItalic && $baseStyle->isFontItalic()) {
         $styleToUpdate->setFontItalic();
     }
     if (!$this->hasSetFontUnderline && $baseStyle->isFontUnderline()) {
         $styleToUpdate->setFontUnderline();
     }
     if (!$this->hasSetFontStrikethrough && $baseStyle->isFontStrikethrough()) {
         $styleToUpdate->setFontStrikethrough();
     }
 }
Пример #2
0
 /**
  * Merges the current style with the given style, using the given style as a base. This means that:
  *   - if current style and base style both have property A set, use current style property's value
  *   - if current style has property A set but base style does not, use current style property's value
  *   - if base style has property A set but current style does not, use base style property's value
  *
  * @NOTE: This function returns a new style.
  *
  * @param Style $baseStyle
  * @return Style New style corresponding to the merge of the 2 styles
  */
 public function mergeWith($baseStyle)
 {
     $mergedStyle = clone $this;
     if (!$this->hasSetFontBold && $baseStyle->isFontBold()) {
         $mergedStyle->setFontBold();
     }
     if (!$this->hasSetFontItalic && $baseStyle->isFontItalic()) {
         $mergedStyle->setFontItalic();
     }
     if (!$this->hasSetFontUnderline && $baseStyle->isFontUnderline()) {
         $mergedStyle->setFontUnderline();
     }
     if (!$this->hasSetFontStrikethrough && $baseStyle->isFontStrikethrough()) {
         $mergedStyle->setFontStrikethrough();
     }
     if (!$this->hasSetFontSize && $baseStyle->getFontSize() !== self::DEFAULT_FONT_SIZE) {
         $mergedStyle->setFontSize($baseStyle->getFontSize());
     }
     if (!$this->hasSetFontSize && $baseStyle->getFontColor() !== self::DEFAULT_FONT_COLOR) {
         $mergedStyle->setFontColor($baseStyle->getFontColor());
     }
     if (!$this->hasSetFontName && $baseStyle->getFontName() !== self::DEFAULT_FONT_NAME) {
         $mergedStyle->setFontName($baseStyle->getFontName());
     }
     if (!$this->hasSetWrapText && $baseStyle->shouldWrapText()) {
         $mergedStyle->setShouldWrapText();
     }
     return $mergedStyle;
 }