* Bugs 10476 12516 12532 fixed: browsevar() edits/views more vars content
[scilab.git] / scilab / modules / ui_data / macros / browsevar_seeSpecial.sci
1 // Scilab ( http://www.scilab.org/ ) - This file is part of Scilab
2 // Copyright (C) 2020 - Samuel GOUGEON
3 //
4 // This file is hereby licensed under the terms of the GNU GPL v2.0,
5 // pursuant to article 5.3.4 of the CeCILL v.2.1.
6 // This file was originally licensed under the terms of the CeCILL v2.1,
7 // and continues to be available under such terms.
8 // For more information, see the COPYING file which you should have received
9 // along with this program.
10
11 function browsevar_seeSpecial(Var, varname)
12     // Internal function called by browsevar
13     tv = type(Var)
14     if tv==9 then   // graphic handles
15         // We call ged() for the figure of the first component
16         Var = Var(1) // In case of vector, we consider only the 1st element
17         if Var.type=="Figure"
18             ged(8, Var.figure_id)
19         elseif Var.type=="Axes"
20             prevAxes = gca()
21             sca(Var)
22             ged(9, Var.parent.figure_id)
23             sca(prevAxes)
24         else
25             while and(Var.type <> ["Figure" "Axes"])
26                 Var = Var.parent
27             end
28             browsevar_seeSpecial(Var, varname)
29         end
30
31     elseif tv==13   // function
32         edit(varname)
33
34     elseif tv==14   // library of functions
35         tmp = string(Var)
36         path = tmp(1)
37         funs = tmp(2:$)
38         [?, k] = gsort(convstr(funs), "g", "i")
39         funs = funs(k);
40         n = size(funs,"*")
41         nr = ceil(sqrt(n*1.5))
42         nc = floor(n/nr)
43         nr = ceil(n/nc)
44         funs = [funs ; emptystr(nr*nc-n,1)]
45         funs = matrix(funs,nr,-1)
46         funs = prettyprint(funs,"html","",%f,%f)
47         funs = strsubst(funs, " align=""center""", "")
48         nl = ascii(10)
49         tmp = "<tr><td colspan=""%d"">%s%s%s%s</td></tr>"
50         funs = "<table cellspacing=""0"" cellpadding=""2"">" + nl + ..
51             msprintf(tmp, nc,"<b>",_("Library "), "</b>", varname) + nl + ..
52             msprintf(tmp, nc,"<b>",_("Path = "),"</b>", path) + nl + ..
53             msprintf(tmp, nc,"<b>",_("Functions:"),"</b>", "") + nl + ..
54             funs + ..
55             "</table>";
56         messagebox(funs, varname)
57
58     elseif typeof(Var)=="st"
59         tree_show(Var, varname)
60
61     elseif or(typeof(Var)==["ce" "syslin"])
62         p = prettyprint(Var, "html", "_")
63         messagebox("<html>" + p, varname)
64
65     elseif or(tv==[15 16 17])
66         tree_show(Var, varname)
67     end
68
69 endfunction