--- loncom/xml/lonplot.pm	2005/05/16 21:58:41	1.107
+++ loncom/xml/lonplot.pm	2005/05/31 22:15:32	1.108
@@ -1,7 +1,7 @@
 # The LearningOnline Network with CAPA
 # Dynamic plot
 #
-# $Id: lonplot.pm,v 1.107 2005/05/16 21:58:41 foxr Exp $
+# $Id: lonplot.pm,v 1.108 2005/05/31 22:15:32 foxr Exp $
 #
 # Copyright Michigan State University Board of Trustees
 #
@@ -39,6 +39,12 @@ use Apache::lonnet;
 
 use vars qw/$weboutputformat $versionstring/;
 
+#
+#   This variable allows a callback to be registered
+#   if a gnuplot tag block is performed.
+#
+my $notify_callback;
+
 BEGIN {
     &Apache::lonxml::register('Apache::lonplot',('gnuplot'));
     #
@@ -48,6 +54,30 @@ BEGIN {
     if ($versionstring =~ /^gnuplot 4/) {
         $weboutputformat = 'png';
     }
+    $notify_callback = undef;
+    
+}
+
+# register_callback(\&callback)
+#    Arranges for callback to be invoked on the </gnuplot>
+#    tag.
+# 
+sub register_callback {
+    $notify_callback = shift;
+}
+# clear_callback();
+#     Undefs the callback.
+#
+sub clear_callback {
+    $notify_callback = undef;
+}
+# invoke_callback()
+#     Invokes the callback if defined
+#
+sub invoke_callback {
+    if (defined $notify_callback) {
+	&$notify_callback();
+    }
 }
 
 ## 
@@ -540,6 +570,7 @@ ENDIMAGE
     } elsif ($target eq 'edit') {
 	$result.=&Apache::edit::tag_end($target,$token);
     }
+    &invoke_callback();
     return $result;
 }