Update Xcos Toolbox Skeleton :
[scilab.git] / scilab / contrib / xcos_toolbox_skeleton / etc / xcos_toolbox_skeleton.start
1 // Copyright (C) 2011 - DIGITEO
2
3 // This file is released under the 3-clause BSD license. See COPYING-BSD.
4
5 function xcos_skeletonlib = startModule()
6
7   mprintf("Start Xcos toolbox skeleton\n");
8
9   if isdef("xcos_toolbox_skeletonlib") then
10     warning("Xcos toolbox skeleton library is already loaded");
11     return;
12   end
13
14 // check minimal version (xcosPal required)
15 // =============================================================================
16   if ~isdef('xcosPal') then
17     // and xcos features required
18     error(gettext('Scilab 5.3.2 or more is required.'));
19   end
20 // =============================================================================
21 // force to load some libraries (dependancies)
22   loadScicos();
23 // =============================================================================
24   etc_tlbx  = get_absolute_file_path("xcos_toolbox_skeleton.start");
25   etc_tlbx  = getshortpathname(etc_tlbx);
26   root_tlbx = strncpy( etc_tlbx, length(etc_tlbx)-length("\etc\") );
27
28 // Load functions library
29 // =============================================================================
30   mprintf("\tLoad macros\n");
31   pathmacros = pathconvert( root_tlbx ) + "macros" + filesep();
32   xcos_skeletonlib = lib(pathmacros);
33
34 // Add blocks to the Xcos palette
35 // =============================================================================
36   mprintf("\tLoad palette\n");
37   pal = xcosPal("Xcos toolbox blocks");
38
39   blocks = ["TBX_SUM_c" "TBX_MUT_STYLE" "TBX_SUM_sci"];
40   for i=1:size(blocks, "*")
41     h5  = ls(root_tlbx + "/images/h5/"  + blocks(i) + "." + ["sod" "h5"]);
42     gif = ls(root_tlbx + "/images/gif/" + blocks(i) + "." + ["png" "jpg" "gif"]);
43     svg = ls(root_tlbx + "/images/svg/" + blocks(i) + "." + ["png" "jpg" "gif" "svg"]);
44
45     pal = xcosPalAddBlock(pal, h5(1), gif(1), svg(1));
46   end
47
48   if ~xcosPalAdd(pal) then
49     error(msprintf(gettext("%s: Unable to export %s.\n"), "xcos_toolbox_skeleton.start", "pal"));
50   end
51
52 // Load simulation functions
53 // =============================================================================
54   mprintf("\tLoad simulations functions\n");
55   verboseMode = ilib_verbose();
56   ilib_verbose(0);
57   exec(pathconvert(root_tlbx+"/src/c/loader.sce", %f));
58   ilib_verbose(verboseMode);
59
60 // load gateways
61 // =============================================================================
62   mprintf("\tLoad gateways\n");
63   verboseMode = ilib_verbose();
64   ilib_verbose(0);
65   exec(pathconvert(root_tlbx+"/sci_gateway/loader_gateway.sce", %f));
66   ilib_verbose(verboseMode);
67
68 // Load and add help chapter
69 // =============================================================================
70   if or(getscilabmode() == ["NW";"STD"]) then
71     mprintf("\tLoad help\n");
72     path_addchapter = pathconvert(root_tlbx+"/jar");
73     if ( isdir(path_addchapter) <> [] ) then
74         add_help_chapter("Xcos toolbox skeleton", path_addchapter, %F);
75     end
76   end
77
78 // Load demos
79 // =============================================================================
80   if or(getscilabmode() == ["NW";"STD"]) then
81     mprintf("\tLoad demos\n");
82     pathdemos = pathconvert(root_tlbx+"/demos/xcos_toolbox_skeleton.dem.gateway.sce", %F, %T);
83     add_demo("Xcos toolbox skeleton", pathdemos);
84   end
85
86 endfunction
87
88 if with_module('xcos') then
89   xcos_skeletonlib = startModule();
90   clear startModule; // remove startModule on stack
91 end