* Bug 15359 fixed: twinkle(h) could not blink several objects together 49/19649/6
Samuel GOUGEON [Sat, 6 Jan 2018 18:50:12 +0000 (19:50 +0100)]
  http://bugzilla.scilab.org/15359

  * pages updated, but
    ja_JP removed (90% of contents would be in english)
  * dead code removed (about f) in .sci

Change-Id: I566692e986750009d6d77c71b3bf77e14d62cd5d

scilab/CHANGES.md
scilab/modules/graphics/help/en_US/interaction/twinkle.xml
scilab/modules/graphics/help/fr_FR/interaction/twinkle.xml
scilab/modules/graphics/help/ja_JP/interaction/twinkle.xml [deleted file]
scilab/modules/graphics/help/pt_BR/interaction/twinkle.xml
scilab/modules/graphics/help/ru_RU/interaction/twinkle.xml
scilab/modules/graphics/macros/twinkle.sci
scilab/modules/graphics/tests/nonreg_tests/bug_15359.tst [new file with mode: 0644]

index 260e0c2..20e0c96 100644 (file)
@@ -144,6 +144,7 @@ Feature changes and additions
 * `factorial(n)` can be used now from n=171 up to n=10^14.
 * `intersect()` now supports complex numbers.
 * `setdiff()` now supports complex numbers.
+* `twinkle` can now blink together several hierarchically independent objects, like a curve and its labels, etc.
 
 
 Help pages:
