IMHO, this pretty much depends on the implementation of the individual guis.
If all GUIs make use of guidata
and properties of the parent figure (of which there will be only one after the combination), this can quickly become impossible or at least messy without reworking all GUIs.
Another possibility would be to dock the figures into one desktop-group. This way each individual GUI would be kept isolated and doesn't need changes in its implementation. See e.g.
http://www.mathworks.nl/matlabcentral/fileexchange/18106-manage-and-dock-figures-into-group
for an example on how to dock figures into one desktop-group.
EDIT:
A quick&dirty example:
function dockTest()
GROUPNAME = 'MyGUIs';
desktop = com.mathworks.mde.desk.MLDesktop.getInstance();
group = desktop.addGroup(GROUPNAME);
desktop.showGroup(GROUPNAME,1);
% create some dummy-figures:
for i=1:2
figureList(i) = figure('name', ['GUI ', num2str(i)],...
'numbertitle','off');
end
% dock figures in list:
for i=1:numel(figureList)
f = figureList(i);
jf = get(handle(f), 'JavaFrame');
jf.setGroupName(GROUPNAME);
set(f, 'WindowStyle', 'docked');
end
end
You should be able to simply make figureList
(and maybe GROUPNAME
as well) be an argument to this function, hence passing it all figure-handles you want to dock into a group.
You don't need a toolbox for this.
I guess I should note that this is all based on undocumented features.
I usually play around with this sort of things by making heavy use of methodsview
on the individual java objects involved.