]> Creatis software - bbtk.git/commitdiff
Last fixes (until next one)
authorjean-pierre roux <jean-pierre.roux@creatis.insa-lyon.fr>
Wed, 15 Oct 2008 14:07:02 +0000 (14:07 +0000)
committerjean-pierre roux <jean-pierre.roux@creatis.insa-lyon.fr>
Wed, 15 Oct 2008 14:07:02 +0000 (14:07 +0000)
kernel/doc/bbtkUsersGuide/bbtkUsersGuide.tex

index 6444ae566015e5b861b7fff742c05983fd973807..d5503f66e42946e27434fa6eafd39c40a6293363 100644 (file)
@@ -465,7 +465,7 @@ The source code of the script
 \end{verbatim}
 We create a \texttt{Slider} called \emph{slider}\\
 We tell it to inform anybody that's interested in, that the cursor moved, each time it moved. \\
-The standard behaviour is to inform, only when cursor is released.
+The deafuault behaviour is to inform, only when cursor is released.
 \begin{verbatim}
    new OutputText text
 \end{verbatim}
@@ -473,23 +473,23 @@ We create a \texttt{OutputText} called \emph{text}
 (in which slider value will be displayed)
 
 \begin{verbatim}
-new LayoutLine layout
+   new LayoutLine layout
 \end{verbatim}
 We create a \texttt{LayoutLine} called \emph{layout},
 a \emph{container} widget, designed to embed other wigets (say, a main window)
 \begin{verbatim}
-connect slider.Widget    layout.Widget1
-connect text.Widget      layout.Widget2
+   connect slider.Widget    layout.Widget1
+   connect text.Widget      layout.Widget2
 \end{verbatim}
 We embed \emph{slider} and \emph{text} into  \emph{layout}.
 \begin{verbatim}
