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

    function pCreateButtons(obj)
%PCREATEBUTTONS
%

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



len = length(obj.ButtonNames);

elements = cell(2,len+1);
if length(obj.ButtonWidths)==1 || length(obj.ButtonWidths)~=len
    colsizes = [-1 repmat(obj.ButtonWidths(1),[1 len])];
else
    colsizes = [-1 obj.ButtonWidths];
end

if ischar(obj.ButtonEnable)
   en = repmat({obj.ButtonEnable},1,len);
elseif length(obj.ButtonEnable)~=len
   en = repmat(obj.ButtonEnable(1),1,len);
else
   en = obj.ButtonEnable;
end

buttons = gobjects(0);
for i=1:len
    buttons(i) = uicontrol('Parent',obj.Parent,...
        'String',obj.ButtonNames{i},...
        'Enable',en{i},...
        'Callback',{@i_ButtonClick,obj,i});
    elements{2,i+1} = buttons(i);
end

obj.buttons = buttons;

set(obj.Display,'elements',elements,...
    'colsizes',colsizes,...
    'dimension',[2 len+1]);


%%%%%%%%%%%%%%%%%%%%
function i_ButtonClick(src,evt,obj,index)

obj.ClickIndex = index;
send(obj,'ButtonClick',handle.EventData(obj,'ButtonClick'));