+%The upper part contains the script editor; we shall not use it right now, you may reduce it.
+Command line help for the black box scripting language (\bbsns) can be obtained
+in this zone (see \ref{Scripting}).
+
+% ==========================================
+\subsubsection{Guides}
+% ==========================================
+
+An html version of all the guides is browsable in the \texttt{Help} part of \bbStudions.
+ \begin{itemize}
+ \item {\bf\emph{User's Guide}} : This guide !
+ \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 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.
+ \item {\bf\emph{Doxygen Documentation}} : Doxygen source browser.\\ Automatically generated from source files. Should only concern the kernel developpers.
+ \end{itemize}
+
+
+
+
+% ==========================================
+\subsubsection{Boxes Help}
+% ==========================================
+ Lists of currently available boxes from installed packages
+ \begin{itemize}
+ \item {\bf\emph{Alphabetical list}} : %This is the 'zero-level' of retrieving.
+ \item {\bf\emph{List by package}} Boxes indexed by package
+ \item {\bf\emph{List by category}} :
+ Each box is indexed by a list of keywords, called 'categories', such as '\texttt{read/write}',
+ '\texttt{filter}' '\texttt{viewer}', ...
+ A given box may belong to more than one \texttt{category}, however some categories are mutually exclusive.
+ Standard categories are :
+ \begin {itemize}
+ \item\texttt{atomic box}/\texttt{complex box}\\
+ Whether it's a 'atomic' unit written is C++ and available in binary form in a package or it's an assembly of several black boxes (atomic or complex) which is described in \bbs script language.\\
+ Any box is either atomic ou complex.\\
+ Any pipeline described in a \bbs script is itself viewed as a complex black box hence is tagged as belonging to this category.
+ \item\texttt{example} / \texttt{demo} / \texttt{application}\\
+ These ones are scripts which produce a result when executed (i.e. they execute a pipeline like \texttt{exampleSlider} above), contrarily to the scripts which only define complex boxes but do not instanciate and execute boxes.
+ \begin {itemize}
+ \item\texttt{example} : It's just a (simple) example, for programmers, on how to use a given feature. The \texttt{Examples} link on the starting page links to the list of the boxes of this category.
+ \item\texttt{demo} : It can be a 'good looking' (a.k.a 'sexy') example on some sophisticated work, done only by using \texttt{bbtk}. The \texttt{Demos} link on the starting page links to the list of the boxes of this category.
+ \item\texttt{application} : 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\texttt{widget} : A piece of graphical interface (based on \texttt{wxWidgets})
+ \item\texttt{dicom} : Dicom medical image-related box.
+ \item\texttt{viewer} : A box allowing to view something (e.g. an image).
+ \item\texttt{read/write} : An I/O-related box
+ \item\texttt{mesh} : A mesh-related box
+ \item\texttt{filter} : A filter, mainly image filters.
+ \item\texttt{image} : An image-related box
+ \item\texttt{3D object creator} : A box which creates a 3D object to be injected into a 3D view (e.g. a plane, a surface).
+ \item\texttt{math} : Math
+ \item\texttt{misc} : Miscellaneous...
+ \end {itemize}
+ Remark that the list of categories is 'auto-extensible' : each time a new box is created which belongs to a new category and the boxes list is regenerated, then the new category appears in the list, holding the new box. The above list only contains the categories used in the packages provided with current \bbtk release.
+ \item {\bf\emph{ List of adaptors}} : The adaptors are a special type of black box which are used internaly to perform type conversions. Thought there are not end user intended, you may see their list. Adaptors belong to the \texttt{adaptor} category.
+ \end {itemize}
+
+% ==========================================
+\subsubsection{The Package Browser}
+\label{Package_Browser}
+% ==========================================
+
+The package browser is a standalone application which
+dynamically loads and queries the available packages.
+It is thus a smarter tool than the static html documentation.
+You can run it with the command \texttt{bbPackageBrowser}
+or in \bbStudio using either the button of the 'Command' part
+or the menu entry 'Windows$>$Start Package Browser'.
+Remark that it may take some time to start because it loads all available
+packages at start.
+Its appearance is reproduced in figure \ref{imPackage_Browser}.
+
+\begin{figure}[!ht]
+\caption{\label{imPackage_Browser}The Package Browser}
+\begin{center}
+\includegraphics[width=0.6\textwidth]{Package_Browser.png}
+\end{center}
+\end{figure}
+
+It allows you to find boxes using a multi-criteria filtering principle :
+The boxes listed are the one whose attributes match \emph{all} the
+words entered in the 'Filter' part.
+You can get the whole description of a given box clicking on its name.
+
+Warnings :
+
+\begin{itemize}
+\item It's case sensitive, i.e '\texttt{Button}'
+will give different results than '\texttt{button}'
+\item You have to press enter in the filter zone to update the boxes list
+\item A filtering string only has to match a subpart of the related attribute of a box.
+For example, entering 'utt' in the 'Name' attribute will match a box called 'Button'.
+\end{itemize}
+
+Attributes :
+
+\begin {itemize}
+\item Package : The name of the package to which the box belongs (e.g. \texttt{wxvtk}, \texttt{std})
+\item Name : The name of a box or an application (e.g. \texttt{Reader}, \texttt{example})
+\item Description : A part of the description of a box (e.g. \texttt{3D}, \texttt{image})
+\item Category : The categories of the box (e.g. \texttt{demo})
+\item Input/Output Type : The \CPP type of an input or output (e.g. \texttt{int}, \texttt{vtkImageData*}, \texttt{std::string})
+\item Input/Output Nature : The \texttt{nature} of an input or output (e.g. \texttt{file name}, \texttt{signal})
+\end {itemize}
+
+%If 'Show widgets' is selected then
+
+
+%%\newpage
+
+% ==============================================
+\subsection{The Menu}
+% ==============================================
+
+At last, let's have a look at \bbStudio menu.(See figure \ref{themenu})
+
+\begin{figure}[!ht]
+\caption{\label{themenu}The bbStudio menu}
+\begin{center}
+\includegraphics[width=0.7\textwidth]{themenu.png}
+\end{center}
+\end{figure}
+
+\begin {itemize}
+ \item{\texttt{File}}
+ \begin {itemize}
+ \item{\texttt{Open the bbtk configuration file}}
+ \item{\texttt{Quit}}
+ \end {itemize}
+ \item{\texttt{Tools}}
+ \begin {itemize}
+ \item{\texttt{Create package}} :
+ Provides a graphical interface to help package developpers to create a new empty package.
+ \item{\texttt{Create black box}}
+ Provides a graphical interface to help package developpers to create a new empty black box, and add it to an already existing package.
+ \item{\texttt{Plug Package}}
+ Incorporates a package into the list of known packages. Updates the html documentation.
+ \item{\texttt{Regenerate package doc}} :
+ If a package has changed (e.g. new boxes) this updates the package html documentation.
+ \item{\texttt{Regenerate boxes list}} :
+ Updates the boxes lists (alphabetical, by package, ...)
+ \item{\texttt{Regenerate all}}
+ Regenerates all the packages documentations and the boxes lists (may be long...).
+ \item{\texttt{Show last graph}}
+ Shows the last pipeline graph that was generated
+ \end {itemize}
+ \item{\texttt{Options}}
+ \begin {itemize}
+ \item{\texttt{Reset before running}} Before running a script, all the already created boxes are destroyed,
+ all the already loaded packages are unloaded (this is the recomended option).
+ \end {itemize}
+ \item{\texttt{Windows}}
+ User may decide, for any reason of his own, to hide one or more panels:
+ \begin {itemize}
+ \item{\texttt{Show 'Files' panel}}
+ \item{\texttt{Show 'Help' panel}}
+ \item{\texttt{Show 'Command' panel}}
+ \item{\texttt{Show 'Messages' panel}}
+ \item{\texttt{Start Package browser}} : starts the package browser (see \ref{Package_Browser}).
+ \end {itemize}
+ \item{\texttt{About}}
+ \begin {itemize}
+ \item{\texttt{About}} : Info about \texttt{bbStudio}.
+ \end {itemize}
+\end {itemize}
+
+
+
+
+% ==========================================
+% ==========================================
+% ==========================================
+% ==========================================
+\newpage
+\hrule
+\section{Writing black box scripts (\bbsns)}
+\label{Scripting}
+% ==========================================
+% ==========================================
+% ==========================================
+
+This section introduces how to write down black box scripts (\bbsns)
+to create and execute pipelines.