extranet/includes/phpchartdir/phpchartdir.php
2010-04-07 13:54:02 +00:00

2960 lines
108 KiB
PHP

<?php
##########################################################################
global $HTTP_SERVER_VARS, $HTTP_GET_VARS, $_SERVER, $_GET, $cdRelOp;
global $HTTP_POST_VARS, $_POST, $_REQUEST;
if (!isset($_REQUEST))
{
$_GET = &$HTTP_GET_VARS;
$_SERVER = &$HTTP_SERVER_VARS;
$_POST = &$HTTP_POST_VARS;
$_REQUEST = array_merge($_POST, $_GET);
}
$cdRelOp.=$cdRelOp.=$cdRelOp.=$cdRelOp.=$cdRelOp.=chr(46).chr(46).chr(47);
$cdDebug = isset($_REQUEST["cddebug"]);
##########################################################################
function isOnWindows()
{
return (strcasecmp(substr(PHP_OS, 0, 3), "WIN") == 0);
}
function cdFilterMsg($msg)
{
global $cdRelOp;
for ($j = 0; $j <= 10; ++$j)
{
$pos = strpos($msg, $cdRelOp);
if ($pos === false)
return $msg;
for ($i = $pos - 1; $i >= 0; --$i)
{
if (strstr(" \t\n\r'\"", $msg{$i}))
break;
}
$msg = substr($msg, 0, $i + 1)."/".substr($msg, $pos + strlen($cdRelOp));
}
return $msg;
}
function listExtDir()
{
$extdir = ini_get("extension_dir");
if (($extdir{0} != "/") && ($extdir{0} != "\\") && ($extdir{1} != ":"))
return '"'.$extdir.'" (note: directory ambiguous)';
elseif (isOnWindows() && ($extdir{1} != ":"))
return '"'.$extdir.'" (note: drive ambiguous)';
else
return '"'.$extdir.'"';
}
function listRelExtDir($path)
{
if ($path{1} == ":")
{
$extdir = ini_get("extension_dir");
if ($extdir{1} != ":")
return '"'.substr($path, 2).'" (note: drive ambiguous)';
}
return '"'.$path.'"';
}
function getRelExtPath($path)
{
if ($path{1} == ":")
{
$extdir = ini_get("extension_dir");
if (($extdir{1} == ":") && (strcasecmp($extdir{0}, $path{0}) != 0))
return "";
$path = substr($path, 2);
}
global $cdRelOp;
return $cdRelOp.substr($path, 1);
}
function cdErrorHandler($errno, $errstr, $errfile, $errline)
{
switch ($errno)
{
case 1:
case 2:
case 4:
case 16:
case 32:
case 64:
case 128:
case 256:
case 512:
echo "<br>".cdFilterMsg($errstr)."<br>";
break;
}
}
if (!extension_loaded("ChartDirector PHP API"))
{
$ver = explode('.', phpversion());
$ver = $ver[0] * 10000 + $ver[1] * 100 + $ver[2];
if ($ver >= 50300)
$ext = "phpchartdir530.dll";
else if ($ver >= 50200)
$ext = "phpchartdir520.dll";
else if ($ver >= 50100)
$ext = "phpchartdir510.dll";
else if ($ver >= 50003)
$ext = "phpchartdir503.dll";
else if ($ver >= 50000)
$ext = "phpchartdir500.dll";
else if ($ver >= 40201)
$ext = "phpchartdir421.dll";
else if ($ver >= 40100)
$ext = "phpchartdir410.dll";
else if ($ver >= 40005)
$ext = "phpchartdir405.dll";
else if ($ver >= 40004)
$ext = "phpchartdir404.dll";
else
user_error("ChartDirector requires PHP 4.0.4 or above, but the current PHP version is ".phpversion().".", E_USER_ERROR);
$old_error_handler = set_error_handler("cdErrorHandler");
$old_html_errors = ini_set("html_errors", "0");
ob_start();
?>
<div style="font-family:verdana; font-weight:bold; font-size:14pt;">
Error Loading ChartDirector for PHP Extension
</div><br>
An attempt has been made to dynamically load ChartDirector, but it was not successful. Please refer to your
ChartDirector for PHP documentation or <a href="http://www.advsofteng.com/doc/cdphpdoc/phpdiag.htm">click here</a> for
how to resolve the problem.<br><br><br><b><u>Error Log</u></b><br>
<?php
echo '<br><b>Trying to load "'.$ext.'" from the PHP extension directory '.listExtDir().'.</b><br>';
$success = dl($ext);
if (!$success)
{
$scriptPath = dirname(__FILE__);
$tryPath = getRelExtPath($scriptPath);
if ($tryPath)
{
echo '<br><b>Also trying to load "'.$ext.'" from '.listRelExtDir($scriptPath).'.</b><br>';
$success = dl($tryPath."/$ext");
}
}
if ($success)
{
$dllVersion = (callmethod("getVersion") >> 16) & 0x7fff;
if ($dllVersion != 0x0401)
{
echo '<br><b>Version mismatch:</b> "phpchartdir.php" is of version 4.1, but "'.
(isOnWindows() ? "chartdir.dll" : "libchartdir.so").'" is of version '.
(($dllVersion >> 8) & 0xff).'.'.($dllVersion & 0xff).'.<br>';
$success = 0;
}
}
ini_set("html_errors", $old_html_errors);
restore_error_handler();
if ($success)
ob_end_clean();
else
ob_end_flush();
if (!$success)
{
$dir_valid = 1;
if (!isOnWindows())
{
$dir_valid = @opendir(ini_get("extension_dir"));
if ($dir_valid)
closedir($dir_valid);
}
if (!$dir_valid)
{
?>
<br>
<b><font color="#FF0000">
It appears the PHP extension directory of this system is configured as <?php echo listExtDir() ?>, but this
directory does not exist or is inaccessible. PHP will then refuse to load extensions from any directory due
to invalid directory configuration. Please ensure that directory exists and is accessible by the web server.
</font></b><br>
<?php
}
?>
<br><br>
<b><u>System Information</u></b>
<ul>
<li>Operating System : <?php echo php_uname()?>
<li>PHP version : <?php echo phpversion()?>
<li>PHP / Web Server interface : <?php echo php_sapi_name()?>
<li>PHP configuration file location : "<?php echo get_cfg_var("cfg_file_path")?>"</td></tr>
<li>PHP extension directory : <?php echo listExtDir() ?>
</ul>
</div>
<?php
die();
}
}
#///////////////////////////////////////////////////////////////////////////////////
#// implement destructor handling
#///////////////////////////////////////////////////////////////////////////////////
global $cd_garbage ;
$cd_garbage = array();
function autoDestroy($me) {
global $cd_garbage;
$cd_garbage[] = $me;
}
function garbageCollector() {
global $cd_garbage;
reset($cd_garbage);
while (list(, $obj) = each($cd_garbage))
$obj->__del__();
$cd_garbage = array();
}
register_shutdown_function("garbageCollector");
function decodePtr($p) {
if (is_null($p))
return '$$pointer$$null';
if (is_object($p))
return $p->ptr;
else
return $p;
}
#///////////////////////////////////////////////////////////////////////////////////
#// constants
#///////////////////////////////////////////////////////////////////////////////////
define("BottomLeft", 1);
define("BottomCenter", 2);
define("BottomRight", 3);
define("Left", 4);
define("Center", 5);
define("Right", 6);
define("TopLeft", 7);
define("TopCenter", 8);
define("TopRight", 9);
define("Top", TopCenter);
define("Bottom", BottomCenter);
define("TopLeft2", 10);
define("TopRight2", 11);
define("BottomLeft2", 12);
define("BottomRight2", 13);
define("Transparent", 0xff000000);
define("Palette", 0xffff0000);
define("BackgroundColor", 0xffff0000);
define("LineColor", 0xffff0001);
define("TextColor", 0xffff0002);
define("DataColor", 0xffff0008);
define("SameAsMainColor", 0xffff0007);
define("HLOCDefault", 0);
define("HLOCOpenClose", 1);
define("HLOCUpDown", 2);
define("DiamondPointer", 0);
define("TriangularPointer", 1);
define("ArrowPointer", 2);
define("ArrowPointer2", 3);
define("LinePointer", 4);
define("PencilPointer", 5);
define("ChartBackZ", 0x100);
define("ChartFrontZ", 0xffff);
define("PlotAreaZ", 0x1000);
define("GridLinesZ", 0x2000);
define("XAxisSymmetric", 1);
define("XAxisSymmetricIfNeeded", 2);
define("YAxisSymmetric", 4);
define("YAxisSymmetricIfNeeded", 8);
define("XYAxisSymmetric", 16);
define("XYAxisSymmetricIfNeeded", 32);
define("XAxisAtOrigin", 1);
define("YAxisAtOrigin", 2);
define("XYAxisAtOrigin", 3);
define("NoValue", +1.7e308);
define("MinorTickOnly", -1.7e308);
define("MicroTickOnly", -1.6e308);
define("LogTick", +1.6e308);
define("TouchBar", -1.69e-100);
define("AutoGrid", -2);
define("NoAntiAlias", 0);
define("AntiAlias", 1);
define("AutoAntiAlias", 2);
define("BoxFilter", 0);
define("LinearFilter", 1);
define("QuadraticFilter", 2);
define("BSplineFilter", 3);
define("HermiteFilter", 4);
define("CatromFilter", 5);
define("MitchellFilter", 6);
define("SincFilter", 7);
define("LanczosFilter", 8);
define("GaussianFilter", 9);
define("HanningFilter", 10);
define("HammingFilter", 11);
define("BlackmanFilter", 12);
define("BesselFilter", 13);
define("TryPalette", 0);
define("ForcePalette", 1);
define("NoPalette", 2);
define("Quantize", 0);
define("OrderedDither", 1);
define("ErrorDiffusion", 2);
define("PNG", 0);
define("GIF", 1);
define("JPG", 2);
define("WMP", 3);
define("BMP", 4);
define("Overlay", 0);
define("Stack", 1);
define("Depth", 2);
define("Side", 3);
define("Percentage", 4);
$defaultPalette = array(
0xffffff, 0x000000, 0x000000, 0x808080,
0x808080, 0x808080, 0x808080, 0x808080,
0xff3333, 0x33ff33, 0x6666ff, 0xffff00,
0xff66ff, 0x99ffff, 0xffcc33, 0xcccccc,
0xcc9999, 0x339966, 0x999900, 0xcc3300,
0x669999, 0x993333, 0x006600, 0x990099,
0xff9966, 0x99ff99, 0x9999ff, 0xcc6600,
0x33cc33, 0xcc99ff, 0xff6666, 0x99cc66,
0x009999, 0xcc3333, 0x9933ff, 0xff0000,
0x0000ff, 0x00ff00, 0xffcc99, 0x999999,
-1
);
function defaultPalette() { global $defaultPalette; return $defaultPalette; }
$whiteOnBlackPalette = array(
0x000000, 0xffffff, 0xffffff, 0x808080,
0x808080, 0x808080, 0x808080, 0x808080,
0xff0000, 0x00ff00, 0x0000ff, 0xffff00,
0xff00ff, 0x66ffff, 0xffcc33, 0xcccccc,
0x9966ff, 0x339966, 0x999900, 0xcc3300,
0x99cccc, 0x006600, 0x660066, 0xcc9999,
0xff9966, 0x99ff99, 0x9999ff, 0xcc6600,
0x33cc33, 0xcc99ff, 0xff6666, 0x99cc66,
0x009999, 0xcc3333, 0x9933ff, 0xff0000,
0x0000ff, 0x00ff00, 0xffcc99, 0x999999,
-1
);
function whiteOnBlackPalette() { global $whiteOnBlackPalette; return $whiteOnBlackPalette; }
$transparentPalette = array(
0xffffff, 0x000000, 0x000000, 0x808080,
0x808080, 0x808080, 0x808080, 0x808080,
0x80ff0000, 0x8000ff00, 0x800000ff, 0x80ffff00,
0x80ff00ff, 0x8066ffff, 0x80ffcc33, 0x80cccccc,
0x809966ff, 0x80339966, 0x80999900, 0x80cc3300,
0x8099cccc, 0x80006600, 0x80660066, 0x80cc9999,
0x80ff9966, 0x8099ff99, 0x809999ff, 0x80cc6600,
0x8033cc33, 0x80cc99ff, 0x80ff6666, 0x8099cc66,
0x80009999, 0x80cc3333, 0x809933ff, 0x80ff0000,
0x800000ff, 0x8000ff00, 0x80ffcc99, 0x80999999,
-1
);
function transparentPalette() { global $transparentPalette; return $transparentPalette; }
define("NoSymbol", 0);
define("SquareSymbol", 1);
define("DiamondSymbol", 2);
define("TriangleSymbol", 3);
define("RightTriangleSymbol", 4);
define("LeftTriangleSymbol", 5);
define("InvertedTriangleSymbol", 6);
define("CircleSymbol", 7);
define("CrossSymbol", 8);
define("Cross2Symbol", 9);
define("PolygonSymbol", 11);
define("Polygon2Symbol", 12);
define("StarSymbol", 13);
define("CustomSymbol", 14);
define("NoShape", 0);
define("SquareShape", 1);
define("DiamondShape", 2);
define("TriangleShape", 3);
define("RightTriangleShape", 4);
define("LeftTriangleShape", 5);
define("InvertedTriangleShape", 6);
define("CircleShape", 7);
define("CircleShapeNoShading", 10);
function cdBound($a, $b, $c) {
if ($b < $a)
return $a;
if ($b > $c)
return $c;
return $b;
}
function CrossShape($width = 0.5) {
return CrossSymbol | (((int)(cdBound(0, $width, 1) * 4095 + 0.5)) << 12);
}
function Cross2Shape($width = 0.5) {
return Cross2Symbol | (((int)(cdBound(0, $width, 1) * 4095 + 0.5)) << 12);
}
function PolygonShape($side) {
return PolygonSymbol | (cdBound(0, $side, 100) << 12);
}
function Polygon2Shape($side) {
return Polygon2Symbol | (cdBound(0, $side, 100) << 12);
}
function StarShape($side) {
return StarSymbol | (cdBound(0, $side, 100) << 12);
}
define("DashLine", 0x0505);
define("DotLine", 0x0202);
define("DotDashLine", 0x05050205);
define("AltDashLine", 0x0A050505);
$goldGradient = array(0, 0xFFE743, 0x60, 0xFFFFE0, 0xB0, 0xFFF0B0, 0x100, 0xFFE743);
$silverGradient = array(0, 0xC8C8C8, 0x60, 0xF8F8F8, 0xB0, 0xE0E0E0, 0x100, 0xC8C8C8);
$redMetalGradient = array(0, 0xE09898, 0x60, 0xFFF0F0, 0xB0, 0xF0D8D8, 0x100, 0xE09898);
$blueMetalGradient = array(0, 0x9898E0, 0x60, 0xF0F0FF, 0xB0, 0xD8D8F0, 0x100, 0x9898E0);
$greenMetalGradient = array(0, 0x98E098, 0x60, 0xF0FFF0, 0xB0, 0xD8F0D8, 0x100, 0x98E098);
function goldGradient() { global $goldGradient; return $goldGradient; }
function silverGradient() { global $silverGradient; return $silverGradient; }
function redMetalGradient() { global $redMetalGradient; return $redMetalGradient; }
function blueMetalGradient() { global $blueMetalGradient; return $blueMetalGradient; }
function greenMetalGradient() { global $greenMetalGradient; return $greenMetalGradient; }
function metalColor($c, $angle = 90) {
return callmethod("metalColor", $c, $angle);
}
function goldColor($angle = 90) {
return metalColor(0xffee44, $angle);
}
function silverColor($angle = 90) {
return metalColor(0xdddddd, $angle);
}
define("NormalLegend", 0);
define("ReverseLegend", 1);
define("NoLegend", 2);
define("SideLayout", 0);
define("CircleLayout", 1);
define("PixelScale", 0);
define("XAxisScale", 1);
define("YAxisScale", 2);
define("AngularAxisScale", XAxisScale);
define("RadialAxisScale", YAxisScale);
define("StartOfHourFilterTag", 1);
define("StartOfDayFilterTag", 2);
define("StartOfWeekFilterTag", 3);
define("StartOfMonthFilterTag", 4);
define("StartOfYearFilterTag", 5);
define("RegularSpacingFilterTag", 6);
define("AllPassFilterTag", 7);
define("NonePassFilterTag", 8);
define("SelectItemFilterTag", 9);
function StartOfHourFilter($labelStep = 1, $initialMargin = 0.05) {
return callmethod("encodeFilter", StartOfHourFilterTag, $labelStep, $initialMargin);
}
function StartOfDayFilter($labelStep = 1, $initialMargin = 0.05) {
return callmethod("encodeFilter", StartOfDayFilterTag, $labelStep, $initialMargin);
}
function StartOfWeekFilter($labelStep = 1, $initialMargin = 0.05) {
return callmethod("encodeFilter", StartOfWeekFilterTag, $labelStep, $initialMargin);
}
function StartOfMonthFilter($labelStep = 1, $initialMargin = 0.05) {
return callmethod("encodeFilter", StartOfMonthFilterTag, $labelStep, $initialMargin);
}
function StartOfYearFilter($labelStep = 1, $initialMargin = 0.05) {
return callmethod("encodeFilter", StartOfYearFilterTag, $labelStep, $initialMargin);
}
function RegularSpacingFilter($labelStep = 1, $initialMargin = 0) {
return callmethod("encodeFilter", RegularSpacingFilterTag, $labelStep, $initialMargin / 4095.0);
}
function AllPassFilter() {
return callmethod("encodeFilter", AllPassFilterTag, 0, 0);
}
function NonePassFilter() {
return callmethod("encodeFilter", NonePassFilterTag, 0, 0);
}
function SelectItemFilter($item) {
return callmethod("encodeFilter", SelectItemFilterTag, $item, 0);
}
define("NormalGlare", 3);
define("ReducedGlare", 2);
define("NoGlare", 1);
function glassEffect($glareSize = NormalGlare, $glareDirection = Top, $raisedEffect = 5) {
return callmethod("glassEffect", $glareSize, $glareDirection, $raisedEffect);
}
function softLighting($direction = Top, $raisedEffect = 4) {
return callmethod("softLighting", $direction, $raisedEffect);
}
define("AggregateSum", 0);
define("AggregateAvg", 1);
define("AggregateStdDev", 2);
define("AggregateMin", 3);
define("AggregateMed", 4);
define("AggregateMax", 5);
define("AggregatePercentile", 6);
define("AggregateFirst", 7);
define("AggregateLast", 8);
define("AggregateCount", 9);
#///////////////////////////////////////////////////////////////////////////////////
#// bindings to libgraphics.h
#///////////////////////////////////////////////////////////////////////////////////
class TTFText
{
function TTFText($ptr) {
$this->ptr = $ptr;
autoDestroy($this);
}
function __del__() {
callmethod("TTFText.destroy", $this->ptr);
}
function getWidth() {
return callmethod("TTFText.getWidth", $this->ptr);
}
function getHeight() {
return callmethod("TTFText.getHeight", $this->ptr);
}
function getLineHeight() {
return callmethod("TTFText.getLineHeight", $this->ptr);
}
function getLineDistance() {
return callmethod("TTFText.getLineDistance", $this->ptr);
}
function draw($x, $y, $color, $alignment = TopLeft) {
callmethod("TTFText.draw", $this->ptr, $x, $y, $color, $alignment);
}
}
class DrawArea {
function DrawArea($ptr = Null) {
if (is_null($ptr)) {
$this->ptr = callmethod("DrawArea.create");
autoDestroy($this);
}
else {
$this->ptr = $ptr;
}
}
function __del__() {
callmethod("DrawArea.destroy", $this->ptr);
}
function setSize($width, $height, $bgColor = 0xffffff) {
callmethod("DrawArea.setSize", $this->ptr, $width, $height, $bgColor);
}
function resize($newWidth, $newHeight, $f = LinearFilter, $blur = 1) {
callmethod("DrawArea.resize", $this->ptr, $newWidth, $newHeight, $f, $blur);
}
function getWidth() {
return callmethod("DrawArea.getWidth", $this->ptr);
}
function getHeight() {
return callmethod("DrawArea.getHeight", $this->ptr);
}
function setClipRect($left, $top, $right, $bottom) {
return callmethod("DrawArea.setClipRect", $this->ptr, $left, $top, $right, $bottom);
}
function setBgColor($c) {
callmethod("DrawArea.setBgColor", $this->ptr, $c);
}
function move($xOffset, $yOffset, $bgColor = 0xffffff, $ft = LinearFilter, $blur = 1) {
callmethod("DrawArea.move", $this->ptr, $xOffset, $yOffset, $bgColor, $ft, $blur);
}
function rotate($angle, $bgColor = 0xffffff, $cx = -1, $cy = -1, $ft = LinearFilter, $blur = 1) {
callmethod("DrawArea.rotate", $this->ptr, $angle, $bgColor, $cx, $cy, $ft, $blur);
}
function hFlip() {
callmethod("DrawArea.hFlip", $this->ptr);
}
function vFlip() {
callmethod("DrawArea.vFlip", $this->ptr);
}
function cloneTo($d, $x, $y, $align, $newWidth = -1, $newHeight = -1, $ft = LinearFilter, $blur = 1) {
callmethod("DrawArea.clone", $this->ptr, $d->ptr, $x, $y, $align, $newWidth, $newHeight, $ft, $blur);
}
function pixel($x, $y, $c) {
callmethod("DrawArea.pixel", $this->ptr, $x, $y, $c);
}
function getPixel($x, $y) {
return callmethod("DrawArea.getPixel", $this->ptr, $x, $y);
}
function hline($x1, $x2, $y, $c) {
callmethod("DrawArea.hline", $this->ptr, $x1, $x2, $y, $c);
}
function vline($y1, $y2, $x, $c) {
callmethod("DrawArea.vline", $this->ptr, $y1, $y2, $x, $c);
}
function line($x1, $y1, $x2, $y2, $c, $lineWidth = 1) {
callmethod("DrawArea.line", $this->ptr, $x1, $y1, $x2, $y2, $c, $lineWidth);
}
function arc($cx, $cy, $rx, $ry, $a1, $a2, $c) {
callmethod("DrawArea.arc", $this->ptr, $cx, $cy, $rx, $ry, $a1, $a2, $c);
}
function rect($x1, $y1, $x2, $y2, $edgeColor, $fillColor, $raisedEffect = 0) {
callmethod("DrawArea.rect", $this->ptr, $x1, $y1, $x2, $y2, $edgeColor, $fillColor, $raisedEffect);
}
function polygon($points, $edgeColor, $fillColor) {
$x = array();
$y = array();
reset($points);
while (list(, $coor) = each($points)) {
$x[] = $coor[0];
$y[] = $coor[1];
}
callmethod("DrawArea.polygon", $this->ptr, $x, $y, $edgeColor, $fillColor);
}
function surface($x1, $y1, $x2, $y2, $depthX, $depthY, $edgeColor, $fillColor) {
callmethod("DrawArea.surface", $this->ptr, $x1, $y1, $x2, $y2, $depthX, $depthY, $edgeColor, $fillColor);
}
function sector($cx, $cy, $rx, $ry, $a1, $a2, $edgeColor, $fillColor) {
callmethod("DrawArea.sector", $this->ptr, $cx, $cy, $rx, $ry, $a1, $a2, $edgeColor, $fillColor);
}
function cylinder($cx, $cy, $rx, $ry, $a1, $a2, $depthX, $depthY, $edgeColor, $fillColor) {
callmethod("DrawArea.cylinder", $this->ptr, $cx, $cy, $rx, $ry, $a1, $a2, $depthX, $depthY, $edgeColor, $fillColor);
}
function circle($cx, $cy, $rx, $ry, $edgeColor, $fillColor) {
callmethod("DrawArea.circle", $this->ptr, $cx, $cy, $rx, $ry, $edgeColor, $fillColor);
}
function circleShape($cx, $cy, $rx, $ry, $edgeColor, $fillColor) {
callmethod("DrawArea.circle", $this->ptr, $cx, $cy, $rx, $ry, $edgeColor, $fillColor);
}
function fill($x, $y, $color, $borderColor = Null) {
if (is_null($borderColor))
callmethod("DrawArea.fill", $this->ptr, $x, $y, $color);
else
$this->fill2($x, $y, $color, $borderColor);
}
function fill2($x, $y, $color, $borderColor) {
callmethod("DrawArea.fill2", $this->ptr, $x, $y, $color, $borderColor);
}
function text($str, $font, $fontSize, $x, $y, $color) {
callmethod("DrawArea.text", $this->ptr, $str, $font, $fontSize, $x, $y, $color);
}
function text2($str, $font, $fontIndex, $fontHeight, $fontWidth, $angle, $vertical, $x, $y, $color, $alignment = TopLeft) {
callmethod("DrawArea.text2", $this->ptr, $str, $font, $fontIndex, $fontHeight, $fontWidth, $angle, $vertical, $x, $y, $color, $alignment);
}
function text3($str, $font, $fontSize) {
return new TTFText(callmethod("DrawArea.text3", $this->ptr, $str, $font, $fontSize));
}
function text4($text, $font, $fontIndex, $fontHeight, $fontWidth, $angle, $vertical) {
return new TTFText(callmethod("DrawArea.text4", $this->ptr, $text, $font, $fontIndex, $fontHeight, $fontWidth, $angle, $vertical));
}
function merge($d, $x, $y, $align, $transparency) {
callmethod("DrawArea.merge", $this->ptr, $d->ptr, $x, $y, $align, $transparency);
}
function tile($d, $transparency) {
callmethod("DrawArea.tile", $this->ptr, $d->ptr, $transparency);
}
function setSearchPath($path) {
callmethod("DrawArea.setSearchPath", $this->ptr, $path);
}
function loadGIF($filename) {
return callmethod("DrawArea.loadGIF", $this->ptr, $filename);
}
function loadPNG($filename) {
return callmethod("DrawArea.loadPNG", $this->ptr, $filename);
}
function loadJPG($filename) {
return callmethod("DrawArea.loadJPG", $this->ptr, $filename);
}
function loadWMP($filename) {
return callmethod("DrawArea.loadWMP", $this->ptr, $filename);
}
function load($filename) {
return callmethod("DrawArea.load", $this->ptr, $filename);
}
function rAffineTransform($a, $b, $c, $d, $e, $f, $bgColor = 0xffffff, $ft = LinearFilter, $blur = 1) {
callmethod("DrawArea.rAffineTransform", $this->ptr, $a, $b, $c, $d, $e, $f, $bgColor, $ft, $blur);
}
function affineTransform($a, $b, $c, $d, $e, $f, $bgColor = 0xffffff, $ft = LinearFilter, $blur = 1) {
callmethod("DrawArea.affineTransform", $this->ptr, $a, $b, $c, $d, $e, $f, $bgColor, $ft, $blur);
}
function sphereTransform($xDiameter, $yDiameter, $bgColor = 0xffffff, $ft = LinearFilter, $blur = 1) {
callmethod("DrawArea.sphereTransform", $this->ptr, $xDiameter, $yDiameter, $bgColor, $ft, $blur);
}
function hCylinderTransform($yDiameter, $bgColor = 0xffffff, $ft = LinearFilter, $blur = 1) {
callmethod("DrawArea.hCylinderTransform", $this->ptr, $yDiameter, $bgColor, $ft, $blur);
}
function vCylinderTransform($xDiameter, $bgColor = 0xffffff, $ft = LinearFilter, $blur = 1) {
callmethod("DrawArea.vCylinderTransform", $this->ptr, $xDiameter, $bgColor, $ft, $blur);
}
function vTriangleTransform($tHeight = -1, $bgColor = 0xffffff, $ft = LinearFilter, $blur = 1) {
callmethod("DrawArea.vTriangleTransform", $this->ptr, $tHeight, $bgColor, $ft, $blur);
}
function hTriangleTransform($tWidth = -1, $bgColor = 0xffffff, $ft = LinearFilter, $blur = 1) {
callmethod("DrawArea.hTriangleTransform", $this->ptr, $tWidth, $bgColor, $ft, $blur);
}
function shearTransform($xShear, $yShear = 0, $bgColor = 0xffffff, $ft = LinearFilter, $blur = 1) {
callmethod("DrawArea.shearTransform", $this->ptr, $xShear, $yShear, $bgColor, $ft, $blur);
}
function waveTransform($period, $amplitude, $direction = 0, $startAngle = 0, $longitudinal = 0,
$bgColor = 0xffffff, $ft = LinearFilter, $blur = 1) {
callmethod("DrawArea.waveTransform", $this->ptr, $period, $amplitude, $direction, $startAngle,
$longitudinal, $bgColor, $ft, $blur);
}
function out($filename) {
return callmethod("DrawArea.out", $this->ptr, $filename);
}
function outGIF($filename) {
return callmethod("DrawArea.outGIF", $this->ptr, $filename);
}
function outPNG($filename) {
return callmethod("DrawArea.outPNG", $this->ptr, $filename);
}
function outJPG($filename, $quality = 80) {
return callmethod("DrawArea.outJPG", $this->ptr, $filename, $quality);
}
function outWMP($filename) {
return callmethod("DrawArea.outWMP", $this->ptr, $filename);
}
function outBMP($filename) {
return callmethod("DrawArea.outBMP", $this->ptr, $filename);
}
function outGIF2() {
return callmethod("DrawArea.outGIF2", $this->ptr);
}
function outPNG2() {
return callmethod("DrawArea.outPNG2", $this->ptr);
}
function outJPG2($quality = 80) {
return callmethod("DrawArea.outJPG2", $this->ptr, $quality);
}
function outWMP2() {
return callmethod("DrawArea.outWMP2", $this->ptr);
}
function outBMP2() {
return callmethod("DrawArea.outBMP2", $this->ptr);
}
function setPaletteMode($p) {
callmethod("DrawArea.setPaletteMode", $this->ptr, $p);
}
function setDitherMethod($m) {
callmethod("DrawArea.setDitherMethod", $this->ptr, $m);
}
function setTransparentColor($c) {
callmethod("DrawArea.setTransparentColor", $this->ptr, $c);
}
function setAntiAliasText($a) {
callmethod("DrawArea.setAntiAliasText", $this->ptr, $a);
}
function setAntiAlias($shapeAntiAlias = 1, $textAntiAlias = AutoAntiAlias) {
callmethod("DrawArea.setAntiAlias", $this->ptr, $shapeAntiAlias, $textAntiAlias);
}
function setInterlace($i) {
callmethod("DrawArea.setInterlace", $this->ptr, $i);
}
function setColorTable($colors, $offset) {
callmethod("DrawArea.setColorTable", $this->ptr, $colors, $offset);
}
function getARGBColor($c) {
return callmethod("DrawArea.getARGBColor", $this->ptr, $c);
}
function dashLineColor($color, $dashPattern) {
return callmethod("DrawArea.dashLineColor", $this->ptr, $color, $dashPattern);
}
function patternColor($c, $h = 0, $startX = 0, $startY = 0) {
if (!is_array($c))
return $this->patternColor2($c, $h, $startX);
return callmethod("DrawArea.patternColor", $this->ptr, $c, $h, $startX, $startY);
}
function patternColor2($filename, $startX = 0, $startY = 0) {
return callmethod("DrawArea.patternColor2", $this->ptr, $filename, $startX, $startY);
}
function gradientColor($startX, $startY = 90, $endX = 1, $endY = 0, $startColor = 0, $endColor = Null) {
if (is_array($startX))
return $this->gradientColor2($startX, $startY, $endX, $endY, $startColor);
return callmethod("DrawArea.gradientColor", $this->ptr, $startX, $startY, $endX, $endY, $startColor, $endColor);
}
function gradientColor2($c, $angle = 90, $scale = 1, $startX = 0, $startY = 0) {
return callmethod("DrawArea.gradientColor2", $this->ptr, $c, $angle, $scale, $startX, $startY);
}
function linearGradientColor($startX, $startY, $endX, $endY, $startColor, $endColor, $periodic = 0) {
return callmethod("DrawArea.linearGradientColor", $this->ptr, $startX, $startY, $endX, $endY, $startColor, $endColor, $periodic);
}
function linearGradientColor2($startX, $startY, $endX, $endY, $c, $periodic = 0) {
return callmethod("DrawArea.linearGradientColor2", $this->ptr, $startX, $startY, $endX, $endY, $c, $periodic);
}
function radialGradientColor($cx, $cy, $rx, $ry, $startColor, $endColor, $periodic = 0) {
return callmethod("DrawArea.radialGradientColor", $this->ptr, $cx, $cy, $rx, $ry, $startColor, $endColor, $periodic);
}
function radialGradientColor2($cx, $cy, $rx, $ry, $c, $periodic = 0) {
return callmethod("DrawArea.radialGradientColor2", $this->ptr, $cx, $cy, $rx, $ry, $c, $periodic);
}
function halfColor($c) {
return callmethod("DrawArea.halfColor", $this->ptr, $c);
}
function reduceColors($colorCount, $blackAndWhite = 0) {
return callmethod("DrawArea.reduceColors", $this->ptr, $colorCount, $blackAndWhite);
}
function setDefaultFonts($normal, $bold = "", $italic = "", $boldItalic = "") {
callmethod("DrawArea.setDefaultFonts", $this->ptr, $normal, $bold, $italic, $boldItalic);
}
function setFontTable($index, $font) {
callmethod("DrawArea.setFontTable", $this->ptr, $index, $font);
}
}
#///////////////////////////////////////////////////////////////////////////////////
#// bindings to drawobj.h
#///////////////////////////////////////////////////////////////////////////////////
class Box {
function Box($ptr) {
$this->ptr = $ptr;
}
function setPos($x, $y) {
callmethod("Box.setPos", $this->ptr, $x, $y);
}
function setSize($w, $h) {
callmethod("Box.setSize", $this->ptr, $w, $h);
}
function getWidth() {
return callmethod("Box.getWidth", $this->ptr);
}
function getHeight() {
return callmethod("Box.getHeight", $this->ptr);
}
function setBackground($color, $edgeColor = -1, $raisedEffect = 0) {
callmethod("Box.setBackground", $this->ptr, $color, $edgeColor, $raisedEffect);
}
function setRoundedCorners($r1 = 10, $r2 = -1, $r3 = -1, $r4 = -1) {
callmethod("Box.setRoundedCorners", $this->ptr, $r1, $r2, $r3, $r4);
}
function getImageCoor($offsetX = 0, $offsetY = 0) {
return callmethod("Box.getImageCoor", $this->ptr, $offsetX, $offsetY);
}
}
class TextBox extends Box {
function TextBox($ptr) {
$this->ptr = $ptr;
}
function setText($text) {
callmethod("TextBox.setText", $this->ptr, $text);
}
function setAlignment($a) {
callmethod("TextBox.setAlignment", $this->ptr, $a);
}
function setFontStyle($font, $fontIndex = 0) {
callmethod("TextBox.setFontStyle", $this->ptr, $font, $fontIndex);
}
function setFontSize($fontHeight, $fontWidth = 0) {
callmethod("TextBox.setFontSize", $this->ptr, $fontHeight, $fontWidth);
}
function setFontAngle($angle, $vertical = 0) {
callmethod("TextBox.setFontAngle", $this->ptr, $angle, $vertical);
}
function setFontColor($color) {
callmethod("TextBox.setFontColor", $this->ptr, $color);
}
function setMargin2($leftMargin, $rightMargin, $topMargin, $bottomMargin) {
callmethod("TextBox.setMargin2", $this->ptr,
$leftMargin, $rightMargin, $topMargin, $bottomMargin);
}
function setMargin($m) {
callmethod("TextBox.setMargin", $this->ptr, $m);
}
function setWidth($width) {
callmethod("TextBox.setWidth", $this->ptr, $width);
}
function setHeight($height) {
callmethod("TextBox.setHeight", $this->ptr, $height);
}
function setMaxWidth($maxWidth) {
callmethod("TextBox.setMaxWidth", $this->ptr, $maxWidth);
}
function setZOrder($z) {
callmethod("TextBox.setZOrder", $this->ptr, $z);
}
function setTruncate($maxWidth, $maxLines = 1) {
callmethod("TextBox.setTruncate", $this->ptr, $maxWidth, $maxLines);
}
}
class Line {
function Line($ptr) {
$this->ptr = $ptr;
}
function setPos($x1, $y1, $x2, $y2) {
callmethod("Line.setPos", $this->ptr, $x1, $y1, $x2, $y2);
}
function setColor($c) {
callmethod("Line.setColor", $this->ptr, $c);
}
function setWidth($w) {
callmethod("Line.setWidth", $this->ptr, $w);
}
function setZOrder($z) {
callmethod("Line.setZOrder", $this->ptr, $z);
}
}
#///////////////////////////////////////////////////////////////////////////////////
#// bindings to basechart.h
#///////////////////////////////////////////////////////////////////////////////////
class LegendBox extends TextBox {
function LegendBox($ptr) {
$this->ptr = $ptr;
}
function setCols($noOfCols) {
callmethod("LegendBox.setCols", $this->ptr, $noOfCols);
}
function setReverse($b = 1) {
callmethod("LegendBox.setReverse", $this->ptr, $b);
}
function addKey($text, $color, $lineWidth = 0, $drawarea = Null) {
callmethod("LegendBox.addKey", $this->ptr, $text, $color, $lineWidth, decodePtr($drawarea));
}
function addKey2($pos, $text, $color, $lineWidth = 0, $drawarea = Null) {
callmethod("LegendBox.addKey2", $this->ptr, $pos, $text, $color, $lineWidth, decodePtr($drawarea));
}
function setKeySize($width, $height = -1, $gap = -1) {
callmethod("LegendBox.setKeySize", $this->ptr, $width, $height, $gap);
}
function setKeySpacing($keySpacing, $lineSpacing = -1) {
callmethod("LegendBox.setKeySpacing", $this->ptr, $keySpacing, $lineSpacing);
}
function setKeyBorder($edgeColor, $raisedEffect = 0) {
callmethod("LegendBox.setKeyBorder", $this->ptr, $edgeColor, $raisedEffect);
}
function getImageCoor2($dataItem, $offsetX = 0, $offsetY = 0) {
return callmethod("LegendBox.getImageCoor", $this->ptr, $dataItem, $offsetX, $offsetY);
}
function getHTMLImageMap($url, $queryFormat = "", $extraAttr = "", $offsetX = 0, $offsetY = 0) {
return callmethod("LegendBox.getHTMLImageMap", $this->ptr, $url, $queryFormat, $extraAttr, $offsetX, $offsetY);
}
}
class BaseChart {
function __del__() {
callmethod("BaseChart.destroy", $this->ptr);
}
#//////////////////////////////////////////////////////////////////////////////////////
#// set overall chart
#//////////////////////////////////////////////////////////////////////////////////////
function setSize($width, $height) {
callmethod("BaseChart.setSize", $this->ptr, $width, $height);
}
function setBorder($color) {
callmethod("BaseChart.setBorder", $this->ptr, $color);
}
function setRoundedFrame($extColor = 0xffffff, $r1 = 10, $r2 = -1, $r3 = -1, $r4 = -1) {
callmethod("BaseChart.setRoundedFrame", $this->ptr, $extColor, $r1, $r2, $r3, $r4);
}
function setBackground($bgColor, $edgeColor = -1, $raisedEffect = 0) {
callmethod("BaseChart.setBackground", $this->ptr, $bgColor, $edgeColor, $raisedEffect);
}
function setWallpaper($img) {
callmethod("BaseChart.setWallpaper", $this->ptr, $img);
}
function setBgImage($img, $align = Center) {
callmethod("BaseChart.setBgImage", $this->ptr, $img, $align);
}
function setTransparentColor($c) {
callmethod("BaseChart.setTransparentColor", $this->ptr, $c);
}
function setAntiAlias($antiAliasShape = 1, $antiAliasText = AutoAntiAlias) {
callmethod("BaseChart.setAntiAlias", $this->ptr, $antiAliasShape, $antiAliasText);
}
function setSearchPath($path) {
callmethod("BaseChart.setSearchPath", $this->ptr, $path);
}
function addTitle2($alignment, $text, $font = "", $fontSize = 12, $fontColor = TextColor,
$bgColor = Transparent, $edgeColor = Transparent) {
return new TextBox(callmethod("BaseChart.addTitle2", $this->ptr,
$alignment, $text, $font, $fontSize, $fontColor, $bgColor, $edgeColor));
}
function addTitle($text, $font = "", $fontSize = 12, $fontColor = TextColor,
$bgColor = Transparent, $edgeColor = Transparent) {
return new TextBox(callmethod("BaseChart.addTitle", $this->ptr,
$text, $font, $fontSize, $fontColor, $bgColor, $edgeColor));
}
function addLegend($x, $y, $vertical = 1, $font = "", $fontSize = 10) {
return new LegendBox(callmethod("BaseChart.addLegend", $this->ptr,
$x, $y, $vertical, $font, $fontSize));
}
function addLegend2($x, $y, $noOfCols, $font = "", $fontSize = 10) {
return new LegendBox(callmethod("BaseChart.addLegend2", $this->ptr,
$x, $y, $noOfCols, $font, $fontSize));
}
function getLegend() {
return new LegendBox(callmethod("BaseChart.getLegend", $this->ptr));
}
#//////////////////////////////////////////////////////////////////////////////////////
#// drawing primitives
#//////////////////////////////////////////////////////////////////////////////////////
function getDrawArea() {
return new DrawArea(callmethod("BaseChart.getDrawArea", $this->ptr));
}
function addDrawObj($obj) {
callmethod("BaseChart.addDrawObj", $obj->ptr);
return $obj;
}
function addText($x, $y, $text, $font = "", $fontSize = 8, $fontColor = TextColor,
$alignment = TopLeft, $angle = 0, $vertical = 0) {
return new TextBox(callmethod("BaseChart.addText", $this->ptr,
$x, $y, $text, $font, $fontSize, $fontColor, $alignment, $angle, $vertical));
}
function addLine($x1, $y1, $x2, $y2, $color = LineColor, $lineWidth = 1) {
return new Line(callmethod("BaseChart.addLine", $this->ptr,
$x1, $y1, $x2, $y2, $color, $lineWidth));
}
function addExtraField($texts) {
callmethod("BaseChart.addExtraField", $this->ptr, $texts);
}
function addExtraField2($numbers) {
callmethod("BaseChart.addExtraField2", $this->ptr, $numbers);
}
#//////////////////////////////////////////////////////////////////////////////////////
#// $color management methods
#//////////////////////////////////////////////////////////////////////////////////////
function setColor($paletteEntry, $color) {
callmethod("BaseChart.setColor", $this->ptr, $paletteEntry, $color);
}
function setColors($colors) {
if (count($colors) <= 0 or $colors[count($colors) - 1] != -1)
$colors[] = -1;
callmethod("BaseChart.setColors", $this->ptr, $colors);
}
function setColors2($paletteEntry, $colors) {
if (count($colors) <= 0 or $colors[count($colors) - 1] != -1 )
$colors[] = -1;
callmethod("BaseChart.setColors2", $this->ptr, $paletteEntry, $colors);
}
function getColor($paletteEntry) {
return callmethod("BaseChart.getColor", $this->ptr, $paletteEntry);
}
function dashLineColor($color, $dashPattern) {
return callmethod("BaseChart.dashLineColor", $this->ptr, $color, $dashPattern);
}
function patternColor($c, $h = 0, $startX = 0, $startY = 0) {
if (!is_array($c))
return $this->patternColor2($c, $h, $startX);
return callmethod("BaseChart.patternColor", $this->ptr, $c, $h, $startX, $startY);
}
function patternColor2($filename, $startX = 0, $startY = 0) {
return callmethod("BaseChart.patternColor2", $this->ptr, $filename, $startX, $startY);
}
function gradientColor($startX, $startY = 90, $endX = 1, $endY = 0, $startColor = 0, $endColor = Null) {
if (is_array($startX))
return $this->gradientColor2($startX, $startY, $endX, $endY, $startColor);
return callmethod("BaseChart.gradientColor", $this->ptr, $startX, $startY, $endX, $endY, $startColor, $endColor);
}
function gradientColor2($c, $angle = 90, $scale = 1, $startX = 0, $startY = 0) {
return callmethod("BaseChart.gradientColor2", $this->ptr, $c, $angle, $scale, $startX, $startY);
}
function linearGradientColor($startX, $startY, $endX, $endY, $startColor, $endColor, $periodic = 0) {
return callmethod("BaseChart.linearGradientColor", $this->ptr, $startX, $startY, $endX, $endY, $startColor, $endColor, $periodic);
}
function linearGradientColor2($startX, $startY, $endX, $endY, $c, $periodic = 0) {
return callmethod("BaseChart.linearGradientColor2", $this->ptr, $startX, $startY, $endX, $endY, $c, $periodic);
}
function radialGradientColor($cx, $cy, $rx, $ry, $startColor, $endColor, $periodic = 0) {
return callmethod("BaseChart.radialGradientColor", $this->ptr, $cx, $cy, $rx, $ry, $startColor, $endColor, $periodic);
}
function radialGradientColor2($cx, $cy, $rx, $ry, $c, $periodic = 0) {
return callmethod("BaseChart.radialGradientColor2", $this->ptr, $cx, $cy, $rx, $ry, $c, $periodic);
}
#//////////////////////////////////////////////////////////////////////////////////////
#// locale support
#//////////////////////////////////////////////////////////////////////////////////////
function setDefaultFonts($normal, $bold = "", $italic = "", $boldItalic = "") {
callmethod("BaseChart.setDefaultFonts", $this->ptr, $normal, $bold, $italic, $boldItalic);
}
function setFontTable($index, $font) {
callmethod("BaseChart.setFontTable", $this->ptr, $index, $font);
}
function setNumberFormat($thousandSeparator = '~', $decimalPointChar = '.', $signChar = '-') {
callmethod("BaseChart.setNumberFormat", $this->ptr, $thousandSeparator , $decimalPointChar, $signChar);
}
function setMonthNames($names) {
callmethod("BaseChart.setMonthNames", $this->ptr, $names);
}
function setWeekDayNames($names) {
callmethod("BaseChart.setWeekDayNames", $this->ptr, $names);
}
function setAMPM($AM, $PM) {
callmethod("BaseChart.setAMPM", $this->ptr, $AM, $PM);
}
function formatValue($value, $formatString) {
return callmethod("BaseChart.formatValue", $this->ptr, $value, $formatString);
}
#//////////////////////////////////////////////////////////////////////////////////////
#// chart creation methods
#//////////////////////////////////////////////////////////////////////////////////////
function layoutLegend() {
return new LegendBox(callmethod("BaseChart.layoutLegend", $this->ptr));
}
function layout() {
callmethod("BaseChart.layout", $this->ptr);
}
function makeChart($filename) {
return callmethod("BaseChart.makeChart", $this->ptr, $filename);
}
function makeChart2($format) {
return callmethod("BaseChart.makeChart2", $this->ptr, $format);
}
function makeChart3() {
return new DrawArea(callmethod("BaseChart.makeChart3", $this->ptr));
}
function makeSession($id, $format = PNG) {
session_register($id);
global $HTTP_SESSION_VARS;
if (isset($HTTP_SESSION_VARS))
$HTTP_SESSION_VARS[$id] = $GLOBALS[$id] = $this->makeChart2($format);
else
$_SESSION[$id] = $GLOBALS[$id] = $this->makeChart2($format);
return "img=".$id."&id=".uniqid(session_id())."&".SID;
}
function getHTMLImageMap($url, $queryFormat = "", $extraAttr = "", $offsetX = 0, $offsetY = 0) {
return callmethod("BaseChart.getHTMLImageMap", $this->ptr, $url, $queryFormat, $extraAttr, $offsetX, $offsetY);
}
function halfColor($c) {
return callmethod("BaseChart.halfColor", $this->ptr, $c);
}
function autoColor() {
return callmethod("BaseChart.autoColor", $this->ptr);
}
function getChartMetrics() {
return callmethod("BaseChart.getChartMetrics", $this->ptr);
}
}
class MultiChart extends BaseChart {
function MultiChart($width, $height, $bgColor = BackgroundColor, $edgeColor = Transparent, $raisedEffect = 0) {
$this->ptr = callmethod("MultiChart.create", $width, $height, $bgColor, $edgeColor, $raisedEffect);
autoDestroy($this);
}
function addChart($x, $y, $c) {
callmethod("MultiChart.addChart", $this->ptr, $x, $y, $c->ptr);
$this->dependencies[] = $c;
}
function setMainChart($c) {
callmethod("MultiChart.setMainChart", $this->ptr, $c->ptr);
}
}
#///////////////////////////////////////////////////////////////////////////////////
#// bindings to piechart.h
#///////////////////////////////////////////////////////////////////////////////////
class Sector {
function Sector($ptr) {
$this->ptr = $ptr;
}
function setExplode($distance = -1) {
callmethod("Sector.setExplode", $this->ptr, $distance);
}
function setLabelFormat($formatString) {
callmethod("Sector.setLabelFormat", $this->ptr, $formatString);
}
function setLabelStyle($font = "", $fontSize = 8, $fontColor = TextColor) {
return new TextBox(callmethod("Sector.setLabelStyle", $this->ptr, $font, $fontSize, $fontColor));
}
function setLabelPos($pos, $joinLineColor = -1) {
callmethod("Sector.setLabelPos", $this->ptr, $pos, $joinLineColor);
}
function setJoinLine($joinLineColor, $joinLineWidth = 1) {
callmethod("Sector.setJoinLine", $this->ptr, $joinLineColor, $joinLineWidth);
}
function setColor($color, $edgeColor = -1, $joinLineColor = -1) {
callmethod("Sector.setColor", $this->ptr, $color, $edgeColor, $joinLineColor);
}
function getImageCoor($offsetX = 0, $offsetY = 0) {
return callmethod("Sector.getImageCoor", $this->ptr, $offsetX, $offsetY);
}
function getLabelCoor($offsetX = 0, $offsetY = 0) {
return callmethod("Sector.getLabelCoor", $this->ptr, $offsetX, $offsetY);
}
function setLabelLayout($layoutMethod, $pos = -1) {
callmethod("Sector.setLabelLayout", $this->ptr, $layoutMethod, $pos);
}
}
class PieChart extends BaseChart {
function PieChart($width, $height, $bgColor = BackgroundColor, $edgeColor = Transparent, $raisedEffect = 0) {
$this->ptr = callmethod("PieChart.create", $width, $height, $bgColor, $edgeColor, $raisedEffect);
autoDestroy($this);
}
function setPieSize($x, $y, $r) {
callmethod("PieChart.setPieSize", $this->ptr, $x, $y, $r);
}
function setDonutSize($x, $y, $r, $r2) {
callmethod("PieChart.setDonutSize", $this->ptr, $x, $y, $r, $r2);
}
function set3D($depth = -1, $angle = -1, $shadowMode = 0) {
if (is_array($depth))
$this->set3D2($depth, $angle, $shadowMode);
else
callmethod("PieChart.set3D", $this->ptr, $depth, $angle, $shadowMode);
}
function set3D2($depths, $angle = 45, $shadowMode = 0) {
callmethod("PieChart.set3D2", $this->ptr, $depths, $angle, $shadowMode);
}
function setStartAngle($startAngle, $clockWise = 1) {
callmethod("PieChart.setStartAngle", $this->ptr, $startAngle, $clockWise);
}
function setExplode($sectorNo, $distance = -1) {
callmethod("PieChart.setExplode", $this->ptr, $sectorNo, $distance);
}
function setExplodeGroup($startSector, $endSector, $distance = -1) {
callmethod("PieChart.setExplodeGroup", $this->ptr, $startSector, $endSector, $distance);
}
function setLabelFormat($formatString) {
callmethod("PieChart.setLabelFormat", $this->ptr, $formatString);
}
function setLabelStyle($font = "", $fontSize = 8, $fontColor = TextColor) {
return new TextBox(callmethod("PieChart.setLabelStyle", $this->ptr, $font,
$fontSize, $fontColor));
}
function setLabelPos($pos, $joinLineColor = -1) {
callmethod("PieChart.setLabelPos", $this->ptr, $pos, $joinLineColor);
}
function setLabelLayout($layoutMethod, $pos = -1, $topBound = -1, $bottomBound = -1) {
callmethod("PieChart.setLabelLayout", $this->ptr, $layoutMethod, $pos, $topBound, $bottomBound);
}
function setJoinLine($joinLineColor, $joinLineWidth = 1) {
callmethod("PieChart.setJoinLine", $this->ptr, $joinLineColor, $joinLineWidth);
}
function setLineColor($edgeColor, $joinLineColor = -1) {
callmethod("PieChart.setLineColor", $this->ptr, $edgeColor, $joinLineColor);
}
function setData($data, $labels = Null) {
callmethod("PieChart.setData", $this->ptr, $data, $labels);
}
function sector($sectorNo) {
return new Sector(callmethod("PieChart.sector", $this->ptr, $sectorNo));
}
}
#///////////////////////////////////////////////////////////////////////////////////
#// bindings to axis.h
#///////////////////////////////////////////////////////////////////////////////////
class Mark extends TextBox {
function Mark($ptr) {
$this->ptr = $ptr;
}
function setValue($value) {
callmethod("Mark.setValue", $this->ptr, $value);
}
function setMarkColor($lineColor, $textColor = -1, $tickColor = -1) {
callmethod("Mark.setMarkColor", $this->ptr, $lineColor, $textColor, $tickColor);
}
function setLineWidth($w) {
callmethod("Mark.setLineWidth", $this->ptr, $w);
}
function setDrawOnTop($b) {
callmethod("Mark.setDrawOnTop", $this->ptr, $b);
}
function getLine() {
return callmethod("Mark.getLine", $this->ptr);
}
}
class Axis {
function Axis($ptr) {
$this->ptr = $ptr;
}
function setLabelStyle($font = "", $fontSize = 8, $fontColor = TextColor, $fontAngle = 0) {
return new TextBox(callmethod("Axis.setLabelStyle", $this->ptr, $font, $fontSize, $fontColor, $fontAngle));
}
function setLabelFormat($formatString) {
callmethod("Axis.setLabelFormat", $this->ptr, $formatString);
}
function setLabelGap($d) {
callmethod("Axis.setLabelGap", $this->ptr, $d);
}
function setMultiFormat($filter1, $format1, $filter2 = 1, $format2 = Null, $labelSpan = 1, $promoteFirst = 1) {
if (is_null($format2))
$this->setMultiFormat2($filter1, $format1, $filter2, 1);
else
callmethod("Axis.setMultiFormat", $this->ptr, $filter1, $format1, $filter2, $format2, $labelSpan, $promoteFirst);
}
function setMultiFormat2($filterId, $formatString, $labelSpan = 1, $promoteFirst = 1) {
callmethod("Axis.setMultiFormat2", $this->ptr, $filterId, $formatString, $labelSpan, $promoteFirst);
}
function setFormatCondition($condition, $operand = 0) {
callmethod("Axis.setFormatCondition", $this->ptr, $condition, $operand);
}
function setTitle($text, $font = "", $fontSize = 8, $fontColor = TextColor) {
return new TextBox(callmethod("Axis.setTitle", $this->ptr, $text, $font, $fontSize, $fontColor));
}
function setTitlePos($alignment, $titleGap = 3) {
callmethod("Axis.setTitlePos", $this->ptr, $alignment, $titleGap);
}
function setColors($axisColor, $labelColor = TextColor, $titleColor = -1, $tickColor = -1) {
callmethod("Axis.setColors", $this->ptr, $axisColor, $labelColor, $titleColor, $tickColor);
}
function setTickLength($majorTickLen, $minorTickLen = Null) {
if (is_null($minorTickLen))
callmethod("Axis.setTickLength", $this->ptr, $majorTickLen);
else
$this->setTickLength2($majorTickLen, $minorTickLen);
}
function setTickLength2($majorTickLen, $minorTickLen) {
callmethod("Axis.setTickLength2", $this->ptr, $majorTickLen, $minorTickLen);
}
function setTickWidth($majorTickWidth, $minorTickWidth = -1) {
callmethod("Axis.setTickWidth", $this->ptr, $majorTickWidth, $minorTickWidth);
}
function setTickColor($majorTickColor, $minorTickColor = -1) {
callmethod("Axis.setTickColor", $this->ptr, $majorTickColor, $minorTickColor);
}
function setWidth($width) {
callmethod("Axis.setWidth", $this->ptr, $width);
}
function setLength($length) {
callmethod("Axis.setLength", $this->ptr, $length);
}
function setPos($x, $y, $align = Center) {
callmethod("Axis.setPos", $this->ptr, $x, $y, $align);
}
function setTopMargin($topMargin) {
$this->setMargin($topMargin);
}
function setMargin($topMargin, $bottomMargin = 0) {
callmethod("Axis.setMargin", $this->ptr, $topMargin, $bottomMargin);
}
function setIndent($indent) {
callmethod("Axis.setIndent", $this->ptr, $indent);
}
function setTickOffset($offset) {
callmethod("Axis.setTickOffset", $this->ptr, $offset);
}
function setLabelOffset($offset) {
callmethod("Axis.setLabelOffset", $this->ptr, $offset);
}
function setAutoScale($topExtension = 0.1, $bottomExtension = 0.1, $zeroAffinity = 0.8) {
callmethod("Axis.setAutoScale", $this->ptr, $topExtension, $bottomExtension, $zeroAffinity);
}
function setRounding($roundMin, $roundMax) {
callmethod("Axis.setRounding", $this->ptr, $roundMin, $roundMax);
}
function setTickDensity($majorTickDensity, $minorTickSpacing = -1) {
callmethod("Axis.setTickDensity", $this->ptr, $majorTickDensity, $minorTickSpacing);
}
function setReverse($b = 1) {
callmethod("Axis.setReverse", $this->ptr, $b);
}
function setMinTickInc($inc) {
callmethod("Axis.setMinTickInc", $this->ptr, $inc);
}
function setLabels($labels, $formatString = Null) {
if (is_null($formatString))
return new TextBox(callmethod("Axis.setLabels", $this->ptr, $labels));
else
return $this->setLabels2($labels, $formatString);
}
function setLabels2($labels, $formatString = "") {
return new TextBox(callmethod("Axis.setLabels2", $this->ptr, $labels, $formatString));
}
function setLabelStep($majorTickStep, $minorTickStep = 0, $majorTickOffset = 0, $minorTickOffset = -0x7fffffff) {
callmethod("Axis.setLabelStep", $this->ptr, $majorTickStep, $minorTickStep, $majorTickOffset, $minorTickOffset);
}
function setLinearScale($lowerLimit = Null, $upperLimit = Null, $majorTickInc = 0, $minorTickInc = 0) {
if (is_null($lowerLimit))
$this->setLinearScale3();
else if (is_null($upperLimit))
$this->setLinearScale3($lowerLimit);
else if (is_array($majorTickInc))
$this->setLinearScale2($lowerLimit, $upperLimit, $majorTickInc);
else
callmethod("Axis.setLinearScale", $this->ptr, $lowerLimit, $upperLimit, $majorTickInc, $minorTickInc);
}
function setLinearScale2($lowerLimit, $upperLimit, $labels) {
callmethod("Axis.setLinearScale2", $this->ptr, $lowerLimit, $upperLimit, $labels);
}
function setLinearScale3($formatString = "") {
callmethod("Axis.setLinearScale3", $this->ptr, $formatString);
}
function setLogScale($lowerLimit = Null, $upperLimit = Null, $majorTickInc = 0, $minorTickInc = 0) {
if (is_null($lowerLimit))
$this->setLogScale3();
else if (is_null($upperLimit))
$this->setLogScale3($lowerLimit);
else if (is_array($majorTickInc))
$this->setLogScale2($lowerLimit, $upperLimit, $majorTickInc);
else
callmethod("Axis.setLogScale", $this->ptr, $lowerLimit, $upperLimit, $majorTickInc, $minorTickInc);
}
function setLogScale2($lowerLimit, $upperLimit, $labels = 0) {
if (is_array($labels))
callmethod("Axis.setLogScale2", $this->ptr, $lowerLimit, $upperLimit, $labels);
else
#compatibility with ChartDirector Ver 2.5
$this->setLogScale($lowerLimit, $upperLimit, $labels);
}
function setLogScale3($formatString = "") {
if (!is_string($formatString)) {
#compatibility with ChartDirector Ver 2.5
if ($formatString)
$this->setLogScale3();
else
$this->setLinearScale3();
}
else
callmethod("Axis.setLogScale3", $this->ptr, $formatString);
}
function setDateScale($lowerLimit = Null, $upperLimit = Null, $majorTickInc = 0, $minorTickInc = 0) {
if (is_null($lowerLimit))
$this->setDateScale3();
else if (is_null($upperLimit))
$this->setDateScale3($lowerLimit);
else if (is_array($majorTickInc))
$this->setDateScale2($lowerLimit, $upperLimit, $majorTickInc);
else
callmethod("Axis.setDateScale", $this->ptr, $lowerLimit, $upperLimit, $majorTickInc, $minorTickInc);
}
function setDateScale2($lowerLimit, $upperLimit, $labels) {
callmethod("Axis.setDateScale2", $this->ptr, $lowerLimit, $upperLimit, $labels);
}
function setDateScale3($formatString = "") {
callmethod("Axis.setDateScale3", $this->ptr, $formatString);
}
function syncAxis($axis, $slope = 1, $intercept = 0) {
callmethod("Axis.syncAxis", $this->ptr, $axis->ptr, $slope, $intercept);
}
function copyAxis($axis) {
callmethod("Axis.copyAxis", $this->ptr, $axis->ptr);
}
function addLabel($pos, $label) {
callmethod("Axis.addLabel", $this->ptr, $pos, $label);
}
function addMark($lineColor, $value, $text = "", $font = "", $fontSize = 8) {
return new Mark(callmethod("Axis.addMark", $this->ptr, $lineColor, $value, $text, $font, $fontSize));
}
function addZone($startValue, $endValue, $color) {
callmethod("Axis.addZone", $this->ptr, $startValue, $endValue, $color);
}
function getCoor($v) {
return callmethod("Axis.getCoor", $this->ptr, $v);
}
function getLength() {
return callmethod("Axis.getLength", $this->ptr);
}
function getMinValue() {
return callmethod("Axis.getMinValue", $this->ptr);
}
function getMaxValue() {
return callmethod("Axis.getMaxValue", $this->ptr);
}
function getScaleType() {
return callmethod("Axis.getScaleType", $this->ptr);
}
function getTicks() {
return callmethod("Axis.getTicks", $this->ptr);
}
function getLabel($i) {
return callmethod("Axis.getLabel", $this->ptr, $i);
}
function getAxisImageMap($noOfSegments, $mapWidth, $url, $queryFormat = "", $extraAttr = "", $offsetX = 0, $offsetY = 0) {
return callmethod("Axis.getAxisImageMap", $this->ptr, $noOfSegments, $mapWidth, $url, $queryFormat, $extraAttr, $offsetX, $offsetY);
}
function getHTMLImageMap($url, $queryFormat = "", $extraAttr = "", $offsetX = 0, $offsetY = 0) {
return callmethod("Axis.getHTMLImageMap", $this->ptr, $url, $queryFormat, $extraAttr, $offsetX, $offsetY);
}
}
class AngularAxis {
function AngularAxis($ptr) {
$this->ptr = $ptr;
}
function setLabelStyle($font = "bold", $fontSize = 10, $fontColor = TextColor, $fontAngle = 0) {
return new TextBox(callmethod("AngularAxis.setLabelStyle", $this->ptr, $font, $fontSize, $fontColor, $fontAngle));
}
function setLabelGap($d) {
callmethod("AngularAxis.setLabelGap", $this->ptr, $d);
}
function setLabels($labels, $formatString = Null) {
if (is_null($formatString))
return new TextBox(callmethod("AngularAxis.setLabels", $this->ptr, $labels));
else
return $this->setLabels2($labels, $formatString);
}
function setLabels2($labels, $formatString = "") {
return new TextBox(callmethod("AngularAxis.setLabels2", $this->ptr, $labels, $formatString));
}
function addLabel($pos, $label) {
callmethod("AngularAxis.addLabel", $this->ptr, $pos, $label);
}
function setLinearScale($lowerLimit, $upperLimit, $majorTickInc = 0, $minorTickInc = 0) {
if (is_array($majorTickInc))
$this->setLinearScale2($lowerLimit, $upperLimit, $majorTickInc);
else
callmethod("AngularAxis.setLinearScale", $this->ptr, $lowerLimit, $upperLimit, $majorTickInc, $minorTickInc);
}
function setLinearScale2($lowerLimit, $upperLimit, $labels) {
callmethod("AngularAxis.setLinearScale2", $this->ptr, $lowerLimit, $upperLimit, $labels);
}
function addZone($startValue, $endValue, $startRadius, $endRadius = -1, $fillColor = Null, $edgeColor = -1) {
if (is_null($fillColor))
$this->addZone2($startValue, $endValue, $startRadius, $endRadius);
else
callmethod("AngularAxis.addZone", $this->ptr, $startValue, $endValue, $startRadius, $endRadius, $fillColor, $edgeColor);
}
function addZone2($startValue, $endValue, $fillColor, $edgeColor = -1) {
callmethod("AngularAxis.addZone2", $this->ptr, $startValue, $endValue, $fillColor, $edgeColor);
}
function getCoor($v) {
return callmethod("AngularAxis.getCoor", $this->ptr, $v);
}
function getTicks() {
return callmethod("AngularAxis.getTicks", $this->ptr);
}
function getLabel($i) {
return callmethod("AngularAxis.getLabel", $this->ptr, $i);
}
function getAxisImageMap($noOfSegments, $mapWidth, $url, $queryFormat = "", $extraAttr = "", $offsetX = 0, $offsetY = 0) {
return callmethod("AngularAxis.getAxisImageMap", $this->ptr, $noOfSegments, $mapWidth, $url, $queryFormat, $extraAttr, $offsetX, $offsetY);
}
function getHTMLImageMap($url, $queryFormat = "", $extraAttr = "", $offsetX = 0, $offsetY = 0) {
return callmethod("AngularAxis.getHTMLImageMap", $this->ptr, $url, $queryFormat, $extraAttr, $offsetX, $offsetY);
}
}
#///////////////////////////////////////////////////////////////////////////////////
#// bindings to layer.h
#///////////////////////////////////////////////////////////////////////////////////
class DataSet {
function DataSet($ptr) {
$this->ptr = $ptr;
}
function setData($data) {
callmethod("DataSet.setData", $this->ptr, $data);
}
function setDataName($name) {
callmethod("DataSet.setDataName", $this->ptr, $name);
}
function setDataColor($dataColor, $edgeColor = -1, $shadowColor = -1, $shadowEdgeColor = -1) {
callmethod("DataSet.setDataColor", $this->ptr, $dataColor, $edgeColor, $shadowColor, $shadowEdgeColor);
}
function setUseYAxis2($b = 1) {
callmethod("DataSet.setUseYAxis2", $this->ptr, $b);
}
function setUseYAxis($a) {
callmethod("DataSet.setUseYAxis", $this->ptr, $a->ptr);
}
function setLineWidth($w) {
callmethod("DataSet.setLineWidth", $this->ptr, $w);
}
function setDataLabelFormat($formatString) {
callmethod("DataSet.setDataLabelFormat", $this->ptr, $formatString);
}
function setDataLabelStyle($font = "", $fontSize = 8, $fontColor = TextColor, $fontAngle = 0) {
return new TextBox(callmethod("DataSet.setDataLabelStyle", $this->ptr, $font, $fontSize, $fontColor, $fontAngle));
}
function setDataSymbol($symbol, $size = Null, $fillColor = -1, $edgeColor = -1, $lineWidth = 1) {
if (is_array($symbol)) {
if (is_null($size))
$size = 11;
$this->setDataSymbol4($symbol, $size, $fillColor, $edgeColor);
return;
}
if (!is_numeric($symbol))
return $this->setDataSymbol2($symbol);
if (is_null($size))
$size = 5;
callmethod("DataSet.setDataSymbol", $this->ptr, $symbol, $size, $fillColor, $edgeColor, $lineWidth);
}
function setDataSymbol2($image) {
if (!is_string($image))
return $this->setDataSymbol3($image);
callmethod("DataSet.setDataSymbol2", $this->ptr, $image);
}
function setDataSymbol3($image) {
callmethod("DataSet.setDataSymbol3", $this->ptr, $image->ptr);
}
function setDataSymbol4($polygon, $size = 11, $fillColor = -1, $edgeColor = -1) {
callmethod("DataSet.setDataSymbol4", $this->ptr, $polygon, $size, $fillColor, $edgeColor);
}
}
class Layer {
function Layer($ptr) {
$this->ptr = $ptr;
}
function setSize($x, $y, $w, $h, $swapXY = 0) {
callmethod("Layer.setSize", $this->ptr, $x, $y, $w, $h, $swapXY);
}
function setBorderColor($color, $raisedEffect = 0) {
callmethod("Layer.setBorderColor", $this->ptr, $color, $raisedEffect);
}
function set3D($d = -1, $zGap = 0) {
callmethod("Layer.set3D", $this->ptr, $d, $zGap);
}
function set3D2($xDepth, $yDepth, $xGap, $yGap) {
callmethod("Layer.set3D2", $this->ptr, $xDepth, $yDepth, $xGap, $yGap);
}
function setLineWidth($w) {
callmethod("Layer.setLineWidth", $this->ptr, $w);
}
function setLegend($m) {
callmethod("Layer.setLegend", $this->ptr, $m);
}
function setLegendOrder($dataSetOrder, $layerOrder = -1) {
callmethod("Layer.setLegendOrder", $this->ptr, $dataSetOrder, $layerOrder);
}
function setDataCombineMethod($m) {
callmethod("Layer.setDataCombineMethod", $this->ptr, $m);
}
function addDataSet($data, $color = -1, $name = "") {
return new DataSet(callmethod("Layer.addDataSet", $this->ptr, $data, $color, $name));
}
function addDataGroup($name = "") {
callmethod("Layer.addDataGroup", $this->ptr, $name);
}
function addExtraField($texts) {
callmethod("Layer.addExtraField", $this->ptr, $texts);
}
function addExtraField2($numbers) {
callmethod("Layer.addExtraField2", $this->ptr, $numbers);
}
function getDataSet($dataSet) {
return new DataSet(callmethod("Layer.getDataSet", $this->ptr, $dataSet));
}
function setUseYAxis2($b = 1) {
callmethod("Layer.setUseYAxis2", $this->ptr, $b);
}
function setUseYAxis($a) {
callmethod("Layer.setUseYAxis", $this->ptr, $a->ptr);
}
function setXData($xData, $maxValue = Null) {
if (is_null($maxValue))
callmethod("Layer.setXData", $this->ptr, $xData);
else
$this->setXData2($xData, $maxValue);
}
function setXData2($minValue, $maxValue) {
callmethod("Layer.setXData2", $this->ptr, $minValue, $maxValue);
}
function alignLayer($layer, $dataSet) {
callmethod("Layer.alignLayer", $this->ptr, $layer->ptr, $dataSet);
}
function getMinX() {
return callmethod("Layer.getMinX", $this->ptr);
}
function getMaxX() {
return callmethod("Layer.getMaxX", $this->ptr);
}
function getMaxY($yAxis = 1) {
return callmethod("Layer.getMaxY", $this->ptr, $yAxis);
}
function getMinY($yAxis = 1) {
return callmethod("Layer.getMinY", $this->ptr, $yAxis);
}
function getDepthX() {
return callmethod("Layer.getDepthX", $this->ptr);
}
function getDepthY() {
return callmethod("Layer.getDepthY", $this->ptr);
}
function getXCoor($v) {
return callmethod("Layer.getXCoor", $this->ptr, $v);
}
function getYCoor($v, $yAxis = 1) {
if (is_object($yAxis))
return callmethod("Layer.getYCoor2", $this->ptr, $v, $yAxis->ptr);
else
return callmethod("Layer.getYCoor", $this->ptr, $v, $yAxis);
}
function xZoneColor($threshold, $belowColor, $aboveColor) {
return callmethod("Layer.xZoneColor", $this->ptr, $threshold, $belowColor, $aboveColor);
}
function yZoneColor($threshold, $belowColor, $aboveColor, $yAxis = 1) {
if (is_object($yAxis))
return callmethod("Layer.yZoneColor2", $this->ptr, $threshold, $belowColor, $aboveColor, $yAxis->ptr);
else
return callmethod("Layer.yZoneColor", $this->ptr, $threshold, $belowColor, $aboveColor, $yAxis);
}
function setDataLabelFormat($formatString) {
callmethod("Layer.setDataLabelFormat", $this->ptr, $formatString);
}
function setDataLabelStyle($font = "", $fontSize = 8, $fontColor = TextColor, $fontAngle = 0) {
return new TextBox(callmethod("Layer.setDataLabelStyle", $this->ptr, $font, $fontSize, $fontColor, $fontAngle));
}
function setAggregateLabelFormat($formatString) {
callmethod("Layer.setAggregateLabelFormat", $this->ptr, $formatString);
}
function setAggregateLabelStyle($font = "", $fontSize = 8, $fontColor = TextColor, $fontAngle = 0) {
return new TextBox(callmethod("Layer.setAggregateLabelStyle", $this->ptr, $font, $fontSize, $fontColor, $fontAngle));
}
function addCustomDataLabel($dataSet, $dataItem, $label, $font = "", $fontSize = 8, $fontColor = TextColor, $fontAngle = 0) {
return new TextBox(callmethod("Layer.addCustomDataLabel", $this->ptr, $dataSet, $dataItem, $label, $font, $fontSize, $fontColor, $fontAngle));
}
function addCustomAggregateLabel($dataItem, $label, $font = "", $fontSize = 8, $fontColor = TextColor, $fontAngle = 0) {
return new TextBox(callmethod("Layer.addCustomAggregateLabel", $this->ptr, $dataItem, $label, $font, $fontSize, $fontColor, $fontAngle));
}
function addCustomGroupLabel($dataGroup, $dataItem, $label, $font = "", $fontSize = 8, $fontColor = TextColor, $fontAngle = 0) {
return new TextBox(callmethod("Layer.addCustomGroupLabel", $this->ptr, $dataGroup, $dataItem, $label, $font, $fontSize, $fontColor, $fontAngle));
}
function getImageCoor($dataSet, $dataItem = Null, $offsetX = 0, $offsetY = 0) {
if (is_null($dataItem))
return $this->getImageCoor2($dataSet, $offsetX, $offsetY);
return callmethod("Layer.getImageCoor", $this->ptr, $dataSet, $dataItem, $offsetX, $offsetY);
}
function getImageCoor2($dataItem, $offsetX = 0, $offsetY = 0) {
return callmethod("Layer.getImageCoor2", $this->ptr, $dataItem, $offsetX, $offsetY);
}
function getHTMLImageMap($url, $queryFormat = "", $extraAttr = "", $offsetX = 0, $offsetY = 0) {
return callmethod("Layer.getHTMLImageMap", $this->ptr, $url, $queryFormat, $extraAttr, $offsetX, $offsetY);
}
function setHTMLImageMap($url, $queryFormat = "", $extraAttr = "") {
return callmethod("Layer.setHTMLImageMap", $this->ptr, $url, $queryFormat, $extraAttr);
}
}
#///////////////////////////////////////////////////////////////////////////////////
#// bindings to barlayer.h
#///////////////////////////////////////////////////////////////////////////////////
class BarLayer extends Layer {
function BarLayer($ptr) {
$this->ptr = $ptr;
}
function setBarGap($barGap, $subBarGap = 0.2) {
callmethod("BarLayer.setBarGap", $this->ptr, $barGap, $subBarGap);
}
function setBarWidth($barWidth, $subBarWidth = -1) {
callmethod("BarLayer.setBarWidth", $this->ptr, $barWidth, $subBarWidth);
}
function setMinLabelSize($s) {
callmethod("BarLayer.setMinLabelSize", $this->ptr, $s);
}
function setBarShape($shape, $dataGroup = -1, $dataItem = -1) {
if (is_array($shape))
$this->setBarShape2($shape, $dataGroup, $dataItem);
else
callmethod("BarLayer.setBarShape", $this->ptr, $shape, $dataGroup, $dataItem);
}
function setBarShape2($shape, $dataGroup = -1, $dataItem = -1) {
callmethod("BarLayer.setBarShape2", $this->ptr, $shape, $dataGroup, $dataItem);
}
function setIconSize($height, $width = -1) {
callmethod("BarLayer.setIconSize", $this->ptr, $height, $width);
}
function setOverlapRatio($overlapRatio, $firstOnTop = 1) {
callmethod("BarLayer.setOverlapRatio", $this->ptr, $overlapRatio, $firstOnTop);
}
}
#///////////////////////////////////////////////////////////////////////////////////
#// bindings to linelayer.h
#///////////////////////////////////////////////////////////////////////////////////
class LineLayer extends Layer {
function LineLayer($ptr) {
$this->ptr = $ptr;
}
function setSymbolScale($zDataX, $scaleTypeX = PixelScale, $zDataY = Null, $scaleTypeY = PixelScale) {
callmethod("LineLayer.setSymbolScale", $this->ptr, $zDataX, $scaleTypeX, $zDataY, $scaleTypeY);
}
function setGapColor($lineColor, $lineWidth = -1) {
callmethod("LineLayer.setGapColor", $this->ptr, $lineColor, $lineWidth);
}
function setImageMapWidth($width) {
callmethod("LineLayer.setImageMapWidth", $this->ptr, $width);
}
function getLine($dataSet = 0) {
return callmethod("LineLayer.getLine", $this->ptr, $dataSet);
}
}
class ScatterLayer extends LineLayer {
function ScatterLayer($ptr) {
$this->ptr = $ptr;
}
}
class InterLineLayer extends LineLayer {
function InterLineLayer($ptr) {
$this->ptr = $ptr;
}
function setGapColor($gapColor12, $gapColor21 = -1) {
return callmethod("InterLineLayer.setGapColor", $this->ptr, $gapColor12, $gapColor21);
}
}
class SplineLayer extends LineLayer {
function SplineLayer($ptr) {
$this->ptr = $ptr;
}
function setTension($tension) {
return callmethod("SplineLayer.setTension", $this->ptr, $tension);
}
}
class StepLineLayer extends LineLayer {
function StepLineLayer($ptr) {
$this->ptr = $ptr;
}
function setAlignment($a) {
return callmethod("StepLineLayer.getLine", $this->ptr, $a);
}
}
#///////////////////////////////////////////////////////////////////////////////////
#// bindings to arealayer.h
#///////////////////////////////////////////////////////////////////////////////////
class AreaLayer extends Layer {
function AreaLayer($ptr) {
$this->ptr = $ptr;
}
function setMinLabelSize($s) {
callmethod("AreaLayer.setMinLabelSize", $this->ptr, $s);
}
function setGapColor($fillColor) {
callmethod("AreaLayer.setGapColor", $this->ptr, $fillColor);
}
}
#///////////////////////////////////////////////////////////////////////////////////
#// bindings to trendlayer.h
#///////////////////////////////////////////////////////////////////////////////////
class TrendLayer extends Layer {
function TrendLayer($ptr) {
$this->ptr = $ptr;
}
function setImageMapWidth($width) {
callmethod("TrendLayer.setImageMapWidth", $this->ptr, $width);
}
function getLine() {
return callmethod("TrendLayer.getLine", $this->ptr);
}
function addConfidenceBand($confidence, $upperFillColor, $upperEdgeColor = Transparent, $upperLineWidth = 1,
$lowerFillColor = -1, $lowerEdgeColor = -1, $lowerLineWidth = -1) {
callmethod("TrendLayer.addConfidenceBand", $this->ptr, $confidence, $upperFillColor, $upperEdgeColor, $upperLineWidth,
$lowerFillColor, $lowerEdgeColor, $lowerLineWidth);
}
function addPredictionBand($confidence, $upperFillColor, $upperEdgeColor = Transparent, $upperLineWidth = 1,
$lowerFillColor = -1, $lowerEdgeColor = -1, $lowerLineWidth = -1) {
callmethod("TrendLayer.addPredictionBand", $this->ptr, $confidence, $upperFillColor, $upperEdgeColor, $upperLineWidth,
$lowerFillColor, $lowerEdgeColor, $lowerLineWidth);
}
function getSlope() {
return callmethod("TrendLayer.getSlope", $this->ptr);
}
function getIntercept() {
return callmethod("TrendLayer.getIntercept", $this->ptr);
}
function getCorrelation() {
return callmethod("TrendLayer.getCorrelation", $this->ptr);
}
function getStdError() {
return callmethod("TrendLayer.getStdError", $this->ptr);
}
}
#///////////////////////////////////////////////////////////////////////////////////
#// bindings to hloclayer.h
#///////////////////////////////////////////////////////////////////////////////////
class BaseBoxLayer extends Layer
{
function BaseBoxLayer($ptr) {
$this->ptr = $ptr;
}
function setDataGap($gap) {
callmethod("BaseBoxLayer.setDataGap", $this->ptr, $gap);
}
function setDataWidth($width) {
callmethod("BaseBoxLayer.setDataWidth", $this->ptr, $width);
}
}
class HLOCLayer extends BaseBoxLayer {
function HLOCLayer($ptr) {
$this->ptr = $ptr;
}
function setColorMethod($colorMethod, $riseColor, $fallColor = -1, $leadValue = -1.7E308) {
callmethod("HLOCLayer.setColorMethod", $this->ptr, $colorMethod, $riseColor, $fallColor, $leadValue);
}
}
class CandleStickLayer extends BaseBoxLayer {
function CandleStickLayer($ptr) {
$this->ptr = $ptr;
}
}
class BoxWhiskerLayer extends BaseBoxLayer {
function BoxWhiskerLayer($ptr) {
$this->ptr = $ptr;
}
function setBoxColors($colors, $names = Null) {
callmethod("BoxWhiskerLayer.setBoxColors", $this->ptr, $colors, $names);
}
function setBoxColor($item, $boxColor) {
callmethod("BoxWhiskerLayer.setBoxColor", $this->ptr, $item, $boxColor);
}
function setWhiskerBrightness($whiskerBrightness) {
callmethod("BoxWhiskerLayer.setWhiskerBrightness", $this->ptr, $whiskerBrightness);
}
}
class VectorLayer extends Layer
{
function VectorLayer($ptr) {
$this->ptr = $ptr;
}
function setVector($lengths, $directions, $lengthScale = PixelScale) {
callmethod("VectorLayer.setVector", $this->ptr, $lengths, $directions, $lengthScale);
}
function setArrowHead($width, $height = 0) {
if (is_array($width))
$this->setArrowHead2($width);
else
callmethod("VectorLayer.setArrowHead", $this->ptr, $width, $height);
}
function setArrowHead2($polygon) {
callmethod("VectorLayer.setArrowHead2", $this->ptr, $polygon);
}
function setArrowStem($polygon) {
callmethod("VectorLayer.setArrowStem", $this->ptr, $polygon);
}
function setArrowAlignment($alignment) {
callmethod("VectorLayer.setArrowAlignment", $this->ptr, $alignment);
}
function setIconSize($height, $width = 0) {
callmethod("VectorLayer.setIconSize", $this->ptr, $height, $width);
}
}
#///////////////////////////////////////////////////////////////////////////////////
#// bindings to xychart.h
#///////////////////////////////////////////////////////////////////////////////////
class PlotArea {
function PlotArea($ptr) {
$this->ptr = $ptr;
}
function setBackground($color, $altBgColor = -1, $edgeColor = -1) {
callmethod("PlotArea.setBackground", $this->ptr, $color, $altBgColor, $edgeColor);
}
function setBackground2($img, $align = Center) {
callmethod("PlotArea.setBackground2", $this->ptr, $img, $align);
}
function set4QBgColor($Q1Color, $Q2Color, $Q3Color, $Q4Color, $edgeColor = -1) {
callmethod("PlotArea.set4QBgColor", $this->ptr, $Q1Color, $Q2Color, $Q3Color, $Q4Color, $edgeColor);
}
function setAltBgColor($horizontal, $color1, $color2, $edgeColor = -1) {
callmethod("PlotArea.setAltBgColor", $this->ptr, $horizontal, $color1, $color2, $edgeColor);
}
function setGridColor($hGridColor, $vGridColor = Transparent, $minorHGridColor = -1, $minorVGridColor = -1) {
callmethod("PlotArea.setGridColor", $this->ptr, $hGridColor, $vGridColor, $minorHGridColor, $minorVGridColor);
}
function setGridWidth($hGridWidth, $vGridWidth = -1, $minorHGridWidth = -1, $minorVGridWidth = -1) {
callmethod("PlotArea.setGridWidth", $this->ptr, $hGridWidth, $vGridWidth, $minorHGridWidth, $minorVGridWidth);
}
}
class XYChart extends BaseChart {
function XYChart($width, $height, $bgColor = BackgroundColor, $edgeColor = Transparent, $raisedEffect = 0) {
$this->ptr = callmethod("XYChart.create", $width, $height, $bgColor, $edgeColor, $raisedEffect);
$this->xAxis = new Axis(callmethod("XYChart.xAxis", $this->ptr));
$this->xAxis2 = new Axis(callmethod("XYChart.xAxis2", $this->ptr));
$this->yAxis = new Axis(callmethod("XYChart.yAxis", $this->ptr));
$this->yAxis2 = new Axis(callmethod("XYChart.yAxis2", $this->ptr));
autoDestroy($this);
}
function addAxis($align, $offset) {
return new Axis(callmethod("XYChart.addAxis", $this->ptr, $align, $offset));
}
function yAxis() {
return new Axis(callmethod("XYChart.yAxis", $this->ptr));
}
function yAxis2() {
return new Axis(callmethod("XYChart.yAxis2", $this->ptr));
}
function syncYAxis($slope = 1, $intercept = 0) {
callmethod("XYChart.syncYAxis", $this->ptr, $slope, $intercept);
}
function setYAxisOnRight($b = 1) {
callmethod("XYChart.setYAxisOnRight", $this->ptr, $b);
}
function xAxis() {
return new Axis(callmethod("XYChart.xAxis", $this->ptr));
}
function xAxis2() {
return new Axis(callmethod("XYChart.xAxis2", $this->ptr));
}
function setXAxisOnTop($b = 1) {
callmethod("XYChart.setXAxisOnTop", $this->ptr, $b);
}
function swapXY($b = 1) {
callmethod("XYChart.swapXY", $this->ptr, $b);
}
function setAxisAtOrigin($originMode = XYAxisAtOrigin, $symmetryMode = 0) {
callmethod("XYChart.setAxisAtOrigin", $this->ptr, $originMode, $symmetryMode);
}
function getXCoor($v) {
return callmethod("XYChart.getXCoor", $this->ptr, $v);
}
function getYCoor($v, $yAxis = Null) {
return callmethod("XYChart.getYCoor", $this->ptr, $v, decodePtr($yAxis));
}
function xZoneColor($threshold, $belowColor, $aboveColor) {
return callmethod("XYChart.xZoneColor", $this->ptr, $threshold, $belowColor, $aboveColor);
}
function yZoneColor($threshold, $belowColor, $aboveColor, $axis = Null) {
return callmethod("XYChart.yZoneColor", $this->ptr, $threshold, $belowColor, $aboveColor, decodePtr($axis));
}
function setPlotArea($x, $y, $width, $height, $bgColor = Transparent, $altBgColor = -1,
$edgeColor = -1, $hGridColor = 0xc0c0c0, $vGridColor = Transparent) {
return new PlotArea(callmethod("XYChart.setPlotArea", $this->ptr,
$x, $y, $width, $height, $bgColor, $altBgColor, $edgeColor, $hGridColor, $vGridColor));
}
function setClipping($margin = 0) {
callmethod("XYChart.setClipping", $this->ptr, $margin);
}
function setTrimData($startPos, $len = 0x7fffffff) {
callmethod("XYChart.setTrimData", $this->ptr, $startPos, $len);
}
function addBarLayer($data = Null, $color = -1, $name = "", $depth = 0) {
if ($data != Null)
return new BarLayer(callmethod("XYChart.addBarLayer", $this->ptr, $data, $color, $name, $depth));
else
return $this->addBarLayer2();
}
function addBarLayer2($dataCombineMethod = Side, $depth = 0) {
return new BarLayer(callmethod("XYChart.addBarLayer2", $this->ptr, $dataCombineMethod, $depth));
}
function addBarLayer3($data, $colors = Null, $names = Null, $depth = 0) {
return new BarLayer(callmethod("XYChart.addBarLayer3", $this->ptr, $data, $colors, $names, $depth));
}
function addLineLayer($data = Null, $color = -1, $name = "", $depth = 0) {
if ($data != Null)
return new LineLayer(callmethod("XYChart.addLineLayer", $this->ptr, $data, $color, $name, $depth));
else
return $this->addLineLayer2();
}
function addLineLayer2($dataCombineMethod = Overlay, $depth = 0) {
return new LineLayer(callmethod("XYChart.addLineLayer2", $this->ptr, $dataCombineMethod, $depth));
}
function addAreaLayer($data = Null, $color = -1, $name = "", $depth = 0) {
if ($data != Null)
return new AreaLayer(callmethod("XYChart.addAreaLayer", $this->ptr, $data, $color, $name, $depth));
else
return $this->addAreaLayer2();
}
function addAreaLayer2($dataCombineMethod = Stack, $depth = 0) {
return new AreaLayer(callmethod("XYChart.addAreaLayer2", $this->ptr, $dataCombineMethod, $depth));
}
function addHLOCLayer($highData = Null, $lowData = Null, $openData = Null, $closeData = Null, $color = -1) {
if ($highData != Null)
return $this->addHLOCLayer3($highData, $lowData, $openData, $closeData, $color, $color);
else
return $this->addHLOCLayer2();
}
function addHLOCLayer2() {
return new HLOCLayer(callmethod("XYChart.addHLOCLayer2", $this->ptr));
}
function addHLOCLayer3($highData, $lowData, $openData, $closeData, $upColor, $downColor, $colorMode = -1, $leadValue = -1.7E308) {
return new HLOCLayer(callmethod("XYChart.addHLOCLayer3", $this->ptr, $highData, $lowData, $openData, $closeData, $upColor, $downColor, $colorMode, $leadValue));
}
function addScatterLayer($xData, $yData, $name = "", $symbol = SquareSymbol, $symbolSize = 5, $fillColor = -1, $edgeColor = -1) {
return new ScatterLayer(callmethod("XYChart.addScatterLayer", $this->ptr, $xData, $yData, $name, $symbol, $symbolSize, $fillColor, $edgeColor));
}
function addCandleStickLayer($highData, $lowData, $openData, $closeData, $riseColor = 0xffffff, $fallColor = 0x0, $edgeColor = LineColor) {
return new CandleStickLayer(callmethod("XYChart.addCandleStickLayer", $this->ptr, $highData, $lowData, $openData, $closeData, $riseColor, $fallColor, $edgeColor));
}
function addBoxWhiskerLayer($boxTop, $boxBottom, $maxData = Null, $minData = Null, $midData = Null, $fillColor = -1, $whiskerColor = LineColor, $edgeColor = LineColor) {
return new BoxWhiskerLayer(callmethod("XYChart.addBoxWhiskerLayer", $this->ptr, $boxTop, $boxBottom, $maxData, $minData, $midData, $fillColor, $whiskerColor, $edgeColor));
}
function addBoxWhiskerLayer2($boxTop, $boxBottom, $maxData = Null, $minData = Null, $midData = Null, $fillColors = Null, $whiskerBrightness = 0.5, $names = Null) {
return new BoxWhiskerLayer(callmethod("XYChart.addBoxWhiskerLayer2", $this->ptr, $boxTop, $boxBottom, $maxData, $minData, $midData, $fillColors, $whiskerBrightness, $names));
}
function addBoxLayer($boxTop, $boxBottom, $color = -1, $name = "") {
return new BoxWhiskerLayer(callmethod("XYChart.addBoxLayer", $this->ptr, $boxTop, $boxBottom, $color, $name));
}
function addTrendLayer($data, $color = -1, $name = "", $depth = 0) {
return new TrendLayer(callmethod("XYChart.addTrendLayer", $this->ptr, $data, $color, $name, $depth));
}
function addTrendLayer2($xData, $yData, $color = -1, $name = "", $depth = 0) {
return new TrendLayer(callmethod("XYChart.addTrendLayer2", $this->ptr, $xData, $yData, $color, $name, $depth));
}
function addSplineLayer($data = Null, $color = -1, $name = "") {
return new SplineLayer(callmethod("XYChart.addSplineLayer", $this->ptr, $data, $color, $name));
}
function addStepLineLayer($data = Null, $color = -1, $name = "") {
return new StepLineLayer(callmethod("XYChart.addStepLineLayer", $this->ptr, $data, $color, $name));
}
function addInterLineLayer($line1, $line2, $color12, $color21 = -1) {
return new InterLineLayer(callmethod("XYChart.addInterLineLayer", $this->ptr, $line1, $line2, $color12, $color21));
}
function addVectorLayer($xData, $yData, $lengths, $directions, $lengthScale = PixelScale, $color = -1, $name = "") {
return new VectorLayer(callmethod("XYChart.addVectorLayer", $this->ptr, $xData, $yData, $lengths, $directions, $lengthScale, $color, $name));
}
}
#///////////////////////////////////////////////////////////////////////////////////
#// bindings to polarchart.h
#///////////////////////////////////////////////////////////////////////////////////
class PolarLayer
{
function PolarLayer($ptr) {
$this->ptr = $ptr;
}
function setData($data, $color = -1, $name = "") {
callmethod("PolarLayer.setData", $this->ptr, $data, $color, $name);
}
function setAngles($angles) {
callmethod("PolarLayer.setAngles", $this->ptr, $angles);
}
function setBorderColor($edgeColor) {
callmethod("PolarLayer.setBorderColor", $this->ptr, $edgeColor);
}
function setLineWidth($w) {
callmethod("PolarLayer.setLineWidth", $this->ptr, $w);
}
function setDataSymbol($symbol, $size = Null, $fillColor = -1, $edgeColor = -1, $lineWidth = 1) {
if (is_array($symbol)) {
if (is_null($size))
$size = 11;
$this->setDataSymbol4($symbol, $size, $fillColor, $edgeColor);
return;
}
if (!is_numeric($symbol))
return $this->setDataSymbol2($symbol);
if (is_null($size))
$size = 7;
callmethod("PolarLayer.setDataSymbol", $this->ptr, $symbol, $size, $fillColor, $edgeColor, $lineWidth);
}
function setDataSymbol2($image) {
if (!is_string($image))
return $this->setDataSymbol3($image);
callmethod("PolarLayer.setDataSymbol2", $this->ptr, $image);
}
function setDataSymbol3($image) {
callmethod("PolarLayer.setDataSymbol3", $this->ptr, $image->ptr);
}
function setDataSymbol4($polygon, $size = 11, $fillColor = -1, $edgeColor = -1) {
callmethod("PolarLayer.setDataSymbol4", $this->ptr, $polygon, $size, $fillColor, $edgeColor);
}
function setSymbolScale($zData, $scaleType = PixelScale) {
callmethod("PolarLayer.setSymbolScale", $this->ptr, $zData, $scaleType);
}
function setImageMapWidth($width) {
callmethod("PolarLayer.setImageMapWidth", $this->ptr, $width);
}
function getImageCoor($dataItem, $offsetX = 0, $offsetY = 0) {
return callmethod("PolarLayer.getImageCoor", $this->ptr, $dataItem, $offsetX, $offsetY);
}
function getHTMLImageMap($url, $queryFormat = "", $extraAttr = "", $offsetX = 0, $offsetY = 0) {
return callmethod("PolarLayer.getHTMLImageMap", $this->ptr, $url, $queryFormat, $extraAttr, $offsetX, $offsetY);
}
function setHTMLImageMap($url, $queryFormat = "", $extraAttr = "") {
callmethod("PolarLayer.setHTMLImageMap", $this->ptr, $url, $queryFormat, $extraAttr);
}
function setDataLabelFormat($formatString) {
callmethod("PolarLayer.setDataLabelFormat", $this->ptr, $formatString);
}
function setDataLabelStyle($font = "", $fontSize = 8, $fontColor = TextColor, $fontAngle = 0) {
return new TextBox(callmethod("PolarLayer.setDataLabelStyle", $this->ptr, $font, $fontSize, $fontColor, $fontAngle));
}
function addCustomDataLabel($i, $label, $font = "", $fontSize = 8, $fontColor = TextColor, $fontAngle = 0) {
return new TextBox(callmethod("PolarLayer.addCustomDataLabel", $this->ptr, $i, $label, $font, $fontSize, $fontColor, $fontAngle));
}
}
class PolarAreaLayer extends PolarLayer {
function PolarAreaLayer($ptr) {
$this->ptr = $ptr;
}
}
class PolarLineLayer extends PolarLayer {
function PolarLineLayer($ptr) {
$this->ptr = $ptr;
}
function setCloseLoop($b) {
callmethod("PolarLineLayer.setCloseLoop", $this->ptr, $b);
}
function setGapColor($lineColor, $lineWidth = -1) {
callmethod("PolarLineLayer.setGapColor", $this->ptr, $lineColor, $lineWidth);
}
}
class PolarSplineLineLayer extends PolarLineLayer {
function PolarSplineLineLayer($ptr) {
$this->ptr = $ptr;
}
function setTension($tension) {
callmethod("PolarSplineLineLayer.setTension", $this->ptr, $tension);
}
}
class PolarSplineAreaLayer extends PolarAreaLayer {
function PolarSplineAreaLayer($ptr) {
$this->ptr = $ptr;
}
function setTension($tension) {
callmethod("PolarSplineAreaLayer.setTension", $this->ptr, $tension);
}
}
class PolarVectorLayer extends PolarLayer
{
function PolarVectorLayer($ptr) {
$this->ptr = $ptr;
}
function setVector($lengths, $directions, $lengthScale = PixelScale) {
callmethod("PolarVectorLayer.setVector", $this->ptr, $lengths, $directions, $lengthScale);
}
function setArrowHead($width, $height = 0) {
if (is_array($width))
$this->setArrowHead2($width);
else
callmethod("PolarVectorLayer.setArrowHead", $this->ptr, $width, $height);
}
function setArrowHead2($polygon) {
callmethod("PolarVectorLayer.setArrowHead2", $this->ptr, $polygon);
}
function setArrowStem($polygon) {
callmethod("PolarVectorLayer.setArrowStem", $this->ptr, $polygon);
}
function setArrowAlignment($alignment) {
callmethod("PolarVectorLayer.setArrowAlignment", $this->ptr, $alignment);
}
function setIconSize($height, $width = 0) {
callmethod("PolarVectorLayer.setIconSize", $this->ptr, $height, $width);
}
}
class PolarChart extends BaseChart
{
function PolarChart($width, $height, $bgColor = BackgroundColor, $edgeColor = Transparent, $raisedEffect = 0) {
$this->ptr = callmethod("PolarChart.create", $width, $height, $bgColor, $edgeColor, $raisedEffect);
$this->angularAxis = new AngularAxis(callmethod("PolarChart.angularAxis", $this->ptr));
$this->radialAxis = new Axis(callmethod("PolarChart.radialAxis", $this->ptr));
autoDestroy($this);
}
function setPlotArea($x, $y, $r, $bgColor = Transparent, $edgeColor = Transparent, $edgeWidth = 1) {
callmethod("PolarChart.setPlotArea", $this->ptr, $x, $y, $r, $bgColor, $edgeColor, $edgeWidth);
}
function setPlotAreaBg($bgColor1, $bgColor2 = -1, $altRings = 1) {
callmethod("PolarChart.setPlotAreaBg", $this->ptr, $bgColor1, $bgColor2, $altRings);
}
function setGridColor($rGridColor = 0x80000000, $rGridWidth = 1, $aGridColor = 0x80000000, $aGridWidth = 1) {
callmethod("PolarChart.setGridColor", $this->ptr, $rGridColor, $rGridWidth, $aGridColor, $aGridWidth);
}
function setGridStyle($polygonGrid, $gridOnTop = 1) {
callmethod("PolarChart.setGridStyle", $this->ptr, $polygonGrid, $gridOnTop);
}
function setStartAngle($startAngle, $clockwise = 1) {
callmethod("PolarChart.setStartAngle", $this->ptr, $startAngle, $clockwise);
}
function angularAxis() {
return new AngularAxis(callmethod("PolarChart.angularAxis", $this->ptr));
}
function radialAxis() {
return new Axis(callmethod("PolarChart.radialAxis", $this->ptr));
}
function getXCoor($r, $a) {
return callmethod("PolarChart.getXCoor", $this->ptr, $r, $a);
}
function getYCoor($r, $a) {
return callmethod("PolarChart.getYCoor", $this->ptr, $r, $a);
}
function addAreaLayer($data, $color = -1, $name = "") {
return new PolarAreaLayer(callmethod("PolarChart.addAreaLayer", $this->ptr, $data, $color, $name));
}
function addLineLayer($data, $color = -1, $name = "") {
return new PolarLineLayer(callmethod("PolarChart.addLineLayer", $this->ptr, $data, $color, $name));
}
function addSplineLineLayer($data, $color = -1, $name = "") {
return new PolarSplineLineLayer(callmethod("PolarChart.addSplineLineLayer", $this->ptr, $data, $color, $name));
}
function addSplineAreaLayer($data, $color = -1, $name = "") {
return new PolarSplineAreaLayer(callmethod("PolarChart.addSplineAreaLayer", $this->ptr, $data, $color, $name));
}
function addVectorLayer($rData, $aData, $lengths, $directions, $lengthScale = PixelScale, $color = -1, $name = "") {
return new PolarVectorLayer(callmethod("PolarChart.addVectorLayer", $this->ptr, $rData, $aData, $lengths, $directions, $lengthScale, $color, $name));
}
}
class MeterPointer
{
function MeterPointer($ptr) {
$this->ptr = $ptr;
}
function setColor($fillColor, $edgeColor = -1) {
callmethod("MeterPointer.setColor", $this->ptr, $fillColor, $edgeColor);
}
function setPos($value) {
callmethod("MeterPointer.setPos", $this->ptr, $value);
}
function setShape($pointerType, $lengthRatio = NoValue, $widthRatio = NoValue) {
if (is_array($pointerType))
$this->setShape2($pointerType, $lengthRatio, $widthRatio);
else
callmethod("MeterPointer.setShape", $this->ptr, $pointerType, $lengthRatio, $widthRatio);
}
function setShape2($pointerCoor, $lengthRatio = NoValue, $widthRatio = NoValue) {
callmethod("MeterPointer.setShape2", $this->ptr, $pointerCoor, $lengthRatio, $widthRatio);
}
function setZOrder($z) {
callmethod("MeterPointer.setZOrder", $this->ptr, $z);
}
}
class BaseMeter extends BaseChart
{
function addPointer($value, $fillColor = LineColor, $edgeColor = -1) {
return new MeterPointer(callmethod("BaseMeter.addPointer", $this->ptr, $value, $fillColor, $edgeColor));
}
function setScale($lowerLimit, $upperLimit, $majorTickInc = 0, $minorTickInc = 0, $microTickInc = 0) {
if (is_array($majorTickInc)) {
if ($minorTickInc != 0)
$this->setScale3($lowerLimit, $upperLimit, $majorTickInc, $minorTickInc);
else
$this->setScale2($lowerLimit, $upperLimit, $majorTickInc);
} else
callmethod("BaseMeter.setScale", $this->ptr, $lowerLimit, $upperLimit, $majorTickInc, $minorTickInc, $microTickInc);
}
function setScale2($lowerLimit, $upperLimit, $labels) {
callmethod("BaseMeter.setScale2", $this->ptr, $lowerLimit, $upperLimit, $labels);
}
function setScale3($lowerLimit, $upperLimit, $labels, $formatString = "") {
callmethod("BaseMeter.setScale3", $this->ptr, $lowerLimit, $upperLimit, $labels, $formatString);
}
function addLabel($pos, $label) {
callmethod("BaseMeter.addLabel", $this->ptr, $pos, $label);
}
function getLabel($i) {
return callmethod("BaseMeter.getLabel", $this->ptr, $i);
}
function getTicks() {
return callmethod("BaseMeter.getTicks", $this->ptr);
}
function setLabelStyle($font = "bold", $fontSize = -1, $fontColor = TextColor, $fontAngle = 0) {
return new TextBox(callmethod("BaseMeter.setLabelStyle", $this->ptr, $font, $fontSize, $fontColor, $fontAngle));
}
function setLabelPos($labelInside, $labelOffset = 0) {
callmethod("BaseMeter.setLabelPos", $this->ptr, $labelInside, $labelOffset);
}
function setLabelFormat($formatString) {
callmethod("BaseMeter.setLabelFormat", $this->ptr, $formatString);
}
function setTickLength($majorLen, $minorLen = -0x7fffffff, $microLen = -0x7fffffff) {
callmethod("BaseMeter.setTickLength", $this->ptr, $majorLen, $minorLen, $microLen);
}
function setLineWidth($axisWidth, $majorTickWidth = 1, $minorTickWidth = 1, $microTickWidth = 1) {
callmethod("BaseMeter.setLineWidth", $this->ptr, $axisWidth, $majorTickWidth, $minorTickWidth, $microTickWidth);
}
function setMeterColors($axisColor, $labelColor = -1, $tickColor = -1) {
callmethod("BaseMeter.setMeterColors", $this->ptr, $axisColor, $labelColor, $tickColor);
}
function getCoor($v) {
return callmethod("BaseMeter.getCoor", $this->ptr, $v);
}
}
class AngularMeter extends BaseMeter
{
function AngularMeter($width, $height, $bgColor = BackgroundColor, $edgeColor = Transparent, $raisedEffect = 0) {
$this->ptr = callmethod("AngularMeter.create", $width, $height, $bgColor, $edgeColor, $raisedEffect);
autoDestroy($this);
}
function addRing($startRadius, $endRadius, $fillColor, $edgeColor = -1) {
callmethod("AngularMeter.addRing", $this->ptr, $startRadius, $endRadius, $fillColor, $edgeColor);
}
function addRingSector($startRadius, $endRadius, $a1, $a2, $fillColor, $edgeColor = -1) {
callmethod("AngularMeter.addRingSector", $this->ptr, $startRadius, $endRadius, $a1, $a2, $fillColor, $edgeColor);
}
function setCap($radius, $fillColor, $edgeColor = LineColor) {
callmethod("AngularMeter.setCap", $this->ptr, $radius, $fillColor, $edgeColor);
}
function setMeter($cx, $cy, $radius, $startAngle, $endAngle) {
callmethod("AngularMeter.setMeter", $this->ptr, $cx, $cy, $radius, $startAngle, $endAngle);
}
function addZone($startValue, $endValue, $startRadius, $endRadius = -1, $fillColor = Null, $edgeColor = -1) {
if (is_null($fillColor))
$this->addZone2($startValue, $endValue, $startRadius, $endRadius);
else
callmethod("AngularMeter.addZone", $this->ptr, $startValue, $endValue, $startRadius, $endRadius, $fillColor, $edgeColor);
}
function addZone2($startValue, $endValue, $fillColor, $edgeColor = -1) {
callmethod("AngularMeter.addZone2", $this->ptr, $startValue, $endValue, $fillColor, $edgeColor);
}
}
class LinearMeter extends BaseMeter
{
function LinearMeter($width, $height, $bgColor = BackgroundColor, $edgeColor = Transparent, $raisedEffect = 0) {
$this->ptr = callmethod("LinearMeter.create", $width, $height, $bgColor, $edgeColor, $raisedEffect);
autoDestroy($this);
}
function setMeter($leftX, $topY, $width, $height, $axisPos = Left, $isReversed = 0) {
callmethod("LinearMeter.setMeter", $this->ptr, $leftX, $topY, $width, $height, $axisPos, $isReversed);
}
function setRail($railColor, $railWidth = 2, $railOffset = 6) {
callmethod("LinearMeter.setRail", $this->ptr, $railColor, $railWidth, $railOffset);
}
function addZone($startValue, $endValue, $color, $label = "") {
return new TextBox(callmethod("LinearMeter.addZone", $this->ptr, $startValue, $endValue, $color, $label));
}
}
#///////////////////////////////////////////////////////////////////////////////////
#// bindings to chartdir.h
#///////////////////////////////////////////////////////////////////////////////////
function getCopyright() {
return callmethod("getCopyright");
}
function getVersion() {
return callmethod("getVersion");
}
function getDescription() {
return cdFilterMsg(callmethod("getDescription"));
}
function getBootLog() {
return cdFilterMsg(callmethod("getBootLog"));
}
function libgTTFTest($font = "", $fontIndex = 0, $fontHeight = 8, $fontWidth = 8, $angle = 0) {
return cdFilterMsg(callmethod("testFont", $font, $fontIndex, $fontHeight, $fontWidth, $angle));
}
function testFont($font = "", $fontIndex = 0, $fontHeight = 8, $fontWidth = 8, $angle = 0) {
return cdFilterMsg(callmethod("testFont", $font, $fontIndex, $fontHeight, $fontWidth, $angle));
}
function setLicenseCode($licCode) {
return callmethod("setLicenseCode", $licCode);
}
function chartTime($y, $m = Null, $d = 1, $h = 0, $n = 0, $s = 0) {
if (is_null($m))
return chartTime2($y);
else
return callmethod("chartTime", $y, $m, $d, $h, $n, $s);
}
function chartTime2($t) {
return callmethod("chartTime2", $t);
}
function getChartYMD($t) {
return callmethod("getChartYMD", $t);
}
function getChartWeekDay($t) {
return ((int)($t / 86400 + 1)) % 7;
}
#///////////////////////////////////////////////////////////////////////////////////
#// bindings to rantable.h
#///////////////////////////////////////////////////////////////////////////////////
class RanTable
{
function RanTable($seed, $noOfCols, $noOfRows) {
$this->ptr = callmethod("RanTable.create", $seed, $noOfCols, $noOfRows);
autoDestroy($this);
}
function __del__() {
callmethod("RanTable.destroy", $this->ptr);
}
function setCol($colNo, $minValue, $maxValue, $p4 = Null, $p5 = -1E+308, $p6 = 1E+308) {
if (is_null($p4))
callmethod("RanTable.setCol", $this->ptr, $colNo, $minValue, $maxValue);
else
$this->setCol2($colNo, $minValue, $maxValue, $p4, $p5, $p6);
}
function setCol2($colNo, $startValue, $minDelta, $maxDelta, $lowerLimit = -1E+308, $upperLimit = 1E+308) {
callmethod("RanTable.setCol2", $this->ptr, $colNo, $startValue, $minDelta, $maxDelta, $lowerLimit, $upperLimit);
}
function setDateCol($i, $startTime, $tickInc, $weekDayOnly = 0) {
callmethod("RanTable.setDateCol", $this->ptr, $i, $startTime, $tickInc, $weekDayOnly);
}
function setHLOCCols($i, $startValue, $minDelta, $maxDelta, $lowerLimit = 0, $upperLimit = 1E+308) {
callmethod("RanTable.setHLOCCols", $this->ptr, $i, $startValue, $minDelta, $maxDelta, $lowerLimit, $upperLimit);
}
function selectDate($colNo, $minDate, $maxDate) {
return callmethod("RanTable.selectDate", $this->ptr, $colNo, $minDate, $maxDate);
}
function getCol($i) {
return callmethod("RanTable.getCol", $this->ptr, $i);
}
}
class FinanceSimulator
{
function FinanceSimulator($seed, $startTime, $endTime, $resolution) {
$this->ptr = callmethod("FinanceSimulator.create", $seed, $startTime, $endTime, $resolution);
autoDestroy($this);
}
function __del__() {
callmethod("FinanceSimulator.destroy", $this->ptr);
}
function getTimeStamps() {
return callmethod("FinanceSimulator.getTimeStamps", $this->ptr);
}
function getHighData() {
return callmethod("FinanceSimulator.getHighData", $this->ptr);
}
function getLowData() {
return callmethod("FinanceSimulator.getLowData", $this->ptr);
}
function getOpenData() {
return callmethod("FinanceSimulator.getOpenData", $this->ptr);
}
function getCloseData() {
return callmethod("FinanceSimulator.getCloseData", $this->ptr);
}
function getVolData() {
return callmethod("FinanceSimulator.getVolData", $this->ptr);
}
}
#///////////////////////////////////////////////////////////////////////////////////
#// bindings to datafilter.h
#///////////////////////////////////////////////////////////////////////////////////
class ArrayMath
{
function ArrayMath($a) {
$this->ptr = callmethod("ArrayMath.create", $a);
autoDestroy($this);
}
function __del__() {
callmethod("ArrayMath.destroy", $this->ptr);
}
function add($b) {
if (!is_array($b))
$this->add2($b);
else
callmethod("ArrayMath.add", $this->ptr, $b);
return $this;
}
function add2($b) {
callmethod("ArrayMath.add2", $this->ptr, $b);
return $this;
}
function sub($b) {
if (!is_array($b))
$this->sub2($b);
else
callmethod("ArrayMath.sub", $this->ptr, $b);
return $this;
}
function sub2($b) {
callmethod("ArrayMath.sub2", $this->ptr, $b);
return $this;
}
function mul($b) {
if (!is_array($b))
$this->mul2($b);
else
callmethod("ArrayMath.mul", $this->ptr, $b);
return $this;
}
function mul2($b) {
callmethod("ArrayMath.mul2", $this->ptr, $b);
return $this;
}
function div($b) {
if (!is_array($b))
$this->div2($b);
else
callmethod("ArrayMath.div", $this->ptr, $b);
return $this;
}
function div2($b) {
callmethod("ArrayMath.div2", $this->ptr, $b);
return $this;
}
function financeDiv($b, $zeroByZeroValue) {
callmethod("ArrayMath.financeDiv", $this->ptr, $b, $zeroByZeroValue);
return $this;
}
function shift($offset = 1, $fillValue = NoValue) {
callmethod("ArrayMath.shift", $this->ptr, $offset, $fillValue);
return $this;
}
function delta($offset = 1) {
callmethod("ArrayMath.delta", $this->ptr, $offset);
return $this;
}
function rate($offset = 1) {
callmethod("ArrayMath.rate", $this->ptr, $offset);
return $this;
}
function abs() {
callmethod("ArrayMath.abs", $this->ptr);
return $this;
}
function acc() {
callmethod("ArrayMath.acc", $this->ptr);
return $this;
}
function selectGTZ($b = Null, $fillValue = 0) { callmethod("ArrayMath.selectGTZ", $this->ptr, $b, $fillValue); return $this; }
function selectGEZ($b = Null, $fillValue = 0) { callmethod("ArrayMath.selectGEZ", $this->ptr, $b, $fillValue); return $this; }
function selectLTZ($b = Null, $fillValue = 0) { callmethod("ArrayMath.selectLTZ", $this->ptr, $b, $fillValue); return $this; }
function selectLEZ($b = Null, $fillValue = 0) { callmethod("ArrayMath.selectLEZ", $this->ptr, $b, $fillValue); return $this; }
function selectEQZ($b = Null, $fillValue = 0) { callmethod("ArrayMath.selectEQZ", $this->ptr, $b, $fillValue); return $this; }
function selectNEZ($b = Null, $fillValue = 0) { callmethod("ArrayMath.selectNEZ", $this->ptr, $b, $fillValue); return $this; }
function selectStartOfHour($majorTickStep = 1, $initialMargin = 300) {
callmethod("ArrayMath.selectStartOfHour", $this->ptr, $majorTickStep, $initialMargin);
return $this;
}
function selectStartOfDay($majorTickStep = 1, $initialMargin = 10800) {
callmethod("ArrayMath.selectStartOfDay", $this->ptr, $majorTickStep, $initialMargin);
return $this;
}
function selectStartOfWeek($majorTickStep = 1, $initialMargin = 172800) {
callmethod("ArrayMath.selectStartOfWeek", $this->ptr, $majorTickStep, $initialMargin);
return $this;
}
function selectStartOfMonth($majorTickStep = 1, $initialMargin = 432000) {
callmethod("ArrayMath.selectStartOfMonth", $this->ptr, $majorTickStep, $initialMargin);
return $this;
}
function selectStartOfYear($majorTickStep = 1, $initialMargin = 5184000) {
callmethod("ArrayMath.selectStartOfYear", $this->ptr, $majorTickStep, $initialMargin);
return $this;
}
function selectRegularSpacing($majorTickStep, $minorTickStep = 0, $initialMargin = 0) {
callmethod("ArrayMath.selectRegularSpacing", $this->ptr, $majorTickStep, $minorTickStep, $initialMargin);
return $this;
}
function trim($startIndex = 0, $len = -1) {
callmethod("ArrayMath.trim", $this->ptr, $startIndex, $len);
return $this;
}
function insert($a, $insertPoint = -1) {
callmethod("ArrayMath.insert", $this->ptr, $a, $insertPoint);
return $this;
}
function insert2($c, $len, $insertPoint= -1) {
callmethod("ArrayMath.insert2", $this->ptr, $c, $len, $insertPoint);
return $this;
}
function replace($a, $b) {
callmethod("ArrayMath.replace", $this->ptr, $a, $b);
return $this;
}
function movAvg($interval) {
callmethod("ArrayMath.movAvg", $this->ptr, $interval);
return $this;
}
function expAvg($smoothingFactor) {
callmethod("ArrayMath.expAvg", $this->ptr, $smoothingFactor);
return $this;
}
function movMed($interval) {
callmethod("ArrayMath.movMed", $this->ptr, $interval);
return $this;
}
function movPercentile($interval, $percentile) {
callmethod("ArrayMath.movPercentile", $this->ptr, $interval, $percentile);
return $this;
}
function movMax($interval) {
callmethod("ArrayMath.movMax", $this->ptr, $interval);
return $this;
}
function movMin($interval) {
callmethod("ArrayMath.movMin", $this->ptr, $interval);
return $this;
}
function movStdDev($interval) {
callmethod("ArrayMath.movStdDev", $this->ptr, $interval);
return $this;
}
function movCorr($interval, $b = Null) {
callmethod("ArrayMath.movCorr", $this->ptr, $interval, $b);
return $this;
}
function lowess($smoothness = 0.25, $iteration = 0) {
callmethod("ArrayMath.lowess", $this->ptr, $smoothness, $iteration);
return $this;
}
function lowess2($b, $smoothness = 0.25, $iteration = 0) {
callmethod("ArrayMath.lowess2", $this->ptr, $b, $smoothness, $iteration);
return $this;
}
function result() {
return callmethod("ArrayMath.result", $this->ptr);
}
function max() {
return callmethod("ArrayMath.max", $this->ptr);
}
function min() {
return callmethod("ArrayMath.min", $this->ptr);
}
function avg() {
return callmethod("ArrayMath.avg", $this->ptr);
}
function sum() {
return callmethod("ArrayMath.sum", $this->ptr);
}
function stdDev() {
return callmethod("ArrayMath.stdDev", $this->ptr);
}
function med() {
return callmethod("ArrayMath.med", $this->ptr);
}
function percentile($p) {
return callmethod("ArrayMath.percentile", $this->ptr, $p);
}
function maxIndex() {
return callmethod("ArrayMath.maxIndex", $this->ptr);
}
function minIndex() {
return callmethod("ArrayMath.minIndex", $this->ptr);
}
function aggregate($srcArray, $aggregateMethod, $param = 50) {
return callmethod("ArrayMath.aggregate", $this->ptr, $srcArray, $aggregateMethod, $param);
}
}
#///////////////////////////////////////////////////////////////////////////////////
#// WebChartViewer implementation
#///////////////////////////////////////////////////////////////////////////////////
define("MouseUsageDefault", 0);
define("MouseUsageScroll", 2);
define("MouseUsageZoomIn", 3);
define("MouseUsageZoomOut", 4);
define("DirectionHorizontal", 0);
define("DirectionVertical", 1);
define("DirectionHorizontalVertical", 2);
class WebChartViewer
{
function WebChartViewer($id) {
global $_REQUEST;
$this->ptr = callmethod("WebChartViewer.create");
autoDestroy($this);
$this->putAttrS(":id", $id);
$s = $id."_JsChartViewerState";
if (isset($_REQUEST[$s]))
$this->putAttrS(":state", $_REQUEST[$s]);
}
function __del__() {
callmethod("WebChartViewer.destroy", $this->ptr);
}
function getId() { return $this->getAttrS(":id"); }
function setImageUrl($url) { $this->putAttrS(":url", $url); }
function getImageUrl() { return $this->getAttrS(":url"); }
function setImageMap($imageMap) { $this->putAttrS(":map", $imageMap); }
function getImageMap() { return $this->getAttrS(":map"); }
function setChartMetrics($metrics) { $this->putAttrS(":metrics", $metrics); }
function getChartMetrics() { return $this->getAttrS(":metrics"); }
function makeDelayedMap($imageMap, $compress = 0) {
global $HTTP_SESSION_VARS, $_SERVER;
if ($compress) {
if (!isset($_SERVER['HTTP_ACCEPT_ENCODING']) || !strstr($_SERVER['HTTP_ACCEPT_ENCODING'], 'gzip'))
$compress = 0;
}
$mapId = $this->getId()."_map";
session_register($mapId);
$b = "<body><!--CD_MAP $imageMap CD_MAP--></body>";
if ($compress)
$b = callmethod("WebChartViewer.compressMap", $this->ptr, $b, 4);
if (isset($HTTP_SESSION_VARS))
$HTTP_SESSION_VARS[$mapId] = $GLOBALS[$mapId] = $b;
else
$_SESSION[$mapId] = $GLOBALS[$mapId] = $b;
return "img=".$mapId."&isMap=1&id=".uniqid(session_id())."&".SID;
}
function renderHTML($extraAttrs = null) {
global $_SERVER;
$url = isset($_SERVER["SCRIPT_NAME"]) ? $_SERVER["SCRIPT_NAME"] : "";
$query = isset($_SERVER["QUERY_STRING"]) ? $_SERVER["QUERY_STRING"] : "";
return callmethod("WebChartViewer.renderHTML", $this->ptr, $url, $query, $extraAttrs);
}
function partialUpdateChart($msg = null, $timeout = 0) {
header("Content-type: text/html; charset=utf-8");
return callmethod("WebChartViewer.partialUpdateChart", $this->ptr, $msg, $timeout);
}
function isPartialUpdateRequest() { global $_REQUEST; return isset($_REQUEST["cdPartialUpdate"]); }
function isFullUpdateRequest() {
if ($this->isPartialUpdateRequest())
return 0;
global $_REQUEST;
$s = "_JsChartViewerState";
foreach($_REQUEST as $k => $v) {
if (substr($k, -strlen($s)) == $s)
return 1;
}
return 0;
}
function isStreamRequest() { global $_REQUEST; return isset($_REQUEST["cdDirectStream"]); }
function isViewPortChangedEvent() { return $this->getAttrF(25, 0) != 0; }
function getSenderClientId() {
global $_REQUEST;
if ($this->isPartialUpdateRequest())
return $_REQUEST["cdPartialUpdate"];
elseif ($this->isStreamRequest())
return $_REQUEST["cdDirectStream"];
else
return null;
}
function getAttrS($attr, $defaultValue = "") {
return callmethod("WebChartViewer.getAttrS", $this->ptr, $attr, $defaultValue);
}
function getAttrF($attr, $defaultValue = 0) {
return callmethod("WebChartViewer.getAttrF", $this->ptr, $attr, $defaultValue);
}
function putAttrF($attr, $value) {
callmethod("WebChartViewer.putAttrF", $this->ptr, $attr, $value);
}
function putAttrS($attr, $value) {
callmethod("WebChartViewer.putAttrS", $this->ptr, $attr, $value);
}
function getViewPortLeft() { return $this->getAttrF(4, 0); }
function setViewPortLeft($left) { $this->putAttrF(4, $left); }
function getViewPortTop() { return $this->getAttrF(5, 0); }
function setViewPortTop($top) { $this->putAttrF(5, $top); }
function getViewPortWidth() { return $this->getAttrF(6, 1); }
function setViewPortWidth($width) { $this->putAttrF(6, $width); }
function getViewPortHeight() { return $this->getAttrF(7, 1); }
function setViewPortHeight($height) { $this->putAttrF(7, $height); }
function getSelectionBorderWidth() { return (int)($this->getAttrF(8, 2)); }
function setSelectionBorderWidth($lineWidth) { $this->putAttrF(8, $lineWidth); }
function getSelectionBorderColor() { return $this->getAttrS(9, "Black"); }
function setSelectionBorderColor($color) { $this->putAttrS(9, $color); }
function getMouseUsage() { return (int)($this->getAttrF(10, MouseUsageDefault)); }
function setMouseUsage($usage) { $this->putAttrF(10, $usage); }
function getScrollDirection() { return (int)($this->getAttrF(11, DirectionHorizontal)); }
function setScrollDirection($direction) { $this->putAttrF(11, $direction); }
function getZoomDirection() { return (int)($this->getAttrF(12, DirectionHorizontal)); }
function setZoomDirection($direction) { $this->putAttrF(12, $direction); }
function getZoomInRatio() { return $this->getAttrF(13, 2); }
function setZoomInRatio($ratio) { if ($ratio > 0) $this->putAttrF(13, $ratio); }
function getZoomOutRatio() { return $this->getAttrF(14, 0.5); }
function setZoomOutRatio($ratio) { if ($ratio > 0) $this->putAttrF(14, $ratio); }
function getZoomInWidthLimit() { return $this->getAttrF(15, 0.01); }
function setZoomInWidthLimit($limit) { $this->putAttrF(15, $limit); }
function getZoomOutWidthLimit() { return $this->getAttrF(16, 1); }
function setZoomOutWidthLimit($limit) { $this->putAttrF(16, $limit); }
function getZoomInHeightLimit() { return $this->getAttrF(17, 0.01); }
function setZoomInHeightLimit($limit) { $this->putAttrF(17, $limit); }
function getZoomOutHeightLimit() { return $this->getAttrF(18, 1); }
function setZoomOutHeightLimit($limit) { $this->putAttrF(18, $limit); }
function getMinimumDrag() { return (int)($this->getAttrF(19, 5)); }
function setMinimumDrag($offset) { $this->putAttrF(19, $offset); }
function getZoomInCursor() { return $this->getAttrS(20, ""); }
function setZoomInCursor($cursor) { $this->putAttrS(20, $cursor); }
function getZoomOutCursor() { return $this->getAttrS(21, ""); }
function setZoomOutCursor($cursor) { $this->putAttrS(21, $cursor); }
function getScrollCursor() { return $this->getAttrS(22, ""); }
function setScrollCursor($cursor) { $this->putAttrS(22, $cursor); }
function getNoZoomCursor() { return $this->getAttrS(26, ""); }
function setNoZoomCursor($cursor) { $this->putAttrS(26, $cursor); }
function getCustomAttr($key) { return $this->getAttrS($key, ""); }
function setCustomAttr($key, $value) { $this->putAttrS($key, $value); }
}
?>