summaryrefslogtreecommitdiffstats
path: root/src/options
diff options
context:
space:
mode:
authorKore Nordmann <github@kore-nordmann.de>2007-12-17 16:55:30 +0000
committerKore Nordmann <github@kore-nordmann.de>2007-12-17 16:55:30 +0000
commit8f5e0af2d66d1b73d841486b7c4f587967ec4152 (patch)
tree3f464720e72cd19a895472b6e0adf79e3b56a01f /src/options
parenta7af0438e645d8bc5da99805c7f2c63fd7e7c7ac (diff)
downloadzetacomponents-graph-8f5e0af2d66d1b73d841486b7c4f587967ec4152.zip
zetacomponents-graph-8f5e0af2d66d1b73d841486b7c4f587967ec4152.tar.gz
- Got cairo driver mostly working.
# Only full support for rotated texts is still missing # Execute the added tutorial example to see the current result.
Diffstat (limited to 'src/options')
-rw-r--r--src/options/cairo_driver.php100
1 files changed, 100 insertions, 0 deletions
diff --git a/src/options/cairo_driver.php b/src/options/cairo_driver.php
new file mode 100644
index 0000000..6d5bb68
--- /dev/null
+++ b/src/options/cairo_driver.php
@@ -0,0 +1,100 @@
+<?php
+/**
+ * File containing the ezcGraphCairoDriverOption class
+ *
+ * @package Graph
+ * @version //autogentag//
+ * @copyright Copyright (C) 2005-2007 eZ systems as. All rights reserved.
+ * @license http://ez.no/licenses/new_bsd New BSD License
+ */
+/**
+ * Class containing the extended options for the SVG driver.
+ *
+ * <code>
+ * $graph = new ezcGraphPieChart();
+ * $graph->background->color = '#FFFFFFFF';
+ * $graph->title = 'Access statistics';
+ * $graph->legend = false;
+ *
+ * $graph->data['Access statistics'] = new ezcGraphArrayDataSet( array(
+ * 'Mozilla' => 19113,
+ * 'Explorer' => 10917,
+ * 'Opera' => 1464,
+ * 'Safari' => 652,
+ * 'Konqueror' => 474,
+ * ) );
+ *
+ * $graph->driver = new ezcGraphCairoDriver();
+ *
+ * // No options yet.
+ *
+ * $graph->render( 400, 200, 'tutorial_driver_cairo.png' );
+ * </code>
+ *
+ * @property float $imageMapResolution
+ * Degree step used to interpolate round image primitives by
+ * polygons for image maps
+ * @property float $circleResolution
+ * Resolution for circles, until I understand how to draw ellipses
+ * with SWFShape::curveTo()
+ *
+ * @version //autogentag//
+ * @package Graph
+ */
+class ezcGraphCairoDriverOptions extends ezcGraphDriverOptions
+{
+ /**
+ * Constructor
+ *
+ * @param array $options Default option array
+ * @return void
+ * @ignore
+ */
+ public function __construct( array $options = array() )
+ {
+ $this->properties['imageMapResolution'] = 10;
+ $this->properties['circleResolution'] = 2.;
+
+ parent::__construct( $options );
+ }
+
+ /**
+ * Set an option value
+ *
+ * @param string $propertyName
+ * @param mixed $propertyValue
+ * @throws ezcBasePropertyNotFoundException
+ * If a property is not defined in this class
+ * @return void
+ * @ignore
+ */
+ public function __set( $propertyName, $propertyValue )
+ {
+ switch ( $propertyName )
+ {
+ case 'imageMapResolution':
+ if ( !is_numeric( $propertyValue ) ||
+ ( $propertyValue < 1 ) )
+ {
+ throw new ezcBaseValueException( $propertyName, $propertyValue, 'int >= 1' );
+ }
+
+ $this->properties['imageMapResolution'] = (int) $propertyValue;
+ break;
+ case 'circleResolution':
+ if ( !is_numeric( $propertyValue ) ||
+ ( $propertyValue <= 0 ) )
+ {
+ throw new ezcBaseValueException( $propertyName, $propertyValue, 'float > 0' );
+ }
+
+ $this->properties['circleResolution'] = (float) $propertyValue;
+ break;
+ default:
+ parent::__set( $propertyName, $propertyValue );
+ break;
+ }
+ }
+}
+
+?>
OpenPOWER on IntegriCloud