www.gusucode.com > mbcview 工具箱matlab源码程序 > mbcview/@cgdatasetnode/DrawDlg.m
function varargout = DrawDlg(D,action,varargin) %#ok<INUSL> %DRAWDLG % Copyright 2000-2010 The MathWorks, Inc. and Ford Global Technologies, Inc. if nargin>1 && ischar(action) switch lower(action) case 'get_callbacks' varargout{1} = i_GetCallbacks; case 'createpage' [varargout{1:2}] = createPage(varargin{:}); end else d = action; d= createDlgData(d); varargout{1} = d; varargout{2} = i_GetCallbacks; end return %----------------------------------------------------------------------- function cb = i_GetCallbacks %----------------------------------------------------------------------- cb = []; cb.Draw = @i_Draw; function d= createDlgData(d) d.Dlg = struct('Wizard',0,... 'DeleteExcluded',1,... 'tmp',[]); function [d,newview]=createPage(d) cb = i_GetCallbacks; d= createDlgData(d); newview = struct('ID','dlg',... 'drawcb',cb.Draw,... 'dialog',1); %----------------------------------------------------------------------- function [d,fig] = i_Draw(d) %----------------------------------------------------------------------- fig = xregfigure('Visible', 'off', 'WindowStyle', 'Modal','Tag','DatasetDialog'); %dialog % Register the figure with CAGE CGBH = cgbrowser; CGBH.registersubfigure(fig, 'current'); [d,lyt] = i_DrawLyt(d,fig); fig.LayoutManager = lyt; set(lyt,'packstatus','on'); %----------------------------------------------------------------------- function [d,lyt] = i_DrawLyt(d,fig) %----------------------------------------------------------------------- Handles = d.Dlg; Handles.Figure = fig; Handles.LeftList = cgDatasetList(Handles.Figure, 'top'); Handles.RightList = cgDatasetList(Handles.Figure, 'bottom'); Handles.TopButton = xregGui.iconuicontrol('parent',fig,'visible','off'); Handles.BottomButton = xregGui.iconuicontrol('parent',fig,'visible','off'); lists = xreggridbaglayout(fig, ... 'packstatus', 'off', ... 'visible','off',... 'dimension',[5 3],... 'colsizes',[-1 32 -1],... 'rowsizes', [-1 32 20 32 -1], ... 'gapx', 20, ... 'mergeblock', {[1 5], [1 1]}, ... 'mergeblock', {[1 5], [3 3]}, ... 'elements',{Handles.LeftList.Layout , [], [], [], [], ... [], Handles.TopButton, [], Handles.BottomButton, [], ... Handles.RightList.Layout}); Handles.Check1 = uicontrol('Parent',fig,'Visible','off',... 'Style','checkbox'); Handles.Check2 = uicontrol('Parent',fig,'Visible','off',... 'Style','checkbox'); Handles.Checks = xreggridlayout(fig,'visible','off',... 'correctalg','on',... 'dimension',[2 2],... 'elements',{Handles.Check1 Handles.Check2 [] []}); [panel, Handles.MsgPane] = mbcgui.container.createTextPanel(... 'Parent', fig, ... 'Visible', 'off'); Handles.OK = uicontrol('Parent',fig,'Visible','off',... 'String','OK'); Handles.Cancel = uicontrol('Parent',fig,'Visible','off',... 'String','Cancel'); buttons1 = xreggridlayout(fig,'visible','off',... 'correctalg','on',... 'dimension',[1 3],... 'colsizes',[-1 65 65], ... 'gapx',10,... 'elements',{panel Handles.OK Handles.Cancel}); [panel, Handles.MsgPane(2)] = mbcgui.container.createTextPanel(... 'Parent', fig, ... 'Visible', 'off'); Handles.Back = uicontrol('Parent',fig,'Visible','off',... 'String','<- Back'); Handles.Next = uicontrol('Parent',fig,'Visible','off',... 'String','Next ->'); Handles.Cancel(2) = uicontrol('Parent',fig,'Visible','off',... 'String','Cancel'); buttons2 = xreggridlayout(fig,'visible','off',... 'correctalg','on',... 'dimension',[1 4],... 'colsizes',[-1 65 65 65],... 'gapx', 10, ... 'elements',{panel Handles.Back Handles.Next Handles.Cancel(2)}); buttons = xregcardlayout(fig,'numcard2',2); attach(buttons, buttons1, 1); attach(buttons, buttons2, 2); Handles.ButtonCard = buttons; Handles.InfoText = uicontrol(... 'Parent', fig, ... 'Visible', 'off', ... 'Style', 'text', ... 'HorizontalAlignment', 'left', ... 'Enable', 'inactive'); Handles.MainLyt = xreggridbaglayout(fig,... 'dimension',[3 1],... 'elements',{Handles.InfoText, lists, []},... 'gapy',10,... 'border', [0 5 0 0], ... 'rowsizes',[30 -1 0]); lyt = xregborderlayout(fig,'visible','off',... 'center',Handles.MainLyt,... 'south',buttons,... 'innerborder',[0 25 0 0],... 'border',[5 5 5 5]); Handles.Lyt = lyt; d.Dlg = Handles;