@@ -265,6 +266,7 @@ Bug Fixes
 * [#15309](http://bugzilla.scilab.org/show_bug.cgi?id=15309): `eval()` was a weak duplicate of `evstr()`. It should be removed.
 * [#15321](http://bugzilla.scilab.org/show_bug.cgi?id=15321): `lu()` was leaking memory.
 * [#15350](http://bugzilla.scilab.org/show_bug.cgi?id=15350): `ric_desc()` should be merged into `riccati()`.
+* [#15359](http://bugzilla.scilab.org/show_bug.cgi?id=15359): `twinkle` was not able to blink several independent objects.
 * [#15360](http://bugzilla.scilab.org/show_bug.cgi?id=15360): `numer()` and `denom()` were poor and duplicates of the `.num` and `.den` fields of rationals. They are removed.
 * [#15368](http://bugzilla.scilab.org/show_bug.cgi?id=15368): `freson()` silently returned frequencies not corresponding to a maximum, or returned [] instead of some still computable maxima frequencies.
 * [#15392](http://bugzilla.scilab.org/show_bug.cgi?id=15392): `comet` and `comet3d` did not allow specifying colors with colors names.
index b3fb01d..9440154 100644 (file)
@@ -2,8 +2,8 @@
 <!--
  * Scilab ( http://www.scilab.org/ ) - This file is part of Scilab
  * Copyright (C) INRIA
- * Copyright (C) 2015 - 2016 - Samuel GOUGEON
  * Copyright (C) 2012 - 2016 - Scilab Enterprises
+ * Copyright (C) 2015, 2016, 2018 - Samuel GOUGEON
  *
  * This file is hereby licensed under the terms of the GNU GPL v2.0,
  * pursuant to article 5.3.4 of the CeCILL v.2.1.
  * along with this program.
  *
  -->
-<refentry xmlns="http://docbook.org/ns/docbook" xmlns:xlink="http://www.w3.org/1999/xlink" xmlns:svg="http://www.w3.org/2000/svg" xmlns:mml="http://www.w3.org/1998/Math/MathML" xmlns:db="http://docbook.org/ns/docbook" xmlns:scilab="http://www.scilab.org"  xml:lang="en" xml:id="twinkle">
+<refentry xmlns="http://docbook.org/ns/docbook" xmlns:xlink="http://www.w3.org/1999/xlink"
+        xmlns:svg="http://www.w3.org/2000/svg" xmlns:mml="http://www.w3.org/1998/Math/MathML"
+        xmlns:db="http://docbook.org/ns/docbook" xmlns:scilab="http://www.scilab.org"
+        xml:lang="en" xml:id="twinkle">
     <refnamediv>
         <refname>twinkle</refname>
-        <refpurpose>is used to have a graphics entity blinking</refpurpose>
+        <refpurpose>highlights one or more graphical objects by flashing them</refpurpose>
     </refnamediv>
     <refsynopsisdiv>
         <title>Syntax</title>
-        <synopsis>twinkle
-twinkle(n)
-twinkle(h)
-twinkle(h,n)
+        <synopsis>
+            twinkle
+            twinkle(n)
+            twinkle(h)
+            twinkle(h,n)
         </synopsis>
     </refsynopsisdiv>
     <refsection role="arguments">
@@ -32,7 +36,11 @@ twinkle(h,n)
             <varlistentry>
                 <term>h</term>
                 <listitem>
-                    <para>handle of the unique graphics entity to blink. By default, the current graphic entity handled with <literal>gce()</literal> is considered.</para>
+                    <para>
+                        handle or vector of handles of one or several graphical entities to blink.
+                        By default, the current graphic entity pointed by <literal>gce()</literal>
+                        is considered.
+                    </para>
                 </listitem>
             </varlistentry>
             <varlistentry>
@@ -46,10 +54,14 @@ twinkle(h,n)
     <refsection role="description">
         <title>Description</title>
         <para>
-            <function>twinkle</function> blinks <varname>n</varname> times the graphical entity
-            handled with <varname>h</varname>. If <function>twinkle()</function> is run while no
-            graphical figure exists, it does nothing and returns. If the handle <varname>h</varname>
-            is invalid (the entity has been deleted in the meantime),
+            <function>twinkle</function> blinks <varname>n</varname> times graphical entities
+            handled with <varname>h</varname>. If some of the objects are initially invisible,
+            they are blinked with other ones and are finally left invisible before returning.
+        </para>
+        <para>
+            If <function>twinkle()</function> is run while no graphical figure exists,
+            it does nothing and returns. If the handle <varname>h</varname> has some invalid
+            components (the entity has been deleted in the meantime),
             <function>twinkle(h..)</function> yields an error.
         </para>
     </refsection>
@@ -71,6 +83,16 @@ twinkle(p1)       // cos plot twinkle
 twinkle(p2,10)    // sin plot twinkle 10 times
 twinkle(gca())    // axes twinkle
  ]]></programlisting>
+    <para/>
+        <programlisting role="example"><![CDATA[
+// Blinking a subset of many curves, with some initially invisible ones
+clf
+plot()
+c = gca().children.children(1:10);
+c(1:5).visible = "off";
+sleep(5,'s')
+twinkle(c)
+ ]]></programlisting>
     </refsection>
     <refsection role="see also">
         <title>See also</title>
@@ -89,6 +111,12 @@ twinkle(gca())    // axes twinkle
                     <para>twinkle() and twinkle(n) added.</para>
                 </revdescription>
             </revision>
+            <revision>
+                <revnumber>6.1</revnumber>
+                <revdescription>
+                    <para>Several independent objects can now be blinked together.</para>
+                </revdescription>
+            </revision>
         </revhistory>
     </refsection>
 </refentry>
index 425a4b4..4f5b366 100644 (file)
@@ -2,8 +2,8 @@
 <!--
  * Scilab ( http://www.scilab.org/ ) - This file is part of Scilab
  * Copyright (C) INRIA
- * Copyright (C) 2015 - 2016 - Samuel GOUGEON
  * Copyright (C) 2012 - 2016 - Scilab Enterprises
+ * Copyright (C) 2015, 2016, 2018 - Samuel GOUGEON
  *
  * This file is hereby licensed under the terms of the GNU GPL v2.0,
  * pursuant to article 5.3.4 of the CeCILL v.2.1.
  * along with this program.
  *
  -->
-<refentry xmlns="http://docbook.org/ns/docbook" xmlns:xlink="http://www.w3.org/1999/xlink" xmlns:svg="http://www.w3.org/2000/svg" xmlns:mml="http://www.w3.org/1998/Math/MathML" xmlns:db="http://docbook.org/ns/docbook" xmlns:scilab="http://www.scilab.org"  xml:lang="fr" xml:id="twinkle">
+<refentry xmlns="http://docbook.org/ns/docbook" xmlns:xlink="http://www.w3.org/1999/xlink"
+        xmlns:svg="http://www.w3.org/2000/svg" xmlns:mml="http://www.w3.org/1998/Math/MathML"
+        xmlns:db="http://docbook.org/ns/docbook" xmlns:scilab="http://www.scilab.org"
+        xml:lang="fr" xml:id="twinkle">
     <refnamediv>
         <refname>twinkle</refname>
-        <refpurpose>fait clignoter un élément graphique pour le repérer visuellement</refpurpose>
+        <refpurpose>fait clignoter des éléments graphiques pour les repérer visuellement</refpurpose>
     </refnamediv>
     <refsynopsisdiv>
         <title>Syntaxe</title>
-        <synopsis>twinkle
-twinkle(n)
-twinkle(h)
-twinkle(h,n)
+        <synopsis>
+            twinkle
+            twinkle(n)
+            twinkle(h)
+            twinkle(h,n)
         </synopsis>
     </refsynopsisdiv>
     <refsection role="arguments">
@@ -32,8 +36,10 @@ twinkle(h,n)
             <varlistentry>
                 <term>h</term>
                 <listitem>
-                    <para>identifiant de l'élément graphique à repérer. Par défaut, l'élément
-                      graphique actif d'identifiant <literal>gce()</literal> est considéré.
+                    <para>
+                    identifiant unique ou vecteur d'identifiants graphiques des éléments à
+                    repérer. Par défaut, l'élément graphique actif d'identifiant
+                    <literal>gce()</literal> est considéré.
                     </para>
                 </listitem>
             </varlistentry>
@@ -48,10 +54,14 @@ twinkle(h,n)
     <refsection role="description">
         <title>Description</title>
         <para>
-            <function>twinkle</function> fait clignoter <varname>n</varname> fois l'élément graphique
-            dont l'identifiant graphique <varname>h</varname> est spécifié.
+            <function>twinkle</function> fait clignoter <varname>n</varname> fois les objets
+            graphiques dont les identifiants sont spécifiés dans <varname>h</varname>.
+            Si certains des objets sont initialement invisibles, ils sont clignotés comme les
+            autres, puis redeviennent invisibles à l'issue du clignotement.
+        </para>
+        <para>
             Si <function>twinkle()</function> est appelé sans paramètre alors qu'aucune fenêtre
-            graphique n'existe, l'instruction est ignorée. Si l'identifiant graphique
+            graphique n'existe, l'instruction est ignorée. Si un des identifiants graphiques de
             <varname>h</varname> est invalide (l'élément graphique correspondant a été supprimé
             entretemps), <function>twinkle(h..)</function> produit une erreur.
         </para>
@@ -74,6 +84,16 @@ twinkle(p1)     // Courbe du cosinus
 twinkle(p2,10)  // Courbe du sinus, 10 fois
 twinkle(gca())  // Repère actif entier
 ]]></programlisting>
+    <para/>
+        <programlisting role="example"><![CDATA[
+// Repérage visuel d'un sous-ensemble de multiples courbes, certaines étant initialement masquées
+clf
+plot()
+c = gca().children.children(1:10);
+c(1:5).visible = "off";
+sleep(5,'s')
+twinkle(c)
+ ]]></programlisting>
     </refsection>
     <refsection role="see also">
         <title>Voir aussi</title>
@@ -92,6 +112,12 @@ twinkle(gca())  // Repère actif entier
                     <para>twinkle() et twinkle(n) ajoutés.</para>
                 </revdescription>
             </revision>
+            <revision>
+                <revnumber>6.1</revnumber>
+                <revdescription>
+                    <para>Plusieurs objets indépendants peuvent désormais être clignotés ensemble.</para>
+                </revdescription>
+            </revision>
         </revhistory>
     </refsection>
 </refentry>
\ No newline at end of file
diff --git a/scilab/modules/graphics/help/ja_JP/interaction/twinkle.xml b/scilab/modules/graphics/help/ja_JP/interaction/twinkle.xml
deleted file mode 100644 (file)
index 3e75d04..0000000
+++ /dev/null
@@ -1,98 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<!--
- * Scilab ( http://www.scilab.org/ ) - This file is part of Scilab
- * Copyright (C) INRIA
- * Copyright (C) 2015 - 2016 - Samuel GOUGEON
- * Copyright (C) 2012 - 2016 - Scilab Enterprises
- *
- * This file is hereby licensed under the terms of the GNU GPL v2.0,
- * pursuant to article 5.3.4 of the CeCILL v.2.1.
- * This file was originally licensed under the terms of the CeCILL v2.1,
- * and continues to be available under such terms.
- * For more information, see the COPYING file which you should have received
- * along with this program.
- *
- -->
-<refentry xmlns="http://docbook.org/ns/docbook" xmlns:xlink="http://www.w3.org/1999/xlink" xmlns:svg="http://www.w3.org/2000/svg" xmlns:mml="http://www.w3.org/1998/Math/MathML" xmlns:db="http://docbook.org/ns/docbook" xmlns:scilab="http://www.scilab.org" xml:lang="ja" xml:id="twinkle">
-    <refnamediv>
-        <refname>twinkle</refname>
-        <refpurpose>グラフィックエンティティを点滅させる</refpurpose>
-    </refnamediv>
-    <refsynopsisdiv>
-        <title>呼び出し手順</title>
-        <synopsis>twinkle
-twinkle(n)
-twinkle(h)
-twinkle(h,n)
-        </synopsis>
-    </refsynopsisdiv>
-    <refsection role="arguments">
-        <title>Parameters</title>
-        <variablelist>
-            <varlistentry>
-                <term>h</term>
-                <listitem>
-                    <para>グラフィックエンティティのハンドル. By default, the current graphic entity
-                      handled with <literal>gce()</literal> is considered.
-                    </para>
-                </listitem>
-            </varlistentry>
-            <varlistentry>
-                <term>n</term>
-                <listitem>
-                    <para>整数.</para>
-                </listitem>
-            </varlistentry>
-        </variablelist>
-    </refsection>
-    <refsection role="description">
-        <title>説明n</title>
-        <para>
-            <literal>twinkle</literal>はハンドル<literal>h</literal> で
-            指定したグラフィックエンティティを点滅させます.
-            グラフィックウインドウ内でグラフィックハンドルに対応するグラフィックオブジェクトを
-            探す際に使用することができます.
-            デフォルトでグラフィックエンティティは5回点滅しますが,
-            オプションの引数 <literal>n</literal>によりこの値を変更することができます.
-        </para>
-    </refsection>
-    <refsection role="examples">
-        <title>例</title>
-        <programlisting role="example"><![CDATA[
-clf
-plot()
-twinkle     // twinkles the last group of curves plotted in the plot() example
-twinkle(3)  // twinkles it only three times
-
-clf
-x = linspace(-2*%pi,2*%pi,100)';
-plot2d(x,[sin(x),cos(x)]);
-e = gce();
-p1 = e.children(1);
-p2 = e.children(2);
-
-twinkle(p1)    // cos plot twinkle
-twinkle(p2,10) // sin plot twinkles 10 times
-twinkle(gca()) // axes twinkle
- ]]></programlisting>
-    </refsection>
-    <refsection role="see also">
-        <title>参照</title>
-        <simplelist type="inline">
-            <member>
-                <link linkend="graphics_entities">graphics_entities</link>
-            </member>
-        </simplelist>
-    </refsection>
-    <refsection role="history">
-        <title>履歴</title>
-        <revhistory>
-            <revision>
-                <revnumber>6.0</revnumber>
-                <revdescription>
-                    <para>twinkle() and twinkle(n) added.</para>
-                </revdescription>
-            </revision>
-        </revhistory>
-    </refsection>
-</refentry>
\ No newline at end of file
index 59892c2..5306a25 100644 (file)
@@ -2,8 +2,8 @@
 <!--
  * Scilab ( http://www.scilab.org/ ) - This file is part of Scilab
  * Copyright (C) INRIA
- * Copyright (C) 2015 - 2016 - Samuel GOUGEON
  * Copyright (C) 2012 - 2016 - Scilab Enterprises
+ * Copyright (C) 2015, 2016, 2018 - Samuel GOUGEON
  *
  * This file is hereby licensed under the terms of the GNU GPL v2.0,
  * pursuant to article 5.3.4 of the CeCILL v.2.1.
  * along with this program.
  *
  -->
-<refentry xmlns="http://docbook.org/ns/docbook" xmlns:xlink="http://www.w3.org/1999/xlink" xmlns:svg="http://www.w3.org/2000/svg" xmlns:ns4="http://www.w3.org/1999/xhtml" xmlns:mml="http://www.w3.org/1998/Math/MathML" xmlns:db="http://docbook.org/ns/docbook" xmlns:scilab="http://www.scilab.org" xml:id="twinkle" xml:lang="pt">
+<refentry xmlns="http://docbook.org/ns/docbook" xmlns:xlink="http://www.w3.org/1999/xlink"
+        xmlns:svg="http://www.w3.org/2000/svg" xmlns:ns4="http://www.w3.org/1999/xhtml"
+        xmlns:mml="http://www.w3.org/1998/Math/MathML" xmlns:db="http://docbook.org/ns/docbook"
+        xmlns:scilab="http://www.scilab.org" xml:id="twinkle" xml:lang="pt">
     <refnamediv>
         <refname>twinkle</refname>
         <refpurpose>Faz uma entidade gráfica piscar</refpurpose>
     </refnamediv>
     <refsynopsisdiv>
         <title>Seqüência de Chamamento</title>
-        <synopsis>twinkle
-twinkle(n)
-twinkle(h)
-twinkle(h,n)
+        <synopsis>
+            twinkle
+            twinkle(n)
+            twinkle(h)
+            twinkle(h,n)
         </synopsis>
     </refsynopsisdiv>
     <refsection role="arguments">
@@ -32,15 +36,17 @@ twinkle(h,n)
             <varlistentry>
                 <term>h</term>
                 <listitem>
-                    <para>manipulador de uma entidade gráfica. By default, the current graphic
-                      entity handled with <literal>gce()</literal> is considered.
+                    <para>
+                    identificador ou vetor de identificadores de uma ou várias entidades gráficas
+                    para piscar. Por padrão, a entidade gráfica atual apontada por
+                    <literal>gce()</literal> é considerada.
                     </para>
                 </listitem>
             </varlistentry>
             <varlistentry>
                 <term>n</term>
                 <listitem>
-                    <para>inteiro</para>
+                    <para>número de flashes. Por padrão, n = 5</para>
                 </listitem>
             </varlistentry>
         </variablelist>
@@ -48,11 +54,16 @@ twinkle(h,n)
     <refsection role="description">
         <title>Descrição</title>
         <para>
-            <literal>twinkle</literal> faz com que a entidade gráfica dada pelo
-            seu manipulador h pisque. Pode ser usado para encontrar o objeto gráfico
-            correspondente a um manipulador gráfico em uma janela de gráficos. Por
-            padrão, a entidade gráfica pisca 5 vezes, mas você pode mudar este número
-            através do argumento opcional <literal>n</literal>.
+            <function>twinkle</function> pisca <varname>n</varname> times objects
+            gráficos cujos identificadores são especificados em <varname>h</varname>.
+            Se alguns dos objetos são inicialmente invisíveis, eles piscam com o
+            outros, tornam-se invisíveis novamente após o relâmpago.
+        </para>
+        <para>
+            If <function>twinkle()</function> is run while no graphical figure exists,
+            it does nothing and returns. If the handle <varname>h</varname> has some invalid
+            components (the entity has been deleted in the meantime),
+            <function>twinkle(h..)</function> yields an error.
         </para>
     </refsection>
     <refsection role="examples">
@@ -73,6 +84,16 @@ twinkle(p1)     // fazendo piscar o esboço de cos
 twinkle(p2,10)  // fazendo piscar o esboço de sin piscar
 twinkle(gca())  // eixos piscando
  ]]></programlisting>
+    <para/>
+        <programlisting role="example"><![CDATA[
+// Blinking a subset of many curves, with some initially invisible ones
+clf
+plot()
+c = gca().children.children(1:10);
+c(1:5).visible = "off";
+sleep(5,'s')
+twinkle(c)
+ ]]></programlisting>
     </refsection>
     <refsection role="see also">
         <title>Ver Também</title>
@@ -91,6 +112,12 @@ twinkle(gca())  // eixos piscando
                     <para>twinkle() and twinkle(n) added.</para>
                 </revdescription>
             </revision>
+            <revision>
+                <revnumber>6.1</revnumber>
+                <revdescription>
+                    <para>Several independent objects can now be blinked together.</para>
+                </revdescription>
+            </revision>
         </revhistory>
     </refsection>
 </refentry>
index fcfaef0..23790b6 100644 (file)
@@ -2,8 +2,8 @@
 <!--
  * Scilab ( http://www.scilab.org/ ) - This file is part of Scilab
  * Copyright (C) INRIA
- * Copyright (C) 2015 - 2016 - Samuel GOUGEON
  * Copyright (C) 2012 - 2016 - Scilab Enterprises
+ * Copyright (C) 2015, 2016, 2018 - Samuel GOUGEON
  *
  * This file is hereby licensed under the terms of the GNU GPL v2.0,
  * pursuant to article 5.3.4 of the CeCILL v.2.1.
  * along with this program.
  *
  -->
-<refentry xmlns="http://docbook.org/ns/docbook" xmlns:xlink="http://www.w3.org/1999/xlink" xmlns:svg="http://www.w3.org/2000/svg" xmlns:mml="http://www.w3.org/1998/Math/MathML" xmlns:db="http://docbook.org/ns/docbook" xmlns:scilab="http://www.scilab.org"  xml:lang="ru" xml:id="twinkle">
+<refentry xmlns="http://docbook.org/ns/docbook" xmlns:xlink="http://www.w3.org/1999/xlink"
+        xmlns:svg="http://www.w3.org/2000/svg" xmlns:mml="http://www.w3.org/1998/Math/MathML"
+        xmlns:db="http://docbook.org/ns/docbook" xmlns:scilab="http://www.scilab.org"
+        xml:lang="ru" xml:id="twinkle">
     <refnamediv>
         <refname>twinkle</refname>
-        <refpurpose>используется для мерцания графического объекта</refpurpose>
+        <refpurpose>выделяет один или несколько графических объектов путем их мерцания</refpurpose>
     </refnamediv>
     <refsynopsisdiv>
         <title>Синтаксис</title>
-        <synopsis>twinkle
+        <synopsis>
+            twinkle
             twinkle(n)
             twinkle(h)
             twinkle(h,n)
             <varlistentry>
                 <term>h</term>
                 <listitem>
-                    <para>указатель на графический объект. By default, the current graphic entity
-                        handled with <literal>gce()</literal> is considered.
+                    <para>указатель на графический объект. По умолчанию рассматривается текущий
+                       графический объект, управляемый с помощью <literal>gce()</literal>.
                     </para>
                 </listitem>
             </varlistentry>
             <varlistentry>
                 <term>n</term>
                 <listitem>
-                    <para>целое число.</para>
+                    <para>количество мерцаний. По умолчанию n = 5</para>
                 </listitem>
             </varlistentry>
         </variablelist>
     <refsection role="description">
         <title>Описание</title>
         <para>
-            Функция <function>twinkle</function> заставляет графический объект,
-            указанный по его указателю <varname>h</varname> мерцать. Она может
-            использоваться для того, чтобы найти в графическом окне объект,
-            соответствующий графическому указателю. По умолчанию объект мерцает 5
-            раз, но это можно изменить с помощью необязательного аргумента
-            <varname>n</varname>.
+            <function>twinkle</function> заставляет графические объекты, управляемые с помощью
+            <varname>h</varname>, мерцать <varname>n</varname> раз. Если некоторые из объектов изначально
+            невидимы, то они мерцают с другими объектами и окончательно остаются невидимыми перед
+            возвратом.
+        </para>
+        <para>
+            Если <function>twinkle()</function> запущена тогда, когда нет ни одного графического окна,
+            то она ничего не делает. Если дескриптор <varname>h</varname> имеет некоторые
+            некорректные компоненты (объекты были в это время удалены), то <function>twinkle(h..)</function>
+            возвращает ошибку.
         </para>
     </refsection>
     <refsection role="examples">
@@ -61,8 +69,8 @@
         <programlisting role="example"><![CDATA[
 clf
 plot()
-twinkle     // twinkles the last group of curves plotted in the plot() example
-twinkle(3)  // twinkles it only three times
+twinkle     // мерцает последняя группа кривых, построенных в примере plot()
+twinkle(3)  // мерцает только три раза
 
 x = linspace(-2*%pi,2*%pi,100)';
 plot2d(x,[sin(x),cos(x)]);
@@ -73,6 +81,16 @@ twinkle(p1)     // мерцает график косинуса
 twinkle(p2,10)  // график синуса мерцает 10 раз
 twinkle(gca())  // мерцают оси
  ]]></programlisting>
+    <para/>
+        <programlisting role="example"><![CDATA[
+// Мерцание подгруппы многих кривых с некоторыми изначально невидимими
+clf
+plot()
+c = gca().children.children(1:10);
+c(1:5).visible = "off";
+sleep(5,'s')
+twinkle(c)
+ ]]></programlisting>
     </refsection>
     <refsection role="see also">
         <title>Смотрите также</title>
@@ -88,7 +106,13 @@ twinkle(gca())  // мерцают оси
             <revision>
                 <revnumber>6.0</revnumber>
                 <revdescription>
-                    <para>twinkle() and twinkle(n) added.</para>
+                    <para>Добавлены twinkle() и twinkle(n).</para>
+                </revdescription>
+            </revision>
+            <revision>
+                <revnumber>6.1</revnumber>
+                <revdescription>
+                    <para>Теперь несколько независимых объектов могут мерцать вместе.</para>
                 </revdescription>
             </revision>
         </revhistory>
index a5d8694..35bc451 100644 (file)
@@ -1,7 +1,7 @@
 // Scilab ( http://www.scilab.org/ ) - This file is part of Scilab
 // Copyright (C) INRIA
-// Copyright (C) 2015 - 2016 - Samuel GOUGEON
 // Copyright (C) 2012 - 2016 - Scilab Enterprises
+// Copyright (C) 2015, 2016, 2018 - Samuel GOUGEON
 //
 // This file is hereby licensed under the terms of the GNU GPL v2.0,
 // pursuant to article 5.3.4 of the CeCILL v.2.1.
@@ -31,7 +31,6 @@ function twinkle(h,n)
                 return
             end
         else
-            h = h(1)
             n = 5
         end
     end
@@ -44,15 +43,10 @@ function twinkle(h,n)
         error(msprintf(msg, "twinkle", min(rhs,2)));
     end
 
-    // BLINKING THE GRAPHICAL COMPONENT
-    f = h;
-    while f.type<>"Figure"
-        f = f.parent;
-    end
+    // BLINKING THE GRAPHICAL COMPONENTS
     realtimeinit(0.2);
     realtime(0);
     k = 0;
-
     v = h.visible;
     for i = 1:n
         k = k+2;
@@ -61,5 +55,9 @@ function twinkle(h,n)
         h.visible = "on";
         realtime(k+1);
     end
-    h.visible = v;
+
+    // Restoring the initial .visible state
+    for i = 1:length(h)
+        h(i).visible = v(i);
+    end
 endfunction
diff --git a/scilab/modules/graphics/tests/nonreg_tests/bug_15359.tst b/scilab/modules/graphics/tests/nonreg_tests/bug_15359.tst
new file mode 100644 (file)
index 0000000..50e8b56
--- /dev/null
@@ -0,0 +1,25 @@
+// =============================================================================
+// Scilab ( http://www.scilab.org/ ) - This file is part of Scilab
+// Copyright (C) 2018 - Samuel GOUGEON
+//
+//  This file is distributed under the same license as the Scilab package.
+// =============================================================================
+
+// <-- TEST WITH GRAPHIC -->
+// <-- INTERACTIVE TEST -->
+
+// <-- Non-regression test for bug 15359 -->
+//
+// <-- Bugzilla URL -->
+// http://bugzilla.scilab.org/15359
+//
+// <-- Short Description -->
+// twinkle() was unable to blink several independent objects
+
+clf
+plot()
+c = gca().children.children(1:10);
+c(1:5).visible = "off";
+twinkle(c)      // A whole subset of 10 curves of the bottom axes must blink 5 times
+twinkle(c,3)    // A whole subset of 10 curves of the bottom axes must blink 3 times
+// In both cases, in the final state, 5 curves must be invisible as before blinking.