Mercurial > hg > octave-lyh
changeset 14503:ff4143d9fc05
menu.m: Accept cell array input choices (patch #7712)
author | Ryan Starret <brannigan@starret.ca> |
---|---|
date | Wed, 28 Mar 2012 11:43:17 -0400 |
parents | 30597f98f80a |
children | 70387b464c80 |
files | scripts/miscellaneous/menu.m |
diffstat | 1 files changed, 30 insertions(+), 2 deletions(-) [+] |
line wrap: on
line diff
--- a/scripts/miscellaneous/menu.m +++ b/scripts/miscellaneous/menu.m @@ -44,13 +44,41 @@ page_screen_output (0, "local"); + ## Process Supplied Options + if (nargin == 2) + ## List in a cell array + if (iscell (varargin{1})) + varargin = varargin{1}; + nopt = length (varargin); + for i = 1:nopt + while iscell (varargin{i}) + varargin{i} = varargin{i}{1}; + endwhile + endfor + else + nopt = nargin - 1; + endif + else + ## List with random elements in it - pick the first always + for i = 1:nargin - 1 + if (iscell (varargin{i})) + while (iscell (varargin{i})) + varargin{i} = varargin{i}{1}; + endwhile + else + if (! ischar (varargin{i})) + varargin{i} = varargin{i}(1); + endif + endif + endfor + nopt = length (varargin); + endif + if (! isempty (title)) disp (title); printf ("\n"); endif - nopt = nargin - 1; - while (1) for i = 1:nopt printf (" [%2d] ", i);