www.gusucode.com > mbcguitools 工具箱 matlab 源码程序 > mbcguitools/+mbcgui/+widget/@ClassicTable/setPosition.m

    function val = setPosition(obj, val)
%SETPOSITION Respond to position being set
%
%  SETPOSITION(OBJ, EVT) is called after the object's position
%  property has been set.

% Copyright 2015-2015 The MathWorks, Inc. and Ford Global Technologies, Inc.

% Turn off packing on the grid object
setBoolPackstatus(obj.gridObject, false);
if ~isempty(val)
    set(obj.gridObject, 'Position', val);
end

% Check the number of rows/cols to be made visible
availH = obj.Position(4);
if (diff(obj.ScrollColumnLimits)>0);
    availH = availH - obj.ScrollbarWidth;
end
if obj.ShowColumnHeaders
    availH = availH - obj.ColumnHeaderWidth;
end

availW = obj.Position(3);
if (diff(obj.ScrollRowLimits)>0);
    availW = availW - obj.ScrollbarWidth;
end
if obj.ShowRowHeaders
    availW = availW - obj.RowHeaderWidth;
end

div = obj.MinimumCellSize(2)+obj.RowGap;
if div==0
    nR = double(intmax);
else
    nR = max(1, floor(availH/div));
end
div = obj.MinimumCellSize(1)+obj.ColumnGap;
if div==0
    nC = double(intmax);
else
    nC = max(1, floor(availW/div));
end

% This call will trigger events that lead to this class redoing the grid
% setup if necessary
obj.setVisibleSize(nR, nC);

setBoolPackstatus(obj.gridObject, true);
repack(obj.gridObject);

end