function isHG = ishghandle( h )
%ISHGHANDLE True for Handle Graphics object handles.
%   ISHGHANDLE(H) returns an array that contains 1's where the elements
%   of H are valid graphic object handles and 0's where they are not.
%   Differs from ISHANDLE in that Simulink objects handles return false.

%   Copyright 1984-2003 The MathWorks, Inc.
%   $Revision: 1.7.4.3 $  $Date: 2004/11/29 23:31:14 $

error( nargchk(1,1,nargin) )

pendingError = lasterr;
wasError = 0;

%See if it is a handle of some kind
isHG = ishandle(h);
for i = 1:length(h(:))
  if isHG(i)
    %If can not GET the Type of the object then it is not an HG object.
    try
      isHG(i) = isa(handle(h(i)), 'hg.GObject');
    catch
      isHG(i) = logical(0);
      wasError = 1;
    end
  end
end

%Do not change the current error that may be reported by user of this function.
if wasError
  lasterr( pendingError )
end

