diff --git a/matlab/dyn_waitbar.m b/matlab/dyn_waitbar.m new file mode 100644 index 000000000..0a8ddd16a --- /dev/null +++ b/matlab/dyn_waitbar.m @@ -0,0 +1,62 @@ +function h = dyn_waitbar(prctdone, varargin) +% h = dyn_waitbar(prctdone, varargin) +% adaptive waitbar, producing console mode waitbars with +% octave and when console_mode=1 + +% +% Copyright (C) 2011 Dynare Team +% +% This file is part of Dynare. +% +% Dynare 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 3 of the License, or +% (at your option) any later version. +% +% Dynare 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 Dynare. If not, see . +global options_ +persistent running_text newString + +if prctdone==0, + init=1; +else + init=0; +end + +if exist('OCTAVE_VERSION') || options_.console_mode, + + if nargout, + h=[]; + end + + if init, + diary off; + running_text = varargin{1}; + newString=''; + return; + elseif nargin>2, + running_text = varargin{2}; + end + + if exist('OCTAVE_VERSION'), + printf([running_text,' %3.f%% done\r'], prctdone*100); + else + s0=repmat('\b',1,length(newString)); + newString=sprintf([running_text,' %3.f%% done'], prctdone*100); + fprintf([s0,'%s'],newString); + end + +else + if nargout, + h = waitbar(prctdone,varargin{:}); + else + waitbar(prctdone,varargin{:}); + end +end + diff --git a/matlab/dyn_waitbar_close.m b/matlab/dyn_waitbar_close.m new file mode 100644 index 000000000..244f6c08e --- /dev/null +++ b/matlab/dyn_waitbar_close.m @@ -0,0 +1,31 @@ +function dyn_waitbar_close(h) +% h = dyn_waitbar_close(h) +% adaptive close waitbar, compatible with +% octave and when console_mode=1 + +% +% Copyright (C) 2011 Dynare Team +% +% This file is part of Dynare. +% +% Dynare 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 3 of the License, or +% (at your option) any later version. +% +% Dynare 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 Dynare. If not, see . +global options_ + +if exist('OCTAVE_VERSION') || options_.console_mode, + clear dyn_waitbar; + diary on, + fprintf('\n'); +else + close(h), +end