properties['startColor'] = $startColor; $this->properties['endColor'] = $endColor; $this->properties['startPoint'] = $startPoint; $this->properties['endPoint'] = $endPoint; } /** * __set * * @param mixed $propertyName * @param mixed $propertyValue * @throws ezcBaseValueException * If a submitted parameter was out of range or type. * @throws ezcBasePropertyNotFoundException * If a the value for the property options is not an instance of * @return void * @ignore */ public function __set( $propertyName, $propertyValue ) { switch ( $propertyName ) { case 'startPoint': if ( !$propertyValue instanceof ezcGraphCoordinate ) { throw new ezcBaseValueException( $propertyName, $propertyValue, 'ezcGraphCoordinate' ); } else { $this->properties['startPoint'] = $propertyValue; } break; case 'endPoint': if ( !$propertyValue instanceof ezcGraphCoordinate ) { throw new ezcBaseValueException( $propertyName, $propertyValue, 'ezcGraphCoordinate' ); } else { $this->properties['endPoint'] = $propertyValue; } break; case 'startColor': $this->properties['startColor'] = ezcGraphColor::create( $propertyValue ); break; case 'endColor': $this->properties['endColor'] = ezcGraphColor::create( $propertyValue ); break; } } /** * __get * * @param mixed $propertyName * @throws ezcBasePropertyNotFoundException * If a the value for the property options is not an instance of * @return mixed * @ignore */ public function __get( $propertyName ) { switch ( $propertyName ) { case 'red': case 'green': case 'blue': case 'alpha': // Fallback to native color return $this->properties['startColor']->$propertyName; default: if ( isset( $this->properties[$propertyName] ) ) { return $this->properties[$propertyName]; } else { throw new ezcBasePropertyNotFoundException( $propertyName ); } } } /** * Returns a unique string representation for the gradient. * * @access public * @return void */ public function __toString() { return sprintf( 'LinearGradient_%d_%d_%d_%d_%02x%02x%02x%02x_%02x%02x%02x%02x', $this->properties['startPoint']->x, $this->properties['startPoint']->y, $this->properties['endPoint']->x, $this->properties['endPoint']->y, $this->properties['startColor']->red, $this->properties['startColor']->green, $this->properties['startColor']->blue, $this->properties['startColor']->alpha, $this->properties['endColor']->red, $this->properties['endColor']->green, $this->properties['endColor']->blue, $this->properties['endColor']->alpha ); } } ?>