You are here

class PHPExcel_Worksheet_BaseDrawing in Loft Data Grids 7.2

Same name and namespace in other branches
  1. 6.2 vendor/phpoffice/phpexcel/Classes/PHPExcel/Worksheet/BaseDrawing.php \PHPExcel_Worksheet_BaseDrawing

PHPExcel_Worksheet_BaseDrawing

@category PHPExcel @package PHPExcel_Worksheet @copyright Copyright (c) 2006 - 2014 PHPExcel (http://www.codeplex.com/PHPExcel)

Hierarchy

Expanded class hierarchy of PHPExcel_Worksheet_BaseDrawing

File

vendor/phpoffice/phpexcel/Classes/PHPExcel/Worksheet/BaseDrawing.php, line 36

View source
class PHPExcel_Worksheet_BaseDrawing implements PHPExcel_IComparable {

  /**
   * Image counter
   *
   * @var int
   */
  private static $_imageCounter = 0;

  /**
   * Image index
   *
   * @var int
   */
  private $_imageIndex = 0;

  /**
   * Name
   *
   * @var string
   */
  protected $_name;

  /**
   * Description
   *
   * @var string
   */
  protected $_description;

  /**
   * Worksheet
   *
   * @var PHPExcel_Worksheet
   */
  protected $_worksheet;

  /**
   * Coordinates
   *
   * @var string
   */
  protected $_coordinates;

  /**
   * Offset X
   *
   * @var int
   */
  protected $_offsetX;

  /**
   * Offset Y
   *
   * @var int
   */
  protected $_offsetY;

  /**
   * Width
   *
   * @var int
   */
  protected $_width;

  /**
   * Height
   *
   * @var int
   */
  protected $_height;

  /**
   * Proportional resize
   *
   * @var boolean
   */
  protected $_resizeProportional;

  /**
   * Rotation
   *
   * @var int
   */
  protected $_rotation;

  /**
   * Shadow
   *
   * @var PHPExcel_Worksheet_Drawing_Shadow
   */
  protected $_shadow;

  /**
   * Create a new PHPExcel_Worksheet_BaseDrawing
   */
  public function __construct() {

    // Initialise values
    $this->_name = '';
    $this->_description = '';
    $this->_worksheet = null;
    $this->_coordinates = 'A1';
    $this->_offsetX = 0;
    $this->_offsetY = 0;
    $this->_width = 0;
    $this->_height = 0;
    $this->_resizeProportional = true;
    $this->_rotation = 0;
    $this->_shadow = new PHPExcel_Worksheet_Drawing_Shadow();

    // Set image index
    self::$_imageCounter++;
    $this->_imageIndex = self::$_imageCounter;
  }

  /**
   * Get image index
   *
   * @return int
   */
  public function getImageIndex() {
    return $this->_imageIndex;
  }

  /**
   * Get Name
   *
   * @return string
   */
  public function getName() {
    return $this->_name;
  }

  /**
   * Set Name
   *
   * @param string $pValue
   * @return PHPExcel_Worksheet_BaseDrawing
   */
  public function setName($pValue = '') {
    $this->_name = $pValue;
    return $this;
  }

  /**
   * Get Description
   *
   * @return string
   */
  public function getDescription() {
    return $this->_description;
  }

  /**
   * Set Description
   *
   * @param string $pValue
   * @return PHPExcel_Worksheet_BaseDrawing
   */
  public function setDescription($pValue = '') {
    $this->_description = $pValue;
    return $this;
  }

  /**
   * Get Worksheet
   *
   * @return PHPExcel_Worksheet
   */
  public function getWorksheet() {
    return $this->_worksheet;
  }

  /**
   * Set Worksheet
   *
   * @param 	PHPExcel_Worksheet 	$pValue
   * @param 	bool				$pOverrideOld	If a Worksheet has already been assigned, overwrite it and remove image from old Worksheet?
   * @throws 	PHPExcel_Exception
   * @return PHPExcel_Worksheet_BaseDrawing
   */
  public function setWorksheet(PHPExcel_Worksheet $pValue = null, $pOverrideOld = false) {
    if (is_null($this->_worksheet)) {

      // Add drawing to PHPExcel_Worksheet
      $this->_worksheet = $pValue;
      $this->_worksheet
        ->getCell($this->_coordinates);
      $this->_worksheet
        ->getDrawingCollection()
        ->append($this);
    }
    else {
      if ($pOverrideOld) {

        // Remove drawing from old PHPExcel_Worksheet
        $iterator = $this->_worksheet
          ->getDrawingCollection()
          ->getIterator();
        while ($iterator
          ->valid()) {
          if ($iterator
            ->current()
            ->getHashCode() == $this
            ->getHashCode()) {
            $this->_worksheet
              ->getDrawingCollection()
              ->offsetUnset($iterator
              ->key());
            $this->_worksheet = null;
            break;
          }
        }

        // Set new PHPExcel_Worksheet
        $this
          ->setWorksheet($pValue);
      }
      else {
        throw new PHPExcel_Exception("A PHPExcel_Worksheet has already been assigned. Drawings can only exist on one PHPExcel_Worksheet.");
      }
    }
    return $this;
  }

  /**
   * Get Coordinates
   *
   * @return string
   */
  public function getCoordinates() {
    return $this->_coordinates;
  }

  /**
   * Set Coordinates
   *
   * @param string $pValue
   * @return PHPExcel_Worksheet_BaseDrawing
   */
  public function setCoordinates($pValue = 'A1') {
    $this->_coordinates = $pValue;
    return $this;
  }

  /**
   * Get OffsetX
   *
   * @return int
   */
  public function getOffsetX() {
    return $this->_offsetX;
  }

  /**
   * Set OffsetX
   *
   * @param int $pValue
   * @return PHPExcel_Worksheet_BaseDrawing
   */
  public function setOffsetX($pValue = 0) {
    $this->_offsetX = $pValue;
    return $this;
  }

  /**
   * Get OffsetY
   *
   * @return int
   */
  public function getOffsetY() {
    return $this->_offsetY;
  }

  /**
   * Set OffsetY
   *
   * @param int $pValue
   * @return PHPExcel_Worksheet_BaseDrawing
   */
  public function setOffsetY($pValue = 0) {
    $this->_offsetY = $pValue;
    return $this;
  }

  /**
   * Get Width
   *
   * @return int
   */
  public function getWidth() {
    return $this->_width;
  }

  /**
   * Set Width
   *
   * @param int $pValue
   * @return PHPExcel_Worksheet_BaseDrawing
   */
  public function setWidth($pValue = 0) {

    // Resize proportional?
    if ($this->_resizeProportional && $pValue != 0) {
      $ratio = $this->_height / ($this->_width != 0 ? $this->_width : 1);
      $this->_height = round($ratio * $pValue);
    }

    // Set width
    $this->_width = $pValue;
    return $this;
  }

  /**
   * Get Height
   *
   * @return int
   */
  public function getHeight() {
    return $this->_height;
  }

  /**
   * Set Height
   *
   * @param int $pValue
   * @return PHPExcel_Worksheet_BaseDrawing
   */
  public function setHeight($pValue = 0) {

    // Resize proportional?
    if ($this->_resizeProportional && $pValue != 0) {
      $ratio = $this->_width / ($this->_height != 0 ? $this->_height : 1);
      $this->_width = round($ratio * $pValue);
    }

    // Set height
    $this->_height = $pValue;
    return $this;
  }

  /**
   * Set width and height with proportional resize
   * Example:
   * <code>
   * $objDrawing->setResizeProportional(true);
   * $objDrawing->setWidthAndHeight(160,120);
   * </code>
   *
   * @author Vincent@luo MSN:kele_100@hotmail.com
   * @param int $width
   * @param int $height
   * @return PHPExcel_Worksheet_BaseDrawing
   */
  public function setWidthAndHeight($width = 0, $height = 0) {
    $xratio = $width / ($this->_width != 0 ? $this->_width : 1);
    $yratio = $height / ($this->_height != 0 ? $this->_height : 1);
    if ($this->_resizeProportional && !($width == 0 || $height == 0)) {
      if ($xratio * $this->_height < $height) {
        $this->_height = ceil($xratio * $this->_height);
        $this->_width = $width;
      }
      else {
        $this->_width = ceil($yratio * $this->_width);
        $this->_height = $height;
      }
    }
    else {
      $this->_width = $width;
      $this->_height = $height;
    }
    return $this;
  }

  /**
   * Get ResizeProportional
   *
   * @return boolean
   */
  public function getResizeProportional() {
    return $this->_resizeProportional;
  }

  /**
   * Set ResizeProportional
   *
   * @param boolean $pValue
   * @return PHPExcel_Worksheet_BaseDrawing
   */
  public function setResizeProportional($pValue = true) {
    $this->_resizeProportional = $pValue;
    return $this;
  }

  /**
   * Get Rotation
   *
   * @return int
   */
  public function getRotation() {
    return $this->_rotation;
  }

  /**
   * Set Rotation
   *
   * @param int $pValue
   * @return PHPExcel_Worksheet_BaseDrawing
   */
  public function setRotation($pValue = 0) {
    $this->_rotation = $pValue;
    return $this;
  }

  /**
   * Get Shadow
   *
   * @return PHPExcel_Worksheet_Drawing_Shadow
   */
  public function getShadow() {
    return $this->_shadow;
  }

  /**
   * Set Shadow
   *
   * @param 	PHPExcel_Worksheet_Drawing_Shadow $pValue
   * @throws 	PHPExcel_Exception
   * @return PHPExcel_Worksheet_BaseDrawing
   */
  public function setShadow(PHPExcel_Worksheet_Drawing_Shadow $pValue = null) {
    $this->_shadow = $pValue;
    return $this;
  }

  /**
   * Get hash code
   *
   * @return string	Hash code
   */
  public function getHashCode() {
    return md5($this->_name . $this->_description . $this->_worksheet
      ->getHashCode() . $this->_coordinates . $this->_offsetX . $this->_offsetY . $this->_width . $this->_height . $this->_rotation . $this->_shadow
      ->getHashCode() . __CLASS__);
  }

  /**
   * Implement PHP __clone to create a deep clone, not just a shallow copy.
   */
  public function __clone() {
    $vars = get_object_vars($this);
    foreach ($vars as $key => $value) {
      if (is_object($value)) {
        $this->{$key} = clone $value;
      }
      else {
        $this->{$key} = $value;
      }
    }
  }

}

Members

Namesort descending Modifiers Type Description Overrides
PHPExcel_Worksheet_BaseDrawing::$_coordinates protected property * Coordinates * *
PHPExcel_Worksheet_BaseDrawing::$_description protected property * Description * *
PHPExcel_Worksheet_BaseDrawing::$_height protected property * Height * * 1
PHPExcel_Worksheet_BaseDrawing::$_imageCounter private static property * Image counter * *
PHPExcel_Worksheet_BaseDrawing::$_imageIndex private property * Image index * *
PHPExcel_Worksheet_BaseDrawing::$_name protected property * Name * * 1
PHPExcel_Worksheet_BaseDrawing::$_offsetX protected property * Offset X * * 1
PHPExcel_Worksheet_BaseDrawing::$_offsetY protected property * Offset Y * * 1
PHPExcel_Worksheet_BaseDrawing::$_resizeProportional protected property * Proportional resize * * 1
PHPExcel_Worksheet_BaseDrawing::$_rotation protected property * Rotation * *
PHPExcel_Worksheet_BaseDrawing::$_shadow protected property * Shadow * *
PHPExcel_Worksheet_BaseDrawing::$_width protected property * Width * * 1
PHPExcel_Worksheet_BaseDrawing::$_worksheet protected property * Worksheet * *
PHPExcel_Worksheet_BaseDrawing::getCoordinates public function Get Coordinates
PHPExcel_Worksheet_BaseDrawing::getDescription public function Get Description
PHPExcel_Worksheet_BaseDrawing::getHashCode public function * Get hash code * * Overrides PHPExcel_IComparable::getHashCode 2
PHPExcel_Worksheet_BaseDrawing::getHeight public function Get Height 1
PHPExcel_Worksheet_BaseDrawing::getImageIndex public function Get image index
PHPExcel_Worksheet_BaseDrawing::getName public function Get Name 1
PHPExcel_Worksheet_BaseDrawing::getOffsetX public function Get OffsetX 1
PHPExcel_Worksheet_BaseDrawing::getOffsetY public function Get OffsetY 1
PHPExcel_Worksheet_BaseDrawing::getResizeProportional public function Get ResizeProportional 1
PHPExcel_Worksheet_BaseDrawing::getRotation public function Get Rotation
PHPExcel_Worksheet_BaseDrawing::getShadow public function Get Shadow
PHPExcel_Worksheet_BaseDrawing::getWidth public function Get Width 1
PHPExcel_Worksheet_BaseDrawing::getWorksheet public function Get Worksheet
PHPExcel_Worksheet_BaseDrawing::setCoordinates public function Set Coordinates
PHPExcel_Worksheet_BaseDrawing::setDescription public function Set Description
PHPExcel_Worksheet_BaseDrawing::setHeight public function Set Height 1
PHPExcel_Worksheet_BaseDrawing::setName public function Set Name 1
PHPExcel_Worksheet_BaseDrawing::setOffsetX public function Set OffsetX 1
PHPExcel_Worksheet_BaseDrawing::setOffsetY public function Set OffsetY 1
PHPExcel_Worksheet_BaseDrawing::setResizeProportional public function Set ResizeProportional 1
PHPExcel_Worksheet_BaseDrawing::setRotation public function Set Rotation
PHPExcel_Worksheet_BaseDrawing::setShadow public function Set Shadow
PHPExcel_Worksheet_BaseDrawing::setWidth public function Set Width 1
PHPExcel_Worksheet_BaseDrawing::setWidthAndHeight public function Set width and height with proportional resize * Example: * <code> * $objDrawing->setResizeProportional(true); * $objDrawing->setWidthAndHeight(160,120); * </code> * @author Vincent@luo MSN:kele_100@hotmail.com 1
PHPExcel_Worksheet_BaseDrawing::setWorksheet public function Set Worksheet
PHPExcel_Worksheet_BaseDrawing::__clone public function * Implement PHP __clone to create a deep clone, not just a shallow copy. 2
PHPExcel_Worksheet_BaseDrawing::__construct public function Create a new PHPExcel_Worksheet_BaseDrawing 2