www.gusucode.com > mbcguitools 工具箱 matlab 源码程序 > mbcguitools/@texlistbox/texlistbox.m

    function obj=texlistbox(varargin)
% TEXLISTBOX  Constructor for TexListBox
%
%  T=TEXLISTBOX constructs a list box which uses Axes text objects
%  to render the strings.
%

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



% Created 4/10/2000

if nargin>0 && mbcgui.util.isComponentParent(varargin{1})
   figh=varargin{1};
   varargin(1)=[];
else
   figh=gcf;
end

obj.version=1;

ud.string={''};   % cell array of strings
ud.userdata=[];
ud.value=1; % selected index/indices
ud.selmode=0;   % single/multi-select
ud.multiclickind=1;  % last select for use with multi-select mode
ud.max=1;
ud.min=0;
ud.parent=figh;
ud.fonts.fontsize=get(figh,'DefaultUicontrolFontSize');
ud.fonts.fontname=get(figh,'DefaultUicontrolFontName');
ud.callback='';
% decide cell height
ax=axestext(figh,'visible','off',...
   'fontsize',ud.fonts.fontsize,...
   'fontname',ud.fonts.fontname,...
   'FontUnits','pixels',...
   'string','Yy');

ext(4)=12;
delete(ax);
l=xreglistctrl(figh,'visible','off',...
   'cellborder',0,...
   'cellheight',ext(4)-2,...
   'userdata',ud,...
   'callback','cbselect(%OBJECT%,%VALUE%);');

obj=class(obj,'texlistbox',l);

% install the sub-object as the callback dispatcher.
set(obj,'object',obj);

if ~any(strcmpi('visible',varargin(1:2:end)))
   set(obj.xreglistctrl,'Visible','on');
end
if ~isempty(varargin)
   obj=set(obj,varargin{:});
end
return