protection for Scicos demostrations
Simone Mannori [Wed, 13 Aug 2008 13:51:58 +0000 (13:51 +0000)]
scilab/modules/scicos/etc/scicos.start
scilab/modules/scicos/macros/scicos_auto/scicos.sci
scilab/modules/scicos/macros/scicos_auto/scicos_demostration.sci [new file with mode: 0644]

index 42cf035..83301ab 100644 (file)
@@ -43,13 +43,4 @@ clear path pathdemos;
 // Define Scicos data tables ===========================================
 
 
-//** ==================== Scicos auto protection =======================
-  //** for scicos auto protection **
-  if ~exists("Scicos_is_active") then
-     global Scicos_is_active ; //** define as global variable 
-     Scicos_is_active = 0 ; //** set to one (up flag)
-  end
-//** -------------------------------------------------------------------
-
-
 //end // if %scicos
index 04bc110..a0eb072 100644 (file)
@@ -40,8 +40,7 @@ function [scs_m, newparameters, needcompile, edited] = scicos(scs_m, menus)
   global %scicos_navig
   global %diagram_path_objective
   global inactive_windows
-  global Scicos_commands   // programmed commands
-  global Scicos_is_active 
+  global Scicos_commands   // programmed commands 
 
   // +++++++++++++++++++++++++++++++++++++++++++++++++++++++++
 
@@ -66,18 +65,6 @@ function [scs_m, newparameters, needcompile, edited] = scicos(scs_m, menus)
   slevel = prod ( size ( find ( %mac=='scicos') ) ) ; //** "slevel" is the superblock level
   super_block = slevel > 1 ; //** ... means that the actual SCICOS is a superblock diagram
   
-  //** ---------------------- Scicos auto protection --------------------------- **
-  //** Scicos_is_active MUST be preinit to ZERO inside "scicos_initial tables" 
-  if ~super_block then
-    if Scicos_is_active == 1 then 
-      disp("Scicos is already active. Just one Scicos at time ...");
-      return ; //** EXIT point
-    else
-      disp("Scicos FIRST activation ...");
-      Scicos_is_active = 1; //** up activation flag 
-    end
-  end
-  //** ------------- end of Scicos auto protection -------------------------------------------
 
   //** ----------------------- Scicos splash message and workspace stuff -----------------------
   if ~super_block then
@@ -862,9 +849,10 @@ function [scs_m, newparameters, needcompile, edited] = scicos(scs_m, menus)
       //** restore the original Scilab 5 font list before exit 
       xlfont(scilab5fonts(2),1);
 
-      global Scicos_is_active ; 
-      Scicos_is_active = 0 ; //** Scicos is not active 
-
+      //** TO DO
+      //** For future implementation ..... 
+      //** This is the place of the windows cleaning section 
+      
     end
 
   elseif Cmenu=="Leave" then
diff --git a/scilab/modules/scicos/macros/scicos_auto/scicos_demostration.sci b/scilab/modules/scicos/macros/scicos_auto/scicos_demostration.sci
new file mode 100644 (file)
index 0000000..c672033
--- /dev/null
@@ -0,0 +1,26 @@
+//
+// Scilab ( http://www.scilab.org/ ) - This file is part of Scilab
+// Copyright (C) 2008 - INRIA
+//
+// This file is distributed under the same license as the Scilab package.
+//
+
+function scicos_demostration(scs_m)
+
+  //** -------------------- Check the recurring calling level of scicos ----------------------
+  [%ljunk, %mac] = where() ; //** where I am ?
+  slevel = prod ( size ( find ( %mac=='scicos') ) ) ; //** "slevel" is the superblock level
+  Scicos_is_active = slevel > 0 ; //** ... means that SCICOS is already active 
+
+   if Scicos_is_active then
+
+      message(["You can run ONLY one Scicos demo at time.";...
+               "Please close any previous Scicos diagram";...
+               "before choose a new demo. "]);
+      return
+   else
+      //** with no Scicos previous active, you can start Scicos 
+      scicos(scs_m); 
+   end
+
+endfunction
\ No newline at end of file