www.gusucode.com > mbclayouts 工具箱 matlab 源码程序 > mbclayouts/@xregtoolbarlayout/xregtoolbarlayout.m

    function obj = xregtoolbarlayout(varargin)
%  Synopsis
%     function obj = xregtoolbarlayout(parameter,value,parameter,....)
%     function obj = xregtoolbarlayout(fig,parameter,value,parameter,....)
%
%  Description
%     Creates a xregtoolbarlayout container in the (optional) figure fig.
%
%  See also
%     xregtoolbarlayout/set

%  Copyright 2000-2010 The MathWorks, Inc. and Ford Global Technologies, Inc.


fig = [];
if nargin
    if mbcgui.util.isComponentParent(varargin{1}) 
        fig = varargin{1};
        varargin(1) = [];
    end
end
if isempty(fig)
    fig = gcf;
end

c = xregcontainer(fig);
sc = xregGui.SystemColorsDbl;

obj.panel = mbcgui.container.layoutpanel(...
    'Parent', fig, ...
    'Visible', 'off', ...
    'BorderType', 'beveledin');  
obj.tb = xregGui.uitoolbar('Parent',obj.panel);
set(obj.panel, 'LayoutComponent', {obj.tb});
obj.tbListener = [];
obj.spacer = uicontrol('Parent', fig, ...
    'Visible', 'off', ...
    'Style', 'text', ...
    'BackgroundColor', sc.CTRL_BACK, ...
    'HitTest', 'off', ...
    'Enable', 'inactive');
ud.SpacerW=4;
obj.rtP = xregGui.RunTimePointer(ud);

connectdata(c, obj.rtP);
connectdata(c, obj.panel);
connectdata(c, obj.spacer);

obj = class(obj,'xregtoolbarlayout',c);

% look for a visible set in remaining args
if ~any(strcmpi('Visible',varargin(1:2:end)))
    % set ui objects to visible
    set(obj.panel,'Visible','on');
    set(obj.spacer,'Visible','on');
end
if ~isempty(varargin)
    set(obj,varargin{:});
end

obj.tbListener = handle.listener(obj.tb,findprop(obj.tb,'DesiredHeight'),...
    'PropertyPostSet',{@i_setTBHeight,obj});



function i_setTBHeight(srcobj,evt,obj)
% adjust the layout's proportions
repack(obj);