datatips property replaces datatipGetStruct function. 58/13458/5
Adeline CARNIS [Mon, 20 Jan 2014 07:51:23 +0000 (08:51 +0100)]
test_run('cacsd', ['bode', 'nyquist', 'plz', 'bug_12115',
'bug_4505', bug_6883', 'bug_7566', 'bug_7828'])

Change-Id: If5a8ea2826cc487c007781ffb620485ce522ca63

18 files changed:
scilab/modules/cacsd/macros/black.sci
scilab/modules/cacsd/macros/bode.sci
scilab/modules/cacsd/macros/formatBlackTip.sci [new file with mode: 0644]
scilab/modules/cacsd/macros/formatBodeMagTip.sci [new file with mode: 0644]
scilab/modules/cacsd/macros/formatBodePhaseTip.sci [new file with mode: 0644]
scilab/modules/cacsd/macros/formatGainplotTip.sci [new file with mode: 0644]
scilab/modules/cacsd/macros/formatNicholsGainTip.sci [new file with mode: 0644]
scilab/modules/cacsd/macros/formatNicholsPhaseTip.sci [new file with mode: 0644]
scilab/modules/cacsd/macros/formatPhaseplotTip.sci [new file with mode: 0644]
scilab/modules/cacsd/macros/formatSgridDampingTip.sci [new file with mode: 0644]
scilab/modules/cacsd/macros/formatSgridFreqTip.sci [new file with mode: 0644]
scilab/modules/cacsd/macros/formatZgridDampingTip.sci [new file with mode: 0644]
scilab/modules/cacsd/macros/formatZgridFreqTip.sci [new file with mode: 0644]
scilab/modules/cacsd/macros/gainplot.sci
scilab/modules/cacsd/macros/nicholschart.sci
scilab/modules/cacsd/macros/phaseplot.sci
scilab/modules/cacsd/macros/sgrid.sci
scilab/modules/cacsd/macros/zgrid.sci

index 1730846..cc4ad0a 100644 (file)
@@ -193,7 +193,8 @@ function black(varargin)
 
         xpoly(phi(k,:),d(k,:));e1=gce()
         e1.foreground=k;
-        datatipInitStruct(e1,"formatfunction","formatBlackTip","freq",frq(kf,:))
+        e1.display_function = "formatBlackTip";
+        e1.display_function_data = frq(kf,:);
 
         // glue entities relative to a single black curve
         E=[E glue([e2 e1])]
@@ -219,16 +220,3 @@ function black(varargin)
     end
     fig.immediate_drawing=immediate_drawing;
 endfunction
-
-function str=formatBlackTip(curve,pt,index)
-    //This function is called by the datatip mechanism to format the tip
-    //string for black curves.
-    ud=datatipGetStruct(curve);
-    if index<>[] then
-        f=ud.freq(index)
-    else //interpolated
-        [d,ptp,i,c]=orthProj(curve.data,pt)
-        f=ud.freq(i)+(ud.freq(i+1)-ud.freq(i))*c
-    end
-    str=msprintf("%.4g°\n%.4g"+_("dB")+"\n%.4g"+_("Hz"), pt,f);
-endfunction
index df982e5..d63b832 100644 (file)
@@ -131,7 +131,7 @@ function [] = bode(varargin)
     e = gce();
 
     for i=1:size(e.children, "*")
-        datatipInitStruct(e.children(i), "formatfunction", "formatBodeMagTip");
+        e.children(i).display_function = "formatBodeMagTip"
     end
 
     if discr & fmax <> [] & max(frq) < fmax then
@@ -157,7 +157,7 @@ function [] = bode(varargin)
     ephi = gce();
     // Set datatips info
     for i=1:size(ephi.children, "*")
-        datatipInitStruct(ephi.children(i), "formatfunction", "formatBodePhaseTip");
+        ephi.children(i).display_function = "formatBodePhaseTip";
     end
 
     if discr & fmax <> [] & max(frq) < fmax then
@@ -181,18 +181,6 @@ function [] = bode(varargin)
 
 endfunction
 
-function str = formatBodeMagTip(curve, pt, index)
-    // This function is called by the datatips mechanism to format the tip
-    // string for the magnitude bode curves
-    str = msprintf("%.4g"+_("Hz")+"\n%.4g"+_("dB"), pt(1), pt(2));
-endfunction
-
-function str = formatBodePhaseTip(curve, pt, index)
-    // This function is called by the datatip mechanism to format the tip
-    // string for the bode phase curves
-    str = msprintf("%.4g"+_("Hz")+"\n %.4g"+"°", pt(1), pt(2));
-endfunction
-
 function [] = bode_Hz2rad_2(h)
     // This function modifies the Bode diagrams for a rad/s display instead of Hz.
     // h is a hanlde of a figure containing Bode diagrams.
diff --git a/scilab/modules/cacsd/macros/formatBlackTip.sci b/scilab/modules/cacsd/macros/formatBlackTip.sci
new file mode 100644 (file)
index 0000000..8676c09
--- /dev/null
@@ -0,0 +1,20 @@
+// Scilab ( http://www.scilab.org/ ) - This file is part of Scilab
+// Copyright (C) 1998-2010 - INRIA - Serge Steer
+// Copyright (C) 2010 - DIGITEO - Yann COLLETTE
+// This file must be used under the terms of the CeCILL.
+// This source file is licensed as described in the file COPYING, which
+// you should have received as part of this distribution.  The terms
+// are also available at
+// http://www.cecill.info/licences/Licence_CeCILL_V2.1-en.txt
+
+function str=formatBlackTip(datatipHandle)
+    //This function is called by the datatip mechanism to format the tip
+    //string for black curves.
+    ud = datatipHandle.parent.display_function_data;
+    pt = datatipHandle.data(1:2);
+    [d,ptp,i,c]=orthProj(datatipHandle.parent.data, pt);
+    disp(c)
+    f=ud(i)+(ud(i+1)-ud(i))*c;
+    str=msprintf("%.4g°\n%.4g"+_("dB")+"\n%.4g"+_("Hz"), pt,f);
+
+endfunction
diff --git a/scilab/modules/cacsd/macros/formatBodeMagTip.sci b/scilab/modules/cacsd/macros/formatBodeMagTip.sci
new file mode 100644 (file)
index 0000000..42c3890
--- /dev/null
@@ -0,0 +1,14 @@
+// Scilab ( http://www.scilab.org/ ) - This file is part of Scilab
+// Copyright (C)  1985-2010 - INRIA - Serge Steer
+// This file must be used under the terms of the CeCILL.
+// This source file is licensed as described in the file COPYING, which
+// you should have received as part of this distribution.  The terms
+// are also available at
+// http://www.cecill.info/licences/Licence_CeCILL_V2.1-en.txt
+
+function str = formatBodeMagTip(datatipHandle)
+    // This function is called by the datatips mechanism to format the tip
+    // string for the magnitude bode curves
+    pt = datatipHandle.data(1:2);
+    str = msprintf("%.4g"+_("Hz")+"\n%.4g"+_("dB"), pt(1), pt(2));
+endfunction
diff --git a/scilab/modules/cacsd/macros/formatBodePhaseTip.sci b/scilab/modules/cacsd/macros/formatBodePhaseTip.sci
new file mode 100644 (file)
index 0000000..b7978c3
--- /dev/null
@@ -0,0 +1,14 @@
+// Scilab ( http://www.scilab.org/ ) - This file is part of Scilab
+// Copyright (C)  1985-2010 - INRIA - Serge Steer
+// This file must be used under the terms of the CeCILL.
+// This source file is licensed as described in the file COPYING, which
+// you should have received as part of this distribution.  The terms
+// are also available at
+// http://www.cecill.info/licences/Licence_CeCILL_V2.1-en.txt
+
+function str = formatBodePhaseTip(datatipHandle)
+    // This function is called by the datatip mechanism to format the tip
+    // string for the bode phase curves
+    pt = datatipHandle.data(1:2)
+    str = msprintf("%.4g"+_("Hz")+"\n %.4g"+"°", pt(1), pt(2));
+endfunction
diff --git a/scilab/modules/cacsd/macros/formatGainplotTip.sci b/scilab/modules/cacsd/macros/formatGainplotTip.sci
new file mode 100644 (file)
index 0000000..63b994d
--- /dev/null
@@ -0,0 +1,14 @@
+// Scilab ( http://www.scilab.org/ ) - This file is part of Scilab
+// Copyright (C) 2010 - INRIA - Serge Steer
+// This file must be used under the terms of the CeCILL.
+// This source file is licensed as described in the file COPYING, which
+// you should have received as part of this distribution.  The terms
+// are also available at
+// http://www.cecill.info/licences/Licence_CeCILL_V2.1-en.txt
+
+function str = formatGainplotTip(datatipHandle)
+    //this function is called by the datatips mechanism to format the tip
+    //string for the magnitude bode curves
+    pt = datatipHandle.data(1:2);
+    str=msprintf("%.4g"+_("Hz")+"\n%.4g"+_("dB"), pt(1),pt(2))
+endfunction
diff --git a/scilab/modules/cacsd/macros/formatNicholsGainTip.sci b/scilab/modules/cacsd/macros/formatNicholsGainTip.sci
new file mode 100644 (file)
index 0000000..36f64d6
--- /dev/null
@@ -0,0 +1,13 @@
+// Scilab ( http://www.scilab.org/ ) - This file is part of Scilab
+// Copyright (C) 2010 - INRIA - Serge STEER
+// This file must be used under the terms of the CeCILL.
+// This source file is licensed as described in the file COPYING, which
+// you should have received as part of this distribution.  The terms
+// are also available at
+// http://www.cecill.info/licences/Licence_CeCILL_V2.1-en.txt
+
+function str=formatNicholsGainTip(datatipHandle)
+    //This function is called by the datatip mechanism to format the tip
+    //string for the Nichols chart iso gain curves.
+    str=msprintf("%.2g"+_("dB"),datatipHandle.parent.display_function_data);
+endfunction
diff --git a/scilab/modules/cacsd/macros/formatNicholsPhaseTip.sci b/scilab/modules/cacsd/macros/formatNicholsPhaseTip.sci
new file mode 100644 (file)
index 0000000..1ea9efa
--- /dev/null
@@ -0,0 +1,13 @@
+// Scilab ( http://www.scilab.org/ ) - This file is part of Scilab
+// Copyright (C) 2010 - INRIA - Serge STEER
+// This file must be used under the terms of the CeCILL.
+// This source file is licensed as described in the file COPYING, which
+// you should have received as part of this distribution.  The terms
+// are also available at
+// http://www.cecill.info/licences/Licence_CeCILL_V2.1-en.txt
+
+function str=formatNicholsPhaseTip(datatipHandle)
+    //This function is called by the datatip mechanism to format the tip
+    //string for the Nichols chart iso phase curves.
+    str=msprintf("%.2g°",datatipHandle.parent.display_function_data)
+endfunction
diff --git a/scilab/modules/cacsd/macros/formatPhaseplotTip.sci b/scilab/modules/cacsd/macros/formatPhaseplotTip.sci
new file mode 100644 (file)
index 0000000..01572d6
--- /dev/null
@@ -0,0 +1,14 @@
+// Scilab ( http://www.scilab.org/ ) - This file is part of Scilab
+// Copyright (C)  1985-2010 - INRIA - Serge Steer
+// This file must be used under the terms of the CeCILL.
+// This source file is licensed as described in the file COPYING, which
+// you should have received as part of this distribution.  The terms
+// are also available at
+// http://www.cecill.info/licences/Licence_CeCILL_V2.1-en.txt
+
+function str = formatPhaseplotTip(datatipHandle)
+    //this function is called by the datatips mechanism to format the tip
+    //string for the magnitude bode curves
+    pt = datatipHandle.data(1:2)
+    str = msprintf("%.4g"+_("Hz")+"\n %.4g"+"°", pt(1), pt(2));
+endfunction
diff --git a/scilab/modules/cacsd/macros/formatSgridDampingTip.sci b/scilab/modules/cacsd/macros/formatSgridDampingTip.sci
new file mode 100644 (file)
index 0000000..33321a7
--- /dev/null
@@ -0,0 +1,13 @@
+// Scilab ( http://www.scilab.org/ ) - This file is part of Scilab
+// Copyright (C) 2010 - INRIA - Serge STEER
+// This file must be used under the terms of the CeCILL.
+// This source file is licensed as described in the file COPYING, which
+// you should have received as part of this distribution.  The terms
+// are also available at
+// http://www.cecill.info/licences/Licence_CeCILL_V2.1-en.txt
+
+function str = formatSgridDampingTip(datatipHandle)
+    //This function is called by the datatip mechanism to format the tip
+    //string for the sgrid chart iso damping factor curves.
+    str = msprintf("%.2g%%", datatipHandle.parent.display_function_data * 100);
+endfunction
diff --git a/scilab/modules/cacsd/macros/formatSgridFreqTip.sci b/scilab/modules/cacsd/macros/formatSgridFreqTip.sci
new file mode 100644 (file)
index 0000000..507fd73
--- /dev/null
@@ -0,0 +1,13 @@
+// Scilab ( http://www.scilab.org/ ) - This file is part of Scilab
+// Copyright (C) 2010 - INRIA - Serge STEER
+// This file must be used under the terms of the CeCILL.
+// This source file is licensed as described in the file COPYING, which
+// you should have received as part of this distribution.  The terms
+// are also available at
+// http://www.cecill.info/licences/Licence_CeCILL_V2.1-en.txt
+
+function str = formatSgridFreqTip(datatipHandle)
+    //This function is called by the datatip mechanism to format the tip
+    //string for the sgrid chart iso natural frequency curves.
+    str = msprintf("%.2g"+_("rad/sec"),datatipHandle.parent.display_function_data);
+endfunction
diff --git a/scilab/modules/cacsd/macros/formatZgridDampingTip.sci b/scilab/modules/cacsd/macros/formatZgridDampingTip.sci
new file mode 100644 (file)
index 0000000..334fa19
--- /dev/null
@@ -0,0 +1,14 @@
+// Scilab ( http://www.scilab.org/ ) - This file is part of Scilab
+// Copyright (C) 2005 - INRIA - Farid Belahcene
+// Copyright (C) 2010 - INRIA - Serge STEER
+// This file must be used under the terms of the CeCILL.
+// This source file is licensed as described in the file COPYING, which
+// you should have received as part of this distribution.  The terms
+// are also available at
+// http://www.cecill.info/licences/Licence_CeCILL_V2.1-en.txt
+
+function str = formatZgridDampingTip(datatipHandle)
+    //This function is called by the datatip mechanism to format the tip
+    //string for the zgrid chart iso damping factor curves.
+    str = msprintf("%.2g%%", datatipHandle.parent.display_function_data * 100);
+endfunction
diff --git a/scilab/modules/cacsd/macros/formatZgridFreqTip.sci b/scilab/modules/cacsd/macros/formatZgridFreqTip.sci
new file mode 100644 (file)
index 0000000..88197f3
--- /dev/null
@@ -0,0 +1,14 @@
+// Scilab ( http://www.scilab.org/ ) - This file is part of Scilab
+// Copyright (C) 2005 - INRIA - Farid Belahcene
+// Copyright (C) 2010 - INRIA - Serge STEER
+// This file must be used under the terms of the CeCILL.
+// This source file is licensed as described in the file COPYING, which
+// you should have received as part of this distribution.  The terms
+// are also available at
+// http://www.cecill.info/licences/Licence_CeCILL_V2.1-en.txt
+
+function str = formatZgridFreqTip(datatipHandle)
+    //This function is called by the datatip mechanism to format the tip
+    //string for the zgrid chart iso natural frequency curves.
+    str = msprintf("%.2gπ/dt rad/sec",datatipHandle.parent.display_function_data);
+endfunction
index 7e4c31d..e840fa0 100644 (file)
@@ -110,16 +110,10 @@ function []=gainplot(varargin)
         e=gce();
     end
     for i=1:size(e.children,"*")
-        datatipInitStruct(e.children(i),"formatfunction","formatGainplotTip")
+        e.children(i).display_function = "formatGainplotTip";
     end
     if comments<>[] then
         legend(comments)
     end
     fig.immediate_drawing=immediate_drawing;
 endfunction
-
-function str=formatGainplotTip(curve,pt,index)
-    //this function is called by the datatips mechanism to format the tip
-    //string for the magnitude bode curves
-    str=msprintf("%.4g"+_("Hz")+"\n%.4g"+_("dB"), pt(1),pt(2))
-endfunction
index 9e7ea42..6c72596 100644 (file)
@@ -130,7 +130,8 @@ function nicholschart(modules,args,colors)
             e=gce();
             e.foreground=colors(1),
             e.line_style=7;
-            datatipInitStruct(e,"formatfunction","formatNicholsGainTip","gain",att)
+            e.display_function = "formatNicholsGainTip";
+            e.display_function_data = att;
 
             if size(S,"*")>1 then S=glue(S),end
             chart_handles=[glue([S,e]),chart_handles];
@@ -172,8 +173,8 @@ function nicholschart(modules,args,colors)
             e=gce();
             e.foreground=colors(2);
             e.line_style=7;
-            datatipInitStruct(e,"formatfunction", ...
-            "formatNicholsPhaseTip","phase",teta*180/%pi)
+            e.display_function = "formatNicholsPhaseTip";
+            e.display_function_data = teta * 180 / %pi;
             chart_handles=[e chart_handles]
         end;
     end
@@ -185,17 +186,3 @@ function nicholschart(modules,args,colors)
 
     fig.immediate_drawing=immediate_drawing;
 endfunction
-
-function str=formatNicholsGainTip(curve,pt,index)
-    //This function is called by the datatip mechanism to format the tip
-    //string for the Nichols chart iso gain curves.
-    ud=datatipGetStruct(curve);
-    str=msprintf("%.2g"+_("dB"),ud.gain);
-endfunction
-
-function str=formatNicholsPhaseTip(curve,pt,index)
-    //This function is called by the datatip mechanism to format the tip
-    //string for the Nichols chart iso phase curves.
-    ud=datatipGetStruct(curve);
-    str=msprintf("%.2g°",ud.phase)
-endfunction
index ccaf35b..c23c831 100644 (file)
@@ -98,15 +98,10 @@ function []=phaseplot(varargin)
         e=gce();
     end
     for i=1:size(e.children,"*")
-        datatipInitStruct(e.children(i),"formatfunction","formatPhaseplotTip")
+        e.children(i).display_function = "formatPhaseplotTip";
     end
     if comments<>[] then
         legend(comments)
     end
     fig.immediate_drawing=id;
 endfunction
-function str=formatPhaseplotTip(curve,pt,index)
-    //this function is called by the datatips mechanism to format the tip
-    //string for the magnitude bode curves
-    str=msprintf("%.4g"+_("Hz")+"\n%.4g"+"°", pt(1),pt(2))
-endfunction
index 201c010..f1ad081 100644 (file)
@@ -114,7 +114,8 @@ function sgrid(varargin)
     for i=1:size(wn,"*")
         xpoly(wn(i)*cos(t),wn(i)*sin(t))
         ec=gce();
-        datatipInitStruct(ec,"formatfunction","formatSgridFreqTip","freq",wn(i))
+        ec.display_function = "formatSgridFreqTip";
+        ec.display_function_data = wn(i);
 
         ec.foreground=colors(1),
         ec.line_style=7;
@@ -155,8 +156,8 @@ function sgrid(varargin)
 
         xpoly([0 -r*ca],[0 -r*sa])
         ec=gce();
-        datatipInitStruct(ec,"formatfunction","formatSgridDampingTip",..
-        "damping",zeta(i),"interpolate",%t)
+        ec.display_function = "formatSgridDampingTip";
+        ec.display_function_data = zeta(i);
 
         ec.foreground=colors(2),
         ec.line_style=7;
@@ -175,8 +176,8 @@ function sgrid(varargin)
         r=min(ymax/sa,-xmin/ca)
         xpoly([0 -r*ca],[0 r*sa])
         ec=gce();
-        datatipInitStruct(ec,"formatfunction","formatSgridDampingTip",..
-        "damping",zeta(i),"interpolate",%t)
+        ec.display_function = "formatSgridDampingTip";
+        ec.display_function_data = zeta(i);
 
         ec.foreground=colors(2),
         ec.line_style=7;
@@ -200,15 +201,3 @@ function sgrid(varargin)
     fig.immediate_drawing=immediate_drawing;
     show_window()
 endfunction
-function str=formatSgridFreqTip(curve,pt,index)
-    //This function is called by the datatip mechanism to format the tip
-    //string for the sgrid chart iso natural frequency curves.
-    ud=datatipGetStruct(curve);
-    str=msprintf("%.2g"+_("rad/sec"),ud.freq);
-endfunction
-function str=formatSgridDampingTip(curve,pt,index)
-    //This function is called by the datatip mechanism to format the tip
-    //string for the sgrid chart iso damping factor curves.
-    ud=datatipGetStruct(curve);
-    str=msprintf("%.2g\%",ud.damping*100);
-endfunction
index 329b387..62ce32c 100644 (file)
@@ -109,7 +109,8 @@ function []=zgrid(varargin)
         r=[raci(:,l);conj(raci($:-1:1,l))]
         xpoly(real(r),imag(r))
         ec=gce();
-        datatipInitStruct(ec,"formatfunction","formatZgridDampingTip","freq",zeta(l))
+        ec.display_function = "formatZgridDampingTip";
+        ec.display_function_data = zeta(l);
         ec.foreground=colors(1),
         ec.line_style=7;
         ec.clip_state="clipgrf";
@@ -128,7 +129,8 @@ function []=zgrid(varargin)
         z=[zw(:,l);zw($:-1:1,l)];
         xpoly(real(z),imag(z))
         ec=gce();
-        datatipInitStruct(ec,"formatfunction","formatZgridFreqTip","freq",wn(l))
+        ec.display_function = "formatZgridFreqTip";
+        ec.display_function_data = wn(l);
         ec.foreground=colors(2),
         ec.line_style=7;
         ec.clip_state="clipgrf";
@@ -140,7 +142,8 @@ function []=zgrid(varargin)
         chart_handles=[glue([es ec]) chart_handles]
         xpoly(real(z),-imag(z))
         ec=gce();
-        datatipInitStruct(ec,"formatfunction","formatZgridFreqTip","freq",wn(l))
+        ec.display_function = "formatZgridFreqTip";
+        ec.display_function_data = wn(l);
         ec.foreground=colors(2),
         ec.line_style=7;
         ec.clip_state="clipgrf";
@@ -161,15 +164,3 @@ function []=zgrid(varargin)
     fig.immediate_drawing = immediate_drawing;
 
 endfunction
-function str=formatZgridFreqTip(curve,pt,index)
-    //This function is called by the datatip mechanism to format the tip
-    //string for the zgrid chart iso natural frequency curves.
-    ud=datatipGetStruct(curve);
-    str=msprintf("%.2gπ/dt rad/sec",ud.freq);
-endfunction
-function str=formatZgridDampingTip(curve,pt,index)
-    //This function is called by the datatip mechanism to format the tip
-    //string for the zgrid chart iso damping factor curves.
-    ud=datatipGetStruct(curve);
-    str=msprintf("%.2g\%",ud.damping*100);
-endfunction