function pDraw::drawText

5.x pDraw.class.php pDraw::drawText($X, $Y, $Text, $Format = "")
19 calls to pDraw::drawText()
pDraw::drawAreaChart in inc/pchart/pchart/class/pDraw.class.php
pDraw::drawArrowLabel in inc/pchart/pchart/class/pDraw.class.php
pDraw::drawBarChart in inc/pchart/pchart/class/pDraw.class.php
pDraw::drawBezier in inc/pchart/pchart/class/pDraw.class.php
pDraw::drawFilledSplineChart in inc/pchart/pchart/class/pDraw.class.php

... See full list

File

inc/pchart/pchart/class/pDraw.class.php, line 949

Class

pDraw

Code

function drawText($X, $Y, $Text, $Format = "") 
 {
  $R = isset($Format ["R"]) ? $Format ["R"] : $this->FontColorR;
  $G = isset($Format ["G"]) ? $Format ["G"] : $this->FontColorG;
  $B = isset($Format ["B"]) ? $Format ["B"] : $this->FontColorB;
  $Angle = isset($Format ["Angle"]) ? $Format ["Angle"] : 0;
  $Align = isset($Format ["Align"]) ? $Format ["Align"] : TEXT_ALIGN_BOTTOMLEFT;
  $Alpha = isset($Format ["Alpha"]) ? $Format ["Alpha"] : $this->FontColorA;
  $FontName = isset($Format ["FontName"]) ? $Format ["FontName"] : $this->FontName;
  $FontSize = isset($Format ["FontSize"]) ? $Format ["FontSize"] : $this->FontSize;
  $ShowOrigine = isset($Format ["ShowOrigine"]) ? $Format ["ShowOrigine"] : FALSE;
  $TOffset = isset($Format ["TOffset"]) ? $Format ["TOffset"] : 2;
  $DrawBox = isset($Format ["DrawBox"]) ? $Format ["DrawBox"] : FALSE;
  $DrawBoxBorder = isset($Format ["DrawBoxBorder"]) ? $Format ["DrawBoxBorder"] : TRUE;
  $BorderOffset = isset($Format ["BorderOffset"]) ? $Format ["BorderOffset"] : 6;
  $BoxRounded = isset($Format ["BoxRounded"]) ? $Format ["BoxRounded"] : FALSE;
  $RoundedRadius = isset($Format ["RoundedRadius"]) ? $Format ["RoundedRadius"] : 6;
  $BoxR = isset($Format ["BoxR"]) ? $Format ["BoxR"] : 255;
  $BoxG = isset($Format ["BoxG"]) ? $Format ["BoxG"] : 255;
  $BoxB = isset($Format ["BoxB"]) ? $Format ["BoxB"] : 255;
  $BoxAlpha = isset($Format ["BoxAlpha"]) ? $Format ["BoxAlpha"] : 50;
  $BoxSurrounding = isset($Format ["BoxSurrounding"]) ? $Format ["BoxSurrounding"] : "";
  $BoxBorderR = isset($Format ["BoxR"]) ? $Format ["BoxR"] : 0;
  $BoxBorderG = isset($Format ["BoxG"]) ? $Format ["BoxG"] : 0;
  $BoxBorderB = isset($Format ["BoxB"]) ? $Format ["BoxB"] : 0;
  $BoxBorderAlpha = isset($Format ["BoxAlpha"]) ? $Format ["BoxAlpha"] : 50;
  $NoShadow = isset($Format ["NoShadow"]) ? $Format ["NoShadow"] : FALSE;

  $Shadow = $this->Shadow;
  if ($NoShadow) {
    $this->Shadow = FALSE;
  }

  if ($BoxSurrounding != "") {
    $BoxBorderR = $BoxR - $BoxSurrounding;
    $BoxBorderG = $BoxG - $BoxSurrounding;
    $BoxBorderB = $BoxB - $BoxSurrounding;
    $BoxBorderAlpha = $BoxAlpha;
  }

  if ($ShowOrigine) 
   {
    $MyMarkerSettings = array("R" => 255, "G" => 0, "B" => 0, "BorderR" => 255, "BorderB" => 255, "BorderG" => 255, "Size" => 4);
    $this->drawRectangleMarker($X, $Y, $MyMarkerSettings);
  }

  $TxtPos = $this->getTextBox($X, $Y, $FontName, $FontSize, $Angle, $Text);

  if ($DrawBox && ($Angle == 0 || $Angle == 90 || $Angle == 180 || $Angle == 270)) 
   {
    $T [0]["X"] = 0;
    $T [0]["Y"] = 0;
    $T [1]["X"] = 0;
    $T [1]["Y"] = 0;
    $T [2]["X"] = 0;
    $T [2]["Y"] = 0;
    $T [3]["X"] = 0;
    $T [3]["Y"] = 0;
    if ($Angle == 0) {
      $T [0]["X"] = -$TOffset;
      $T [0]["Y"] = $TOffset;
      $T [1]["X"] = $TOffset;
      $T [1]["Y"] = $TOffset;
      $T [2]["X"] = $TOffset;
      $T [2]["Y"] = -$TOffset;
      $T [3]["X"] = -$TOffset;
      $T [3]["Y"] = -$TOffset;
    }

    $X1 = min($TxtPos [0]["X"], $TxtPos [1]["X"], $TxtPos [2]["X"], $TxtPos [3]["X"]) - $BorderOffset + 3;
    $Y1 = min($TxtPos [0]["Y"], $TxtPos [1]["Y"], $TxtPos [2]["Y"], $TxtPos [3]["Y"]) - $BorderOffset;
    $X2 = max($TxtPos [0]["X"], $TxtPos [1]["X"], $TxtPos [2]["X"], $TxtPos [3]["X"]) + $BorderOffset + 3;
    $Y2 = max($TxtPos [0]["Y"], $TxtPos [1]["Y"], $TxtPos [2]["Y"], $TxtPos [3]["Y"]) + $BorderOffset - 3;

    $X1 = $X1 - $TxtPos [$Align]["X"] + $X + $T [0]["X"];
    $Y1 = $Y1 - $TxtPos [$Align]["Y"] + $Y + $T [0]["Y"];
    $X2 = $X2 - $TxtPos [$Align]["X"] + $X + $T [0]["X"];
    $Y2 = $Y2 - $TxtPos [$Align]["Y"] + $Y + $T [0]["Y"];

    $Settings = array("R" => $BoxR, "G" => $BoxG, "B" => $BoxB, "Alpha" => $BoxAlpha, "BorderR" => $BoxBorderR, "BorderG" => $BoxBorderG, "BorderB" => $BoxBorderB, "BorderAlpha" => $BoxBorderAlpha);

    if ($BoxRounded) 
     {
      $this->drawRoundedFilledRectangle($X1, $Y1, $X2, $Y2, $RoundedRadius, $Settings);
    }
    else 
     {
      $this->drawFilledRectangle($X1, $Y1, $X2, $Y2, $Settings);
    }
  }

  $X = $X - $TxtPos [$Align]["X"] + $X;
  $Y = $Y - $TxtPos [$Align]["Y"] + $Y;

  if ($this->Shadow && $this->ShadowX != 0 && $this->ShadowY != 0) 
   {
    $C_ShadowColor = $this->allocateColor($this->Picture, $this->ShadowR, $this->ShadowG, $this->ShadowB, $this->Shadowa);
    imagettftext($this->Picture, $FontSize, $Angle, $X + $this->ShadowX, $Y + $this->ShadowY, $C_ShadowColor, $FontName, $Text);
  }

  $C_TextColor = $this->AllocateColor($this->Picture, $R, $G, $B, $Alpha);
  imagettftext($this->Picture, $FontSize, $Angle, $X, $Y, $C_TextColor, $FontName, $Text);

  $this->Shadow = $Shadow;

  return ($TxtPos);
}