Index: /trunk/SophyaPI/PI/Makefile
===================================================================
--- /trunk/SophyaPI/PI/Makefile	(revision 166)
+++ /trunk/SophyaPI/PI/Makefile	(revision 167)
@@ -4,13 +4,12 @@
  
 all: $(LIB)libPI.a
-$(LIB)libPI.a : $(OBJ)lut.o $(OBJ)parradapter.o $(OBJ)pi3ddrw.o $(OBJ)piapplgen.o $(OBJ)piapplx.o $(OBJ)pibwdggen.o $(OBJ)pibwdgx.o $(OBJ)picmap.o $(OBJ)picmapgen.o $(OBJ)picmapview.o $(OBJ)picmapx.o $(OBJ)picons.o $(OBJ)picontainergen.o $(OBJ)picontainerx.o $(OBJ)pidrawer.o $(OBJ)pidrawwin.o $(OBJ)pidrwtools.o $(OBJ)pifilechogen.o $(OBJ)pifilechox.o $(OBJ)pigfd1.o $(OBJ)pigfd2.o $(OBJ)pigraph3d.o $(OBJ)pigraphgen.o $(OBJ)pigraphps.o $(OBJ)pigraphuc.o $(OBJ)pigraphx.o $(OBJ)pihisto.o $(OBJ)pihisto2d.o $(OBJ)piimage.o $(OBJ)piimgtools.o $(OBJ)piinit.o $(OBJ)pilistgen.o $(OBJ)pilistx.o $(OBJ)pimenubargen.o $(OBJ)pimenubarx.o $(OBJ)pimenugen.o $(OBJ)pimenux.o $(OBJ)pimsghandler.o $(OBJ)pintup3d.o $(OBJ)pintuple.o $(OBJ)pioptmenugen.o $(OBJ)pioptmenux.o $(OBJ)piperiodx.o $(OBJ)pipixmapgen.o $(OBJ)pipixmapx.o $(OBJ)pipodrw.o $(OBJ)piscdrawwdg.o $(OBJ)pistdwdggen.o $(OBJ)pistdwdgx.o $(OBJ)pistlist.o $(OBJ)pistzwin.o $(OBJ)pisurfdr.o $(OBJ)piup.o $(OBJ)piwdggen.o $(OBJ)piwdgx.o $(OBJ)piwindowgen.o $(OBJ)piwindowx.o $(OBJ)pixtbase.o $(OBJ)psfile.o
+$(LIB)libPI.a : $(OBJ)lut.o $(OBJ)parradapter.o $(OBJ)pi3ddrw.o $(OBJ)piapplgen.o $(OBJ)piapplx.o $(OBJ)pibwdggen.o $(OBJ)pibwdgx.o $(OBJ)picmap.o $(OBJ)picmapgen.o $(OBJ)picmapview.o $(OBJ)picmapx.o $(OBJ)picons.o $(OBJ)picontainergen.o $(OBJ)picontainerx.o $(OBJ)pidrawer.o $(OBJ)pidrawwin.o $(OBJ)pidrwtools.o $(OBJ)pifilechogen.o $(OBJ)pifilechox.o $(OBJ)pigraph3d.o $(OBJ)pigraphgen.o $(OBJ)pigraphps.o $(OBJ)pigraphuc.o $(OBJ)pigraphx.o $(OBJ)piimage.o $(OBJ)piimgtools.o $(OBJ)pilistgen.o $(OBJ)pilistx.o $(OBJ)pimenubargen.o $(OBJ)pimenubarx.o $(OBJ)pimenugen.o $(OBJ)pimenux.o $(OBJ)pimsghandler.o $(OBJ)pioptmenugen.o $(OBJ)pioptmenux.o $(OBJ)piperiodx.o $(OBJ)pipixmapgen.o $(OBJ)pipixmapx.o $(OBJ)piscdrawwdg.o $(OBJ)pistdwdggen.o $(OBJ)pistdwdgx.o $(OBJ)pistzwin.o $(OBJ)pisurfdr.o $(OBJ)piwdggen.o $(OBJ)piwdgx.o $(OBJ)piwindowgen.o $(OBJ)piwindowx.o $(OBJ)pixtbase.o $(OBJ)psfile.o
 	$(AR) $(ARFLAGS)  $@ $? 
 ifeq ($(CXX),cxx)
 	$(CXX) $? $(CPPFLAGS) $(CXXFLAGS) -L$(LIB) -lPI -lOutils++ -lImages++ -lStarReco++ -o $(OBJ)xx.x -Hf
