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 = ['<html>', desc];
    for i = 1 : numItems
        descItem = DescToHtmlString(descItems{i}, false);
        desc = sprintf('%s<br><b>%s:</b> <i>%s</i>', desc, list{i}, descItem);
    end
    desc = [desc, '</html>'];
    
    % 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