Overview

Namespaces

  • Scene7
    • Commands
      • Layer
    • Definitions
    • Helpers
      • Html
        • Attributes
    • Requests

Traits

  • BackgroundColor
  • BlendMode
  • Blur
  • Brightness
  • ClipPath
  • Color
  • ColorBalance
  • Colorize
  • Contrast
  • Effect
  • Extend
  • Flip
  • Grow
  • Hide
  • Hue
  • Invert
  • Map
  • Noise
  • Opacity
  • Origin
  • PathAttributes
  • PathEmbed
  • Position
  • Rotate
  • Saturation
  • Sharpen
  • Size
  • Source
  • Text
  • TextAngle
  • TextAttributes
  • TextFlowPath
  • TextPath
  • TextPhotoshopCompatible
  • Overview
  • Namespace
  • Class
 1:  2:  3:  4:  5:  6:  7:  8:  9: 10: 11: 12: 13: 14: 15: 16: 17: 18: 19: 20: 21: 22: 23: 24: 25: 26: 27: 28: 29: 30: 31: 32: 33: 34: 35: 36: 37: 38: 39: 40: 41: 42: 43: 44: 45: 46: 47: 48: 49: 50: 51: 52: 53: 54: 55: 56: 57: 58: 59: 60: 61: 62: 63: 64: 65: 66: 67: 68: 69: 70: 71: 72: 73: 74: 75: 76: 77: 
<?php

namespace Scene7\Commands\Layer;

use Scene7\Definitions\AntiAliasingModes;
use Scene7\Definitions\TextResolutionModes;
use Scene7\Definitions\WordWrap;

trait TextAttributes
{
    public function setTextAttributes($resolution, $antiAliasing = null, $resolutionMode = null, $wordWrap = null)
    {
        $resolution = (int) $resolution;
        if ($resolution <= 0) {
            throw new \InvalidArgumentException('Invalid text resolution');
        }

        $attr = $resolution;

        if ($antiAliasing !== null || $resolutionMode !== null || $wordWrap !== null) {
            $antiAliasing = $antiAliasing ?: AntiAliasingModes::NORM;
            if (!in_array($antiAliasing, $this->getAllowedAntiAliasingModes())) {
                throw new \InvalidArgumentException('Invalid anti-aliasing mode');
            }

            $attr .= ',' . $antiAliasing;
        }

        if ($resolutionMode !== null || $wordWrap !== null) {
            if ($resolutionMode !== null && !in_array($resolutionMode, $this->getAllowedTextResolutionModes())) {
                throw new \InvalidArgumentException('Invalid text resolution mode');
            }

            $attr .= ',' . $resolutionMode;
        }

        if ($wordWrap !== null) {
            if (!in_array($wordWrap, $this->getAllowedWordWrapMode())) {
                throw new \InvalidArgumentException('Invalid word-wrap mode');
            }

            $attr .= ',' . $wordWrap;
        }

        $this->addCommand(['textAttr' => $attr]);
        return $this;
    }

    public function getAllowedAntiAliasingModes()
    {
        return [
            AntiAliasingModes::CRISP,
            AntiAliasingModes::NORM,
            AntiAliasingModes::OFF,
            AntiAliasingModes::SHARP,
            AntiAliasingModes::STRONG,
        ];
    }

    public function getAllowedTextResolutionModes()
    {
        return [
            TextResolutionModes::AUTO,
            TextResolutionModes::FIXED,
            TextResolutionModes::MAX,
        ];
    }

    public function getAllowedWordWrapMode()
    {
        return [
            WordWrap::NO_WRAP,
            WordWrap::NON_BREAKING,
            WordWrap::WRAP,
        ];
    }
}
API documentation generated by ApiGen