0001 function figure_size = getnicedialoglocation(figure_size, figure_units)
0002
0003
0004
0005
0006
0007
0008 parentHandle = gcbf;
0009 convertData.destinationUnits = figure_units;
0010 if ~isempty(parentHandle)
0011
0012 convertData.hFig = parentHandle;
0013 convertData.size = get(parentHandle,'Position');
0014 convertData.sourceUnits = get(parentHandle,'Units');
0015 c = [];
0016 else
0017
0018
0019 convertData.hFig = figure('visible','off');
0020 convertData.size = get(0,'ScreenSize');
0021 convertData.sourceUnits = get(0,'Units');
0022 c = onCleanup(@() close(convertData.hFig));
0023 end
0024
0025
0026 container_size = hgconvertunits(convertData.hFig, convertData.size ,...
0027 convertData.sourceUnits, convertData.destinationUnits, get(convertData.hFig,'Parent'));
0028
0029 delete(c);
0030
0031 figure_size(1) = container_size(1) + 1/2*(container_size(3) - figure_size(3));
0032 figure_size(2) = container_size(2) + 2/3*(container_size(4) - figure_size(4));
0033
0034