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;