46f9c695eb0a5d2c72f7c6b9ee09327cb308f4fa
[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)
13 // INTERNAL macro should NOT used by users
14 // toolboxes loading
15 // path is a directory to explore for contribs
16 //===========================================================
17   global %toolboxes
18   global %toolboxes_dir
19 //===========================================================
20   [lhs,rhs] = argn(0) 
21   y = [];
22   if (rhs == 1) & typeof(path)=="constant" then 
23     // return string to exec
24     y = 'exec(""" + %toolboxes_dir + %toolboxes(path) + filesep() + "loader.sce" + """);';
25     return 
26   end
27     
28   if rhs == 0 then 
29     path = SCI + filesep() + 'contrib';
30   end
31   
32   cur_wd = pwd();
33   chdir(path);
34   files = listfiles('.');
35   contribs = [];
36   for k = 1:size(files,'*') 
37     if fileinfo(files(k)+'/loader.sce') <> [] then 
38       contribs = [contribs ; files(k)];
39     end
40   end
41
42   if (contribs <> []) & (getscilabmode() == 'STD') then 
43     delmenu(gettext("&Toolboxes"));
44     h = uimenu("parent", 0, "label", gettext("&Toolboxes"));
45     for k=1:size(contribs,'*')
46       m = uimenu(h,'label', string(contribs(k)), 'callback','execstr(toolboxes('+string(k)+'))');
47     end
48     unsetmenu(gettext("&Toolboxes"));
49   end
50   
51   %toolboxes = contribs;
52   %toolboxes_dir = pathconvert(path);
53   chdir(cur_wd);
54   
55 endfunction
56 //===========================================================