0001 function h = dyn_waitbar(prctdone, varargin)
0002
0003
0004
0005
0006
0007
0008
0009
0010
0011
0012
0013
0014
0015
0016
0017
0018
0019
0020
0021
0022
0023 global options_
0024 persistent running_text newString
0025 persistent whoiam Parallel
0026
0027 if iscell(prctdone)
0028 whoiam = prctdone{2};
0029 Parallel = prctdone{3};
0030 prctdone=prctdone{1};
0031 end
0032
0033 if prctdone==0,
0034 init=1;
0035 if isempty(whoiam)
0036 whoiam=0;
0037 end
0038 else
0039 init=0;
0040 end
0041 if nargout,
0042 h=[];
0043 end
0044
0045 if ~whoiam
0046
0047 if exist('OCTAVE_VERSION') || options_.console_mode,
0048
0049 if init,
0050 diary off;
0051 running_text = varargin{1};
0052 newString='';
0053 return;
0054 elseif nargin>2,
0055 running_text = varargin{2};
0056 end
0057
0058 if exist('OCTAVE_VERSION'),
0059 printf([running_text,' %3.f%% done\r'], prctdone*100);
0060 else
0061 s0=repmat('\b',1,length(newString));
0062 newString=sprintf([running_text,' %3.f%% done'], prctdone*100);
0063 fprintf([s0,'%s'],newString);
0064 end
0065
0066 else
0067 if nargout,
0068 h = waitbar(prctdone,varargin{:});
0069 else
0070 waitbar(prctdone,varargin{:});
0071 end
0072 end
0073
0074 else
0075 if init,
0076 running_text = varargin{1};
0077 elseif nargin>2
0078 running_text = varargin{2};
0079 end
0080 if Parallel.Local,
0081 waitbarTitle=['Local '];
0082 else
0083 waitbarTitle=[Parallel.ComputerName];
0084 end
0085 fMessageStatus(prctdone,whoiam,running_text, waitbarTitle, Parallel);
0086 end
0087