Source for file Component.class.php
Documentation is available at Component.class.php 
 * This work is hereby released into the Public Domain.  
 * To view a copy of the public domain dedication,  
 * visit http://creativecommons.org/licenses/publicdomain/ or send a letter to  
 * Creative Commons, 559 Nathan Abbott Way, Stanford, California 94305, USA.  
require_once dirname(__FILE__ ). "/Graph.class.php";  
 * A graph can contain some groups of components  
 * @package linea21.externals  
     * Components of this group  
     * Build the component group  
    public function __construct() {  
     * Add a component to the group  
     * @param awComponent $component A component  
    public function add(awComponent $component) {  
     * Position X of the center the graph (from 0 to 1)  
     * Position Y of the center the graph (from 0 to 1)  
     * Component absolute width (in pixels)  
     * Component absolute height (in pixels)  
     * Left-top corner Y position  
     * Left-top corner X position  
     * Component background color  
     * Adjust automatically the component ?  
    public function __construct() {  
     * Adjust automatically the component ?  
    public function auto($auto) {  
        $this->auto = (bool) $auto;  
     * Change the size of the component  
     * @param int $width Component width (from 0 to 1)  
     * @param int $height Component height (from 0 to 1)  
    public function setSize($width, $height) {  
        $this->width = (float) $width;  
        $this->height = (float) $height;  
     * Change the absolute size of the component  
     * @param int $w Component width (in pixels)  
     * @param int $h Component height (in pixels)  
     * Change component background color  
     * @param awColor $color (can be null)  
        if($color ===  NULL or $color instanceof  awColor) {  
     * Change component background gradient  
     * @param awGradient $gradient (can be null)  
        if($gradient ===  NULL or $gradient instanceof  awGradient) {  
     * Change component background image  
     * @param awImage $image (can be null)  
        if($image ===  NULL or $image instanceof  awImage) {  
     * Return the component background  
     * @return Color, Gradient  
     * Change component padding  
     * @param int $left Padding in pixels (NULL to keep old value)  
     * @param int $right Padding in pixels (NULL to keep old value)  
     * @param int $top Padding in pixels (NULL to keep old value)  
     * @param int $bottom Padding in pixels (NULL to keep old value)  
    public function setPadding($left =  NULL, $right =  NULL, $top =  NULL, $bottom =  NULL) {  
        $this->padding->set($left, $right, $top, $bottom);  
     * @param float $left Space in % (NULL to keep old value)  
     * @param float $right Space in % (NULL to keep old value)  
     * @param float $bottom Space in % (NULL to keep old value)  
     * @param float $top Space in % (NULL to keep old value)  
    public function setSpace($left =  NULL, $right =  NULL, $bottom =  NULL, $top =  NULL) {  
        $this->space->set($left, $right, $bottom, $top);  
     * Change the absolute position of the component on the graph  
     * @var int $x Left-top corner X position  
     * @var int $y Left-top corner Y position  
        $this->left = (int) $left;  
     * Set the center of the component  
     * @param int $x Position X of the center of the component  
     * @param int $y Position Y of the center of the component  
     * Get component coords with its padding  
     * @return array Coords of the component  
        $y2 =  $this->h -  $this->padding->bottom;  
        return array($x1, $y1, $x2, $y2);  
     * Init the drawing of the component  
    public function init(awDriver $driver) {  
        // Set component background  
        if($background !==  NULL) {  
            $p2 =  new awPoint($this->w -  1, $this->h -  1);  
            if($background instanceof  awImage) {  
                $driver->filledRectangle(  
     * Finalize the drawing of the component  
    public function finalize(awDriver $driver) {  
        $this->title->draw($driver, $point);  
     * Draw the grid around your component  
     * @return array Coords for the component  
    abstract public function drawEnvelope(awDriver $driver);  
     * Draw the component on the graph  
     * Component should be drawed into specified coords  
     * @param bool $aliasing Use anti-aliasing to draw the component ?  
    abstract public function drawComponent(awDriver $driver, $x1, $y1, $x2, $y2, $aliasing);  
     * Get space width in pixels  
     * @param int $width Component width  
     * @param int $height Component height  
    protected function getSpace($width, $height) {  
        $left = (int) ($width *  $this->space->left /  100);  
        $right = (int) ($width *  $this->space->right /  100);  
        $top = (int) ($height *  $this->space->top /  100);  
        $bottom = (int) ($height *  $this->space->bottom /  100);  
        return array($left, $right, $top, $bottom);  
 
 
        
       |