There were a bug when using the checklist option. The message was : (zenity:6946): GLib-GObject-CRITICAL **: g_value_dup_string: assertion `G_VALUE_HOLDS_STRING (value)' failed
It was because of the option «print-column="1"» : when use with checklist option it can’t work because the first column is the checkbox. So I just removed it since it was useless : (from man zenity) « Specify what column to print to standard output. The default is to return the first column. 'ALL' may be used to print all columns. ». I changed the way to manage options in order not to use too much variables (and not use this one in particular : «print_column »). I add the possibility to use too more options : --hide-header Hides the column headers and for simple list (not checklist) : --multiple Allow multiple rows to be selected --- zenity_list.m | 28 ++++++++++++++-------------- 1 files changed, 14 insertions(+), 14 deletions(-) diff --git a/zenity_list.m b/zenity_list.m index b8bbfa2..c9ccae7 100644 --- a/zenity_list.m +++ b/zenity_list.m @@ -56,21 +56,21 @@ function s = zenity_list(title, columns, data, varargin) print_usage(); endif - checklist = radiolist = editable = ""; - print_column = "1"; + listoptions=""; + for i = 1:length(varargin) option = varargin{i}; - isc = ischar(option); - if (isc && strcmpi(option, "checklist")) - checklist = "--checklist"; - elseif (isc && strcmpi(option, "radiolist")) - radiolist = "--radiolist"; - elseif (isc && strcmpi(option, "editable")) - editable = "--editable"; - elseif (isc && strcmpi(option, "all")) - print_column = "all"; + if(ischar(option)) + switch option + case{"checklist","radiolist","editable","hide-header","multiple"} + listoptions = [listoptions " --" option]; + case{"all"} + listoptions = [listoptions ' --print-column="all"']; + otherwise + error("zenity_list: unsupported option"); + endswitch elseif (isnumeric(option)) - print_column = num2str(option); + listoptions = [listoptions " --print-column=" num2str(option)]; else error("zenity_list: unsupported option"); endif @@ -80,8 +80,8 @@ function s = zenity_list(title, columns, data, varargin) data = data'; data = sprintf("%s ", data{:}); - cmd = sprintf('zenity --list --title="%s" %s %s %s --print-column="%s" --separator=":" %s %s', ... - title, checklist, radiolist, editable, print_column, columns, data); + cmd = sprintf('zenity --list --title="%s" %s --separator=":" %s %s', ... + title, listoptions, columns, data); [status, output] = system(cmd); if (status == 0) if (length(output) > 0 && output(end) == "\n") -- 1.7.5 ------------------------------------------------------------------------------ WhatsUp Gold - Download Free Network Management Software The most intuitive, comprehensive, and cost-effective network management toolset available today. Delivers lowest initial acquisition cost and overall TCO of any competing solution. http://p.sf.net/sfu/whatsupgold-sd _______________________________________________ Octave-dev mailing list Octave-dev@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/octave-dev