]> Creatis software - CreaPhase.git/blob - octave_packages/m/plot/colstyle.m
update packages
[CreaPhase.git] / octave_packages / m / plot / colstyle.m
1 ## Copyright (C) 2012 David Bateman
2 ##
3 ## This file is part of Octave.
4 ##
5 ## Octave is free software; you can redistribute it and/or modify it
6 ## under the terms of the GNU General Public License as published by
7 ## the Free Software Foundation; either version 3 of the License, or (at
8 ## your option) any later version.
9 ##
10 ## Octave is distributed in the hope that it will be useful, but
11 ## WITHOUT ANY WARRANTY; without even the implied warranty of
12 ## MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
13 ## General Public License for more details.
14 ##
15 ## You should have received a copy of the GNU General Public License
16 ## along with Octave; see the file COPYING.  If not, see
17 ## <http://www.gnu.org/licenses/>.
18
19 ## -*- texinfo -*-
20 ## @deftypefn {Function File} {[@var{style}, @var{color}, @var{marker}, @var{msg}] =} colstyle (@var{linespec})
21 ## Parse @var{linespec} and return the line style, color, and markers given.
22 ## In the case of an error, the string @var{msg} will return the text of the
23 ## error.
24 ## @end deftypefn
25
26 function [l, c, m, msg] = colstyle (style)
27
28   if (nargin != 1)
29     print_usage ();
30   endif
31
32   if (! ischar (style))
33     error ("colstyle: STYLE must be a string");
34   endif
35
36   try
37     opt = __pltopt__ ("colstyle", style);
38     l = opt.linestyle;
39     c = opt.color;
40     m = opt.marker;
41     msg = [];
42     switch (c)
43       case [0 0 0]
44         c = "k";
45       case [1 0 0]
46         c = "r";
47       case [0 1 0]
48         c = "g";
49       case [0 0 1]
50         c = "b";
51       case [1 1 0]
52         c = "y";
53       case [1 0 1]
54         c = "m";
55       case [0 1 1]
56         c = "c";
57       case [0 1 1]
58         c = "w";
59     endswitch
60   catch
61     l = c = m = [];
62     msg = lasterr ();
63   end_try_catch
64
65 endfunction
66
67 %!test
68 %! [l, c, m, msg] = colstyle ("r:x");
69 %! assert (isempty (msg));
70 %! assert (l, ":");
71 %! assert (c, "r");
72 %! assert (m, "x");
73
74 %!test
75 %! [l, c, m, msg] = colstyle (".");
76 %! assert (isempty (msg));
77 %! assert (l, "none");
78 %! assert (c, []);
79 %! assert (m, ".");
80
81 %!test
82 %! [l, c, m, msg] = colstyle ("~");
83 %! assert (msg, "colstyle: unrecognized format character: `~'");
84
85 %% Test input validation
86 %!error colstyle ()
87 %!error colstyle (1, 2)
88 %!error colstyle (1.5)
89