www.gusucode.com > mbcguitools 工具箱 matlab 源码程序 > mbcguitools/xregtextlist.m
function [totalH, totalW]=xregtextlist(axH,pos,strings,indents,bolds,spacing,indent_size) %XREGTEXTLIST Create a series of text items in an axes % % totalH=XREGTEXTLIST(axH, [XPOS YPOS ZPOS], STR, INDENT, BOLD, SPACING, INDENTSZ) % % Copyright 2000-2010 The MathWorks, Inc. and Ford Global Technologies, Inc. if nargin<7 indent_size=15; % (points) end if nargin<6 spacing=0; % (points) end if nargin<5 bolds=[]; end if nargin<4 indents=[]; end % ensure all 3 lists are the same length Nstr=length(strings); if length(bolds)<Nstr bolds(end+1:Nstr)=0; end if length(indents)<Nstr indents(end+1:Nstr)=0; end % Get default fontsize in points DaxH=mbcgui.hgclassesutil.toNative(axH); deftextunits=get(DaxH,'DefaultTextFontUnits'); set(DaxH,'DefaultTextFontUnits','points'); txsize=get(DaxH,'DefaultTextFontSize'); set(DaxH,'DefaultTextFontUnits',deftextunits); % Create items count=0; for n=Nstr:-1:1 if bolds(n) fw='bold'; else fw='normal'; end tH(n)=text('Parent',axH,... 'Units','points',... 'Position',pos+[indents(n)*indent_size count*(txsize+spacing) 0],... 'VerticalAlignment','baseline',... 'HorizontalAlignment','left',... 'String',strings{n},... 'FontWeight',fw); count=count+1; end if nargout pos=get(tH(1),'Position'); pixperpoint=pos(2); set(tH(1),'Units','pixels'); pos=get(tH(1),'Position'); pixperpoint=pos(2)/pixperpoint; set(tH(1),'Units','points'); totalH = (Nstr*(txsize+spacing)-spacing)*pixperpoint; if nargout>1 % calculate the horizontal extent ext=get(tH,{'Extent'}); ext=cat(1,ext{:}); ext=(ext(:,3)+indents(:)*indent_size)*pixperpoint; totalW=max(ext); end end