www.gusucode.com > mbclayouts 工具箱 matlab 源码程序 > mbclayouts/@xregtablayout2/cb_tabsel.m
function cb_tabsel(obj,ind) %CB_TABSEL Tab callback % % CB_TABSEL(OBJ,IND) % % Copyright 2000-2011 The MathWorks, Inc. and Ford Global Technologies, Inc. ud=get(obj.whiteline,'UserData'); if ud.enabled(ind) indnow=get(obj.xregcardlayout,'currentcard'); if indnow~=ind PR=xregGui.PointerRepository; ptrID=PR.stackSetPointer(get(obj.axes,'Parent'),'watch'); i_firecb(obj,'beforecallback', ind); set(obj.xregcardlayout,'currentcard',ind); pr_draw3D(obj); pr_drawlabels(obj,[indnow get(obj.xregcardlayout,'currentcard')]) % activate callback i_firecb(obj,'callback', ind); PR.stackRemovePointer(get(obj.axes,'Parent'),ptrID); end end function i_firecb(obj,cb, ind) ud=get(obj.whiteline,'UserData'); cbstr= ud.(cb); if ~isempty(cbstr) if ischar(cbstr) % parse for %CURRENTCARD% and %OBJECT% pcs=strfind(cbstr,'%'); go=1; needobj=0; needval=0; while (go<=(length(pcs)-1)) cmp=cbstr(pcs(go)+1:pcs(go+1)-1); if strcmp(cmp,'CARD') needval=1; cbstr=[cbstr(1:pcs(go)-1) 'XX_CARD_XX' cbstr(pcs(go+1)+1:end)]; go=go+2; pcs=pcs+4; elseif strcmp(cmp,'OBJECT') needobj=1; cbstr=[cbstr(1:pcs(go)-1) 'XX_OBJECT_XX' cbstr(pcs(go+1)+1:end)]; go=go+2; pcs=pcs+4; else go=go+1; end end if needobj assignin('base','XX_OBJECT_XX',obj); end if needval assignin('base','XX_CARD_XX',ind); end evalin('base',cbstr); % clear up base workspace evalin('base','clear(''XX_OBJECT_XX'',''XX_CARD_XX'');'); else evt.NewCard = ind; xregcallback(cbstr, obj, evt); end end