diff --git a/license.txt b/license.txt index 278cce8d4..c16b15765 100644 --- a/license.txt +++ b/license.txt @@ -123,6 +123,11 @@ Copyright: 2010-2015 Alexander Meyer-Gohde 2015-2017 Dynare Team License: GPL-3+ +Files: matlab/collapse_figures_in_tabgroup.m +Copyright: 2023 Eduard Benet Cerda + 2024 Dynare Team +License: GPL-3+ + Files: matlab/convergence_diagnostics/raftery_lewis.m Copyright: 2016 Benjamin Born and Johannes Pfeifer 2016-2017 Dynare Team diff --git a/matlab/collapse_figures_in_tabgroup.m b/matlab/collapse_figures_in_tabgroup.m new file mode 100644 index 000000000..bacb3d690 --- /dev/null +++ b/matlab/collapse_figures_in_tabgroup.m @@ -0,0 +1,42 @@ +function collapse_figures_in_tabgroup + +% Copyright © 2023 Eduard Benet Cerda +% Copyright © 2024 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 . + +% Create a new figure with results +fig = uifigure(Name = 'Dynare Results'); + +% Add a grid layout to make sure it spans the entire width +g = uigridlayout(fig, [1,1], Padding = 0); + +% Add a tabgroup +tg = uitabgroup(g); + +% Find all figures with Dynare Tag +f = findobj('-regexp','tag','dynare-figure'); + +% Loop over all figures and reparent them to a tab. Avoid legends, they are +% automatically tied. +for j = 1 : numel(f) + t = uitab(tg); + types = arrayfun(@class, f(j).Children, 'UniformOutput', false); + idx = ismember(types, 'matlab.graphics.illustration.Legend'); % no need to reparent legends + set(f(j).Children(~idx),'Parent',t) + t.Title = f(j).Name; + delete(f(j)) +end \ No newline at end of file diff --git a/matlab/dyn_figure.m b/matlab/dyn_figure.m index 6de947428..ccf678855 100644 --- a/matlab/dyn_figure.m +++ b/matlab/dyn_figure.m @@ -12,7 +12,7 @@ function h = dyn_figure(nodisplay, varargin) % SPECIAL REQUIREMENTS % none -% Copyright © 2012-2017 Dynare Team +% Copyright © 2012-2024 Dynare Team % % This file is part of Dynare. % @@ -30,7 +30,7 @@ function h = dyn_figure(nodisplay, varargin) % along with Dynare. If not, see . if nodisplay - h = figure(varargin{:},'visible','off'); + h = figure(varargin{:},'visible','off','tag','dynare-figure'); else - h = figure(varargin{:}); + h = figure(varargin{:},'tag','dynare-figure'); end