# HG changeset patch # User Rik # Date 1322864553 28800 # Node ID fb5955171b0bfae3f778f8cea7b0070db860b1ec # Parent 16158606112d6e5c5427bf429378bf726d6116e5 graphics_toolkit.m: Update function to return current toolkit when no arg given. * graphics_toolkit.m: Update function to return current toolkit when no input arg given. Add test for function. diff -r 16158606112d -r fb5955171b0b scripts/plot/graphics_toolkit.m --- a/scripts/plot/graphics_toolkit.m Fri Dec 02 04:02:58 2011 -0500 +++ b/scripts/plot/graphics_toolkit.m Fri Dec 02 14:22:33 2011 -0800 @@ -17,9 +17,10 @@ ## . ## -*- texinfo -*- -## @deftypefn {Function File} {} graphics_toolkit (@var{name}) +## @deftypefn {Function File} {@var{name} =} graphics_toolkit () +## @deftypefn {Function File} {@var{old_name} =} graphics_toolkit (@var{name}) ## @deftypefnx {Function File} {} graphics_toolkit (@var{hlist}, @var{name}) -## Change the default graphics toolkit to @var{name}. If the +## Query or set the default graphics toolkit to @var{name}. If the ## toolkit is not already loaded, it is first initialized by calling the ## function @code{__init_@var{name}__}. ## @@ -28,44 +29,57 @@ ## @seealso{available_graphics_toolkits} ## @end deftypefn -function graphics_toolkit (varargin) +function retval = graphics_toolkit (name, hlist = []) - name = ""; - hlist = []; + if (nargin > 2) + print_usage (); + endif - if (nargin == 1) - if (ischar (varargin{1})) - name = varargin{1}; - else + if (nargin == 0) + retval = get (0, "defaultfigure__graphics_toolkit__"); + return; + elseif (nargin == 1) + if (! ischar (name)) error ("graphics_toolkit: invalid graphics toolkit NAME"); endif elseif (nargin == 2) - if (isnumeric (varargin{1}) && ischar (varargin{2})) - hlist = varargin{1}; - name = varargin{2}; - elseif (ischar (varargin{2})) - error ("graphics_toolkit: invalid handle list"); - else + ## Swap input arguments + [hlist, name] = deal (name, hlist); + if (! all (isfigure (hlist))) + error ("graphics_toolkit: invalid figure handle list HLIST"); + elseif (! ischar (name)) error ("graphics_toolkit: invalid graphics toolkit NAME"); endif - else - print_usage (); endif if (! any (strcmp (available_graphics_toolkits (), name))) feval (["__init_", name, "__"]); if (! any (strcmp (available_graphics_toolkits (), name))) - error ("graphics_toolkit: %s toolkit was not correctly registered", - name); + error ("graphics_toolkit: %s toolkit was not correctly registered", name); endif endif if (isempty (hlist)) set (0, "defaultfigure__graphics_toolkit__", name); else - for h = hlist(:)' - set (h, "__graphics_toolkit__", name); - endfor + set (hlist, "__graphics_toolkit__", name); + endif + + if (isargout (1)) + retval = name; endif endfunction + + +%!testif HAVE_FLTK +%! unwind_protect +%! hf = figure ("visible", "off"); +%! toolkit = graphics_toolkit (); +%! assert (get (0, "defaultfigure__graphics_toolkit__"), toolkit); +%! graphics_toolkit (hf, "fltk"); +%! assert (get (hf, "__graphics_toolkit__"), "fltk"); +%! unwind_protect_cleanup +%! close (hf); +%! end_unwind_protect +