% method of class @parameter
% 
% (c) 2011, University of Southampton
% Maintained by Stefan Bleeck (bleeck@gmail.com)
% download of current version is on the soundsoftware site: 
% http://code.soundsoftware.ac.uk/projects/aimmat
% documentation and everything is on http://www.acousticscale.org
function param=setcallback(param,text,cback,inbox)
% every entry can have a callback function that is called when the item
% looses its focus

cont=param.entries;
nrent=length(cont);

if nargin<4
    inbox='all';
end
nr=-1;
% text can be a string or a number
if isstr(text) % if its a sting then look for the member number
    % first search for the exact fit
    for i=1:nrent
        if strcmp(cont{i}.text,text) && (strcmp(cont{i}.panel,inbox) || strcmp(inbox,'all'))
            nr=i;
            break
        end
    end
    % then search for the abbreviation
    for i=1:nrent
        if ~isempty(strfind(cont{i}.text,text)) && (strcmp(cont{i}.panel,inbox) || strcmp(inbox,'all'))
            nr=i;
            break
        end
    end
else
    nr=text; % in this case we wanted to access it by the number
end


if nr>0
    param.entries{nr}.callback=cback;
    return
else
    val='setcallback:: error, the entry does not exist';
end
