Index: trunk/SophyaLib/Manual/piapp.tex
===================================================================
--- trunk/SophyaLib/Manual/piapp.tex	(revision 3041)
+++ trunk/SophyaLib/Manual/piapp.tex	(revision 3043)
@@ -386,24 +386,150 @@
 %%%%%%%%%% Section 3: Graphiques
 \newpage
-\section{Interactive graphics}
-Display of objects in piapp are managed by {\bf PIDrawers} and three
-main viewers:
-
+\section{Interactive graphics} 
+%%%
+\subsection{Display commands}
+Many objects managed by piapp have a default graphic representation. The 
+{\bf disp} command  \myppageref{disp} can be used to display the object, while 
+other commands like {\bf surf} \myppageref{surf} , {\bf imag} 
+or {\bf contour} \myppageref{contour} will try to force a given graphic representation. \\
+Data from table like objects can be plotted using commands like {\bf nt2d}
+\myppageref{nt2d} or {\bf nt3d} \myppageref{nt3d}. Most objects in piapp 
+can also be manipulated like table for plotting purposes, using commands
+like  {\bf plot2d} \myppageref{plot2d} , {\bf plot3d} \myppageref{plot3d} 
+or {\bf n/plot}  \myppageref{nZplot}. These commands are described in section
+\ref{tableplot}. \\
+Commands producing a graphic output have usually an optional argument called 
+{\tt graphic\_attributes} or {\tt gr\_att}. This argument provide a flexible and easy 
+way to change and customise the output graphic, as discussed in the paragraph below. 
+The piapp graphics can be exported in postscript (.ps) or encapsulated postscript 
+(.eps) format. The commands {\bf w2ps} \myppageref{w2ps} and 
+ {\bf w2eps} \myppageref{w2eps} as well the menu  \menubar{PostScript} can 
+ be used to export graphics. \\[1mm]
+The examples below illustrates the usage of some piapp graphic commands.
+\begin{enumerate}
+\item Image display 
+\begin{verbatim}
+#  Open a PPF file containing topographic data for france
+#  as a TMatrix<short> 1332x1548 
+openppf francetopo.ppf
+#  Display the matrix, whit a zoom factor, lut and color map
+disp francetopo 'zoom/3 lut=lin,-700,800 colbr128 win' 
+w2eps francetopo.eps 
+\end{verbatim}
+\begin{center}
+\includegraphics[width=13cm]{francetopo.eps}
+\end{center}
+
+\item Simple 2D graphics with vector displays
+\begin{verbatim}
+#  Create and initialize two vectors - prevent display : nodisp
+Cmd> newvec vva 100 sin(x/10.+0.7)+cos(x/7.+1.4)*1.26 nodisp 
+Cmd> newvec vvb 100 sin(x/10.)+cos(x/7.)*1.34 nodisp 
+#  Set axe drawing options 
+Cmd> setaxesatt 'font=times,bold,16 minorticks tickslen=0.02,0.012'
+#  Display the two vectors, with different graphic attributes
+Cmd> disp vva 'red line=solid,2 notitle'
+#  Define a title for the graphic
+Cmd> settitle 'Example-1: 2 vectors'  ' ' 'font=times,bolditalic,18'
+Cmd> disp vvb 'blue marker=box,7 same'
+#  Save the graphic into an eps file
+Cmd> w2eps gr2vec.eps
+\end{verbatim}
+% \begin{figure}[ht!]
+\begin{center}
+\includegraphics[width=12cm]{gr2vec.eps}
+% \label{g22vec}
+\end{center}
+%%%
+\item Creating a comparison chart using {\bf bargraph}
+\begin{verbatim}
+#  Representation du PNB (en $, 2003) pour quelques pays
+set pays ( Allemagne Espagne France Italie Pays-Bas Suisse UK USA )
+set pnbh ( 22670 14430 22010 18960 23960 37930 25250 35060 )
+setaxesatt 'font=times,bold,16'
+bargraph pnbh pays - 'blue horizontalbars nofill packfrac=0.65 font=helvetica,bold,14'
+setaxelabels 'PNB / Hab , $ 2003' ' ' 'font=times,bold,16'
+w2eps pnbargraph.eps 
+\end{verbatim}
+\begin{center}
+\includegraphics[width=12cm]{pnbbargraph.eps}
+\end{center}
+%%%
+\item Displaying a matrix as a surface 
+\begin{verbatim}
+openppf demo.ppf mtx1
+setaxesatt 'font=time,bold,16'
+surf mtx1 'colbr128 line=solid,1 grey'
+w2eps surfcol.eps
+\end{verbatim}
+\begin{center}
+\includegraphics[width=13cm]{surfcol.eps}
+\end{center}
+
+\end{enumerate}
+
+%%%%%%%%%%
+\subsection{Graphic objects in piapp}
+The piapp graphics is handled by the {\bf PI} \footnote {http://www.sophya.org/PI} library,
+which provide a large variety of 2D representations, 
+few 3D graphics and powerful image display. \\
+Currently, all graphic representations, except for image displays, are handled
+through {\bf PIDrawers} which are managed by a viewer. A viewer can 
+manage several {\bf PIDrawers} objects which correspond then to a multilayer 
+graphic display. The viewers are also responsible for managing user
+interactions. \\
+Image displays are handled through a specific viewer 
+{\bf  PIImage} which is also capable of managing PIDrawer objects 
+for multi-layer 2D overlay vector graphics. \\[2mm]
+%%
+Main piapp/PI graphic viewers, windows and drawer objects:
 \begin{itemize}
-\item[\bul]  PIScDrawWdg: Handler of 2-D drawers with interactive zoom
-(see {\bf PIScDrawWdg} \myppageref{PIScDrawWdg} for more information.
-\item[\bul] PIImage: Manages display of a 2-D array (P2DArrayAdapter) as an image 
-and controls a zoom widget, as well as a global image view widget, and 
-a color map view widget. (see {\bf PIImage} \myppageref{PIImage} for 
- more information.
-\item[\bul] PIDraw3DWdg: handler of 3-D drawers with interacive rotation
-and zoom. (see {\bf PIDraw3DWdg} \myppageref{PIDraw3DWdg} for more information.
-\end{itemize}
-
-\par
+\item[\bul]  The {\bf PIScDrawWdg} handles a set of  of 2-D drawers, managing 
+the 2D coordinate  system and interactive zoom. The axes drawing is 
+handled by a specialised drawer, number 0, which also manages various added 
+graphic elements (text \ldots). The list of various mouse and 
+keyboard actions is described in the reference section, under {\bf PIScDrawWdg} \myppageref{PIScDrawWdg} title. In particular, mouse-button-2 can be used 
+to zoom on a particular part, {\tt $<$Alt$>$A} activates the coordinates
+and axes manipulation window ({\bf PIAxesTools}) and   {\tt $<$Alt$>$G} 
+activates the PIDrawer graphic attributes control window ({\bf PIDrawerTools}).
+%%%
+\item[\bul] The {\bf PIDraw3DWdg}  handles a set of of 3-D drawers, managing
+interactive camera/object rotation (mouse-button-2) and zoom (mouse-button-2). 
+{\tt $<$Alt$>$G} to display/activate  the PIDrawer graphic attributes 
+control window ({\bf PIDrawerTools}).
+See {\bf PIDraw3DWdg} \myppageref{PIDraw3DWdg} for a complete list of mouse
+and keyboard actions.
+Drawer 0 handles axes drawing and graphic elements.
+%%%
+\item[\bul] The display of 2-D arrays $A(i,j)$ as an image is managed by 
+the {\bf PIImage} viewer/widget. The PI library interface  {\bf P2DArrayAdapter} is used
+to represent a generic 2-D array. The array values are converted into an index, converted 
+itself into a color by the use of a color-map or color-table {\bf PIColorMap}. 
+$$ \mathrm{LUT:} A(i,j) \longrightarrow idx(i,j) \hspace{5mm} \mathrm{ColorMap:}
+ idx(i,j) \longrightarrow col(i,j) $$
+Currently index range is 0...255 with color-map having 32 or 128 distinct colors.
+PIImage viewers  controls a zoom widget, as well as a global image view widget, and 
+a color map view widget. A specific image control window can be activated using 
+ {\tt $<$Alt$>$O}.  See {\bf PIImage} \myppageref{PIImage} for 
+a complete list of mouse and keyboard actions. A base drawer (number 0) can handle
+axes drawing and added graphic elements.
+%%%
+\item[\bul] {\bf Windows} 
+The viewers described above are displayed in differnt kind of windows.
+The graphic option {\tt next,win,same,stack} can be used to control the way the
+type of windows used. Graphic windows can be divided into several zones
+(Command {\bf zone} \myppageref{zone}).
 Refer to the command reference section on windows ({\bf Windows}
 \myppageref{Windows})
 for information on the different type of windows used by piapp 
 and their properties.
+%%% 
+\item[\bul] {\bf PIDrawer} Graphical representation of most objects in piapp is 
+handled through objects inheriting from the PIDrawer class. A base drawer 
+(PIElDrawer, number 0) associated to all three above viewers manages the axes drawing 
+as well as the added graphic elements (text, arrow, \ldots). A drawer management menu 
+can be activated using {\tt $<$Alt$>$D}. This menu can be used to move and resize
+drawers, or to display a window for changing drawers graphic attributes. 
+\end{itemize}
 
 \par
@@ -411,10 +537,224 @@
 change view properties of differents viewers and drawers.
 \begin{itemize}
-\item[] PIDrawerTools (see page \myppageref{secdrwtools})
-\item[] PIAxesTools (see page \myppageref{secaxestools})
-\item[] PIImageTools (see page \myppageref{secimagetools})
-\item[] PIHisto2DTools (see page \myppageref{sech2dtools})
-\item[] PIContourTools (see page \myppageref{secconttools})
+\item[] {\bf PIDrawerTools} activated using {\tt $<$Alt$>$G} or 
+\menubar{Tools/Show DrawerTools} on any viewer (see page \myppageref{secdrwtools})
+\item[] {\bf PIAxesTools} activated using {\tt $<$Alt$>$A} or 
+\menubar{Tools/Show AxeTools} on PIScDrawWdg (see page \myppageref{secaxestools})
+\item[] {\bf PIImageTools} activated using {\tt $<$Alt$>$O} or 
+\menubar{Tools/Show ImageTools} on PIImage
+(see page \myppageref{secimagetools})
+\item[] {\bf PIHisto2DTools} activated using {\tt $<$Alt$>$O} or through the PIDrawerTools
+for an active PIHisto2D drawer. (see page \myppageref{sech2dtools})
+\item[] {\bf PIContourTools}  activated using {\tt $<$Alt$>$O} or through the PIDrawerTools
+for an active PIContourDrawer  drawer.  (see page \myppageref{secconttools})
 \end{itemize}
+These control tools are briefly described in appendix.
+
+%%%%%%%%%%
+\subsection{Graphic attributes}
+Graphic attributes are specified as a set of space separated strings. Use 
+quotes to group them into a single argument parsed by the command
+interpreter. The options are decoded by the different objects handling the 
+graphic (viewer widget, drawer, axe drawer). \\
+The complex decoding scheme 
+is usually transparent for piapp users. However, there is an ambiguity when 
+specifying some of the axes attributes, such as color or the font used for 
+drawing the axes. The command {\bf setaxesatt}  (\myppageref{setaxesatt})
+should thus be used to specify generic graphic attributes (color, font, line type). \\
+for axes. 
+\begin{itemize}
+\item[\bul]  The {\bf PIScDrawWdg} viewer options: \\
+\begin{verbatim}
+>> To define the 2D axes limits (in user coordinates)
+   xylimits=xmin,xmax,ymin,ymax  
+>>  To define the default drawing rectangle, in fraction of widget size
+  defdrrect=x1,x2,y1,y2  (default: x1=y1=0.1  x2=y2=0.9) 
+>> Axes flags :
+  linx  logx  liny logy 
+>> To change the background color (default=white)
+  wbgcol=colname
+  
+\end{verbatim}
+%%%
+\item[\bul]  The {\bf PIDraw3DWdg} viewer options: \\
+\begin{verbatim}
+>> To define the 3D box limits : 
+  xyzlimits=xmin,xmax,ymin,ymax,zmin,zmax
+  limit3dbox=xmin,xmax,ymin,ymax,zmin,zmax
+>> Autoscaling flags (rescaling of X/Y or X/Y/Z axes)
+  autoscale3dbox  / noautoscale3dbox
+  autoscalexy3dbox / noautoscalexy3dbox
+  autoscalez3dbox / noautoscalez3dbox
+>> To change the background color (default=white)
+  wbgcol=colname
+  
+\end{verbatim}
+%%%
+\item[\bul]  The {\bf PIImage} viewer options: \\
+\begin{verbatim}
+>> Define display zoomfactor 
+  zoomxFact     (zoomx2 zoomx3 ... zoomx9 ...)
+  zoom/Fact  (zoom/2 zoom/3 ... )
+>> LUT (look-up table) definition (pixel value to index conversion)
+  lut=type,min,max   (type=lin/log/sqrt/square)
+>> Define color table and reversing color indexing flag
+  ColTableName     revcmap
+  ==> Standard tables with 32 distinct colors:
+          grey32  invgrey32 colrj32  colbr32  colrv32  
+  ==> Standard tables with 128 distinct colors:
+          grey128  invgrey128  colrj128  colbr128
+  ==> Shades of red/green/blue ...
+           red32cm  green32cm  blue32cm  yellow32cm 
+           orange32cm cyan32cm violet32cm 
+  ==> Some of MIDAS color tables :
+          midas_pastel  midas_heat  midas_rainbow3
+          midas_bluered  midas_bluewhite  midas_stairs8
+          midas_stairs9 midas_staircase midas_color
+          midas_manycol  midas_idl14  midas_idl15
+  ==> Other tables
+          multicol16 multicol64
+>> Viewed center position (image/array coordinates)
+  imagecenter=xc,yc  
+>> Array axes to window axes mapping flags
+  invx  invy  exchxy 
+>> To change the background color (default=black)
+  wbgcol=colname
+  
+\end{verbatim}
+%%% 
+\item[\bul]  The {\bf PIGraphicAtt} Generic graphic attributes (color/font/line \ldots)
+decoded by all drawers: \\
+\begin{verbatim}
+>>> color=ColorName - fgcolor=ColorName - bgcolor=ColorName 
+   ColorName: black white grey red blue green yellow 
+              magenta cyan turquoise navyblue orange 
+              siennared purple  limegreen gold violet 
+              violetred blueviolet darkviolet skyblue 
+              royalblue forestgreen orangered brown 
+>>> line=DashType,LineWidth  
+   DashType: solid, dash, dotted, dashdotted   Width: 1,2,...
+>>> font=FontName,FontAtt,FontSize  
+   FontName: courier, helvetica, times, symbol   
+   FontAtt: roman, bold, italic, bolditalic  
+   FontSize: 6,8,10,12... (pts) - integer 
+>>> marker=MarkerType,MarkerSize (MarkerSize: integer 3,5,7... 
+   MarkerType: dot, plus, cross, circle, fcircle, box, fbox 
+               triangle, ftriangle, star, fstar 
+>>> arrow=ArrowType,ArrowSize (ArrowSize: integer 3,5,7... 
+   ArrowType: basic, triangle, ftriangle, 
+              arrowshaped, farrowshaped
+>>> ColorTables: defcmap  grey32  invgrey32  colrj32  colbr32 
+                grey128  invgrey128  colrj128  colbr128 
+                red32cm  green32cm  blue32cm  yellow32cm 
+                orange32cm cyan32cm violet32cm 
+                midas_pastel midas_heat midas_rainbow3 midas_bluered
+                midas_bluewhite midas_redwhite 
+                multicol16 multicol64
+>   revcmap : This flag reverses ColorMap indexing 
+------- Old style graphic att ---------- 
+>> Lines:  defline normalline thinline thickline dashedline thindashedline 
+           thickdashedline dottedline thindottedline thickdottedline 
+>> Font Att: deffontatt normalfont boldfont italicfont bolditalicfont  
+             smallfont smallboldfont smallitalicfont smallbolditalicfont 
+             bigfont bigboldfont bigitalicfont bigbolditalicfont 
+             hugefont  hugeboldfont hugeitalicfont hugebolditalicfont 
+>> Font Names: deffont courierfont helveticafont timesfont symbolfont  
+>> Marker: dotmarker<S>  plusmarker<S>  crossmarker<S> circlemarker <S> 
+           fcirclemarker<S> boxmarker<S> fboxmarker<S> trianglemarker<S> 
+           ftrianglemarker<S>  starmarker<S>  fstarmarker<S> 
+   with <S> = 1 3 5 7 9 , Example fboxmarker5 , plusmarker9 ... 
+   
+\end{verbatim}
+%%%%
+\item[\bul]  The {\bf PIElDrawer} decodes axe drawing attributes: \\
+\begin{verbatim}
+ >> Axe and grid configuration flags: 
+   axesnone  stdaxes defaxes 
+   boxaxes boxaxesgrid fineaxes fineaxesgrid 
+   centeredaxes finecenteredaxes centeredaxesgrid 
+   finecenteredaxesgrid  grid/nogrid 
+ >> Centered axes position: axescenter=xc,yc 
+ >> Axe ticks/labels (h=horizontal/x, v=vertical/y): 
+   labels/nolabels  hlabels/nohlabels vlabels/novlabels 
+   ticks/noticks minorticks/nominorticks 
+   extticks/intticks/extintticks nbticks=X_NbTicks,Y_NbTicks 
+   tickslen=MajorTickLenFrac,MinorTickLenFraC 
+ >> Axe label font size: 
+    autofontsize=FontSizeFrac fixedfontsize 
+ >> Up/Down title: title tit notitle notit 
+    ... Color/Font/line attributes : 
+    
+\end{verbatim}
+\item[\bul]  The {\bf PINTuple} handles most 2D plotting : \\
+\begin{verbatim}
+  sta,stat,stats:            activate   statistic display
+  nsta,nstat,nostat,nostats: deactivate statistic display
+  statposoff=OffsetX,OffsetY : Position offset for Stats drawing 
+      as a fraction of total size 
+  connectpoints: The points are connected by a line 
+  noconnectpoints (this is the default) 
+  colorscale/nocolorscale (Use color scale for weight) 
+  sizescale/sizescale=nbins/nosizescale (Use marker size for weight) 
+   (and usual color/line/marker/... attribute decoding)
+   
+\end{verbatim}
+%%%
+\item[\bul]  {\bf PIHisto} and {\bf PIHisto2D} handle1D and 2D histograms display. \\
+The following options are recognised by PIHisto: \\
+\begin{verbatim}
+  sta,stat,stats:            activate   statistic display
+  nsta,nstat,nostat,nostats: deactivate statistic display
+  err / noerr,nerr : draw, do not draw error bars
+  autoerr : draw error bars if Marker drawing requested OR Profile histo
+  fill / nofill,nfill : fill, do not fill bars with selected color
+  statposoff=OffsetX,OffsetY : Position offset for Stats drawing 
+       as a fraction of total size 
+\end{verbatim}
+The following options are recognised by PIHisto2D: \\
+\begin{verbatim}
+- sta,stat,stats:            activate   statistic display
+  nsta,nstat,nostat,nostats: deactivate statistic display
+- h2disp=typ[,fracpts]: choose display type
+    typ=var: variable size boxes
+    typ=hbk: "a la hbook2"
+    typ=img: image like (use "h2col" for color map)
+    typ=pts: point clouds (fracpts=max possible fraction
+             of used pixels per bin [0,1])
+- h2scale=lin/log[,logscale]: choose linear or logarithmic scale
+- h2dyn=[hmin][,hmax]: choose histogramme range for display
+- use general key to define color table (ex: grey32,midas_heat,...)
+            (see general graphicatt description)
+- use key "revcmap" to reverse color table
+- h2frac=[fmin][,fmax]: choose sub-range display [0,1]
+
+\end{verbatim}
+%%%%
+\item[\bul]  The {\bf PINTuple3D} and {\bf PISurfaceDrawer} 
+handles basic 3D plotting and can decode the common 3D box options: \\
+\begin{verbatim}
+  X/Y,Z axis rescaling option (-> cubic 3D box)  
+  rescale=autoscale/ norescale=noautoscale : X/Y and Z axis 
+  rescalexy=autoscalexy / norescalexy=noautoscalexy : X/Y  axis 
+  rescalexy=autoscalexy / norescalexy=noautoscalexy : Z axis 
+\end{verbatim}
+The  PINTuple3D decodes in addition the following options:
+\begin{verbatim}
+ connectpoints: The points are connected by a line 
+  noconnectpoints (this is the default) 
+  colorscale/nocolorscale (Use color scale for weight) 
+  sizescale/sizescale=nbins/nosizescale (Use marker size for weight) 
+  
+\end{verbatim}  
+\item[\bul]  {\bf PIBarGraph} options : \\
+\begin{verbatim}
+ ---- PIBarGraph options help info : 
+  fill/nofill: set bar fill option 
+  horizontalbars/verticalbars: set bar orientation 
+  packfrac=value : set bar packing fraction (0..1) 
+  barvaluelabel/nobarvaluelabel: Use/Don't use bar value as labels 
+ --- + Usual colr/line/font  attribute decoding ... 
+ \end{verbatim}
+\end{itemize}
+
 
 %%%%%%%%%%%%%%% Section 4 :   I/O
@@ -434,4 +774,5 @@
 \newpage
 \section{Tables and interactive analysis}
+\label{tableplot}
 
 %%%%%%%%%%%%%%% Section 6 :  command interpreter 
@@ -465,8 +806,8 @@
 An application level set of variables is also managed 
 by Commander, through redefinition of \\
-{\tt Commander::GetVarApp() / GetVarApp() \ldots } methods. 
+{\tt Commander::GetVarApp() / GetVarApp() \ldots } methods.  \\
 The {\bf PIACmd} in piapp redefines the {\tt GetVarApp() }
 in order to provide an easy access to some of objects attributes or methods, 
-managed by {\bf NamedObjMgr}.
+managed by {\bf NamedObjMgr} (See below).
 
 \begin{itemize}
@@ -526,16 +867,4 @@
 
 \par
-When brackets are used, the priority level between interpreter variables
-and application level variable is changed. If vname exist at the application level,
-{\tt \${vname} }  is replaced by its value, even if an interpreter variable with the 
-same name has been defined. For some classes managed by NamedObjMgr, 
-PIACmd provide acces to some of the attributes of the object by 
-{\tt \${objname.attname} }. This mechanism has been implemented in particular for
-TArrays, TMatrix/TVector, Histograms, NTuples and DataTables.
-\par
-Environment variables can simply be accessed by {\tt \$varenvname}. 
-However, env. variables have the lowest priority.
-Interpreter's variables have the highest priority in the substitution, followed 
-by the application level variables.
 
 \item[\rond] {\bf Special variables } 
@@ -548,6 +877,43 @@
 \item {\tt \$1 \$2 \$3} ....  : Arguments  (for scripts and .pic files (exec))
 \end{itemize}
+
+\item[\rond] {\bf Objects/Application level variables} \\
+For some classes managed by NamedObjMgr, 
+PIACmd provide acces to some of the attributes of the object by 
+{\tt \${objname.attname} }. This mechanism has been implemented in particular for
+TArrays, TMatrix/TVector, Histograms, NTuples and DataTables.
+In addition, when brackets  are used ($\${vname}$), the priority level between interpreter variables
+and application level variable is changed. If {\tt vname} exist at the application level,
+{\tt \${vname} }  is replaced by its value, even if an interpreter variable with the 
+same name has been defined. 
+\begin{verbatim}
+# -------- Example with a Vector
+piapp[1] newvec va 12 
+piapp[2] echo $va
+TVector<d>(12) (nr=12, nc=1) 
+# ------- An undefined attribute, such as ? might be 
+#           used to get list of valid attributes
+piapp[3] echo ${va.?}
+TMatrix.Att: rank size/nelts nrow/nrows ncol/ncols sum 
+#  Compound names, in the form  name.att must be inclosed in braces {name.att}
+piapp[4] echo ${va.size}
+12 
+# -------- Example with an histogram
+piapp[8] newh1d his 0. 20. 40
+piapp[10] echo ${his.?}
+Histo1D: nbin binw mean sigma over under nentries ndata 
+                 xmin xmax vmin vmax imin imax 
+piapp[11] echo ${his.nbin}
+40 
+\end{verbatim}
+
+\item[\rond] {\bf Environment variables} can simply be accessed by {\tt \$varenvname}. 
+However,  the environment variables have the lowest priority during substitution.
+Interpreter's variables have the highest priority, followed 
+by the application level variables.
+
 \end{itemize}
  
+
 \subsection{Control structures}
 
@@ -707,16 +1073,15 @@
 {\bf PIImage} (\myppageref{PIImage}). The PIDrawerTools can be activated
 either using {\tt Alt<G>} on a PIScDrawWdg,PIDraw3DWdg,PIImage, 
-or through the menu {\bf Tools/Show DrawerTools}.
-A given drawer can be selected through the DrawerId selector.
+or through the \menubar{Tools/Show DrawerTools}.
+A given drawer can be selected through the DrawerId selector (+ / - buttons)
 
 \vspace*{5mm}
 \begin{figure}[ht!]
 \begin{center}
-\includegraphics[width=7cm]{piapp_drwtools.eps}
+\includegraphics[width=8cm]{piapp_drwtools.eps}
 \caption{PIDrawerTools}
 \label{figdrwtools}
 \end{center}
 \end{figure}
-\newpage
 %%%%
 \subsection{AxesTools} \index{AxesTools}
@@ -727,5 +1092,5 @@
 The PIAxesTools can be activated
 either using {\tt Alt<A>} on a PIScDrawWdg or through 
-the menu {\bf Tools/Show AxesTools}.
+the \menubar{Tools/Show AxesTools}.
 
 \vspace*{5mm}
@@ -738,11 +1103,11 @@
 \end{figure}
 %%%%%
-\section{ImageTools} \index{ImageTools}
+\subsection{ImageTools} \index{ImageTools}
 \label{secimagetools}
 The {\bf PIImageTools}, shown in the figure \ref{figimgtools} can be used to 
 manipulate a display of type image. Image display are handled by the 
 {\bf PIImage} (\myppageref{PIImage}). The PIImageTools can be activated
-either using {\tt Alt<O>} on a PIImage, or through the menu 
-{\bf Tools/Show ImageTools}.
+either using {\tt Alt<O>} on a PIImage, or through the
+\menubar{Tools/Show ImageTools}.
 
 \vspace*{5mm}
