summaryrefslogtreecommitdiffhomepage
path: root/docs/class.ImlibDraw.php
diff options
context:
space:
mode:
Diffstat (limited to 'docs/class.ImlibDraw.php')
-rw-r--r--docs/class.ImlibDraw.php167
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;
+ }
+};
+
+?>