function AddList(name, list, index, desc, descItems, relPred) %% Add a list with two or more items global layout palette global panIdx params assert(length(list) == length(descItems)); numItems = length(list); assert(index >= 1 && index <= numItems); if nargin < 6 % The parameter is always relevant relPred = 'true'; end % The name [handlers, xPos] = CreateParamNameText(name); % Prepare tooltip desc = DescToHtmlString(desc, false); desc = ['', desc]; for i = 1 : numItems descItem = DescToHtmlString(descItems{i}, false); desc = sprintf('%s
%s: %s', desc, list{i}, descItem); end desc = [desc, '']; % The control itself xPos = xPos + layout.xMargin2; parIdx = length(params{panIdx}) + 1; handlers(end + 1) = uicontrol('Style', 'popupmenu', ... 'Units', 'pixels', ... 'Position', [xPos , 0, layout.ebWidth, layout.pmHeight], ... 'BackgroundColor', palette.validColor, ... 'Callback', @generic_Callback, ... 'String', list, ... 'Value', index, ... 'UserData', [panIdx, parIdx], ... 'TooltipString', desc); valPred = 'true'; unit = ''; CommitParam(name, index, relPred, valPred, handlers, unit); end