extranet/includes/phpchartdir/phpchartdir.php

2958 lines
108 KiB
PHP
Raw Normal View History

2009-06-23 06:53:04 +00:00
<?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"]);
##########################################################################
2009-07-02 12:22:50 +00:00
function isOnWindows()
2009-06-23 06:53:04 +00:00
{
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));
}
2009-07-02 12:22:50 +00:00
return $msg;
2009-06-23 06:53:04 +00:00
}
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} == ":")
2009-07-02 12:22:50 +00:00
{
2009-06-23 06:53:04 +00:00
$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);
}
2009-07-02 12:22:50 +00:00
function cdErrorHandler($errno, $errstr, $errfile, $errline)
2009-06-23 06:53:04 +00:00
{
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 = split('\.', phpversion());
$ver = $ver[0] * 10000 + $ver[1] * 100 + $ver[2];
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>
2009-07-02 12:22:50 +00:00
An attempt has been made to dynamically load ChartDirector, but it was not successful. Please refer to your
2009-06-23 06:53:04 +00:00
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>
2009-07-02 12:22:50 +00:00
<?php
2009-06-23 06:53:04 +00:00
echo '<br><b>Trying to load "'.$ext.'" from the PHP extension directory '.listExtDir().'.</b><br>';
2009-07-02 12:22:50 +00:00
2009-06-23 06:53:04 +00:00
$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">
2009-07-02 12:22:50 +00:00
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
2009-06-23 06:53:04 +00:00
to invalid directory configuration. Please ensure that directory exists and is accessible by the web server.
2009-07-02 12:22:50 +00:00
</font></b><br>
<?php
2009-06-23 06:53:04 +00:00
}
?>
<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);
2009-07-02 12:22:50 +00:00
2009-06-23 06:53:04 +00:00
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;
}
2009-07-02 12:22:50 +00:00
2009-06-23 06:53:04 +00:00
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);
}
2009-07-02 12:22:50 +00:00
2009-06-23 06:53:04 +00:00
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);
}
2009-07-02 12:22:50 +00:00
2009-06-23 06:53:04 +00:00
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);
2009-07-02 12:22:50 +00:00
2009-06-23 06:53:04 +00:00
#///////////////////////////////////////////////////////////////////////////////////
#// 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);
}
2009-07-02 12:22:50 +00:00
2009-06-23 06:53:04 +00:00
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);
}
2009-07-02 12:22:50 +00:00
2009-06-23 06:53:04 +00:00
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);
}
2009-07-02 12:22:50 +00:00
function waveTransform($period, $amplitude, $direction = 0, $startAngle = 0, $longitudinal = 0,
2009-06-23 06:53:04 +00:00
$bgColor = 0xffffff, $ft = LinearFilter, $blur = 1) {
2009-07-02 12:22:50 +00:00
callmethod("DrawArea.waveTransform", $this->ptr, $period, $amplitude, $direction, $startAngle,
2009-06-23 06:53:04 +00:00
$longitudinal, $bgColor, $ft, $blur);
}
2009-07-02 12:22:50 +00:00
2009-06-23 06:53:04 +00:00
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);
}
2009-07-02 12:22:50 +00:00
function linearGradientColor($startX, $startY, $endX, $endY, $startColor, $endColor, $periodic = 0) {
return callmethod("DrawArea.linearGradientColor", $this->ptr, $startX, $startY, $endX, $endY, $startColor, $endColor, $periodic);
2009-06-23 06:53:04 +00:00
}
2009-07-02 12:22:50 +00:00
function linearGradientColor2($startX, $startY, $endX, $endY, $c, $periodic = 0) {
return callmethod("DrawArea.linearGradientColor2", $this->ptr, $startX, $startY, $endX, $endY, $c, $periodic);
2009-06-23 06:53:04 +00:00
}
2009-07-02 12:22:50 +00:00
function radialGradientColor($cx, $cy, $rx, $ry, $startColor, $endColor, $periodic = 0) {
return callmethod("DrawArea.radialGradientColor", $this->ptr, $cx, $cy, $rx, $ry, $startColor, $endColor, $periodic);
2009-06-23 06:53:04 +00:00
}
2009-07-02 12:22:50 +00:00
function radialGradientColor2($cx, $cy, $rx, $ry, $c, $periodic = 0) {
return callmethod("DrawArea.radialGradientColor2", $this->ptr, $cx, $cy, $rx, $ry, $c, $periodic);
2009-06-23 06:53:04 +00:00
}
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);
}
2009-07-02 12:22:50 +00:00
function setRoundedCorners($r1 = 10, $r2 = -1, $r3 = -1, $r4 = -1) {
2009-06-23 06:53:04 +00:00
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);
}
2009-07-02 12:22:50 +00:00
function setTruncate($maxWidth, $maxLines = 1) {
2009-06-23 06:53:04 +00:00
callmethod("TextBox.setTruncate", $this->ptr, $maxWidth, $maxLines);
2009-07-02 12:22:50 +00:00
}
2009-06-23 06:53:04 +00:00
}
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);
}
2009-07-02 12:22:50 +00:00
function setRoundedFrame($extColor = 0xffffff, $r1 = 10, $r2 = -1, $r3 = -1, $r4 = -1) {
callmethod("BaseChart.setRoundedFrame", $this->ptr, $extColor, $r1, $r2, $r3, $r4);
2009-06-23 06:53:04 +00:00
}
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);
}
2009-07-02 12:22:50 +00:00
2009-06-23 06:53:04 +00:00
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);
}
2009-07-02 12:22:50 +00:00
function linearGradientColor($startX, $startY, $endX, $endY, $startColor, $endColor, $periodic = 0) {
return callmethod("BaseChart.linearGradientColor", $this->ptr, $startX, $startY, $endX, $endY, $startColor, $endColor, $periodic);
2009-06-23 06:53:04 +00:00
}
2009-07-02 12:22:50 +00:00
function linearGradientColor2($startX, $startY, $endX, $endY, $c, $periodic = 0) {
return callmethod("BaseChart.linearGradientColor2", $this->ptr, $startX, $startY, $endX, $endY, $c, $periodic);
2009-06-23 06:53:04 +00:00
}
2009-07-02 12:22:50 +00:00
function radialGradientColor($cx, $cy, $rx, $ry, $startColor, $endColor, $periodic = 0) {
return callmethod("BaseChart.radialGradientColor", $this->ptr, $cx, $cy, $rx, $ry, $startColor, $endColor, $periodic);
2009-06-23 06:53:04 +00:00
}
2009-07-02 12:22:50 +00:00
function radialGradientColor2($cx, $cy, $rx, $ry, $c, $periodic = 0) {
return callmethod("BaseChart.radialGradientColor2", $this->ptr, $cx, $cy, $rx, $ry, $c, $periodic);
2009-06-23 06:53:04 +00:00
}
#//////////////////////////////////////////////////////////////////////////////////////
#// 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);
2009-07-02 12:22:50 +00:00
return "img=".$id."&id=".uniqid(session_id())."&".SID;
2009-06-23 06:53:04 +00:00
}
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);
}
2009-07-02 12:22:50 +00:00
function getChartMetrics() {
2009-06-23 06:53:04 +00:00
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;
}
2009-07-02 12:22:50 +00:00
function setMainChart($c) {
2009-06-23 06:53:04 +00:00
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);
2009-07-02 12:22:50 +00:00
else
2009-06-23 06:53:04 +00:00
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);
}
2009-07-02 12:22:50 +00:00
function setFormatCondition($condition, $operand = 0) {
2009-06-23 06:53:04 +00:00
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);
}
2009-07-02 12:22:50 +00:00
2009-06-23 06:53:04 +00:00
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);
2009-07-02 12:22:50 +00:00
}
2009-06-23 06:53:04 +00:00
function setMargin($topMargin, $bottomMargin = 0) {
callmethod("Axis.setMargin", $this->ptr, $topMargin, $bottomMargin);
2009-07-02 12:22:50 +00:00
}
2009-06-23 06:53:04 +00:00
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);
}
2009-07-02 12:22:50 +00:00
2009-06-23 06:53:04 +00:00
function setAutoScale($topExtension = 0.1, $bottomExtension = 0.1, $zeroAffinity = 0.8) {
callmethod("Axis.setAutoScale", $this->ptr, $topExtension, $bottomExtension, $zeroAffinity);
2009-07-02 12:22:50 +00:00
}
2009-06-23 06:53:04 +00:00
function setRounding($roundMin, $roundMax) {
callmethod("Axis.setRounding", $this->ptr, $roundMin, $roundMax);
2009-07-02 12:22:50 +00:00
}
2009-06-23 06:53:04 +00:00
function setTickDensity($majorTickDensity, $minorTickSpacing = -1) {
callmethod("Axis.setTickDensity", $this->ptr, $majorTickDensity, $minorTickSpacing);
}
function setReverse($b = 1) {
callmethod("Axis.setReverse", $this->ptr, $b);
2009-07-02 12:22:50 +00:00
}
2009-06-23 06:53:04 +00:00
function setMinTickInc($inc) {
callmethod("Axis.setMinTickInc", $this->ptr, $inc);
}
2009-07-02 12:22:50 +00:00
2009-06-23 06:53:04 +00:00
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);
}
2009-07-02 12:22:50 +00:00
2009-06-23 06:53:04 +00:00
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);
2009-07-02 12:22:50 +00:00
else
2009-06-23 06:53:04 +00:00
callmethod("Axis.setLinearScale", $this->ptr, $lowerLimit, $upperLimit, $majorTickInc, $minorTickInc);
2009-07-02 12:22:50 +00:00
}
2009-06-23 06:53:04 +00:00
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);
2009-07-02 12:22:50 +00:00
else
2009-06-23 06:53:04 +00:00
callmethod("Axis.setLogScale", $this->ptr, $lowerLimit, $upperLimit, $majorTickInc, $minorTickInc);
2009-07-02 12:22:50 +00:00
}
2009-06-23 06:53:04 +00:00
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);
2009-07-02 12:22:50 +00:00
}
2009-06-23 06:53:04 +00:00
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);
2009-07-02 12:22:50 +00:00
else
2009-06-23 06:53:04 +00:00
callmethod("Axis.setDateScale", $this->ptr, $lowerLimit, $upperLimit, $majorTickInc, $minorTickInc);
2009-07-02 12:22:50 +00:00
}
2009-06-23 06:53:04 +00:00
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);
}
2009-07-02 12:22:50 +00:00
2009-06-23 06:53:04 +00:00
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);
}
2009-07-02 12:22:50 +00:00
2009-06-23 06:53:04 +00:00
function getTicks() {
return callmethod("Axis.getTicks", $this->ptr);
}
function getLabel($i) {
return callmethod("Axis.getLabel", $this->ptr, $i);
}
2009-07-02 12:22:50 +00:00
2009-06-23 06:53:04 +00:00
function getAxisImageMap($noOfSegments, $mapWidth, $url, $queryFormat = "", $extraAttr = "", $offsetX = 0, $offsetY = 0) {
return callmethod("Axis.getAxisImageMap", $this->ptr, $noOfSegments, $mapWidth, $url, $queryFormat, $extraAttr, $offsetX, $offsetY);
}
2009-07-02 12:22:50 +00:00
function getHTMLImageMap($url, $queryFormat = "", $extraAttr = "", $offsetX = 0, $offsetY = 0) {
2009-06-23 06:53:04 +00:00
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);
}
2009-07-02 12:22:50 +00:00
2009-06-23 06:53:04 +00:00
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));
2009-07-02 12:22:50 +00:00
}
2009-06-23 06:53:04 +00:00
function addLabel($pos, $label) {
callmethod("AngularAxis.addLabel", $this->ptr, $pos, $label);
2009-07-02 12:22:50 +00:00
}
2009-06-23 06:53:04 +00:00
function setLinearScale($lowerLimit, $upperLimit, $majorTickInc = 0, $minorTickInc = 0) {
if (is_array($majorTickInc))
$this->setLinearScale2($lowerLimit, $upperLimit, $majorTickInc);
2009-07-02 12:22:50 +00:00
else
2009-06-23 06:53:04 +00:00
callmethod("AngularAxis.setLinearScale", $this->ptr, $lowerLimit, $upperLimit, $majorTickInc, $minorTickInc);
2009-07-02 12:22:50 +00:00
}
2009-06-23 06:53:04 +00:00
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);
}
2009-07-02 12:22:50 +00:00
2009-06-23 06:53:04 +00:00
function getAxisImageMap($noOfSegments, $mapWidth, $url, $queryFormat = "", $extraAttr = "", $offsetX = 0, $offsetY = 0) {
return callmethod("AngularAxis.getAxisImageMap", $this->ptr, $noOfSegments, $mapWidth, $url, $queryFormat, $extraAttr, $offsetX, $offsetY);
}
2009-07-02 12:22:50 +00:00
function getHTMLImageMap($url, $queryFormat = "", $extraAttr = "", $offsetX = 0, $offsetY = 0) {
2009-06-23 06:53:04 +00:00
return callmethod("AngularAxis.getHTMLImageMap", $this->ptr, $url, $queryFormat, $extraAttr, $offsetX, $offsetY);
2009-07-02 12:22:50 +00:00
}
2009-06-23 06:53:04 +00:00
}
#///////////////////////////////////////////////////////////////////////////////////
#// 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);
}
2009-07-02 12:22:50 +00:00
2009-06-23 06:53:04 +00:00
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));
}
2009-07-02 12:22:50 +00:00
2009-06-23 06:53:04 +00:00
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);
2009-07-02 12:22:50 +00:00
}
2009-06-23 06:53:04 +00:00
function setLegendOrder($dataSetOrder, $layerOrder = -1) {
callmethod("Layer.setLegendOrder", $this->ptr, $dataSetOrder, $layerOrder);
2009-07-02 12:22:50 +00:00
}
2009-06-23 06:53:04 +00:00
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);
}
2009-07-02 12:22:50 +00:00
function alignLayer($layer, $dataSet) {
callmethod("Layer.alignLayer", $this->ptr, $layer->ptr, $dataSet);
}
2009-06-23 06:53:04 +00:00
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));
}
2009-07-02 12:22:50 +00:00
2009-06-23 06:53:04 +00:00
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);
2009-07-02 12:22:50 +00:00
}
2009-06-23 06:53:04 +00:00
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));
2009-07-02 12:22:50 +00:00
}
2009-06-23 06:53:04 +00:00
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);
2009-07-02 12:22:50 +00:00
}
2009-06-23 06:53:04 +00:00
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;
2009-07-02 12:22:50 +00:00
}
2009-06-23 06:53:04 +00:00
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);
2009-07-02 12:22:50 +00:00
}
2009-06-23 06:53:04 +00:00
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);
}
2009-07-02 12:22:50 +00:00
2009-06-23 06:53:04 +00:00
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);
}
2009-07-02 12:22:50 +00:00
2009-06-23 06:53:04 +00:00
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);
}
2009-07-02 12:22:50 +00:00
function selectDate($colNo, $minDate, $maxDate) {
return callmethod("RanTable.selectDate", $this->ptr, $colNo, $minDate, $maxDate);
}
2009-06-23 06:53:04 +00:00
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);
}
2009-07-02 12:22:50 +00:00
function getTimeStamps() {
2009-06-23 06:53:04 +00:00
return callmethod("FinanceSimulator.getTimeStamps", $this->ptr);
}
2009-07-02 12:22:50 +00:00
function getHighData() {
2009-06-23 06:53:04 +00:00
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);
}
2009-07-02 12:22:50 +00:00
function add($b) {
if (!is_array($b))
2009-06-23 06:53:04 +00:00
$this->add2($b);
2009-07-02 12:22:50 +00:00
else
2009-06-23 06:53:04 +00:00
callmethod("ArrayMath.add", $this->ptr, $b);
return $this;
}
function add2($b) {
callmethod("ArrayMath.add2", $this->ptr, $b);
return $this;
}
function sub($b) {
2009-07-02 12:22:50 +00:00
if (!is_array($b))
2009-06-23 06:53:04 +00:00
$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) {
2009-07-02 12:22:50 +00:00
if (!is_array($b))
2009-06-23 06:53:04 +00:00
$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) {
2009-07-02 12:22:50 +00:00
if (!is_array($b))
2009-06-23 06:53:04 +00:00
$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;
}
2009-07-02 12:22:50 +00:00
2009-06-23 06:53:04 +00:00
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);
2009-07-02 12:22:50 +00:00
return $this;
2009-06-23 06:53:04 +00:00
}
function selectStartOfDay($majorTickStep = 1, $initialMargin = 10800) {
callmethod("ArrayMath.selectStartOfDay", $this->ptr, $majorTickStep, $initialMargin);
2009-07-02 12:22:50 +00:00
return $this;
2009-06-23 06:53:04 +00:00
}
function selectStartOfWeek($majorTickStep = 1, $initialMargin = 172800) {
callmethod("ArrayMath.selectStartOfWeek", $this->ptr, $majorTickStep, $initialMargin);
2009-07-02 12:22:50 +00:00
return $this;
2009-06-23 06:53:04 +00:00
}
function selectStartOfMonth($majorTickStep = 1, $initialMargin = 432000) {
callmethod("ArrayMath.selectStartOfMonth", $this->ptr, $majorTickStep, $initialMargin);
2009-07-02 12:22:50 +00:00
return $this;
2009-06-23 06:53:04 +00:00
}
function selectStartOfYear($majorTickStep = 1, $initialMargin = 5184000) {
callmethod("ArrayMath.selectStartOfYear", $this->ptr, $majorTickStep, $initialMargin);
2009-07-02 12:22:50 +00:00
return $this;
2009-06-23 06:53:04 +00:00
}
function selectRegularSpacing($majorTickStep, $minorTickStep = 0, $initialMargin = 0) {
callmethod("ArrayMath.selectRegularSpacing", $this->ptr, $majorTickStep, $minorTickStep, $initialMargin);
2009-07-02 12:22:50 +00:00
return $this;
2009-06-23 06:53:04 +00:00
}
2009-07-02 12:22:50 +00:00
2009-06-23 06:53:04 +00:00
function trim($startIndex = 0, $len = -1) {
callmethod("ArrayMath.trim", $this->ptr, $startIndex, $len);
2009-07-02 12:22:50 +00:00
return $this;
2009-06-23 06:53:04 +00:00
}
function insert($a, $insertPoint = -1) {
callmethod("ArrayMath.insert", $this->ptr, $a, $insertPoint);
2009-07-02 12:22:50 +00:00
return $this;
2009-06-23 06:53:04 +00:00
}
function insert2($c, $len, $insertPoint= -1) {
callmethod("ArrayMath.insert2", $this->ptr, $c, $len, $insertPoint);
2009-07-02 12:22:50 +00:00
return $this;
2009-06-23 06:53:04 +00:00
}
function replace($a, $b) {
callmethod("ArrayMath.replace", $this->ptr, $a, $b);
2009-07-02 12:22:50 +00:00
return $this;
2009-06-23 06:53:04 +00:00
}
function movAvg($interval) {
callmethod("ArrayMath.movAvg", $this->ptr, $interval);
2009-07-02 12:22:50 +00:00
return $this;
2009-06-23 06:53:04 +00:00
}
function expAvg($smoothingFactor) {
callmethod("ArrayMath.expAvg", $this->ptr, $smoothingFactor);
2009-07-02 12:22:50 +00:00
return $this;
2009-06-23 06:53:04 +00:00
}
function movMed($interval) {
callmethod("ArrayMath.movMed", $this->ptr, $interval);
2009-07-02 12:22:50 +00:00
return $this;
2009-06-23 06:53:04 +00:00
}
function movPercentile($interval, $percentile) {
callmethod("ArrayMath.movPercentile", $this->ptr, $interval, $percentile);
2009-07-02 12:22:50 +00:00
return $this;
2009-06-23 06:53:04 +00:00
}
function movMax($interval) {
callmethod("ArrayMath.movMax", $this->ptr, $interval);
2009-07-02 12:22:50 +00:00
return $this;
2009-06-23 06:53:04 +00:00
}
function movMin($interval) {
callmethod("ArrayMath.movMin", $this->ptr, $interval);
2009-07-02 12:22:50 +00:00
return $this;
2009-06-23 06:53:04 +00:00
}
function movStdDev($interval) {
callmethod("ArrayMath.movStdDev", $this->ptr, $interval);
2009-07-02 12:22:50 +00:00
return $this;
2009-06-23 06:53:04 +00:00
}
function movCorr($interval, $b = Null) {
callmethod("ArrayMath.movCorr", $this->ptr, $interval, $b);
2009-07-02 12:22:50 +00:00
return $this;
2009-06-23 06:53:04 +00:00
}
function lowess($smoothness = 0.25, $iteration = 0) {
callmethod("ArrayMath.lowess", $this->ptr, $smoothness, $iteration);
2009-07-02 12:22:50 +00:00
return $this;
2009-06-23 06:53:04 +00:00
}
function lowess2($b, $smoothness = 0.25, $iteration = 0) {
callmethod("ArrayMath.lowess2", $this->ptr, $b, $smoothness, $iteration);
2009-07-02 12:22:50 +00:00
return $this;
2009-06-23 06:53:04 +00:00
}
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);
}
2009-07-02 12:22:50 +00:00
2009-06-23 06:53:04 +00:00
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);
}
2009-07-02 12:22:50 +00:00
2009-06-23 06:53:04 +00:00
function getId() { return $this->getAttrS(":id"); }
2009-07-02 12:22:50 +00:00
2009-06-23 06:53:04 +00:00
function setImageUrl($url) { $this->putAttrS(":url", $url); }
function getImageUrl() { return $this->getAttrS(":url"); }
2009-07-02 12:22:50 +00:00
2009-06-23 06:53:04 +00:00
function setImageMap($imageMap) { $this->putAttrS(":map", $imageMap); }
function getImageMap() { return $this->getAttrS(":map"); }
2009-07-02 12:22:50 +00:00
2009-06-23 06:53:04 +00:00
function setChartMetrics($metrics) { $this->putAttrS(":metrics", $metrics); }
function getChartMetrics() { return $this->getAttrS(":metrics"); }
2009-07-02 12:22:50 +00:00
2009-06-23 06:53:04 +00:00
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;
2009-07-02 12:22:50 +00:00
return "img=".$mapId."&isMap=1&id=".uniqid(session_id())."&".SID;
2009-06-23 06:53:04 +00:00
}
2009-07-02 12:22:50 +00:00
2009-06-23 06:53:04 +00:00
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");
2009-07-02 12:22:50 +00:00
return callmethod("WebChartViewer.partialUpdateChart", $this->ptr, $msg, $timeout);
2009-06-23 06:53:04 +00:00
}
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); }
2009-07-02 12:22:50 +00:00
2009-06-23 06:53:04 +00:00
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); }
}
?>