946c16a7acabc467f4583465858d234826bcadbe
[scilab.git] / scilab / modules / modules_manager / macros / tbx_build_pal_loader.sci
1 // Scilab ( http://www.scilab.org/ ) - This file is part of Scilab
2 // Copyright (C) 2013 - INRIA - Serge STEER
3 //
4 // This file must be used under the terms of the CeCILL.
5 // This source file is licensed as described in the file COPYING, which
6 // you should have received as part of this distribution. The terms
7 // are also available at
8 // http://www.cecill.info/licences/Licence_CeCILL_V2.1-en.txt
9
10 function tbx_build_pal_loader(palettename,interfacefunctions,module_path,script_path)
11     if argn(2) < 3 then
12         error(msprintf(gettext("%s: Wrong number of input arguments: At least %d expected.\n"),"tbx_build_blocks",3));
13     end
14     // checking palettename argument
15     if type(palettename) <> 10 then
16         error(msprintf(gettext("%s: Wrong type for input argument #%d: A string expected.\n"),"tbx_build_blocks",1));
17     end
18     if size(palettename,"*") <> 1 then
19         error(msprintf(gettext("%s: Wrong size for input argument #%d: A string expected.\n"),"tbx_build_blocks",1));
20     end
21
22     // checking module_path argument
23     if type(module_path) <> 10 then
24         error(msprintf(gettext("%s: Wrong type for input argument #%d: A string expected.\n"),"tbx_build_blocks",3));
25     end
26     if size(module_path,"*") <> 1 then
27         error(msprintf(gettext("%s: Wrong size for input argument #%d: A string expected.\n"),"tbx_build_blocks",3));
28     end
29     if ~isdir(module_path) then
30         error(msprintf(gettext("%s: The directory ''%s'' doesn''t exist or is not read accessible.\n"),"tbx_build_blocks",module_path));
31     end
32
33     // checking interfacefunctions argument
34     if type(interfacefunctions) <> 10 then
35         error(msprintf(gettext("%s: Wrong type for input argument #%d: A string array expected.\n"),"tbx_build_blocks",2));
36     end
37
38     // checking optional script_path argument
39     if argn(2)==4 then
40         if type(script_path) <> 10 then
41             error(msprintf(gettext("%s: Wrong type for input argument #%d: A string expected.\n"),"tbx_build_blocks",4));
42         end
43         if size(script_path,"*") <> 1 then
44             error(msprintf(gettext("%s: Wrong size for input argument #%d: A string expected.\n"),"tbx_build_blocks",4));
45         end
46     else
47         script_path=module_path + "/macros"
48     end
49     if ~isdir(script_path) then
50         error(msprintf(gettext("%s: The directory ''%s'' doesn''t exist or is not read accessible.\n"),"tbx_build_blocks",script_path));
51     end
52
53
54     t=["function loaderpal()"
55     "  xpal = xcosPal("""+palettename+""");"
56     "  images_path = "+sci2exp(module_path+"/images/");
57     "  interfacefunctions ="+sci2exp(interfacefunctions);
58     "  for i=1:size(interfacefunctions,""*"")"
59     "    h5_instances  = ls(images_path + ""h5/""  + interfacefunctions(i) + "".sod"");"
60     "    if h5_instances==[] then"
61     "      error(msprintf(_(""%s: block %s has not been built.\n""),""loader_pal.sce"",interfacefunctions(i)))"
62     "    end"
63     "    pal_icons     = ls(images_path + ""gif/"" + interfacefunctions(i) + ""."" + [""png"" ""jpg"" ""gif""]);"
64     "    if pal_icons==[] then"
65     "      error(msprintf(_(""%s: block %s has no palette icon.\n""),""loader_pal.sce"",interfacefunctions(i)))"
66     "    end"
67     "    graph_icons   = ls(images_path + ""svg/"" + interfacefunctions(i) + ""."" + [""svg"" ""png"" ""jpg"" ""gif""]);"
68     "    if graph_icons==[] then"
69     "      error(msprintf(_(""%s: block %s has no editor icon.\n""),""loader_pal.sce"",interfacefunctions(i)))"
70     "    end"
71     "    xpal = xcosPalAddBlock(xpal, h5_instances(1), pal_icons , graph_icons(1));"
72     "  end"
73     "  xcosPalAdd(xpal);"
74     "endfunction"
75     "loaderpal(),clear loaderpal"]
76     mputl(t,script_path+"loader_pal.sce")
77 endfunction
78