-	$(AR) $(ARFLAGS)  $@ $(REPM)/*.o 
 endif 
  
 clean:
-	rm -f $(OBJ)lut.o $(OBJ)parradapter.o $(OBJ)pi3ddrw.o $(OBJ)piapplgen.o $(OBJ)piapplx.o $(OBJ)pibwdggen.o $(OBJ)pibwdgx.o $(OBJ)picmap.o $(OBJ)picmapgen.o $(OBJ)picmapview.o $(OBJ)picmapx.o $(OBJ)picons.o $(OBJ)picontainergen.o $(OBJ)picontainerx.o $(OBJ)pidrawer.o $(OBJ)pidrawwin.o $(OBJ)pidrwtools.o $(OBJ)pifilechogen.o $(OBJ)pifilechox.o $(OBJ)pigfd1.o $(OBJ)pigfd2.o $(OBJ)pigraph3d.o $(OBJ)pigraphgen.o $(OBJ)pigraphps.o $(OBJ)pigraphuc.o $(OBJ)pigraphx.o $(OBJ)pihisto.o $(OBJ)pihisto2d.o $(OBJ)piimage.o $(OBJ)piimgtools.o $(OBJ)piinit.o $(OBJ)pilistgen.o $(OBJ)pilistx.o $(OBJ)pimenubargen.o $(OBJ)pimenubarx.o $(OBJ)pimenugen.o $(OBJ)pimenux.o $(OBJ)pimsghandler.o $(OBJ)pintup3d.o $(OBJ)pintuple.o $(OBJ)pioptmenugen.o $(OBJ)pioptmenux.o $(OBJ)piperiodx.o $(OBJ)pipixmapgen.o $(OBJ)pipixmapx.o $(OBJ)pipodrw.o $(OBJ)piscdrawwdg.o $(OBJ)pistdwdggen.o $(OBJ)pistdwdgx.o $(OBJ)pistlist.o $(OBJ)pistzwin.o $(OBJ)pisurfdr.o $(OBJ)piup.o $(OBJ)piwdggen.o $(OBJ)piwdgx.o $(OBJ)piwindowgen.o $(OBJ)piwindowx.o $(OBJ)pixtbase.o $(OBJ)psfile.o
+	rm -f $(OBJ)lut.o $(OBJ)parradapter.o $(OBJ)pi3ddrw.o $(OBJ)piapplgen.o $(OBJ)piapplx.o $(OBJ)pibwdggen.o $(OBJ)pibwdgx.o $(OBJ)picmap.o $(OBJ)picmapgen.o $(OBJ)picmapview.o $(OBJ)picmapx.o $(OBJ)picons.o $(OBJ)picontainergen.o $(OBJ)picontainerx.o $(OBJ)pidrawer.o $(OBJ)pidrawwin.o $(OBJ)pidrwtools.o $(OBJ)pifilechogen.o $(OBJ)pifilechox.o $(OBJ)pigraph3d.o $(OBJ)pigraphgen.o $(OBJ)pigraphps.o $(OBJ)pigraphuc.o $(OBJ)pigraphx.o $(OBJ)piimage.o $(OBJ)piimgtools.o $(OBJ)pilistgen.o $(OBJ)pilistx.o $(OBJ)pimenubargen.o $(OBJ)pimenubarx.o $(OBJ)pimenugen.o $(OBJ)pimenux.o $(OBJ)pimsghandler.o $(OBJ)pioptmenugen.o $(OBJ)pioptmenux.o $(OBJ)piperiodx.o $(OBJ)pipixmapgen.o $(OBJ)pipixmapx.o $(OBJ)piscdrawwdg.o $(OBJ)pistdwdggen.o $(OBJ)pistdwdgx.o $(OBJ)pistzwin.o $(OBJ)pisurfdr.o $(OBJ)piwdggen.o $(OBJ)piwdgx.o $(OBJ)piwindowgen.o $(OBJ)piwindowx.o $(OBJ)pixtbase.o $(OBJ)psfile.o
 ifeq ($(CXX),cxx)
 	cd $(REPM); rm -f *.o
@@ -19,14 +18,14 @@
 $(OBJ)lut.o: lut.cc $(INC)defs.h lut.h
 $(OBJ)parradapter.o: parradapter.cc parradapter.h \
- $(INC)defs.h \
- $(INC)machine.h lut.h
+ $(INC)defs.h $(INC)machine.h \
+ lut.h
 $(OBJ)pi3ddrw.o: pi3ddrw.cc pi3ddrw.h pisysdep.h pidrawer.h pibwdggen.h \
  piwdgx.h piwdggen.h pimsghandler.h picmap.h picmapx.h picmapgen.h \
  pigraphx.h pigraphgen.h pigraphuc.h psfile.h \
- $(INC)defs.h pigraph3d.h pibwdgx.h \
- pigraphps.h pidrwtools.h pistdwdgx.h pistdwdggen.h pioptmenux.h \
- pioptmenugen.h pimenux.h pimenugen.h piwindowx.h piwindowgen.h \
- picontainerx.h picontainergen.h piapplx.h piapplgen.h pimenubarx.h \
- pimenubargen.h picons.h
+ $(INC)defs.h pigraph3d.h pibwdgx.h pigraphps.h \
+ pidrwtools.h pistdwdgx.h pistdwdggen.h pioptmenux.h pioptmenugen.h \
+ pimenux.h pimenugen.h piwindowx.h piwindowgen.h picontainerx.h \
+ picontainergen.h piapplx.h piapplgen.h pimenubarx.h pimenubargen.h \
+ picons.h
 $(OBJ)piapplgen.o: piapplgen.cc piapplgen.h pimsghandler.h pisysdep.h \
  picontainerx.h picontainergen.h piwdgx.h piwdggen.h pimenubarx.h \
@@ -71,12 +70,11 @@
 $(OBJ)pidrawer.o: pidrawer.cc pidrawer.h pibwdggen.h pisysdep.h piwdgx.h \
  piwdggen.h pimsghandler.h picmap.h picmapx.h picmapgen.h pigraphx.h \
- pigraphgen.h pigraphuc.h psfile.h \
- $(INC)defs.h
+ pigraphgen.h pigraphuc.h psfile.h $(INC)defs.h
 $(OBJ)pidrawwin.o: pidrawwin.cc pidrawwin.h pisysdep.h piwindowx.h \
  piwindowgen.h picontainerx.h picontainergen.h piwdgx.h piwdggen.h \
  pimsghandler.h piscdrawwdg.h pibwdgx.h pibwdggen.h picmap.h picmapx.h \
  picmapgen.h pigraphx.h pigraphgen.h pigraphuc.h psfile.h \
- $(INC)defs.h pigraphps.h pistdwdgx.h \
- pistdwdggen.h pidrawer.h
+ $(INC)defs.h pigraphps.h pistdwdgx.h pistdwdggen.h \
+ pidrawer.h
 $(OBJ)pidrwtools.o: pidrwtools.cc pidrwtools.h pisysdep.h pistdwdgx.h \
  pistdwdggen.h piwdgx.h piwdggen.h pimsghandler.h pioptmenux.h \
@@ -85,6 +83,7 @@
  pimenubargen.h picons.h pibwdgx.h pibwdggen.h picmap.h picmapx.h \
  picmapgen.h pigraphx.h pigraphgen.h pigraphuc.h psfile.h \
- $(INC)defs.h pigraphps.h piscdrawwdg.h \
- pidrawer.h pi3ddrw.h pigraph3d.h
+ $(INC)defs.h pigraphps.h piscdrawwdg.h pidrawer.h \
+ pi3ddrw.h pigraph3d.h
+$(OBJ)pievthandler.o: pievthandler.cc
 $(OBJ)pifilechogen.o: pifilechogen.cc pifilechogen.h pisysdep.h piwdgx.h \
  piwdggen.h pimsghandler.h
@@ -96,39 +95,4 @@
  $(INC)defs.h pigraphps.h pifilechox.h \
  pifilechogen.h piwindowx.h piwindowgen.h
-$(OBJ)pigfd1.o: pigfd1.cc pigfd1.h \
- $(INC)generaldata.h \
- $(INC)exceptions.h \
- $(INC)defs.h \
- $(INC)peidainit.h \
- $(INC)ppersist.h \
- $(INC)machine.h \
- $(INC)perrors.h \
- $(INC)pclassids.h \
- $(INC)poly.h \
- $(INC)peida.h \
- $(INC)utils.h \
- $(INC)fmath.h \
- $(INC)cvector.h \
- $(INC)matrix.h pidrawer.h pibwdggen.h \
- pisysdep.h piwdgx.h piwdggen.h pimsghandler.h picmap.h picmapx.h \
- picmapgen.h pigraphx.h pigraphgen.h pigraphuc.h psfile.h
-$(OBJ)pigfd2.o: pigfd2.cc pigfd2.h \
- $(INC)generaldata.h \
- $(INC)exceptions.h \
- $(INC)defs.h \
- $(INC)peidainit.h \
- $(INC)ppersist.h \
- $(INC)machine.h \
- $(INC)perrors.h \
- $(INC)pclassids.h \
- $(INC)poly.h \
- $(INC)peida.h \
- $(INC)utils.h \
- $(INC)fmath.h \
- $(INC)cvector.h \
- $(INC)matrix.h pi3ddrw.h pisysdep.h \
- pidrawer.h pibwdggen.h piwdgx.h piwdggen.h pimsghandler.h picmap.h \
- picmapx.h picmapgen.h pigraphx.h pigraphgen.h pigraphuc.h psfile.h \
- pigraph3d.h pibwdgx.h pigraphps.h
 $(OBJ)pigraph3d.o: pigraph3d.cc pigraph3d.h pisysdep.h pigraphuc.h \
  pigraphgen.h piwdgx.h piwdggen.h pimsghandler.h picmap.h picmapx.h \
@@ -143,50 +107,13 @@
 $(OBJ)pigraphx.o: pigraphx.cc pigraphx.h pisysdep.h pigraphgen.h piwdgx.h \
  piwdggen.h pimsghandler.h picmap.h picmapx.h picmapgen.h
-$(OBJ)pihisto.o: pihisto.cc pihisto.h $(INC)histos.h \
- $(INC)peida.h \
- $(INC)defs.h \
- $(INC)utils.h \
- $(INC)machine.h \
- $(INC)perrors.h \
- $(INC)exceptions.h \
- $(INC)peidainit.h \
- $(INC)fmath.h \
- $(INC)cvector.h \
- $(INC)matrix.h \
- $(INC)ppersist.h \
- $(INC)pclassids.h pidrawer.h pibwdggen.h \
- pisysdep.h piwdgx.h piwdggen.h pimsghandler.h picmap.h picmapx.h \
- picmapgen.h pigraphx.h pigraphgen.h pigraphuc.h psfile.h \
- $(INC)hisprof.h
-$(OBJ)pihisto2d.o: pihisto2d.cc piapplgen.h pimsghandler.h pisysdep.h \
- picontainerx.h picontainergen.h piwdgx.h piwdggen.h pimenubarx.h \
- pimenubargen.h pimenux.h pimenugen.h picons.h pistdwdgx.h \
- pistdwdggen.h pibwdgx.h pibwdggen.h picmap.h picmapx.h picmapgen.h \
- pigraphx.h pigraphgen.h pigraphuc.h psfile.h \
- $(INC)defs.h pigraphps.h pihisto2d.h \
- pioptmenux.h pioptmenugen.h $(INC)histos2.h \
- $(INC)peida.h \
- $(INC)utils.h \
- $(INC)machine.h \
- $(INC)perrors.h \
- $(INC)exceptions.h \
- $(INC)peidainit.h \
- $(INC)fmath.h \
- $(INC)histos.h \
- $(INC)cvector.h \
- $(INC)matrix.h \
- $(INC)ppersist.h \
- $(INC)pclassids.h piscdrawwdg.h piwindowx.h \
- piwindowgen.h pidrawer.h $(INC)nbrandom.h
 $(OBJ)piimage.o: piimage.cc piimage.h parradapter.h \
- $(INC)defs.h \
- $(INC)machine.h lut.h pisysdep.h pidrawer.h \
- pibwdggen.h piwdgx.h piwdggen.h pimsghandler.h picmap.h picmapx.h \
- picmapgen.h pigraphx.h pigraphgen.h pigraphuc.h psfile.h pipixmapx.h \
- pipixmapgen.h pibwdgx.h pigraphps.h pistdwdgx.h pistdwdggen.h \
- piwindowx.h piwindowgen.h picontainerx.h picontainergen.h \
- picmapview.h piimgtools.h pioptmenux.h pioptmenugen.h pimenux.h \
- pimenugen.h piapplx.h piapplgen.h pimenubarx.h pimenubargen.h \
- picons.h pidrwtools.h
+ $(INC)defs.h $(INC)machine.h \
+ lut.h pisysdep.h pidrawer.h pibwdggen.h piwdgx.h piwdggen.h \
+ pimsghandler.h picmap.h picmapx.h picmapgen.h pigraphx.h pigraphgen.h \
+ pigraphuc.h psfile.h pipixmapx.h pipixmapgen.h pibwdgx.h pigraphps.h \
+ pistdwdgx.h pistdwdggen.h piwindowx.h piwindowgen.h picontainerx.h \
+ picontainergen.h picmapview.h piimgtools.h pioptmenux.h \
+ pioptmenugen.h pimenux.h pimenugen.h piapplx.h piapplgen.h \
+ pimenubarx.h pimenubargen.h picons.h pidrwtools.h
 $(OBJ)piimgtools.o: piimgtools.cc piimgtools.h pisysdep.h pistdwdgx.h \
  pistdwdggen.h piwdgx.h piwdggen.h pimsghandler.h pioptmenux.h \
@@ -195,11 +122,7 @@
  pimenubargen.h picons.h pibwdgx.h pibwdggen.h picmap.h picmapx.h \
  picmapgen.h pigraphx.h pigraphgen.h pigraphuc.h psfile.h \
- $(INC)defs.h pigraphps.h piimage.h \
- parradapter.h $(INC)machine.h lut.h \
- pidrawer.h pipixmapx.h pipixmapgen.h picmapview.h
-$(OBJ)piinit.o: piinit.cc $(INC)defs.h piinit.h \
- $(INC)imaginit.h \
- $(INC)outilsinit.h \
- $(INC)peidainit.h
+ $(INC)defs.h pigraphps.h piimage.h parradapter.h \
+ $(INC)machine.h lut.h pidrawer.h pipixmapx.h \
+ pipixmapgen.h picmapview.h
 $(OBJ)pilistgen.o: pilistgen.cc pilistgen.h pisysdep.h piwdgx.h piwdggen.h \
  pimsghandler.h
@@ -223,29 +146,4 @@
  pimenugen.h piwdgx.h piwdggen.h pimsghandler.h
 $(OBJ)pimsghandler.o: pimsghandler.cc pimsghandler.h
-$(OBJ)pintup3d.o: pintup3d.cc pintup3d.h \
- $(INC)ntuple.h \
- $(INC)ppersist.h \
- $(INC)defs.h \
- $(INC)machine.h \
- $(INC)perrors.h \
- $(INC)exceptions.h \
- $(INC)peidainit.h \
- $(INC)pclassids.h \
- $(INC)dvlist.h pi3ddrw.h pisysdep.h \
- pidrawer.h pibwdggen.h piwdgx.h piwdggen.h pimsghandler.h picmap.h \
- picmapx.h picmapgen.h pigraphx.h pigraphgen.h pigraphuc.h psfile.h \
- pigraph3d.h pibwdgx.h pigraphps.h
-$(OBJ)pintuple.o: pintuple.cc pintuple.h \
- $(INC)ntuple.h \
- $(INC)ppersist.h \
- $(INC)defs.h \
- $(INC)machine.h \
- $(INC)perrors.h \
- $(INC)exceptions.h \
- $(INC)peidainit.h \
- $(INC)pclassids.h \
- $(INC)dvlist.h pidrawer.h pibwdggen.h \
- pisysdep.h piwdgx.h piwdggen.h pimsghandler.h picmap.h picmapx.h \
- picmapgen.h pigraphx.h pigraphgen.h pigraphuc.h psfile.h
 $(OBJ)pioptmenugen.o: pioptmenugen.cc pioptmenugen.h pisysdep.h pimenux.h \
  pimenugen.h piwdgx.h piwdggen.h pimsghandler.h
@@ -267,86 +165,16 @@
  picmapx.h picmapgen.h pigraphx.h pigraphgen.h pigraphuc.h psfile.h \
  $(INC)defs.h pigraphps.h
-$(OBJ)pipodrw.o: pipodrw.cc pipodrw.h pidrawer.h pibwdggen.h pisysdep.h \
- piwdgx.h piwdggen.h pimsghandler.h picmap.h picmapx.h picmapgen.h \
- pigraphx.h pigraphgen.h pigraphuc.h psfile.h \
- $(INC)defs.h parradapter.h \
- $(INC)machine.h lut.h \
- $(INC)cvector.h \
- $(INC)matrix.h \
- $(INC)peida.h \
- $(INC)utils.h \
- $(INC)perrors.h \
- $(INC)exceptions.h \
- $(INC)peidainit.h \
- $(INC)fmath.h \
- $(INC)ppersist.h \
- $(INC)pclassids.h \
- $(INC)histos2.h \
- $(INC)histos.h \
- $(INC)generalfit.h \
- $(INC)generaldata.h \
- $(INC)poly.h
 $(OBJ)piscdrawwdg.o: piscdrawwdg.cc piscdrawwdg.h pisysdep.h pibwdgx.h \
  pibwdggen.h piwdgx.h piwdggen.h pimsghandler.h picmap.h picmapx.h \
  picmapgen.h pigraphx.h pigraphgen.h pigraphuc.h psfile.h \
- $(INC)defs.h pigraphps.h pistdwdgx.h \
- pistdwdggen.h piwindowx.h piwindowgen.h picontainerx.h \
- picontainergen.h pidrawer.h pidrwtools.h pioptmenux.h pioptmenugen.h \
- pimenux.h pimenugen.h piapplx.h piapplgen.h pimenubarx.h \
- pimenubargen.h picons.h parradapter.h \
- $(INC)machine.h lut.h
+ $(INC)defs.h pigraphps.h pistdwdgx.h pistdwdggen.h \
+ piwindowx.h piwindowgen.h picontainerx.h picontainergen.h pidrawer.h \
+ pidrwtools.h pioptmenux.h pioptmenugen.h pimenux.h pimenugen.h \
+ piapplx.h piapplgen.h pimenubarx.h pimenubargen.h picons.h \
+ parradapter.h $(INC)machine.h lut.h
 $(OBJ)pistdwdggen.o: pistdwdggen.cc pistdwdggen.h pisysdep.h piwdgx.h \
  piwdggen.h pimsghandler.h
 $(OBJ)pistdwdgx.o: pistdwdgx.cc pisysdep.h pistdwdgx.h pistdwdggen.h \
  piwdgx.h piwdggen.h pimsghandler.h
-$(OBJ)pistlist.o: pistlist.cc pistlist.h \
- $(INC)stlist.h \
- $(INC)machine.h \
- $(INC)defs.h \
- $(INC)exceptions.h \
- $(INC)peidainit.h \
- $(INC)perrors.h \
- $(INC)dynccd.h \
- $(INC)ppersist.h \
- $(INC)pclassids.h \
- $(INC)star.h \
- $(INC)starmacro.h \
- $(INC)psf.h \
- $(INC)peida.h \
- $(INC)utils.h \
- $(INC)fmath.h \
- $(INC)cimage.h \
- $(INC)rzimage.h \
- $(INC)rzvect.h \
- $(INC)datatypes.h \
- $(INC)dvlist.h \
- $(INC)fct1dfit.h \
- $(INC)generalfit.h \
- $(INC)matrix.h \
- $(INC)cvector.h \
- $(INC)generaldata.h \
- $(INC)poly.h \
- $(INC)fct2dfit.h \
- $(INC)pixelmap.h \
- $(INC)transfo.h \
- $(INC)zfidu.h \
- $(INC)imgalig.h \
- $(INC)fitsimage.h \
- $(INC)fitsheader.h \
- $(INC)erosio.h \
- $(INC)fitskeys.h \
- $(INC)erostape.h \
- $(INC)strutil.h \
- $(INC)ptrarray.h \
- $(INC)voidptrarray.h \
- $(INC)basearray.h \
- $(INC)array.h \
- $(INC)lockfile.h \
- $(INC)erostarfile.h \
- $(INC)xstrstream.h \
- $(INC)dates.h \
- $(INC)tarlib.h pidrawer.h pibwdggen.h \
- pisysdep.h piwdgx.h piwdggen.h pimsghandler.h picmap.h picmapx.h \
- picmapgen.h pigraphx.h pigraphgen.h pigraphuc.h psfile.h
 $(OBJ)pistzwin.o: pistzwin.cc pistzwin.h pisysdep.h piwindowx.h \
  piwindowgen.h picontainerx.h picontainergen.h piwdgx.h piwdggen.h \
@@ -355,44 +183,8 @@
  picmapx.h picmapgen.h
 $(OBJ)pisurfdr.o: pisurfdr.cc pisurfdr.h parradapter.h \
- $(INC)defs.h \
- $(INC)machine.h lut.h pi3ddrw.h pisysdep.h \
- pidrawer.h pibwdggen.h piwdgx.h piwdggen.h pimsghandler.h picmap.h \
- picmapx.h picmapgen.h pigraphx.h pigraphgen.h pigraphuc.h psfile.h \
- pigraph3d.h pibwdgx.h pigraphps.h
-$(OBJ)piup.o: piup.cc $(INC)ctimer.h \
- $(INC)peida.h \
- $(INC)defs.h \
- $(INC)utils.h \
- $(INC)machine.h \
- $(INC)perrors.h \
- $(INC)exceptions.h \
- $(INC)peidainit.h \
- $(INC)fmath.h \
- $(INC)imageop.h \
- $(INC)cimage.h \
- $(INC)rzimage.h \
- $(INC)rzvect.h \
- $(INC)datatypes.h \
- $(INC)ppersist.h \
- $(INC)pclassids.h \
- $(INC)dvlist.h \
- $(INC)cspline.h \
- $(INC)cvector.h \
- $(INC)matrix.h \
- $(INC)fitsimage.h \
- $(INC)fitsheader.h \
- $(INC)erosio.h \
- $(INC)fitskeys.h \
- $(INC)erostape.h \
- $(INC)strutil.h \
- $(INC)ptrarray.h \
- $(INC)voidptrarray.h \
- $(INC)basearray.h \
- $(INC)array.h \
- $(INC)lockfile.h \
- $(INC)erostarfile.h \
- $(INC)xstrstream.h \
- $(INC)dates.h \
- $(INC)tarlib.h piup.h
+ $(INC)defs.h $(INC)machine.h \
+ lut.h pi3ddrw.h pisysdep.h pidrawer.h pibwdggen.h piwdgx.h piwdggen.h \
+ pimsghandler.h picmap.h picmapx.h picmapgen.h pigraphx.h pigraphgen.h \
+ pigraphuc.h psfile.h pigraph3d.h pibwdgx.h pigraphps.h
 $(OBJ)piwdggen.o: piwdggen.cc piwdggen.h pimsghandler.h picontainergen.h \
  pisysdep.h piwdgx.h psfile.h $(INC)defs.h \
Index: unk/SophyaPI/PI/ex_dessin.cc
===================================================================
--- /trunk/SophyaPI/PI/ex_dessin.cc	(revision 166)
+++ 	(revision )
@@ -1,166 +1,0 @@
-#include <stdio.h>
-#include <string.h>
-
-#include "ex_dessin.h"
-
-
-
-/* --Methode-- */
-ExBWdg::ExBWdg(PIContainerGen *par, char *nom,
-                       int sx, int sy, int px, int py) 
-: PIBaseWdg(par, nom, sx, sy, px, py)
-
-{
-mmrk = mfnt = nc = 0;
-strcpy(str, "Bonjour");
-for(int i=strlen(str); i<20; i++) str[i] = ' ';
-str[20] = '\0';
-
-ActivateKeyboard();
-ActivateButton(1);
-ActivateButton(2);
-ActivateButton(3);
-}
-
-
-/* --Methode-- */
-ExBWdg::~ExBWdg()
-{
-}
-
- 
-
-
-/* --Methode-- */
-void ExBWdg::Resize()
-{
-
-}
-
-
-/* --Methode-- */
-void ExBWdg::Draw(PIGraphicGen* g, int /*x0*/, int /*y0*/, int /*dx*/, int /*dy*/)
-{
-EraseWindow();
-g->SelLine(PI_NormalLine);
-g->DrawBox(10,10, XSize()-20, YSize()-20);
-
-g->SelLine(PI_ThinLine);
-g->DrawFBox(20, 20, 20, 20);
-g->DrawCircle(30, 30, 15);
-
-g->SelForeground(PI_Red);
-g->DrawFCircle(70, 30, 15);
-
-g->SelForeground(PI_Yellow);
-g->DrawFBox(10, 60, 100, 15);
-
-g->SelForeground(PI_Black);
-g->DrawString(20, 90, str);
-
-g->SelLine(PI_ThinLine);
-g->DrawLine(10, 120, 40, 120);
-g->SelLine(PI_NormalLine);
-g->DrawLine(40, 120, 70, 120);
-g->SelLine(PI_ThickLine);
-g->DrawLine(70, 120, 100, 120);
-
-g->SelForeground(PI_Magenta);
-g->DrawFCircle(120, 30, 15);
-g->SelForeground(PI_Grey);
-g->DrawFCircle(120, 60, 15);
-
-PIGrCoord x[5] = { 20, 35, 50, 65, 80 };
-PIGrCoord y[5] = { 130, 130, 130, 130, 130 };
-
-g->SelForeground(PI_Black);
-g->DrawMarkers(x, y, 5);
-return;
-}
-
-
-
-
-/* --Methode-- */
-void ExBWdg::But1Press(int x, int y)
-{
-SelPointerShape(PI_CrossPointer);
-return;
-}
-
-/* --Methode-- */
-void ExBWdg::But1Release(int x, int y)
-{
-SelPointerShape(PI_ArrowPointer);
-return;
-}
-
-/* --Methode-- */
-void ExBWdg::But2Press(int x, int y)
-{
-PIFontAtt att[3] = { PI_RomanFont, PI_BoldFont, PI_ItalicFont};
-PIMarker  pmk[9] = { PI_DotMarker , PI_PlusMarker, PI_CrossMarker,  
-                 PI_CircleMarker, PI_FCircleMarker,
-                 PI_BoxMarker, PI_FBoxMarker,
-                 PI_TriangleMarker, PI_FTriangleMarker };
-
-if (++mfnt > 2)  mfnt = 0;
-if (++mmrk > 8)  mmrk = 0; 
-mWGrC->SelFont(PI_NormalSizeFont, att[mfnt]);
-mWGrC->SelMarker(8, pmk[mmrk]);
-return;
-}
-
-/* --Methode-- */
-void ExBWdg::But2Release(int x, int y)
-{
-Refresh();
-return;
-}
-
-/* --Methode-- */
-void ExBWdg::But3Press(int x, int y)
-{
-SelPointerShape(PI_HandPointer);
-mWGrC->SelForeground(PI_Blue);
-mWGrC->DrawFBox(0, 0, 8, 8);
-return;
-}
-
-/* --Methode-- */
-void ExBWdg::But3Release(int x, int y)
-{
-mWGrC->SelForeground(PI_White);
-mWGrC->DrawFBox(0, 0, 8, 8);
-mWGrC->SelForeground(PI_Black);
-SelPointerShape(PI_ArrowPointer);
-return;
-}
-
-
-
-/* --Methode-- */
-void ExBWdg::Keyboard(int key, PIKeyModifier kmod)
-{
-char buf[4];
-str[nc] = key;
-if (++nc > 15)  nc = 0;
-buf[0] = key;  buf[1] = '\0';
-
-printf("ExBWdg::Keyboard: Key= %d (%c) , Mod= %d \n", key, (char)key, (int)kmod);
-mWGrC->SelFont(PI_BigSizeFont, PI_BoldFont);
-mWGrC->DrawString(20, 75, buf);
-
-if ( (kmod == PIKM_Alt) && (key == 'c') ) {
-  printf("ExBWdg::Keyboard: Test-Copy ... \n"); 
-  ClaimSelection();
-}
-if ( (kmod == PIKM_Alt) && (key == 'v') ) {
-  printf("ExBWdg::Keyboard: Test-Paste ... \n"); 
-  RequestSelection();
-}
-
-return;
-}
-
-
Index: unk/SophyaPI/PI/ex_dessin.h
===================================================================
--- /trunk/SophyaPI/PI/ex_dessin.h	(revision 166)
+++ 	(revision )
@@ -1,41 +1,0 @@
-/*  Exemple d'utilisation PIBaseWdg   */
-
-#ifndef EXBWDG_H_SEEN
-#define EXBWDG_H_SEEN
-
-#include "pisysdep.h"
-
-#include PIBWDG_H
-
-class ExBWdg : public PIBaseWdg
-{
-
-public:
-// Les methodes ...
-
-                  ExBWdg(PIContainerGen *par, char *nom,
-                         int sx=10, int sy=10, int px=0, int py=0);
-  virtual         ~ExBWdg();
-
-
-// Traitement des evenements   
-
-  virtual void   Resize();
-  virtual void   Draw(PIGraphic* g, int x0, int y0, int dx, int dy);
-
-  virtual void   But1Press(int x, int y);
-  virtual void   But1Release(int x, int y);
-  virtual void   But2Press(int x, int y);
-  virtual void   But2Release(int x, int y);
-  virtual void   But3Press(int x, int y);
-  virtual void   But3Release(int x, int y);
-  virtual void   Keyboard(int key, PIKeyModifier kmod);
-
-protected:
-  int mfnt, mmrk;
-  int nc;
-  char str[21];
-};
-
-
-#endif 
Index: unk/SophyaPI/PI/exapp_1.cc
===================================================================
--- /trunk/SophyaPI/PI/exapp_1.cc	(revision 166)
+++ 	(revision )
@@ -1,240 +1,0 @@
-#include <stdlib.h>
-#include <stdio.h>
-#include <string.h>
-
-#include "exapp_1.h"
-
-
-/* ........................................................... */
-/*                    Classe ArgsWindow  
-/* ........................................................... */
-
-
-/* --Methode-- */
-ArgsWind::ArgsWind(PIApplication *par)
-: PIWindow((PIMsgHandler *)par, "Args", PIWK_dialog, 100, 100, 150, 150)
-{
-int bsx, bsy;
-
-// On definit la taille a partir de la taille par defaut des composantes 
-PIApplicationPrefCompSize(bsx, bsy);
-// On redefinit la taille de la fenetre
-SetSize(bsx*7, bsy*6);
-
-// Creation de champs "labels"
-mLab[0] = new PILabel(this, "UserArg-1:", bsx*2, bsy, bsx/3, bsy/4); 
-mLab[1] = new PILabel(this, "UserArg-2", bsx*2, bsy, bsx/3, bsy/4 + (bsy/4+bsy) );
-mLab[2] = new PILabel(this, "UserArg-3", bsx*2, bsy, bsx/3, bsy/4 + 2*(bsy/4+bsy) );
-
-// Creation de champs textes 
-mText[0] = new PIText(this, "UsArg1", bsx*4, bsy, bsx*2+(bsx*2/3), bsy/4);
-mText[0]->SetText("Hello ");
-mText[1] = new PIText(this, "UsArg2", bsx*4, bsy, bsx*2+(bsx*2/3), bsy/4 + (bsy/4+bsy) );
-mText[1]->SetText("1. -1.");
-mText[2] = new PIText(this, "UsArg3", bsx*4, bsy, bsx*2+(bsx*2/3), bsy/4 + 2*(bsy/4+bsy) );
-mText[2]->SetText("1. -1.");
-
-// Creation de bouton d'action 
-//  Attention : Numero de message pour Process()
-mBut[0] = new PIButton(this, "OK",  555, bsx*2, bsy, bsx, 4.5*bsy);
-mBut[1] = new PIButton(this, "Cancel", 777, bsx*2, bsy, 4*bsx, 4.5*bsy);
-
-//  Taille et position proportionnelles a la taille de la fenetre pour les elements
-for(int i=0; i<3; i++) {
-  mLab[i]->SetBinding(PIBK_elastic , PIBK_elastic , PIBK_elastic , PIBK_elastic);
-  mText[i]->SetBinding(PIBK_elastic , PIBK_elastic , PIBK_elastic , PIBK_elastic);
-  }
-for(int i=0; i<2; i++) mBut[i]->SetBinding(PIBK_elastic , PIBK_elastic , PIBK_elastic , PIBK_elastic);
-
-}
-
-/* --Methode-- */
-ArgsWind::~ArgsWind()
-{
-for(int i=0; i<3; i++)
-  {
-  delete mLab[i];
-  delete mText[i];
-  }
-
-delete mBut[0]; 
-delete mBut[1]; 
-}
-
-/* --Methode-- */
-void ArgsWind::SetLabels(char *lab1, char *lab2, char *lab3)
-// Permet de changer les etiquettes (les label)
-{
-mLab[0]->SetLabel(lab1);
-mLab[1]->SetLabel(lab2);
-mLab[2]->SetLabel(lab3);
-}
-
-/* --Methode-- */
-void ArgsWind::SetTexts(char *tx1, char *tx2, char *tx3)
-// Permet de changer les contenu des champs texte
-{
-mText[0]->SetText(tx1);
-mText[1]->SetText(tx2);
-mText[2]->SetText(tx3);
-
-}
-
-/* --Methode-- */
-void ArgsWind::GetTexts(char *tx1, char *tx2, char *tx3)
-// Permet de recuperer les contenus des champs texte
-// ATTENTION : Il faut qu'il y ait assez de place 
-// ds tx1, tx2, tx3 pour que la fonction puisse y copier 
-// les chaines
-{
-strcpy(tx1, mText[0]->GetText().c_str());
-strcpy(tx2, mText[1]->GetText().c_str());
-strcpy(tx3, mText[2]->GetText().c_str());
-}
-
-/* --Methode-- */
-void ArgsWind::Process(PIMessage msg, PIMsgHandler* /*sender*/, void* /*data*/)
-{
-float xmin, xmax, ymin, ymax;
-float fmin, fmax;
-
-switch (UserMsg(msg))
-  {
-  case 777:   // Bouton cancel - On s'en va 
-    this->Hide();
-    break;
-
-  case 555:    // Bouton OK
-// On recupere les textes des 3 champs :
-    printf("ArgsWind::Process() Txt[0] = %s \n", mText[0]->GetText().c_str());
-    sscanf(mText[1]->GetText().c_str(),"%g %g", &xmin, &xmax);
-    printf("... XMin/Max= %g %g \n", xmin, xmax);
-    this->Hide();
-    break;    
-  }
-    
-return;
-}
-
-
-/* ........................................................... */
-/*                    Classe PITApp 
-/* ........................................................... */
-
-static void mypact(void *);
-
-/* --Methode-- */
-PITApp::PITApp(int narg, char* arg[])
-: PIApplication(270, 100, narg, arg), mPeriod(1)   // Periode de 1 seconde pour le "timer"
-{
-
-//  Menus, les numeros ds AppendItem sont les numeros de messages
-//  qui seront passes a Process() et permettent d'identifier l'action
-
-//  Creation du premier menu  
-//  Update :
-//  Mis a jour du Label se trouvant ds la fenetre principal avec l'heure
-//  Start, Stop :
-//  Demarrage et Arret d'une fonction Timer (PIPeriodic) pour 
-//  la mise a jour periodique de ce champ
-//  Exit : 
-//  Arret et sortie du programme
-
-m = new PIMenu(Menubar(),"Fichier");
-m->AppendItem("Update", 10101);
-m->AppendItem("Start", 10102);
-m->AppendItem("Stop", 10103);
-m->AppendItem("ArgsWindow", 10104);
-m->AppendItem("Exit", 10105);
-// On accroche le menu au Menubar
-AppendMenu(m);
-
-
-// Creation de deux labels - Un pour l'heure, l'autre pour X-Y 
-// de la fenetre histo
-lab = new PILabel(this->MainWin(), "time", 250, 50, 10, 10);
-
-mPeriod.SetAction(mypact);
-
-// Fenetre de dialogue
-mAW = new ArgsWind(this);
-SetReady();
-}
-
-/* --Methode-- */
-PITApp::~PITApp()
-{
-delete m; delete lab;
-delete mAW;
-}  
-
-/* --Methode-- */
-void PITApp::Process(PIMessage msg, PIMsgHandler* sender, void* /*data*/)
-{
-
-char strg[64];
-
-// Gestion des actions en fonctions des messages
-
-switch(UserMsg(msg))    {
-
-    case 10101:     // On met a l'heure
-      mypact(NULL);    
-      break;
-
-    case 10102:
-      mPeriod.Start();   // On demarre la montre 
-      break;
-
-    case 10103:
-      mPeriod.Stop();    // On arrete la montre 
-      break;
-
-    case 10104 :     // Apparition de la fenetre de dialogue
-      mAW->Show();
-      break;
-
-    case 10105:          // Sortie d'application
-      Stop();
-      break;
-
-    default :
-      printf("PITApp::Process() Msg= %d (%d - %d)??? \n", 
-            (int)msg, (int)UserMsg(msg),(int)ModMsg(msg));
-     break;
-    
-  }
-return;
-}
-
-static PITApp * app;
-
-/* Nouvelle-Fonction */
-void mypact(void *)
-// Fonction pour lire l'heure de la machine et mettre a jour le champ label
-{
-time_t tm;
-char *s;
-time(&tm);
-s = ctime(&tm);
-// printf("mypact_Info:  %d  (%s)", tm, s);
-app->lab->SetLabel((string)s);
-return;
-}
-
-// ................................................................
-//                   programme principal 
-// ................................................................
-
-int main(int narg, char *arg[])
-{
-//  Creation de l'objet application et appel de Run()
-app = new PITApp(narg, arg);
-puts("appel de Application.Run() ... ");
-app->Run();
-
-delete app;
-exit(0);
-}
-
-
Index: unk/SophyaPI/PI/exapp_1.h
===================================================================
--- /trunk/SophyaPI/PI/exapp_1.h	(revision 166)
+++ 	(revision )
@@ -1,38 +1,0 @@
-#include "pisysdep.h"
-
-#include PIAPP_H
-#include PIMENU_H 
-#include PISTDWDG_H 
-#include PIWIN_H
-#include PIPERIODIC_H
-
-class ArgsWind : public PIWindow {
-public :
-                ArgsWind(PIApplication *par);
-                ~ArgsWind();
-          void  SetLabels(char *lab1, char *lab2, char *lab3);
-          void  SetTexts(char *tx1, char *tx2, char *tx3);
-          void  GetTexts(char *tx1, char *tx2, char *tx3);
-  virtual void  Process(PIMessage msg, PIMsgHandler* sender, void* data=NULL);
-
-private:
-  PILabel  * mLab[3];
-  PIButton * mBut[2];
-  PIText * mText[3];
-  };
-
-class PITApp : public PIApplication {
-public:
-     PITApp(int narg=0, char* arg[]=NULL);
-     ~PITApp();
-     virtual void   Process(PIMessage msg, PIMsgHandler* sender, void* data=NULL);
-
-  PILabel *lab;
-
-private :
-  PIMenu * m;
-  PIPeriodX mPeriod;
-  ArgsWind *mAW;
-};
-
-
Index: /trunk/SophyaPI/PI/exclude
===================================================================
--- /trunk/SophyaPI/PI/exclude	(revision 166)
+++ /trunk/SophyaPI/PI/exclude	(revision 167)
@@ -23,9 +23,5 @@
 piupdattachment.cc
 pierrdisp.cc
