--- loncom/homework/drawimage.pm	2003/11/15 06:33:39	1.1
+++ loncom/homework/drawimage.pm	2004/03/16 23:08:23	1.5
@@ -1,7 +1,7 @@
 # The LearningOnline Network with CAPA
 # programatic image drawing
 #
-# $Id: drawimage.pm,v 1.1 2003/11/15 06:33:39 albertel Exp $
+# $Id: drawimage.pm,v 1.5 2004/03/16 23:08:23 albertel Exp $
 #
 # Copyright Michigan State University Board of Trustees
 #
@@ -38,7 +38,7 @@ BEGIN {
 
 sub start_drawimage {
     my ($target,$token,$tagstack,$parstack,$parser,$safeeval,$style)=@_;
-    &Apache::lonxml::register('Apache::drawimage',('line','rectangle','arc','fill'));
+    &Apache::lonxml::register('Apache::drawimage',('text','line','rectangle','arc','fill'));
     if ($target eq 'web' || $target eq 'tex') {
 	$cgi_id=&Apache::loncommon::get_cgi_id();
 	%args=();
@@ -72,6 +72,30 @@ sub end_drawimage {
     return $result;
 }
 
+sub start_text {
+    my ($target,$token,$tagstack,$parstack,$parser,$safeeval,$style)=@_;
+    my $result;
+    if ($target eq 'web' || $target eq 'tex') {
+        my $x     = &Apache::lonxml::get_param('x',$parstack,$safeeval);
+        my $y     = &Apache::lonxml::get_param('y',$parstack,$safeeval);
+        my $font  = &Apache::lonxml::get_param('font',$parstack,$safeeval);
+        my $color = &Apache::lonxml::get_param('color',$parstack,$safeeval);
+        my $direction = &Apache::lonxml::get_param('direction',$parstack,$safeeval);
+	my $text  = &Apache::lonxml::get_all_text("/text",$parser);
+        $text = &Apache::lonnet::escape($text);
+        $args{"cgi.$cgi_id.OBJTYPE"}.='LABEL:';
+	my $i=$args{"cgi.$cgi_id.OBJCOUNT"}++;
+	$args{"cgi.$cgi_id.OBJ$i"}=join(':',($x,$y,$text,$font,$color,$direction));
+    }
+    return $result;
+}
+
+sub end_text {
+    my ($target,$token,$tagstack,$parstack,$parser,$safeeval,$style)=@_;
+    my $result;
+    return $result;
+}
+
 sub start_line {
     my ($target,$token,$tagstack,$parstack,$parser,$safeeval,$style)=@_;
     my $result;
@@ -82,7 +106,7 @@ sub start_line {
 	my $y2 = &Apache::lonxml::get_param('y2',$parstack,$safeeval);
 	my $color = &Apache::lonxml::get_param('color',$parstack,$safeeval);
 	my $thickness = &Apache::lonxml::get_param('thickness',$parstack,$safeeval);
-	my $i=(++$args{"cgi.$cgi_id.OBJCOUNT"})-1;
+	my $i=$args{"cgi.$cgi_id.OBJCOUNT"}++;
 	$args{"cgi.$cgi_id.OBJ$i"}=join(':',($x1,$y1,$x2,$y2,$color,$thickness));
 	$args{"cgi.$cgi_id.OBJTYPE"}.='LINE:';
     }
@@ -108,7 +132,7 @@ sub start_rectangle {
 						   $safeeval);
 	my $filled = &Apache::lonxml::get_param('filled',$parstack,
 						$safeeval);
-	my $i=(++$args{"cgi.$cgi_id.OBJCOUNT"})-1;
+	my $i=$args{"cgi.$cgi_id.OBJCOUNT"}++;
 	$args{"cgi.$cgi_id.OBJ$i"}=
 	    join(':',($x1,$y1,$x2,$y2,$color,$thickness,$filled));
 	$args{"cgi.$cgi_id.OBJTYPE"}.='RECTANGLE:';
@@ -135,7 +159,7 @@ sub start_arc {
 	my $color = &Apache::lonxml::get_param('color',$parstack,$safeeval);
 	my $thickness = &Apache::lonxml::get_param('thickness',$parstack,$safeeval);
 	my $filled = &Apache::lonxml::get_param('filled',$parstack,$safeeval);
-	my $i=(++$args{"cgi.$cgi_id.OBJCOUNT"})-1;
+	my $i=$args{"cgi.$cgi_id.OBJCOUNT"}++;
 	$args{"cgi.$cgi_id.OBJ$i"}=
 	    join(':',($x,$y,$width,$height,$start,$end,$color,$thickness,
 		      $filled));
@@ -150,21 +174,21 @@ sub end_arc {
     return $result;
 }
 
-sub start_arc {
+sub start_fill {
     my ($target,$token,$tagstack,$parstack,$parser,$safeeval,$style)=@_;
     my $result;
     if ($target eq 'web' || $target eq 'tex') {
 	my $x = &Apache::lonxml::get_param('x',$parstack,$safeeval);
 	my $y = &Apache::lonxml::get_param('y',$parstack,$safeeval);
 	my $color = &Apache::lonxml::get_param('color',$parstack,$safeeval);
-	my $i=(++$args{"cgi.$cgi_id.OBJCOUNT"})-1;
+	my $i=$args{"cgi.$cgi_id.OBJCOUNT"}++;
 	$args{"cgi.$cgi_id.OBJ$i"}=join(':',($x,$y,$color));
 	$args{"cgi.$cgi_id.OBJTYPE"}.='FILL:';
     }
     return $result;
 }
 
-sub end_arc {
+sub end_fill {
     my ($target,$token,$tagstack,$parstack,$parser,$safeeval,$style)=@_;
     my $result;
     return $result;