* @copyright Copyright (C) 2003, 2004 Jesper Veggerby Hansen * @license http://www.gnu.org/copyleft/lesser.html LGPL License 2.1 * @version CVS: $Id$ * @link http://pear.php.net/package/Image_Graph */ /** * Include file Image/Graph/Element.php */ require_once 'Image/Graph/Element.php'; /** * Displays a logo on the canvas. * * By default the logo is displayed in the top-right corner of the canvas. * * @category Images * @package Image_Graph * @subpackage Logo * @author Jesper Veggerby * @copyright Copyright (C) 2003, 2004 Jesper Veggerby Hansen * @license http://www.gnu.org/copyleft/lesser.html LGPL License 2.1 * @version Release: @package_version@ * @link http://pear.php.net/package/Image_Graph */ class Image_Graph_Logo extends Image_Graph_Element { /** * The file name * @var stirng * @access private */ var $_filename; /** * The GD Image resource * @var resource * @access private */ var $_image; /** * Alignment of the logo * @var int * @access private */ var $_alignment; /** * Logo [Constructor] * * @param string $filename The filename and path of the image to use for logo */ function Image_Graph_Logo($filename, $alignment = IMAGE_GRAPH_ALIGN_TOP_RIGHT) { parent::Image_Graph_Element(); $this->_filename = $filename; $this->_alignment = $alignment; } /** * Sets the parent. The parent chain should ultimately be a GraPHP object * * @see Image_Graph * @param Image_Graph_Common $parent The parent * @access private */ function _setParent(& $parent) { parent::_setParent($parent); $this->_setCoords( $this->_parent->_left, $this->_parent->_top, $this->_parent->_right, $this->_parent->_bottom ); } /** * Output the logo * * @return bool Was the output 'good' (true) or 'bad' (false). * @access private */ function _done() { if (parent::_done() === false) { return false; } $align = array(); if ($this->_alignment & IMAGE_GRAPH_ALIGN_LEFT) { $x = $this->_parent->_left + 2; $align['horizontal'] = 'left'; } elseif ($this->_alignment & IMAGE_GRAPH_ALIGN_RIGHT) { $x = $this->_parent->_right - 2; $align['horizontal'] = 'right'; } else { $x = ($this->_parent->_left + $this->_parent->_right) / 2; $align['horizontal'] = 'center'; } if ($this->_alignment & IMAGE_GRAPH_ALIGN_TOP) { $y = $this->_parent->_top + 2; $align['vertical'] = 'top'; } elseif ($this->_alignment & IMAGE_GRAPH_ALIGN_BOTTOM) { $y = $this->_parent->_bottom - 2; $align['vertical'] = 'bottom'; } else { $y = ($this->_parent->_top + $this->_parent->_bottom) / 2; $align['vertical'] = 'center'; } $this->_canvas->image( array( 'x' => $x, 'y' => $y, 'filename' => $this->_filename, 'alignment' => $align ) ); return true; } } ?>