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

    function deleteView(obj)
%DELETEVIEW Delete the currently selected view
%
%  DELETEVIEW(OBJ) deletes the currently selected view so long as there is
%  more than one view present.

%  Copyright 2005-2011 The MathWorks, Inc. and Ford Global Technologies, Inc.


if length(obj.ViewGroup.ViewContainers)>1
    P = xregGui.PointerRepository;
    PtrID = P.stackSetPointer(obj.Parent, 'watch');
    MsgID = obj.pAddStatusMessage('Closing current view...');
    
    hVC = obj.ViewGroup.SelectedViewContainer;
    
    VCdata = get(hVC,'Userdata');
    hParent = VCdata{1};
    delIndex = VCdata{2};
    keepIndex = 3-delIndex;
    ParentData = get(hParent, 'UserData');
    el = get(hParent, 'elements');
    hVCKeep = el{keepIndex};
    set(hVCKeep, 'UserData', ParentData);
    
    replace(ParentData{1}, hVCKeep, ParentData{2});
    
    set(hParent,'elements', {});
    delete(hParent);
    delete(hVC);
        
    obj.pRemoveStatusMessage(MsgID);
    P.stackRemovePointer(obj.Parent, PtrID); 
end