Partiel fix of bug 4658
[scilab.git] / scilab / modules / graphics / macros / colordef.sci
1 // Scilab ( http://www.scilab.org/ ) - This file is part of Scilab
2 // Copyright (C) INRIA
3 // This file must be used under the terms of the CeCILL.
4 // This source file is licensed as described in the file COPYING, which
5 // you should have received as part of this distribution.  The terms
6 // are also available at    
7 // http://www.cecill.info/licences/Licence_CeCILL_V2-en.txt
8
9 function colordef(varargin)
10 //Set default color values to display different color schemes
11
12   if size(varargin)<1 | size(varargin)>2 then
13     error(msprintf(gettext("%s: Wrong number of input arguments: %d to %d expected.\n"), "colordef", 1, 2));
14   end
15   a1=varargin(1);
16   if size(varargin) == 1 then //Only one argument
17     if type(a1)<>10 then //the first argument should be a string
18       error(msprintf(gettext("%s: Wrong type for input argument #%d: String array expected.\n"), "colordef", 1));
19     end
20     f=gdf(); a=gda();
21   end
22
23   if size(varargin) == 2 then //Two arguments
24     a2=varargin(2);
25     if type(a2)<>10 then //the second argument should be a string
26       error(msprintf(gettext("%s: Wrong type for input argument #%d: String array expected.\n"), "colordef", 2));
27     end
28
29     if type(a1)==9 then //First argument is an handle
30       f=a1;
31       a1=a2;
32       if f.type<>'Figure' then 
33         error(msprintf(gettext("%s: Wrong value for input argument #%d: Must be in the set {%s}.\n"), "colordef", 1,"handle on a figure, ""new"""));
34       end
35       scf(f);
36       a=gca();
37     elseif a1=='new' then //First argument is "new"
38       n=winsid();
39       if n==[] then
40         n=0;
41       else
42         n=max(n+1);
43       end
44     f=scf(n);
45     a=gca();a1=a2;
46     else  //First argument is NOT an handle and is not "new"
47         error(msprintf(gettext("%s: Wrong value for input argument #%d: Must be in the set {%s}.\n"), "colordef", 1,"handle on a figure, ""new"""));
48     end
49   end
50
51   select convstr(a1)
52   case 'white'
53     f.color_map=[jetcolormap(64);[1 1 1]*0.8];
54     f.background=65;f.foreground=-1;
55     a.background=-2;a.foreground=-1;
56     a.font_color=a.foreground;
57     a.mark_foreground=a.foreground;
58   case 'black'
59     if MSDOS then c=0.2, else c=0.35,end
60     f.color_map=[jetcolormap(64);[1 1 1]*c];
61     f.background=65;f.foreground=-2;
62     a.background=-1;a.foreground=-2;
63     a.font_color=a.foreground;
64     a.mark_foreground=a.foreground;
65   case 'none'
66     f.color_map=[hsvcolormap(64)];
67     f.background=-1;f.foreground=-2;
68     a.background=-1;a.foreground=-2;
69     a.font_color=a.foreground;
70     a.mark_foreground=a.foreground;
71   else
72     error(msprintf(gettext("%s: Wrong value for input argument #%d: Must be in the set {%s}.\n"), "colordef", size(varargin),"""white"", ""black"", ""none"""));
73   end
74 endfunction