Xcos: fix xcosPalGenerateAllIcon thanks to the MVC
[scilab.git] / scilab / modules / xcos / macros / xcosPalGenerateAllIcons.sci
1 // Scilab ( http://www.scilab.org/ ) - This file is part of Scilab
2 // Copyright (C) - 2013 - Scilab Enterprises - ClĂ©ment DAVID
3 //
4 // Copyright (C) 2012 - 2016 - Scilab Enterprises
5 //
6 // This file is hereby licensed under the terms of the GNU GPL v2.0,
7 // pursuant to article 5.3.4 of the CeCILL v.2.1.
8 // This file was originally licensed under the terms of the CeCILL v2.1,
9 // and continues to be available under such terms.
10 // For more information, see the COPYING file which you should have received
11 // along with this program.
12
13 function blocks = xcosPalGenerateAllIcons(path)
14     // 0. Check number of arguments
15     [lhs,rhs]=argn();
16     if rhs<>1 then
17         error(msprintf(gettext("%s: Wrong number of input arguments: %d expected.\n"),"xcosPalGenerateAllIcons",1));
18     end
19     if lhs<>1 then
20         error(msprintf(gettext("%s: Wrong number of output arguments: %d expected.\n"),"xcosPalGenerateAllIcons",1));
21     end
22     // 1. Check type
23     if typeof(path)<>"string" then
24         error(sprintf(gettext("%s: Wrong type for argument #%d: Matrix of strings expected.\n"), "xcosPalGenerateAllIcons", 1));
25     end
26     // 2. Check size
27     if and(size(path)<>1) then
28         error(sprintf(gettext("%s: Wrong size for input argument #%d: Vector expected.\n"), "xcosPalGenerateAllIcons" , 1));
29     end
30
31     // 3. check the argument validity
32     xcosPalGet(path); // will push a 'pal' mlist
33
34     if size(pal.blockNames, "*") <= 0 then
35         error(sprintf(gettext("%s: Wrong value for input argument #%d: No block found.\n"), "xcosPalGenerateAllIcons" ,1));
36     end
37
38     blocks = [];
39     for i=1:size(pal.blockNames, "*")
40         name = pal.blockNames(i);
41         iconPath = pal.icons(i);
42
43         // load the block
44         execstr("blk="+name+"(''define'');");
45
46         // filter-out the text block
47         if typeof(blk) == "Text" then
48             continue,
49         end
50
51         // generate the icon
52         xcosPalGenerateIcon(blk, iconPath);
53
54         blocks($+1) = name;
55     end
56 endfunction