www.gusucode.com > mbcguitools 工具箱 matlab 源码程序 > mbcguitools/+mbcgui/+widget/@ClassicTable/getCellAt.m
function index = getCellAt(obj, x, y) %GETCELLAT A short description of the function % % INDEX = GETCELLAT(OBJ, X, Y) returns the row and column indices of the % cell being displayed at point (X, Y). If no cell is beneath that point, % INDEX will be returned as [-1, -1]. A row or column index of 0 % indicates that a header cell is below the point. % Copyright 2015 The MathWorks, Inc. and Ford Global Technologies, Inc. [index(1), index(2)] = getCellAt(obj.gridObject, x, y); if any(index>0) % Convert this to central scroll area index and then to data array % index [rlim, clim] = size(obj.MainObjects); if obj.ShowColumnHeaders if strcmp(obj.ColumnHeaderPosition, 'top') % index of 1 corresponds to column headers (row 0) index(1) = index(1) - 1; if index(1) > rlim % index is in scrollbar region index(1) = 1; end else if index(1)==(rlim+1) % index is in the column header row index(1) = 0; elseif index(1) > (rlim+1) % index is in scrollbar region index(1) = -1; end end end if obj.ShowRowHeaders % index of 1 corresponds to row headers (column 0) index(2) = index(2) - 1; if index(2) > clim % index is in scrollbar region index(2) = 1; end end if any(index<0) % Make sure we change to all -1 if any direction is not over a % display cell index = [-1 -1]; else % Add the offsets for the scrolling index = index + [obj.CurrentRow obj.CurrentColumn]; end else index = [-1 -1]; end end