--- loncom/homework/imageresponse.pm 2001/08/06 20:33:23 1.12 +++ loncom/homework/imageresponse.pm 2002/02/04 17:30:53 1.17 @@ -1,27 +1,57 @@ # The LearningOnline Network with CAPA -# iimage click response style +# image click response style +# +# $Id: imageresponse.pm,v 1.17 2002/02/04 17:30:53 albertel Exp $ +# +# Copyright Michigan State University Board of Trustees +# +# This file is part of the LearningOnline Network with CAPA (LON-CAPA). +# +# LON-CAPA is free software; you can redistribute it and/or modify +# it under the terms of the GNU General Public License as published by +# the Free Software Foundation; either version 2 of the License, or +# (at your option) any later version. +# +# LON-CAPA is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU General Public License for more details. +# +# You should have received a copy of the GNU General Public License +# along with LON-CAPA; if not, write to the Free Software +# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +# +# /home/httpd/html/adm/gpl.txt +# +# http://www.lon-capa.org/ +# #FIXME assumes multiple possbile submissions but only one is possible currently package Apache::imageresponse; use strict; -sub BEGIN { +BEGIN { &Apache::lonxml::register('Apache::imageresponse',('imageresponse')); } sub start_imageresponse { my ($target,$token,$tagstack,$parstack,$parser,$safeeval,$style)=@_; + my $result; #when in a radiobutton response use these &Apache::lonxml::register('Apache::imageresponse',('foilgroup','foil','text','image','rectangle','conceptgroup')); push (@Apache::lonxml::namespace,'imageresponse'); my $id = &Apache::response::start_response($parstack,$safeeval); - return ''; + if ($target eq 'meta') { + $result=&Apache::response::meta_package_write('imageresponse'); + } + return $result; } sub end_imageresponse { &Apache::response::end_response; pop @Apache::lonxml::namespace; + &Apache::lonxml::deregister('Apache::imageresponse',('foilgroup','foil','text','image','rectangle','conceptgroup')); return ''; } @@ -242,7 +272,9 @@ sub grade_rectangle { &Apache::lonxml::debug("Point $x1,$y1,$x2,$y2"); if ($x1 > $x2) { my $temp=$x1;$x1=$x2;$x2=$temp; } if ($y1 > $y2) { my $temp=$y1;$y1=$y2;$y2=$temp; } - if ($x => $x1) { if ($x <= $x2) { if ($y => $y1) { if ($y <= $y2) { return 'APPROX_ANS'; } } } } + if (($x >= $x1) && ($x <= $x2) && ($y >= $y1) && ($y <= $y2)) { + return 'APPROX_ANS'; + } return 'INCORRECT'; }