diff options
Diffstat (limited to 'docs/class.ImlibDraw.php')
| -rw-r--r-- | docs/class.ImlibDraw.php | 167 |
1 files changed, 167 insertions, 0 deletions
diff --git a/docs/class.ImlibDraw.php b/docs/class.ImlibDraw.php new file mode 100644 index 0000000..4c24a0b --- /dev/null +++ b/docs/class.ImlibDraw.php @@ -0,0 +1,167 @@ +<?php + +/** +* Does everything relevant to drawing or filling ellipses, lines, or rectangles +* +* @version 0.3 +* @author Matt McClanahan <cardinal@dodds.net> +* @package Imlib +* @access public +*/ +class ImlibDraw extends ImlibCliprect +{ + /** + * Resource id# of the image to draw on + * + * @access private + */ + var $im; + + /** + * ImlibDraw constructor + * + * @access public + */ + function ImlibDraw() + { + $this->cliprect = 0; + $this->cliprect_inuse = 0; + $this->color = 0; + $this->im = 0; + } + + /** + * Callback for drawing everything + * + * Since all the drawing functions work the same way, this function + * does all the work. It takes four ints, often x,y,w,h, and passes + * them to the specified function. + * + * @param int First param + * @param int Second param + * @param int Third param + * @param int Fourth param + * @param string The name of the function to call + * @return bool False if no image is set yet + * @access private + */ + function _draw_something($x,$y,$w,$h,$cb) + { + if (!is_resource($this->im)) + return false; + + if (!$this->get_color($r,$g,$b,$a)) + list($r,$g,$b,$a) = Array(255,255,255,255); + + $cbname = 'imlib_image_' . $cb; + + if ($this->cliprect_inuse) + return $cbname($this->im,$x,$y,$w,$h,$r,$g,$b,$a, + $this->get_cliprect_array()); + else + return $cbname($this->im,$x,$y,$w,$h,$r,$g,$b,$a); + } + + /** + * Draw an ellipse + * + * @param int Center X coordinate + * @param int Center Y coordinate + * @param int Ellipse horizontal amplitude + * @param int Ellipse vertical amplitude + * + * @return bool False if no image is set yet + * @access public + */ + function draw_ellipse($x,$y,$w,$h) + { + return $this->_draw_something($x,$y,$w,$h,'draw_ellipse'); + } + + /** + * Draw a line + * + * @param int First X coordinate + * @param int First Y coordinate + * @param int Second X coordinate + * @param int Second Y coordinate + * + * @return bool False if no image is set yet + * @access public + */ + function draw_line($x1,$y1,$x2,$y2) + { + return $this->_draw_something($x1,$y1,$x2,$y2,'draw_line'); + } + + /** + * Draw a rectangle + * + * @param int Upper left X coordinate + * @param int Upper left Y coordinate + * @param int Width + * @param int Height + * + * @return bool False if no image is set yet + * @access public + */ + function draw_rectangle($x,$y,$w,$h) + { + return $this->_draw_something($x,$y,$w,$h,'draw_rectangle'); + } + + /** + * Fill an ellipse + * + * @param int Center X coordinate + * @param int Center Y coordinate + * @param int Ellipse horizontal amplitude + * @param int Ellipse vertical amplitude + * + * @return bool False if no image is set yet + * @access public + */ + function fill_ellipse($x,$y,$w,$h) + { + return $this->_draw_something($x,$y,$w,$h,'fill_ellipse'); + } + + /** + * Fill a rectangle + * + * @param int Upper left X coordinate + * @param int Upper left Y coordinate + * @param int Width + * @param int Height + * + * @return bool False if no image is set yet + * @access public + */ + function fill_rectangle($x,$y,$w,$h) + { + return $this->_draw_something($x,$y,$w,$h,'fill_rectangle'); + } + + /** + * Get the current image resource id# + * + * @access public + */ + function get_image() + { + return $this->im; + } + + /** + * Set the image resource id# to draw on + * + * @param int Image resource id# + * @access public + */ + function set_image($im) + { + $this->im = $im; + } +}; + +?> |
