www.gusucode.com > mbcguitools 工具箱 matlab 源码程序 > mbcguitools/@mbcmultiview/@MultiViewPanel/printToFigure.m
function H = printToFigure(obj) %PRINTTOFIGURE Create a copy of the current view in a new figure. % % PRINTTOFIGURE(OBJ) creates a new figure that contains a copy of the % current view. The handle to the new figure is returned. % Copyright 2005-2010 The MathWorks, Inc. and Ford Global Technologies, Inc. hVC = obj.getSelectedViewContainer; if ~isempty(hVC) PR = xregGui.PointerRepository; PtrID = PR.stackSetPointer(obj.Parent, 'watch'); MsgID = obj.pAddStatusMessage('Printing current view to a new figure...'); hV = hVC.View; P = ancestor(obj.Parent, 'figure'); H = figure('Color', 'w', ... 'Visible', 'off', ... 'Renderer', get(P, 'Renderer'), ... 'Name', sprintf('%s - %s', hV.gettitle, obj.MessageService.getDataName), ... 'NumberTitle', 'off'); if hV.canPrint L = hV.printcopy(H); else hNewView = obj.ViewList.createView(obj.getSelectedViewTypeIndex, ... obj.MessageService.copy, ... 'Parent', H); L = mbcmultiview.PanelViewContainer('Parent', H, ... 'View', hNewView); end figpos = get(H, 'Position'); set(L, 'Position', [1 1 figpos(3:4)]); List = mbcgui.hgclassesutil.listener(H, 'SizeChanged', mbcutils.callback(@i_resizefig, H, L)); set(H, 'Visible', 'on', 'UserData', List); obj.pRemoveStatusMessage(MsgID); PR.stackRemovePointer(obj.Parent, PtrID); end function i_resizefig(src, evt, H, L) figpos = get(H, 'Position'); set(L, 'Position', [1 1 figpos(3:4)]);