function add_cab_to_plot(varargin)
% Add 'cab' button to a plot which you can click to close all figures except
% the one you just clicked in.
%
% Usage:
% add_cab_to_plot
% add_cab_to_plot(h_fig)
%
% - If no figure handle is provided, the current figure will be used.
if nargin == 0
h_fig = gcf;
elseif nargin == 1
h_fig = varargin{1};
if ~ishandle(h_fig) || ~strcmp(get(h_fig, 'type'), 'figure')
error('Must pass in a figure handle')
end
else
error('Too many arguments')
end
% Get handle to built-in toolbar
h_toolbar = findall(h_fig, 'type', 'uitoolbar');
% Check if toolbar was deleted. If it was, create a new one.
if isempty(h_toolbar)
h_toolbar = uitoolbar(h_fig);
end
% Add button to toolbar
cdata = get_cab_cdata;
h = uipushtool(h_toolbar, ...
'tag', 'cab_button', ...
'cdata', cdata, ...
'separator', 'on', ...
'TooltipString', 'Close all plots EXCEPT this one', ...
'clickedcallback', {@cab_callback, h_fig});
% ===================================================================
function cab_callback(h_button, junk, h_fig)
cab(h_fig)
% ===================================================================
function A = get_cab_cdata
A(:,:,1) = [
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 1 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 1 0 0 0 0 0 0 0 0
0 0 0 0 0 1 1 1 1 0 0 0 1 1 1 1 0 0 1 1 0 1 1 0 0 0 0 0
0 0 0 0 1 1 0 0 1 1 0 1 1 0 0 1 1 0 1 1 1 0 1 1 0 0 0 0
0 0 0 0 1 1 0 0 0 0 0 0 0 0 0 1 1 0 1 1 0 0 1 1 0 0 0 0
0 0 0 0 1 1 0 0 0 0 0 0 1 1 1 1 1 0 1 1 0 0 1 1 0 0 0 0
0 0 0 0 1 1 0 0 0 0 0 1 1 0 0 1 1 0 1 1 0 0 1 1 0 0 0 0
0 0 0 0 1 1 0 0 1 1 0 1 1 0 0 1 1 0 1 1 1 0 1 1 0 0 0 0
0 0 0 0 0 1 1 1 1 0 0 0 1 1 1 0 1 1 1 1 0 1 1 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
];
A(:,:,2) = [
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 1 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 1 0 0 0 0 0 0 0 0
0 0 0 0 0 1 1 1 1 0 0 0 1 1 1 1 0 0 1 1 0 1 1 0 0 0 0 0
0 0 0 0 1 1 0 0 1 1 0 1 1 0 0 1 1 0 1 1 1 0 1 1 0 0 0 0
0 0 0 0 1 1 0 0 0 0 0 0 0 0 0 1 1 0 1 1 0 0 1 1 0 0 0 0
0 0 0 0 1 1 0 0 0 0 0 0 1 1 1 1 1 0 1 1 0 0 1 1 0 0 0 0
0 0 0 0 1 1 0 0 0 0 0 1 1 0 0 1 1 0 1 1 0 0 1 1 0 0 0 0
0 0 0 0 1 1 0 0 1 1 0 1 1 0 0 1 1 0 1 1 1 0 1 1 0 0 0 0
0 0 0 0 0 1 1 1 1 0 0 0 1 1 1 0 1 1 1 1 0 1 1 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
];
A(:,:,3) = [
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 1 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 1 0 0 0 0 0 0 0 0
0 0 0 0 0 1 1 1 1 0 0 0 1 1 1 1 0 0 1 1 0 1 1 0 0 0 0 0
0 0 0 0 1 1 0 0 1 1 0 1 1 0 0 1 1 0 1 1 1 0 1 1 0 0 0 0
0 0 0 0 1 1 0 0 0 0 0 0 0 0 0 1 1 0 1 1 0 0 1 1 0 0 0 0
0 0 0 0 1 1 0 0 0 0 0 0 1 1 1 1 1 0 1 1 0 0 1 1 0 0 0 0
0 0 0 0 1 1 0 0 0 0 0 1 1 0 0 1 1 0 1 1 0 0 1 1 0 0 0 0
0 0 0 0 1 1 0 0 1 1 0 1 1 0 0 1 1 0 1 1 1 0 1 1 0 0 0 0
0 0 0 0 0 1 1 1 1 0 0 0 1 1 1 0 1 1 1 1 0 1 1 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
];