--- 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 +# 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; }