-ex_dessin.cc
-sc_sample.cc
-exapp_1.cc
-exapp_2.cc
-pitestapp.cc
+piup.cc
 piup_def.cc
 xdispim.c
Index: /trunk/SophyaPI/PI/pievthandler.cc
===================================================================
--- /trunk/SophyaPI/PI/pievthandler.cc	(revision 167)
+++ /trunk/SophyaPI/PI/pievthandler.cc	(revision 167)
@@ -0,0 +1,4 @@
+// Module PI : Peida Interactive      PIEventHandler
+// Classe Gestionnaire d'evenements (Ecran/Clavier/Souris)
+//                                    Reza 11/98
+
Index: /trunk/SophyaPI/PI/pievthandler.h
===================================================================
--- /trunk/SophyaPI/PI/pievthandler.h	(revision 167)
+++ /trunk/SophyaPI/PI/pievthandler.h	(revision 167)
@@ -0,0 +1,18 @@
+// This may look like C code, but it is really -*- C++ -*-
+// Module PI : Peida Interactive      PIEventHandler
+// Classe Gestionnaire d'evenements (Ecran/Clavier/Souris) 
+//                                    Reza 11/98 
+
+#ifndef PIEVTHANDLER_H_SEEN
+#define PIEVTHANDLER_H_SEEN
+
+#include "pimsghandler.h"
+
+class PIEventHandler : public PIMsgHandler
+{
+public:
+};
+
+
+
+#endif  
Index: unk/SophyaPI/PI/pigfd1.cc
===================================================================
--- /trunk/SophyaPI/PI/pigfd1.cc	(revision 166)
+++ 	(revision )
@@ -1,77 +1,0 @@
-#include <stdio.h>
-#include "pigfd1.h"
-
- 
-/* --Methode-- */
-PIGenFitDat::PIGenFitDat(GeneralFitData* gfd, bool ad)
-: PIDrawer(), mGFD(gfd), mAdDO(ad), VarX(0), ErrX(false), ErrY(false)
-{
-SelectX(0);
-SelectErrBar(false,false);
-}
-
-PIGenFitDat::~PIGenFitDat()
-{
-if(mAdDO && mGFD)  delete mGFD;
-}
-
-/* --Methode-- */
-void  PIGenFitDat::SelectX(int varx)
-{
-VarX = -1;
-if(mGFD == NULL) return;
-if(varx<0 || varx>=mGFD->NVar()) return;
-VarX = varx;
-}
-
-/* --Methode-- */
-void  PIGenFitDat::SelectErrBar(bool erbx,bool erby)
-{
-ErrX = erbx; ErrY = erby;
-if(mGFD == NULL) {ErrX = ErrY = false; return;}
-if(!mGFD->HasXErrors()) ErrX = false;
-}
-
-/* --Methode-- */
-void PIGenFitDat::UpdateLimits()
-{
-if(!mGFD) return;
-if(mGFD->NData()<=0) return;
-if(VarX<0) return;
-double dx, dy;
-double xmin=9.e19, xmax=-9.e19, ymin=9.e19, ymax=-9.e19;
-mGFD->GetMinMax(10*VarX+2,xmin,xmax);
-mGFD->GetMinMax(0,ymin, ymax);
-if(xmax<=xmin) xmax = xmin+1.;
-if(ymax<=ymin) ymax = ymin+1.;
-dx = 0.02*(xmax-xmin);
-dy = 0.02*(ymax-ymin);
-SetLimits((float)xmin-dx,(float)xmax+dx,(float)ymin-dy,(float)ymax+dy);
-SetAxesFlags(kBoxAxes | kExtTicks | kLabels);
-}
-
-/* --Methode-- */
-void PIGenFitDat::Draw(PIGraphicUC* g, float xmin, float ymin, float xmax, float ymax)
-{
-if (!mGFD) return;
-if(mGFD->NData()<=0) return;
-if(VarX<0) return;
-// On plotte les barre d'erreurs ligne demandee explicitement
-if(mLAtt!=PI_NotDefLineAtt) SelectErrBar(true,true);
-float xp,yp,er;
-for (int i=0; i<mGFD->NData(); i++) {
-  xp = mGFD->Absc(VarX,i);
-  yp = mGFD->Val(i);
-  if(xp<xmin || xp>xmax || yp<ymin || yp>ymax)  continue;
-  if(ErrX) {
-    er = mGFD->EAbsc(VarX,i);
-    if(er>0.) g->DrawLine(xp-er,yp,xp+er,yp);
-  }
-  if(ErrY) {
-    er = mGFD->EVal(i);
-    if(er>0.) g->DrawLine(xp,yp-er,xp,yp+er);
-  }
-  g->DrawMarker(xp, yp); 
-}
-return;
-}
Index: unk/SophyaPI/PI/pigfd1.h
===================================================================
--- /trunk/SophyaPI/PI/pigfd1.h	(revision 166)
+++ 	(revision )
@@ -1,25 +1,0 @@
-#ifndef PIGFD1_H
-#define PIGFD1_H
-
-#include "generaldata.h"
-#include "pidrawer.h"
-
-class PIGenFitDat : public PIDrawer {
-public:
-                     PIGenFitDat(GeneralFitData* gfd, bool ad);
-  virtual           ~PIGenFitDat();
-  
-  virtual void       Draw(PIGraphicUC* g, float xmin, float ymin, float xmax, float ymax);
-  virtual void       UpdateLimits();
-  
-          void       SelectX(int varx);
-          void       SelectErrBar(bool erbx,bool erby);
-       
-protected:
-  GeneralFitData* mGFD;
-  bool mAdDO;
-  int VarX;          // numero de variable X ds le GeneralFitData
-  bool ErrX,ErrY;    // Erreur en X et Y ?
-};
-
-#endif
Index: unk/SophyaPI/PI/pigfd2.cc
===================================================================
--- /trunk/SophyaPI/PI/pigfd2.cc	(revision 166)
+++ 	(revision )
@@ -1,95 +1,0 @@
-#include <stdio.h>
-#include "pigfd2.h"
-
-/* --Methode-- */
-PIGenFitDat3D::PIGenFitDat3D(GeneralFitData* gfd, bool ad)
-: PIDrawer3D(), mGFD(gfd), mAdDO(ad)
-, VarX(0), VarY(1), ErrX(false), ErrY(false), ErrZ(false)
-{
-SelectXY(0,1);
-SelectErrBar(false,false,false);
-}
-
-PIGenFitDat3D::~PIGenFitDat3D()
-{
-if(mAdDO && mGFD)  delete mGFD;
-}
-
-/* --Methode-- */
-void  PIGenFitDat3D::SelectXY(int varx,int vary)
-{
-VarX = VarY = -1;
-if(mGFD == NULL) return;
-if(varx<0 || varx>=mGFD->NVar()) return;
-if(vary<0 || vary>=mGFD->NVar()) return;
-VarX = varx; VarY = vary;
-}
-
-/* --Methode-- */
-void  PIGenFitDat3D::SelectErrBar(bool erbx,bool erby,bool erbz)
-{
-ErrX = erbx; ErrY = erby; ErrZ = erbz;
-if(mGFD == NULL) {ErrX = ErrY = ErrZ = false; return;}
-if(!mGFD->HasXErrors()) ErrX = ErrY = false;
-}
-
-/* --Methode-- */
-void PIGenFitDat3D::UpdateLimits()
-{
-if(!mGFD) return;
-if(mGFD->NData()<=0) return;
-if(VarX<0 || VarY<0) return;
-double xmin=9.e19, xmax=-9.e19, ymin=9.e19, ymax=-9.e19, zmin=9.e19, zmax=-9.e19;
-mGFD->GetMinMax(10*VarX+2,xmin,xmax);
-mGFD->GetMinMax(10*VarY+2,ymin,ymax);
-mGFD->GetMinMax(0,zmin, zmax);
-if(xmax<=xmin) xmax = xmin+1.;
-if(ymax<=ymin) ymax = ymin+1.;
-if(zmax<=zmin) zmax = zmin+1.;
-// Voir commentaires pintuple3d.cc
-float D = xmax-xmin;
-if (D < (ymax-ymin))  D = ymax-ymin;
-D *= 1.4;
-Set3DView((xmin+xmax)/2., (ymin+ymax)/2, (zmin+zmax)/2., 
-          (xmin+xmax)/2.+D , (ymin+ymax)/2.+2.*D , zmin+(zmax-zmin)*0.2, 0.3, 0.3);  
-}
-
-/* --Methode-- */
-void PIGenFitDat3D::Draw(PIGraphicUC* g, float xmin, float ymin, float xmax, float ymax)
-{
-if (!mGFD) return;
-if(mGFD->NData()<=0) return;
-if(VarX<0 || VarY<0) return;
-// On plotte les barre d'erreurs ligne demandee explicitement
-if(mLAtt!=PI_NotDefLineAtt) SelectErrBar(true,true,true);
-
-#if defined(__DECCXX) || defined(__KCC__)
-PIGraphic3D* g3 = dynamic_cast<PIGraphic3D*>(g);
-#else
-PIGraphic3D* g3 = (PIGraphic3D*)(g);
-#endif
-
-if (mLAtt == PI_NotDefLineAtt)  g3->SelLine(PI_ThinLine);
-
-float xp,yp,zp,er;
-for (int i=0; i<mGFD->NData(); i++) {
-  xp = mGFD->Absc(VarX,i);
-  yp = mGFD->Absc(VarY,i);
-  zp = mGFD->Val(i);
-  if(ErrX) {
-    er = mGFD->EAbsc(VarX,i);
-    if(er>0.) g3->DrawLine3D(xp-er,yp,zp,xp+er,yp,zp);
-  }
-  if(ErrY) {
-    er = mGFD->EAbsc(VarY,i);
-    g3->DrawLine3D(xp,yp-er,zp,xp,yp+er,zp);
-  }
-  if(ErrZ) {
-    er = mGFD->EVal(i);
-    g3->DrawLine3D(xp,yp,zp-er,xp,yp,zp+er);
-  }
-  g3->DrawMarker3D(xp,yp,zp); 
-}
-
-return;
-}
Index: unk/SophyaPI/PI/pigfd2.h
===================================================================
--- /trunk/SophyaPI/PI/pigfd2.h	(revision 166)
+++ 	(revision )
@@ -1,26 +1,0 @@
-#ifndef PIGFD2_H
-#define PIGFD2_H
-
-#include "generaldata.h"
-#include "pi3ddrw.h"
-
-class PIGenFitDat3D : public PIDrawer3D {
-public:
-                     PIGenFitDat3D(GeneralFitData* gfd, bool ad);
-  virtual           ~PIGenFitDat3D();
-  
-  virtual void       Draw(PIGraphicUC* g, float xmin, float ymin, float xmax, float ymax);
-  virtual void       UpdateLimits();
-  
-          void       SelectXY(int varx,int vary);
-          void       SelectErrBar(bool erbx,bool erby,bool erbz);
-
-       
-protected:
-  GeneralFitData* mGFD;
-  bool mAdDO;
-  int VarX,VarY;         // numero de variable X,Y ds le GeneralFitData
-  bool ErrX,ErrY,ErrZ;   // Erreur en X,Y et Z?
-};
-
-#endif
Index: unk/SophyaPI/PI/pihisto.cc
===================================================================
--- /trunk/SophyaPI/PI/pihisto.cc	(revision 166)
+++ 	(revision )
@@ -1,114 +1,0 @@
-#include <stdio.h>
-#include "pihisto.h"
-#include "hisprof.h"
-
-PIHisto::PIHisto(Histo* histo, bool ad)
-: PIDrawer(), mHisto(histo)
-{
-  mAdDO = ad;     // Flag pour suppression automatique de mHisto
-}
-
-PIHisto::~PIHisto()
-{
-  if (mAdDO) delete mHisto;
-}
-
-void
-PIHisto::UpdateLimits()
-{
-  if (!mHisto)  return;
-  float hmin = mHisto->VMin();
-  float hmax = mHisto->VMax()+0.2*(mHisto->VMax()-mHisto->VMin());
-  // si HBProf min,max calcules en tenant compte des erreurs
-  if( mHisto->ClassId() == HProf::classId ) {
-    float v1,v2;
-    for (int i=1; i<mHisto->NBins(); i++) {
-      v1 = (*mHisto)(i) - mHisto->Error(i);
-      v2 = (*mHisto)(i) + mHisto->Error(i);
-      if(v1<hmin) hmin = v1;
-      if(v2>hmax) hmax = v2;
-    }
-    v1 = 0.1*(hmax-hmin);
-    hmin -= v1;   hmax += v1;
-  }
-  if(hmax<=hmin) hmax += 1.;
-  SetLimits(mHisto->XMin(), mHisto->XMax(), hmin, hmax);
-  SetAxesFlags(kBoxAxes | kExtTicks | kLabels);
-}
-
-void
-PIHisto::Draw(PIGraphicUC* g, float /*xmin*/, float /*ymin*/, float /*xmax*/, float /*ymax*/)
-{
-  bool oktrace = false;
-  if (!mHisto)  return;  
-  if (mMrk != PI_NotDefMarker || mHisto->ClassId() == HProf::classId ) {
-    // Marqeurs definis OU HBProf => marqueurs+Erreurs si il y en a
-    if (mLAtt == PI_NotDefLineAtt) g->SelLine(PI_ThinLine);
-    float x1,y1, x2,y2;
-    float bw = mHisto->BinWidth();
-    for (int i=0; i<mHisto->NBins(); i++) {
-      if(mHisto->Error(i)>0.) {
-        // barres d'erreur verticales
-        x1 = x2 = mHisto->BinCenter(i);
-        y1 = (*mHisto)(i) - mHisto->Error(i);
-        y2 = (*mHisto)(i) + mHisto->Error(i);
-        g->DrawLine(x1,y1, x1, y2);
-        // limites de barres d'erreurs (horizontales)
-        x1 -= bw/3.;  x2 += bw/3.;
-        g->DrawLine(x1,y1, x2, y1);
-        g->DrawLine(x1,y2, x2, y2);
-      }
-      // le marqueur
-      x1 = mHisto->BinCenter(i);
-      y1 = (*mHisto)(i);
-      g->DrawMarker(x1,y1);
-    }
-    oktrace = true;
-  }
-  if (mLAtt != PI_NotDefLineAtt) {
-    float x1,y1, x2, y2;
-    x1 = mHisto->BinLowEdge(0);
-    y1 = 0;
-    for (int i=0; i<mHisto->NBins(); i++) {
-      x2 = x1;
-      y2 = (*mHisto)(i);
-      g->DrawLine(x1,y1, x2, y2);
-      y1 = y2;
-      x2 = mHisto->BinHighEdge(i);
-      g->DrawLine(x1,y1, x2, y2);
-      x1 = x2;
-    }
-    y2 = 0; g->DrawLine(x1,y1, x2, y2);
-    oktrace = true;
-  }
-  if( !oktrace ) {
-    for(int i=0; i<mHisto->NBins(); i++) {
-      float left   = mHisto->BinLowEdge(i);
-      float width  = mHisto->BinWidth();
-      float bottom = 0;
-      float height = (*mHisto)(i);
-      g->DrawFBox(left,bottom,width,height);
-      g->DrawLine(left, bottom, left, bottom + height); // Au moins une ligne...
-    }
-  }
-  DrawStats(g);
-}
-
-void
-PIHisto::DrawStats(PIGraphicUC* g)
-{
-  if (!mHisto) return;
-  if (mLAtt == PI_NotDefLineAtt)  g->SelLine(PI_ThinLine);
-  float cellHeight = (YMax() - YMin()) * 0.05;
-  float cellWidth  = (XMax() - XMin()) * 0.23;
-  g->DrawLine(XMax() - cellWidth, YMax(),
-                       XMax() - cellWidth, YMax() - cellHeight);
-  g->DrawLine(XMax() - cellWidth, YMax() - cellHeight,
-                       XMax()            , YMax() - cellHeight);
-  char label[50];
-  sprintf(label, "N = %.6g", mHisto->NData());
-  g->SelFontSz((YMax() - YMin())/30);
-  g->DrawString(XMax() - cellWidth*0.9, YMax() - cellHeight*0.8, label);
-                       
-}
-
Index: unk/SophyaPI/PI/pihisto.h
===================================================================
--- /trunk/SophyaPI/PI/pihisto.h	(revision 166)
+++ 	(revision )
@@ -1,21 +1,0 @@
-#ifndef PIHISTO_H
-#define PIHISTO_H
-
-#include "histos.h"
-#include "pidrawer.h"
-
-class PIHisto : public PIDrawer {
-public:
-                     PIHisto(Histo* histo, bool ad=false);
-  virtual           ~PIHisto();
-  virtual void       Draw(PIGraphicUC* g, float xmin, float ymin, float xmax, float ymax);
-  virtual void       UpdateLimits();
-  virtual void       DrawStats(PIGraphicUC* g);
-  inline  Histo*     Histogram() { return(mHisto); }
-
-protected:
-  Histo* mHisto;
-  bool mAdDO;
-};
-
-#endif
Index: unk/SophyaPI/PI/pihisto2d.cc
===================================================================
--- /trunk/SophyaPI/PI/pihisto2d.cc	(revision 166)
+++ 	(revision )
@@ -1,757 +1,0 @@
-#include <stdio.h>
-#include "piapplgen.h"
-#include "pihisto2d.h"
-#include "nbrandom.h"
-
-static int dbg = 0;
-
-//++
-// Class	PIHisto2D,PIH2DWdg,H2WinArg
-// Lib	PI
-// include	pihisto2d.h
-//
-//	Classes de dessin des histogrammes a 2 dimensions.
-//--
-
-//++
-// Titre	Dessin d'un histogramme 2D.
-//--
-
-//++
-PIHisto2D::PIHisto2D(Histo2D* histo, bool ad)
-//
-//	Createur d'une classe de dessin pour l'histogramme 2D histo.
-//--
-: PIDrawer(), mHisto(histo)
-{
-mAdDO = ad;     // Flag pour suppression automatique de mHisto  
-
-mLogScale = 10.;
-mFPoints = 0.5;
-
-UseColors();
-UseDisplay();
-UseDyn();
-UseFrac();
-}
-
-//++
-PIHisto2D::~PIHisto2D()
-//
-//	Destructeur.
-//--
-{
-if(mAdDO) delete mHisto;
-}
-
-//++
-void PIHisto2D::UseColors(bool fg, CMapId cmap)
-//
-//	Choix de la couleur si fg=true
-//	(pour la couleur cmap cf picmap.h).
-//--
-{
-mFgCol = fg; mCmap = cmap;
-}
-
-//++
-void PIHisto2D::UseScale(unsigned short type,float logscale)
-//
-//	Pour changer les echelles.
-//| Type = 0 : echelle lineaire
-//|      = 1 : echelle log10
-//| - Explication du codage en type=1 (log10) :
-//|   1-/ map lineaire :
-//|       [0,1] -> [lmin,lmax]
-//|       f     -> F = lmin+f*(lmax-lmin)
-//|   2-/ transformation log10 :
-//|       [lmin,lmax] -> [log10(lmin),log10(lmax)]
-//|       F           -> LF = lg10(F)
-//|   3-/ rescaling entre 0 et 1 :
-//|       [log10(lmin),log10(lmax)] -> [0,1]
-//|       LF -> (LF-log10(lmin))/(log10(lmax)-log10(lmin))
-//|       soit en definissant logscale = lmax/lmin
-//|       LF = log10(1.+f*(logscale-1))/log10(logscale)
-//--
-{
-if(type==0) mTypScal = 0;
-if(type==1) {
-  mTypScal = 1;
-  if(logscale>1.) mLogScale = logscale;
-} else mTypScal = 0;
-}
-
-//++
-void PIHisto2D::UseDisplay(unsigned short type, float fnpt)
-//
-//	Type de Display
-//| Type = 0 : carres de tailles variables
-//| Type = 1 : nuages de points
-//|            Le nombre de points a utiliser est fnpt*N
-//|            ou N est le nombre de pixels ecran contenu
-//|            dans un bin de l'histogramme.
-//| Type = 2 : code a la "hbook2" " .+123...9AB...YZ*"
-//|            (cf detail PIHisto2D::HPrint2)
-//| Type = 3 : carres de tailles fixes (couleur).
-//--
-{
-if(fnpt<0.) fnpt=0; else if(fnpt>1.) fnpt=1.;
-if(type==0)        mTypDisp = 0;
-else if(type==1) { mTypDisp = 1; mFPoints = fnpt;}
-else if(type==2)   mTypDisp = 2;
-else if(type==3)   mTypDisp = 3;
-else               mTypDisp = 1;
-}
-
-//++
-void PIHisto2D::UseDyn(float hmin, float hmax)
-//
-//	Gestion de la dynamique a representer:
-//	la dynamique va etre transformee de [hmin,hmax] vers [0,1].
-//--
-{
-if(hmin>=hmax) {hmin = mHisto->VMin(); hmax = mHisto->VMax();}
-if(hmin>=hmax) hmax = hmin+1.;
-mHMin = hmin; mHMax = hmax;
-}
-
-//++
-void PIHisto2D::UseFrac(float frmin, float frmax)
-//
-//	Pour definir la fraction de la dynamique a dessiner:
-//| Certains type de display (f=[0,1] cf PIHisto2D::UseDyn),
-//|    - on ne dessine rien si f <= frmin
-//|    - on limite l'excursion a f*frmax cad [...,frmax]
-//--
-{
-if(frmax<=0. || frmax>1.) frmax = 1.;
-if(frmin>=frmax) {frmin=0.1; frmax=0.9;}
-mFracMin = frmin; mFracMax = frmax;
-}
-
-//++
-void PIHisto2D::Print(int lp)
-//
-//	Print de l'etat des options du display.
-//--
-{
-printf("PIHisto2D::Print FgCol=%d Cmap=%d TypScal=%d TypDisp=%d (FPoints=%g)\n"
-      ,(int)mFgCol,(int)mCmap,mTypScal,mTypDisp,mFPoints);
-printf("                 Dyn=%g,%g Frac=%g,%g LogSc=%g H=%lx\n"
-      ,mHMin,mHMax,mFracMin,mFracMax,mLogScale,(long)mHisto);
-if(lp<1) return;
-mHisto->PrintStatus();
-}
-
-//++
-void PIHisto2D::UpdateLimits()
-//
-//	Definition des tailles graphiques en fonction
-//	des caracteristiques de l'histogramme a dessiner.
-//--
-{
-  if(!mHisto) return;
-  SetLimits(mHisto->XMin(), mHisto->XMax(), mHisto->YMin() , mHisto->YMax());
-  SetAxesFlags(kBoxAxes | kExtTicks | kLabels);
-}
-
-//++
-void PIHisto2D::Draw(PIGraphicUC* g,float,float, float, float)
-//
-//	Dessin de l'histogramme.
-//--
-{
-if(!mHisto) return;
-// Caracteristiques histogramme
-float dx = mHisto->WBinX(),dy = mHisto->WBinY();
-float p1dx,p1dy;
-g->DGrC2UC(1.f,1.f,p1dx,p1dy);
-
-// Gamme a representer entre [0,1] mais >=fracmin et scale fracmax
-float fracmin=FMin(), fracmax=FMax();
-float llscale = (float) log10((double)LogScale());
-
-// gestion Couleurs.
-PIColorMap* cmap=NULL;
-PIColors coul = g->GetForeground();
-int ncol = 0;
-if (mFgCol) {
-  cmap = new PIColorMap(mCmap); ncol = cmap->NCol();
-  if(mTypDisp==3) fracmin=-1.;
-}
-
-// gestion epaisseur de ligne
-if (mLAtt == PI_NotDefLineAtt)  g->SelLine(PI_ThinLine);
-
-// gestion Markers ou plot avec des points.
-PIMarker Mk = g->GetMarker();
-int MkSz = g->GetMarkerSize();
-int npt = 1;
-if(mTypDisp==1) {
-  g->SelMarker(1,PI_DotMarker);
-  npt = (int) ((float)NPixBin(g)*FPoints()); if(npt<=0) npt = 2;
-}
-
-// gestion Font.
-PIFontAtt FontAtt = g->GetFontAtt();
-int FontSize = g->GetFontSize();
-if(mTypDisp==2) {
-  float dxg,dyg,dg;
-  g->DUC2GrC(dx,dy,dxg,dyg);
-  dg =(dxg<dyg) ? dxg : dyg;
-  int npix = (int) (dg*0.9); if(npix<8) npix = 8;
-  //printf("PIHisto2D::Draw_Font H dx=%g dy=%g, G dx=%g dy=%g, npix = %g,%d\n"
-  //      ,dx,dy,dxg,dyg,dg,npix);
-  g->SelFontSzPt(npix,PI_RomanFont);
-  fracmin = 0;
-}
-
-// Print();
-
-// Plot de l'histogramme
-for (int i=0; i<mHisto->NBinX(); i++)
-for (int j=0; j<mHisto->NBinY(); j++) {
-
-  float left0,bottom0;
-  mHisto->BinLowEdge(i,j,left0,bottom0);
-
-  // Gestion de la dynamique a dessiner
-  float frac = ((*mHisto)(i,j)-HMin())/(HMax()-HMin());
-  if(frac<0.) continue;
-  if(mTypScal==1) {              // echelle log10
-    frac = log10(1.+frac*(LogScale()-1.))/llscale;
-    if(frac<0.) continue;
-  }
-  if(frac<=fracmin) continue;
-  if(frac>1.) frac = 1.;
-  float fracred = frac * fracmax;
-
-  // Gestion de la couleur
-  int icol = 0;
-  if (cmap) {
-    icol = int( (float) ncol*frac );
-    if(icol>=ncol) icol = ncol-1; else if(icol<0) icol=0;
-    g->SelForeground(*cmap,icol);
-  }
-
-  // Dessin proprement dit selon le choix graphique.
-  if(mTypDisp==0) {
-    //..... carres de tailles variables
-    float left   = left0   + 0.5*(1.-fracred)*dx, width  = fracred*dx;
-    float bottom = bottom0 + 0.5*(1.-fracred)*dy, height = fracred*dy;
-    if (cmap) g->DrawFBox(left,bottom,width,height);
-    else      g->DrawBox(left,bottom,width,height);
-  } else if(mTypDisp==1) {
-    //..... nuage de points .....
-    int ipt  = int( (float) npt *frac );
-    for(int k=0;k<ipt;k++) {
-      float x = left0 + frand01()*dx;
-      float y = bottom0 + frand01()*dy;
-      g->DrawMarker(x,y);
-    }
-  } else if(mTypDisp==2) {
-    //..... type hbook2/hprint .+23-Z*
-    char c[2];
-    c[0] = HPrint2(frac); c[1]='\0';
-    float x = left0 + dx/2.;
-    float y = bottom0 + dy/2.;
-    g->DrawString(x,y,c);
-  } else if(mTypDisp==3) {
-    //..... carres de tailles fixes (avec gestion de continuite)
-    if (cmap) g->DrawFBox(left0,bottom0,dx+p1dx,dy+p1dy);
-    else      g->DrawBox(left0,bottom0,dx+p1dx,dy+p1dy);
-  }
-
-}
-
-// Remise dans les conditions ulterieures pour la suite du graphique.
-g->SelMarker(MkSz,Mk);
-g->SelForeground(coul);
-g->SelFontSzPt(FontSize,FontAtt);
-if (cmap) delete cmap;
-
-// Fin du dessin, ecriture de la statistique.
-DrawStats(g);
-}
-
-//++
-void PIHisto2D::DrawStats(PIGraphicUC* g)
-//
-//	Dessin des informations statistiques de l'histogramme.
-//--
-{
-  // Une boite dans le coin superieur droit
-  if (mLAtt == PI_NotDefLineAtt)  g->SelLine(PI_ThinLine);
-  float cellHeight = (YMax() - YMin()) * 0.05;
-  float cellWidth  = (XMax() - XMin()) * 0.23;
-  g->DrawLine(XMax() - cellWidth, YMax(),
-                       XMax() - cellWidth, YMax() - cellHeight);
-  g->DrawLine(XMax() - cellWidth, YMax() - cellHeight,
-                       XMax()            , YMax() - cellHeight);
-  char label[50];
-  sprintf(label, "N = %.6g", mHisto->NData());
-  g->SelFontSz((YMax() - YMin())/30);
-  g->DrawString(XMax() - cellWidth*0.9, YMax() - cellHeight*0.8, label);
-  printf("H[%d,%d] Dynamique: [%g,%g] Frac [%g,%g]\n"
-        ,mHisto->NBinX(),mHisto->NBinY(),HMin(),HMax(),FMin(),FMax());
-}
-
-//++
-char PIHisto2D::HPrint2(float f)
-//
-//	Codage des valeurs en caracteres (fct privee).
-//| f entre [0,1] mappee entre valeur=[0,37]
-//| si <0 alors =0, si >1 alors 1
-//| Display 4   ==> 4<=valeur<5
-//|         C   ==> 12<=valeur<13
-//|             ==> valeur<=0
-//|         *   ==> valeur>=1
-//|         .   ==> 0<valeur<1
-//|------------------------------------------
-//|            C1111111111222222222233333333
-//|  C01234567890123456789012345678901234567
-//| " .+23456789ABCDEFGHIJKLMNOPQRSTUVWXYZ*"
-//|------------------------------------------
-//--
-{
-char str[39] = " .+23456789ABCDEFGHIJKLMNOPQRSTUVWXYZ*";
-int i;
-if(f<=0.) i = 0;
-else if(f>=1.) i = 37;
-else { i = (int) (f*36.); i++;}
-if(i<0) i=0; else if (i>=38) i = 37;
-return str[i];
-}
-
-//++
-int PIHisto2D::NPixBin(PIGraphicUC* g)
-//
-//	Nombre de pixels ecran dans un bin d'histogramme
-//	(fct privee).
-//--
-{
-float dx = mHisto->WBinX(),dy = mHisto->WBinY();
-float dxg,dyg;
-g->DUC2GrC(dx,dy,dxg,dyg);
-int np = (int) dxg * (int) dyg;
-//printf("PIHisto2D::NPixBin H dx=%g dy=%g, G dx=%g dy=%g, np = %d\n"
-//      ,dx,dy,dxg,dyg,np);
-return np;
-}
-
-
-/////////////////////////////////////////////////////////////////
-//  Classe PIH2DWdg
-/////////////////////////////////////////////////////////////////
-//++
-// Titre	Widget de dessin d'un histogramme 2D.
-//--
-
-static H2WinArg* h2dWinArg=NULL;
-static int nb_h2dWinArg = 0;
-
-//++
-PIH2DWdg::PIH2DWdg(PIContainerGen *par, char *nom, int sx, int sy, int px, int py)
-//
-//	Createur d'un Widget de dessin d'histogramme 2D.
-//	Le menu pour choisir les options d'affichage apparait
-//	suite au clic du bouton-3 de la souris (cf H2WinArg::H2WinArg).
-//--
-: PIScDrawWdg(par,nom,sx,sy,px,py)
-{
-if (!h2dWinArg) h2dWinArg = new H2WinArg(this);
-nb_h2dWinArg++;
-if(dbg) printf("PIH2DWdg::PIH2DWdg %lx h2dWinArg=%lx %d\n"
-              ,(long)this,(long)h2dWinArg,nb_h2dWinArg);
-mPih = NULL;
-// Pour afficher le menu option de trace
-ActivateButton(3);
-}
-
-//++
-PIH2DWdg::~PIH2DWdg()
-//
-//	Destructeur.
-//--
-{
-nb_h2dWinArg--;
-if (nb_h2dWinArg == 0) {
-  h2dWinArg->Hide();
-  delete h2dWinArg;
-  h2dWinArg=NULL;
-}
-if(dbg) printf("PIH2DWdg::~PIH2DWdg h2dWinArg=%lx %d\n"
-              ,(long)h2dWinArg,nb_h2dWinArg);
-if (mPih) delete mPih;
-}
-
-//++
-void PIH2DWdg::SetHisto(Histo2D* histo)
-//
-//	Pour connecter un histogramme 2D au Widget.
-//--
-{
-if (!histo) return;
-if (mPih)  delete mPih;
-mPih = new PIHisto2D(histo, true);
-AddScDrawer(mPih);
-if(dbg) printf("PIH2DWdg::SetHisto mPih=%lx\n",(long)mPih);
-}
-
-//++
-void PIH2DWdg::SetPIHisto(PIHisto2D* pih2)
-//
-//	Pour connecter un traceur (Drawer) d'histo 2D au Widget.
-//--
-{
-if (!pih2) return;
-if (mPih)  delete mPih;
-mPih = pih2;
-AddScDrawer(mPih);
-if(dbg) printf("PIH2DWdg::SetPIHisto mPih=%lx\n",(long)mPih);
-}
-
-//++
-string  PIH2DWdg::GetClickText(float x, float y)
-//
-//	Quand on click (and drag) le bouton-1, affichage
-//	des positions x,y et de la valeur du bin de l'histogramme 2D.
-//--
-{
-int i,j;
-char str[128];
-
-if ((!mPih) || (!mPih->Histogram())) {
-  sprintf(str,"X=%g Y=%g ???",x,y);
-  return((string)str);
-}
-
-Histo2D* h = mPih->Histogram();
-
-h->FindBin(x,y,i,j);
-if(i<0 || i>=h->NBinX() || j<0 || j>=h->NBinY())
-  sprintf(str,"x= %g y= %g ???",x,y);
-else sprintf(str,"x= %g y= %g v= %g",x,y,(*h)(i,j));
-
-return((string)str);
-}
-
-//++
-void PIH2DWdg::But3Press(int x, int y)
-//
-//	Gestion de l'utilisation du bouton-3 de la souris.
-//	Un seul objet est cree pour tous les histogrammes 2D.
-//	Il est connecte a un histogramme donnee par l'action du
-//	du bouton-3 de la souris dans la fenetre contenant
-//	le dessin de l'histogramme (cf H2WinArg::H2WinArg).
-//--
-{
-h2dWinArg->SetPIH2DWdg(this);
-h2dWinArg->SetMsgParent((PIMsgHandler*)this);
-if(!h2dWinArg->Visible()) h2dWinArg->Show();
-if(dbg) printf("PIH2DWdg::But3Press(%d,%d) h2dWinArg=%lx\n"
-              ,x,y,(long)h2dWinArg);
-}
-
-
-/////////////////////////////////////////////////////////////////
-//  Classe H2WinArg
-/////////////////////////////////////////////////////////////////
-//++
-// Titre	Fenetre de dialogue pour le choix des options..
-//--
-
-//++
-H2WinArg::H2WinArg(PIH2DWdg *par)
-//
-//	Creation de la fenetre de gestion des parametres
-//	des dessins des histogrammes 2D. Cette fenetre de
-//	dialogue est partagee par tous les widget de dessin
-//	des histogrammes 2D. Pour la faire apparaitre pour la
-//	faire apparaitre la premiere fois, cliquez avec le bouton
-//	numero 3 de la souris (bouton de droite) dans la fenetre
-//	de dessin de l'histogramme. Si elle est deja presente,
-//	pour la connecter a une autre fenetre de dessin cliquez avec
-//	le meme bouton dans cette fenetre.
-//--
-//++
-//| - Menu 1: Choix du type de display
-//|     Carres variables, nuages de points, caracteres a la hbook2
-//|     et carres de tailles fixe (couleur ou niveauz de gris).
-//| - Menu 2: Choix du type d'echelle
-//|     Lineaire ou logarithmique
-//| - Menu 3: Choix de la couleur
-//|     noir et blanc, niveau de gris et couleurs diverses.
-//| - Champ texte Dyn: Pour donner la dynamique, si min>=max
-//|     alors prend le min et le max de l'histogramme
-//| - Champ texte Frac: fraction mini et maxi
-//|     (cf PIHisto2D::UseFrac)
-//| - Champ texte LogScal: niveau de scaling pour le choix d'une
-//|     echelle logarithmique (cf PIHisto2D::UseScale)
-//--
-//++
-//| - Curseur interactif PerPt: pourcentage de points a dessiner
-//|     dans chaque bin (cf PIHisto2D::UseDisplay)
-//| - Bouton Apply: dessiner avec les options affichees
-//| - Bouton Dismiss: fermeture de la fenetre de dialogue.
-//| - Bouton Get: re-prendre les valeurs de display stoquees
-//|     pour un histogramme donne.
-//| - Bouton Print: Imprimer les caracteristiques du display
-//|     et de l'histogramme.
-//--
-: PIWindow((PIMsgHandler *)par, "Options", PIWK_dialog,250,260,150,150)
-{
-string sdum;
-if(dbg) printf("H2WinArg::H2WinArg %lx par=%lx\n",(long)this,(long)par);
-
-mH2Wdg = NULL;
-
-// Valeurs par defaut
-mFgCol    = false;
-mCmap     = CMAP_GREYINV32;
-mTypScal  = 0;
-mTypDisp  = 0;
-mFPoints  = 0.5;
-mHMin     = 1.;
-mHMax     = -1.;
-mFracMin  = 0.1;
-mFracMax  = 0.9;
-mLogScale = 10.;
-
-// Taille automatique
-int bsx, bsy;
-PIApplicationPrefCompSize(bsx, bsy);  // environ 6 lettres
-int spx = (bsx>=10) ? bsx/10 : 1;  // intervalle entre lettres X
-int spy = (bsy>=5) ? bsy/5 : 1;    // intervalle entre lettres Y
-int wszx = 5*spx+bsx+int(2.5*bsx); // Taille fenetre en X
-int wszy = 11*spy+8.5*bsy;           // Taille fenetre en Y
-SetSize(wszx, wszy);
-
-// menus bar
-  int cpx = 2*spx, cpy = 2*spy;
-mOPop[0] = new PIOptMenu(this, "optmen-h2d-1" ,2*bsx,bsy,cpx,cpy);
-mOPop[0]->AppendItem("Carres Var."  , 6101);
-mOPop[0]->AppendItem("....."        , 6102);
-mOPop[0]->AppendItem(".+12..Z*"     , 6103);
-mOPop[0]->AppendItem("Carres Pleins", 6104);
-sdum = "Carres Var."; mOPop[0]->SetValueStr(sdum);
-mOPop[0]->SetBinding(PIBK_elastic,PIBK_elastic, PIBK_elastic,PIBK_elastic);
-
-  cpy += bsy+spy;
-mOPop[1] = new PIOptMenu(this, "optmen-h2d-2",2*bsx,bsy,cpx,cpy);
-mOPop[1]->AppendItem("Lineaire", 6201);
-mOPop[1]->AppendItem("Log10"   , 6202);
-sdum = "Lineaire"; mOPop[1]->SetValueStr(sdum);
-mOPop[1]->SetBinding(PIBK_elastic,PIBK_elastic, PIBK_elastic,PIBK_elastic);
-
-  cpy += bsy+spy;
-mOPop[2] = new PIOptMenu(this, "optmen-h2d-3",2*bsx,bsy,cpx,cpy);
-mOPop[2]->AppendItem("Black&White", 6301);
-mOPop[2]->AppendItem("Grey32"    , 6302);
-mOPop[2]->AppendItem("GreyInv32" , 6303);
-mOPop[2]->AppendItem("ColRJ32"   , 6304);
-mOPop[2]->AppendItem("ColBR32"   , 6305);
-mOPop[2]->AppendItem("ColRV32"   , 6306);
-mOPop[2]->AppendItem("Grey128"   , 6307);
-mOPop[2]->AppendItem("GreyInv128", 6308);
-mOPop[2]->AppendItem("ColRJ128"  , 6309);
-mOPop[2]->AppendItem("ColBR128"  , 6310);
-mOPop[2]->AppendItem("Col16"     , 6311);
-sdum = "Black&White"; mOPop[2]->SetValueStr(sdum);
-mOPop[2]->SetBinding(PIBK_elastic,PIBK_elastic, PIBK_elastic,PIBK_elastic);
-
-// Labels et zone de saisie texte
-  cpy += 2*(bsy+spy);
-mLab[0] = new PILabel(this, "     Dyn: ",bsx,bsy,cpx,cpy); 
-mLab[0]->SetBinding(PIBK_elastic,PIBK_elastic, PIBK_elastic,PIBK_elastic);
-mText[0] = new PIText(this, "Dynamique" ,int(2.5*bsx),bsy,cpx+bsx+spx,cpy);
-mText[0]->SetBinding(PIBK_elastic,PIBK_elastic, PIBK_elastic,PIBK_elastic);
-  cpy += bsy+spy;
-mLab[1] = new PILabel(this, "    Frac: ",bsx,bsy,cpx,cpy);
-mLab[1]->SetBinding(PIBK_elastic,PIBK_elastic, PIBK_elastic,PIBK_elastic);
-mText[1] = new PIText(this, "Fraction"  ,int(2.5*bsx),bsy,cpx+bsx+spx,cpy);
-mText[1]->SetBinding(PIBK_elastic,PIBK_elastic, PIBK_elastic,PIBK_elastic);
-  cpy += bsy+spy;
-mLab[2] = new PILabel(this, " LogScal: ",bsx,bsy,cpx,cpy);
-mLab[2]->SetBinding(PIBK_elastic,PIBK_elastic, PIBK_elastic,PIBK_elastic);
-mText[2] = new PIText(this, "LogScale"  ,int(2.5*bsx),bsy,cpx+bsx+spx,cpy);
-mText[2]->SetBinding(PIBK_elastic,PIBK_elastic, PIBK_elastic,PIBK_elastic);
-SetText();
-
-// Labels et curseur mobile
-cpy += bsy+spy;
-mLab[3] = new PILabel(this, "   PerPt: ",bsx,bsy,cpx,cpy+0.25*bsy);
-mLab[3]->SetBinding(PIBK_elastic,PIBK_elastic, PIBK_elastic,PIBK_elastic);
-mPScal = new PIScale(this,"FracPoints",6401,kSDirLtoR
-                        ,int(2.5*bsx),1.25*bsy,cpx+bsx+spx,cpy);
-mPScal->SetBinding(PIBK_elastic,PIBK_elastic, PIBK_elastic,PIBK_elastic);
-mPScal->SetMinMax(0,100);
-int imfp = mFPoints*100.f; mPScal->SetValue(imfp);
-
-// Boutons
-  cpx = 2*bsx+5*spx, cpy = 2*spy;
-mBut[0] = new PIButton(this, "Apply",  6001,bsx,bsy,cpx,cpy);
-mBut[0]->SetBinding(PIBK_elastic,PIBK_elastic, PIBK_elastic,PIBK_elastic);
-  cpy += bsy+spy;
-mBut[1] = new PIButton(this, "Dismiss",6002,bsx,bsy,cpx,cpy);
-mBut[1]->SetBinding(PIBK_elastic,PIBK_elastic, PIBK_elastic,PIBK_elastic);
-  cpy += bsy+spy;
-mBut[2] = new PIButton(this, "Get"  ,  6003,bsx,bsy,cpx,cpy);
-mBut[2]->SetBinding(PIBK_elastic,PIBK_elastic, PIBK_elastic,PIBK_elastic);
-  cpy += bsy+spy;
-mBut[3] = new PIButton(this, "Print",  6004,bsx,bsy,cpx,cpy);
-mBut[3]->SetBinding(PIBK_elastic,PIBK_elastic, PIBK_elastic,PIBK_elastic);
-// FinishCreate();
-}
-
-//++
-H2WinArg::~H2WinArg()
-//
-//	Destructeur.
-//--
-{
-int i;
-if(dbg) printf("H2WinArg::~H2WinArg %lx\n",(long)this);
-for(i=0;i<3;i++) delete mOPop[i];
-for(i=0;i<4;i++) delete mBut[i];
-for(i=0;i<4;i++) delete mLab[i];
-for(i=0;i<3;i++) delete mText[i];
-delete mPScal;
-}
-
-//++
-void H2WinArg::SetText()
-//
-//	Gestion des fenetres de saisie de texte.
-//--
-{
-string sdum;
-char str[256];
-sprintf(str,"%g %g",mHMin,mHMax);
-mText[0]->SetText(str);
-sprintf(str,"%g %g",mFracMin,mFracMax);
-mText[1]->SetText(str);
-sprintf(str,"%g",mLogScale);
-mText[2]->SetText(str);
-
-if(mTypDisp==0)      { sdum="Carres Var.";   mOPop[0]->SetValueStr(sdum);}
-else if(mTypDisp==1) { sdum=".....";         mOPop[0]->SetValueStr(sdum);}
-else if(mTypDisp==2) { sdum=".+12..Z*";      mOPop[0]->SetValueStr(sdum);}
-else if(mTypDisp==3) { sdum="Carres Pleins"; mOPop[0]->SetValueStr(sdum);}
-
-if(mTypScal==0)      { sdum="Lineaire"; mOPop[1]->SetValueStr(sdum);}
-else if(mTypScal==1) { sdum="Log10";    mOPop[1]->SetValueStr(sdum);}
-
-if(!mFgCol)                       { sdum="Black&White";mOPop[2]->SetValueStr(sdum);}
-else {
-  if(mCmap==CMAP_GREY32)          { sdum="Grey32";     mOPop[2]->SetValueStr(sdum);}
-  else if(mCmap==CMAP_GREYINV32)  { sdum="GreyInv32";  mOPop[2]->SetValueStr(sdum);}
-  else if(mCmap==CMAP_COLRJ32)    { sdum="ColRJ32";    mOPop[2]->SetValueStr(sdum);}
-  else if(mCmap==CMAP_COLBR32)    { sdum="ColBR32";    mOPop[2]->SetValueStr(sdum);}
-  else if(mCmap==CMAP_COLRV32)    { sdum="ColRV32";    mOPop[2]->SetValueStr(sdum);}
-  else if(mCmap==CMAP_GREY128)    { sdum="Grey128";    mOPop[2]->SetValueStr(sdum);}
-  else if(mCmap==CMAP_GREYINV128) { sdum="GreyInv128"; mOPop[2]->SetValueStr(sdum);}
-  else if(mCmap==CMAP_COLRJ128)   { sdum="ColRJ128";   mOPop[2]->SetValueStr(sdum);}
-  else if(mCmap==CMAP_COLBR128)   { sdum="ColBR128";   mOPop[2]->SetValueStr(sdum);}
-  else if(mCmap==CMAP_COL16)      { sdum="Col16";      mOPop[2]->SetValueStr(sdum);}
-}
-
-if(dbg)printf("H2WinArg::SetText\n");
-}
-
-//++
-void H2WinArg::GetText()
-//
-//	Gestion des fenetres de saisie de texte.
-//--
-{
-sscanf(mText[0]->GetText().c_str(),"%g %g",&mHMin,&mHMax);
-sscanf(mText[1]->GetText().c_str(),"%g %g",&mFracMin,&mFracMax);
-sscanf(mText[2]->GetText().c_str(),"%g",&mLogScale);
-if(dbg) printf("H2WinArg::GetText\n");
-}
-
-//++
-void H2WinArg::SetPIH2DWdg(PIH2DWdg* h2wdg)
-//
-//	Connexion du widget de representation d'un histogramme 2D
-//	avec la fenetre de gestion des parametres.
-//--
-{
-mH2Wdg = h2wdg;
-if(dbg) printf("H2WinArg::SetPIH2DWdg mH2Wdg = %lx\n",(long)mH2Wdg);
-}
-
-//++
-void H2WinArg::Process(PIMessage msg, PIMsgHandler* sender, void*)
-//
-//	Gestions des messages.
-//--
-{
-if(dbg) printf("PIH2DWdg::Process(%d-%d , %lx ...) \n"
-              ,(int)UserMsg(msg),(int)ModMsg(msg), (long)sender);
-
-if(!mH2Wdg) return;
-PIHisto2D* mpih = mH2Wdg->GetPIHisto();
-if(!mpih) return;
-
-int opt = UserMsg(msg);
-     if (opt == 6101) { mTypDisp = 0; }
-else if (opt == 6102) { mTypDisp = 1; }
-else if (opt == 6103) { mTypDisp = 2; }
-else if (opt == 6104) { mTypDisp = 3; }
-
-else if (opt == 6201) { mTypScal = 0; }
-else if (opt == 6202) { mTypScal = 1; }
-
-else if (opt == 6301) { mFgCol = false; }
-else if (opt == 6302) { mFgCol = true;  mCmap = CMAP_GREY32; }
-else if (opt == 6303) { mFgCol = true;  mCmap = CMAP_GREYINV32; }
-else if (opt == 6304) { mFgCol = true;  mCmap = CMAP_COLRJ32; }
-else if (opt == 6305) { mFgCol = true;  mCmap = CMAP_COLBR32; }
-else if (opt == 6306) { mFgCol = true;  mCmap = CMAP_COLRV32; }
-else if (opt == 6307) { mFgCol = true;  mCmap = CMAP_GREY128; }
-else if (opt == 6308) { mFgCol = true;  mCmap = CMAP_GREYINV128; }
-else if (opt == 6309) { mFgCol = true;  mCmap = CMAP_COLRJ128; }
-else if (opt == 6310) { mFgCol = true;  mCmap = CMAP_COLBR128; }
-else if (opt == 6311) { mFgCol = true;  mCmap = CMAP_COL16; }
-
-else if (opt == 6401) mFPoints = mPScal->GetValue()/100.;
-
-else if (opt==6001) {
-  GetText();
-  mpih->UseColors(mFgCol, mCmap);
-  mpih->UseScale(mTypScal,mLogScale);
-  mpih->UseDisplay(mTypDisp,mFPoints);
-  mpih->UseDyn(mHMin,mHMax);
-  mpih->UseFrac(mFracMin,mFracMax);
-  mH2Wdg->Refresh();  // On rafraichit le dessin (tout le PIScDrawWdg)
-}
-else if (opt==6002) {
-  this->Hide();
-}
-else if (opt==6003) {
-  mFgCol    = mpih->Color();
-  mCmap     = mpih->ColMap();
-  mTypScal  = mpih->TypScale();
-  mTypDisp  = mpih->TypDisplay();
-  mFPoints  = mpih->FPoints();
-  mHMin     = mpih->HMin();
-  mHMax     = mpih->HMax();
-  mFracMin  = mpih->FMin();
-  mFracMax  = mpih->FMax();
-  mLogScale = mpih->LogScale();
-  SetText();
-}
-else if (opt==6004) {
-  mpih->Print(2);
-}
-
-if(dbg) {
-  printf("H2WinArg::Process opt=%d col=%d,%d scal=%d disp=%d npt=%g\n"
-        ,opt,(int) mFgCol,(int) mCmap,mTypScal,mTypDisp,mFPoints);
-  printf("                  min,max= %g,%g frac= %g,%g logsc= %g\n"
-        ,mHMin,mHMax,mFracMin,mFracMax,mLogScale);
-}
-
-}
Index: unk/SophyaPI/PI/pihisto2d.h
===================================================================
--- /trunk/SophyaPI/PI/pihisto2d.h	(revision 166)
+++ 	(revision )
@@ -1,103 +1,0 @@
-#ifndef PIHISTO2D_H
-#define PIHISTO2D_H
-
-#include "pisysdep.h"
-#include PIMENU_H 
-#include PIMENUBAR_H 
-#include PIOPTMENU_H
-
-#include "histos2.h"
-#include "piscdrawwdg.h"
-
-////////////////////////////////////////////////////////////////////
-class PIHisto2D : public PIDrawer {
-public:
-                     PIHisto2D(Histo2D* histo, bool ad=false);
-  virtual            ~PIHisto2D();
-          void       UseColors(bool fg=false, CMapId cmap=CMAP_GREYINV32);
-          void       UseScale(unsigned short type=0,float logscale=10.);
-          void       UseDisplay(unsigned short type=0, float fnpt=0.5);
-          void       UseDyn(float hmin=1., float hmax=-1.);
-          void       UseFrac(float frmin=0.1, float frmax=0.9);
-          void       Print(int lp=0);
-  virtual void       Draw(PIGraphicUC* g,float xmin,float ymin,float xmax,float ymax);
-  virtual void       UpdateLimits();
-  virtual void       DrawStats(PIGraphicUC* g);
-
-  inline Histo2D*       Histogram() { return(mHisto); }
-  inline bool           Color() { return(mFgCol); }
-  inline CMapId         ColMap() { return(mCmap); }
-  inline unsigned short TypScale() { return(mTypScal); }
-  inline unsigned short TypDisplay() { return(mTypDisp); }
-  inline float          FPoints() { return(mFPoints); }
-  inline float          HMax() { return(mHMax);}
-  inline float          HMin() { return(mHMin);}
-  inline float          FMax() { return(mFracMax);}
-  inline float          FMin() { return(mFracMin);}
-  inline float          LogScale() { return(mLogScale);}
-
-protected:
-  int NPixBin(PIGraphicUC* g);
-  char HPrint2(float f);
-
-  Histo2D* mHisto;
-  bool mAdDO;
-  bool mFgCol;
-  CMapId mCmap;
-  unsigned short mTypScal;
-  unsigned short mTypDisp;
-  float mFPoints;
-  float mHMin,mHMax;
-  float mFracMin,mFracMax;
-  float mLogScale;
-};
-
-////////////////////////////////////////////////////////////////////
-class PIH2DWdg : public PIScDrawWdg {
-public:
-                     PIH2DWdg(PIContainerGen *par, char *nom, int sx=300, int sy=300, 
-                              int px=0, int py=0);
-                     ~PIH2DWdg();
-
-  void               SetHisto(Histo2D* histo);
-  void               SetPIHisto(PIHisto2D* pih2);
-  inline PIHisto2D*  GetPIHisto() {return mPih;}
-
-  virtual string     GetClickText(float x, float y); 
-  virtual void       But3Press(int x, int y);
-
-protected:
-  PIHisto2D*  mPih;
-
-};
-
-////////////////////////////////////////////////////////////////////
-class H2WinArg : public PIWindow {
-public :
-               H2WinArg(PIH2DWdg *par);
-               ~H2WinArg();
-          void SetPIH2DWdg(PIH2DWdg* h2wdg);
-          void SetText();
-          void GetText();
-  virtual void Process(PIMessage msg, PIMsgHandler* sender, void* data=NULL);
-
-protected:
-  PIH2DWdg  * mH2Wdg;
-
-  PIOptMenu * mOPop[3];
-  PIButton  * mBut[4];
-  PILabel   * mLab[4];
-  PIText    * mText[3];
-  PIScale   * mPScal;
-
-  bool mFgCol;
-  CMapId mCmap;
-  unsigned short mTypScal;
-  unsigned short mTypDisp;
-  float mFPoints;
-  float mHMin,mHMax;
-  float mFracMin,mFracMax;
-  float mLogScale;
-};
-
-#endif
Index: unk/SophyaPI/PI/piinit.cc
===================================================================
--- /trunk/SophyaPI/PI/piinit.cc	(revision 166)
+++ 	(revision )
@@ -1,25 +1,0 @@
-#include "defs.h"
-#include "piinit.h"
-
-
-int PeidaInteractiveInitiator::FgInit = 0;
-
-PeidaInteractiveInitiator::PeidaInteractiveInitiator()
- : PeidaImagesInitiator()
-{
-  FgInit++;
-  if (FgInit > 1)  return;
-  
-} 
-
-PeidaInteractiveInitiator::~PeidaInteractiveInitiator()
-{
-  FgInit--;
-/*  if (FgInit == 0)
-    {
-    }  */
-}
-
-// On met un objet initiator en statique, pour les loaders qui savent 
-// appeler le constructeur des objets statiques   Reza 08/98
-static PeidaInteractiveInitiator  pinteractivexxinit;
Index: unk/SophyaPI/PI/piinit.h
===================================================================
--- /trunk/SophyaPI/PI/piinit.h	(revision 166)
+++ 	(revision )
@@ -1,19 +1,0 @@
-#ifndef PIINIT_H_SEEN
-#define PIINIT_H_SEEN
-
-#include "imaginit.h"
-
-// Classe d'initialisation pour le module PI de PEIDA
-
-class PeidaInteractiveInitiator : public PeidaImagesInitiator{
-private:
-  static int FgInit;
-public:
-  		PeidaInteractiveInitiator();
- virtual	~PeidaInteractiveInitiator();
-};
-
-#undef PeidaInit
-#define PeidaInit() PeidaInteractiveInitiator peidainitiator
-
-#endif
Index: unk/SophyaPI/PI/pimgadapter.h
===================================================================
--- /trunk/SophyaPI/PI/pimgadapter.h	(revision 166)
+++ 	(revision )
@@ -1,36 +1,0 @@
-#ifndef PIMGADAPTER_SEEN
-#define PIMGADAPTER_SEEN
-
-#include "cimage.h"
-#include "parradapter.h"
-
-class RzImageAdapter : public P2DArrayAdapter {
-public:
-                  RzImageAdapter(RzImage* rzi, bool ad=false) :
-                    P2DArrayAdapter(rzi->XSize(), rzi->YSize())
-                    { aDel = ad; mImg = rzi; }
-
-  virtual 	  ~RzImageAdapter() { if (aDel) delete mImg; }
-  virtual float   Value(int ix, int iy) { return mImg->FValue(ix, iy); }
-
-protected :
-  bool aDel;
-  RzImage* mImg;
-};
-
-template <class T> 
-class ImageAdapter : public P2DArrayAdapter {
-public:
-                  ImageAdapter(Image<T>* img, bool ad=false) :
-                    P2DArrayAdapter(img->XSize(), img->YSize())
-                    { aDel = ad; mImg = img; }
-
-  virtual 	  ~ImageAdapter() { if (aDel) delete mImg; }
-  virtual float   Value(int ix, int iy) { return((*mImg)(ix, iy)); }
-
-protected :
-  bool aDel;
-  Image<T>* mImg;
-};
-
-#endif
Index: unk/SophyaPI/PI/pintup3d.cc
===================================================================
--- /trunk/SophyaPI/PI/pintup3d.cc	(revision 166)
+++ 	(revision )
@@ -1,117 +1,0 @@
-#include <stdio.h>
-#include "pintup3d.h"
-
- 
-/* --Methode-- */
-PINTuple3D::PINTuple3D(NTuple* nt, bool ad)
-: PIDrawer3D()
-{
-  mNT = nt;
-  mAdDO = ad; 
-  SelectXYZ(NULL, NULL, NULL);
-  SelectErrBar();
-}
-
-PINTuple3D::~PINTuple3D()
-{
-  if (mAdDO && mNT)  delete mNT;
-}
-
-/* --Methode-- */
-void  PINTuple3D::SelectXYZ(const char* px, const char* py, const char* pz)
-{
-if (mNT == NULL)  xK = yK = zK = -1;
-if (px == NULL) xK = -1;
-else xK = mNT->IndexNom(px);
-if (py == NULL) yK = -1;
-else yK = mNT->IndexNom(py);
-if (pz == NULL) zK = -1;
-else zK = mNT->IndexNom(pz);
-}
-
-/* --Methode-- */
-void  PINTuple3D::SelectErrBar(const char* erbx, const char* erby, const char* erbz)
-{
-if (mNT == NULL)  xebK = yebK = zebK = -1;
-if (erbx == NULL) xebK = -1;
-else xebK = mNT->IndexNom(erbx);
-if (erby == NULL) yebK = -1;
-else yebK = mNT->IndexNom(erby);
-if (erbz == NULL) zebK = -1;
-else zebK = mNT->IndexNom(erbz);
-}
-
-
-/* --Methode-- */
-void PINTuple3D::UpdateLimits()
-{
-  if (!mNT) return;
-  if (mNT->NEntry() <= 0)  return;
-  if ( (xK < 0) || (yK < 0)  || (zK < 0) )   return;
-
-  // Commencer par trouver nos limites
-  float xmin, xmax, ymin, ymax, zmin, zmax;
-  xmin = ymin = 9.e19;
-  xmax = ymax = -9.e19;
-  zmax = zmax = -9.e19;
-  mNT->GetMinMax(xK, xmin, xmax);
-  mNT->GetMinMax(yK, ymin, ymax);
-  mNT->GetMinMax(zK, zmin, zmax);
-
-// Centre du champ en C = (xmin+xmax)/2., (ymin+ymax)/2  (zmin+zmax)*0.5
-// Distance D = Max(xmax-xmin,ymin-ymax)*2
-// Observateur en O = X+D, Yc+2*D 
-  float D = xmax-xmin;
-  if (D < (ymax-ymin))  D = ymax-ymin;
-  D *= 1.4;
-  
-  Set3DView((xmin+xmax)/2., (ymin+ymax)/2, (zmin+zmax)/2., 
-            (xmin+xmax)/2.+D , (ymin+ymax)/2.+2.*D , zmin+(zmax-zmin)*0.2, 0.3, 0.3);  
-//  printf("PINTuple3D::UpdateLimits() : %g-%g  %g-%g  %g-%g (%g) \n", xmin,xmax,ymin,ymax,zmin,zmax,D);
-//  printf("PINTuple3D::UpdateLimits() :  %g %g %g << %g %g %g \n", 
-//         (xmin+xmax)/2., (ymin+ymax)/2, (zmin+zmax)*0.5, 
-//         (xmin+xmax)/2.+D , (ymin+ymax)/2.+2.*D , zmin+(zmax-zmin)*0.1);
-}
-
-
-/* --Methode-- */
-void PINTuple3D::Draw(PIGraphicUC* g, float xmin, float ymin, float xmax, float ymax)
-{
-float xp,yp,zp,xer,yer,zer;
-int nok;
-
-if (!mNT) return;
-if ( (xK < 0) || (yK < 0) || (zK < 0) )  return;
-
-#if defined(__DECCXX) || defined(__KCC__)
-PIGraphic3D* g3 = dynamic_cast<PIGraphic3D*>(g);
-#else
-PIGraphic3D* g3 = (PIGraphic3D*)(g);
-#endif
-
-if (mLAtt == PI_NotDefLineAtt)  g3->SelLine(PI_ThinLine);
-
-nok = 0;  
-for (int i=0; i<mNT->NEntry(); i++) {
-  xp = mNT->GetVal(i, xK);
-  yp = mNT->GetVal(i, yK);
-  zp = mNT->GetVal(i, zK);
-  nok++;
-  g3->DrawMarker3D(xp, yp, zp); 
-  if ( xebK >= 0 ) {
-    xer = mNT->GetVal(i, xebK);
-    g3->DrawLine3D(xp-xer, yp, zp, xp+xer, yp, zp);
-  }
-  if ( yebK >= 0 ) {
-    yer = mNT->GetVal(i, yebK);
-    g3->DrawLine3D(xp, yp-yer, zp, xp, yp+yer, zp);
-  }
-  if ( zebK >= 0 ) {
-    zer = mNT->GetVal(i, zebK);
-    g3->DrawLine3D(xp, yp, zp-zer, xp, yp, zp+zer);
-  }
-}
-
-return;
-}
-
Index: unk/SophyaPI/PI/pintup3d.h
===================================================================
--- /trunk/SophyaPI/PI/pintup3d.h	(revision 166)
+++ 	(revision )
@@ -1,31 +1,0 @@
-#ifndef PINTUPLE3D_H
-#define PINTUPLE3D_H
-
-#include "ntuple.h"
-#include "pi3ddrw.h"
-
-class PINTuple3D : public PIDrawer3D {
-public:
-                     PINTuple3D(NTuple* nt, bool ad=false);
-  virtual           ~PINTuple3D();
-  
-  virtual void       Draw(PIGraphicUC* g, float xmin, float ymin, float xmax, float ymax);
-  virtual void       UpdateLimits();
-  
-          void       SelectXYZ(const char* px, const char* py, const char* pz);
-          void       SelectErrBar(const char* erbx=NULL, const char* erby=NULL, const char* erbz=NULL);
-
-       
-protected:
-  NTuple* mNT;
-  bool mAdDO;
-  int xK, yK, zK;           // Index du nom de variable en X/Y/Z ds le ntuple
-  int xebK, yebK, zebK;     // Index du nom de variable en ErrBarX/Y/Z ds le ntuple
-
-};
-
-#endif
-
-
-
-
Index: unk/SophyaPI/PI/pintuple.cc
===================================================================
--- /trunk/SophyaPI/PI/pintuple.cc	(revision 166)
+++ 	(revision )
@@ -1,96 +1,0 @@
-#include <stdio.h>
-#include "pintuple.h"
-
- 
-/* --Methode-- */
-PINTuple::PINTuple(NTuple* nt, bool ad)
-: PIDrawer()
-{
-  mNT = nt;
-  mAdDO = ad; 
-  SelectXY(NULL, NULL);
-  SelectErrBar();
-}
-
-PINTuple::~PINTuple()
-{
-  if (mAdDO && mNT)  delete mNT;
-}
-
-/* --Methode-- */
-void  PINTuple::SelectXY(const char* px, const char* py)
-{
-if (mNT == NULL)  xK = yK = -1;
-if (px == NULL) xK = -1;
-else xK = mNT->IndexNom(px);
-if (py == NULL) yK = -1;
-else yK = mNT->IndexNom(py);
-}
-
-/* --Methode-- */
-void  PINTuple::SelectErrBar(const char* erbx, const char* erby)
-{
-if (mNT == NULL)  xebK = yebK = -1;
-if (erbx == NULL) xebK = -1;
-else xebK = mNT->IndexNom(erbx);
-if (erby == NULL) yebK = -1;
-else yebK = mNT->IndexNom(erby);
-}
-
-
-/* --Methode-- */
-void PINTuple::UpdateLimits()
-{
-  if (!mNT) return;
-  if (mNT->NEntry() <= 0)  return;
-  if ( (xK < 0) || (yK < 0) )   return;
-
-  // Commencer par trouver nos limites
-  float dx, dy;
-  float xmin, xmax, ymin, ymax;
-  xmin = ymin = 9.e19;
-  xmax = ymax = -9.e19;
-  mNT->GetMinMax(xK, xmin, xmax);
-  mNT->GetMinMax(yK, ymin, ymax);
-    
-  dx = 0.02*(xmax-xmin);
-  dy = 0.02*(ymax-ymin);
-  
-  SetLimits(xmin-dx, xmax+dx, ymin-dy, ymax+dy);
-  SetAxesFlags(kBoxAxes | kExtTicks | kLabels);
-}
-
-
-/* --Methode-- */
-void PINTuple::Draw(PIGraphicUC* g, float xmin, float ymin, float xmax, float ymax)
-{
-float xp,yp,xer,yer;
-int nok;
-
-if (!mNT) return;
-if ( (xK < 0) || (yK < 0) )  return;
-if (mLAtt == PI_NotDefLineAtt)  g->SelLine(PI_ThinLine);
-nok = 0;  
-for (int i=0; i<mNT->NEntry(); i++) {
-  xp = mNT->GetVal(i, xK);
-  yp = mNT->GetVal(i, yK);
-  if ( (xp < xmin) || (xp > xmax) || (yp < ymin) || (yp > ymax) )  continue;
-  nok++;
-  if ( xebK >= 0 ) {
-    xer = mNT->GetVal(i, xebK);
-    if(xer>0.) g->DrawLine(xp-xer, yp, xp+xer, yp);
-  }
-  if ( yebK >= 0 ) {
-    yer = mNT->GetVal(i, yebK);
-    if(yer>0.) g->DrawLine(xp, yp-yer, xp, yp+yer);
-  }
-  g->DrawMarker(xp, yp); 
-}
-
-/*
-sprintf(buff, "NTuple:  NEntry= %d  NDisp= %d", (int)mNT->NEntry(), nok);
-g->BaseGraphic()->DrawString(15,15,buff);
-*/
-return;
-}
-
Index: unk/SophyaPI/PI/pintuple.h
===================================================================
--- /trunk/SophyaPI/PI/pintuple.h	(revision 166)
+++ 	(revision )
@@ -1,31 +1,0 @@
-#ifndef PINTUPLE_H
-#define PINTUPLE_H
-
-#include "ntuple.h"
-#include "pidrawer.h"
-
-class PINTuple : public PIDrawer {
-public:
-                     PINTuple(NTuple* nt, bool ad);
-  virtual           ~PINTuple();
-  
-  virtual void       Draw(PIGraphicUC* g, float xmin, float ymin, float xmax, float ymax);
-  virtual void       UpdateLimits();
-  
-          void       SelectXY(const char* px, const char* py);
-          void       SelectErrBar(const char* erbx=NULL, const char* erby=NULL);
-
-       
-protected:
-  NTuple* mNT;
-  bool mAdDO;
-  int xK, yK;          // Index du nom de variable en X/Y ds le ntuple
-  int xebK, yebK;      // Index du nom de variable en ErrBarX/Y ds le ntuple
-
-};
-
-#endif
-
-
-
-
Index: unk/SophyaPI/PI/pipodrw.cc
===================================================================
--- /trunk/SophyaPI/PI/pipodrw.cc	(revision 166)
+++ 	(revision )
@@ -1,128 +1,0 @@
-//  Adaptateurs et Drawers divers pour Outils PEIDA++
-//                             R. Ansari  06-08/98
-// LAL (Orsay) / IN2P3-CNRS  DAPNIA/SPP (Saclay) / CEA
-
-#include "pipodrw.h"
-#include "generalfit.h"
-
-
-//================================================================
-// PIGFFDrawer
-//================================================================
-
-PIGFFDrawer::PIGFFDrawer(GeneralFunction* f)
-: mFunc(f), mNParms(f->NPar()), mParms(new double[mNParms])
-{
-  ASSERT(f->NVar() == 1);
-}
-
-PIGFFDrawer::~PIGFFDrawer()
-{
-  delete[] mParms;
-}
-
-void
-PIGFFDrawer::SetParms(double const* p)
-{
-  for (int i=0; i<mNParms; i++)
-    mParms[i] = p[i];
-}
-
-
-void
-PIGFFDrawer::Draw(PIGraphicUC* g, float /*xmin*/, float/*ymin*/, float/*xmax*/, float/*ymax*/)
-{
-  PIGrCoord x1, x2, y1, y2;
-  g->GetGrSpace(x1, x2, y1, y2);
-  float xMax = x2;
-  float xMin = x1;
-  float yMax = y2;
-  float yMin = y1;
-  float xStep = (xMax - xMin)/100;
-  float xOld = xMin;
-  float yOld = 0;
-//  float yOld = f->Value(&xMin, mParms);
-  for (float x = xMin+xStep; x<xMax; x+=xStep) {
-   float y = 0; // $CHECK$
-//    float y = f->Value(&x, mParms);
-    if (y>yMin && yOld>yMin && 
-        y<yMax && yOld<yMax) 
-           g->DrawLine(xOld, yOld, x, y);
-    xOld = x;
-    yOld = y;
-  }
-}
-
-// ----------------------------------------------------------
-// Adaptateur de vecteurs Peida++ a P1DArrayAdapter
-// ----------------------------------------------------------
-
-/* --Methode-- */
-POVectorAdapter::POVectorAdapter(Vector* v, bool ad)
-        : P1DArrayAdapter(v->NElts())
-{
-aDel = ad; mVec = v;
-}
-
-/* --Methode-- */
-POVectorAdapter::~POVectorAdapter()
-{
-if (aDel) delete mVec;
-}
-
-/* --Methode-- */
-float POVectorAdapter::Value(int i)
-{ 
-return((*mVec)(i)); 
-}
-
-// ----------------------------------------------------------
-// Adaptateur d'Histo-2D Peida++ a P2DArrayAdapter
-// ----------------------------------------------------------
-
-/* --Methode-- */
-POH2DAdapter::POH2DAdapter(Histo2D* h2d, bool ad)
-        : P2DArrayAdapter(h2d->NBinX(), h2d->NBinY())
-{
-aDel = ad; mH2d = h2d;
-DefineXYCoordinates(h2d->XMin(), h2d->YMin(), h2d->WBinX(), h2d->WBinY() );
-}
-
-/* --Methode-- */
-POH2DAdapter::~POH2DAdapter()
-{
-if (aDel)  delete mH2d;
-}
-
-/* --Methode-- */
-float POH2DAdapter::Value(int ix, int iy)
-{
-return((*mH2d)(ix, iy));
-}
-
-// ----------------------------------------------------------
-// Adaptateur de matrice Peida++ a P2DArrayAdapter
-// Attention  Y: Lignes (rows)  X: Colonnes
-// ----------------------------------------------------------
-
-/* --Methode-- */
-POMatrixAdapter::POMatrixAdapter(Matrix* mtx, bool ad)
-        : P2DArrayAdapter(mtx->NCol(), mtx->NRows())
-{
-aDel = ad; mMtx = mtx;
-}
-
-/* --Methode-- */
-POMatrixAdapter::~POMatrixAdapter()
-{
-if (aDel)  delete mMtx;
-}
-
-/* --Methode-- */
-float POMatrixAdapter::Value(int ix, int iy)
-{
-// Attention MatrixAdapter(X=Colonne, Y= Row) = Matrix(row, col)  
-return((*mMtx)(iy, ix));
-}
-
-
Index: unk/SophyaPI/PI/pipodrw.h
===================================================================
--- /trunk/SophyaPI/PI/pipodrw.h	(revision 166)
+++ 	(revision )
@@ -1,71 +1,0 @@
-// This may look like C code, but it is really -*- C++ -*-
-//  Adaptateurs et Drawers divers pour Outils PEIDA++
-//                             R. Ansari  06-08/98
-// LAL (Orsay) / IN2P3-CNRS  DAPNIA/SPP (Saclay) / CEA
-
-#ifndef PIPODRW_H_SEEN
-#define PIPODRW_H_SEEN
-
-#include "pidrawer.h"
-#include "parradapter.h"
-#include "cvector.h"
-#include "matrix.h"
-#include "histos2.h"
-
-
-class GeneralFunction;
-class PIGFFDrawer : public PIDrawer {
-public:
-                     PIGFFDrawer(GeneralFunction*);
-  virtual           ~PIGFFDrawer();
-  
-  virtual void       Draw(PIGraphicUC* g, float xmin, float ymin, float xmax, float ymax);
-  virtual void       SetParms(double const*);
-protected:
-  GeneralFunction*    mFunc;
-  int                 mNParms;
-  double*             mParms;
-};
-
-
-// Adaptateur de vecteurs Peida++ a P1DArrayAdapter
-class POVectorAdapter : public P1DArrayAdapter {
-public :
-                  POVectorAdapter(Vector* v, bool ad=false);
-  virtual         ~POVectorAdapter();
-  virtual float   Value(int i);
-
-protected:
-  bool aDel;
-  Vector* mVec;
-};
-
-// Adaptateur d'Histo-2D Peida++ a P2DArrayAdapter
-class POH2DAdapter :  public P2DArrayAdapter {
-public :
-                  POH2DAdapter(Histo2D* h2d, bool ad=false);
-  virtual         ~POH2DAdapter();
-
-  virtual float   Value(int ix, int iy);   
-
-protected:
-  bool aDel;
-  Histo2D* mH2d;
-};
-
-// Adaptateur de matrice Peida++ a P2DArrayAdapter
-// Attention MatrixAdapter(X=Colonne, Y= Row) = Matrix(row, col)  
-class POMatrixAdapter :  public P2DArrayAdapter {
-public :
-                  POMatrixAdapter(Matrix* mtx, bool ad=false);
-  virtual         ~POMatrixAdapter();
-
-  virtual float   Value(int ix, int iy);   
-
-protected:
-  bool aDel;
-  Matrix* mMtx;
-};
-
-
-#endif
Index: unk/SophyaPI/PI/pistlist.cc
===================================================================
--- /trunk/SophyaPI/PI/pistlist.cc	(revision 166)
+++ 	(revision )
@@ -1,101 +1,0 @@
-#include <stdio.h>
-#include "pistlist.h"
-
- 
-/* --Methode-- */
-PIStarList::PIStarList(StarList* stl, bool ad)
-: PIDrawer(), mStL(stl)
-{
-  mAdDO = ad;   
-  if (stl == NULL) return;
-  SetFluxLimits(1., -1.);
-}
-
-PIStarList::~PIStarList()
-{
-  if (mAdDO && mStL)  delete mStL;
-}
-
-/* --Methode-- */
-void  PIStarList::SetFluxLimits(float fmin, float fmax, int nl, bool dispflx, bool refr)
-{
-  if (!mStL)  return;  
-  if (fmin < fmax)  { mFmin = fmin;  mFmax = fmax; }
-  else mStL->CalcFluxLimits(mFmin, mFmax);
-  if (mFmin < 1.e-10)  mFmin = 1.e-10;
-  if (mFmax <= mFmin)  mFmax = 1.5*mFmin;
-  mDLgF = log10((double)mFmax/(double)mFmin);
-  if (mDLgF < 1.e-10)  mDLgF = 1.e-10;
-  mF0 = mFmin;
-  if (nl < 1)  nl = 1;
-  if (nl > 20)  nl = 20;
-  mNLev = nl;  
-  mDspFV = dispflx;
-  if (refr)  Refresh();
-  return;
-}
-
-
-/* --Methode-- */
-void PIStarList::UpdateLimits()
-{
-  if (!mStL) return;
-
-  // Commencer par trouver nos limites
-  float dx, dy;
-  double x1, x2, y1, y2;
-  mStL->CalcXYLimits(x1, x2, y1, y2);
-  
-  dx = 0.02*(x2-x1);
-  dy = 0.02*(y2-y1);
-  
-  SetLimits(x1-dx, x2+dx, y1-dy, y2+dy); 
-  SetAxesFlags(kBoxAxes | kExtTicks | kLabels);
-}
-
-
-/* --Methode-- */
-void PIStarList::Draw(PIGraphicUC* g, float xmin, float ymin, float xmax, float ymax)
-{
-BStar *sti;
-float xp,yp,flx;
-int sz;
-char buff[128];
-int nok, nl2;
-
-if (!mStL) return;
-
-int msz = mMSz;
-if (msz < 1) msz = 1;
-PIMarker mrk = (mMrk != PI_NotDefMarker) ? mMrk : PI_FCircleMarker;
-// g->SelFont();
-nok = 0;  nl2 = mNLev*2-1;
-for (int i=0; i<mStL->NbStars(); i++) {
-  sti = mStL->Star(i);
-  if ( !(sti->Nice(BStar::flagOK)) )  continue;
-  flx = sti->Flux();
-  if ( (flx < mFmin) || (flx > mFmax) )  continue;
-  xp = sti->PosX();   yp = sti->PosY();
-  if ( (xp < xmin) || (xp > xmax) || (yp < ymin) || (yp > ymax) )  continue;
-  nok++;
-  sz = (int)((log10((double)flx/mF0))/mDLgF*(double)nl2-0.01) + msz;
-  if (sz < 2)  g->SelMarker(sz, PI_DotMarker);
-  else g->SelMarker(sz, mrk);
-  g->DrawMarker((double)xp,(double)yp ); 
-  if (mDspFV) {  
-    sprintf(buff," F=%g", flx);
-    float dx,dy;
-    g->DGrC2UC(sz, 4, dx, dy);
-    g->DrawString(xp+dx, yp-dy, buff);
-    } 
-  }
-
-/*
-sprintf(buff, "StarList:  NbStars= %d  NDisp= %d", (int)mStL->NbStars(), nok);
-g->BaseGraphic()->DrawString(15,15,buff);
-sprintf(buff, "FMin= %g  FMax= %g Nl= %d Sz0= %d", mFmin, mFmax, mNLev, mMSz0);
-g->BaseGraphic()->DrawString(15,30,buff);
-*/
-
-}
-
Index: unk/SophyaPI/PI/pistlist.h
===================================================================
--- /trunk/SophyaPI/PI/pistlist.h	(revision 166)
+++ 	(revision )
@@ -1,30 +1,0 @@
-#ifndef PISTLIST_H
-#define PISTLIST_H
-
-#include "stlist.h"
-#include "pidrawer.h"
-
-class PIStarList : public PIDrawer {
-public:
-                     PIStarList(StarList* stl, bool ad);
-  virtual           ~PIStarList();
-  
-  virtual void       Draw(PIGraphicUC* g, float xmin, float ymin, float xmax, float ymax);
-  virtual void       UpdateLimits();
-  
-  void               SetFluxLimits(float min=1., float max=-1., int nl=5, bool dispflx=false, bool refr=false);
-
-  inline StarList*   StList()  { return(mStL); }  
-  inline float       FluxMin() { return(mFmin); }       
-  inline float       FluxMax() { return(mFmax); }
-       
-protected:
-  StarList* mStL;
-  bool mAdDO;
-  float mFmin, mFmax;
-  int mNLev;
-  double mF0, mDLgF;
-  bool mDspFV;
-};
-
-#endif
Index: unk/SophyaPI/PI/pitestapp.cc
===================================================================
--- /trunk/SophyaPI/PI/pitestapp.cc	(revision 166)
+++ 	(revision )
@@ -1,440 +1,0 @@
-#include <stdlib.h>
-#include <stdio.h>
-
-/*  Ceci est un programme test des differents composants de PI : PEIDA Interactif */
-/*                 Reza ,  96-98                                                  */
-
- 
-#include "pisysdep.h"
-
-#include PIAPP_H
-#include PIWIN_H 
-#include PIMENU_H 
-#include PIOPTMENU_H 
-#include PISTDWDG_H 
-#include PIBWDG_H 
-#include PIPIXMAP_H 
-#include PIFILECHO_H 
-#include PILIST_H
-
-#include "ex_dessin.h"
-#include "sc_sample.h"
-#include "piimage.h"
-#include "pimgadapter.h"
-
-
-#include "fitsimage.h"
-
-
-int SysBeep(int n)
-{
-for(int i=0; i<n; i++)  putchar('\007');
-return(0);
-}
-
-class PITestApp : public PIApplication {
-public:
-	PITestApp(int sx, int sy);
-	~PITestApp();
-
-	virtual void	Process(PIMessage msg, PIMsgHandler* sender, void* data=NULL);
-
-    PIMenu  *m[5];
-    PIMenu  *mc[2];
-    PICheckBox * ckb;
-    PIText * text;
-    PIButton * bouton;
-    PIButton * bouton2, * bouton3, * bouton4, *bouton5;
-    PIButton * bouton11, * bouton12, * bouton13,* bouton14 ,* bouton15 ;
-    PILabel * label;
-    PIScale * scl;
-    PIMenu  * menu;
-    PIOptMenu * opt, * opt2;
-    PIPixmap * zoom;
-    PILabel  * labimg;
-    ScSample * scs;
-    bool stnewmen[2];
-
-};
-
-
-
-PITestApp::PITestApp(int sx, int sy)
-: PIApplication(550, 450)
-{
-char ans[128];
-   m[0] = new PIMenu(Menubar(),"File");
-   m[0]->AppendItem("Open", 10101);
-   m[0]->AppendItem("Close", 10102);
-   m[0]->AppendItem("New", 10103);
-   m[0]->AppendItem("ScBar", 10105);
-   m[0]->AppendItem("Quit", 10104);
-   m[1] = new PIMenu(Menubar(),"Edit");
-   m[1]->AppendItem("Copier", 10201);
-   m[1]->AppendItem("Coller", 10202);
-   m[1]->AppendItem("Couper", 10203);
-   m[1]->AppendCheckItem("Check It", 10205);
-   mc[0] = new PIMenu(m[1], "Cascade");
-   mc[0]->AppendItem("EdeCas-1", 10221);
-   mc[0]->AppendItem("EdeCas-2", 10222);
-   mc[0]->AppendItem("EdeCas-3", 10223);
-   m[1]->AppendPDMenu(mc[0]);
-
-   m[2] = new PIMenu(Menubar(),"Operation");
-   m[2]->AppendItem("AddItem", 10301);
-   m[2]->AppendItem("DelItemName", 10302);
-   m[2]->AppendItem("DelItemMsg", 10303);
-
-   m[3] = new PIMenu(Menubar(),"Special");
-   m[3]->AppendItem("Spec-Opt1", 10401);
-   m[3]->AppendItem("Spec-Opt2", 10402);
-   m[3]->AppendItem("Spec-Cascade", 10403);
-   mc[1] = new PIMenu(m[3], "Spec-Cascade");
-   mc[1]->AppendItem("Spec-Cas-1", 10441);
-   mc[1]->AppendItem("Spec-Cas-2", 10442);
-   mc[1]->AppendItem("Spec-Cas-3", 10443);
-   m[3]->AppendPDMenu(mc[1]);
-   m[3]->AppendCheckItem("Checkable", 10414);
-
-   m[4] = new PIMenu(Menubar(),"AddMenu2");
-   m[4]->AppendItem("option-A", 10501);
-   m[4]->AppendItem("option-B", 10502);
-   m[4]->AppendItem("option-C", 10503);
-
-   AppendMenu(m[0]);
-   AppendMenu(m[1]);   
-   AppendMenu(m[2]);
-
-  ckb = new PICheckBox(this->MainWin(), "CheckBox", 166, 60, 20, 10, 10);
-  text = new PIText(this->MainWin(), "TEXTE", 100, 30, 20,40);
-  text->SetMsg(7440);
-  label  = new PILabel(this->MainWin(), "Label", 140, 20, 20,80);
-  label->SetBorderWidth(1);
-  bouton = new PIButton(this->MainWin(), "->Menu", 33, 40, 25, 20, 120);
-  bouton2 = new PIButton(this->MainWin(), "Image", 133, 40, 25, 80, 120);
-  bouton3 = new PIButton(this->MainWin(), "ExDess",  233, 40, 25, 140, 120);
-  bouton4 = new PIButton(this->MainWin(), "Dialog", 333, 40, 25, 200, 120);
-  bouton5 = new PIButton(this->MainWin(), "ScDraw", 433, 40, 25, 260, 120);
-  scl = new PIScale(this->MainWin(), "Scale", 88, kSDirRtoL, 100, 20, 10, 150);
-  scl->SetMinMax(5, 45);
-  zoom = new PIPixmap(this->MainWin(), "Zoom", 100,100,5,195);
-  labimg = new PILabel(this->MainWin(), "PixelValue", 250, 20, 10, 320);
-
-  int psx, psy;
-  PrefCompSz(psx, psy);
-  cout << " Creation bouton 11 -14 avec Sx,Sy= " << psx << " , " << psy << endl;
-
-  bouton11 = new PIButton(this->MainWin(), "AddMen-1", 1133, psx*1.5, psy, 20, 360);
-  bouton11 = new PIButton(this->MainWin(), "AddMen-2", 1233, psx*1.5, psy, 40+psx*1.5, 360);
-  stnewmen[0] = stnewmen[1] = false;
-  bouton13 = new PIButton(this->MainWin(), "Ready/Bloc", 1333, psx*1.5, psy, 60+psx*3, 360);
-  bouton14 = new PIButton(this->MainWin(), "TS-ExBWdg", 1433, psx*1.5, psy, 80+psx*4.5, 360);
-  bouton15 = new PIButton(this->MainWin(), "TS-MenuIt", 1533, psx*1.5, psy, 100+psx*6, 360);
-
-//  XSync(PIXDisplay(), FALSE);
-//  printf("Creation PIPUMenu DoIt-1... \n");   gets(ans);
-  menu = new PIMenu(this->MainWin(), "myMenu");
-//  XSync(PIXDisplay(), FALSE);
-//  printf("Apres Creation PIPUMenu -AppendItem() 1 ... \n");   gets(ans);
-
-  menu->AppendItem("DoIt-1", 4401);
-//  XSync(PIXDisplay(), FALSE);
-//  printf("Apres Creation PIPUMenu -AppendItem() 2 ... \n");   gets(ans);
-
-  menu->AppendItem("DoIt-2", 4402);
-  menu->AppendItem("DoIt-25", 4425);
-  menu->AppendItem("DoIt-26", 4426);
-  menu->AppendItem("Check-33", 4433);
-  menu->AppendItem("Check-33", 4433);
-
-//  XSync(PIXDisplay(), FALSE);
-//  printf("Creation PIPUMenu Copier ... \n");   gets(ans);
-
-
-  opt = new PIOptMenu(this->MainWin(), "Option-Menu-1", 90, 25, 110, 150);
-  opt->AppendItem("Linear", 5601);
-  opt->AppendItem("Log.", 5602);
-  opt->AppendItem("Sqrt", 5603);
-  opt->AppendItem("Expon", 5604);
-  opt->AppendItem("Polyn", 5605);
-
-  string ops = "Sqrt";
-  opt->SetValueStr(ops);
-
-  opt2 = new PIOptMenu(this->MainWin(), "Option-Menu-1", 90, 25, 150, 200);
-  opt2->AppendItem("Copier", 80201);
-  opt2->AppendItem("Coller", 80202);
-  opt2->AppendItem("Couper", 80203);
-  opt2->AppendItem("Undo", 80204);
-  opt2->AppendItem("Select-All", 80205);
-  
-}
-
-PITestApp::~PITestApp()
-{
-  delete ckb;
-  delete text;
-  delete label;
-  delete bouton;
-  delete bouton2;
-  delete bouton3;
-  delete bouton4;
-  delete bouton5;
-  delete bouton11;
-  delete bouton12;
-  delete bouton13;
-  delete bouton14;
-  delete bouton15;
-  delete scl;
-  delete menu;
-  delete m[0]; delete m[1]; delete m[2]; delete m[3]; delete m[4];
-  delete mc[0]; delete mc[1];
-  delete opt;
-  delete opt2;
-  delete zoom;
-  delete labimg;
-
-}
-
-static int nimg = 0;
-static PIImage *pimg[5];
-static RzImage *img[5];
-static PIWindow *imgw[5];
-static PIImage *cur=NULL;
-static ScSample *scs1, *scs2, *scs3;
-static PIScrollBar *scb, *scb2;
-static ExBWdg *exb1, *exb2;
-
-static PIWindow * wp3, *wp2, *wp4, *wp5, *wp6;
-static PIPixmap * pxm;
-static unsigned char  pixels[25000];
-static PIFileChooser *pfc;
-static bool  fgpxm = false;
-static bool  fgt = false;
-static bool  fgt2 = false;
-
-static PIListX * pil;
-
-void
-PITestApp::Process(PIMessage msg, PIMsgHandler* sender, void* data)
-{
-  static int x = 0;
-  static numsg=8800;
-
-//   SysBeep(1);
-  char truc[256];
-  sprintf(truc,"< %ld - %d (%d)>",msg,x++, (int)((PIWdgGen *)sender)->kind());
-  this->label->SetLabel(truc);
-  sprintf(truc,"[%d] Msg= %ld (%d-%d) Kind=(%d)  Data= (%ld - %lx)",x, msg, (int)UserMsg(msg),
-         (int)ModMsg(msg), (int)((PIWdgGen *)sender)->kind(), (long)data, (long)data);
-  puts(truc);
-
-  if (ModMsg(msg) == PIMsg_Active) 
-    {  printf("Process: Setting active ImageWindow (%lx) \n", (long)sender); 
-    cur = (PIImage *)sender; return;}
-
-  if (ModMsg(msg) == PIMsg_Close)
-    {
-    printf("Close Message received (Sender= %lx)\n", (long)sender);
-    return;
-    }
-
-  msg = UserMsg(msg);
-  if (msg == 33) { ckb->SetState(true);  menu->Show(); }
-    
-  if (msg == 133)
-    {
-    if (!fgpxm)  { wp3->Show();  fgpxm = true; }
-    for (int i=0; i<25000; i++)  pixels[i] = rand()%32;
-    if ((x % 3) == 0)  pxm->SetColMapId(CMAP_GREY32);
-    if ((x % 3) == 1)  pxm->SetColMapId(CMAP_COLRJ32);
-    if ((x % 3) == 2)  pxm->SetColMapId(CMAP_COLBR32);
-//    pxm->Refresh();
-    if (cur)
-      {
-//      printf("Process: Setting ColMap for (%lx) \n", (long)cur);
-      if ((x % 3) == 0)  cur->SetColMapId(CMAP_GREY32);
-      if ((x % 3) == 1)  cur->SetColMapId(CMAP_COLRJ32);
-      if ((x % 3) == 2)  cur->SetColMapId(CMAP_COLBR32);
-      }
-    }
-  if (msg == 233)
-    {
-    if (fgt) { wp2->Hide();  fgt = false; }
-    else { wp2->Show();  fgt = true; }
-    }
-
-  if (msg == 333)  wp4->Show();
-  if ( (msg == 6001) || (msg == 6002) )  wp4->Hide();
-
-  if (msg == 433)
-    {
-    if (fgt2) { wp5->Hide();  wp6->Hide(); fgt2 = false; }
-    else { wp5->Show();  wp6->Show(); fgt2 = true; }
-    }
-
-  if ( (msg == 1133) || (msg == 1233) )  {  // On ajoute ou on enleve un  menu du menu-bar
-    int idxmen = (msg-1133)/100;
-    cout << " Add/Remove Menu idxmen= " << idxmen << " Bool= " 
-         << Menubar()->IsSensitive(m[idxmen+3])  << " ( " << stnewmen[idxmen] << ")" << endl;
-    if ( Menubar()->IsSensitive(m[idxmen+3]) ) 
-      { Menubar()->RemoveMenu(m[idxmen+3]); stnewmen[idxmen] = false; }
-    else  { Menubar()->AppendMenu(m[idxmen+3]); stnewmen[idxmen] = true; }
-  }
-
-  if (msg == 1333) {  // Changement de sensibilite de Menu-Bar (par SetBusy())
-    cout << " SetSens() Menubar,  State= " <<  GetState()  << endl;
-    if (GetState() != kReadyState)  SetReady();
-    else  SetBlocked();
-  }
-
-  if (msg == 1533) {  // Changement de sensibilite de  Cascade
-    cout << " ChangeSensitivity()  Cascade Bool= " <<  m[1]->IsSensitive("Cascade")  << endl;
-    if (m[1]->IsSensitive("Cascade") )  m[1]->SetSensitivity("Cascade", false); 
-    else  m[1]->SetSensitivity("Cascade", true); 
-  }
-
-  if (msg == 1433) {  // Changement de sensibilite de 
-    
-  }
-//  if (msg == 555)   (this->menu)->Show(); 
-
-  if (msg == 10105)  scb->SetSlSize(atoi(((char *)text->GetText().c_str())));
-  if (msg == 10104)  Stop();
-  if (msg == 10101)  { pfc->AcceptNewFile(false); pfc->Show(); }
-  if (msg == 10103)  { pfc->AcceptNewFile(true); pfc->Show(); }
-
-  if ((msg == 10205) || (msg == 166))  { // CheckItem Menu  or checkbox
-    cout << "PITestApp::Process CheckItem/Box Menu (" << msg 
-         << ") State=" <<  *((bool *)data) << endl; 
-  }
-
-  if (msg == 10301)  
-   { 
-   numsg++;    
-   string nit;
-   nit = text->GetText();
-   m[1]->AppendItem((char *)nit.c_str(), numsg); 
-   opt2->SetValue(numsg);
-   }
-
-  if (msg == 10302)  { m[1]->DeleteItem((char *)text->GetText().c_str()); }
-  if (msg == 10303)  
-    {
-    string nit;
-    nit = text->GetText();
-    long ml =  atol(nit.c_str());
-    m[1]->DeleteItemMsg(ml);
-    opt2->SetValue(10201);
-    }
-
-
-  if (msg > 9000) printf("PITestApp::MenubarReturn: %d --> %lx \n", msg, (long)data);
-  if (msg == 5000)  
-    { 
-    if (data) 
-      { 
-      printf("PITestApp::Process(5000) : %s \n", (char *)data); 
-      if (nimg < 5)  img[nimg] = RzReadFits((char *)data);
-      if (img[nimg])
-        {
-        imgw[nimg] = new PIWindow(this, "WindImage", 
-                                  PIWK_normal, 400, 400, 500, 500);
-        pimg[nimg] = new PIImage(imgw[nimg], "MyImage", 400, 400, 0, 0);
-        pimg[nimg]->SetBinding(PIBK_fixed,PIBK_fixed,PIBK_fixed,PIBK_fixed );
-        pimg[nimg]->SetZoomWin(zoom);
-        pimg[nimg]->SetImage(new RzImageAdapter(img[nimg], true) );
-        pimg[nimg]->Apply();
-        imgw[nimg]->Show();
-        nimg++;
-        }
-    }
-    else printf("PITestApp::Process(5000) (data=NULL) \n");  }
-
-  if ((msg / 100) == 56) 
-    printf("PITestApp::Process(%d) : %lx \n", (int)msg, (long)data); 
-
-  if (msg == 8811) printf("PITestApp::Process(8811) ScrollBar( %d ) \n", *( (int*)data) );
-  else if (msg == 8821) printf("PITestApp::Process(8821) ScrollBar( %d ) \n", *( (int*)data) );
-
-}
-
-int main(int narg, char *arg[])
-{
-  int mii;
-
-  PITestApp * app;
-  app = new PITestApp(350, 350);
-
-  wp2 = new PIWindow(app, "Window-2", PIWK_normal,  400, 200, 250, 250);
-  exb1 = new ExBWdg(wp2, "BWdg", 150, 150, 10, 40);
-  exb1->SetBinding(PIBK_fixed,PIBK_elastic,PIBK_elastic,PIBK_fixed);
-  exb2 = new ExBWdg(wp2, "BWdg2", 180, 180, 200, 10);
-  exb2->SetBinding(PIBK_elastic,PIBK_elastic,PIBK_elastic,PIBK_elastic);
-
-  wp4 = new PIWindow(app, "Window-4", PIWK_dialog,  200, 200, 350, 350);
-  PIButton bt1(wp4, "OK", 6001, 60, 30, 20, 160);
-  PIButton bt2(wp4, "Cancel", 6002, 60, 30, 100, 160);
-  bt1.SetBinding(PIBK_elastic,PIBK_elastic,PIBK_elastic,PIBK_elastic);
-  bt2.SetBinding(PIBK_elastic,PIBK_elastic,PIBK_elastic,PIBK_elastic);
-  PILabel  lb1(wp4, "Editable", 40, 30, 10, 10);
-    lb1.SetBinding(PIBK_elastic,PIBK_elastic,PIBK_elastic,PIBK_elastic);
-  PIText  tx1(wp4, "A00", 100, 30, 60, 10);  
-    tx1.SetBinding(PIBK_elastic,PIBK_elastic,PIBK_elastic,PIBK_elastic);
-  tx1.SetText("Hello");
-  tx1.SetTextEditable(false);
-  //  PILabel  lb2(wp4, "", 30, 20, 10, 40);
-  PIText  tx2(wp4, "A11", 180, 100, 15, 50);
-  tx2.SetMutiLineMode(true);
-  tx2.SetText(" Bonjour, \n Comment ca va ? \n A demain. ");
-    tx2.SetBinding(PIBK_elastic,PIBK_elastic,PIBK_elastic,PIBK_elastic);
-
-  wp3 = new PIWindow(app, "Window-3", PIWK_normal, 200, 200, 350, 350);
-  pxm = new PIPixmap(wp3, "myPixmap", 150, 150, 10, 10);
-  pxm->SetBinding(PIBK_fixed,PIBK_fixed,PIBK_fixed,PIBK_fixed );
-  pxm->SetPixmap(pixels, 150, 150);
-
-  wp5 = new PIWindow(app, "Window-5", PIWK_normal,  420, 450, 200, 200);
-  scs1 = new ScSample(wp5, "ScSample", 200, 200, 0, 0);
-  scs1->SetBinding(PIBK_elastic,PIBK_elastic,PIBK_elastic,PIBK_elastic);
-  scs2 = new ScSample(wp5, "ScSample", 160, 160, 220, 20);
-  printf("DBG-WP5 (A) , SCS2, SzC %d %d , Sz %d %d Pos %d %d \n", wp5->XSize(),
-         wp5->YSize(), scs2->XSize(), scs2->YSize(),scs2->XPos(), scs2->YPos() ); 
-//  scs2->SetBinding(PIBK_elastic,PIBK_fixed,PIBK_fixed,PIBK_elastic);
-  scs2->SetBinding(PIBK_elastic,PIBK_elastic,PIBK_elastic,PIBK_elastic);
-  printf("DBG-WP5 (B) , SCS2, SzC %d %d , Sz %d %d Pos %d %d \n", wp5->XSize(),
-         wp5->YSize(), scs2->XSize(), scs2->YSize(),scs2->XPos(), scs2->YPos() ); 
-
-  scb = new PIScrollBar(wp5, "ScBar", 8811, kSDirUpDown, 15, 420, 405, 0);
-  scb->SetBinding(PIBK_free,PIBK_fixed,PIBK_fixed,PIBK_fixed);
-  scb->ActivateDrag(true);
-  scb2 = new PIScrollBar(wp5, "ScBar", 8821, kSDirRtoL, 420, 15, 0, 425);
-  scb2->SetBinding(PIBK_fixed,PIBK_free,PIBK_fixed,PIBK_fixed);
-
-  scs3 = new ScSample(wp5, "ScSample", 200, 200, 100, 220);
-  scs3->SetBinding(PIBK_elastic,PIBK_elastic,PIBK_elastic,PIBK_elastic);
-  /*  
-  exb1 = new ExBWdg(wp5, "ExB1", 200, 200, 100, 220);
-  exb1->SetBinding(PIBK_elastic,PIBK_elastic,PIBK_elastic,PIBK_elastic);
-  */
-  //  wp4 = new PIWindow(app, "Open...", PIWK_dialog, 300, 300, 400, 400);
-
-  pfc = new PIFileChooser(app,"FileChooser", 5000); 
-  pfc->SetPath("/exp/eros/ImagRed/");
-
-  wp6 = new PIWindow(app, "Window-List", PIWK_normal,  200, 250, 300, 400);
-  pil = new PIListX(wp6, "MyList", 200, 250, 0, 0);
-  pil->SetBinding(PIBK_fixed,PIBK_fixed,PIBK_fixed,PIBK_fixed);
-  for(mii=1; mii<narg; mii++)
-    {
-    printf("AppendItem[%d] - %s (%ld) \n", mii, arg[mii],  3330+mii);  
-     pil->AppendItem(arg[mii], 3330+mii);  
-    puts("Append-OK");
-    }
-  pil->SetMultipleSelect(true);
-  pil->SelectItem("user.cc");
-//  Int32 ioNumber = 100;
-  app->Run();
-  delete app;
-  exit(0);
-}
Index: unk/SophyaPI/PI/sc_sample.cc
===================================================================
--- /trunk/SophyaPI/PI/sc_sample.cc	(revision 166)
+++ 	(revision )
@@ -1,64 +1,0 @@
-#include <stdio.h>
-#include "sc_sample.h"
-
-static int nscd = 0;
-ScSampleDrawer::ScSampleDrawer() 
-        : PIDrawer() 
-{
-nscd++;
-printf(" ScSampleDrawer::ScSampleDrawer() NScDrw= %d \n",  nscd);
-}
-
-ScSampleDrawer::~ScSampleDrawer() 
-{
-nscd--;
-printf("Delete/ScSampleDrawer::~ScSampleDrawer() NScDrw= %d \n",  nscd);
-}
-
-void
-ScSampleDrawer::Draw(PIGraphicUC* g, float, float, float, float)
-{
-PIGrCoord x[5] = {-2, -1., 1., 1.7, 2.2};
-PIGrCoord y[5] = {-2.5, -2.0, -1.5, -2., -2.5};
-
-int i;
-g->SelForeground(PI_Green);
-g->SelMarkerSz(0.3, PI_BoxMarker);
-g->DrawMarkers(x, y, 5);
-g->SelForeground(PI_Magenta);
-g->SelMarkerSz(0.3, PI_FCircleMarker);
-for(i=0; i<5; i++)
-   y[i] = (float)(y[i]) + 1.;
-g->DrawMarkers(x, y, 5);
-g->SelForeground(PI_Black);
-
-g->DrawLine(-4, -4, 4, 4);
-g->DrawLine(-2, -5, 5, 2);
-g->DrawLine(-5, -4, -2, -2);
-g->DrawLine(1, -10, 1, 10);
-return;  
-}
-
-static double f(double x) {return x*x;}
-
-ScSample::ScSample(PIContainerGen *par, char *nom,
-                  int sx, int sy, int px, int py)
-:PIScDrawWdg(par, nom, sx, sy, px, py)
-
-{
-PIFuncDrawer * mfd;
-mfd = new PIFuncDrawer(f);
-  SetLimits(-3,3,-4,4);
-AddScDrawer(mfd,true);
-ScSampleDrawer* msd = new ScSampleDrawer;
-AddScDrawer((PIDrawer*)msd,true);
-SetAxesFlags(kAxesDflt);
-}
-
-ScSample::~ScSample()
-{
-DeleteDrawers();
-}
-
-
-
Index: unk/SophyaPI/PI/sc_sample.h
===================================================================
--- /trunk/SophyaPI/PI/sc_sample.h	(revision 166)
+++ 	(revision )
@@ -1,20 +1,0 @@
-#include "pisysdep.h"
-
-#include "piscdrawwdg.h"
-#include "pipodrw.h"
-
-class ScSampleDrawer : PIDrawer {
-  public:
-  ScSampleDrawer();
-  virtual ~ScSampleDrawer();
-  virtual void       Draw(PIGraphicUC* g, float xmin, float ymin, float xmax, float ymax); 
-};
-
-class ScSample : public PIScDrawWdg {
-public:
-  ScSample(PIContainerGen *par, char *nom,
-           int sx=10, int sy=10, int px=0, int py=0);
-  virtual ~ScSample();
-
-};
-