-connect slider.BoxChange text.BoxExecute
-connect slider.Out       text.In
+   connect slider.BoxChange text.BoxExecute
+   connect slider.Out       text.In
 \end{verbatim}
 We tell  \emph{slider} to inform \emph{text} every time it's modified.\\
 We tell  \emph{slider} to pass its output value (\texttt{Out} to \emph{text}  input value (\texttt{In})
 \begin{verbatim}
-exec layout
+   exec layout
 \end{verbatim}
 We tell \emph{layout} to process itself (it will do it only if it's warned 
 that one of its entries was modified since its (own) last processing.
@@ -579,7 +579,7 @@ Available commands :
 \end{verbatim}
 
 To get help on a particular command type \texttt{help <command-name>},
-for example :
+for example:
 \begin{verbatim}
 > help author
 \end{verbatim}
@@ -699,7 +699,7 @@ you get something like :
 \end{verbatim}
 
 Now the interpreter knows the package \texttt{std} and the black boxes it provides,
-such as the \texttt{'Add'} box, the \texttt{'ConcatStrings'} box, and so on. Remark that the 
+such as the \texttt{Add} box, the \texttt{ConcatStrings} box, and so on. Remark that the 
 content of \texttt{std} may vary from one version to another 
 as new black boxes might be added to it. 
 If you type :  
@@ -709,7 +709,7 @@ If you type :
 
 You'll get a text help, in the 'Message' part :
 \begin{verbatim}
-Black Box <std::Add>S
+Black Box <std::Add>
   Adds its inputs
   By : laurent.guigues@creatis.insa-lyon.fr
   Categories : atomic box;math;
@@ -737,7 +737,7 @@ An html version of all the guides is browsable in the \texttt{Help} part of \bbS
      application, just using already existing boxes.
      \item {\bf\emph{Package Developper's Guide}} : Step to step How-to for programmer who wants to create his own
      black boxes/packages.
-     \item {\bf\emph{Developper's Guide}} : For bbtk kernel developpers only. (This one is probabely not very much
+     \item {\bf\emph{Developper's Guide}} : For bbtk kernel developpers only. (This one is probably not very much
      up-to-date, since we spend more time in developping than writing documentation that's not of user concern).
      \item {\bf\emph{Reference Manual}} : Contains a exaustive description of all the features for all the commands.
      \item {\bf\emph{Booklet}} : Vade mecum.     
@@ -786,15 +786,16 @@ An html version of all the guides is browsable in the \texttt{Help} part of \bbS
              \item{example}\\
             It's just a (simple) example, for programmers, on how to use a given feature.
              \item{demo}\\
-            It can be a 'good looking' (a.k.a 'sexy') example on some sophisticated work.       
+            It can be a 'good looking' (a.k.a 'sexy') example on some sophisticated work, done only by using \texttt{bbtk} 
+            boxes.      
              \item{application}\\
-            It's a Final application, end user intended (e.g. Subscale a huge volume, Crop a DICOM image, etc)  
+            It's a Final application, end user intended (e.g. Subscale a huge volume witout loading it in memory, Crop a DICOM image, etc)      
           \end {itemize}
         \item{widget}\\
         Piece of graphical interface (based on \texttt{wxWidgets})
         \item{Dicom}\\
         Dicom medical image related box.
-        \item{viewer}\\
+        \item{viewer}
         \item{read/write}
         \item{mesh}
         \item{3D Object creator}
@@ -861,42 +862,43 @@ At last, let's have a look at \bbStudio menu.(See figure \ref{themenu})
 \end{figure}
 
 \begin {itemize}
-  \item{File}
+  \item{\texttt{File}}
      \begin {itemize}
-        \item{Open the bbtk configuration file}
-        \item{Quit}
+        \item{\texttt{Open the bbtk configuration file}}
+        \item{\texttt{Quit}}
      \end {itemize}       
-  \item{Tools}
+  \item{\texttt{Tools}}
      \begin {itemize}
-        \item{Create package} :
+        \item{\texttt{Create package}} :
        Provides a graphical interface to help Package developper to create a new empty package.
-        \item{Create black box}
+        \item{\texttt{Create black box}}
        Provides a graphical interface to help Package developper to create a new empty black box, and add it to an already existing package.   
-        \item{Show last image graph}
-        \item{Regenerate package doc} :
+        \item{\texttt{Show last image graph}}
+        \item{\texttt{Regenerate package doc}} :
        if user was supplied new black boxes, and added them to an already existing package, he can update the package documentation, in order to benefit all the features of the Help mechanisms.      
-        \item{Regenerate boxes list} :
+        \item{\texttt{Regenerate boxes list}} :
        if user wants to update only boxes list (quicker)
-        \item{Regenerate all}
+        \item{\texttt{Regenerate all}}
        User wants to rebuild the whole documentation.     
      \end {itemize}     
-  \item{Options}
+  \item{\texttt{Options}}
      \begin {itemize}
-        \item{Reset before running} Before running, all the already boxes are destroyed, all the already loaded packages are unloaded (this is the recomended option).   
+        \item{\texttt{Reset before running}} Before running, all the already boxes are destroyed, all the already loaded packages are unloaded (this is the recomended option).   
      \end {itemize}     
-  \item{Windows}
+  \item{\texttt{Windows}}
   User may decide, for any reason of his own, to hide one or more pannels:
      \begin {itemize}
-        \item{Show 'Files' panel}
-        \item{Show 'Help' panel}
-        \item{Show 'Command' panel}
-        \item{Show 'Messages' panel}
-        \item{Launch Package browser} The package browser is a stand alone application. This can be achieved, too, using the lower tool bar, button 'Start Package Browser'    
+        \item{\texttt{Show 'Files' panel}}
+        \item{\texttt{Show 'Help' panel}}
+        \item{\texttt{Show 'Command' panel}}
+        \item{\texttt{Show 'Messages' panel}}
+        \item{\texttt{Launch Package browser}} The package browser is a stand alone application. This can be achieved, too,
+        using the lower tool bar : button \texttt{Start Package Browser}.      
         \item{}     
      \end {itemize}     
-  \item{About}
+  \item{\texttt{About}}
      \begin {itemize}
-        \item{About} Info about \texttt{bbStudio}.       
+        \item{\texttt{About}} : Info about \texttt{bbStudio}.       
      \end {itemize}     
 \end {itemize}
 % ==========================================
@@ -919,8 +921,8 @@ holding the script.
 
  You'll see it, in the '\texttt{Files}' part.\\ \\
  You may run it, using the lower toolbar. \\ 
- \texttt{WARNING :} if the script contains one or more \texttt{LayoutSplit}
- object, you will have to resize the sub windows. \\ \\
%\texttt{WARNING :} if the script contains one or more \texttt{LayoutSplit}
+% object, you will have to resize the sub windows. \\ \\
  You may modify, save or save-as the current script, using the lower toolbar.\\ \\
  You may have a look at the graphical representation of the pipeline (sorry,
  right now, to modify the pipeline, you have to modify the script; 
@@ -1060,7 +1062,7 @@ box itself displays something in its processing).
 It just processes the box if needed. 
 This command is used to execute boxes that do not have any output,  
 such as boxes that write something to a file or, display a 
-graphical interface, and so on. 
+graphical interface, and so on. \newline
 
 %To exit \bbi, type :
 %\begin{verbatim}
@@ -1068,6 +1070,8 @@ graphical interface, and so on.
 %Good bye !
 %\end{verbatim}
 
+
+
 % ==========================================
 \hrule
 
@@ -1439,8 +1443,9 @@ and you can use it like any other box, for example type :
 As a side note, we can say that, for consistency reasons, it would have been better to name  
 \texttt{In1}, \texttt{In2} and \texttt{In3} the inputs of the black box \texttt{Add3}, 
 since all the 'natural entry' of a box is named \texttt{In}, or \texttt{In}\emph{x} if there are more than one  'natural
-entry'.
-
+entry'
+.
+\newline
 % ==========================================
 \hrule
 \paragraph{Summary}
@@ -2047,8 +2052,56 @@ make install
 Linux users : Don't forget to \texttt{sudo} before.
 \end{itemize}
 % ==========================================
-\subsubsection{\bbtk configuration file and search paths}
-\label{bbi-more-on-configuration}
+
+
+\newpage
+
+
+
+% ==========================================
+%\vspace{0.5cm}\hrule \\
+
+\section{Using third party Package}
+\label{Third_Party_Package}
+% ==========================================
+
+% ==========================================
+\subsection{The configuration file}
+\label{The_configuration_file}
+% ==========================================
+
+First, have a glance at the Configuration,  just clicking on \texttt{Config} button of the \texttt{Command} part toolbar.
+
+You'll get something like :
+
+\begin{verbatim}
+=============
+ Configuration
+ =============
+ bbtk_config.xml    : [/home/jpr/Creatis/bbtk/binLIN/bin/bbtk_config.xml]
+ Documentation Path : [/home/jpr/Creatis/bbtk/binLIN/bin/../share/bbtk/doc]
+ Data Path          : [/home/jpr/Creatis/bbtk/binLIN/bin/../share/bbtk/data]
+ Temp Directory     : [/home/jpr/Creatis/bbtk/binLIN]
+ File Separator     : [/]
+ BBS Paths   
+ --- [.]
+ --- [/home/jpr/Creatis/bbtk/binLIN/bin/../share/bbtk/bbs]
+ --- [/home/jpr/Creatis/bbtk/binLIN/share/bbtk/bbs]
+ PACKAGE Paths : 
+ --- [.]
+ --- [/home/jpr/Creatis/bbtk/binLIN/bin]
+ --- [/home/jpr/Creatis/bbtk/binLIN/bin/../lib]
+ --- [/home/jpr/Creatis/bbtk/binLIN/bin]
+ --- [/home/jpr/Creatis/bbtk/binLIN/bin\Debug]
+ --- [/home/jpr/Creatis/bbtk/binLIN/bin\Release] 
+\end{verbatim}
+
+(depending on who you are, and whether \texttt{bbStudio} is installed or not.)\\
+
+Note the two main parts : \texttt{BBS Paths} and \texttt{PACKAGE Paths}
+\subsection{How bbStudio uses the Configuration file}
+\label{How_bbStudio_uses_the_Configuration_file}
+
 
 At start, \bbi tries to open an \texttt{xml} 
 configuration file named \texttt{bbtk\_config.xml}. 
@@ -2069,43 +2122,208 @@ typically \texttt{C:\\...}.
 a new one in the \texttt{.bbtk} directory. 
 \end{enumerate}
 
-Once created, you can edit the \texttt{bbtk\_config.xml} file located 
-in your \texttt{.bbtk} directory. It contains :
 
-\begin{file}{bbtk\_config.xml}
+To use a third party Package, you will have to update it.\\
+
+\subsection{Modifying the Configuration file}
+\label{Modifying_the_Configuration_file}
+
+Just use the \texttt{Open bbtk Config file} option of the \texttt{Files} of the \bbStudio menu.
+
+You will get something like :
 \begin{verbatim}
-<?xml version="1.0" encoding="iso-8859-1"?>
 <config>
-   <description>  </description>
-   <bbs_path>     </bbs_path>
-   <package_path> 
-      /usr/local/lib
-   </package_path>
-   <data_path> </data_path>
-   <default_temp_dir>$</default_temp_dir>
+  <description> Sets the search directories in the build tree </description>
+  <url> </url>
+  <bbs_path> /home/jpr/Creatis/bbtk/binLIN/share/bbtk/bbs </bbs_path>
+  <package_path> /home/jpr/Creatis/bbtk/binLIN/bin </package_path> 
+# For windows
+  <package_path> /home/jpr/Creatis/bbtk/binLIN/bin\Debug </package_path> 
+  <package_path> /home/jpr/Creatis/bbtk/binLIN/bin\Release </package_path> 
+#
+  <data_path> </data_path>
+# 
+  <default_temp_dir>  /home/jpr/Creatis/bbtk/binLIN </default_temp_dir>   
 </config>
 \end{verbatim}
-\end{file}
 
-You can add pathes to 
+To use a nex Package :
+\begin{itemize}
+\item {}
+After the already existing \texttt{xml} tags 
+\texttt{bbs\_path}
+ (i.e. the lines begining by 
+ \texttt{<bbs\_path>} 
+ %bbs_path
+and ending by 
+\texttt{</bbs\_path>}), 
+you can add paths to :
+\begin{itemize}
+\item A custom folder in which to search for \texttt{.bbs} scripts (\texttt{include} command of \bbins) by adding
+ an \texttt{xml} tag:\\ 
+ \texttt{<bbs\_path>} 
+\emph{complete\_path\_to\_scripts\_folder}
+\texttt{<\/bbs\_path>}.
+\end{itemize}
+
+\item {}
+After the already existing tags 
+\texttt{package\_path}
+ (i.e. the lines begining by 
+ \texttt{package\_path} 
+ %bbs_path
+and ending by 
+\texttt{/package\_path}), 
+you can add paths to :
 \begin{itemize}
-\item A custom folder in which to search for \texttt{.bbs} scripts (\texttt{include} command of \bbi) by adding an \texttt{xml} tag : 
-\texttt{<bbs\_path>complete\_path\_to\_folder<\/bbs\_path>}.
-\item A custom folder in which to search for packages (\texttt{load} command of \bbi) by adding an \texttt{xml} tag : 
-\texttt{<package\_path>complete\_path\_to\_folder<\/package\_path>}.
+\item A custom folder in which to search for packages (the dynamic libraries
+ (\texttt{.dll} or \texttt{.so}, called with the \texttt{load} command of \bbins) by adding an \texttt{xml} tag :\\ 
+\texttt{<package\_path>} 
+\emph{complete\_path\_to\_dynamic\_library\_folder}
+\texttt{<\/package\_path>}.
+\end{itemize}
 \end{itemize}
 
 
+%\end{itemize}
+% ==========================================
+\subsection{Updating the documentation}
+\label{Updating_the_documentation}
+% ==========================================
+If you want (and sure you will) to be able to use the Help tools as well as the features provided by this package,
+ you must use the
+option \texttt{Regenerate package doc}  in the menu \texttt{Tools} of \texttt{bbStudio}.\\
+You'll be prompted for the Package name. Avoid using the \texttt{-a} option (Regenerate all), since it's time consumming.
+
+If you want (and sure you will) to benefit the features of Box indexing
+ you must use the
+option \texttt{Regenerate Boxes Lists}  in the menu \texttt{Tools} of \texttt{bbStudio}.\\
+
+
+% ==========================================
+\subsection{Using the package}
+\label{Using_the_package}
+% ==========================================
+
+The only thing you have to do is to \texttt{load} the package, within the script, or from the
+\texttt{Command} part, and enjoy the black boxes it contains.
+
+% ==========================================
+\subsection{Packages you'll probably want to use }
+\label{Packages_you_ll_want_to_use}
+% ==========================================
+\begin {itemize}
+
+\item{\texttt{creaContours}} \\
+Provides sophisticated widgets for managing 3D R.O.I. (Regions od interest)
+\item{\texttt{creaImageIO}} \\
+Allows browsing, selectionning, ordering directories containing images of almost any type
+(including DICOM)
+\end {itemize}
+
 \newpage
+% ==========================================
+%\vspace{0.5cm}\hrule \\
+\section{Using black boxes in \CPP programs}
+\label{cpp}
+% ==========================================
+
+A very useful feature is that you may use any black box within a \CPP program without worrying about \texttt{wxWigets} main window.\\
+
+Let's look a the following bbs script :
+
+\begin{verbatim}
+# Load the packages
+load std
+load wx
+
+# Create the Objects
+new Slider     slider
+new OutputText text
+new LayoutLine layout
+
+# Graphical pipeline
+connect slider.Widget    layout.Widget1
+connect text.Widget      layout.Widget2
+
+# Execution pipeline
+connect slider.BoxChange text.BoxExecute
+connect slider.Out       text.In
+
+# Go!
+exec layout
+\end{verbatim}
+
+User wants to create a slider and an output text, within a LayoutLine, and display the slider value in the output text.\\ 
+Think about the (little!) nightmare to code the same, in 'raw C++', using wxWidgets.\\
+
+Using the standalone application \texttt{bbc} you just 'convert' the script.
+
+\begin{verbatim}
+#include <bbwxSlider.h>
+#include <bbwxOutputText.h>
+#include <bbtkFactory.h>
+#include <bbwxLayoutLine.h>
+
+int main(int argv, char* argc[])
+{
+      // we need to intanciate a bbtk::Factory to be aware of the adaptors
+      bbtk::Factory::Pointer factory = bbtk::Factory::New();
+      
+      // Load the packages
+      // ----------------  
+      factory->LoadPackage("std");
+      factory->LoadPackage("wx");
+      
+      // Create the Objects
+      // ------------------      
+      bbwx::Slider::Pointer     slider   = bbwx::Slider::New("slider");
+      bbwx::OutputText::Pointer text     = bbwx::OutputText::New("text");
+      bbwx::LayoutLine::Pointer layout   = bbwx::LayoutLine::New("layout");
+      
+      // Graphical pipeline
+      bbtk::Connection::Pointer c1       = bbtk::Connection::New(slider,"Widget",
+                                                          layout,"Widget1");
+                                                          
+      bbtk::Connection::Pointer c2       = bbtk::Connection::New(text,"Widget",
+                                                          layout,"Widget2");
+                                                                                                                                                                          
+      // Execution pipeline
+      // ------------------
+      
+      // We have to pass the 'factory', in order to call automatically an adaptor,
+      // if necessary.
+      bbtk::Connection::Pointer s2t      = bbtk::Connection::New(slider,"Out",
+                                                           text,"In",
+                                                           factory);      
+       bbtk::Connection::Pointer c3       = bbtk::Connection::New(slider,"BoxChange",
+                                                            text,"BoxExecute");      
+      layout->bbSetInputWinDialog(true);
+      
+      // Go!
+      // ---     
+      layout->bbExecute();
+
+    }
+  catch (bbtk::Exception e)
+    {
+      bbtk::MessageManager::SetMessageLevel("Error",1);
+      e.Print();
+    }
+}
+\end{verbatim}
+
+%\bibliography{all}
 
 % ==========================================
-\subsection{Language reference}
+\section{Language reference}
 \label{bbi-reference}
 % ==========================================
 
 
 % ==========================================
-\subsubsection{Pipeline creation and execution related commands}
+\subsection{Pipeline creation and execution related commands}
 \label{bbi-reference-creation-execution}
 % ==========================================
  See table \ref{bbi-reference-box}
@@ -2162,7 +2380,7 @@ are also processed recursively (pipeline processing).\\ \hline
 \newpage
 
 % ==========================================
-\subsubsection{Interpreter related commands}
+\subsection{Interpreter related commands}
 \label{bbi-reference-interpreter}
 % ==========================================
 See table \ref{tabbbi-reference-interpreter_1} and \ref{tabbbi-reference-interpreter_2}
@@ -2256,7 +2474,7 @@ that \bbi gets back to its initial state \\ \hline
 \newpage
 
 % ==========================================
-\subsubsection{Complex black box definition related commands}
+\subsection{Complex black box definition related commands}
 \label{bbi-reference-black-box-definition}
 % ==========================================
 
@@ -2308,227 +2526,6 @@ The box \texttt{box} must already have been created in the complex box and of co
 
 \newpage
 
-% ==========================================
-%\vspace{0.5cm}\hrule \\
-
-
-
-% ==========================================
-%\vspace{0.5cm}\hrule \\
-
-\section{Using third party Package}
-\label{Third_Party_Package}
-% ==========================================
-
-% ==========================================
-\subsection{The configuration file}
-\label{The_configuration_file}
-% ==========================================
-
-First, have a glance at the Configuration,  just clicking on \texttt{Config} button of the \texttt{Command} part toolbar.
-
-You'll get something like :
-
-\begin{verbatim}
-=============
- Configuration
- =============
- bbtk_config.xml    : [/home/jpr/Creatis/bbtk/binLIN/bin/bbtk_config.xml]
- Documentation Path : [/home/jpr/Creatis/bbtk/binLIN/bin/../share/bbtk/doc]
- Data Path          : [/home/jpr/Creatis/bbtk/binLIN/bin/../share/bbtk/data]
- Temp Directory     : [/home/jpr/Creatis/bbtk/binLIN]
- File Separator     : [/]
- BBS Paths   
- --- [.]
- --- [/home/jpr/Creatis/bbtk/binLIN/bin/../share/bbtk/bbs]
- --- [/home/jpr/Creatis/bbtk/binLIN/share/bbtk/bbs]
- PACKAGE Paths : 
- --- [.]
- --- [/home/jpr/Creatis/bbtk/binLIN/bin]
- --- [/home/jpr/Creatis/bbtk/binLIN/bin/../lib]
- --- [/home/jpr/Creatis/bbtk/binLIN/bin]
- --- [/home/jpr/Creatis/bbtk/binLIN/bin\Debug]
- --- [/home/jpr/Creatis/bbtk/binLIN/bin\Release] 
-\end{verbatim}
-
-(depending on who you are, and whether \texttt{bbStudio} is installed or not.)\\
-
-Note the two main parts : \texttt{BBS Paths} and \texttt{PACKAGE Paths}
-
-To use a third party Package, you will have to update the \emph{bbtk\_config.xml} file.\\
-
-Just use the \texttt{Open bbtk Config file} option of the \texttt{Files} of the \bbStudio menu.
-
-You will get something like :
-\begin{verbatim}
-<config>
-  <description> Sets the search directories in the build tree </description>
-  <url> </url>
-  <bbs_path> /home/jpr/Creatis/bbtk/binLIN/share/bbtk/bbs </bbs_path>
-  <package_path> /home/jpr/Creatis/bbtk/binLIN/bin </package_path> 
-# For windows
-  <package_path> /home/jpr/Creatis/bbtk/binLIN/bin\Debug </package_path> 
-  <package_path> /home/jpr/Creatis/bbtk/binLIN/bin\Release </package_path> 
-#
-  <data_path> </data_path>
-# 
-  <default_temp_dir>  /home/jpr/Creatis/bbtk/binLIN </default_temp_dir>   
-</config>
-\end{verbatim}
-
-%\begin{itemize}
-%\item {
-After the already existing tags 
-%bbs\_path
-\texttt{bbs\_path}
- (i.e. the lines begining by 
- \texttt{bbs\_path} 
- %bbs_path
-and ending by 
-\texttt{/bbs\_path})
-
-%/bbs_path})
- add a new one with the name of the directory that contains the 
- \texttt{.bbs} scripts of the package you
-want to use.\\
-x
-%\item {
-After the already existing tags \texttt{package\_path} (i.e. the lines begining by \texttt{package\_path}
- and ending by \texttt{/package\_path})
- add a new one with the name of the directory that contains the the dynamic libraries
- (\texttt{.dll} or \texttt{.so}) of the package you want to use.
-
-%\end{itemize}
-% ==========================================
-\subsection{Updating the documentation}
-\label{Updating_the_documentation}
-% ==========================================
-If you want (and sure you will) to be able to use the Help tools as well as the features provided by this package,
- you must use the
-option \texttt{Regenerate package doc}  in the menu \texttt{Tools} of \texttt{bbStudio}.\\
-You'll be prompted for the Package name. Avoid using the \texttt{-a} option (Regenerate all), since it's time consumming.
-
-If you want (and sure you will) to benefit the features of Box indexing
- you must use the
-option \texttt{Regenerate Boxes Lists}  in the menu \texttt{Tools} of \texttt{bbStudio}.\\
-
-
-% ==========================================
-\subsection{Using the package}
-\label{Using_the_package}
-% ==========================================
-
-The only thing you have to do is to \texttt{load} the package, within the script, or from the
-\texttt{Command} part, and enjoy the black boxes it contains.
-
-% ==========================================
-\subsection{Packages you'll probably want to use }
-\label{Packages_you_ll_want_to_use}
-% ==========================================
-\begin {itemize}
-
-\item{creaContours}\\
-Provides sophisticated widgets for managing 3D R.O.I. (Regions od interest)
-\item{creaImageIO}
-Allows browsing, selectionning, ordering directories containing images of almost any type
-(including DICOM)
-\end {itemize}
-
-\newpage
-% ==========================================
-%\vspace{0.5cm}\hrule \\
-\section{Using black boxes in \CPP programs}
-\label{cpp}
-% ==========================================
-
-A very useful feature is that you may use any black box within a \CPP program without worrying about \texttt{wxWigets} main window.\\
-
-Let's look a the following bbs script :
-
-\begin{verbatim}
-# Load the packages
-load std
-load wx
-
-# Create the Objects
-new Slider     slider
-new OutputText text
-new LayoutLine layout
-
-# Graphical pipeline
-connect slider.Widget    layout.Widget1
-connect text.Widget      layout.Widget2
-
-# Execution pipeline
-connect slider.BoxChange text.BoxExecute
-connect slider.Out       text.In
-
-# Go!
-exec layout
-\end{verbatim}
-
-User wants to create a slider and an output text, within a LayoutLine, and display the slider value in the output text.\\ 
-Think about the (little!) nightmare to code the same, in 'raw C++', using wxWidgets.\\
-
-Using the standalone application \text{bbc} you just 'convert' the script.
-
-\begin{verbatim}
-#include <bbwxSlider.h>
-#include <bbwxOutputText.h>
-#include <bbtkFactory.h>
-#include <bbwxLayoutLine.h>
-
-int main(int argv, char* argc[])
-{
-      // we need to intanciate a bbtk::Factory to be aware of the adaptors
-      bbtk::Factory::Pointer factory = bbtk::Factory::New();
-      
-      // Load the packages
-      // ----------------  
-      factory->LoadPackage("std");
-      factory->LoadPackage("wx");
-      
-      // Create the Objects
-      // ------------------      
-      bbwx::Slider::Pointer     slider   = bbwx::Slider::New("slider");
-      bbwx::OutputText::Pointer text     = bbwx::OutputText::New("text");
-      bbwx::LayoutLine::Pointer layout   = bbwx::LayoutLine::New("layout");
-      
-      // Graphical pipeline
-      bbtk::Connection::Pointer c1       = bbtk::Connection::New(slider,"Widget",
-                                                          layout,"Widget1");
-                                                          
-      bbtk::Connection::Pointer c2       = bbtk::Connection::New(text,"Widget",
-                                                          layout,"Widget2");
-                                                                                                                                                                          
-      // Execution pipeline
-      // ------------------
-      
-      // We have to pass the 'factory', in order to call automatically an adaptor,
-      // if necessary.
-      bbtk::Connection::Pointer s2t      = bbtk::Connection::New(slider,"Out",
-                                                           text,"In",
-                                                           factory);      
-       bbtk::Connection::Pointer c3       = bbtk::Connection::New(slider,"BoxChange",
-                                                            text,"BoxExecute");      
-      layout->bbSetInputWinDialog(true);
-      
-      // Go!
-      // ---     
-      layout->bbExecute();
-
-    }
-  catch (bbtk::Exception e)
-    {
-      bbtk::MessageManager::SetMessageLevel("Error",1);
-      e.Print();
-    }
-}
-\end{verbatim}
-
-%\bibliography{all}
-
 \section{Install and run time issues}
 
 \begin {itemize}