www.gusucode.com > mbcguitools 工具箱 matlab 源码程序 > mbcguitools/@xregGui/@uitoolbar/uitoolbar.m

    function obj=uitoolbar(varargin)
%UITOOLBAR Constructor for uitoolbar object
%
%  OBJ = UITOOLBAR(prop,value...)
%  OBJ = UITOOLBAR(PARENT,prop,value...)

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


obj = xregGui.uitoolbar;

% set any additional inputs
if nargin
    if ischar(varargin{1})
        set(obj,varargin{:}); 
    else
        % assume parent is first arg
        obj.Parent = varargin{1};
        if nargin>1
            set(obj,varargin{2:end}); 
        end
    end
end

if isempty(obj.Parent)
    obj.Parent = gcf;
end

obj.hRenderer = xregGui.javaToolbar(obj);
obj.hRenderer.connect(obj, 'up');

% add listeners for property changes
obj.hListeners = [...
        handle.listener(obj, obj.findprop('Parent'), 'PropertyPostSet', {@i_setparent, obj.hRenderer});...
        handle.listener(obj, obj.findprop('Visible'), 'PropertyPostSet', {@i_setvisible, obj.hRenderer});...
        handle.listener(obj, obj.findprop('Position'), 'PropertyPostSet', {@i_setposition, obj.hRenderer});...
    ];

obj.connect(xregfigurehook(obj.Parent),'up');

% Do a full redraw of the toolbar
obj.hRenderer.setVisible(strcmp(obj.Visible, 'on'));
obj.hRenderer.setPosition(obj.Position);



function i_setparent(srcobj, evt, hRenderer)
hRenderer.setParent(evt.NewValue);
evt.AffectedObject.connect(xregfigurehook(evt.NewValue),'up');


function i_setvisible(srcobj, evt, hRenderer)
hRenderer.setVisible(strcmp(evt.NewValue, 'on'));


function i_setposition(srcobj, evt, hRenderer)
hRenderer.setPosition(evt.NewValue);