# ErrorDrawer.class.php

Go to the documentation of this file.

    00001 <?php
    00002 /***************************************************************************
    00003  *   Copyright (C) 2004-2007 by Dmitry E. Demidov                          *
    00004  *                                                                         *
    00005  *   This program is free software; you can redistribute it and/or modify  *
    00006  *   it under the terms of the GNU Lesser General Public License as        *
    00007  *   published by the Free Software Foundation; either version 3 of the    *
    00008  *   License, or (at your option) any later version.                       *
    00009  *                                                                         *
    00010  ***************************************************************************/
    00011
    00015     final class ErrorDrawer
    00016     {
    00017         const FONT_SIZE = 4;
    00018
    00019         private static $drawError   = true;
    00020
    00021         public static function setDrawError($drawError = false)
    00022         {
    00023             self::$drawError = $drawError;
    00024         }
    00025
    00026         public static function isDrawError()
    00027         {
    00028             return self::$drawError;
    00029         }
    00030
    00031         public function __construct($turingImage)
    00032         {
    00033             $this->turingImage = $turingImage;
    00034         }
    00035
    00039         public function draw($string = 'ERROR!')
    00040         {
    00041             if (!ErrorDrawer::isDrawError())
    00042                 return $this;
    00043
    00044             $y = round(
    00045                 $this->turingImage->getHeight() / 2
    00046                 - imagefontheight(ErrorDrawer::FONT_SIZE) / 2
    00047             );
    00048
    00049             $textWidth = imagefontwidth(ErrorDrawer::FONT_SIZE) * strlen($string);
    00050
    00051             if ($this->turingImage->getWidth() > $textWidth)
    00052                 $x = round(($this->turingImage->getWidth() - $textWidth) / 2);
    00053             else
    00054                 $x = 0;
    00055
    00056             $color = $this->turingImage->getOneCharacterColor();
    00057
    00058             imagestring(
    00059                 $this->turingImage->getImageId(),
    00060                 ErrorDrawer::FONT_SIZE,
    00061                 $x,
    00062                 $y,
    00063                 $string,
    00064                 $color
    00065             );
    00066
    00067             return $this;
    00068         }
    00069     }
    00070 ?>