bug 4753 + 4796
[scilab.git] / scilab / modules / core / macros / toolboxes.sci
1 // Scilab ( http://www.scilab.org/ ) - This file is part of Scilab
2 // Copyright (C) INRIA
3 // Copyright (C) DIGITEO - 2009 - Allan CORNET
4 // 
5 // This file must be used under the terms of the CeCILL.
6 // This source file is licensed as described in the file COPYING, which
7 // you should have received as part of this distribution.  The terms
8 // are also available at    
9 // http://www.cecill.info/licences/Licence_CeCILL_V2-en.txt
10
11 //===========================================================
12 function [y] = toolboxes(path,flag,force)
13 // INTERNAL macro should NOT used by users
14 // toolboxes loading
15 // path is a directory to explore for contribs
16 // flag & force removed never managed
17 //===========================================================
18   global %toolboxes
19   global %toolboxes_dir
20 //===========================================================
21   [lhs,rhs] = argn(0) 
22   y = [];
23   if (rhs == 1) & typeof(path)=="constant" then 
24     // return string to exec
25     y = 'exec(""" + %toolboxes_dir + %toolboxes(path) + filesep() + "loader.sce" + """);';
26     return 
27   end
28     
29   if rhs == 0 then 
30     path = SCI + filesep() + 'contrib';
31   end
32   
33   if rhs > 1 then
34     // Remove flag & force input arguments
35     warnobsolete("toolboxes", "5.3")
36   end
37
38   cur_wd = pwd();
39   chdir(path);
40   files = listfiles('.');
41   contribs = [];
42   for k = 1:size(files,'*') 
43     if fileinfo(files(k)+'/loader.sce') <> [] then 
44       contribs = [contribs ; files(k)];
45     end
46   end
47
48   if (contribs <> []) & (getscilabmode() == 'STD') then 
49     delmenu(gettext("&Toolboxes"));
50     h = uimenu("parent", 0, "label", gettext("&Toolboxes"));
51     for k=1:size(contribs,'*')
52       m = uimenu(h,'label', string(contribs(k)), 'callback','execstr(toolboxes('+string(k)+'))');
53     end
54     unsetmenu(gettext("&Toolboxes"));
55   end
56   
57   %toolboxes = contribs;
58   %toolboxes_dir = pathconvert(path);
59   chdir(cur_wd);
60   
61 endfunction
62 //===========================================================