Salome HOME
Join modifications from branch OCC_debug_for_3_2_0b1 T3_2_0b1 V3_2_0b1
authorjfa <jfa@opencascade.com>
Sat, 6 May 2006 08:40:48 +0000 (08:40 +0000)
committerjfa <jfa@opencascade.com>
Sat, 6 May 2006 08:40:48 +0000 (08:40 +0000)
603 files changed:
INSTALL
Makefile.in
adm_local/Makefile.in
adm_local/unix/config_files/check_GUI.m4
adm_local/unix/config_files/check_corba_in_GUI.m4
adm_local/unix/config_files/check_opengl.m4
adm_local/unix/config_files/check_pyqt.m4
adm_local/unix/config_files/check_qt.m4
adm_local/unix/config_files/check_qwt.m4
adm_local/unix/config_files/check_sip.m4
adm_local/unix/config_files/check_vtk.m4
adm_local/unix/make_commence.in
adm_local/unix/make_conclude.in
bin/VERSION
bin/runLightSalome.sh
build_configure
configure.in.base
doc/Makefile.in
doc/salome/Makefile.in
doc/salome/gui/KERNEL/dump_study.htm [new file with mode: 0755]
doc/salome/gui/KERNEL/geom_preferences.htm
doc/salome/gui/KERNEL/image77.gif [deleted file]
doc/salome/gui/KERNEL/image78.gif [deleted file]
doc/salome/gui/KERNEL/image79.gif [deleted file]
doc/salome/gui/KERNEL/image80.gif [deleted file]
doc/salome/gui/KERNEL/image81.gif [deleted file]
doc/salome/gui/KERNEL/image82.gif [deleted file]
doc/salome/gui/KERNEL/image83.gif [deleted file]
doc/salome/gui/KERNEL/image84.gif [deleted file]
doc/salome/gui/KERNEL/image86.gif [deleted file]
doc/salome/gui/KERNEL/image88.gif [deleted file]
doc/salome/gui/KERNEL/image89.gif [deleted file]
doc/salome/gui/KERNEL/image90.gif [deleted file]
doc/salome/gui/KERNEL/image91.gif [deleted file]
doc/salome/gui/KERNEL/image92.gif [deleted file]
doc/salome/gui/KERNEL/image94.gif [new file with mode: 0755]
doc/salome/gui/KERNEL/introduction_to_gui.htm [new file with mode: 0755]
doc/salome/gui/KERNEL/kernel.log
doc/salome/gui/KERNEL/kernel/about_salome_pro_architecture.htm
doc/salome/gui/KERNEL/kernel/about_salome_pro_help_system.htm
doc/salome/gui/KERNEL/kernel/creating_a_new_study.htm
doc/salome/gui/KERNEL/kernel/displaying_hiding_toolbars.htm [deleted file]
doc/salome/gui/KERNEL/kernel/displaying_studies.htm
doc/salome/gui/KERNEL/kernel/editing_studies.htm
doc/salome/gui/KERNEL/kernel/getting_properties_of_the_study.htm
doc/salome/gui/KERNEL/kernel/getting_started2.htm
doc/salome/gui/KERNEL/kernel/introduction.htm
doc/salome/gui/KERNEL/kernel/introduction_to_iapp.htm [deleted file]
doc/salome/gui/KERNEL/kernel/introduction_to_salome_pro.htm
doc/salome/gui/KERNEL/kernel/opening_studies.htm
doc/salome/gui/KERNEL/kernel/running_salome_pro.htm
doc/salome/gui/KERNEL/kernel/salome_pro_desktop.htm
doc/salome/gui/KERNEL/kernel/saving_a_study.htm
doc/salome/gui/KERNEL/kernel/setting_preferences.htm
doc/salome/gui/KERNEL/kernel/using_catalog_generator.htm
doc/salome/gui/KERNEL/kernel/using_object_browser.htm
doc/salome/gui/KERNEL/kernel/using_registry.htm
doc/salome/gui/KERNEL/mesh_preferences.htm
doc/salome/gui/KERNEL/pics/dumpstudy.png [new file with mode: 0755]
doc/salome/gui/KERNEL/pics/loadscript.png [new file with mode: 0755]
doc/salome/gui/KERNEL/pics/meshpreferences.png [deleted file]
doc/salome/gui/KERNEL/pics/multidesktop.png [deleted file]
doc/salome/gui/KERNEL/pics/neo-view1.png [deleted file]
doc/salome/gui/KERNEL/pics/plot1.png [deleted file]
doc/salome/gui/KERNEL/pics/pref1.png [deleted file]
doc/salome/gui/KERNEL/pics/pref2.png [deleted file]
doc/salome/gui/KERNEL/pics/pref4.png [deleted file]
doc/salome/gui/KERNEL/pics/preferencies10.png [deleted file]
doc/salome/gui/KERNEL/pics/preferencies11.png [deleted file]
doc/salome/gui/KERNEL/pics/preferencies5.png [deleted file]
doc/salome/gui/KERNEL/pics/preferencies7.png [deleted file]
doc/salome/gui/KERNEL/pics/preferencies8.png [deleted file]
doc/salome/gui/KERNEL/pics/preferencies9.png [deleted file]
doc/salome/gui/KERNEL/pics/propm1.png [new file with mode: 0755]
doc/salome/gui/KERNEL/pics/propm2.png [new file with mode: 0755]
doc/salome/gui/KERNEL/pics/propm3.png [new file with mode: 0755]
doc/salome/gui/KERNEL/pics/propm4.png [new file with mode: 0755]
doc/salome/gui/KERNEL/pics/propp1.png [new file with mode: 0755]
doc/salome/gui/KERNEL/pics/propp2.png [new file with mode: 0755]
doc/salome/gui/KERNEL/pics/propp3.png [new file with mode: 0755]
doc/salome/gui/KERNEL/pics/propp6.png [new file with mode: 0755]
doc/salome/gui/KERNEL/pics/propp7.png [new file with mode: 0755]
doc/salome/gui/KERNEL/pics/propp8.png [new file with mode: 0755]
doc/salome/gui/KERNEL/pics/props1.png [new file with mode: 0755]
doc/salome/gui/KERNEL/pics/props2.png [new file with mode: 0755]
doc/salome/gui/KERNEL/pics/props3.png [new file with mode: 0755]
doc/salome/gui/KERNEL/pics/props4.png [new file with mode: 0755]
doc/salome/gui/KERNEL/pics/props5.png [new file with mode: 0755]
doc/salome/gui/KERNEL/pics/viewerspreferences.png [deleted file]
doc/salome/gui/KERNEL/post-pro_preferences.htm
doc/salome/gui/KERNEL/select_color_and_font.htm [new file with mode: 0755]
doc/salome/gui/KERNEL/setting_preferences.htm
doc/salome/gui/KERNEL/supervisor_preferences.htm [deleted file]
doc/salome/gui/KERNEL/viewers.htm [deleted file]
doc/salome/gui/KERNEL/whdata/whftdata0.htm
doc/salome/gui/KERNEL/whdata/whfts.htm
doc/salome/gui/KERNEL/whdata/whfwdata0.htm
doc/salome/gui/KERNEL/whdata/whtdata0.htm
doc/salome/gui/KERNEL/whgdata/whlstf0.htm
doc/salome/gui/KERNEL/whgdata/whlstf1.htm
doc/salome/gui/KERNEL/whgdata/whlstf10.htm
doc/salome/gui/KERNEL/whgdata/whlstf11.htm [new file with mode: 0755]
doc/salome/gui/KERNEL/whgdata/whlstf2.htm
doc/salome/gui/KERNEL/whgdata/whlstf3.htm
doc/salome/gui/KERNEL/whgdata/whlstf4.htm
doc/salome/gui/KERNEL/whgdata/whlstf5.htm
doc/salome/gui/KERNEL/whgdata/whlstf6.htm
doc/salome/gui/KERNEL/whgdata/whlstf7.htm
doc/salome/gui/KERNEL/whgdata/whlstf8.htm
doc/salome/gui/KERNEL/whgdata/whlstf9.htm
doc/salome/gui/KERNEL/whgdata/whlstfl0.htm
doc/salome/gui/KERNEL/whgdata/whlstfl1.htm
doc/salome/gui/KERNEL/whgdata/whlstfl10.htm
doc/salome/gui/KERNEL/whgdata/whlstfl11.htm
doc/salome/gui/KERNEL/whgdata/whlstfl12.htm
doc/salome/gui/KERNEL/whgdata/whlstfl13.htm
doc/salome/gui/KERNEL/whgdata/whlstfl14.htm
doc/salome/gui/KERNEL/whgdata/whlstfl15.htm
doc/salome/gui/KERNEL/whgdata/whlstfl16.htm
doc/salome/gui/KERNEL/whgdata/whlstfl17.htm
doc/salome/gui/KERNEL/whgdata/whlstfl18.htm
doc/salome/gui/KERNEL/whgdata/whlstfl19.htm
doc/salome/gui/KERNEL/whgdata/whlstfl2.htm
doc/salome/gui/KERNEL/whgdata/whlstfl20.htm
doc/salome/gui/KERNEL/whgdata/whlstfl21.htm
doc/salome/gui/KERNEL/whgdata/whlstfl22.htm
doc/salome/gui/KERNEL/whgdata/whlstfl23.htm
doc/salome/gui/KERNEL/whgdata/whlstfl24.htm
doc/salome/gui/KERNEL/whgdata/whlstfl25.htm
doc/salome/gui/KERNEL/whgdata/whlstfl3.htm
doc/salome/gui/KERNEL/whgdata/whlstfl5.htm
doc/salome/gui/KERNEL/whgdata/whlstfl6.htm
doc/salome/gui/KERNEL/whgdata/whlstfl7.htm
doc/salome/gui/KERNEL/whgdata/whlstfl8.htm
doc/salome/gui/KERNEL/whgdata/whlstfl9.htm
doc/salome/gui/KERNEL/whgdata/whlstt3.htm
doc/salome/gui/KERNEL/whgdata/whlstt4.htm
doc/salome/gui/KERNEL/whgdata/whlstt5.htm
doc/salome/gui/KERNEL/whgdata/whnvl32.htm
doc/salome/gui/KERNEL/whskin_info.htm
doc/salome/gui/KERNEL/whxdata/whftdata0.xml
doc/salome/gui/KERNEL/whxdata/whfts.xml
doc/salome/gui/KERNEL/whxdata/whfwdata0.xml
doc/salome/gui/KERNEL/whxdata/whtdata0.xml
doc/salome/gui/Makefile.in
doc/salome/tui/Makefile.in
doc/salome/tui/SUIT/doxyfile
doc/salome/tui/SUIT/sources/doxygen.css [new file with mode: 0755]
doc/salome/tui/SUIT/sources/footer.html [new file with mode: 0755]
doc/salome/tui/SUIT/sources/myheader.html
idl/Makefile.in [deleted file]
idl/SALOME_Session.idl [deleted file]
src/CAF/CAF_Application.cxx
src/CAF/CAF_Application.h
src/CAF/CAF_Operation.cxx
src/CAF/CAF_Operation.h
src/CAF/CAF_Study.cxx
src/CAF/CAF_Study.h
src/CAF/CAF_Tools.cxx
src/CAF/CAF_Tools.h
src/CAF/Makefile.in
src/CAF/resources/CAF_images.po
src/CAF/resources/CAF_msg_en.po
src/CAM/CAM_Application.cxx
src/CAM/CAM_Application.h
src/CAM/CAM_DataModel.cxx
src/CAM/CAM_DataModel.h
src/CAM/CAM_DataObject.h
src/CAM/CAM_Module.cxx
src/CAM/CAM_Study.h
src/CAM/Makefile.in
src/CAM/resources/CAM_msg_en.po
src/DDS/DDS.h
src/DDS/DDS_DicGroup.cxx
src/DDS/DDS_DicGroup.h
src/DDS/DDS_DicItem.cxx
src/DDS/DDS_DicItem.h
src/DDS/DDS_Dictionary.cxx
src/DDS/DDS_Dictionary.h
src/DDS/DDS_KeyWords.cxx
src/DDS/DDS_KeyWords.h
src/DDS/Makefile.in
src/Event/Makefile.in
src/Event/SALOME_Event.cxx
src/Event/SALOME_Event.hxx
src/GLViewer/GLViewer_AspectLine.cxx
src/GLViewer/GLViewer_AspectLine.h
src/GLViewer/GLViewer_BaseDrawers.cxx
src/GLViewer/GLViewer_BaseDrawers.h
src/GLViewer/GLViewer_BaseObjects.cxx
src/GLViewer/GLViewer_BaseObjects.h
src/GLViewer/GLViewer_Compass.cxx
src/GLViewer/GLViewer_Compass.h
src/GLViewer/GLViewer_Context.cxx
src/GLViewer/GLViewer_Context.h
src/GLViewer/GLViewer_CoordSystem.cxx
src/GLViewer/GLViewer_CoordSystem.h
src/GLViewer/GLViewer_Drawer.cxx
src/GLViewer/GLViewer_Drawer.h
src/GLViewer/GLViewer_Geom.cxx
src/GLViewer/GLViewer_Grid.cxx
src/GLViewer/GLViewer_Group.cxx
src/GLViewer/GLViewer_MimeSource.cxx
src/GLViewer/GLViewer_MimeSource.h
src/GLViewer/GLViewer_Object.cxx
src/GLViewer/GLViewer_Object.h
src/GLViewer/GLViewer_Selector.cxx
src/GLViewer/GLViewer_Selector.h
src/GLViewer/GLViewer_Selector2d.cxx
src/GLViewer/GLViewer_Selector2d.h
src/GLViewer/GLViewer_Text.cxx
src/GLViewer/GLViewer_Text.h
src/GLViewer/GLViewer_ToolTip.cxx
src/GLViewer/GLViewer_ToolTip.h
src/GLViewer/GLViewer_Tools.cxx
src/GLViewer/GLViewer_Tools.h
src/GLViewer/GLViewer_ViewFrame.cxx
src/GLViewer/GLViewer_ViewFrame.h
src/GLViewer/GLViewer_ViewManager.cxx
src/GLViewer/GLViewer_ViewPort.cxx
src/GLViewer/GLViewer_ViewPort.h
src/GLViewer/GLViewer_ViewPort2d.cxx
src/GLViewer/GLViewer_ViewPort2d.h
src/GLViewer/GLViewer_Viewer.cxx
src/GLViewer/GLViewer_Viewer.h
src/GLViewer/GLViewer_Viewer2d.cxx
src/GLViewer/GLViewer_Viewer2d.h
src/GLViewer/GLViewer_Widget.cxx
src/GLViewer/GLViewer_Widget.h
src/GLViewer/Makefile.in
src/GLViewer/resources/GLViewer_msg_en.po
src/LightApp/LightApp_AboutDlg.h
src/LightApp/LightApp_Application.cxx
src/LightApp/LightApp_Application.h
src/LightApp/LightApp_DataModel.cxx
src/LightApp/LightApp_DataModel.h
src/LightApp/LightApp_DataObject.cxx
src/LightApp/LightApp_Dialog.cxx
src/LightApp/LightApp_Dialog.h
src/LightApp/LightApp_Displayer.cxx
src/LightApp/LightApp_Displayer.h
src/LightApp/LightApp_Driver.cxx
src/LightApp/LightApp_GLSelector.cxx
src/LightApp/LightApp_GLSelector.h
src/LightApp/LightApp_HDFDriver.cxx
src/LightApp/LightApp_HDFDriver.h
src/LightApp/LightApp_Module.cxx
src/LightApp/LightApp_Module.h
src/LightApp/LightApp_ModuleDlg.h
src/LightApp/LightApp_NameDlg.cxx
src/LightApp/LightApp_NameDlg.h
src/LightApp/LightApp_OBFilter.h
src/LightApp/LightApp_OBSelector.cxx
src/LightApp/LightApp_OBSelector.h
src/LightApp/LightApp_OCCSelector.h
src/LightApp/LightApp_Operation.cxx
src/LightApp/LightApp_Operation.h
src/LightApp/LightApp_Preferences.cxx
src/LightApp/LightApp_Preferences.h
src/LightApp/LightApp_PreferencesDlg.cxx
src/LightApp/LightApp_PreferencesDlg.h
src/LightApp/LightApp_Selection.cxx
src/LightApp/LightApp_Selection.h
src/LightApp/LightApp_SelectionMgr.h
src/LightApp/LightApp_ShowHideOp.cxx
src/LightApp/LightApp_ShowHideOp.h
src/LightApp/LightApp_Study.cxx
src/LightApp/LightApp_Study.h
src/LightApp/LightApp_SwitchOp.cxx
src/LightApp/LightApp_SwitchOp.h
src/LightApp/LightApp_UpdateFlags.h
src/LightApp/LightApp_VTKSelector.cxx
src/LightApp/LightApp_VTKSelector.h
src/LightApp/Makefile.in
src/LightApp/resources/LightApp.xml
src/LightApp/resources/LightApp_msg_en.po
src/LogWindow/LogWindow.cxx
src/LogWindow/LogWindow.h
src/LogWindow/Makefile.in
src/OBJECT/Handle_SALOME_AISObject.hxx
src/OBJECT/Handle_SALOME_AISShape.hxx
src/OBJECT/Handle_SALOME_Filter.hxx
src/OBJECT/Handle_SALOME_InteractiveObject.hxx
src/OBJECT/Handle_SALOME_ListNodeOfListIO.hxx
src/OBJECT/Handle_SALOME_TypeFilter.hxx
src/OBJECT/Makefile.in
src/OBJECT/SALOME_AISShape.cxx
src/OBJECT/SALOME_DataMapNodeOfDataMapOfIOMapOfInteger_0.cxx
src/OBJECT/SALOME_InteractiveObject.cxx
src/OBJECT/SALOME_ListIO.hxx
src/OBJECT/SALOME_ListNodeOfListIO.hxx
src/OBJECT/SALOME_ListNodeOfListIO_0.cxx
src/OBJECT/SALOME_TypeFilter.cxx
src/OCCViewer/Makefile.in
src/OCCViewer/OCCViewer_ClippingDlg.cxx
src/OCCViewer/OCCViewer_ClippingDlg.h
src/OCCViewer/OCCViewer_CreateRestoreViewDlg.cxx
src/OCCViewer/OCCViewer_VService.cxx
src/OCCViewer/OCCViewer_ViewManager.cxx
src/OCCViewer/OCCViewer_ViewModel.cxx
src/OCCViewer/OCCViewer_ViewPort.cxx
src/OCCViewer/OCCViewer_ViewPort.h
src/OCCViewer/OCCViewer_ViewPort3d.cxx
src/OCCViewer/OCCViewer_ViewWindow.cxx
src/OCCViewer/OCCViewer_ViewWindow.h
src/OCCViewer/resources/OCCViewer_msg_en.po
src/ObjBrowser/Makefile.in
src/ObjBrowser/OB_Browser.cxx
src/ObjBrowser/OB_Browser.h
src/ObjBrowser/OB_Filter.cxx
src/ObjBrowser/OB_Filter.h
src/ObjBrowser/OB_ListItem.cxx
src/ObjBrowser/OB_ListItem.h
src/ObjBrowser/OB_ListView.cxx
src/ObjBrowser/OB_ListView.h
src/ObjBrowser/resources/OB_msg_en.po
src/Plot2d/Makefile.in
src/Plot2d/Plot2d_Curve.cxx
src/Plot2d/Plot2d_Prs.cxx
src/Plot2d/Plot2d_SetupCurveDlg.h
src/Plot2d/Plot2d_ViewFrame.cxx
src/Plot2d/Plot2d_ViewManager.cxx
src/Plot2d/Plot2d_ViewModel.cxx
src/Plot2d/Plot2d_ViewWindow.cxx
src/Plot2d/resources/Plot2d_images.po
src/Plot2d/resources/Plot2d_msg_en.po
src/Prs/Makefile.in
src/Prs/SALOME_Prs.cxx
src/Prs/SALOME_Prs.h
src/PyInterp/PyInterp_Dispatcher.cxx
src/PyInterp/PyInterp_Dispatcher.h
src/PyInterp/PyInterp_base.cxx
src/PythonConsole/Makefile.in
src/PythonConsole/PythonConsole_PyConsole.cxx
src/PythonConsole/PythonConsole_PyEditor.cxx
src/PythonConsole/PythonConsole_PyInterp.cxx
src/QDS/Makefile.in
src/QDS/QDS.cxx
src/QDS/QDS.h
src/QDS/QDS_CheckBox.cxx
src/QDS/QDS_CheckBox.h
src/QDS/QDS_ComboBox.cxx
src/QDS/QDS_ComboBox.h
src/QDS/QDS_Datum.cxx
src/QDS/QDS_Datum.h
src/QDS/QDS_LineEdit.cxx
src/QDS/QDS_LineEdit.h
src/QDS/QDS_RadioBox.cxx
src/QDS/QDS_RadioBox.h
src/QDS/QDS_SpinBox.cxx
src/QDS/QDS_SpinBox.h
src/QDS/QDS_SpinBoxDbl.cxx
src/QDS/QDS_SpinBoxDbl.h
src/QDS/QDS_TextEdit.cxx
src/QDS/QDS_TextEdit.h
src/QDS/QDS_Validator.cxx
src/QDS/QDS_Validator.h
src/QDS/resources/QDS_msg_en.po
src/Qtx/Makefile.in
src/Qtx/Qtx.h
src/Qtx/QtxAction.cxx
src/Qtx/QtxAction.h
src/Qtx/QtxActionMenuMgr.cxx
src/Qtx/QtxActionMenuMgr.h
src/Qtx/QtxActionMgr.cxx
src/Qtx/QtxActionMgr.h
src/Qtx/QtxActionToolMgr.cxx
src/Qtx/QtxActionToolMgr.h
src/Qtx/QtxColorScale.cxx
src/Qtx/QtxColorScale.h
src/Qtx/QtxComboBox.cxx
src/Qtx/QtxDblSpinBox.cxx
src/Qtx/QtxDblSpinBox.h
src/Qtx/QtxDblValidator.cxx
src/Qtx/QtxDialog.cxx
src/Qtx/QtxDockAction.cxx
src/Qtx/QtxDockWindow.cxx
src/Qtx/QtxGroupBox.cxx
src/Qtx/QtxIntSpinBox.cxx
src/Qtx/QtxListAction.cxx
src/Qtx/QtxListAction.h
src/Qtx/QtxListBox.cxx
src/Qtx/QtxListOfOperations.cxx
src/Qtx/QtxListOfOperations.h
src/Qtx/QtxListResourceEdit.cxx
src/Qtx/QtxListResourceEdit.h
src/Qtx/QtxListView.cxx
src/Qtx/QtxLogoMgr.cxx
src/Qtx/QtxMainWindow.cxx
src/Qtx/QtxMenuButton.cxx
src/Qtx/QtxOperations.cxx
src/Qtx/QtxOperations.h
src/Qtx/QtxParser.cxx
src/Qtx/QtxParser.h
src/Qtx/QtxPathDialog.cxx
src/Qtx/QtxPopupMenu.cxx
src/Qtx/QtxPopupMgr.cxx
src/Qtx/QtxPopupMgr.h
src/Qtx/QtxResourceEdit.cxx
src/Qtx/QtxResourceEdit.h
src/Qtx/QtxResourceMgr.cxx
src/Qtx/QtxResourceMgr.h
src/Qtx/QtxSplash.cxx [new file with mode: 0644]
src/Qtx/QtxSplash.h [new file with mode: 0644]
src/Qtx/QtxStdOperations.cxx
src/Qtx/QtxStdOperations.h
src/Qtx/QtxTable.cxx
src/Qtx/QtxToolBar.cxx
src/Qtx/QtxToolTip.cxx
src/Qtx/QtxWorkspaceAction.cxx
src/Qtx/QtxWorkstack.cxx
src/Qtx/QtxWorkstackAction.cxx
src/RegistryDisplay/HelpWindow.cxx
src/RegistryDisplay/IntervalWindow.cxx
src/RegistryDisplay/Makefile.in
src/RegistryDisplay/RegWidget.cxx
src/ResExporter/Makefile.in
src/ResExporter/ResourceExporter.cxx
src/SALOME_PY/Makefile.in
src/SALOME_PY/SalomePy.cxx
src/SALOME_PYQT/SALOME_PYQT_GUI/Makefile.in
src/SALOME_PYQT/SALOME_PYQT_GUI/SALOME_PYQT_Module.cxx
src/SALOME_PYQT/SALOME_PYQT_GUI/SALOME_PYQT_Module.h
src/SALOME_PYQT/SALOME_PYQT_GUI/SALOME_PYQT_PyInterp.h
src/SALOME_PYQT/SalomePyQt/Makefile.in
src/SALOME_PYQT/SalomePyQt/SalomePyQt.cxx
src/SALOME_PYQT/SalomePyQt/SalomePyQt.h
src/SALOME_SWIG/Help.py [deleted file]
src/SALOME_SWIG/Makefile.in
src/SALOME_SWIG/PyInterp.py [deleted file]
src/SALOME_SWIG/SALOMEGUI_Swig.cxx
src/SALOME_SWIG/SALOMEGUI_shared_modules.py
src/SALOME_SWIG/salome.py [deleted file]
src/SALOME_SWIG/salome_test.py [deleted file]
src/SALOME_SWIG/supervisionexample.py
src/SALOME_SWIG/supervisiongeomexample.py
src/SOCC/Makefile.in
src/SOCC/SOCC_Prs.cxx
src/SOCC/SOCC_ViewModel.cxx
src/SOCC/SOCC_ViewWindow.cxx
src/SOCC/SOCC_ViewWindow.h
src/SPlot2d/Makefile.in
src/SPlot2d/SPlot2d_Curve.cxx
src/SPlot2d/SPlot2d_Prs.cxx
src/SPlot2d/SPlot2d_ViewModel.cxx
src/SPlot2d/SPlot2d_msg_en.po
src/STD/Makefile.in
src/STD/STD_Application.cxx
src/STD/STD_CloseDlg.cxx
src/STD/resources/STD_images.po
src/STD/resources/STD_msg_en.po
src/SUIT/Makefile.in
src/SUIT/SUIT_Accel.cxx
src/SUIT/SUIT_Accel.h
src/SUIT/SUIT_Application.cxx
src/SUIT/SUIT_Convertor.h
src/SUIT/SUIT_DataObject.cxx
src/SUIT/SUIT_DataObject.h
src/SUIT/SUIT_DataObjectIterator.h
src/SUIT/SUIT_DataOwner.cxx
src/SUIT/SUIT_DataOwner.h
src/SUIT/SUIT_Desktop.h
src/SUIT/SUIT_FileDlg.cxx
src/SUIT/SUIT_FileValidator.h
src/SUIT/SUIT_MessageBox.cxx
src/SUIT/SUIT_MessageBox.h
src/SUIT/SUIT_Operation.cxx
src/SUIT/SUIT_Operation.h
src/SUIT/SUIT_ResourceMgr.cxx
src/SUIT/SUIT_ResourceMgr.h
src/SUIT/SUIT_Selector.h
src/SUIT/SUIT_Session.cxx
src/SUIT/SUIT_Study.cxx
src/SUIT/SUIT_Tools.h
src/SUIT/SUIT_TreeSync.h
src/SUIT/SUIT_ViewManager.cxx
src/SUIT/SUIT_ViewModel.cxx
src/SUIT/SUIT_ViewWindow.cxx
src/SUIT/SUIT_ViewWindow.h
src/SUIT/resources/SUIT_images.po
src/SUIT/resources/SUIT_msg_en.po
src/SUIT/utilities.h
src/SUITApp/Makefile.in
src/SUITApp/SUITApp.cxx
src/SUITApp/SUITApp_Application.cxx
src/SUITApp/resources/SUITApp_msg_en.po
src/SUPERVGraph/Makefile.in
src/SUPERVGraph/SUPERVGraph.cxx
src/SUPERVGraph/SUPERVGraph_ViewFrame.cxx
src/SUPERVGraph/SUPERVGraph_ViewManager.cxx
src/SUPERVGraph/SUPERVGraph_ViewModel.cxx
src/SVTK/Makefile.in
src/SVTK/SALOME_Actor.cxx
src/SVTK/SALOME_Actor.h
src/SVTK/SVTK.h
src/SVTK/SVTK_Actor.cxx
src/SVTK/SVTK_CubeAxesActor2D.cxx
src/SVTK/SVTK_CubeAxesActor2D.h
src/SVTK/SVTK_CubeAxesDlg.cxx
src/SVTK/SVTK_CubeAxesDlg.h
src/SVTK/SVTK_DeviceActor.cxx
src/SVTK/SVTK_DeviceActor.h
src/SVTK/SVTK_DialogBase.cxx [new file with mode: 0644]
src/SVTK/SVTK_DialogBase.h [new file with mode: 0644]
src/SVTK/SVTK_FontWidget.cxx
src/SVTK/SVTK_GenericRenderWindowInteractor.cxx
src/SVTK/SVTK_GenericRenderWindowInteractor.h
src/SVTK/SVTK_InteractorStyle.cxx
src/SVTK/SVTK_InteractorStyle.h
src/SVTK/SVTK_MainWindow.cxx
src/SVTK/SVTK_MainWindow.h
src/SVTK/SVTK_NonIsometricDlg.cxx
src/SVTK/SVTK_NonIsometricDlg.h
src/SVTK/SVTK_Prs.cxx
src/SVTK/SVTK_RectPicker.cxx
src/SVTK/SVTK_RectPicker.h
src/SVTK/SVTK_RenderWindowInteractor.cxx
src/SVTK/SVTK_RenderWindowInteractor.h
src/SVTK/SVTK_Renderer.cxx
src/SVTK/SVTK_Renderer.h
src/SVTK/SVTK_Selector.cxx
src/SVTK/SVTK_Selector.h
src/SVTK/SVTK_SpaceMouse.cxx
src/SVTK/SVTK_Trihedron.cxx
src/SVTK/SVTK_UpdateRateDlg.cxx [new file with mode: 0644]
src/SVTK/SVTK_UpdateRateDlg.h [new file with mode: 0644]
src/SVTK/SVTK_View.cxx
src/SVTK/SVTK_View.h
src/SVTK/SVTK_ViewManager.cxx
src/SVTK/SVTK_ViewManager.h
src/SVTK/SVTK_ViewModel.cxx
src/SVTK/SVTK_ViewModelBase.h
src/SVTK/SVTK_ViewWindow.cxx
src/SVTK/SVTK_ViewWindow.h
src/SVTK/resources/SVTK_images.po [new file with mode: 0644]
src/SVTK/resources/SVTK_msg_en.po
src/SalomeApp/Makefile.in
src/SalomeApp/SalomeApp_Application.cxx
src/SalomeApp/SalomeApp_Application.h
src/SalomeApp/SalomeApp_DataModel.cxx
src/SalomeApp/SalomeApp_DataObject.cxx
src/SalomeApp/SalomeApp_Displayer.cxx
src/SalomeApp/SalomeApp_EventFilter.cxx
src/SalomeApp/SalomeApp_ExceptionHandler.cxx
src/SalomeApp/SalomeApp_ListView.cxx
src/SalomeApp/SalomeApp_ListView.h
src/SalomeApp/SalomeApp_Module.cxx
src/SalomeApp/SalomeApp_PyInterp.cxx
src/SalomeApp/SalomeApp_Study.cxx
src/SalomeApp/SalomeApp_VisualState.cxx
src/SalomeApp/Test/Makefile.in
src/SalomeApp/Test/TestSalomeApp.py
src/SalomeApp/resources/SalomeApp.xml
src/SalomeApp/resources/SalomeApp_msg_en.po
src/Session/InquireServersQThread.cxx
src/Session/InquireServersQThread.h
src/Session/Makefile.in
src/Session/SALOME_Session_Server.cxx
src/Session/SalomeApp_Engine_i.cxx
src/Session/Session_ServerCheck.cxx [new file with mode: 0644]
src/Session/Session_ServerCheck.hxx [new file with mode: 0644]
src/Session/Session_ServerLauncher.cxx
src/Session/Session_ServerLauncher.hxx
src/Session/Session_ServerThread.cxx
src/Session/Session_ServerThread.hxx
src/Session/Session_Session_i.cxx
src/Style/Makefile.in
src/Style/SalomeStyle.cxx
src/TOOLSGUI/Makefile.in
src/TOOLSGUI/ToolsGUI.cxx
src/TOOLSGUI/ToolsGUI_CatalogGeneratorDlg.cxx
src/TOOLSGUI/ToolsGUI_CatalogGeneratorDlg.h
src/TOOLSGUI/ToolsGUI_HelpWindow.cxx
src/TOOLSGUI/ToolsGUI_IntervalWindow.cxx
src/TOOLSGUI/ToolsGUI_RegWidget.cxx
src/VTKViewer/Makefile.in
src/VTKViewer/VTKViewer.h
src/VTKViewer/VTKViewer_Actor.cxx
src/VTKViewer/VTKViewer_Actor.h
src/VTKViewer/VTKViewer_AppendFilter.cxx
src/VTKViewer/VTKViewer_AppendFilter.h
src/VTKViewer/VTKViewer_CellLocationsArray.cxx [new file with mode: 0644]
src/VTKViewer/VTKViewer_CellLocationsArray.h [new file with mode: 0644]
src/VTKViewer/VTKViewer_ConvexTool.cxx
src/VTKViewer/VTKViewer_ConvexTool.h
src/VTKViewer/VTKViewer_ExtractUnstructuredGrid.cxx
src/VTKViewer/VTKViewer_GeometryFilter.cxx
src/VTKViewer/VTKViewer_InteractorStyle.cxx
src/VTKViewer/VTKViewer_InteractorStyle.h
src/VTKViewer/VTKViewer_RectPicker.cxx
src/VTKViewer/VTKViewer_RenderWindow.cxx
src/VTKViewer/VTKViewer_RenderWindowInteractor.cxx
src/VTKViewer/VTKViewer_ShrinkFilter.cxx
src/VTKViewer/VTKViewer_Trihedron.cxx
src/VTKViewer/VTKViewer_Trihedron.h
src/VTKViewer/VTKViewer_Utilities.cxx
src/VTKViewer/VTKViewer_Utilities.h
src/VTKViewer/VTKViewer_VectorText.cxx
src/VTKViewer/VTKViewer_ViewWindow.cxx
src/VTKViewer/resources/VTKViewerM_images.po [deleted file]
src/VTKViewer/resources/VTKViewerM_msg_en.po [deleted file]
src/VTKViewer/resources/VTKViewer_msg_en.po
src/VTKViewer/resources/view_update_rate.png [new file with mode: 0755]

diff --git a/INSTALL b/INSTALL
index b1e195f37b1b3db7dd52a73295e98be66b05d0b6..537aa3872ece9915897722a9725a3e5efe4a2a38 100644 (file)
--- a/INSTALL
+++ b/INSTALL
@@ -1,3 +1,3 @@
-This is the version 3.2.0a2 of SALOMEGUI
+This is the version 3.2.0b1 of SALOMEGUI
 Compatible with :
-        - KERNEL 3.2.0a2
+        - KERNEL 3.2.0b1
index c1bc6bff4c64f9e081a97308ab31135e3a128e10..29e946483bc1eb0a7f24392611ecea359fbe4272 100644 (file)
@@ -1,3 +1,21 @@
+#  Copyright (C) 2005  CEA/DEN, EDF R&D, OPEN CASCADE, PRINCIPIA R&D
+#
+#  This library is free software; you can redistribute it and/or
+#  modify it under the terms of the GNU Lesser General Public
+#  License as published by the Free Software Foundation; either
+#  version 2.1 of the License.
+#
+#  This library is distributed in the hope that it will be useful,
+#  but WITHOUT ANY WARRANTY; without even the implied warranty of
+#  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+#  Lesser General Public License for more details.
+#
+#  You should have received a copy of the GNU Lesser General Public
+#  License along with this library; if not, write to the Free Software
+#  Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307 USA
+#
+#  See http://www.salome-platform.org/
+#
 # -* Makefile *- 
 #
 # Author : Patrick GOLDBRONN (CEA)
@@ -14,13 +32,7 @@ VPATH=.:@srcdir@:@top_srcdir@/bin:./bin/salome:@top_srcdir@/resources:./bin:@top
 
 @COMMENCE@
 
-SUBDIRS = src
-
-ifeq ($(GUI_DISABLE_CORBA),no)
-  SUBDIRS+= idl
-endif
-
-SUBDIRS+= doc adm_local
+SUBDIRS = src doc adm_local
 
 RESOURCES_FILES = \
 back.xpm \
@@ -124,10 +136,10 @@ include/salome/sstream: salome_adm/unix/sstream
        -$(RM) $@
        $(LN_S) ../../$< $@
 
-depend: depend_idl
-
-depend_idl:
-       (cd idl ; $(MAKE) $@) || exit 1
+depend:
+#depend: depend_idl
+#depend_idl:
+#      (cd idl ; $(MAKE) $@) || exit 1
 
 # doc is already build : if you want to had documents, go manually to doc and run 'make doc'
 #doc:
@@ -156,10 +168,10 @@ install-bin: $(BIN_SCRIPT)
        $(INSTALL) -d  $(bindir)
        $(INSTALL_PROGRAM) $^ $(bindir)
 
-uninstall: uninstall-idl
-
-uninstall-idl:
-       $(RM) $(idldir)/*.idl
+uninstall:
+#uninstall: uninstall-idl
+#uninstall-idl:
+#      $(RM) $(idldir)/*.idl
 
 distclean: distclean-other
 
index 0c4f46081cd35df476f3ce1eb7ec2cf635508200..50fe36d5e72ed17eee27e0996d505cfedfb285db 100644 (file)
@@ -1,3 +1,21 @@
+#  Copyright (C) 2005  CEA/DEN, EDF R&D, OPEN CASCADE, PRINCIPIA R&D
+#
+#  This library is free software; you can redistribute it and/or
+#  modify it under the terms of the GNU Lesser General Public
+#  License as published by the Free Software Foundation; either
+#  version 2.1 of the License.
+#
+#  This library is distributed in the hope that it will be useful,
+#  but WITHOUT ANY WARRANTY; without even the implied warranty of
+#  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+#  Lesser General Public License for more details.
+#
+#  You should have received a copy of the GNU Lesser General Public
+#  License along with this library; if not, write to the Free Software
+#  Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307 USA
+#
+#  See http://www.salome-platform.org/
+#
 # source path
 top_srcdir=@top_srcdir@
 top_builddir=..
index ad022e400f3a5d5c4e4a76b19258a3beca14f09b..ff090e7b9b843f8e6b63eb3e3fb934fcf5e5a0b8 100755 (executable)
@@ -3,51 +3,61 @@
 #  Author : Marc Tajchman (CEA, 2002)
 #------------------------------------------------------------
 
-AC_DEFUN([CHECK_SALOME_GUI],[
+AC_DEFUN([CHECK_GUI],[
+AC_REQUIRE([AC_LINKER_OPTIONS])dnl
 
-AC_CHECKING(for SalomeGUI)
+AC_CHECKING(for $2 $1 )
 
 SalomeGUI_ok=no
 
+GUI_LDFLAGS=""
+GUI_CXXFLAGS=""
+
 AC_ARG_WITH(gui,
            --with-salome_gui=DIR root directory path of SALOME GUI installation,
            SALOME_GUI_DIR="$withval",SALOME_GUI_DIR="")
 
-if test "x$SALOME_GUI_DIR" = "x" ; then
-
-# no --with-gui-dir option used
-
-  if test "x$GUI_ROOT_DIR" != "x" ; then
-
+if test "x${SALOME_GUI_DIR}" = "x" ; then
+  # no --with-gui-dir option used
+  AC_MSG_RESULT(try \${GUI_ROOT_DIR}: ${GUI_ROOT_DIR})
+  if test "x${GUI_ROOT_DIR}" != "x" ; then
     # SALOME_ROOT_DIR environment variable defined
-    SALOME_GUI_DIR=$GUI_ROOT_DIR
-
+    SALOME_GUI_DIR=${GUI_ROOT_DIR}
   else
-
     # search Salome binaries in PATH variable
-    AC_PATH_PROG(TEMP, libLightApp.so)
-    if test "x$TEMP" != "x" ; then
-      SALOME_BIN_DIR=`dirname $TEMP`
-      SALOME_GUI_DIR=`dirname $SALOME_BIN_DIR`
+    AC_PATH_PROG(TEMP, $1)
+    if test "x${TEMP}" != "x" ; then
+      AC_MSG_RESULT(libLightApp.so was found at : ${TEMP})
+      SALOME_BIN_DIR=`dirname ${TEMP}`
+      SALOME_GUI_DIR=`cd ${SALOME_BIN_DIR}/../..; pwd`
     fi
-
   fi
-#
 fi
 
-if test -f ${SALOME_GUI_DIR}/lib/salome/libLightApp.so  ; then
+if test -f ${SALOME_GUI_DIR}/lib${LIB_LOCATION_SUFFIX}/salome/$1 ; then
   SalomeGUI_ok=yes
   AC_MSG_RESULT(Using SALOME GUI distribution in ${SALOME_GUI_DIR})
 
-  if test "x$GUI_ROOT_DIR" == "x" ; then
+  if test "x${GUI_ROOT_DIR}" == "x" ; then
     GUI_ROOT_DIR=${SALOME_GUI_DIR}
   fi
+
   AC_SUBST(GUI_ROOT_DIR)
+
+  GUI_LDFLAGS=-L${SALOME_GUI_DIR}/lib${LIB_LOCATION_SUFFIX}/salome
+  GUI_CXXFLAGS=-I${SALOME_GUI_DIR}/include/salome
+
+  AC_SUBST(GUI_LDFLAGS)
+  AC_SUBST(GUI_CXXFLAGS)
 else
   AC_MSG_WARN("Cannot find compiled SALOME GUI distribution")
 fi
   
-AC_MSG_RESULT(for SALOME GUI: $SalomeGUI_ok)
+AC_MSG_RESULT(for $2: ${SalomeGUI_ok})
  
 ])dnl
+
+AC_DEFUN([CHECK_SALOME_GUI],[
+  CHECK_GUI([libLightApp.so],
+            [SALOME GUI])
+])dnl
\ No newline at end of file
index 007dfc6c5bcbe86d3314abed334fe947db401acb..20be4514f656afa19b0dd366bb2319877be80a2d 100755 (executable)
@@ -4,52 +4,9 @@
 #------------------------------------------------------------
 
 AC_DEFUN([CHECK_CORBA_IN_GUI],[
-
-AC_CHECKING(for full SalomeGUI)
-
-SalomeGUI_ok=no
-CORBA_IN_GUI="no"
-
-AC_ARG_WITH(gui,
-           --with-salome_gui=DIR root directory path of full SALOME GUI installation,
-           SALOME_GUI_DIR="$withval",SALOME_GUI_DIR="")
-
-if test "x$SALOME_GUI_DIR" = "x" ; then
-
-# no --with-gui-dir option used
-
-  if test "x$GUI_ROOT_DIR" != "x" ; then
-
-    # SALOME_ROOT_DIR environment variable defined
-    SALOME_GUI_DIR=$GUI_ROOT_DIR
-
-  else
-
-    # search Salome binaries in PATH variable
-    AC_PATH_PROG(TEMP, libSalomeApp.so)
-    if test "x$TEMP" != "x" ; then
-      SALOME_BIN_DIR=`dirname $TEMP`
-      SALOME_GUI_DIR=`dirname $SALOME_BIN_DIR`
-    fi
-
-  fi
-#
-fi
-
-if test -f ${SALOME_GUI_DIR}/lib/salome/libSalomeApp.so  ; then
-  SalomeGUI_ok=yes
-  CORBA_IN_GUI=yes
-  AC_MSG_RESULT(Using SALOME GUI distribution in ${SALOME_GUI_DIR})
-
-  if test "x$GUI_ROOT_DIR" == "x" ; then
-    GUI_ROOT_DIR=${SALOME_GUI_DIR}
-  fi
-else
-  AC_MSG_WARN("Cannot find compiled full SALOME GUI distribution")
-fi
-AC_SUBST(CORBA_IN_GUI)
-  
-AC_MSG_RESULT(for full SALOME GUI: $SalomeGUI_ok)
+  CHECK_GUI([libSalomeApp.so],
+            [CORBA SALOME GUI])
+  CORBA_IN_GUI=${SalomeGUI_ok}
+  AC_SUBST(CORBA_IN_GUI)
 ])dnl
  
index dd43d25a03a6b873d0ddee362a62704078b2bb61..8a56e0f54841b65eaedaf5ad1de9f2657ed7cdcf 100644 (file)
@@ -22,122 +22,174 @@ dnl
 AC_DEFUN([CHECK_OPENGL],[
 AC_REQUIRE([AC_PROG_CC])dnl
 AC_REQUIRE([AC_PROG_CPP])dnl
+AC_REQUIRE([AC_LINKER_OPTIONS])dnl
+
+AC_LANG_SAVE
+AC_LANG_CPLUSPLUS
+
 AC_ARG_WITH(opengl,
-   [  --with-opengl=DIR root directory path of OpenGL installation ],
-   [
-      opengl_dir="$withval"
-      local_opengl=yes
-    ], [
-      dirs="/usr/lib /usr/local/lib /opt/graphics/OpenGL/lib /usr/openwin/lib /usr/X11R6/lib"
-    ])dnl
+  [AC_HELP_STRING([--with-opengl=DIR],[root directory path of OpenGL installation])],
+  [opengl_dir="$withval"], 
+  [dirs="/usr/lib${LIB_LOCATION_SUFFIX} /usr/local/lib${LIB_LOCATION_SUFFIX} /opt/graphics/OpenGL/lib${LIB_LOCATION_SUFFIX} /usr/openwin/lib${LIB_LOCATION_SUFFIX} /usr/X11R6/lib${LIB_LOCATION_SUFFIX}"])dnl
 
 AC_CHECKING(for OpenGL)
-
-AC_SUBST(OGL_INCLUDES)
-AC_SUBST(OGL_LIBS)
+AC_CHECKING(for OpenGL headers)
 
 OGL_INCLUDES=""
 OGL_LIBS=""
 
+GL_LIB_PATH=""
+GLU_LIB_PATH=""
+
 OpenGL_ok=no
+OpenGL_libs_ok=no
+OpenGL_headers_ok=no
 
 dnl openGL headers
-
 # by default
-
-if test "x$local_opengl" = "xyes" ; then
-   if test -f "${opengl_dir}/include/GL/gl.h" ; then
-      OpenGL_ok=yes
-      OGL_INCLUDES="-I${opengl_dir}/include"
-      if test "x${opengl_dir}" = "x/usr"
-      then
-        OGL_LIBS=""
-      else
-        OGL_LIBS="-L${opengl_dir}/lib"
-      fi
-      AC_MSG_RESULT(select OpenGL distribution in ${opengl_dir})
-   else
-      AC_MSG_RESULT(no gl.h header file in ${opengl_dir}/include/GL)
-   fi
+if test "x${opengl_dir}" != "x" ; then
+  AC_MSG_RESULT(for opengl_dir: $opengl_dir)
+  AC_CHECK_HEADER([${opengl_dir}/include/GL/gl.h],
+                  [OpenGL_headers_ok=yes; OGL_INCLUDES="-I${opengl_dir}/include"],
+                  [OpenGL_headers_ok=no])
+  if test "x${OpenGL_headers_ok}" = "xyes" ; then
+    AC_CHECKING(for default OpenGL library)
+    if test "x${opengl_dir}" = "x/usr" ; then
+      OGL_LIBS=""
+    else
+      OGL_LIBS="-L${opengl_dir}/lib"
+    fi
+    LDFLAGS_old="$LDFLAGS"
+    LDFLAGS="$LDFLAGS $OGL_LIBS"
+    AC_CHECK_LIB([GL],
+                 [glBegin],
+                 [OpenGL_libs_ok=yes],
+                 [OpenGL_libs_ok=no])
+    if test "x${OpenGL_libs_ok}" = "xyes" ; then
+      AC_TRY_LINK([],
+                  [],
+                  [OpenGL_libs_ok=yes ; OpenGL_ok=yes; OGL_LIBS="$OGL_LIBS -lGL"],
+                  [OpenGL_libs_ok=no])
+    fi
+    LDFLAGS="$LDFLAGS_old"
+  fi
 fi
 
-if  test "x$OpenGL_ok" = "xno"
-then
-  AC_CHECK_HEADERS(GL/gl.h, [OpenGL_ok=yes])
+if test "x${OpenGL_headers_ok}" = "xno" ; then
+  AC_CHECK_HEADER(GL/gl.h,
+                  [OpenGL_headers_ok=yes],
+                  [OpenGL_headers_ok=no])
 fi
 
-if  test "x$OpenGL_ok" = "xno"
-then
 # under SunOS ?
+if test "x${OpenGL_headers_ok}" = "xno" ; then
   AC_CHECK_HEADERS(/usr/openwin/share/include/GL/glxmd.h,
-                  [OpenGL_ok=yes]
-                  OGL_INCLUDES="-I/usr/openwin/share/include/")
+                  [OpenGL_headers_ok=yes; OGL_INCLUDES="-I/usr/openwin/share/include/"],
+                  [OpenGL_headers_ok=no])
 fi
 
-if  test "x$OpenGL_ok" = "xno"
-then
 # under IRIX ?
+if test "x${OpenGL_headers_ok}" = "xno" ; then
   AC_CHECK_HEADERS(/opt/graphics/OpenGL/include/GL/glxmd.h,
-                  [OpenGL_ok=yes]
-                  OGL_INCLUDES="-I/opt/graphics/OpenGL/include")
+                  [OpenGL_headers_ok=yes; OGL_INCLUDES="-I/opt/graphics/OpenGL/include"],
+                  [OpenGL_headers_ok=no])
 fi
-if  test "x$OpenGL_ok" = "xno"
-then
+
 # some linux OpenGL servers hide the includes in /usr/X11R6/include/GL
+if test "x${OpenGL_headers_ok}" = "xno" ; then
   AC_CHECK_HEADERS(/usr/X11R6/include/GL/gl.h,
-                  [OpenGL_ok=yes]
-                  OGL_INCLUDES="-I/usr/X11R6/include")
+                  [OpenGL_headers_ok=yes; OGL_INCLUDES="-I/usr/X11R6/include"],
+                  [OpenGL_headers_ok=no])
 fi
 
-if  test "x$OpenGL_ok" = "xyes"
-then
+if test "x${OpenGL_headers_ok}" = "xyes" ; then
   AC_CHECKING(for OpenGL library)
-  OpenGL_ok=no
-  for i in $dirs; do
-    if test -r "$i/libGL.so"; then
-dnl      AC_MSG_RESULT(in $i)
-      if test "x$i" = "x/usr/lib"
-      then
-        OGL_LIBS=""
+  for idir in $dirs; do
+    if test -r "${idir}/libGL.so"; then
+      AC_MSG_RESULT(in ${idir})
+      if test "x${idir}" = "x/usr/lib${LIB_LOCATION_SUFFIX}" ; then
+        GL_LIB_PATH=""
       else
-        OGL_LIBS="-L$i"
+        GL_LIB_PATH="-L${idir}"
       fi
       break
     fi
-# under IRIX ?
-    if test -r "$i/libGL.sl"; then
-dnl      AC_MSG_RESULT(in $i)
-      if test "x$i" = "x/usr/lib"
-      then
-        OGL_LIBS=""
+    # under IRIX ?
+    if test -r "${idir}/libGL.sl"; then
+      AC_MSG_RESULT(in ${idir})
+      if test "x${idir}" = "x/usr/lib${LIB_LOCATION_SUFFIX}" ; then
+        GL_LIB_PATH=""
       else
-        OGL_LIBS="-L$i"
+        GL_LIB_PATH="-L${idir}"
       fi
       break
     fi
   done
-  LDFLAGS_old="$LDFLAGS"
-  LDFLAGS="$LDFLAGS $OGL_LIBS"
-  AC_CHECK_LIB(GL,glBegin,OpenGL_ok=yes,OpenGL_ok=no)
+  LDFLAGS_old="${LDFLAGS}"
+  LDFLAGS="${LDFLAGS} ${GL_LIB_PATH}"
+  AC_CHECK_LIB([GL],
+               [glBegin],
+               [OpenGL_libs_ok=yes],
+               [OpenGL_libs_ok=no])
+  if test "x${OpenGL_libs_ok}" = "xyes" ; then
+    AC_TRY_LINK([],
+                [],
+                [OpenGL_libs_ok=yes ; OGL_LIBS="${OGL_LIBS} ${GL_LIB_PATH} -lGL"],
+                [OpenGL_libs_ok=no])
+  fi
   LDFLAGS="$LDFLAGS_old"
 fi
 
-if test "x$OpenGL_ok" = "xyes" ; then
-  OGL_LIBS="$OGL_LIBS -lGL"
+if test "x${OpenGL_libs_ok}" = "xyes" ; then
+  for idir in $dirs; do
+    if test -r "${idir}/libGLU.so"; then
+      AC_MSG_RESULT(in ${idir})
+      if test "x${idir}" = "x/usr/lib${LIB_LOCATION_SUFFIX}" ; then
+        GLU_LIB_PATH=""
+      else
+        GLU_LIB_PATH="-L${idir}"
+      fi
+      break
+    fi
+    # under IRIX ?
+    if test -r "${idir}/libGLU.sl"; then
+      AC_MSG_RESULT(in ${idir})
+      if test "x${idir}" = "x/usr/lib${LIB_LOCATION_SUFFIX}" ; then
+        GLU_LIB_PATH=""
+      else
+        GLU_LIB_PATH="-L${idir}"
+      fi
+      break
+    fi
+  done
+  LDFLAGS_old="${LDFLAGS}"
+  LDFLAGS="${LDFLAGS} ${OGL_LIBS} ${GLU_LIB_PATH}"
+  AC_CHECK_LIB([GLU],
+               [gluBeginSurface],
+               [OpenGL_libs_ok=yes],
+               [OpenGL_libs_ok=no])
+  if test "x${OpenGL_libs_ok}" = "xyes" ; then
+    AC_TRY_LINK([],
+                [],
+                [OpenGL_libs_ok=yes ; OGL_LIBS="${OGL_LIBS} ${GLU_LIB_PATH} -lGLU"],
+                [OpenGL_libs_ok=no])
+  fi
+  LDFLAGS="$LDFLAGS_old"
 fi
 
+if test "x${OpenGL_headers_ok}" = "xyes" ; then
+  if test "x${OpenGL_libs_ok}" = "xyes" ; then
+    OpenGL_ok=yes
+  fi
+fi
 
-OpenGLU_ok=no
-LDFLAGS_old="$LDFLAGS"
-LDFLAGS="$LDFLAGS $OGL_LIBS"
-AC_CHECK_LIB(GLU,gluBeginSurface,OpenGLU_ok=yes,OpenGLU_ok=no)
-LDFLAGS="$LDFLAGS_old"
+AC_MSG_RESULT(for OpenGL_headers_ok: $OpenGL_headers_ok)
+AC_MSG_RESULT(for OpenGL_libs_ok: $OpenGL_libs_ok)
+AC_MSG_RESULT(for OpenGL_ok: $OpenGL_ok)
 
-if test "x$OpenGLU_ok" = "xyes" ; then
-  OGL_LIBS="$OGL_LIBS -lGLU"
-fi
+AC_SUBST(OGL_INCLUDES)
+AC_SUBST(OGL_LIBS)
 
-# Save cache
-AC_CACHE_SAVE
+AC_LANG_RESTORE
 
 ])dnl
index ee024efaf8fc2c8caa136b4e12028a1dfe9d430c..7be124e24b4a5f2d68c2ade5bfefc10cb0f36845 100644 (file)
@@ -4,6 +4,7 @@ AC_DEFUN([CHECK_PYQT],[
 AC_REQUIRE([CHECK_PYTHON])dnl
 AC_REQUIRE([CHECK_QT])dnl
 AC_REQUIRE([CHECK_SIP])dnl
+AC_REQUIRE([AC_LINKER_OPTIONS])dnl
 
 AC_LANG_SAVE
 AC_LANG_CPLUSPLUS
@@ -119,15 +120,15 @@ if test "x${PYQTDIR}" != "x"; then
     fi
   fi
   if test "x$pyqt_lib_ok" == "xno"; then
-    dnl try {PYQTDIR}/lib/python${PYTHON_VERSION}/site-packages
-    if test -d {PYQTDIR}/lib/python${PYTHON_VERSION}/site-packages; then
-      AC_CHECK_FILE(${PYQTDIR}/lib/python${PYTHON_VERSION}/site-packages/libqtcmodule.so,pyqt_lib_ok=yes,pyqt_lib_ok=no)
+    dnl try {PYQTDIR}/lib${LIB_LOCATION_SUFFIX}/python${PYTHON_VERSION}/site-packages
+    if test -d {PYQTDIR}/lib${LIB_LOCATION_SUFFIX}/python${PYTHON_VERSION}/site-packages; then
+      AC_CHECK_FILE(${PYQTDIR}/lib${LIB_LOCATION_SUFFIX}/python${PYTHON_VERSION}/site-packages/libqtcmodule.so,pyqt_lib_ok=yes,pyqt_lib_ok=no)
       if test "x$pyqt_lib_ok" == "xyes"; then
-        PYQT_LIBS="-L${PYQTDIR}/lib/python${PYTHON_VERSION}/site-packages -lqtcmodule"
+        PYQT_LIBS="-L${PYQTDIR}/lib${LIB_LOCATION_SUFFIX}/python${PYTHON_VERSION}/site-packages -lqtcmodule"
       else 
-        AC_CHECK_FILE(${PYQTDIR}/lib/python${PYTHON_VERSION}/site-packages/qt.so,pyqt_lib_ok=yes,pyqt_lib_ok=no)
+        AC_CHECK_FILE(${PYQTDIR}/lib${LIB_LOCATION_SUFFIX}/python${PYTHON_VERSION}/site-packages/qt.so,pyqt_lib_ok=yes,pyqt_lib_ok=no)
         if test "x$pyqt_lib_ok" == "xyes"; then
-          PYQT_LIBS="-L${PYQTDIR}/lib/python${PYTHON_VERSION}/site-packages"
+          PYQT_LIBS="-L${PYQTDIR}/lib${LIB_LOCATION_SUFFIX}/python${PYTHON_VERSION}/site-packages"
         fi
       fi
     fi
@@ -160,30 +161,30 @@ if test "x$pyqt_lib_ok" == "xno"; then
   fi
 fi
 if test "x$pyqt_lib_ok" == "xno"; then
-  dnl try ${PYTHONHOME}/lib/python${PYTHON_VERSION}/site-packages
+  dnl try ${PYTHONHOME}/lib${LIB_LOCATION_SUFFIX}/python${PYTHON_VERSION}/site-packages
   if test "x${PYTHONHOME}" != "x"; then
-    if test -d ${PYTHONHOME}/lib/python${PYTHON_VERSION}/site-packages ; then
-      AC_CHECK_FILE(${PYTHONHOME}/lib/python${PYTHON_VERSION}/site-packages/libqtcmodule.so,pyqt_lib_ok=yes,pyqt_lib_ok=no)
+    if test -d ${PYTHONHOME}/lib${LIB_LOCATION_SUFFIX}/python${PYTHON_VERSION}/site-packages ; then
+      AC_CHECK_FILE(${PYTHONHOME}/lib${LIB_LOCATION_SUFFIX}/python${PYTHON_VERSION}/site-packages/libqtcmodule.so,pyqt_lib_ok=yes,pyqt_lib_ok=no)
       if test "x$pyqt_lib_ok" == "xyes"; then
-        PYQT_LIBS="-L${PYTHONHOME}/lib/python${PYTHON_VERSION}/site-packages -lqtcmodule"
+        PYQT_LIBS="-L${PYTHONHOME}/lib${LIB_LOCATION_SUFFIX}/python${PYTHON_VERSION}/site-packages -lqtcmodule"
       else 
-        AC_CHECK_FILE(${PYTHONHOME}/lib/python${PYTHON_VERSION}/site-packages/qt.so,pyqt_lib_ok=yes,pyqt_lib_ok=no)
+        AC_CHECK_FILE(${PYTHONHOME}/lib${LIB_LOCATION_SUFFIX}/python${PYTHON_VERSION}/site-packages/qt.so,pyqt_lib_ok=yes,pyqt_lib_ok=no)
         if test "x$pyqt_lib_ok" == "xyes"; then
-          PYQT_LIBS="-L${PYTHONHOME}/lib/python${PYTHON_VERSION}/site-packages"
+          PYQT_LIBS="-L${PYTHONHOME}/lib${LIB_LOCATION_SUFFIX}/python${PYTHON_VERSION}/site-packages"
         fi
       fi
     fi
   fi   
 fi
 if test "x$pyqt_lib_ok" == "xno"; then
-  dnl try /usr/lib/python${PYTHON_VERSION}/site-packages
-  AC_CHECK_FILE(/usr/lib/python${PYTHON_VERSION}/site-packages/libqtcmodule.so,pyqt_lib_ok=yes,pyqt_lib_ok=no)
+  dnl try /usr/lib${LIB_LOCATION_SUFFIX}/python${PYTHON_VERSION}/site-packages
+  AC_CHECK_FILE(/usr/lib${LIB_LOCATION_SUFFIX}/python${PYTHON_VERSION}/site-packages/libqtcmodule.so,pyqt_lib_ok=yes,pyqt_lib_ok=no)
   if test "x$pyqt_lib_ok" == "xyes"; then
-    PYQT_LIBS="-L/usr/lib/python${PYTHON_VERSION}/site-packages -lqtcmodule"
+    PYQT_LIBS="-L/usr/lib${LIB_LOCATION_SUFFIX}/python${PYTHON_VERSION}/site-packages -lqtcmodule"
   else 
-    AC_CHECK_FILE(/usr/lib/python${PYTHON_VERSION}/site-packages/qt.so,pyqt_lib_ok=yes,pyqt_lib_ok=no)
+    AC_CHECK_FILE(/usr/lib${LIB_LOCATION_SUFFIX}/python${PYTHON_VERSION}/site-packages/qt.so,pyqt_lib_ok=yes,pyqt_lib_ok=no)
     if test "x$pyqt_lib_ok" == "xyes"; then
-      PYQT_LIBS="-L/usr/lib/python${PYTHON_VERSION}/site-packages"
+      PYQT_LIBS="-L/usr/lib${LIB_LOCATION_SUFFIX}/python${PYTHON_VERSION}/site-packages"
     fi
   fi
 fi
index ab2869c21b1cc31c76d888a91a7d219ff72715fe..ab5348319f74ebd2bcf6e7cfd168e4f63b5791bd 100644 (file)
@@ -26,8 +26,14 @@ AC_REQUIRE([AC_PROG_CXX])dnl
 AC_REQUIRE([AC_PROG_CPP])dnl
 AC_REQUIRE([AC_PROG_CXXCPP])dnl
 AC_REQUIRE([CHECK_OPENGL])dnl
+AC_REQUIRE([AC_LINKER_OPTIONS])dnl
+
+AC_CHECKING(for Qt)
+
+if test "x$OpenGL_ok" != "xyes" ; then
+   AC_MSG_WARN(Qt needs OpenGL correct configuration, check configure output)
+fi
 
-AC_CHECKING(for QT)
 qt_ok=yes
 
 AC_LANG_SAVE
@@ -117,7 +123,7 @@ then
   then
     LIBS="$LIBS -lqt-mt $OGL_LIBS"
   else
-    LIBS="$LIBS -L$QTDIR/lib -lqt-mt $OGL_LIBS"
+    LIBS="$LIBS -L$QTDIR/lib${LIB_LOCATION_SUFFIX} -lqt-mt $OGL_LIBS"
   fi
 
   CXXFLAGS_old=$CXXFLAGS
@@ -145,8 +151,8 @@ then
          QT_LIBS=" -lqt-mt"
       QT_MT_LIBS=" -lqt-mt"
     else
-         QT_LIBS="-L$QTDIR/lib -lqt-mt"
-      QT_MT_LIBS="-L$QTDIR/lib -lqt-mt"
+         QT_LIBS="-L$QTDIR/lib${LIB_LOCATION_SUFFIX} -lqt-mt"
+      QT_MT_LIBS="-L$QTDIR/lib${LIB_LOCATION_SUFFIX} -lqt-mt"
     fi
   fi
 
@@ -160,13 +166,14 @@ AC_SUBST(UIC)
 
 AC_SUBST(QT_ROOT)
 AC_SUBST(QT_INCLUDES)
+AC_SUBST(QT_MT_INCLUDES)
 AC_SUBST(QT_LIBS)
 AC_SUBST(QT_MT_LIBS)
 AC_SUBST(QT_VERS)
 
 AC_LANG_RESTORE
 
-AC_MSG_RESULT(for qt: $qt_ok)
+AC_MSG_RESULT(for Qt: $qt_ok)
 
 # Save cache
 AC_CACHE_SAVE
index 13bf909147ba480271412e1db79e227c3a09d191..d9bc23fbf59a314d74d59bc2299dd2ee7bc5509b 100644 (file)
@@ -2,6 +2,7 @@ dnl Copyright (C) 2003  CEA/DEN, EDF R&D
 
 AC_DEFUN([CHECK_QWT],[
 AC_REQUIRE([CHECK_QT])dnl
+AC_REQUIRE([AC_LINKER_OPTIONS])dnl
 
 AC_CHECKING(for qwt)
 
@@ -26,7 +27,7 @@ if test -z $QWTHOME; then
   exits_ok=no  
   if test "x$exits_ok" = "xno"; then
      for d in /usr/local /usr ; do
-        AC_CHECK_FILE(${d}/lib/libqwt.so,exits_ok=yes,exits_ok=no)
+        AC_CHECK_FILE(${d}/lib${LIB_LOCATION_SUFFIX}/libqwt.so,exits_ok=yes,exits_ok=no)
         if test "x$exits_ok" = "xyes"; then
            QWTHOME=$d
            AC_MSG_RESULT(libqwt.so detected in $d/lib)
@@ -91,7 +92,7 @@ then
   then
     LIBS="$LIBS -lqt-mt"
   else
-    LIBS="$LIBS -L$QTDIR/lib -lqt-mt"
+    LIBS="$LIBS -L$QTDIR/lib${LIB_LOCATION_SUFFIX} -lqt-mt"
   fi
   if test "x$QWTHOME" = "x/usr"
   then
index 245f2382ee200c658920e7c611dfef42445ea64a..83af9a907589fbcec47688ccca5c3218a82b25c9 100644 (file)
@@ -3,6 +3,7 @@ dnl Copyright (C) 2003  CEA/DEN, EDF R&D
 AC_DEFUN([CHECK_SIP],[
 AC_REQUIRE([CHECK_PYTHON])dnl
 AC_REQUIRE([CHECK_QT])dnl
+AC_REQUIRE([AC_LINKER_OPTIONS])dnl
 
 sip_ok=yes
 
@@ -110,44 +111,44 @@ else
        fi
 
         if test "x$sip_lib_ok" == "xno" ; then
-            dnl look for (lib)sip.so in ${SIPDIR}/lib/python${PYTHON_VERSION}/site-packages
-           if test -d ${SIPDIR}/lib/python${PYTHON_VERSION}/site-packages ; then
-               AC_CHECK_FILE(${SIPDIR}/lib/python${PYTHON_VERSION}/site-packages/libsip.so,sip_lib_ok=yes,sip_lib_ok=no)
+            dnl look for (lib)sip.so in ${SIPDIR}/lib${LIB_LOCATION_SUFFIX}/python${PYTHON_VERSION}/site-packages
+           if test -d ${SIPDIR}/lib${LIB_LOCATION_SUFFIX}/python${PYTHON_VERSION}/site-packages ; then
+               AC_CHECK_FILE(${SIPDIR}/lib${LIB_LOCATION_SUFFIX}/python${PYTHON_VERSION}/site-packages/libsip.so,sip_lib_ok=yes,sip_lib_ok=no)
                if test "x$sip_lib_ok" == "xyes" ; then
-                   SIP_LIBS="-L${SIPDIR}/lib/python${PYTHON_VERSION}/site-packages -lsip"
+                   SIP_LIBS="-L${SIPDIR}/lib${LIB_LOCATION_SUFFIX}/python${PYTHON_VERSION}/site-packages -lsip"
                else
-                   AC_CHECK_FILE(${SIPDIR}/lib/python${PYTHON_VERSION}/site-packages/sip.so,sip_lib_ok=yes,sip_lib_ok=no)
+                   AC_CHECK_FILE(${SIPDIR}/lib${LIB_LOCATION_SUFFIX}/python${PYTHON_VERSION}/site-packages/sip.so,sip_lib_ok=yes,sip_lib_ok=no)
                    if test "x$sip_lib_ok" == "xyes" ; then
-                       SIP_LIBS="-L${SIPDIR}/lib/python${PYTHON_VERSION}/site-packages"
+                       SIP_LIBS="-L${SIPDIR}/lib${LIB_LOCATION_SUFFIX}/python${PYTHON_VERSION}/site-packages"
                    fi
                fi
            fi
        fi
     fi
     if test "x$sip_lib_ok" == "xno" ; then
-        dnl look for (lib)sip.so in ${PYTHON_PREFIX}/lib/python${PYTHON_VERSION}/site-packages
-       if test -d ${PYTHON_PREFIX}/lib/python${PYTHON_VERSION}/site-packages ; then
-            AC_CHECK_FILE(${PYTHON_PREFIX}/lib/python${PYTHON_VERSION}/site-packages/libsip.so,sip_lib_ok=yes,sip_lib_ok=no)
+        dnl look for (lib)sip.so in ${PYTHON_PREFIX}/lib${LIB_LOCATION_SUFFIX}/python${PYTHON_VERSION}/site-packages
+       if test -d ${PYTHON_PREFIX}/lib${LIB_LOCATION_SUFFIX}/python${PYTHON_VERSION}/site-packages ; then
+            AC_CHECK_FILE(${PYTHON_PREFIX}/lib${LIB_LOCATION_SUFFIX}/python${PYTHON_VERSION}/site-packages/libsip.so,sip_lib_ok=yes,sip_lib_ok=no)
            if test "x$sip_lib_ok" == "xyes" ; then
-               SIP_LIBS="-L${PYTHON_PREFIX}/lib/python${PYTHON_VERSION}/site-packages -lsip"
+               SIP_LIBS="-L${PYTHON_PREFIX}/lib${LIB_LOCATION_SUFFIX}/python${PYTHON_VERSION}/site-packages -lsip"
            else
-               AC_CHECK_FILE(${PYTHON_PREFIX}/lib/python${PYTHON_VERSION}/site-packages/sip.so,sip_lib_ok=yes,sip_lib_ok=no)
+               AC_CHECK_FILE(${PYTHON_PREFIX}/lib${LIB_LOCATION_SUFFIX}/python${PYTHON_VERSION}/site-packages/sip.so,sip_lib_ok=yes,sip_lib_ok=no)
                 if test "x$sip_lib_ok" == "xyes" ; then
-                   SIP_LIBS="-L${PYTHON_PREFIX}/lib/python${PYTHON_VERSION}/site-packages"
+                   SIP_LIBS="-L${PYTHON_PREFIX}/lib${LIB_LOCATION_SUFFIX}/python${PYTHON_VERSION}/site-packages"
                 fi
            fi
        fi
     fi
     if test "x$sip_lib_ok" == "xno" ; then
-        dnl look for (lib)sip.so in /usr/lib/python${PYTHON_VERSION}/site-packages
-       if test -d /usr/lib/python${PYTHON_VERSION}/site-packages ; then
-            AC_CHECK_FILE(/usr/lib/python${PYTHON_VERSION}/site-packages/libsip.so,sip_lib_ok=yes,sip_lib_ok=no)
+        dnl look for (lib)sip.so in /usr/lib${LIB_LOCATION_SUFFIX}/python${PYTHON_VERSION}/site-packages
+       if test -d /usr/lib${LIB_LOCATION_SUFFIX}/python${PYTHON_VERSION}/site-packages ; then
+            AC_CHECK_FILE(/usr/lib${LIB_LOCATION_SUFFIX}/python${PYTHON_VERSION}/site-packages/libsip.so,sip_lib_ok=yes,sip_lib_ok=no)
            if test "x$sip_lib_ok" == "xyes" ; then
-               SIP_LIBS="-L$/usr/lib/python${PYTHON_VERSION}/site-packages -lsip"
+               SIP_LIBS="-L$/usr/lib${LIB_LOCATION_SUFFIX}/python${PYTHON_VERSION}/site-packages -lsip"
            else
-               AC_CHECK_FILE(/usr/lib/python${PYTHON_VERSION}/site-packages/sip.so,sip_lib_ok=yes,sip_lib_ok=no)
+               AC_CHECK_FILE(/usr/lib${LIB_LOCATION_SUFFIX}/python${PYTHON_VERSION}/site-packages/sip.so,sip_lib_ok=yes,sip_lib_ok=no)
                 if test "x$sip_lib_ok" == "xyes" ; then
-                   SIP_LIBS="-L/usr/lib/python${PYTHON_VERSION}/site-packages"
+                   SIP_LIBS="-L/usr/lib${LIB_LOCATION_SUFFIX}/python${PYTHON_VERSION}/site-packages"
                fi
             fi
        fi
index df9245b5de903be1c160a1b0b9c6b232ded6f716..a0733ebc35f45fbb17b929c86fd4bd588085e2bc 100644 (file)
@@ -25,6 +25,7 @@ AC_REQUIRE([AC_PROG_CC])dnl
 AC_REQUIRE([AC_PROG_CXX])dnl
 AC_REQUIRE([AC_PROG_CPP])dnl
 AC_REQUIRE([AC_PROG_CXXCPP])dnl
+AC_REQUIRE([AC_LINKER_OPTIONS])dnl
 
 AC_CHECKING(for VTK)
 
@@ -41,13 +42,11 @@ VTKPY_MODULES=""
 
 vtk_ok=no
 
-AC_PATH_X
-
-if test "x$OpenGL_ok" != "xyes"
-then
-   AC_MSG_WARN(vtk needs OpenGL correct configuration, check configure output)
+if test "x$OpenGL_ok" != "xyes" ; then
+   AC_MSG_WARN(VTK needs OpenGL correct configuration, check configure output)
 fi
 
+AC_PATH_X
 if test "x$x_libraries" != "x"
 then
    LXLIB="-L$x_libraries"
@@ -86,8 +85,8 @@ fi
 if test ! -z $VTKHOME
 then
    LOCAL_INCLUDES="-I$VTKHOME/include/vtk $LOCAL_INCLUDES"
-   LOCAL_LIBS="-L$VTKHOME/lib/vtk $LOCAL_LIBS"
-   TRY_LINK_LIBS="-L$VTKHOME/lib/vtk $TRY_LINK_LIBS"
+   LOCAL_LIBS="-L$VTKHOME/lib${LIB_LOCATION_SUFFIX}/vtk -L$VTKHOME/lib${LIB_LOCATION_SUFFIX}/vtk/python $LOCAL_LIBS"
+   TRY_LINK_LIBS="-L$VTKHOME/lib${LIB_LOCATION_SUFFIX}/vtk -L$VTKHOME/lib${LIB_LOCATION_SUFFIX}/vtk/python $TRY_LINK_LIBS"
 fi
 
 dnl vtk headers
@@ -115,10 +114,10 @@ AC_CHECK_HEADER(vtkPlane.h,vtk_ok="yes",vtk_ok="no")
  dnl  VTKPY_MODULES="$VTKHOME/python"
 
    AC_CACHE_VAL(salome_cv_lib_vtk,[
-     AC_TRY_LINK(
-#include "vtkPlane.h"
-,   vtkPlane *p = vtkPlane::New();,
-    eval "salome_cv_lib_vtk=yes",eval "salome_cv_lib_vtk=no")
+     AC_TRY_LINK([#include "vtkPlane.h"],
+                [vtkPlane::New()],
+                [salome_cv_lib_vtk=yes],
+                [salome_cv_lib_vtk=no])
   ])
   vtk_ok="$salome_cv_lib_vtk"
   LIBS="$LIBS_old"
@@ -128,21 +127,19 @@ fi
 
 if  test "x$vtk_ok" = "xno"
 then
-  AC_MSG_RESULT("no")
+  AC_MSG_RESULT(no)
   AC_MSG_WARN(unable to link with vtk library)
 else
-  AC_MSG_RESULT("yes")
+  AC_MSG_RESULT(yes)
   VTK_LIBS="$LOCAL_LIBS"
   VTK_MT_LIBS="$LOCAL_LIBS"
 fi
 
-AC_MSG_RESULT("for vtk: $vtk_ok")
+AC_MSG_RESULT(for VTK: $vtk_ok)
 
 AC_LANG_RESTORE
 
 # Save cache
 AC_CACHE_SAVE
 
-])dnl
-
-
+])dnl
\ No newline at end of file
index 78506b08c9c79ac91a197b7051982f92616ff48e..0a5de34a29e99c83951c17beb44823ee34a6a662 100644 (file)
@@ -19,8 +19,8 @@ HAVE_SSTREAM=@HAVE_SSTREAM@
 
 LIBS=@LIBS@ 
 LIBSFORBIN=@LIBS@
-LDFLAGS=@LDFLAGS@ -L$(top_builddir)/lib/salome -Xlinker -rpath-link -Xlinker -L$(top_builddir)/lib/salome
-LDFLAGSFORBIN=@LDFLAGS@ -L$(top_builddir)/lib/salome
+LDFLAGS=@LDFLAGS@ -L$(top_builddir)/lib@LIB_LOCATION_SUFFIX@/salome
+LDFLAGSFORBIN=@LDFLAGS@ -L$(top_builddir)/lib@LIB_LOCATION_SUFFIX@/salome
 # add libstdc++ to link c++ library with libtool !
 LDFLAGS+= -lstdc++
 LDFLAGSFORBIN+= -lstdc++
@@ -62,8 +62,8 @@ PYTHONHOME = @PYTHONHOME@
 PYTHON_INCLUDES = @PYTHON_INCLUDES@
 PYTHON_LIBS = @PYTHON_LIBS@
 PYTHON_VERSION = @PYTHON_VERSION@
-PYTHON_SITE = $(prefix)/lib/python$(PYTHON_VERSION)/site-packages
-PYTHON_SITE_INSTALL = $(prefix)/lib/python$(PYTHON_VERSION)/site-packages/salome
+PYTHON_SITE = $(prefix)/lib@LIB_LOCATION_SUFFIX@/python$(PYTHON_VERSION)/site-packages
+PYTHON_SITE_INSTALL = $(prefix)/lib@LIB_LOCATION_SUFFIX@/python$(PYTHON_VERSION)/site-packages/salome
 # QT
 
 QT_ROOT = @QT_ROOT@
@@ -116,12 +116,6 @@ HDF5_MT_LIBS=@HDF5_MT_LIBS@
 OCC_INCLUDES=@CAS_CPPFLAGS@
 OCC_CXXFLAGS=@CAS_CXXFLAGS@
 
-#OCC_KERNEL_LIBS=@CAS_KERNEL@
-#OCC_OCAF_LIBS=@CAS_OCAF@
-#OCC_VIEWER_LIBS=@CAS_VIEWER@
-#OCC_MODELER_LIBS=@CAS_MODELER@
-#OCC_DATAEXCHANGE_LIBS=@CAS_DATAEXCHANGE@
-#OCC_LIBS=@CAS_LDFLAGS@
 CAS_KERNEL=@CAS_KERNEL@
 CAS_MATH=@CAS_MATH@
 CAS_OCAF=@CAS_OCAF@
@@ -131,6 +125,7 @@ CAS_VIEWER=@CAS_VIEWER@
 CAS_MODELER=@CAS_MODELER@
 CAS_DATAEXCHANGE=@CAS_DATAEXCHANGE@
 CAS_LDPATH=@CAS_LDPATH@
+
 # MPICH
 
 MPICH_INCLUDES=@MPICH_INCLUDES@
@@ -183,11 +178,9 @@ IDL_SRV_OBJ = @IDL_SRV_OBJ@
 CPPFLAGS+= $(CORBA_INCLUDES) 
 CXXFLAGS+= $(CORBA_CXXFLAGS)
 
-# add corba libs when link salome application ! 
-#LDFLAGS+= $(CORBA_LIBS)
-#LIBS+=$(CORBA_LIBS)
-
 DOXYGEN = @DOXYGEN@
+DOXYGEN_WITH_PYTHON = @DOXYGEN_WITH_PYTHON@
+DOXYGEN_WITH_STL = @DOXYGEN_WITH_STL@
 
 ## Shared libraries
 LT_STATIC_EXEC=@LT_STATIC_EXEC@
@@ -209,16 +202,22 @@ INSTALL_DATA=@INSTALL_DATA@
 # create a symbolic link (or a copie ?)
 LN_S=@LN_S@
 
+KERNEL_ROOT_DIR=@KERNEL_ROOT_DIR@
+KERNEL_SITE_DIR=@KERNEL_SITE_DIR@
+
+KERNEL_LDFLAGS=@KERNEL_LDFLAGS@
+KERNEL_CXXFLAGS=@KERNEL_CXXFLAGS@
+
 ## Installation points
 prefix=@prefix@
 exec_prefix=@exec_prefix@
-bindir=@bindir@/salome
-libdir=@libdir@/salome
+bindir=@exec_prefix@/bin/salome
+libdir=@exec_prefix@/lib@LIB_LOCATION_SUFFIX@/salome
 # warning : if user give this path in configure we could have salome/salome :-(
 includedir=@includedir@/salome
 datadir=@datadir@/salome
 idldir=${prefix}/idl/salome
-sharedpydir=@libdir@/python$(PYTHON_VERSION)/site-packages/salome/shared_modules
+sharedpydir=@exec_prefix@/lib@LIB_LOCATION_SUFFIX@/python$(PYTHON_VERSION)/site-packages/salome/shared_modules
 incmakedir=${prefix}/salome_adm/unix
 
 docdir=${prefix}/doc/salome
@@ -246,7 +245,13 @@ all:
 Makefile: $(top_builddir)/config.status $(srcdir)/Makefile.in
        cd $(top_builddir) ; ./config.status
 
-$(top_builddir)/config.status: $(top_srcdir)/configure
+LOCAL_MAKE = make_commence make_conclude make_omniorb
+
+KERNEL_MAKE = make_module depend SALOMEconfig.h F77config.h sstream envScript
+
+$(top_builddir)/config.status: $(top_srcdir)/configure \
+                              $(LOCAL_MAKE:%=$(top_srcdir)/adm_local/unix/%.in) \
+                              $(KERNEL_MAKE:%=$(KERNEL_ROOT_DIR)/salome_adm/unix/%.in)
        cd $(top_builddir) ; ./config.status --recheck
 
 # VPATH contain $(srcdir), so make configure is good in top_srcdir and we must add target configure otherwise :-)
@@ -267,4 +272,4 @@ check_sip.m4                       check_msg2qm.m4    check_pyqt.m4 \
 check_opengl.m4
 
 $(top_srcdir)/aclocal.m4: $(ACLOCAL_SRC:%=$(top_srcdir)/adm_local/unix/config_files/%)
-       cd $(top_srcdir) ; aclocal --acdir=adm_local/unix/config_files -I @KERNEL_ROOT_DIR@/salome_adm/unix/config_files
+       cd $(top_srcdir) ; aclocal -adm_local/unix/config_files -I @KERNEL_ROOT_DIR@/salome_adm/unix/config_files
index c79350747cc0dd1bf2df872099c46d5d198f10cc..b10f5dbc06521d053ef1a4b3feb636867cd0e44d 100644 (file)
@@ -48,10 +48,10 @@ LIB_OBJ_F    = $(patsubst %.f,   %.lo, $(filter %.f, $(LIB_SRC)))
 # all libtool obj file in library
 LIB_OBJ = $(LIB_OBJ_CXX) $(LIB_OBJ_CC) $(LIB_OBJ_C) $(LIB_CLIENT_OBJ:%.o=%.lo) $(LIB_SERVER_OBJ:%.o=%.lo) $(LIB_SWIG_OBJ) $(LIB_OBJ_F)
 
-# LIB_BUILD = $(LIB:%.la=$(top_builddir)/lib/salome/%.la)
-LIB_BUILD = $(patsubst %.la, $(top_builddir)/lib/salome/%.la, $(filter %.la, $(LIB)))
-LIB_BUILD_A = $(patsubst %.a, $(top_builddir)/lib/salome/%.a, $(filter %.a, $(LIB)))
-LIB_BUILD_SO = $(patsubst %.so, $(top_builddir)/lib/salome/%.so, $(filter %.so, $(LIB)))
+# LIB_BUILD = $(LIB:%.la=$(top_builddir)/lib@LIB_LOCATION_SUFFIX@/salome/%.la)
+LIB_BUILD = $(patsubst %.la, $(top_builddir)/lib@LIB_LOCATION_SUFFIX@/salome/%.la, $(filter %.la, $(LIB)))
+LIB_BUILD_A = $(patsubst %.a, $(top_builddir)/lib@LIB_LOCATION_SUFFIX@/salome/%.a, $(filter %.a, $(LIB)))
+LIB_BUILD_SO = $(patsubst %.so, $(top_builddir)/lib@LIB_LOCATION_SUFFIX@/salome/%.so, $(filter %.so, $(LIB)))
 
 ifneq ($(findstring cmodule.la,$(filter %.la, $(LIB))),)
 ifneq ($(GUI_DISABLE_CORBA),yes)
@@ -66,7 +66,7 @@ endif
 lib: $(LIB_BUILD) $(LIB_BUILD_SO) $(LIB_CLIENT_PY)
 # we don't build static library !
 
-$(LIB_BUILD): $(top_builddir)/lib/salome/%.la: %.la
+$(LIB_BUILD): $(top_builddir)/lib@LIB_LOCATION_SUFFIX@/salome/%.la: %.la
        -$(RM) $@
        -$(RM) $(patsubst %.la, %.so, $@)
        -$(RM) $(patsubst %.la, %.a, $@)
@@ -77,14 +77,14 @@ $(LIB_BUILD): $(top_builddir)/lib/salome/%.la: %.la
              $(patsubst %.la, %.so, $@).0 || true
 
        if ! test -z $(LIB_SWIG) ; then \
-          ln -sf $(patsubst %.la,%.so, $(CURDIR)/.libs/$<) $(top_builddir)/lib/salome/_$(LIB_SWIG) || true;\
+          ln -sf $(patsubst %.la,%.so, $(CURDIR)/.libs/$<) $(top_builddir)/lib@LIB_LOCATION_SUFFIX@/salome/_$(LIB_SWIG) || true;\
        fi;
 
-$(LIB_BUILD_A): $(top_builddir)/lib/salome/%.a: %.a
+$(LIB_BUILD_A): $(top_builddir)/lib@LIB_LOCATION_SUFFIX@/salome/%.a: %.a
        -$(RM) $@
        ln -sf $(CURDIR)/$< $@ || true
 
-$(LIB_BUILD_SO): $(top_builddir)/lib/salome/%.so: %.so
+$(LIB_BUILD_SO): $(top_builddir)/lib@LIB_LOCATION_SUFFIX@/salome/%.so: %.so
        -$(RM) $@
        ln -sf $(CURDIR)/$< $@ || true
 
@@ -154,7 +154,7 @@ $(DEST_UI_PY_FILES): $(top_builddir)/bin/salome/%: %
 
 # copy pyqt files in $(PYTHON_SHARED_SITE)
 #
-PYTHON_SHARED_SITE=$(top_builddir)/lib/python$(PYTHON_VERSION)/site-packages/salome/shared_modules
+PYTHON_SHARED_SITE=$(top_builddir)/lib@LIB_LOCATION_SUFFIX@/python$(PYTHON_VERSION)/site-packages/salome/shared_modules
 
 $(PYTHON_SHARED_SITE):
        $(INSTALL) -d  $@
@@ -343,10 +343,10 @@ clean: mostlyclean
        -$(RM) $(LIB) $(TEST_PROGS) $(BIN) $(CLEAN)
        -$(RM) TAGS *~ *# core *.core 
        -$(RM) -r .libs
-       -$(RM) $(top_builddir)/lib/salome/$(LIB)
+       -$(RM) $(top_builddir)/lib@LIB_LOCATION_SUFFIX@/salome/$(LIB)
        -$(RM) $(patsubst %,$(top_builddir)/bin/salome/%, $(BIN))
-       -$(RM) $(patsubst %.la, %.so, $(top_builddir)/lib/salome/$(LIB))
-       -$(RM) $(patsubst %.la, %.a, $(top_builddir)/lib/salome/$(LIB))
+       -$(RM) $(patsubst %.la, %.so, $(top_builddir)/lib@LIB_LOCATION_SUFFIX@/salome/$(LIB))
+       -$(RM) $(patsubst %.la, %.a, $(top_builddir)/lib@LIB_LOCATION_SUFFIX@/salome/$(LIB))
 # remove idl generated files (sources)
        -$(RM) $(LIB_CLIENT_SRC) $(LIB_SERVER_SRC) $(BIN_CLIENT_SRC) $(BIN_SERVER_SRC)
 # remove idl generated files (headers)
index f31d619c48c5311a49e8802a93925b9c7cf339cc..45addf10a487fdebadebe49c66cef657fd04c99c 100755 (executable)
@@ -1 +1 @@
-THIS IS SALOME - SALOMEGUI VERSION: 3.2.0a2
+THIS IS SALOME - SALOMEGUI VERSION: 3.2.0b1
index f99a8125fd4d4685680b315d2c4d2360adbb9e12..ce5b7c4cc2515b35c4e0521bbc85d93ddab53043 100755 (executable)
@@ -1,3 +1,21 @@
+#  Copyright (C) 2005  CEA/DEN, EDF R&D, OPEN CASCADE, PRINCIPIA R&D
+#
+#  This library is free software; you can redistribute it and/or
+#  modify it under the terms of the GNU Lesser General Public
+#  License as published by the Free Software Foundation; either
+#  version 2.1 of the License.
+#
+#  This library is distributed in the hope that it will be useful,
+#  but WITHOUT ANY WARRANTY; without even the implied warranty of
+#  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+#  Lesser General Public License for more details.
+#
+#  You should have received a copy of the GNU Lesser General Public
+#  License along with this library; if not, write to the Free Software
+#  Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307 USA
+#
+#  See http://www.salome-platform.org/
+#
 #!/bin/bash -f
 
 if [ -z "$SUITRoot" ] ; then          
index fad9468f81cbaa63a86d0576f7b4613576109760..b36fde32a040f9410efa03b56cda2d0a4a048cfc 100755 (executable)
@@ -124,10 +124,10 @@ echo "    ./salome_adm/unix/SALOMEconfig.h \\" >> configure.in_tmp1
 echo " ./salome_adm/unix/F77config.h \\" >> configure.in_tmp1
 echo " ./salome_adm/unix/sstream \\" >> configure.in_tmp1
 echo " ./salome_adm/unix/depend \\" >> configure.in_tmp1
-echo " ./adm_local/unix/make_omniorb \\" >> configure.in_tmp1
+echo " ./adm_local/unix/make_omniorb:${ABS_CONF_DIR}/adm_local/unix/make_omniorb.in \\" >> configure.in_tmp1
 echo " ./salome_adm/unix/envScript \\" >> configure.in_tmp1
-echo " ./adm_local/unix/make_commence \\" >> configure.in_tmp1
-echo " ./adm_local/unix/make_conclude \\" >> configure.in_tmp1
+echo " ./adm_local/unix/make_commence:${ABS_CONF_DIR}/adm_local/unix/make_commence.in \\" >> configure.in_tmp1
+echo " ./adm_local/unix/make_conclude:${ABS_CONF_DIR}/adm_local/unix/make_conclude.in \\" >> configure.in_tmp1
 echo " ./salome_adm/unix/make_module \\" >> configure.in_tmp1
 
 \rm -f configure.in_tmp2 configure.in_tmp3
index f593bc607567fcd988f60fd1b1ace9635070f1c7..86fc9ff5dbac9f8dc0c9a41e83122329eea629e7 100644 (file)
@@ -512,9 +512,9 @@ fi
 
 # make other build directories
 if test "$GUI_DISABLE_CORBA" == "yes"; then 
-dir_variables="salome_adm adm_local doc bin/salome include/salome lib/salome share/salome/resources idl"
+  dir_variables="salome_adm adm_local doc bin/salome include/salome lib${LIB_LOCATION_SUFFIX}/salome share/salome/resources idl"
 else
-dir_variables="salome_adm adm_local doc bin/salome include/salome lib/salome share/salome/resources"
+  dir_variables="salome_adm adm_local doc bin/salome include/salome lib${LIB_LOCATION_SUFFIX}/salome share/salome/resources"
 fi
 
 for rep in $dir_variables
index 7295ede75128e9e51b474f63ed9f8d7a128bb3df..9bd6e8ef503687b0a099da1b11e7397a04b37557 100644 (file)
@@ -1,3 +1,21 @@
+#  Copyright (C) 2005  CEA/DEN, EDF R&D, OPEN CASCADE, PRINCIPIA R&D
+#
+#  This library is free software; you can redistribute it and/or
+#  modify it under the terms of the GNU Lesser General Public
+#  License as published by the Free Software Foundation; either
+#  version 2.1 of the License.
+#
+#  This library is distributed in the hope that it will be useful,
+#  but WITHOUT ANY WARRANTY; without even the implied warranty of
+#  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+#  Lesser General Public License for more details.
+#
+#  You should have received a copy of the GNU Lesser General Public
+#  License along with this library; if not, write to the Free Software
+#  Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307 USA
+#
+#  See http://www.salome-platform.org/
+#
 
 # -* Makefile *- 
 #
index ca1d6f2826c1a5198014aa244b03d8c43971244d..c41b5206d4668ca5da35b994c10d31f592e17472 100644 (file)
@@ -1,3 +1,21 @@
+#  Copyright (C) 2005  CEA/DEN, EDF R&D, OPEN CASCADE, PRINCIPIA R&D
+#
+#  This library is free software; you can redistribute it and/or
+#  modify it under the terms of the GNU Lesser General Public
+#  License as published by the Free Software Foundation; either
+#  version 2.1 of the License.
+#
+#  This library is distributed in the hope that it will be useful,
+#  but WITHOUT ANY WARRANTY; without even the implied warranty of
+#  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+#  Lesser General Public License for more details.
+#
+#  You should have received a copy of the GNU Lesser General Public
+#  License along with this library; if not, write to the Free Software
+#  Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307 USA
+#
+#  See http://www.salome-platform.org/
+#
 
 # -* Makefile *- 
 #
diff --git a/doc/salome/gui/KERNEL/dump_study.htm b/doc/salome/gui/KERNEL/dump_study.htm
new file mode 100755 (executable)
index 0000000..570547c
--- /dev/null
@@ -0,0 +1,167 @@
+<!doctype HTML public "-//W3C//DTD HTML 4.0 Frameset//EN">\r
+\r
+<html>\r
+\r
+<head>\r
+<title>Dump Study</title>\r
+<meta http-equiv="content-type" content="text/html; charset=windows-1252">\r
+<meta name="generator" content="RoboHelp by eHelp Corporation www.ehelp.com">\r
+<link rel="stylesheet" href="default_ns.css"><script type="text/javascript" language="JavaScript" title="WebHelpSplitCss">\r
+<!--\r
+if (navigator.appName !="Netscape")\r
+{   document.write("<link rel='stylesheet' href='default.css'>");}\r
+//-->\r
+</script>\r
+<style type="text/css">\r
+<!--\r
+p.whs1 { font-weight:bold; margin-left:40px; }\r
+img_whs2 { border:none; width:461px; height:270px; float:none; border-style:none; }\r
+ul.whs3 { list-style:disc; }\r
+p.whs4 { margin-left:48px; }\r
+p.whs5 { font-family:'Times New Roman' , serif; margin-left:40px; }\r
+p.whs6 { margin-left:0px; }\r
+p.whs7 { margin-left:40px; }\r
+-->\r
+</style><script type="text/javascript" language="JavaScript">\r
+<!--\r
+if ((navigator.appName == "Netscape") && (parseInt(navigator.appVersion) == 4))\r
+{\r
+  var strNSS = "<style type='text/css'>";\r
+  strNSS += "p.whs6 {margin-left:1pt; }";\r
+  strNSS +="</style>";\r
+  document.write(strNSS);\r
+}\r
+//-->\r
+</script>\r
+<script type="text/javascript" language="JavaScript" title="WebHelpInlineScript">\r
+<!--\r
+function reDo() {\r
+  if (innerWidth != origWidth || innerHeight != origHeight)\r
+     location.reload();\r
+}\r
+if ((parseInt(navigator.appVersion) == 4) && (navigator.appName == "Netscape")) {\r
+       origWidth = innerWidth;\r
+       origHeight = innerHeight;\r
+       onresize = reDo;\r
+}\r
+onerror = null; \r
+//-->\r
+</script>\r
+<style type="text/css">\r
+<!--\r
+div.WebHelpPopupMenu { position:absolute; left:0px; top:0px; z-index:4; visibility:hidden; }\r
+-->\r
+</style><script type="text/javascript" language="javascript1.2" src="whmsg.js"></script>\r
+<script type="text/javascript" language="javascript" src="whver.js"></script>\r
+<script type="text/javascript" language="javascript1.2" src="whproxy.js"></script>\r
+<script type="text/javascript" language="javascript1.2" src="whutils.js"></script>\r
+<script type="text/javascript" language="javascript1.2" src="whtopic.js"></script>\r
+</head>\r
+<body><script type="text/javascript" language="javascript1.2">\r
+<!--\r
+if (window.gbWhTopic)\r
+{\r
+       if (window.addTocInfo)\r
+       {\r
+       addTocInfo("GUI module\nStudy management\nWorking with Python Scripts");\r
+addButton("show",BTN_TEXT,"Show","","","","",0,0,"","","");\r
+\r
+       }\r
+       if (window.writeBtnStyle)\r
+               writeBtnStyle();\r
+\r
+       if (window.writeIntopicBar)\r
+               writeIntopicBar(1);\r
+\r
+       if (window.setRelStartPage)\r
+       {\r
+       setRelStartPage("kernel.htm");\r
+\r
+               autoSync(1);\r
+               sendSyncInfo();\r
+               sendAveInfoOut();\r
+       }\r
+}\r
+else\r
+       if (window.gbIE4)\r
+               document.location.reload();\r
+//-->\r
+</script>\r
+<h1>Working with Python Scripts</h1>\r
+\r
+<p><span style="font-weight: bold;"><B>SALOME </B></span>Platform can be launched \r
+ in the batch mode, without Graphical User Interface, and operated with \r
+ the use of Python scripts, which can fulfill most of the necessary tasks, \r
+ however, the process of scripting is quite time consuming and rather error-prone. \r
+ </p>\r
+\r
+<p>This problem has been resolved by the possibility to automatically generate \r
+ a set of Python scripts from data created with SALOME GUI, which greatly \r
+ increases the productivity of using SALOME platform in the batch mode. \r
+ This mechanism can convert a SALOMEDS Study in one or several Python scripts, \r
+ which can be stored and imported later to re-create the content of the \r
+ original study. The first script is a SALOMEDS document, which re-creates \r
+ the SALOMEDS Study, adds the stored Salome components to the SALOMEDS \r
+ and automatically calls Python scripts of the second type containing component \r
+ specific Python function calls. This architecture gives great flexibility \r
+ in manual modification of the generated scripts because you can modify \r
+ only one of the component specific Python scripts without touching others, \r
+ thus avoiding expert knowledge of Python API of unused components. </p>\r
+\r
+<p>&nbsp;</p>\r
+\r
+<p>To Dump a &nbsp;SALOME \r
+ Study in one or several scripts, in the main menu select <span style="font-weight: bold;"><B>File</B></span> \r
+ --&gt; <span style="font-weight: bold;"><B>Dump study</B></span></p>\r
+\r
+<p>The following dialog box allowing to browse for the location and define \r
+ the name for a Python file will appear: </p>\r
+\r
+<p>&nbsp;</p>\r
+\r
+<p class="whs1"><img src="pics/dumpstudy.png" x-maintain-ratio="TRUE" width="461px" height="270px" border="0" class="img_whs2"></p>\r
+\r
+<p>&nbsp;</p>\r
+\r
+<ul type="disc" class="whs3">\r
+       \r
+       <li class=kadov-p><p class="whs4"><span style="font-weight: bold;"><B>Publish \r
+ in study - </B></span>if checked in, the component objects created by Python \r
+ commands will be published in the created Study when the script is played, \r
+ otherwise the objects will not be published in the Study.</p></li>\r
+       \r
+       <li class=kadov-p><p class="whs4"><span style="font-weight: bold;"><B>Save \r
+ GUI state</B></span> - if checked in, the current application layout will \r
+ be saved in the Python file. &nbsp;</p></li>\r
+</ul>\r
+\r
+<p>&nbsp;</p>\r
+\r
+<p class="whs5">To \r
+ confirm your choice click <span style="font-weight: bold;"><B>Save</B></span>.</p>\r
+\r
+<p class="whs5">&nbsp;</p>\r
+\r
+<p class="whs6">Reversibly it is possible to load a saved \r
+ Python Script selecting in the main menu <span style="font-weight: bold;"><B>File</B></span> \r
+ -&gt; <span style="font-weight: bold;"><B>Load Script</B></span>. </p>\r
+\r
+<p class="whs6">&nbsp;</p>\r
+\r
+<p class="whs7"><img src="pics/loadscript.png" x-maintain-ratio="TRUE" width="461px" height="270px" border="0" class="img_whs2"></p>\r
+\r
+<p>&nbsp;</p>\r
+\r
+<p class="whs5">To \r
+ confirm your choice click <span style="font-weight: bold;"><B>Open.</B></span></p>\r
+\r
+<p>&nbsp;</p>\r
+\r
+<script type="text/javascript" language="javascript1.2">\r
+<!--\r
+if (window.writeIntopicBar)\r
+       writeIntopicBar(0);\r
+//-->\r
+</script>\r
+</body>\r
+</html>\r
index eaca47940df016ec61552f75e6a679cc4ce8f123..805c29b9624feceaa5e4d316f3356e91a20ed94a 100755 (executable)
@@ -15,7 +15,7 @@ if (navigator.appName !="Netscape")
 <style type="text/css">\r
 <!--\r
 p.whs1 { font-family:'Times New Roman' , serif; margin-left:40px; }\r
-img_whs2 { border:none; width:607px; height:443px; float:none; border-style:none; }\r
+img_whs2 { border:none; width:668px; height:646px; float:none; border-style:none; }\r
 ul.whs3 { list-style:disc; }\r
 p.whs4 { margin-left:40px; }\r
 p.whs5 { margin-left:40px; font-weight:bold; }\r
@@ -50,7 +50,7 @@ if (window.gbWhTopic)
 {\r
        if (window.addTocInfo)\r
        {\r
-       addTocInfo("GUI module\nSetting Preferences\nGEOM preferences");\r
+       addTocInfo("GUI module\nSetting Preferences\nGeometry preferences");\r
 addButton("show",BTN_TEXT,"Show","","","","",0,0,"","","");\r
 \r
        }\r
@@ -74,31 +74,31 @@ else
                document.location.reload();\r
 //-->\r
 </script>\r
-<h1>GEOM preferences</h1>\r
+<h1>Geometry preferences</h1>\r
 \r
-<p>In the MESH module you can set mesh preferences, default settings, which \r
- can be used in later sessions with this module. </p>\r
+<p>In the <span style="font-weight: bold;"><B>Geometry</B></span> module you can \r
+ set preferences for visualisation of geometrical figures which can be \r
+ used in later sessions with this module. </p>\r
 \r
 <p>&nbsp;</p>\r
 \r
-<p class="whs1"><img src="pics/preferencies5.png" x-maintain-ratio="TRUE" width="607px" height="443px" border="0" class="img_whs2"></p>\r
+<p class="whs1"><img src="pics/props5.png" x-maintain-ratio="TRUE" width="668px" height="646px" border="0" class="img_whs2"></p>\r
 \r
 <p>&nbsp;</p>\r
 \r
-<p>Preferences for the Geometry module allow you to set the following parameters:</p>\r
-\r
 <ul type="disc" class="whs3">\r
        \r
        <li class=kadov-p><p class="whs4"><span style="font-weight: bold;"><B>Default \r
- Shading Color</B></span> &nbsp;- \r
- follow the link to see the detailed information about the <a href="kernel/setting_preferences.htm#Select_Color">Select \r
- Color</a> dialog box.</p></li>\r
+ Shading Color</B></span> - allows to select default shading color. Click on \r
+ the colored line to access to the <span style="font-weight: bold;"><B><a href="select_color_and_font.htm">Select Color</a></B></span> dialog box. </p></li>\r
        \r
        <li class=kadov-p><p class="whs5">Step \r
- Value for Spin Boxes.</p></li>\r
+ Value for Spin Boxes - <span style="font-weight: normal;">allows to define \r
+ the increment of values set in spin boxes. </span>&nbsp;</p></li>\r
        \r
        <li class=kadov-p><p class="whs5">Default \r
- Display Mode - <span style="font-weight: normal;">(wireframe or shading).</span></p></li>\r
+ Display Mode - <span style="font-weight: normal;">allows to choose between</span> \r
+ <span style="font-weight: normal;">wireframe or shading.</span></p></li>\r
 </ul>\r
 \r
 <p>&nbsp;</p>\r
diff --git a/doc/salome/gui/KERNEL/image77.gif b/doc/salome/gui/KERNEL/image77.gif
deleted file mode 100755 (executable)
index ef7a62f..0000000
Binary files a/doc/salome/gui/KERNEL/image77.gif and /dev/null differ
diff --git a/doc/salome/gui/KERNEL/image78.gif b/doc/salome/gui/KERNEL/image78.gif
deleted file mode 100755 (executable)
index 5d6acad..0000000
Binary files a/doc/salome/gui/KERNEL/image78.gif and /dev/null differ
diff --git a/doc/salome/gui/KERNEL/image79.gif b/doc/salome/gui/KERNEL/image79.gif
deleted file mode 100755 (executable)
index 3ae7987..0000000
Binary files a/doc/salome/gui/KERNEL/image79.gif and /dev/null differ
diff --git a/doc/salome/gui/KERNEL/image80.gif b/doc/salome/gui/KERNEL/image80.gif
deleted file mode 100755 (executable)
index d4d25f9..0000000
Binary files a/doc/salome/gui/KERNEL/image80.gif and /dev/null differ
diff --git a/doc/salome/gui/KERNEL/image81.gif b/doc/salome/gui/KERNEL/image81.gif
deleted file mode 100755 (executable)
index 3473ad9..0000000
Binary files a/doc/salome/gui/KERNEL/image81.gif and /dev/null differ
diff --git a/doc/salome/gui/KERNEL/image82.gif b/doc/salome/gui/KERNEL/image82.gif
deleted file mode 100755 (executable)
index 0d3b25e..0000000
Binary files a/doc/salome/gui/KERNEL/image82.gif and /dev/null differ
diff --git a/doc/salome/gui/KERNEL/image83.gif b/doc/salome/gui/KERNEL/image83.gif
deleted file mode 100755 (executable)
index a40211e..0000000
Binary files a/doc/salome/gui/KERNEL/image83.gif and /dev/null differ
diff --git a/doc/salome/gui/KERNEL/image84.gif b/doc/salome/gui/KERNEL/image84.gif
deleted file mode 100755 (executable)
index 87e1105..0000000
Binary files a/doc/salome/gui/KERNEL/image84.gif and /dev/null differ
diff --git a/doc/salome/gui/KERNEL/image86.gif b/doc/salome/gui/KERNEL/image86.gif
deleted file mode 100755 (executable)
index 3397331..0000000
Binary files a/doc/salome/gui/KERNEL/image86.gif and /dev/null differ
diff --git a/doc/salome/gui/KERNEL/image88.gif b/doc/salome/gui/KERNEL/image88.gif
deleted file mode 100755 (executable)
index 9466aa6..0000000
Binary files a/doc/salome/gui/KERNEL/image88.gif and /dev/null differ
diff --git a/doc/salome/gui/KERNEL/image89.gif b/doc/salome/gui/KERNEL/image89.gif
deleted file mode 100755 (executable)
index 373a6c0..0000000
Binary files a/doc/salome/gui/KERNEL/image89.gif and /dev/null differ
diff --git a/doc/salome/gui/KERNEL/image90.gif b/doc/salome/gui/KERNEL/image90.gif
deleted file mode 100755 (executable)
index 3d22d9c..0000000
Binary files a/doc/salome/gui/KERNEL/image90.gif and /dev/null differ
diff --git a/doc/salome/gui/KERNEL/image91.gif b/doc/salome/gui/KERNEL/image91.gif
deleted file mode 100755 (executable)
index 9e93c1c..0000000
Binary files a/doc/salome/gui/KERNEL/image91.gif and /dev/null differ
diff --git a/doc/salome/gui/KERNEL/image92.gif b/doc/salome/gui/KERNEL/image92.gif
deleted file mode 100755 (executable)
index 23b2117..0000000
Binary files a/doc/salome/gui/KERNEL/image92.gif and /dev/null differ
diff --git a/doc/salome/gui/KERNEL/image94.gif b/doc/salome/gui/KERNEL/image94.gif
new file mode 100755 (executable)
index 0000000..e2d310c
Binary files /dev/null and b/doc/salome/gui/KERNEL/image94.gif differ
diff --git a/doc/salome/gui/KERNEL/introduction_to_gui.htm b/doc/salome/gui/KERNEL/introduction_to_gui.htm
new file mode 100755 (executable)
index 0000000..2435540
--- /dev/null
@@ -0,0 +1,187 @@
+<!doctype HTML public "-//W3C//DTD HTML 4.0 Frameset//EN">\r
+\r
+<html>\r
+\r
+<head>\r
+<title>Introduction to GUI</title>\r
+<meta http-equiv="content-type" content="text/html; charset=windows-1252">\r
+<meta name="generator" content="RoboHelp by eHelp Corporation www.ehelp.com">\r
+<link rel="stylesheet" href="default_ns.css"><script type="text/javascript" language="JavaScript" title="WebHelpSplitCss">\r
+<!--\r
+if (navigator.appName !="Netscape")\r
+{   document.write("<link rel='stylesheet' href='default.css'>");}\r
+//-->\r
+</script>\r
+<style type="text/css">\r
+<!--\r
+p.whs1 { font-family:'Times New Roman' , serif; }\r
+ul.whs2 { list-style:disc; }\r
+p.whs3 { font-family:'Times New Roman' , serif; margin-left:40px; }\r
+p.whs4 { margin-left:40px; font-family:'Times New Roman' , serif; }\r
+p.whs5 { font-family:'Times New Roman' , serif; margin-left:120px; }\r
+p.whs6 { margin-left:120px; font-family:'Times New Roman' , serif; }\r
+p.whs7 { text-align:justify; }\r
+p.whs8 { margin-left:0px; }\r
+-->\r
+</style><script type="text/javascript" language="JavaScript">\r
+<!--\r
+if ((navigator.appName == "Netscape") && (parseInt(navigator.appVersion) == 4))\r
+{\r
+  var strNSS = "<style type='text/css'>";\r
+  strNSS += "p.whs8 {margin-left:1pt; }";\r
+  strNSS +="</style>";\r
+  document.write(strNSS);\r
+}\r
+//-->\r
+</script>\r
+<script type="text/javascript" language="JavaScript" title="BSSC Special Effects" src="ehlpdhtm.js"></script><script type="text/javascript" language="JavaScript" title="WebHelpInlineScript">\r
+<!--\r
+function reDo() {\r
+  if (innerWidth != origWidth || innerHeight != origHeight)\r
+     location.reload();\r
+}\r
+if ((parseInt(navigator.appVersion) == 4) && (navigator.appName == "Netscape")) {\r
+       origWidth = innerWidth;\r
+       origHeight = innerHeight;\r
+       onresize = reDo;\r
+}\r
+onerror = null; \r
+//-->\r
+</script>\r
+<style type="text/css">\r
+<!--\r
+div.WebHelpPopupMenu { position:absolute; left:0px; top:0px; z-index:4; visibility:hidden; }\r
+-->\r
+</style><script type="text/javascript" language="javascript1.2" src="whmsg.js"></script>\r
+<script type="text/javascript" language="javascript" src="whver.js"></script>\r
+<script type="text/javascript" language="javascript1.2" src="whproxy.js"></script>\r
+<script type="text/javascript" language="javascript1.2" src="whutils.js"></script>\r
+<script type="text/javascript" language="javascript1.2" src="whtopic.js"></script>\r
+</head>\r
+<body><script type="text/javascript" language="javascript1.2">\r
+<!--\r
+if (window.gbWhTopic)\r
+{\r
+       if (window.addTocInfo)\r
+       {\r
+       addTocInfo("GUI module\nIntroduction to GUI");\r
+addButton("show",BTN_TEXT,"Show","","","","",0,0,"","","");\r
+\r
+       }\r
+       if (window.writeBtnStyle)\r
+               writeBtnStyle();\r
+\r
+       if (window.writeIntopicBar)\r
+               writeIntopicBar(1);\r
+\r
+       if (window.setRelStartPage)\r
+       {\r
+       setRelStartPage("kernel.htm");\r
+\r
+               autoSync(1);\r
+               sendSyncInfo();\r
+               sendAveInfoOut();\r
+       }\r
+}\r
+else\r
+       if (window.gbIE4)\r
+               document.location.reload();\r
+//-->\r
+</script>\r
+<h1>Introduction to GUI</h1>\r
+\r
+<p class="whs1"><span style="font-family: 'Times New Roman', serif;"><span \r
+ style="font-weight: bold;"><B>GUI</B></span> (Graphical User Interface) provides \r
+ a common shell for all components, which can be integrated into the SALOME \r
+ platform.</span></p>\r
+\r
+<p class="whs1">&nbsp;</p>\r
+\r
+<p class="whs1"><span style="font-weight: bold;"><B>GUI \r
+ </B></span>component in SALOME platform provides:</p>\r
+\r
+<p class="whs1">&nbsp;</p>\r
+\r
+<ul type="disc" class="whs2">\r
+       \r
+       <li class=kadov-p><p class="whs3">Common \r
+ desktop environment (<a href="kernel/salome_pro_desktop.htm">SALOME desktop</a>) \r
+ for all components</p></li>\r
+       \r
+       <li class=kadov-p><p class="whs3">Component \r
+ integration and management: uploading, switching, component menus/toolbars \r
+ handling </p></li>\r
+       \r
+       <li class=kadov-p><p class="whs3">Study \r
+ management (creation, saving, loading, editing studies)</p></li>\r
+       \r
+       <li class=kadov-p><p class="whs3">Multi-window \r
+ management in the framework of one study</p></li>\r
+       \r
+       <li class=kadov-p><p class="whs3">Management \r
+ of objects created or imported into the SALOME application (<a href="kernel/using_object_browser.htm">Object \r
+ Browser</a>) </p></li>\r
+       \r
+       <li class=kadov-p><p class="whs3">Integrated \r
+ Python interpreter </p></li>\r
+       \r
+       <li class=kadov-p><p class="whs3">Output \r
+ messages window</p></li>\r
+       \r
+       <li class=kadov-p><p class="whs3">Additional \r
+ tools : <a href="kernel/using_catalog_generator.htm">Catalogue Generator</a>, \r
+ <a href="kernel/using_registry.htm">Registry tool</a></p></li>\r
+       \r
+       <li class=kadov-p><p class="whs4">Standard \r
+ viewers for data visualization:</p></li>\r
+</ul>\r
+\r
+<p class="whs5">- \r
+ VTK 3d viewer,</p>\r
+\r
+<p class="whs5">- \r
+ OCC 3d viewer,</p>\r
+\r
+<p class="whs5">- \r
+ Gauss Points viewer</p>\r
+\r
+<p class="whs5">- \r
+ Plot 2d viewer,</p>\r
+\r
+<p class="whs6">- \r
+ Supervision viewer.</p>\r
+\r
+<p class="whs7">&nbsp;</p>\r
+\r
+<p class="whs8">Since version 3.0.0 SALOME GUI is based on \r
+ SUIT (Salome User Interface Toolkit) that proposes very flexible, powerful \r
+ and safe mechanisms of interaction with SALOME tool components (both CORBA \r
+ and standalone), resources management, viewers and selection handling, \r
+ exception/signals processing, bringing to top multi-desktop dockable-windowed \r
+ user interface which improves the usability of SALOME GUI.</p>\r
+\r
+<p class="whs8">All Graphical User Interfaces of standard \r
+ modules have plug-in structure, i.e. each module is placed in a dynamic \r
+ library which is loaded on demand. All modules can create their own menu \r
+ items, buttons in toolbar, windows etc</p>\r
+\r
+<p class="whs5">&nbsp;</p>\r
+\r
+\r
+\r
+<a href="javascript:void(0);" onClick="var e; if (parseInt(navigator.appVersion)>=4){e=event;}  if (parseInt(navigator.appVersion) >=2 && typeof(PickupDialog_Invoke) == 'function') PickupDialog_Invoke(e,'','Introduction to SALOME','Introduction_to_SALOME_PRO.htm','SALOME desktop','SALOME_PRO_desktop.htm');return false;" title="Related Topics"><img src="ss_btn_related_topics.gif" border=0 height=17 width=82 alt="Related Topics"></a>\r
+\r
+\r
\r
+\r
+<script type="text/javascript" language="JavaScript" title="WebHelpRelatedTopics"><!--\r
+if (parseInt(navigator.appVersion) >= 3 && typeof (WritePopupMenuLayer) == "function")\r
+  WritePopupMenuLayer();\r
+//--></script><script type="text/javascript" language="javascript1.2">\r
+<!--\r
+if (window.writeIntopicBar)\r
+       writeIntopicBar(0);\r
+//-->\r
+</script>\r
+</body>\r
+</html>\r
index 9efe8e59b714631877f8ee939d114857397247df..db77e9aaf1ae0aa8c6682a9e2e140188651b5f6d 100755 (executable)
@@ -131,17 +131,17 @@ whskin_frmset01.htm
 kernel_hha.hhk\r
 kernel.hhc\r
 kernel.hhk\r
+dump_study.htm\r
 geom_preferences.htm\r
+introduction_to_gui.htm\r
 kernel\about_salome_pro_architecture.htm\r
 kernel\about_salome_pro_help_system.htm\r
 kernel\creating_a_new_study.htm\r
-kernel\displaying_hiding_toolbars.htm\r
 kernel\displaying_studies.htm\r
 kernel\editing_studies.htm\r
 kernel\getting_properties_of_the_study.htm\r
 kernel\getting_started2.htm\r
 kernel\introduction.htm\r
-kernel\introduction_to_iapp.htm\r
 kernel\introduction_to_salome_pro.htm\r
 kernel\navigating_topics.htm\r
 kernel\opening_studies.htm\r
@@ -156,82 +156,71 @@ kernel\using_object_browser.htm
 kernel\using_registry.htm\r
 mesh_preferences.htm\r
 post-pro_preferences.htm\r
+select_color_and_font.htm\r
 setting_preferences.htm\r
-supervisor_preferences.htm\r
-viewers.htm\r
 ehelp.xml\r
 robohhre.lng\r
 texture_horiz_ltbluebubbles.jpg\r
 kernel.glo\r
 default.css\r
+pics\propp7.png\r
+pics\propm4.png\r
 choicepage.png\r
 intropage.png\r
+pics\propp8.png\r
 pics\registry1.png\r
-pics\pref4.png\r
 logo_salome_2005.png\r
 pics\open.jpg\r
 pics\registry3.png\r
 pics\studyproperties.png\r
-image90.gif\r
 pics\registry4.png\r
 pics\cataloggenerator.png\r
 tip1.gif\r
-image91.gif\r
-image80.gif\r
-pics\preferencies10.png\r
 readmepage.png\r
 pics\save.jpg\r
-pics\plot1.png\r
-image92.gif\r
-image81.gif\r
-pics\preferencies11.png\r
 image70.gif\r
 image51.jpg\r
 pics\newsticn.jpg\r
-image82.gif\r
 image71.gif\r
 progresspage.png\r
-image83.gif\r
+pics\props1.png\r
+image94.gif\r
 closestudy.png\r
 image72.gif\r
 pics\copy-paste.jpg\r
-pics\neo-view1.png\r
+pics\selectfont.png\r
+pics\props2.png\r
 pics\view2.png\r
-image84.gif\r
 image54.jpg\r
 image73.gif\r
 pics\selectcolor.png\r
-pics\selectfont.png\r
 pics\exemple.gif\r
+pics\dumpstudy.png\r
+pics\props3.png\r
 pics\neo-view2.png\r
-pics\multidesktop.png\r
-image86.gif\r
-pics\viewerspreferences.png\r
+pics\propp1.png\r
+pics\props4.png\r
 image75.gif\r
 i_blue.jpg\r
-pics\meshpreferences.png\r
-pics\preferencies5.png\r
+pics\propp2.png\r
+pics\props5.png\r
 image65.gif\r
 pics\undo-redo.jpg\r
 note1.gif\r
-image88.gif\r
-image77.gif\r
+pics\propp3.png\r
 pics\objectbrowser1.png\r
-image89.gif\r
-image78.gif\r
+pics\propm1.png\r
 pics\objectbrowser2.png\r
-pics\preferencies7.png\r
 image67.gif\r
 productpage.png\r
-image79.gif\r
+pics\loadscript.png\r
+pics\propm2.png\r
 pics\geomview-alt.png\r
 pics\lockedstudy.png\r
 pics\loadstudy2.png\r
-pics\preferencies8.png\r
-pics\pref1.png\r
 image68.gif\r
-pics\preferencies9.png\r
-pics\pref2.png\r
+pics\propp6.png\r
+pics\propm3.png\r
 image69.gif\r
 kernel.ppf\r
 ehlpdhtm.js\r
@@ -289,6 +278,7 @@ whgdata\whlstf7.htm
 whgdata\whlstf8.htm\r
 whgdata\whlstf9.htm\r
 whgdata\whlstf10.htm\r
+whgdata\whlstf11.htm\r
 whgdata\whlstg0.htm\r
 kernel.htm\r
 kernel_csh.htm\r
index 477c3de19efa3bc0daebf21cb89fb891d244931b..689f79e303a42cf75fea584076f0873532c73181 100755 (executable)
@@ -104,7 +104,7 @@ else
  dramatically without affecting other components. </span></p>\r
 \r
 <p class="whs3"><span style="font-weight: normal;">All \r
- software components (VISU, GEOM, SMESH...) integrated into </span>SALOME \r
+ software components (Post-Pro, Geometry, Mesh...) integrated into </span>SALOME \r
  <span style="font-weight: normal;">platform &nbsp;implement \r
  predefined interfaces. Each component provides data for the </span>SALOME<span \r
  style="font-weight: normal;"> study in a form of links (stored in the \r
@@ -118,16 +118,15 @@ else
 \r
 <p class="whs2">&nbsp;</p>\r
 \r
-<p class="whs5">Actually, starting with SALOME 3.0.0 \r
- version, it is possible to create engine-independent modules. These modules \r
- may not use CORBA at all, and can have internal data structure which can \r
- be written in pure C++ (or python). Such modules are located inside SALOME \r
- GUI process and from the point of view of the end user have no difference \r
- with standard components. Such modules not using the standard tools of \r
- SALOME platform are defined on a special separated level named CAM. CAM \r
- component is the basis for new SALOME GUI and contains all basic functionality \r
- for working with modules (loading; saving, closing, customization of toolbar \r
- and menu).</p>\r
+<p class="whs5">It is equally possible to create engine-independent \r
+ modules. These modules may not use CORBA at all, and can have internal \r
+ data structure which can be written in pure C++ (or python). Such modules \r
+ are located inside SALOME GUI process and from the point of view of the \r
+ end user have no difference with standard components. Such modules not \r
+ using the standard tools of SALOME platform are defined on a special separated \r
+ level named CAM. CAM component is the basis for new SALOME GUI and contains \r
+ all basic functionality for working with modules (loading; saving, closing, \r
+ customization of toolbar and menu).</p>\r
 \r
 <p class="whs5">Another fundamental piece of the <span \r
  style="font-weight: bold;"><B>SALOME</B></span> architecture is the use of the \r
@@ -147,7 +146,7 @@ else
 <p class="whs6"><span \r
  style="font-weight: normal;">&nbsp;<img src="../note1.gif" x-maintain-ratio="TRUE" width="35px" height="37px" border="0" class="img_whs7">In </span>SALOME<span style="font-weight: normal;"> there \r
  is a possibility to run definite components in the so-called </span><a href="running_salome_pro.htm#batchmode">batch mode</a><span style="font-weight: normal;"> \r
- without GUI provided by IAPP component. In this case you can work with \r
+ without GUI provided by GUI component. In this case you can work with \r
  these components with the help of Python commands and scripts. </span>&nbsp;</p>\r
 \r
 <p class="whs8">&nbsp;</p>\r
index 8c99af3bc44bb5f335858931d2b560b53489095a..5b1eeaff6f532feca03f81e18f984dcd635a7b37 100755 (executable)
@@ -78,7 +78,7 @@ else
  to SALOME help system. This on-line help has been created in the HTML \r
  format with the help of Java applets. It can be launched in any WEB browser \r
  (Internet Explorer, Netscape Navigator and others) and on any platform \r
- (Windows, Macintosh, Linux, and UNIX).</p>\r
+ (Windows, Macintosh, Linux and UNIX).</p>\r
 \r
 <p class="whs3">&nbsp;</p>\r
 \r
@@ -93,7 +93,7 @@ else
 <p class="whs3">&nbsp;</p>\r
 \r
 <p class="whs3">&nbsp;\r
-<a href="javascript:void(0);" onClick="var e; if (parseInt(navigator.appVersion)>=4){e=event;}  if (parseInt(navigator.appVersion) >=2 && typeof(PickupDialog_Invoke) == 'function') PickupDialog_Invoke(e,'(not specified)','Navigating topics','navigating_topics.htm','Using left-hand tabs','using_left-hand_tabs.htm');return false;" title="Related Topics"><img src="../ss_btn_related_topics.gif" border=0 height=17 width=82 alt="Related Topics"></a>\r
+<a href="javascript:void(0);" onClick="var e; if (parseInt(navigator.appVersion)>=4){e=event;}  if (parseInt(navigator.appVersion) >=2 && typeof(PickupDialog_Invoke) == 'function') PickupDialog_Invoke(e,'','Navigating topics','navigating_topics.htm','Using left-hand tabs','using_left-hand_tabs.htm');return false;" title="Related Topics"><img src="../ss_btn_related_topics.gif" border=0 height=17 width=82 alt="Related Topics"></a>\r
 \r
 \r
  </p>\r
index dd88fb6684f1cc70d91d490d13cf96d53ef736ee..6fd0f55fd593bc1e75b5b1f49be7f7f945100eb8 100755 (executable)
@@ -98,7 +98,7 @@ else
 <p>Study is a document within GUI, an abstraction layer between actual \r
  document data (probably, remote data available through CORBA) and data \r
  presentation (in the Object Browser). It contains a tree of Data Object \r
- instances (see Figure 2)</p>\r
+ instances.</p>\r
 \r
 <p>&nbsp;</p>\r
 \r
@@ -115,8 +115,8 @@ else
 <p class="whs3">&nbsp;</p>\r
 \r
 <p class="whs5">Your study will be created \r
- with default name <span style="font-weight: bold;"><B>Study1#1</B></span>. In \r
SALOME you can create several studies. </p>\r
+ with default name <span style="font-weight: bold;"><B>Study1</B></span>. In SALOME \r
+ you can create several studies. </p>\r
 \r
 <p class="whs5">&nbsp;</p>\r
 \r
@@ -134,25 +134,25 @@ else
 <p class="whs7">1. &nbsp;Make \r
  your study <span style="font-weight: bold;"><B>active:</B></span> maximize it \r
  (if it minimized) or &nbsp;click \r
- on the top control zone of the study window</p>\r
+ on the top control zone of the study window.</p>\r
 \r
 <p class="whs8">&nbsp;</p>\r
 \r
 <p class="whs7">2. &nbsp;From \r
  the main menu select <span style="font-weight: bold;"><B>Window &gt; New \r
  Window </B></span>and from the submenu choose the viewer, which will be activated \r
- in your new window </p>\r
+ in a new window. </p>\r
 \r
 <p class="whs7">&nbsp;</p>\r
 \r
 <p class="whs5">The window for your study \r
- will be created with a default name <span style="font-weight: bold;"><B>Study1#2</B></span>.<span \r
+ will be created with a default name <span style="font-weight: bold;"><B>Study1</B></span>.<span \r
  style="font-weight: bold;"> <B></B></span></p>\r
 \r
 <p class="whs9">&nbsp;</p>\r
 \r
 <p class="whs10">\r
-<a href="javascript:void(0);" onClick="var e; if (parseInt(navigator.appVersion)>=4){e=event;}  if (parseInt(navigator.appVersion) >=2 && typeof(PickupDialog_Invoke) == 'function') PickupDialog_Invoke(e,'','Displaying studies','displaying_studies.htm','Introduction to IAPP','introduction_to_iapp.htm','Opening studies','opening_studies.htm','SALOME desktop','salome_pro_desktop.htm','Saving and closing studies','saving_a_study.htm');return false;" title="Related Topics"><img src="../ss_btn_related_topics.gif" border=0 height=17 width=82 alt="Related Topics"></a>\r
+<a href="javascript:void(0);" onClick="var e; if (parseInt(navigator.appVersion)>=4){e=event;}  if (parseInt(navigator.appVersion) >=2 && typeof(PickupDialog_Invoke) == 'function') PickupDialog_Invoke(e,'','Displaying studies','displaying_studies.htm','Introduction to GUI','../introduction_to_gui.htm','Opening studies','opening_studies.htm','SALOME desktop','salome_pro_desktop.htm','Saving and closing studies','saving_a_study.htm');return false;" title="Related Topics"><img src="../ss_btn_related_topics.gif" border=0 height=17 width=82 alt="Related Topics"></a>\r
 \r
 \r
  </p>\r
diff --git a/doc/salome/gui/KERNEL/kernel/displaying_hiding_toolbars.htm b/doc/salome/gui/KERNEL/kernel/displaying_hiding_toolbars.htm
deleted file mode 100755 (executable)
index 574c04a..0000000
+++ /dev/null
@@ -1,133 +0,0 @@
-<!doctype HTML public "-//W3C//DTD HTML 4.0 Frameset//EN">\r
-\r
-<html>\r
-\r
-<head>\r
-<title>Displaying/hiding toolbars</title>\r
-<meta http-equiv="content-type" content="text/html; charset=windows-1252">\r
-<meta name="generator" content="RoboHelp by eHelp Corporation www.ehelp.com">\r
-<link rel="stylesheet" href="../default_ns.css"><script type="text/javascript" language="JavaScript" title="WebHelpSplitCss">\r
-<!--\r
-if (navigator.appName !="Netscape")\r
-{   document.write("<link rel='stylesheet' href='../default.css'>");}\r
-//-->\r
-</script>\r
-<style type="text/css">\r
-<!--\r
-h1.whs1 { text-align:justify; }\r
-p.whs2 { text-align:justify; }\r
-img_whs3 { border:none; width:30px; height:30px; float:none; border-style:none; }\r
-p.whs4 { font-style:italic; text-align:justify; color:#000000; font-family:'Arial Black' , sans-serif; }\r
-p.whs5 { margin-left:40px; text-align:justify; }\r
-p.whs6 { font-style:italic; color:#ff0000; margin-left:40px; text-align:justify; }\r
-p.whs7 { margin-left:0px; text-align:justify; }\r
--->\r
-</style><script type="text/javascript" language="JavaScript">\r
-<!--\r
-if ((navigator.appName == "Netscape") && (parseInt(navigator.appVersion) == 4))\r
-{\r
-  var strNSS = "<style type='text/css'>";\r
-  strNSS += "p.whs7 {margin-left:1pt; }";\r
-  strNSS +="</style>";\r
-  document.write(strNSS);\r
-}\r
-//-->\r
-</script>\r
-<script type="text/javascript" language="JavaScript" title="BSSC Special Effects" src="../ehlpdhtm.js"></script><script type="text/javascript" language="JavaScript" title="WebHelpInlineScript">\r
-<!--\r
-function reDo() {\r
-  if (innerWidth != origWidth || innerHeight != origHeight)\r
-     location.reload();\r
-}\r
-if ((parseInt(navigator.appVersion) == 4) && (navigator.appName == "Netscape")) {\r
-       origWidth = innerWidth;\r
-       origHeight = innerHeight;\r
-       onresize = reDo;\r
-}\r
-onerror = null; \r
-//-->\r
-</script>\r
-<style type="text/css">\r
-<!--\r
-div.WebHelpPopupMenu { position:absolute; left:0px; top:0px; z-index:4; visibility:hidden; }\r
--->\r
-</style><script type="text/javascript" language="javascript1.2" src="../whmsg.js"></script>\r
-<script type="text/javascript" language="javascript" src="../whver.js"></script>\r
-<script type="text/javascript" language="javascript1.2" src="../whproxy.js"></script>\r
-<script type="text/javascript" language="javascript1.2" src="../whutils.js"></script>\r
-<script type="text/javascript" language="javascript1.2" src="../whtopic.js"></script>\r
-</head>\r
-<body><script type="text/javascript" language="javascript1.2">\r
-<!--\r
-if (window.gbWhTopic)\r
-{\r
-       if (window.addTocInfo)\r
-       {\r
-       addTocInfo("GUI module\nDisplaying/hiding toolbars");\r
-addButton("show",BTN_TEXT,"Show","","","","",0,0,"","","");\r
-\r
-       }\r
-       if (window.writeBtnStyle)\r
-               writeBtnStyle();\r
-\r
-       if (window.writeIntopicBar)\r
-               writeIntopicBar(1);\r
-\r
-       if (window.setRelStartPage)\r
-       {\r
-       setRelStartPage("../kernel.htm");\r
-\r
-               autoSync(1);\r
-               sendSyncInfo();\r
-               sendAveInfoOut();\r
-       }\r
-}\r
-else\r
-       if (window.gbIE4)\r
-               document.location.reload();\r
-//-->\r
-</script>\r
-<h1 class="whs1">Displaying/hiding toolbars</h1>\r
-\r
-<p class="whs2"><img src="../i_blue.jpg" x-maintain-ratio="TRUE" width="30px" height="30px" border="0" class="img_whs3">All toolbars in the <span \r
- style="font-weight: bold;"><B>SALOME</B></span> Platform are context-sensitive. \r
- Uploading of a definite component (GEOM, VISU, SMESH etc.) will automatically \r
- add some additional toolbars specific to this component. </p>\r
-\r
-<p class="whs2">&nbsp;</p>\r
-\r
-<p class="whs4">To display/hide a \r
- definite toolbar:</p>\r
-\r
-<p class="whs2">&nbsp;</p>\r
-\r
-<p class="whs5">In the main menu choose \r
- <span style="font-weight: bold;"><B>View &gt; Toolbars</B></span>, and from this \r
- submenu mark or unmark the toolbar, you would like to display/hide. </p>\r
-\r
-<p class="whs6">&nbsp;</p>\r
-\r
-<p class="whs7">By default all toolbars \r
- are located on the top of the SALOME desktop. But you can relocate toolbars \r
- by dragging with the mouse and dropping it in any place of the window. \r
- </p>\r
-\r
-<p class="whs7">&nbsp;</p>\r
-\r
-<p class="whs7">&nbsp;\r
-<a href="javascript:void(0);" onClick="var e; if (parseInt(navigator.appVersion)>=4){e=event;}  if (parseInt(navigator.appVersion) >=2 && typeof(PickupDialog_Invoke) == 'function') PickupDialog_Invoke(e,'','SALOME desktop','salome_pro_desktop.htm');return false;" title="Related Topics"><img src="../ss_btn_related_topics.gif" border=0 height=17 width=82 alt="Related Topics"></a>\r
-\r
-\r
- </p>\r
-\r
-<script type="text/javascript" language="JavaScript" title="WebHelpRelatedTopics"><!--\r
-if (parseInt(navigator.appVersion) >= 3 && typeof (WritePopupMenuLayer) == "function")\r
-  WritePopupMenuLayer();\r
-//--></script><script type="text/javascript" language="javascript1.2">\r
-<!--\r
-if (window.writeIntopicBar)\r
-       writeIntopicBar(0);\r
-//-->\r
-</script>\r
-</body>\r
-</html>\r
index a170a0d94a0a791477c618057162d69595644bf5..51eb5ccb7a0bac48aa77629b24d22ddc258adf8e 100755 (executable)
@@ -15,17 +15,16 @@ if (navigator.appName !="Netscape")
 <style type="text/css">\r
 <!--\r
 h1.whs1 { text-align:justify; }\r
-img_whs2 { border:none; width:543px; height:378px; float:none; border-style:none; }\r
-img_whs3 { border:none; border-style:none; width:811px; height:513px; float:none; }\r
-p.whs4 { font-weight:bold; margin-left:0px; text-align:justify; }\r
-p.whs5 { font-style:italic; color:#ff0000; margin-left:40px; text-align:justify; }\r
+p.whs2 { font-weight:bold; margin-left:0px; text-align:justify; }\r
+img_whs3 { border:none; width:811px; height:513px; float:none; border-style:none; }\r
+p.whs4 { font-style:italic; color:#ff0000; margin-left:40px; text-align:justify; }\r
 -->\r
 </style><script type="text/javascript" language="JavaScript">\r
 <!--\r
 if ((navigator.appName == "Netscape") && (parseInt(navigator.appVersion) == 4))\r
 {\r
   var strNSS = "<style type='text/css'>";\r
-  strNSS += "p.whs4 {margin-left:1pt; }";\r
+  strNSS += "p.whs2 {margin-left:1pt; }";\r
   strNSS +="</style>";\r
   document.write(strNSS);\r
 }\r
@@ -92,54 +91,47 @@ else
  place them wherever you wish on the desktop, in brief, work with Salome \r
  Platform like with a normal Windows application.</p>\r
 \r
-<p>&nbsp;</p>\r
-\r
-<p><img src="../pics/multidesktop.png" x-maintain-ratio="TRUE" width="543px" height="378px" border="0" class="img_whs2"> &nbsp;</p>\r
-\r
-<p>&nbsp;</p>\r
+<p>Such windows as Object Browser and Python Console are dockable and also \r
+ can be placed at any part of the desktop.</p>\r
 \r
-<p>As you see in the screen-shot, only one study window in representation \r
- area is active. All windows are placed inside tabs where you can switch \r
- between them. If there are several windows (viewers) in your current study \r
- and you want to display more then one at the same time, you can split \r
- representation area into two parts, in horizontal or vertical direction, \r
- to create two representation areas with windows be placed in them. You \r
- can change their size and move any windows between representation areas. \r
- When an area becomes empty, it is not displayed.</p>\r
+<p>Only one study window in representation area can be active. You can \r
+ change their size and move any windows between representation areas. When \r
+ an area becomes empty, it is not displayed.</p>\r
 \r
-<p>&nbsp;</p>\r
-\r
-<p>For example, on this screen-shot the active zone is split horizontally \r
- to be able to work with OCC and VTK viewers simultaneously. </p>\r
+<p>All windows are placed inside tabs where you can switch between them. \r
+ If there are several windows (viewers) in your current study and you want \r
+ to display more then one at the same time, you can split representation \r
+ area into two parts, in horizontal or vertical direction, to create two \r
+ representation areas with windows be placed in them. To do this, right-click \r
+ on the tab and select <span style="font-weight: bold;"><B>Split Vertically</B></span> \r
+ or <span style="font-weight: bold;"><B>Split Horizontally</B></span>. </p>\r
 \r
 <p>&nbsp;</p>\r
 \r
-<p><img src="../pics/neo-view1.png" x-maintain-ratio="TRUE" width="811px" height="513px" border="0" class="img_whs3"></p>\r
-\r
-<p>&nbsp;</p>\r
-\r
-<p>Then we select one of the windows and split it vertically to see the \r
- results in Plot 2d graphs. </p>\r
+<p>For example, on this screen-shot the active zone has been split horizontally \r
+ to be able to work with OCC and VTK viewers simultaneously, the one of \r
+ the windows was split again, at this time vertically to see Plot 2d graphs. \r
+ </p>\r
 \r
 <p>&nbsp;</p>\r
 \r
-<p class="whs4"><img src="../pics/neo-view2.png" x-maintain-ratio="TRUE" width="811px" height="513px" border="0" class="img_whs3"></p>\r
+<p class="whs2"><img src="../pics/neo-view2.png" x-maintain-ratio="TRUE" width="811px" height="513px" border="0" class="img_whs3"></p>\r
 \r
-<p class="whs5">&nbsp;</p>\r
+<p class="whs4">&nbsp;</p>\r
 \r
-<p class="whs4">\r
-<a href="javascript:void(0);" onClick="var e; if (parseInt(navigator.appVersion)>=4){e=event;}  if (parseInt(navigator.appVersion) >=2 && typeof(PickupDialog_Invoke) == 'function') PickupDialog_Invoke(e,'','Creating a new study','creating_a_new_study.htm','Introduction to IAPP','introduction_to_iapp.htm','Opening studies','opening_studies.htm','SALOME desktop','salome_pro_desktop.htm','Saving and closing studies','saving_a_study.htm');return false;" title="Related Topics"><img src="../ss_btn_related_topics.gif" border=0 height=17 width=82 alt="Related Topics"></a>\r
+<p class="whs2">\r
+<a href="javascript:void(0);" onClick="var e; if (parseInt(navigator.appVersion)>=4){e=event;}  if (parseInt(navigator.appVersion) >=2 && typeof(PickupDialog_Invoke) == 'function') PickupDialog_Invoke(e,'','Creating a new study','creating_a_new_study.htm','Introduction to GUI','../introduction_to_gui.htm','Opening studies','opening_studies.htm','SALOME desktop','salome_pro_desktop.htm','Saving and closing studies','saving_a_study.htm');return false;" title="Related Topics"><img src="../ss_btn_related_topics.gif" border=0 height=17 width=82 alt="Related Topics"></a>\r
 \r
 \r
  </p>\r
 \r
-<p class="whs4">&nbsp;</p>\r
+<p class="whs2">&nbsp;</p>\r
 \r
-<p class="whs4">&nbsp;</p>\r
+<p class="whs2">&nbsp;</p>\r
 \r
-<p class="whs4">&nbsp;</p>\r
+<p class="whs2">&nbsp;</p>\r
 \r
-<p class="whs4">&nbsp;</p>\r
+<p class="whs2">&nbsp;</p>\r
 \r
 <script type="text/javascript" language="JavaScript" title="WebHelpRelatedTopics"><!--\r
 if (parseInt(navigator.appVersion) >= 3 && typeof (WritePopupMenuLayer) == "function")\r
index 54718009394c3a30bd01d68b77277abca9d56d92..8b47872b7cb3ca3bbbfb367b7cdf01e548364442 100755 (executable)
@@ -99,8 +99,8 @@ else
 <p class="whs2"><img src="../i_blue.jpg" x-maintain-ratio="TRUE" width="30px" height="30px" border="0" class="img_whs3"><span style="font-weight: bold;"><B>SALOME \r
  </B></span>has some additional features allowing to edit your study within \r
  a definite component: <span style="font-weight: bold;"><B>Undo/Redo</B></span> \r
- functionality and <span style="font-weight: bold;"><B>Copy/Paste</B></span> functionality \r
(currently used in GEOM, VISU). </p>\r
+ functionality and <span style="font-weight: bold;"><B>Copy/Paste</B></span> functionality. \r
+ </p>\r
 \r
 <p class="whs2">&nbsp;</p>\r
 \r
@@ -134,7 +134,7 @@ else
 <p class="whs8">&nbsp;</p>\r
 \r
 <p class="whs11">\r
-<a href="javascript:void(0);" onClick="var e; if (parseInt(navigator.appVersion)>=4){e=event;}  if (parseInt(navigator.appVersion) >=2 && typeof(PickupDialog_Invoke) == 'function') PickupDialog_Invoke(e,'','Creating a new study','creating_a_new_study.htm','Displaying studies','displaying_studies.htm','Introduction to IAPP','introduction_to_iapp.htm','Opening studies','opening_studies.htm','SALOME desktop','salome_pro_desktop.htm','Saving and closing studies','saving_a_study.htm');return false;" title="Related Topics"><img src="../ss_btn_related_topics.gif" border=0 height=17 width=82 alt="Related Topics"></a>\r
+<a href="javascript:void(0);" onClick="var e; if (parseInt(navigator.appVersion)>=4){e=event;}  if (parseInt(navigator.appVersion) >=2 && typeof(PickupDialog_Invoke) == 'function') PickupDialog_Invoke(e,'','Creating a new study','creating_a_new_study.htm','Displaying studies','displaying_studies.htm','Introduction to GUI','../introduction_to_gui.htm','Opening studies','opening_studies.htm','SALOME desktop','salome_pro_desktop.htm','Saving and closing studies','saving_a_study.htm');return false;" title="Related Topics"><img src="../ss_btn_related_topics.gif" border=0 height=17 width=82 alt="Related Topics"></a>\r
 \r
 \r
  </p>\r
index c8ae2777a426420deaba03c8bb16a492eba9453d..9c91669ce9ad5002db7c75194cd1cead41e8a341 100755 (executable)
@@ -18,9 +18,9 @@ h1.whs1 { text-align:justify; }
 p.whs2 { font-style:italic; text-align:justify; color:#000000; font-family:'Arial Black' , sans-serif; }\r
 p.whs3 { font-style:italic; color:#ff0000; text-align:justify; }\r
 p.whs4 { margin-left:40px; text-align:justify; }\r
-img_whs5 { border:none; border-style:none; width:332px; height:236px; float:none; }\r
+img_whs5 { border:none; width:332px; height:236px; float:none; border-style:none; }\r
 p.whs6 { margin-left:0px; text-align:justify; }\r
-img_whs7 { border:none; border-style:none; width:221px; height:123px; float:none; }\r
+img_whs7 { border:none; width:221px; height:123px; float:none; border-style:none; }\r
 p.whs8 { margin-left:0px; font-weight:bold; text-align:justify; }\r
 -->\r
 </style><script type="text/javascript" language="JavaScript">\r
@@ -65,7 +65,7 @@ if (window.gbWhTopic)
 {\r
        if (window.addTocInfo)\r
        {\r
-       addTocInfo("GUI module\nStudy management\nGetting and setting study properties");\r
+       addTocInfo("GUI module\nStudy management\nSetting study properties");\r
 addButton("show",BTN_TEXT,"Show","","","","",0,0,"","","");\r
 \r
        }\r
@@ -89,7 +89,7 @@ else
                document.location.reload();\r
 //-->\r
 </script>\r
-<h1 class="whs1">Getting and setting study properties</h1>\r
+<h1 class="whs1">Setting study properties</h1>\r
 \r
 <p class="whs2">To view the properties \r
  of the current study:</p>\r
@@ -157,7 +157,7 @@ else
 <p class="whs4">&nbsp;</p>\r
 \r
 <p class="whs8">\r
-<a href="javascript:void(0);" onClick="var e; if (parseInt(navigator.appVersion)>=4){e=event;}  if (parseInt(navigator.appVersion) >=2 && typeof(PickupDialog_Invoke) == 'function') PickupDialog_Invoke(e,'','Creating a new study','creating_a_new_study.htm','Displaying studies','displaying_studies.htm','Introduction to IAPP','introduction_to_iapp.htm','Opening studies','opening_studies.htm','SALOME desktop','salome_pro_desktop.htm','Saving and closing studies','saving_a_study.htm');return false;" title="Related Topics"><img src="../ss_btn_related_topics.gif" border=0 height=17 width=82 alt="Related Topics"></a>\r
+<a href="javascript:void(0);" onClick="var e; if (parseInt(navigator.appVersion)>=4){e=event;}  if (parseInt(navigator.appVersion) >=2 && typeof(PickupDialog_Invoke) == 'function') PickupDialog_Invoke(e,'','Creating a new study','creating_a_new_study.htm','Displaying studies','displaying_studies.htm','Introduction to GUI','../introduction_to_gui.htm','Opening studies','opening_studies.htm','SALOME desktop','salome_pro_desktop.htm','Saving and closing studies','saving_a_study.htm');return false;" title="Related Topics"><img src="../ss_btn_related_topics.gif" border=0 height=17 width=82 alt="Related Topics"></a>\r
 \r
 \r
  </p>\r
index 305387bd4ec8662571bc1ea9791b966fab0e6f41..84d7b29cf59544a55a81f2981da3f621e76c2eba 100755 (executable)
@@ -17,7 +17,7 @@ if (navigator.appName !="Netscape")
 h1.whs1 { text-align:justify; }\r
 p.whs2 { text-align:justify; }\r
 p.whs3 { margin-left:40px; text-align:justify; }\r
-img_whs4 { border:none; border-style:none; width:604px; height:376px; float:none; }\r
+img_whs4 { border:none; width:604px; height:376px; float:none; border-style:none; }\r
 img_whs5 { border:none; width:30px; height:30px; float:none; border-style:none; }\r
 p.whs6 { text-align:justify; background-image:url('../texture_horiz_ltbluebubbles.jpg'); }\r
 img_whs7 { border:none; width:36px; height:38px; float:none; border-style:none; }\r
@@ -105,12 +105,8 @@ else
 \r
 <p class="whs2">&nbsp;</p>\r
 \r
-<p class="whs2">&nbsp;</p>\r
-\r
-<p class="whs2">&nbsp;</p>\r
-\r
 <p class="whs2">\r
-<a href="javascript:void(0);" onClick="var e; if (parseInt(navigator.appVersion)>=4){e=event;}  if (parseInt(navigator.appVersion) >=2 && typeof(PickupDialog_Invoke) == 'function') PickupDialog_Invoke(e,'','Creating a new study','creating_a_new_study.htm','Introduction to IAPP','introduction_to_iapp.htm','SALOME desktop','salome_pro_desktop.htm');return false;" title="Related Topics"><img src="../ss_btn_related_topics.gif" border=0 height=17 width=82 alt="Related Topics"></a>\r
+<a href="javascript:void(0);" onClick="var e; if (parseInt(navigator.appVersion)>=4){e=event;}  if (parseInt(navigator.appVersion) >=2 && typeof(PickupDialog_Invoke) == 'function') PickupDialog_Invoke(e,'','Creating a new study','creating_a_new_study.htm','Introduction to GUI','../introduction_to_gui.htm','SALOME desktop','salome_pro_desktop.htm');return false;" title="Related Topics"><img src="../ss_btn_related_topics.gif" border=0 height=17 width=82 alt="Related Topics"></a>\r
 \r
 \r
  </p>\r
index d1773fbca94880fed09b3725c99aeb123819b88c..7f746b7536dcbd11c0005078e2a29d793e8660ac 100755 (executable)
@@ -184,7 +184,7 @@ else
  which has been based on this platform </p></li>\r
        \r
        <li class=kadov-p><p class="whs5">All \r
- functionnalities are accessible through the programmatic integrated Python \r
+ functionalities are accessible through the programmatic integrated Python \r
  console</p></li>\r
 </ul>\r
 \r
@@ -204,8 +204,8 @@ else
        \r
        <li class=kadov-p><p class="whs5"><span \r
  style="font-family: 'Times New Roman', serif;">Define geometrical models \r
- (create/modify geometrical items), import and export them using the IGES \r
- and STEP formats; </span></p></li>\r
+ (create/modify geometrical items), import and export them using the BREP, \r
IGES and STEP formats; </span></p></li>\r
        \r
        <li class=kadov-p><p class="whs5">Define \r
  meshing of these geometrical items, import and export them;</p></li>\r
diff --git a/doc/salome/gui/KERNEL/kernel/introduction_to_iapp.htm b/doc/salome/gui/KERNEL/kernel/introduction_to_iapp.htm
deleted file mode 100755 (executable)
index f0c0a36..0000000
+++ /dev/null
@@ -1,195 +0,0 @@
-<!doctype HTML public "-//W3C//DTD HTML 4.0 Frameset//EN">\r
-\r
-<html>\r
-\r
-<head>\r
-<title>Introduction to IAPP</title>\r
-<meta http-equiv="content-type" content="text/html; charset=windows-1252">\r
-<meta name="generator" content="RoboHelp by eHelp Corporation www.ehelp.com">\r
-<link rel="stylesheet" href="../default_ns.css"><script type="text/javascript" language="JavaScript" title="WebHelpSplitCss">\r
-<!--\r
-if (navigator.appName !="Netscape")\r
-{   document.write("<link rel='stylesheet' href='../default.css'>");}\r
-//-->\r
-</script>\r
-<style type="text/css">\r
-<!--\r
-h1.whs1 { font-family:'Times New Roman' , serif; }\r
-p.whs2 { font-family:'Times New Roman' , serif; }\r
-ul.whs3 { list-style:disc; }\r
-p.whs4 { font-family:'Times New Roman' , serif; margin-left:40px; }\r
-p.whs5 { margin-left:40px; font-family:'Times New Roman' , serif; }\r
-p.whs6 { font-family:'Times New Roman' , serif; margin-left:120px; }\r
-p.whs7 { margin-left:120px; font-family:'Times New Roman' , serif; }\r
-p.whs8 { margin-left:0px; }\r
-p.whs9 { font-family:'Times New Roman' , serif; margin-left:0px; }\r
--->\r
-</style><script type="text/javascript" language="JavaScript">\r
-<!--\r
-if ((navigator.appName == "Netscape") && (parseInt(navigator.appVersion) == 4))\r
-{\r
-  var strNSS = "<style type='text/css'>";\r
-  strNSS += "p.whs8 {margin-left:1pt; }";\r
-  strNSS += "p.whs9 {margin-left:1pt; }";\r
-  strNSS +="</style>";\r
-  document.write(strNSS);\r
-}\r
-//-->\r
-</script>\r
-<script type="text/javascript" language="JavaScript" title="BSSC Special Effects" src="../ehlpdhtm.js"></script><script type="text/javascript" language="JavaScript" title="WebHelpInlineScript">\r
-<!--\r
-function reDo() {\r
-  if (innerWidth != origWidth || innerHeight != origHeight)\r
-     location.reload();\r
-}\r
-if ((parseInt(navigator.appVersion) == 4) && (navigator.appName == "Netscape")) {\r
-       origWidth = innerWidth;\r
-       origHeight = innerHeight;\r
-       onresize = reDo;\r
-}\r
-onerror = null; \r
-//-->\r
-</script>\r
-<style type="text/css">\r
-<!--\r
-div.WebHelpPopupMenu { position:absolute; left:0px; top:0px; z-index:4; visibility:hidden; }\r
--->\r
-</style><script type="text/javascript" language="javascript1.2" src="../whmsg.js"></script>\r
-<script type="text/javascript" language="javascript" src="../whver.js"></script>\r
-<script type="text/javascript" language="javascript1.2" src="../whproxy.js"></script>\r
-<script type="text/javascript" language="javascript1.2" src="../whutils.js"></script>\r
-<script type="text/javascript" language="javascript1.2" src="../whtopic.js"></script>\r
-</head>\r
-<body><script type="text/javascript" language="javascript1.2">\r
-<!--\r
-if (window.gbWhTopic)\r
-{\r
-       if (window.addTocInfo)\r
-       {\r
-       addTocInfo("GUI module\nIntroduction to GUI");\r
-addButton("show",BTN_TEXT,"Show","","","","",0,0,"","","");\r
-\r
-       }\r
-       if (window.writeBtnStyle)\r
-               writeBtnStyle();\r
-\r
-       if (window.writeIntopicBar)\r
-               writeIntopicBar(1);\r
-\r
-       if (window.setRelStartPage)\r
-       {\r
-       setRelStartPage("../kernel.htm");\r
-\r
-               autoSync(1);\r
-               sendSyncInfo();\r
-               sendAveInfoOut();\r
-       }\r
-}\r
-else\r
-       if (window.gbIE4)\r
-               document.location.reload();\r
-//-->\r
-</script>\r
-<h1 class="whs1">Introduction to GUI</h1>\r
-\r
-<p class="whs2"><span style="font-weight: bold;"><B>GUI</B></span> \r
- (Graphical User Interface) provides a common shell for all components, \r
- which can be integrated into the SALOME platform.</p>\r
-\r
-<p class="whs2">&nbsp;</p>\r
-\r
-<p class="whs2"><span style="font-weight: bold;"><B>GUI \r
- </B></span>component in SALOME platform provides:</p>\r
-\r
-<p class="whs2">&nbsp;</p>\r
-\r
-<ul type="disc" class="whs3">\r
-       \r
-       <li class=kadov-p><p class="whs4">Common \r
- desktop environment (<a href="salome_pro_desktop.htm">SALOME desktop</a>) \r
- for all components</p></li>\r
-       \r
-       <li class=kadov-p><p class="whs4">Component \r
- integration and management: uploading, switching, component menus/toolbars \r
- handling </p></li>\r
-       \r
-       <li class=kadov-p><p class="whs4">Study \r
- management (creation, saving, loading, editing studies)</p></li>\r
-       \r
-       <li class=kadov-p><p class="whs4">Multi-window \r
- management in the framework of one study</p></li>\r
-       \r
-       <li class=kadov-p><p class="whs4">Management \r
- of objects created or imported into the SALOME application (<a href="using_object_browser.htm">Object \r
- Browser</a>, UseCase Browser) </p></li>\r
-       \r
-       <li class=kadov-p><p class="whs4">Integrated \r
- Python interpreter </p></li>\r
-       \r
-       <li class=kadov-p><p class="whs4">Output \r
- messages window</p></li>\r
-       \r
-       <li class=kadov-p><p class="whs4">Additional \r
- tools : <a href="using_catalog_generator.htm">Catalogue Generator</a>, \r
- <a href="using_registry.htm">Registry tool</a></p></li>\r
-       \r
-       <li class=kadov-p><p class="whs5">Four \r
- standard viewers for data visualization:</p></li>\r
-</ul>\r
-\r
-<p class="whs6">- \r
- VTK 3d viewer,</p>\r
-\r
-<p class="whs6">- \r
- OCC 3d viewer,</p>\r
-\r
-<p class="whs6">- \r
- Plot 2d viewer,</p>\r
-\r
-<p class="whs7">- \r
- Supervision viewer.</p>\r
-\r
-<p class="whs6">&nbsp;</p>\r
-\r
-<p class="whs8">Since version 3.0.0 SALOME GUI is based on \r
- SUIT (Salome User Interface Toolkit) that proposes very flexible, powerful \r
- and safe mechanisms of interaction with SALOME tool components (both CORBA \r
- and standalone), resources management, viewers and selection handling, \r
- exception/signals processing, bringing to top multi-desktop dockable-windowed \r
- user interface which improves the usability of SALOME GUI.</p>\r
-\r
-<p class="whs8">All Graphical User Interfaces of standard \r
- modules have plug-in structure, i.e. each module is placed in a dynamic \r
- library which is loaded on demand. All modules can create their own menu \r
- items, buttons in toolbar, windows etc</p>\r
-\r
-<p class="whs6">&nbsp;</p>\r
-\r
-\r
-<a href="javascript:void(0);" onClick="var e; if (parseInt(navigator.appVersion)>=4){e=event;}  if (parseInt(navigator.appVersion) >=2 && typeof(PickupDialog_Invoke) == 'function') PickupDialog_Invoke(e,'','Introduction to SALOME','introduction_to_salome_pro.htm','SALOME desktop','salome_pro_desktop.htm');return false;" title="Related Topics"><img src="../ss_btn_related_topics.gif" border=0 height=17 width=82 alt="Related Topics"></a>\r
-\r
-\r
\r
-\r
-<br>&nbsp; \r
\r
-\r
-<br>&nbsp; \r
\r
-\r
-<br>&nbsp; \r
\r
-\r
-<p class="whs9">&nbsp;</p>\r
-\r
-<script type="text/javascript" language="JavaScript" title="WebHelpRelatedTopics"><!--\r
-if (parseInt(navigator.appVersion) >= 3 && typeof (WritePopupMenuLayer) == "function")\r
-  WritePopupMenuLayer();\r
-//--></script><script type="text/javascript" language="javascript1.2">\r
-<!--\r
-if (window.writeIntopicBar)\r
-       writeIntopicBar(0);\r
-//-->\r
-</script>\r
-</body>\r
-</html>\r
index 40cd183c532e837c651d9d0f8d84365202287669..80ccf5ab3cd3cf5c7dfa44423e4904be1338c409 100755 (executable)
@@ -110,8 +110,8 @@ else
 \r
 <p class="whs3">&nbsp;</p>\r
 \r
-<p class="whs5">By \r
default SALOME platform five modules each having its own function:</p>\r
+<p class="whs5">SALOME \r
platform integrates a number of modules each having its own function:</p>\r
 \r
 <p class="whs5">&nbsp;</p>\r
 \r
@@ -140,7 +140,7 @@ else
 <ul type="disc" class="whs6">\r
        \r
        <li class=kadov-p><p class="whs5"><span \r
- style="font-weight: bold;"><B>GEOM</B></span> : &nbsp;facilitates \r
+ style="font-weight: bold;"><B>Geometry</B></span> : &nbsp;facilitates \r
  construction and optimization of geometrical models using a wide range \r
  of &nbsp;CAD \r
  functions. </p></li>\r
@@ -151,7 +151,7 @@ else
 <ul type="disc" class="whs6">\r
        \r
        <li class=kadov-p><p class="whs5"><span \r
- style="font-weight: bold;"><B>MESH</B></span> : &nbsp;generates \r
+ style="font-weight: bold;"><B>Mesh</B></span> : &nbsp;generates \r
  meshes on geometrical models previously created or imported by the GEOM \r
  component.</p></li>\r
 </ul>\r
@@ -161,7 +161,7 @@ else
 <ul type="disc" class="whs6">\r
        \r
        <li class=kadov-p><p class="whs5"><span \r
- style="font-weight: bold;"><B>SUPERVISION</B></span> : &nbsp;provides \r
+ style="font-weight: bold;"><B>Supervisor</B></span> : &nbsp;provides \r
  tools for construction of graphs and execution of calculations. </p></li>\r
 </ul>\r
 \r
@@ -170,18 +170,23 @@ else
 <ul type="disc" class="whs6">\r
        \r
        <li class=kadov-p><p class="whs5"><span \r
- style="font-weight: bold;"><B>VISU</B></span> : &nbsp;Post-processing \r
+ style="font-weight: bold;"><B>Post-Pro</B></span> : &nbsp;Post-processing \r
  module for data visualization</p></li>\r
 </ul>\r
 \r
 <p class="whs5">&nbsp;</p>\r
 \r
-<p class="whs5">&nbsp;</p>\r
+<ul type="disc" class="whs6">\r
+       \r
+       <li class=kadov-p><p class="whs5"><span \r
+ style="font-weight: bold;"><B>MED</B></span> : Module allowing to work with MED \r
+ files. </p></li>\r
+</ul>\r
 \r
 <p class="whs5">&nbsp;</p>\r
 \r
 <p class="whs5">\r
-<a href="javascript:void(0);" onClick="var e; if (parseInt(navigator.appVersion)>=4){e=event;}  if (parseInt(navigator.appVersion) >=2 && typeof(PickupDialog_Invoke) == 'function') PickupDialog_Invoke(e,'','About SALOME architecture','about_salome_pro_architecture.htm','Introduction to IAPP','introduction_to_iapp.htm');return false;" title="Related Topics"><img src="../ss_btn_related_topics.gif" border=0 height=17 width=82 alt="Related Topics"></a>\r
+<a href="javascript:void(0);" onClick="var e; if (parseInt(navigator.appVersion)>=4){e=event;}  if (parseInt(navigator.appVersion) >=2 && typeof(PickupDialog_Invoke) == 'function') PickupDialog_Invoke(e,'','About SALOME architecture','about_salome_pro_architecture.htm','Introduction to GUI','../introduction_to_gui.htm');return false;" title="Related Topics"><img src="../ss_btn_related_topics.gif" border=0 height=17 width=82 alt="Related Topics"></a>\r
 \r
 \r
  </p>\r
index e58d00d57cf3f2d3a406922bbf982c6e412d3e18..64c150419d74c21baf79287b1659441489998f90 100755 (executable)
@@ -24,7 +24,7 @@ p.whs7 { font-style:italic; color:#ff0000; margin-left:40px; text-align:justify;
 img_whs8 { border:none; width:25px; height:28px; float:none; border-style:none; }\r
 p.whs9 { margin-left:0px; font-style:italic; color:#ff0000; text-align:justify; }\r
 p.whs10 { margin-left:40px; text-align:justify; }\r
-img_whs11 { border:none; border-style:none; width:331px; height:207px; float:none; }\r
+img_whs11 { border:none; width:331px; height:207px; float:none; border-style:none; }\r
 p.whs12 { color:#ff0000; margin-left:0px; background-image:url('../texture_horiz_ltbluebubbles.jpg'); text-align:justify; }\r
 img_whs13 { border:none; float:none; width:35px; height:37px; border-style:none; }\r
 p.whs14 { color:#ff0000; margin-left:0px; text-align:justify; }\r
@@ -118,7 +118,7 @@ else
  from the main menu select </font></span><span style="font-style: normal;\r
                                                                                                color: #000000;\r
                                                                                                font-weight: bold;"><font color=black ><B>File \r
- &gt; Load</B></font></span><span style="font-style: normal; color: #000000;"><font color=black > option. \r
+ &gt; Open</B></font></span><span style="font-style: normal; color: #000000;"><font color=black > option. \r
  From a standard Search File dialog box choose the required *.hdf file \r
  and click </font></span><span style="font-style: normal;\r
                                                                color: #000000;\r
@@ -160,7 +160,7 @@ else
 <p class="whs2">&nbsp;</p>\r
 \r
 <p class="whs15">\r
-<a href="javascript:void(0);" onClick="var e; if (parseInt(navigator.appVersion)>=4){e=event;}  if (parseInt(navigator.appVersion) >=2 && typeof(PickupDialog_Invoke) == 'function') PickupDialog_Invoke(e,'','Creating a new study','creating_a_new_study.htm','Displaying studies','displaying_studies.htm','Introduction to IAPP','introduction_to_iapp.htm','SALOME desktop','salome_pro_desktop.htm','Saving and closing studies','saving_a_study.htm');return false;" title="Related Topics"><img src="../ss_btn_related_topics.gif" border=0 height=17 width=82 alt="Related Topics"></a>\r
+<a href="javascript:void(0);" onClick="var e; if (parseInt(navigator.appVersion)>=4){e=event;}  if (parseInt(navigator.appVersion) >=2 && typeof(PickupDialog_Invoke) == 'function') PickupDialog_Invoke(e,'','Creating a new study','creating_a_new_study.htm','Displaying studies','displaying_studies.htm','Introduction to GUI','../introduction_to_gui.htm','SALOME desktop','salome_pro_desktop.htm','Saving and closing studies','saving_a_study.htm');return false;" title="Related Topics"><img src="../ss_btn_related_topics.gif" border=0 height=17 width=82 alt="Related Topics"></a>\r
 \r
 \r
  </p>\r
index 8992914d60f98116bb1f3463a9fe8038b2ad4b2e..05deafb7d9eb975d0ff14555915e7de751c4ff8a 100755 (executable)
@@ -123,8 +123,8 @@ else
 \r
 <p class="whs4">1. Install the SALOME package into a definite \r
  directory (ex. <span style="font-weight: bold;"><B>SALOME</B></span>) on your \r
- hard disk. It is preferable if you use the special \r
installation procedure allowing to install the &nbsp;SALOME \r
+ hard disk. It is preferable if you use the special installation procedure \r
+ allowing to install the &nbsp;SALOME \r
  platform and all corresponding applications. </p>\r
 \r
 <p class="whs5">&nbsp;</p>\r
@@ -146,8 +146,8 @@ else
 <p class="whs6">&nbsp;</p>\r
 \r
 <p class="whs7"><img src="../tip1.gif" x-maintain-ratio="TRUE" width="35px" height="37px" border="0" class="img_whs8"> <span style="font-family: 'Times New Roman', serif;">During \r
- the installation procedure you have a possibility to \r
set your profile automatically. </span>&nbsp;</p>\r
+ the installation procedure you have a possibility to set your profile \r
+ automatically. </span>&nbsp;</p>\r
 \r
 <p class="whs9">&nbsp;</p>\r
 \r
@@ -262,14 +262,12 @@ if ((navigator.appName == "Netscape") && (parseInt(navigator.appVersion) == 4))
  style="font-family: 'Times New Roman', serif;">HOME/.salome/</span><span \r
  style="font-family: 'Times New Roman', serif; font-weight: normal;">. \r
  If you are constantly launching SALOME with some specific options which \r
- are different from default ones, you can edit this file according to your \r
+ are different from the defaults, you can edit this file according to your \r
  requirements. So the next time you run SALOME, you won't have to enter \r
  these numerous command console options. </span>&nbsp;&nbsp;&nbsp;</p>\r
 \r
 <p class="whs29">&nbsp;</p>\r
 \r
-<p class="whs29">&nbsp;</p>\r
-\r
 <p class="whs30">\r
 <a href="javascript:void(0);" onClick="var e; if (parseInt(navigator.appVersion)>=4){e=event;}  if (parseInt(navigator.appVersion) >=2 && typeof(PickupDialog_Invoke) == 'function') PickupDialog_Invoke(e,'','About SALOME architecture','about_salome_pro_architecture.htm','Introduction to SALOME ','introduction_to_salome_pro.htm');return false;" title="Related Topics"><img src="../ss_btn_related_topics.gif" border=0 height=17 width=82 alt="Related Topics"></a>\r
 \r
index 771a1c9019ac9d12bcc515118b3e97abf9a0ed66..72df4de898e6a2b8458a01fb6fbef25974882f8c 100755 (executable)
@@ -16,16 +16,15 @@ if (navigator.appName !="Netscape")
 <!--\r
 h1.whs1 { font-family:'Times New Roman' , serif; }\r
 p.whs2 { font-family:'Times New Roman' , serif; }\r
-img_whs3 { border:none; border-style:none; width:694px; height:549px; float:none; }\r
+img_whs3 { border:none; width:694px; height:549px; float:none; border-style:none; }\r
 p.whs4 { font-family:'Times New Roman' , serif; margin-left:40px; font-weight:bold; }\r
 p.whs5 { font-family:'Times New Roman' , serif; margin-left:40px; }\r
 ul.whs6 { list-style:disc; }\r
-p.whs7 { text-align:justify; }\r
+p.whs7 { text-indent:36px; }\r
 p.whs8 { text-align:justify; margin-left:0px; text-indent:36px; }\r
-p.whs9 { background-image:url('../texture_horiz_ltbluebubbles.jpg'); text-align:justify; }\r
-img_whs10 { border:none; float:none; width:36px; height:38px; border-style:none; }\r
-p.whs11 { text-align:justify; font-weight:bold; margin-left:40px; }\r
-p.whs12 { text-align:justify; font-weight:bold; margin-left:0px; text-indent:36px; }\r
+p.whs9 { text-align:justify; font-weight:bold; margin-left:40px; }\r
+p.whs10 { text-align:justify; }\r
+p.whs11 { text-align:justify; font-weight:bold; margin-left:0px; text-indent:36px; }\r
 -->\r
 </style><script type="text/javascript" language="JavaScript">\r
 <!--\r
@@ -33,7 +32,7 @@ if ((navigator.appName == "Netscape") && (parseInt(navigator.appVersion) == 4))
 {\r
   var strNSS = "<style type='text/css'>";\r
   strNSS += "p.whs8 {margin-left:1pt; }";\r
-  strNSS += "p.whs12 {margin-left:1pt; }";\r
+  strNSS += "p.whs11 {margin-left:1pt; }";\r
   strNSS +="</style>";\r
   document.write(strNSS);\r
 }\r
@@ -134,7 +133,21 @@ else
  destined for visualization of the presentations in the viewer. </p></li>\r
 </ul>\r
 \r
-<p class="whs2">&nbsp;</p>\r
+<p class="whs7">&nbsp;</p>\r
+\r
+<p class="whs7">All toolbars in the <span style="font-weight: bold;"><B>SALOME</B></span> \r
+ Platform are context-sensitive. Loading of a definite component (Geometry, \r
+ Post-Pro, Mesh etc.) will automatically add some additional toolbars specific \r
+ to this component. To display/hide a definite toolbar, in the main menu \r
+ choose <span style="font-weight: bold;"><B>View</B></span> &gt; Toolbars, and \r
+ from this submenu check or uncheck the toolbar, you would like to display/hide. \r
+ </p>\r
+\r
+<p class="whs8">By default all toolbars are located on \r
+ the top of the SALOME desktop. But you can relocate toolbars by dragging \r
+ with the mouse and dropping it in any place of the window. </p>\r
+\r
+<p class="whs9">&nbsp;</p>\r
 \r
 <p class="whs4">Parts of &nbsp;the \r
  study window:</p>\r
@@ -143,21 +156,21 @@ else
 \r
 <ul type="disc" class="whs6">\r
        \r
-       <li class=kadov-p><p class="whs7"><span style="font-weight: bold;"><B>Object \r
+       <li class=kadov-p><p class="whs10"><span style="font-weight: bold;"><B>Object \r
  Browser</B></span> - Management of objects created or imported into SALOME \r
  application</p></li>\r
        \r
-       <li class=kadov-p><p class="whs7"><span style="font-weight: bold;"><B>Viewer \r
+       <li class=kadov-p><p class="whs10"><span style="font-weight: bold;"><B>Viewer \r
  - </B></span>This window is destined for visualization of presentations. </p></li>\r
        \r
-       <li class=kadov-p><p class="whs7"><span style="font-weight: bold;"><B>Python \r
+       <li class=kadov-p><p class="whs10"><span style="font-weight: bold;"><B>Python \r
  console</B></span> - Window for Python interpreter. This window functions \r
  like a standard document: the pop-up menu invoked by right-click in this \r
  window gives access to <span style="font-weight: bold;"><B>Copy/Paste/SelectAll/ClearAll \r
  </B></span>options.</p></li>\r
 </ul>\r
 \r
-<p class="whs7">&nbsp;</p>\r
+<p class="whs10">&nbsp;</p>\r
 \r
 <p class="whs8">Object Browser, Python Console, MenuBar, \r
  etc are, in fact, separate dockable windows. &nbsp;Dockable \r
@@ -171,15 +184,9 @@ else
  which common windows are necessary for working, and only they will be \r
  displayed when this module is active.</p>\r
 \r
-<p class="whs2">&nbsp;</p>\r
-\r
-<p class="whs9"><img src="../note1.gif" x-maintain-ratio="TRUE" width="36px" height="38px" border="0" class="img_whs10"> For your convenience, the whole study window as well as all \r
- its parts can be <span style="font-weight: bold;"><B>resized / minimized \r
- / maximized</B></span>.</p>\r
-\r
-<p class="whs11">&nbsp;</p>\r
+<p class="whs9">&nbsp;</p>\r
 \r
-<p class="whs12"><span style="font-weight: normal;">Starting \r
+<p class="whs11"><span style="font-weight: normal;">Starting \r
  from the version 3.0.0 Salome uses a</span> Multi-Desktop Approach. <span \r
  style="font-weight: normal;">Multi-desktop Approach means that now there \r
  is separate Desktop for each document (Study) &nbsp;and \r
@@ -193,7 +200,7 @@ else
 <p class="whs2">&nbsp;</p>\r
 \r
 <p class="whs2">\r
-<a href="javascript:void(0);" onClick="var e; if (parseInt(navigator.appVersion)>=4){e=event;}  if (parseInt(navigator.appVersion) >=2 && typeof(PickupDialog_Invoke) == 'function') PickupDialog_Invoke(e,'','Creating a new study','creating_a_new_study.htm','Displaying studies','displaying_studies.htm','Displaying/hiding toolbars','displaying_hiding_toolbars.htm','Editing studies','editing_studies.htm','Introduction to IAPP','introduction_to_iapp.htm','Saving and closing studies','saving_a_study.htm');return false;" title="Related Topics"><img src="../ss_btn_related_topics.gif" border=0 height=17 width=82 alt="Related Topics"></a>\r
+<a href="javascript:void(0);" onClick="var e; if (parseInt(navigator.appVersion)>=4){e=event;}  if (parseInt(navigator.appVersion) >=2 && typeof(PickupDialog_Invoke) == 'function') PickupDialog_Invoke(e,'','Creating a new study','creating_a_new_study.htm','Displaying studies','displaying_studies.htm','Editing studies','editing_studies.htm','Introduction to GUI','../introduction_to_gui.htm','Saving and closing studies','saving_a_study.htm');return false;" title="Related Topics"><img src="../ss_btn_related_topics.gif" border=0 height=17 width=82 alt="Related Topics"></a>\r
 \r
 \r
  </p>\r
index 174283ebe53c2867ca257c4da43472aa616f2c3c..a273b6de32ae5479a402ca8e56b5ee8f8ba21d1a 100755 (executable)
@@ -29,10 +29,12 @@ img_whs12 { border:none; float:none; width:36px; height:38px; border-style:none;
 p.whs13 { margin-left:0px; font-style:italic; text-align:justify; color:#000000; font-family:'Arial Black' , sans-serif; }\r
 p.whs14 { margin-left:0px; font-style:italic; color:#ff0000; text-align:justify; }\r
 p.whs15 { margin-left:40px; text-align:justify; }\r
-p.whs16 { font-style:italic; margin-left:0px; text-align:justify; color:#000000; font-family:'Arial Black' , sans-serif; }\r
-p.whs17 { font-style:italic; color:#ff0000; margin-left:0px; text-align:justify; }\r
-img_whs18 { border:none; width:394px; height:161px; float:none; border-style:none; }\r
-p.whs19 { margin-left:0px; font-weight:bold; text-align:justify; }\r
+p.whs16 { text-align:justify; margin-left:40px; font-family:'Times New Roman' , serif; font-style:normal; }\r
+p.whs17 { font-style:italic; margin-left:0px; text-align:justify; color:#000000; font-family:'Arial Black' , sans-serif; }\r
+p.whs18 { font-style:italic; color:#ff0000; margin-left:0px; text-align:justify; }\r
+img_whs19 { border:none; width:22px; height:23px; border-style:none; }\r
+img_whs20 { border:none; width:394px; height:161px; float:none; border-style:none; }\r
+p.whs21 { margin-left:0px; font-weight:bold; text-align:justify; }\r
 -->\r
 </style><script type="text/javascript" language="JavaScript">\r
 <!--\r
@@ -44,9 +46,9 @@ if ((navigator.appName == "Netscape") && (parseInt(navigator.appVersion) == 4))
   strNSS += "p.whs11 {margin-left:1pt; }";\r
   strNSS += "p.whs13 {margin-left:1pt; }";\r
   strNSS += "p.whs14 {margin-left:1pt; }";\r
-  strNSS += "p.whs16 {margin-left:1pt; }";\r
   strNSS += "p.whs17 {margin-left:1pt; }";\r
-  strNSS += "p.whs19 {margin-left:1pt; }";\r
+  strNSS += "p.whs18 {margin-left:1pt; }";\r
+  strNSS += "p.whs21 {margin-left:1pt; }";\r
   strNSS +="</style>";\r
   document.write(strNSS);\r
 }\r
@@ -167,7 +169,7 @@ else
  from the main menu select </font></span><span style="font-style: normal;\r
                                                                                                color: #000000;\r
                                                                                                font-weight: bold;"><font color=black ><B>File \r
- &gt; Save as </B></font></span><span style="font-style: normal; color: #000000;"><font color=black >option. \r
+ &gt; Save </B></font></span><span style="font-style: normal; color: #000000;"><font color=black >option. \r
  Your study will be automatically updated. </font></span></p>\r
 \r
 <p class="whs9">&nbsp;</p>\r
@@ -188,13 +190,30 @@ else
  standard Search File dialog box enter a new name for your study and click \r
  <span style="font-weight: bold;"><B>Save</B></span> button.</p>\r
 \r
-<p class="whs9">&nbsp;</p>\r
+<p class="whs15">&nbsp;</p>\r
+\r
+<p class="whs13">To save the current \r
+ layout of the GUI:</p>\r
+\r
+<p class="whs13">&nbsp;</p>\r
+\r
+<p class="whs16">From the main menu select <span style="font-weight: bold;"><B>File \r
+ &gt; Save GUI State</B></span>. The GUI state is published in Object Browser \r
+ in the folder GUI states and can be at any time <span style="font-weight: bold;"><B>Restored</B></span>, \r
+ <span style="font-weight: bold;"><B>Renamed</B></span> or <span style="font-weight: bold;"><B>Deleted.</B></span> \r
+ &nbsp;This operation \r
+ saves and allows to restore almost all GUI settings: names, position, \r
+ zooming and panning of viewers &nbsp;and \r
+ all displayed objects (in Post-Pro module only). &nbsp;</p>\r
 \r
-<p class="whs16">To close a study:</p>\r
+<p>&nbsp;</p>\r
 \r
-<p class="whs17">&nbsp;</p>\r
+<p class="whs17">To close a study:</p>\r
 \r
-<p class="whs9"><span style="font-style: normal; color: #000000;"><font color=black >From \r
+<p class="whs18">&nbsp;</p>\r
+\r
+<p class="whs9"><span style="font-style: normal; color: #000000;"><font color=black >In \r
+ the main toolbar click<img src="../image94.gif" width="22px" height="23px" border="0" class="img_whs19"> or &nbsp;from \r
  the main menu select </font></span><span style="font-weight: bold;\r
                                                                                        font-style: normal;\r
                                                                                        color: #000000;"><font color=black ><B>File &gt; \r
@@ -209,7 +228,7 @@ else
 \r
 <p class="whs15">&nbsp;</p>\r
 \r
-<p class="whs15"><img src="../closestudy.png" x-maintain-ratio="TRUE" width="394px" height="161px" border="0" class="img_whs18"></p>\r
+<p class="whs15"><img src="../closestudy.png" x-maintain-ratio="TRUE" width="394px" height="161px" border="0" class="img_whs20"></p>\r
 \r
 <p class="whs15">&nbsp;</p>\r
 \r
@@ -222,34 +241,19 @@ else
 \r
 <p class="whs7">&nbsp;</p>\r
 \r
-<p class="whs13">To close a definite \r
- study window:</p>\r
-\r
-<p class="whs7">&nbsp;</p>\r
-\r
-<p class="whs15">Click on the small cross \r
- button in the right upper corner of the study window. If it is the last \r
- study window this operation will result in closing of the whole study.</p>\r
-\r
-<p class="whs9">&nbsp;</p>\r
-\r
-<p class="whs15">&nbsp;</p>\r
-\r
-<p class="whs15">&nbsp;</p>\r
-\r
-<p class="whs19">\r
-<a href="javascript:void(0);" onClick="var e; if (parseInt(navigator.appVersion)>=4){e=event;}  if (parseInt(navigator.appVersion) >=2 && typeof(PickupDialog_Invoke) == 'function') PickupDialog_Invoke(e,'','Creating a new study','creating_a_new_study.htm','Displaying studies','displaying_studies.htm','Introduction to IAPP','introduction_to_iapp.htm','Opening studies','opening_studies.htm','SALOME desktop','salome_pro_desktop.htm','Setting preferences','setting_preferences.htm');return false;" title="Related Topics"><img src="../ss_btn_related_topics.gif" border=0 height=17 width=82 alt="Related Topics"></a>\r
+<p class="whs21">\r
+<a href="javascript:void(0);" onClick="var e; if (parseInt(navigator.appVersion)>=4){e=event;}  if (parseInt(navigator.appVersion) >=2 && typeof(PickupDialog_Invoke) == 'function') PickupDialog_Invoke(e,'','Creating a new study','creating_a_new_study.htm','Displaying studies','displaying_studies.htm','Introduction to GUI','../introduction_to_gui.htm','Opening studies','opening_studies.htm','SALOME desktop','salome_pro_desktop.htm','Setting preferences','setting_preferences.htm');return false;" title="Related Topics"><img src="../ss_btn_related_topics.gif" border=0 height=17 width=82 alt="Related Topics"></a>\r
 \r
 \r
  </p>\r
 \r
-<p class="whs19">&nbsp;</p>\r
+<p class="whs21">&nbsp;</p>\r
 \r
-<p class="whs19">&nbsp;</p>\r
+<p class="whs21">&nbsp;</p>\r
 \r
-<p class="whs19">&nbsp;</p>\r
+<p class="whs21">&nbsp;</p>\r
 \r
-<p class="whs19">&nbsp;</p>\r
+<p class="whs21">&nbsp;</p>\r
 \r
 <script type="text/javascript" language="JavaScript" title="WebHelpRelatedTopics"><!--\r
 if (parseInt(navigator.appVersion) >= 3 && typeof (WritePopupMenuLayer) == "function")\r
index 963c8b0e36060c63a5594a684aeb3713f95290f0..b29cca7c1ef4c133c57ce0fc202a8695628d9959 100755 (executable)
@@ -16,23 +16,21 @@ if (navigator.appName !="Netscape")
 <!--\r
 h1.whs1 { font-family:'Times New Roman' , serif; }\r
 p.whs2 { font-family:'Times New Roman' , serif; }\r
-img_whs3 { border:none; width:607px; height:341px; float:none; border-style:none; }\r
+img_whs3 { border:none; width:668px; height:646px; float:none; border-style:none; }\r
 ul.whs4 { list-style:disc; }\r
 p.whs5 { font-family:'Times New Roman' , serif; margin-left:0px; font-weight:bold; }\r
 img_whs6 { border:none; width:23px; height:29px; border-style:none; }\r
-img_whs7 { border:none; width:510px; height:393px; float:none; border-style:none; }\r
-p.whs8 { font-family:'Times New Roman' , serif; font-weight:bold; }\r
-p.whs9 { font-family:'Times New Roman' , serif; font-weight:normal; }\r
-p.whs10 { font-family:'Times New Roman' , serif; margin-left:80px; }\r
-img_whs11 { border:none; border-style:none; width:580px; height:513px; float:none; }\r
-img_whs12 { border:none; width:492px; height:392px; float:none; border-style:none; }\r
-p.whs13 { font-family:'Times New Roman' , serif; font-style:normal; font-weight:bold; }\r
-img_whs14 { border:none; width:20px; height:20px; border-style:none; }\r
-img_whs15 { border:none; width:22px; height:23px; border-style:none; }\r
-img_whs16 { border:none; width:22px; height:21px; border-style:none; }\r
-img_whs17 { border:none; width:23px; height:23px; border-style:none; }\r
-img_whs18 { border:none; width:25px; height:24px; border-style:none; }\r
-p.whs19 { font-family:'Times New Roman' , serif; margin-left:0px; }\r
+p.whs7 { font-family:'Times New Roman' , serif; font-weight:bold; }\r
+ol.whs8 { list-style:disc; }\r
+p.whs9 { font-weight:bold; margin-left:0px; }\r
+p.whs10 { font-weight:bold; margin-left:38px; }\r
+p.whs11 { font-family:'Times New Roman' , serif; font-weight:normal; }\r
+p.whs12 { font-family:'Times New Roman' , serif; font-style:normal; font-weight:bold; }\r
+img_whs13 { border:none; width:20px; height:20px; border-style:none; }\r
+img_whs14 { border:none; width:22px; height:23px; border-style:none; }\r
+img_whs15 { border:none; width:22px; height:21px; border-style:none; }\r
+img_whs16 { border:none; width:23px; height:23px; border-style:none; }\r
+img_whs17 { border:none; width:25px; height:24px; border-style:none; }\r
 -->\r
 </style><script type="text/javascript" language="JavaScript">\r
 <!--\r
@@ -40,7 +38,7 @@ if ((navigator.appName == "Netscape") && (parseInt(navigator.appVersion) == 4))
 {\r
   var strNSS = "<style type='text/css'>";\r
   strNSS += "p.whs5 {margin-left:1pt; }";\r
-  strNSS += "p.whs19 {margin-left:1pt; }";\r
+  strNSS += "p.whs9 {margin-left:1pt; }";\r
   strNSS +="</style>";\r
   document.write(strNSS);\r
 }\r
@@ -102,13 +100,13 @@ else
 </script>\r
 <h1 class="whs1">SALOME preferences</h1>\r
 \r
-<p class="whs2">&nbsp;To \r
- begin setting preferences for your study, select <span style="font-weight: bold;"><B>Preferences \r
</B></span>in the main menu, the following dialog box will appear:</p>\r
+<p class="whs2">To begin setting preferences \r
+ for your study, select <span style="font-weight: bold;"><B>Preferences </B></span>in \r
+ the main menu, the following dialog box will appear:</p>\r
 \r
 <p class="whs2">&nbsp;</p>\r
 \r
-<p class="whs2">&nbsp;<img src="../pics/pref1.png" x-maintain-ratio="TRUE" width="607px" height="341px" border="0" class="img_whs3"></p>\r
+<p class="whs2">&nbsp;<img src="../pics/props1.png" x-maintain-ratio="TRUE" width="668px" height="646px" border="0" class="img_whs3"></p>\r
 \r
 <p class="whs2">If you've just started \r
  your study and haven't yet loaded other modules, you'll be able to change \r
@@ -131,18 +129,29 @@ else
        \r
        <ul type="disc" class="whs4">\r
                \r
-               <li class=kadov-p><p class="whs5"><a name=MultiFile1></a>MultiFile \r
- Save<span style="font-weight: normal;"> - if this submenu is marked, you \r
- study will be saved in several HDF files (one file for the data created \r
by each component used during the study session).</span></p></li>\r
+               <li class=kadov-p><p class="whs5">MultiFile Save<span \r
+ style="font-weight: normal;"> - if checked in, your study will be saved \r
+ in several HDF files (one file for the data created by each component \r
+ used during the study session).</span></p></li>\r
                \r
-               <li class=kadov-p><p class="whs5"><a name=ASCII1></a>ASCII \r
- Save - <span style="font-weight: normal;">if this submenu is marked, you \r
study will be saved in ASCII format file (or files).</span></p></li>\r
+               <li class=kadov-p><p class="whs5">ASCII Save - <span \r
+ style="font-weight: normal;">if checked in, your study will be saved in \r
+ ASCII format file (or files).</span></p></li>\r
                \r
                <li class=kadov-p><p class="whs5">Undo level -<span \r
  style="font-weight: normal;"> here you can define the number of actions \r
  which can be undone.</span></p></li>\r
+               \r
+               <li class=kadov-p><p class="whs5">Store positions \r
+ of windows<span style="font-weight: normal;"> - </span>&nbsp;<span \r
+ style="font-weight: normal;">if checked in, \r
+ positions of windows will be saved in a special file at the end of the \r
+ current session and then restored for a new session.</span></p></li>\r
+               \r
+               <li class=kadov-p><p class="whs5">Store/restore last \r
+ GUI state -<span style="font-weight: normal;"> if checked in, all GUI \r
+ settings are saved with the rest of the data whenever you save the study. \r
+ When the study is reopened, the GUI state is restored. </span></p></li>\r
        </ul>\r
        \r
        <li class=kadov-p><p class="whs5">External browser </p></li>\r
@@ -162,152 +171,124 @@ else
 \r
 <ul type="disc" class="whs4">\r
        \r
-       <li class=kadov-p><p class="whs5">Python console browser \r
+       <li class=kadov-p><p class="whs5">Python console properties \r
  -<span style="font-weight: normal;"> here you can quickly set the parameters \r
  (style, size, face) of the font used in your Python console. For detailed \r
- settings press the </span><img src="../image68.gif" width="23px" height="29px" border="0" class="img_whs6"> <span style="font-weight: normal;">button. \r
- The </span>Select Font<span style="font-weight: normal;"> dialog box will \r
- appear. </span></p></li>\r
+ settings in </span><a href="../select_color_and_font.htm">Select Font</a><span \r
+ style="font-weight: normal;"> dialog box press the </span><img src="../image68.gif" width="23px" height="29px" border="0" class="img_whs6"> <span style="font-weight: normal;">button.</span></p></li>\r
 </ul>\r
 \r
-<p class="whs2"><img src="../pics/selectfont.png" x-maintain-ratio="TRUE" width="510px" height="393px" border="0" class="img_whs7"></p>\r
-\r
-<p class="whs8">&nbsp;</p>\r
-\r
-<p class="whs8"><span \r
- style="font-weight: normal;">Please, note that the </span>Script<span \r
- style="font-weight: normal;"> dialog-box gives you the possibility to \r
- use not only Latin and Latin Extended but also Cyrillic, Greek, Arabic, \r
- Runic and many other subsets. &nbsp;</span></p>\r
-\r
-<p class="whs8">&nbsp;</p>\r
-\r
-<p class="whs8">Object \r
- Browser Preferences</p>\r
+<p class="whs7">&nbsp;</p>\r
 \r
-<p class="whs8">&nbsp;</p>\r
+<p class="whs7"><span \r
+ style="font-family: 'Times New Roman', serif; font-weight: bold;"><B>Viewers \r
+ Preferences</B></span></p>\r
 \r
-<p class="whs9">On \r
- the next page you can adjust your Object Browser Preferences.</p>\r
+<p class="whs7">&nbsp;</p>\r
 \r
-<p class="whs8">&nbsp;</p>\r
+<p class="whs7"><img src="../pics/props2.png" x-maintain-ratio="TRUE" width="668px" height="646px" border="0" class="img_whs3"></p>\r
 \r
-<p class="whs8"><img src="../pics/pref2.png" x-maintain-ratio="TRUE" width="607px" height="341px" border="0" class="img_whs3"></p>\r
-\r
-<p class="whs2">&nbsp;&nbsp;</p>\r
+<p class="whs7">&nbsp;</p>\r
 \r
 <ul type="disc" class="whs4">\r
        \r
-       <li class=kadov-p><p class="whs5"><span style="font-weight: normal;">Display \r
- or Hide</span> Value, Entry, IOR <span style="font-weight: normal;">and</span> \r
- Reference entry<span style="font-weight: normal;"> columns.</span></p></li>\r
-       \r
-       <li class=kadov-p><p class="whs5"><span style="font-weight: normal;">Disable \r
- or Enable</span> Auto sizing <span style="font-weight: normal;">of</span> \r
- columns <span style="font-weight: normal;">of the Object Browser.</span> \r
- </p></li>\r
+       <li class=kadov-p><p class="whs7">OCC \r
+ and VTK 3D Viewers</p></li>\r
 </ul>\r
 \r
-<p class="whs10">&nbsp;</p>\r
-\r
-<p class="whs8">Viewers \r
- Preferences</p>\r
-\r
-<p class="whs8">&nbsp;</p>\r
-\r
-<p class="whs8"><span \r
- style="font-weight: normal;">Here you can set preferences for your OCC \r
- and VTK 3D viewers.</span> </p>\r
-\r
-<p class="whs8">&nbsp;</p>\r
-\r
-<p class="whs8"><img src="../pics/viewerspreferences.png" x-maintain-ratio="TRUE" width="580px" height="513px" border="0" class="img_whs11"></p>\r
-\r
-<p class="whs5">&nbsp;</p>\r
-\r
-<ul type="disc" class="whs4">\r
-       \r
-       <li class=kadov-p><p class="whs5">OCC Viewer 3d <span \r
- style="font-weight: normal;">&amp;</span> VTK Viewer 3d - in these menus \r
- you can set preferences for your </p></li>\r
+<ol type="disc" class="whs8">\r
        \r
        <ul type="disc" class="whs4">\r
                \r
                <li class=kadov-p><p class="whs5">Trihedron size \r
  - <span style="font-weight: normal;">this submenu allows to set the size \r
- of axes of coordinates displayed in the viewer.</span></p></li>\r
+ of coordinate axes displayed in the viewer.</span></p></li>\r
                \r
-               <li class=kadov-p><p class="whs5">Number of isolines \r
- along U <span style="font-weight: normal;">(or</span> V<span style="font-weight: normal;">) \r
- - this submenu allows to specify the number of isolines along the axes \r
- of coordinates.</span></p></li>\r
-               \r
-               <li class=kadov-p><p class="whs5"><a name=Select_Color></a>Background \r
+               <li class=kadov-p><p class="whs9">Background \r
  Color - <span style="font-weight: normal;">this submenu allows to select \r
- background color of a definite viewer (OCC, VTK, Plot2d). Simply click \r
- on the colored line to access to the </span>Select Color<span style="font-weight: normal;"> \r
- dialog box. The same procedure applies to color selection in all other \r
- dialog windows. </span></p></li>\r
+ background color. Click on the colored line to access to the </span><a href="../select_color_and_font.htm">Select Color</a><span style="font-weight: normal;"> \r
+ dialog box. </span></p></li>\r
        </ul>\r
-</ul>\r
-\r
-<p class="whs5"><img src="../pics/selectcolor.png" x-maintain-ratio="TRUE" width="492px" height="392px" border="0" class="img_whs12"></p>\r
+</ol>\r
 \r
-<p class="whs2">&nbsp;</p>\r
-\r
-<p class="whs2">In this window you can \r
- choose from either predefined <span style="font-weight: bold;"><B>Basic Colors \r
- </B></span>grouped in the upper left corner of the window or <span style="font-weight: bold;"><B>Custom \r
- Colors,</B></span> which you can define yourselves. To define a Custom Color, \r
- click on one of the Custom Color cells, select the color you need in the \r
- field of colors or by typing in its numeric parameters in the lower right \r
- corner of the window, then click <span style="font-weight: bold;"><B>Add \r
- to Custom Colors</B></span> button. The chosen color will be added to <span \r
- style="font-weight: bold;"><B>Custom Colors</B></span> table. &nbsp;</p>\r
+<ol type="disc" class="whs8">\r
+       \r
+       <ul type="disc" class="whs4">\r
+               \r
+               <li class=kadov-p><p class="whs9"><span \r
+ style="font-weight: normal;">&nbsp;</span>Number \r
+ of isolines along U <span style="font-weight: normal;">(or</span> V<span \r
+ style="font-weight: normal;">) - this submenu allows to specify the number \r
+ of isolines along the axes of coordinates.</span></p></li>\r
+               \r
+               <li class=kadov-p><p class="whs9">Relative \r
+ size<span style="font-weight: normal;"> - if checked in, trihedron axes \r
+ scale to fit the size of the area displayed in 3D Viewer. &nbsp;</span></p></li>\r
+       </ul>\r
+</ol>\r
 \r
 <p class="whs2">&nbsp;</p>\r
 \r
 <ul type="disc" class="whs4">\r
        \r
-       <li class=kadov-p><p class="whs8">Plot2d \r
+       <li class=kadov-p><p class="whs7">Plot2d \r
  Viewer</p></li>\r
        \r
        <ul type="disc" class="whs4">\r
                \r
-               <li class=kadov-p><p class="whs8">Legend \r
+               <li class=kadov-p><p class="whs7">Legend \r
  Position - <span style="font-weight: normal;">this submenu allows to set \r
  the default position of the legend, it can be located to the left, to \r
  the right, on top or on bottom of the graph.</span> &nbsp;</p></li>\r
                \r
-               <li class=kadov-p><p class="whs8">Curve \r
+               <li class=kadov-p><p class="whs7">Curve \r
  Type - <span style="font-weight: normal;">this allows to set the representation \r
  of graphs in your presentations. You can see only</span> Points<span style="font-weight: normal;">, \r
  points connected with</span> Lines <span style="font-weight: normal;">or \r
  points connected with smooth</span> Splines. &nbsp;&nbsp;</p></li>\r
                \r
-               <li class=kadov-p><p class="whs8">Marker \r
+               <li class=kadov-p><p class="whs7">Marker \r
  Size - <span style="font-weight: normal;">this submenu allows you to set \r
  the size of markers in your graphs</span></p></li>\r
                \r
-               <li class=kadov-p><p class="whs8">Horizontal \r
+               <li class=kadov-p><p class="whs7">Horizontal \r
  <span style="font-weight: normal;">&amp;</span> Vertical Axis Scale - \r
  <span style="font-weight: normal;">this submenu allows you to set the \r
  scale for vertical and horizontal axes. It can be either</span> Linear \r
  <span style="font-weight: normal;">or</span> Logarithmic</p></li>\r
                \r
-               <li class=kadov-p><p class="whs8">Background \r
- Color - Background Color - <span style="font-weight: normal;">this submenu \r
- allows to select background color of a definite viewer (OCC, VTK, Plot2d).</span></p></li>\r
+               <li class=kadov-p><p class="whs7">Background \r
+ Color - <span style="font-weight: normal;">this submenu allows to select \r
+ the background color. Click on the colored line to access to the </span><a href="../select_color_and_font.htm">Select Color</a><span style="font-weight: normal;"> \r
+ dialog box. </span></p></li>\r
        </ul>\r
 </ul>\r
 \r
-<p class="whs8">&nbsp;</p>\r
+<p class="whs7">&nbsp;</p>\r
 \r
-<p class="whs13">Directories Preferences</p>\r
+<ul type="disc" class="whs4">\r
+       \r
+       <li class=kadov-p><p class="whs7">Graph \r
+ Supervisor</p></li>\r
+       \r
+       <li class=kadov-p><p class="whs10">Background \r
+ Color - <span style="font-weight: normal;">this submenu allows to select \r
+ background color. Click on the colored line to access to the </span><a href="../select_color_and_font.htm">Select Color</a><span style="font-weight: normal;"> \r
+ dialog box. </span></p></li>\r
+       \r
+       <li class=kadov-p><p class="whs10">Title \r
+ Color - <span style="font-weight: normal;">this submenu allows to select \r
+ title color. Click on the colored line to access to the </span><a href="../select_color_and_font.htm">Select \r
+ Color</a><span style="font-weight: normal;"> dialog box. </span></p></li>\r
+</ul>\r
+\r
+<p class="whs11">&nbsp;</p>\r
+\r
+<p class="whs12">Directories Preferences</p>\r
 \r
 <p class="whs2">&nbsp;</p>\r
 \r
-<p class="whs2"><img src="../pics/pref4.png" x-maintain-ratio="TRUE" width="607px" height="341px" border="0" class="img_whs3"></p>\r
+<p class="whs2"><img src="../pics/props3.png" x-maintain-ratio="TRUE" width="668px" height="646px" border="0" class="img_whs3"></p>\r
 \r
 <p class="whs2">&nbsp;</p>\r
 \r
@@ -316,18 +297,39 @@ else
        <li class=kadov-p><p class="whs5">Quick Directory List \r
  - <span style="font-weight: normal;">this section allows to create and \r
  manage a custom quick directory list. To add a directory in the list, \r
- press the </span><img src="../image70.gif" width="20px" height="20px" border="0" class="img_whs14"> <span style="font-weight: normal;">button, \r
- then the <img src="../image71.gif" width="22px" height="23px" border="0" class="img_whs15"> button and browse the data tree for the</span> \r
+ press the </span><img src="../image70.gif" width="20px" height="20px" border="0" class="img_whs13"> <span style="font-weight: normal;">button, \r
+ then the <img src="../image71.gif" width="22px" height="23px" border="0" class="img_whs14"> button and browse the data tree for the</span> \r
  <span style="font-weight: normal;">directory you need.</span> <span style="font-weight: normal;"><br>\r
-       The <img src="../image73.gif" width="22px" height="21px" border="0" class="img_whs16"> and <img src="../image75.gif" width="23px" height="23px" border="0" class="img_whs17"> buttons help you to sort the \r
+       The <img src="../image73.gif" width="22px" height="21px" border="0" class="img_whs15"> and <img src="../image75.gif" width="23px" height="23px" border="0" class="img_whs16"> buttons help you to sort the \r
  directories in the list.<br>\r
-       To remove the selected directory from the list, press the <img src="../image72.gif" width="25px" height="24px" border="0" class="img_whs18"> button.</span> <br>&nbsp;</p></li>\r
+       To remove the selected directory from the list, press the <img src="../image72.gif" width="25px" height="24px" border="0" class="img_whs17"> button.</span> </p></li>\r
 </ul>\r
 \r
-<p class="whs19">&nbsp;</p>\r
+<p class="whs5">&nbsp;</p>\r
+\r
+<p class="whs7"><span \r
+ style="font-family: 'Times New Roman', serif; font-weight: bold;"><B>Object \r
+ Browser Preferences</B></span></p>\r
+\r
+<p class="whs7">&nbsp;</p>\r
+\r
+<p class="whs7"><img src="../pics/props4.png" x-maintain-ratio="TRUE" width="668px" height="646px" border="0" class="img_whs3"></p>\r
+\r
+<p class="whs7">&nbsp;</p>\r
+\r
+<p class="whs5"><span style="font-weight: normal;">D</span><span \r
+ style="font-weight: normal;">isplay or Hide</span> Value, Entry, IOR <span \r
+ style="font-weight: normal;">and</span> Reference entry<span style="font-weight: normal;"> \r
+ columns in the Object Browser.</span></p>\r
+\r
+<p class="whs5"><span style="font-weight: normal;">Disable \r
+ or Enable</span> Auto size for first column or Auto size for other columns \r
+ <span style="font-weight: normal;">in the Object Browser.</span> </p>\r
+\r
+<p class="whs5">&nbsp;</p>\r
 \r
 <p class="whs5">\r
-<a href="javascript:void(0);" onClick="var e; if (parseInt(navigator.appVersion)>=4){e=event;}  if (parseInt(navigator.appVersion) >=2 && typeof(PickupDialog_Invoke) == 'function') PickupDialog_Invoke(e,'','Introduction to IAPP','introduction_to_iapp.htm','SALOME desktop','salome_pro_desktop.htm','Saving a study','saving_a_study.htm','Using Object Browser','using_object_browser.htm');return false;" title="Related Topics"><img src="../ss_btn_related_topics.gif" border=0 height=17 width=82 alt="Related Topics"></a>\r
+<a href="javascript:void(0);" onClick="var e; if (parseInt(navigator.appVersion)>=4){e=event;}  if (parseInt(navigator.appVersion) >=2 && typeof(PickupDialog_Invoke) == 'function') PickupDialog_Invoke(e,'','Introduction to GUI','../introduction_to_gui.htm','SALOME desktop','salome_pro_desktop.htm','Saving a study','saving_a_study.htm','Using Object Browser','using_object_browser.htm');return false;" title="Related Topics"><img src="../ss_btn_related_topics.gif" border=0 height=17 width=82 alt="Related Topics"></a>\r
 \r
 \r
  </p>\r
index 2d1cfd0244637d828f32d3c0792fbfc364ce784f..937d6715c66046d5ed7223b401dac282a83fc32e 100755 (executable)
@@ -22,7 +22,7 @@ p.whs5 { text-align:justify; }
 p.whs6 { font-family:'Times New Roman' , serif; }\r
 p.whs7 { font-family:'Times New Roman' , serif; margin-left:40px; font-style:normal; color:#000000; }\r
 p.whs8 { font-family:'Times New Roman' , serif; margin-left:40px; }\r
-img_whs9 { border:none; border-style:none; width:475px; height:289px; float:none; }\r
+img_whs9 { border:none; width:475px; height:289px; float:none; border-style:none; }\r
 p.whs10 { font-family:'Times New Roman' , serif; margin-left:0px; }\r
 ul.whs11 { list-style:disc; }\r
 p.whs12 { font-family:'Times New Roman'  , serif; margin-left:0px; background-image:url('../texture_horiz_ltbluebubbles.jpg'); }\r
@@ -111,7 +111,7 @@ else
  interface its xml description. &nbsp;The \r
  component xml description allows SALOME application to know about the \r
  component and its services and provides the possibility to call the component \r
- services, for example, inside SUPERVISION module.</p>\r
+ services, for example, inside Supervisor module.</p>\r
 \r
 <p class="whs4">If you have a look at runSalome, runSalomeWithPort \r
  scripts running SALOME application, which are stored in build/bin directory \r
@@ -206,7 +206,7 @@ else
 <p class="whs10">&nbsp;</p>\r
 \r
 <p class="whs15">\r
-<a href="javascript:void(0);" onClick="var e; if (parseInt(navigator.appVersion)>=4){e=event;}  if (parseInt(navigator.appVersion) >=2 && typeof(PickupDialog_Invoke) == 'function') PickupDialog_Invoke(e,'','Introduction to IAPP','introduction_to_iapp.htm','SALOME desktop','salome_pro_desktop.htm');return false;" title="Related Topics"><img src="../ss_btn_related_topics.gif" border=0 height=17 width=82 alt="Related Topics"></a>\r
+<a href="javascript:void(0);" onClick="var e; if (parseInt(navigator.appVersion)>=4){e=event;}  if (parseInt(navigator.appVersion) >=2 && typeof(PickupDialog_Invoke) == 'function') PickupDialog_Invoke(e,'','Introduction to GUI','../introduction_to_gui.htm','SALOME desktop','salome_pro_desktop.htm');return false;" title="Related Topics"><img src="../ss_btn_related_topics.gif" border=0 height=17 width=82 alt="Related Topics"></a>\r
 \r
 \r
  </p>\r
index a1680135f9084b8072e855c0462e6502b75d1972..a62e55c5d829940618cb0450136d7fc8c04ecb0e 100755 (executable)
@@ -18,10 +18,10 @@ h1.whs1 { text-align:justify; }
 p.whs2 { text-align:justify; }\r
 img_whs3 { border:none; width:30px; height:30px; float:none; border-style:none; }\r
 ul.whs4 { list-style:disc; }\r
-img_whs5 { border:none; width:294px; height:280px; float:none; }\r
+img_whs5 { border:none; width:294px; height:280px; float:none; border-style:none; }\r
 p.whs6 { background-image:url('../texture_horiz_ltbluebubbles.jpg'); text-align:justify; }\r
 img_whs7 { border:none; float:none; width:36px; height:38px; border-style:none; }\r
-img_whs8 { border:none; width:354px; height:280px; float:none; }\r
+img_whs8 { border:none; width:354px; height:280px; float:none; border-style:none; }\r
 p.whs9 { font-style:italic; color:#ff0000; text-align:justify; }\r
 p.whs10 { margin-left:40px; text-align:justify; }\r
 p.whs11 { font-style:italic; color:#ff0000; margin-left:40px; text-align:justify; }\r
@@ -107,8 +107,8 @@ else
        <li class=kadov-p><p class="whs2">components, loaded \r
  during the current session</p></li>\r
        \r
-       <li class=kadov-p><p class="whs2">objects with the \r
- help of different components &nbsp;(The \r
+       <li class=kadov-p><p class="whs2">objects created with \r
the help of different components &nbsp;(The \r
  objects created with the help of a definite component are located in the \r
  folder having the name of this component.)</p></li>\r
        \r
@@ -171,11 +171,8 @@ else
  the value of the first object attribute </p></li>\r
 </ul>\r
 \r
-<p class="whs2">&nbsp;</p>\r
-\r
-<p class="whs2">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</p>\r
-\r
-<p class="whs2">&nbsp;</p>\r
+<p class="whs2">&nbsp;<span \r
+ style="text-align: justify;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span></p>\r
 \r
 <p class="whs2">In the Object Browser you can apply to \r
  the objects an <span style="font-weight: bold;"><B>ascending</B></span> or <span \r
@@ -195,7 +192,7 @@ else
 <p class="whs11">&nbsp;</p>\r
 \r
 <p class="whs12">\r
-<a href="javascript:void(0);" onClick="var e; if (parseInt(navigator.appVersion)>=4){e=event;}  if (parseInt(navigator.appVersion) >=2 && typeof(PickupDialog_Invoke) == 'function') PickupDialog_Invoke(e,'','Introduction to IAPP','introduction_to_iapp.htm','SALOME desktop','salome_pro_desktop.htm','Setting preferences','setting_preferences.htm');return false;" title="Related Topics"><img src="../ss_btn_related_topics.gif" border=0 height=17 width=82 alt="Related Topics"></a>\r
+<a href="javascript:void(0);" onClick="var e; if (parseInt(navigator.appVersion)>=4){e=event;}  if (parseInt(navigator.appVersion) >=2 && typeof(PickupDialog_Invoke) == 'function') PickupDialog_Invoke(e,'','Introduction to GUI','../introduction_to_gui.htm','SALOME desktop','salome_pro_desktop.htm','Setting preferences','setting_preferences.htm');return false;" title="Related Topics"><img src="../ss_btn_related_topics.gif" border=0 height=17 width=82 alt="Related Topics"></a>\r
 \r
 \r
  </p>\r
index c88a7eaacd292bd9625bb837f2b8cbc595f59dff..8028cfce551d2566ce2240da51f63a1d56981b32 100755 (executable)
@@ -18,11 +18,11 @@ h1.whs1 { text-align:justify; }
 p.whs2 { text-align:justify; }\r
 p.whs3 { margin-left:40px; text-align:justify; }\r
 p.whs4 { font-style:italic; color:#ff0000; margin-left:40px; text-align:justify; }\r
-img_whs5 { border:none; border-style:none; width:604px; height:201px; float:none; }\r
+img_whs5 { border:none; width:604px; height:201px; float:none; border-style:none; }\r
 p.whs6 { margin-left:0px; text-align:justify; }\r
 p.whs7 { text-align:justify; margin-left:80px; }\r
-img_whs8 { border:none; width:327px; height:128px; float:none; }\r
-img_whs9 { border:none; border-style:none; width:460px; height:283px; float:none; }\r
+img_whs8 { border:none; width:327px; height:128px; float:none; border-style:none; }\r
+img_whs9 { border:none; width:460px; height:283px; float:none; border-style:none; }\r
 p.whs10 { margin-left:0px; font-weight:bold; text-align:justify; }\r
 -->\r
 </style><script type="text/javascript" language="JavaScript">\r
@@ -105,8 +105,8 @@ else
 <p class="whs2">&nbsp;</p>\r
 \r
 <p class="whs3">From the main menu choose \r
- <span style="font-weight: bold;"><B>Tools &gt; Registry</B></span>, the following \r
- dialog box will appear:</p>\r
+ <span style="font-weight: bold;"><B>Tools &gt; Registry display</B></span>, the \r
following dialog box will appear:</p>\r
 \r
 <p class="whs4">&nbsp;</p>\r
 \r
@@ -161,11 +161,6 @@ else
 \r
 <p class="whs6">&nbsp;</p>\r
 \r
-<p class="whs6"><span style="font-weight: bold;"><B>Help</B></span> \r
- displays a help message on this tool</p>\r
-\r
-<p class="whs2">&nbsp;</p>\r
-\r
 <p class=TODO>To display complete information on a definite process (component):</p>\r
 \r
 <p class="whs2">&nbsp;</p>\r
@@ -182,7 +177,7 @@ else
 <p class="whs6">&nbsp;</p>\r
 \r
 <p class="whs10">\r
-<a href="javascript:void(0);" onClick="var e; if (parseInt(navigator.appVersion)>=4){e=event;}  if (parseInt(navigator.appVersion) >=2 && typeof(PickupDialog_Invoke) == 'function') PickupDialog_Invoke(e,'','Introduction to IAPP','introduction_to_iapp.htm','SALOME desktop','salome_pro_desktop.htm');return false;" title="Related Topics"><img src="../ss_btn_related_topics.gif" border=0 height=17 width=82 alt="Related Topics"></a>\r
+<a href="javascript:void(0);" onClick="var e; if (parseInt(navigator.appVersion)>=4){e=event;}  if (parseInt(navigator.appVersion) >=2 && typeof(PickupDialog_Invoke) == 'function') PickupDialog_Invoke(e,'','Introduction to GUI','../introduction_to_gui.htm','SALOME desktop','salome_pro_desktop.htm');return false;" title="Related Topics"><img src="../ss_btn_related_topics.gif" border=0 height=17 width=82 alt="Related Topics"></a>\r
 \r
 \r
  </p>\r
index 246de3c16c4aa4fcc338189795d76cb809b5bc7e..7f721ac09debb189ed3f60e0ae40fc74a5ff2917 100755 (executable)
@@ -15,16 +15,17 @@ if (navigator.appName !="Netscape")
 <style type="text/css">\r
 <!--\r
 p.whs1 { font-weight:bold; }\r
-img_whs2 { border:none; border-style:none; width:580px; height:513px; float:none; }\r
+img_whs2 { border:none; width:668px; height:646px; float:none; border-style:none; }\r
 ul.whs3 { list-style:disc; }\r
 p.whs4 { margin-left:48px; }\r
 p.whs5 { font-weight:bold; margin-left:0px; }\r
-p.whs6 { margin-left:48px; font-weight:bold; }\r
-p.whs7 { margin-left:0px; font-weight:bold; }\r
-p.whs8 { font-weight:bold; margin-left:48px; }\r
-p.whs9 { margin-left:0px; font-weight:normal; }\r
-img_whs10 { border:none; width:607px; height:443px; float:none; border-style:none; }\r
-p.whs11 { font-weight:normal; }\r
+p.whs6 { margin-left:0px; font-weight:bold; }\r
+p.whs7 { font-weight:bold; margin-left:48px; }\r
+p.whs8 { margin-left:0px; font-weight:normal; }\r
+p.whs9 { margin-left:38px; }\r
+p.whs10 { margin-left:38px; font-weight:bold; }\r
+p.whs11 { font-weight:bold; margin-left:38px; }\r
+p.whs12 { font-weight:normal; }\r
 -->\r
 </style><script type="text/javascript" language="JavaScript">\r
 <!--\r
@@ -32,8 +33,8 @@ if ((navigator.appName == "Netscape") && (parseInt(navigator.appVersion) == 4))
 {\r
   var strNSS = "<style type='text/css'>";\r
   strNSS += "p.whs5 {margin-left:1pt; }";\r
-  strNSS += "p.whs7 {margin-left:1pt; }";\r
-  strNSS += "p.whs9 {margin-left:1pt; }";\r
+  strNSS += "p.whs6 {margin-left:1pt; }";\r
+  strNSS += "p.whs8 {margin-left:1pt; }";\r
   strNSS +="</style>";\r
   document.write(strNSS);\r
 }\r
@@ -69,7 +70,7 @@ if (window.gbWhTopic)
 {\r
        if (window.addTocInfo)\r
        {\r
-       addTocInfo("GUI module\nSetting Preferences\nMESH preferences");\r
+       addTocInfo("GUI module\nSetting Preferences\nMesh preferences");\r
 addButton("show",BTN_TEXT,"Show","","","","",0,0,"","","");\r
 \r
        }\r
@@ -93,10 +94,10 @@ else
                document.location.reload();\r
 //-->\r
 </script>\r
-<h1>MESH preferences</h1>\r
+<h1>Mesh preferences</h1>\r
 \r
-<p>In the MESH module you can set mesh preferences, default settings, which \r
can be used in later sessions with this module. </p>\r
+<p>In the Mesh module you can set mesh preferences, which can be used in \r
+ later sessions with this module. </p>\r
 \r
 <p>&nbsp;</p>\r
 \r
@@ -104,7 +105,7 @@ else
 \r
 <p>&nbsp;</p>\r
 \r
-<p><img src="pics/meshpreferences.png" x-maintain-ratio="TRUE" width="580px" height="513px" border="0" class="img_whs2"></p>\r
+<p><img src="pics/propm1.png" x-maintain-ratio="TRUE" width="668px" height="646px" border="0" class="img_whs2"></p>\r
 \r
 <p>&nbsp;</p>\r
 \r
@@ -132,49 +133,76 @@ else
  numbers in<span style="font-weight: bold;"><B> Quality Control</B></span> diagrams \r
  at the necessary level of precision.</p></li>\r
        \r
-       <li class=kadov-p><p class="whs5">Precision.</p></li>\r
-       \r
-       <li class=kadov-p><p class="whs6"><span \r
- style="font-weight: normal;">By default,</span> <span style="font-weight: normal;">&nbsp;numbers \r
- in</span> Quality Control<span style="font-weight: normal;"> diagrams \r
- are presented as integers. However, it is possible to set the</span> Number \r
- of digits after point <span style="font-weight: normal;">in the corresponding \r
- field.</span></p></li>\r
-       \r
-       <li class=kadov-p><p class="whs7">Display \r
- mode</p></li>\r
-       \r
-       <li class=kadov-p><p class="whs8"><span \r
- style="font-weight: normal;">In the <a href="../SMESH/Presentation.htm"\r
-                                                                               style="font-weight: bold;">D</span><span \r
- style="font-weight: bold;"><B>isplay mode</a> </B></span><span style="font-weight: normal;">dialog \r
- box you can set Wireframe, Shading, Nodes or Shrink presentation mode \r
- as default. &nbsp;This \r
- functionality is described in full detail in other chapter. </span></p></li>\r
+       <li class=kadov-p><p class="whs5">Precision \r
+ - <span style="font-weight: normal;">can be defined by</span> <span style="font-weight: normal;">the \r
+ </span>Number of digits after point<span style="font-weight: normal;"> \r
+ in the corresponding field. By default, numbers in </span>Quality Control<span \r
+ style="font-weight: normal;"> diagrams are presented as integers.</span> \r
+ </p></li>\r
+       \r
+       <li class=kadov-p><p class="whs5">Display \r
+ mode - <span style="font-weight: normal;">allows to set Wireframe, Shading, \r
+ Nodes or Shrink presentation mode as default.</span> </p></li>\r
+</ul>\r
+\r
+<ul type="disc" class="whs3">\r
+       \r
+       <li class=kadov-p><p class="whs6">Mesh \r
+ export </p></li>\r
+       \r
+       <li class=kadov-p><p class="whs4">If you toggle <span \r
+ style="font-weight: bold;"><B>Automatically create groups for MED export</B></span> \r
+ checkbox, this operation will be carried out automatically.</p></li>\r
 </ul>\r
 \r
+<p class="whs7">&nbsp;</p>\r
+\r
 <p class="whs5">&nbsp;</p>\r
 \r
-<p class="whs7">Mesh Preferences</p>\r
+<p class="whs6">Mesh Preferences</p>\r
 \r
-<p class="whs9">&nbsp;</p>\r
+<p class="whs8">&nbsp;</p>\r
 \r
-<p class="whs1"><img src="pics/preferencies7.png" x-maintain-ratio="TRUE" width="607px" height="443px" border="0" class="img_whs10"></p>\r
+<p class="whs1"><img src="pics/propm2.png" x-maintain-ratio="TRUE" width="668px" height="646px" border="0" class="img_whs2"></p>\r
 \r
 <p>&nbsp;</p>\r
 \r
 <ul type="disc" class="whs3">\r
        \r
        <li class=kadov-p><p><span style="font-weight: bold;"><B>Nodes</B></span> \r
- - &nbsp;in this \r
- menu you can set the <span style="font-weight: bold;"><B>Color</B></span> and \r
- the <span style="font-weight: bold;"><B>Size</B></span> for the Nodes of your \r
- mesh. </p></li>\r
-       \r
-       <li class=kadov-p><p><span style="font-weight: bold;"><B>Elements</B></span> \r
- - in this menu you can set &nbsp;the \r
- Shrink Coefficient, the Width and the colors of Fill, Back face and Outline \r
- for the Elements of your mesh.</p></li>\r
+ </p></li>\r
+       \r
+       <li class=kadov-p><p class="whs9"><span style="font-weight: bold;"><B>Color</B></span> \r
+ - &nbsp;allows \r
+ to select the color of nodes. Click on the colored line to access to the \r
+ <span style="font-weight: bold;"><B><a href="select_color_and_font.htm">Select \r
+ Color</a></B></span> dialog box. </p></li>\r
+       \r
+       <li class=kadov-p><p class="whs10">Size \r
+ - <span style="font-weight: normal;">allows to define the size of nodes.</span></p></li>\r
+       \r
+       <li class=kadov-p><p class="whs1">Elements</p></li>\r
+       \r
+       <li class=kadov-p><p class="whs9"><span style="font-weight: bold;"><B>Fill \r
+ </B></span>&nbsp;- \r
+ allows to select the color of surface of elements (seen in Shading mode). \r
+ Click on the colored line to access to the <span style="font-weight: bold;"><B><a href="select_color_and_font.htm">Select Color</a></B></span> dialog box. </p></li>\r
+       \r
+       <li class=kadov-p><p class="whs9"><span style="font-weight: bold;"><B>Outline</B></span> \r
+ - allows to select the color of borders of elements. Click on the colored \r
+ line to access to the <span style="font-weight: bold;"><B><a href="select_color_and_font.htm">Select \r
+ Color</a></B></span> dialog box. </p></li>\r
+       \r
+       <li class=kadov-p><p class="whs9"><span style="font-weight: bold;"><B>Back \r
+ Face</B></span> - allows to select the color of interior surface of elements. \r
+ Click on the colored line to access to the <span style="font-weight: bold;"><B><a href="select_color_and_font.htm">Select Color</a></B></span> dialog box. </p></li>\r
+       \r
+       <li class=kadov-p><p class="whs9"><span style="font-weight: bold;"><B>Width</B></span> \r
+ - allows to define the width of lines (edges and borders of elements).</p></li>\r
+       \r
+       <li class=kadov-p><p class="whs10">Shrink \r
+ coef. - <span style="font-weight: normal;">allows to define relative space \r
+ of elements compared to gaps between them in shrink mode</span></p></li>\r
 </ul>\r
 \r
 <p>&nbsp;</p>\r
@@ -183,31 +211,56 @@ else
 \r
 <p>&nbsp;</p>\r
 \r
-<p><img src="pics/preferencies8.png" x-maintain-ratio="TRUE" width="607px" height="443px" border="0" class="img_whs10"></p>\r
+<p><img src="pics/propm3.png" x-maintain-ratio="TRUE" width="668px" height="646px" border="0" class="img_whs2"></p>\r
 \r
 <p>&nbsp;</p>\r
 \r
 <ul type="disc" class="whs3">\r
        \r
-       <li class=kadov-p><p class="whs1">Selection - <span style="font-weight: normal;">in \r
- this menu you can set the color for selected objects and elements and \r
- the width of lines used for selection.</span></p></li>\r
+       <li class=kadov-p><p class="whs1">Selection - <span style="font-weight: normal;">performed \r
+ with mouse-indexing (preselection) and left-clicking on an object, whose \r
+ appearance changes as defined in the</span> Preferences.</p></li>\r
+       \r
+       <li class=kadov-p><p class="whs11">Object \r
+ Color - &nbsp;<span style="font-weight: normal;">allows \r
+ to select the color of mesh (edges and borders of meshes) of the selected \r
+ entity. Click on the colored line to access to the <a href="select_color_and_font.htm" style="font-weight: bold;">Select \r
+ Color</a> dialog box.</span> </p></li>\r
+       \r
+       <li class=kadov-p><p class="whs11">Element \r
+ color - <span style="font-weight: normal;">allows to select the color \r
+ of surface of selected elements (seen in Shading mode).</span> <span style="font-weight: normal;">Click \r
+ on the colored line to access to the <a href="select_color_and_font.htm" style="font-weight: bold;">Select \r
+ Color</a> dialog box.</span> </p></li>\r
        \r
-       <li class=kadov-p><p class="whs1">Preselection<span style="font-weight: normal;"> \r
- - in this menu you can set the color used for preselection and the width \r
- of lines used for preselection. </span></p></li>\r
+       <li class=kadov-p><p class="whs9"><span style="font-weight: bold;"><B>Width</B></span> \r
+ - allows to define the width of selected edges.</p></li>\r
+       \r
+       <li class=kadov-p><p class="whs1">Preselection - <span \r
+ style="font-weight: normal;">performed with mouse-indexing on an object, \r
+ whose appearance changes as defined in the</span> Preferences.</p></li>\r
+       \r
+       <li class=kadov-p><p class="whs11">Highlight \r
+ Color - &nbsp;<span style="font-weight: normal;">allows \r
+ to select the color of mesh (edges and borders of meshes) of the entity \r
+ . Click on the colored line to access to the <a href="select_color_and_font.htm" style="font-weight: bold;">Select \r
+ Color</a> dialog box.</span> </p></li>\r
+       \r
+       <li class=kadov-p><p class="whs9"><span style="font-weight: bold;"><B>Width</B></span> \r
+ - allows to define the width of preselected edges.</p></li>\r
        \r
        <li class=kadov-p><p class="whs1">Precision<span style="font-weight: normal;"> \r
- - in this menu you can set the value of precision used for nodes and elements.</span></p></li>\r
+ - in this menu you can set the value of precision used for </span>Nodes<span \r
+ style="font-weight: normal;"> and </span>Elements<span style="font-weight: normal;">.</span></p></li>\r
 </ul>\r
 \r
 <p class="whs1">&nbsp;</p>\r
 \r
 <p class="whs1">Scalar Bar Preferences</p>\r
 \r
-<p class="whs11">&nbsp;</p>\r
+<p class="whs12">&nbsp;</p>\r
 \r
-<p class="whs11"><img src="pics/preferencies9.png" x-maintain-ratio="TRUE" width="607px" height="443px" border="0" class="img_whs10"></p>\r
+<p class="whs12"><img src="pics/propm4.png" x-maintain-ratio="TRUE" width="668px" height="646px" border="0" class="img_whs2"></p>\r
 \r
 <p>&nbsp;</p>\r
 \r
@@ -226,10 +279,19 @@ else
  style="font-weight: normal;">here you can choose between vertical and \r
  horizontal orientation of the</span> Scalar Bar.</p></li>\r
        \r
-       <li class=kadov-p><p><span style="font-weight: bold;"><B>Origin &amp; \r
- Size Vertical</B></span> &amp; <span style="font-weight: bold;"><B>Horizontal</B></span> \r
- - in this menu you can set representation parameters for the <span style="font-weight: bold;"><B>Scalar \r
- Bar.</B></span></p></li>\r
+       <li class=kadov-p><p class="whs5">Origin \r
+ &amp; Size Vertical &amp; Horizontal - a<span style="font-weight: normal;">llows \r
+ to define placement (</span>X <span style="font-weight: normal;">and</span> \r
+ Y<span style="font-weight: normal;">) and lookout (</span>Width and Height) \r
+ <span style="font-weight: normal;">of Scalar Bars</span></p></li>\r
+       \r
+       <li class=kadov-p><p class="whs11">X: \r
+ <span style="font-weight: normal;">abscissa of the point of origin (from \r
+ the left side)</span></p></li>\r
+       \r
+       <li class=kadov-p><p class="whs11">Y: \r
+ <span style="font-weight: normal;">ordinate of the origin of the bar (from \r
+ the bottom)</span></p></li>\r
 </ul>\r
 \r
 <script type="text/javascript" language="javascript1.2">\r
diff --git a/doc/salome/gui/KERNEL/pics/dumpstudy.png b/doc/salome/gui/KERNEL/pics/dumpstudy.png
new file mode 100755 (executable)
index 0000000..f899e77
Binary files /dev/null and b/doc/salome/gui/KERNEL/pics/dumpstudy.png differ
diff --git a/doc/salome/gui/KERNEL/pics/loadscript.png b/doc/salome/gui/KERNEL/pics/loadscript.png
new file mode 100755 (executable)
index 0000000..e681fc7
Binary files /dev/null and b/doc/salome/gui/KERNEL/pics/loadscript.png differ
diff --git a/doc/salome/gui/KERNEL/pics/meshpreferences.png b/doc/salome/gui/KERNEL/pics/meshpreferences.png
deleted file mode 100755 (executable)
index 976405b..0000000
Binary files a/doc/salome/gui/KERNEL/pics/meshpreferences.png and /dev/null differ
diff --git a/doc/salome/gui/KERNEL/pics/multidesktop.png b/doc/salome/gui/KERNEL/pics/multidesktop.png
deleted file mode 100755 (executable)
index 44f9df8..0000000
Binary files a/doc/salome/gui/KERNEL/pics/multidesktop.png and /dev/null differ
diff --git a/doc/salome/gui/KERNEL/pics/neo-view1.png b/doc/salome/gui/KERNEL/pics/neo-view1.png
deleted file mode 100755 (executable)
index 1a30c60..0000000
Binary files a/doc/salome/gui/KERNEL/pics/neo-view1.png and /dev/null differ
diff --git a/doc/salome/gui/KERNEL/pics/plot1.png b/doc/salome/gui/KERNEL/pics/plot1.png
deleted file mode 100755 (executable)
index 46b950d..0000000
Binary files a/doc/salome/gui/KERNEL/pics/plot1.png and /dev/null differ
diff --git a/doc/salome/gui/KERNEL/pics/pref1.png b/doc/salome/gui/KERNEL/pics/pref1.png
deleted file mode 100755 (executable)
index 363957e..0000000
Binary files a/doc/salome/gui/KERNEL/pics/pref1.png and /dev/null differ
diff --git a/doc/salome/gui/KERNEL/pics/pref2.png b/doc/salome/gui/KERNEL/pics/pref2.png
deleted file mode 100755 (executable)
index ec0007e..0000000
Binary files a/doc/salome/gui/KERNEL/pics/pref2.png and /dev/null differ
diff --git a/doc/salome/gui/KERNEL/pics/pref4.png b/doc/salome/gui/KERNEL/pics/pref4.png
deleted file mode 100755 (executable)
index 84fcdcf..0000000
Binary files a/doc/salome/gui/KERNEL/pics/pref4.png and /dev/null differ
diff --git a/doc/salome/gui/KERNEL/pics/preferencies10.png b/doc/salome/gui/KERNEL/pics/preferencies10.png
deleted file mode 100755 (executable)
index 3ce0295..0000000
Binary files a/doc/salome/gui/KERNEL/pics/preferencies10.png and /dev/null differ
diff --git a/doc/salome/gui/KERNEL/pics/preferencies11.png b/doc/salome/gui/KERNEL/pics/preferencies11.png
deleted file mode 100755 (executable)
index 08c9d43..0000000
Binary files a/doc/salome/gui/KERNEL/pics/preferencies11.png and /dev/null differ
diff --git a/doc/salome/gui/KERNEL/pics/preferencies5.png b/doc/salome/gui/KERNEL/pics/preferencies5.png
deleted file mode 100755 (executable)
index b6746a9..0000000
Binary files a/doc/salome/gui/KERNEL/pics/preferencies5.png and /dev/null differ
diff --git a/doc/salome/gui/KERNEL/pics/preferencies7.png b/doc/salome/gui/KERNEL/pics/preferencies7.png
deleted file mode 100755 (executable)
index fb5379a..0000000
Binary files a/doc/salome/gui/KERNEL/pics/preferencies7.png and /dev/null differ
diff --git a/doc/salome/gui/KERNEL/pics/preferencies8.png b/doc/salome/gui/KERNEL/pics/preferencies8.png
deleted file mode 100755 (executable)
index ea43d45..0000000
Binary files a/doc/salome/gui/KERNEL/pics/preferencies8.png and /dev/null differ
diff --git a/doc/salome/gui/KERNEL/pics/preferencies9.png b/doc/salome/gui/KERNEL/pics/preferencies9.png
deleted file mode 100755 (executable)
index 3a63312..0000000
Binary files a/doc/salome/gui/KERNEL/pics/preferencies9.png and /dev/null differ
diff --git a/doc/salome/gui/KERNEL/pics/propm1.png b/doc/salome/gui/KERNEL/pics/propm1.png
new file mode 100755 (executable)
index 0000000..39e5329
Binary files /dev/null and b/doc/salome/gui/KERNEL/pics/propm1.png differ
diff --git a/doc/salome/gui/KERNEL/pics/propm2.png b/doc/salome/gui/KERNEL/pics/propm2.png
new file mode 100755 (executable)
index 0000000..7a3bfd4
Binary files /dev/null and b/doc/salome/gui/KERNEL/pics/propm2.png differ
diff --git a/doc/salome/gui/KERNEL/pics/propm3.png b/doc/salome/gui/KERNEL/pics/propm3.png
new file mode 100755 (executable)
index 0000000..c02dd1a
Binary files /dev/null and b/doc/salome/gui/KERNEL/pics/propm3.png differ
diff --git a/doc/salome/gui/KERNEL/pics/propm4.png b/doc/salome/gui/KERNEL/pics/propm4.png
new file mode 100755 (executable)
index 0000000..d0b0ac0
Binary files /dev/null and b/doc/salome/gui/KERNEL/pics/propm4.png differ
diff --git a/doc/salome/gui/KERNEL/pics/propp1.png b/doc/salome/gui/KERNEL/pics/propp1.png
new file mode 100755 (executable)
index 0000000..46f2460
Binary files /dev/null and b/doc/salome/gui/KERNEL/pics/propp1.png differ
diff --git a/doc/salome/gui/KERNEL/pics/propp2.png b/doc/salome/gui/KERNEL/pics/propp2.png
new file mode 100755 (executable)
index 0000000..ba664c2
Binary files /dev/null and b/doc/salome/gui/KERNEL/pics/propp2.png differ
diff --git a/doc/salome/gui/KERNEL/pics/propp3.png b/doc/salome/gui/KERNEL/pics/propp3.png
new file mode 100755 (executable)
index 0000000..5b27c00
Binary files /dev/null and b/doc/salome/gui/KERNEL/pics/propp3.png differ
diff --git a/doc/salome/gui/KERNEL/pics/propp6.png b/doc/salome/gui/KERNEL/pics/propp6.png
new file mode 100755 (executable)
index 0000000..a29430a
Binary files /dev/null and b/doc/salome/gui/KERNEL/pics/propp6.png differ
diff --git a/doc/salome/gui/KERNEL/pics/propp7.png b/doc/salome/gui/KERNEL/pics/propp7.png
new file mode 100755 (executable)
index 0000000..abb2f46
Binary files /dev/null and b/doc/salome/gui/KERNEL/pics/propp7.png differ
diff --git a/doc/salome/gui/KERNEL/pics/propp8.png b/doc/salome/gui/KERNEL/pics/propp8.png
new file mode 100755 (executable)
index 0000000..a6f4f79
Binary files /dev/null and b/doc/salome/gui/KERNEL/pics/propp8.png differ
diff --git a/doc/salome/gui/KERNEL/pics/props1.png b/doc/salome/gui/KERNEL/pics/props1.png
new file mode 100755 (executable)
index 0000000..6aa6f21
Binary files /dev/null and b/doc/salome/gui/KERNEL/pics/props1.png differ
diff --git a/doc/salome/gui/KERNEL/pics/props2.png b/doc/salome/gui/KERNEL/pics/props2.png
new file mode 100755 (executable)
index 0000000..ff1258f
Binary files /dev/null and b/doc/salome/gui/KERNEL/pics/props2.png differ
diff --git a/doc/salome/gui/KERNEL/pics/props3.png b/doc/salome/gui/KERNEL/pics/props3.png
new file mode 100755 (executable)
index 0000000..d6454a0
Binary files /dev/null and b/doc/salome/gui/KERNEL/pics/props3.png differ
diff --git a/doc/salome/gui/KERNEL/pics/props4.png b/doc/salome/gui/KERNEL/pics/props4.png
new file mode 100755 (executable)
index 0000000..b84a174
Binary files /dev/null and b/doc/salome/gui/KERNEL/pics/props4.png differ
diff --git a/doc/salome/gui/KERNEL/pics/props5.png b/doc/salome/gui/KERNEL/pics/props5.png
new file mode 100755 (executable)
index 0000000..711722e
Binary files /dev/null and b/doc/salome/gui/KERNEL/pics/props5.png differ
diff --git a/doc/salome/gui/KERNEL/pics/viewerspreferences.png b/doc/salome/gui/KERNEL/pics/viewerspreferences.png
deleted file mode 100755 (executable)
index 50bea96..0000000
Binary files a/doc/salome/gui/KERNEL/pics/viewerspreferences.png and /dev/null differ
index a0ed4c0571d63a8bdbf6ba6a3e85079fa79ee3ad..030f0aa82bbf860818e28f96786ed480a3037cfb 100755 (executable)
@@ -15,11 +15,27 @@ if (navigator.appName !="Netscape")
 <style type="text/css">\r
 <!--\r
 p.whs1 { font-weight:bold; }\r
-img_whs2 { border:none; width:607px; height:443px; float:none; border-style:none; }\r
+img_whs2 { border:none; width:668px; height:646px; float:none; border-style:none; }\r
 ul.whs3 { list-style:disc; }\r
 p.whs4 { font-weight:normal; }\r
-img_whs5 { border:none; width:607px; height:443px; float:none; border-style:none; }\r
-p.whs6 { margin-left:0px; text-align:justify; }\r
+p.whs5 { font-weight:bold; margin-left:57px; }\r
+p.whs6 { font-weight:bold; margin-left:0px; }\r
+p.whs7 { font-weight:bold; margin-left:38px; }\r
+p.whs8 { margin-left:0px; font-weight:bold; }\r
+p.whs9 { margin-left:38px; font-weight:bold; }\r
+p.whs10 { margin-left:0px; text-align:justify; }\r
+p.whs11 { margin-left:38px; }\r
+p.whs12 { font-weight:bold; margin-left:36px; }\r
+p.whs13 { margin-left:0px; text-align:justify; font-weight:bold; }\r
+p.whs14 { margin-left:0px; text-align:justify; font-weight:normal; }\r
+p.whs15 { text-align:justify; font-weight:bold; margin-left:38px; }\r
+ol.whs16 { list-style:disc; }\r
+ul.whs17 { list-style:square; }\r
+p.whs18 { font-style:normal; }\r
+p.whs19 { margin-left:76px; }\r
+p.whs20 { text-align:justify; font-weight:bold; margin-left:0px; }\r
+p.whs21 { margin-left:38px; text-align:justify; font-weight:bold; }\r
+p.whs22 { text-align:justify; font-weight:bold; margin-left:76px; }\r
 -->\r
 </style><script type="text/javascript" language="JavaScript">\r
 <!--\r
@@ -27,6 +43,11 @@ if ((navigator.appName == "Netscape") && (parseInt(navigator.appVersion) == 4))
 {\r
   var strNSS = "<style type='text/css'>";\r
   strNSS += "p.whs6 {margin-left:1pt; }";\r
+  strNSS += "p.whs8 {margin-left:1pt; }";\r
+  strNSS += "p.whs10 {margin-left:1pt; }";\r
+  strNSS += "p.whs13 {margin-left:1pt; }";\r
+  strNSS += "p.whs14 {margin-left:1pt; }";\r
+  strNSS += "p.whs20 {margin-left:1pt; }";\r
   strNSS +="</style>";\r
   document.write(strNSS);\r
 }\r
@@ -97,12 +118,41 @@ else
 \r
 <p>&nbsp;</p>\r
 \r
-<p><img src="pics/preferencies10.png" x-maintain-ratio="TRUE" width="607px" height="443px" border="0" class="img_whs2"></p>\r
+<p><img src="pics/propp1.png" x-maintain-ratio="TRUE" width="668px" height="646px" border="0" class="img_whs2"></p>\r
 \r
-<p>&nbsp;</p>\r
+<p class="whs1">&nbsp;</p>\r
 \r
 <ul type="disc" class="whs3">\r
        \r
+       <li class=kadov-p><p class="whs1">Scalar Range </p></li>\r
+       \r
+       <ul type="disc" class="whs3">\r
+               \r
+               <li class=kadov-p><p class="whs4"><span style="font-weight: bold;"><B>Scalar \r
+ Mode</B></span> - this feature allows refining the value to be inspected:</p></li>\r
+               \r
+               <li class=kadov-p><p class="whs5">Modulus: \r
+ <span style="font-weight: normal;">value of a scalar or modulus of a vector.</span></p></li>\r
+               \r
+               <li class=kadov-p><p class="whs5">Component \r
+ N: <span style="font-weight: normal;">Nth component of a vector, a tensor \r
+ or a matrix..</span></p></li>\r
+               \r
+               <li class=kadov-p><p class="whs4"><span style="font-weight: bold;"><B>Logarithmic \r
+ Scaling</B></span> - this checkbox toggles logarithmic scaling.</p></li>\r
+               \r
+               <li class=kadov-p><p class="whs4"><span style="font-weight: bold;"><B>Ranges \r
+ to Use</B></span> - you can use either Field Range or Imposed Range.<span \r
+ style="margin-left: 0px;"> </span><span style="margin-left: 0px; text-indent: 12px;">.</span></p></li>\r
+       </ul>\r
+</ul>\r
+\r
+<ul type="disc" class="whs3">\r
+       \r
+       <li class=kadov-p><p><span style="font-weight: bold;"><B>Min and Max for \r
+ Imposed Range</B></span> - in this menu &nbsp;you \r
+ can set the limits for your Imposed Range, if you have chosen to use it.</p></li>\r
+       \r
        <li class=kadov-p><p><span style="font-weight: bold;"><B>Font - </B></span>in \r
  this menu you can set type, face and color for the font of<span style="font-weight: bold;"><B> \r
  Title</B></span> and<span style="font-weight: bold;"><B> Labels.</B></span></p></li>\r
@@ -110,79 +160,490 @@ else
        <li class=kadov-p><p><span style="font-weight: bold;"><B>Colors &amp; \r
  Labels - </B></span>in this menu you can set the<span style="font-weight: bold;"><B> \r
  number of colors </B></span>and the<span style="font-weight: bold;"><B> number \r
- of labels</B></span> in use<span style="font-weight: bold;"><B>.</B></span></p></li>\r
+ of labels</B></span> in the Scalar bar<span style="font-weight: bold;"><B>.</B></span></p></li>\r
        \r
        <li class=kadov-p><p class="whs1">Orientation - <span \r
  style="font-weight: normal;">here you can choose between vertical and \r
- horizontal orientation of the</span> Scalar Bar.</p></li>\r
+ horizontal orientation of the</span> <span style="font-weight: normal;">Scalar \r
+ Bar.</span></p></li>\r
+       \r
+       <li class=kadov-p><p class="whs6">Origin \r
+ &amp; Size Vertical &amp; Horizontal - a<span style="font-weight: normal;">llows \r
+ to define placement (</span>X <span style="font-weight: normal;">and</span> \r
+ Y<span style="font-weight: normal;">) and lookout (</span>Width and Height) \r
+ <span style="font-weight: normal;">of Scalar Bars</span></p></li>\r
        \r
-       <li class=kadov-p><p class="whs1">Origin <span style="font-weight: normal;">&amp;</span> \r
- Size Vertical <span style="font-weight: normal;">&amp;</span> Horizontal \r
- - <span style="font-weight: normal;">in this menu you can set representation \r
- parameters for the</span> Scalar Bar.</p></li>\r
+       <li class=kadov-p><p class="whs7">X: \r
+ <span style="font-weight: normal;">abscissa of the point of origin (from \r
+ the left side)</span></p></li>\r
+       \r
+       <li class=kadov-p><p class="whs7">Y: \r
+ <span style="font-weight: normal;">ordinate of the origin of the bar (from \r
+ the bottom)</span></p></li>\r
+       \r
+       <li class=kadov-p><p class="whs8">Scalar \r
+ bars default position</p></li>\r
+       \r
+       <li class=kadov-p><p class="whs9">Arrange \r
+ Scalar Bars - <span style="font-weight: normal;">this option prevents \r
+ superposition of scalar bars during visualisation of several fields in \r
+ the same window. If checked, a separate scalar bar is displayed for each \r
+ presentation.</span></p></li>\r
 </ul>\r
 \r
 <p>&nbsp;</p>\r
 \r
-<p class="whs1">Scalar Range, Sweep, MED Import Preferences</p>\r
+<p class="whs1">Sweep, MED Import Preferences</p>\r
 \r
 <p class="whs1">&nbsp;</p>\r
 \r
-<p class="whs4"><img src="pics/preferencies11.png" x-maintain-ratio="TRUE" width="607px" height="443px" border="0" class="img_whs5"></p>\r
+<p class="whs4"><img src="pics/propp2.png" x-maintain-ratio="TRUE" width="668px" height="646px" border="0" class="img_whs2"></p>\r
 \r
 <p class="whs4">&nbsp;</p>\r
 \r
 <ul type="disc" class="whs3">\r
        \r
-       <li class=kadov-p><p class="whs1">Scalar Range </p></li>\r
+       <li class=kadov-p><p class="whs1">Sweeping preferences</p></li>\r
        \r
        <ul type="disc" class="whs3">\r
                \r
-               <li class=kadov-p><p class="whs4"><span style="font-weight: bold;"><B>Scalar \r
- Mode</B></span> - in this menu you can choose your Scalar Mode from Modulus, \r
- Component 1, 2 and 3. </p></li>\r
+               <li class=kadov-p><p class="whs10"><span \r
+ style="font-weight: bold;"><B>Time step -</B></span> in this menu you can set \r
+ the<span style="font-weight: bold;"> <B></B></span>time of representation of \r
+ one step.</p></li>\r
                \r
-               <li class=kadov-p><p class="whs4"><span style="font-weight: bold;"><B>Logarithmic \r
- Scaling</B></span> - this checkbox toggles logarithmic scaling.</p></li>\r
+               <li class=kadov-p><p class="whs10"><span \r
+ style="font-weight: bold;"><B>Number of cycles -</B></span> in this menu you \r
+ can define the number of times this animation will be repeated.</p></li>\r
                \r
-               <li class=kadov-p><p class="whs4"><span style="font-weight: bold;"><B>Ranges \r
to Use</B></span> - you can use either Field Range or Imposed Range.<span \r
style="margin-left: 0px;"> </span></p></li>\r
+               <li class=kadov-p><p class="whs10"><span \r
style="font-weight: bold;"><B>Number of steps</B></span> - in this menu you can \r
define the number of steps, which will compose the whole animation.</p></li>\r
        </ul>\r
+</ul>\r
+\r
+<p class="whs10">&nbsp;</p>\r
+\r
+<ul type="disc" class="whs3">\r
        \r
-       <li class=kadov-p><p class="whs4"><span style="font-weight: bold;"><B>Min \r
- and Max for Imposed Range</B></span> - in this menu &nbsp;you \r
- can set the limits for your Imposed Range, if you have chosen to use it.</p></li>\r
+       <li class=kadov-p><p class="whs1">MED files import &nbsp;</p></li>\r
+       \r
+       <li class=kadov-p><p class="whs7">Use \r
+ Build Progress - <span style="font-weight: normal;">when this option is \r
+ checked you can choose all other import MED options at the moment of loading \r
+ of each file using </span>Build Progress<span style="font-weight: normal;"> \r
+ menu, otherwise the loading will be done according to the </span>Preferences<span \r
+ style="font-weight: normal;"> without addressing to the user.</span> </p></li>\r
+       \r
+       <li class=kadov-p><p class="whs7">Full \r
+ MED Loading - <span style="font-weight: normal;">when this option is checked, \r
+ the MED file is fully loaded in the study, and no additional access to \r
+ the MED file is needed during the session. Reversibly, when unchecked, \r
+ the MED file is loaded on demand. This is the default behaviour in SALOME \r
+ and recommended for big files to optimize memory usage.</span> </p></li>\r
        \r
-       <li class=kadov-p><p class="whs1">Sweeping Preference<span \r
- style="margin-left: 40px; text-align: justify;">s</span></p></li>\r
+       <li class=kadov-p><p class="whs11"><span style="font-weight: bold;"><B>Build \r
+ at once</B></span> - when this option is checked, you can't perform any operations \r
+ until the MED file is fully loaded and processed. </p></li>\r
+       \r
+       <li class=kadov-p><p class="whs7">Build \r
+ fields - &nbsp;<span style="font-weight: normal;">when \r
+ this</span> <span style="font-weight: normal;">option is checked, the \r
+ fields are built automatically at loading. </span></p></li>\r
+       \r
+       <li class=kadov-p><p class="whs7">Build \r
+ min/max - <span style="font-weight: normal;">when this option is checked, \r
+ minimum and maximum values of the time stamps are found at loading. </span></p></li>\r
+       \r
+       <li class=kadov-p><p class="whs7">Build \r
+ groups - <span style="font-weight: normal;">when this</span> <span style="font-weight: normal;">option \r
+ is checked, the groups and families are built automatically at loading. \r
+ </span></p></li>\r
+       \r
+       <li class=kadov-p><p class="whs7">Close \r
+ dialog at finish - <span style="font-weight: normal;">when this option \r
+ is checked, the dialog box is closed after loading of the selected MED \r
+ file. When unchecked, it allows loading other MED files. </span></p></li>\r
+       \r
+       <li class=kadov-p><p class="whs8">Representation \r
+ properties</p></li>\r
+       \r
+       <li class=kadov-p><p class="whs7">Use \r
+ Shading - <span style="font-weight: normal;">when this</span> <span style="font-weight: normal;">option \r
+ is checked, the objects will be displayed with shading.</span></p></li>\r
+</ul>\r
+\r
+<p class="whs12">&nbsp;</p>\r
+\r
+<p class="whs6">Gauss Points Preferences</p>\r
+\r
+<p class="whs12">&nbsp;</p>\r
+\r
+<p class="whs6"><img src="pics/propp3.png" x-maintain-ratio="TRUE" width="668px" height="646px" border="0" class="img_whs2"></p>\r
+\r
+<p class="whs12">&nbsp;</p>\r
+\r
+<ul type="disc" class="whs3">\r
+       \r
+       <li class=kadov-p><p class="whs1">Primitive - <span style="font-weight: normal;">this \r
+ menu allows user to choose the graphic primitive to use to present the \r
+ results at Gauss points in the viewer.</span><span style="margin-left: 40px; text-align: justify;"> \r
+ </span></p></li>\r
        \r
        <ul type="disc" class="whs3">\r
                \r
-               <li class=kadov-p><p class="whs6"><span \r
style="font-weight: bold;"><B>Time step -</B></span> in this menu you can se\r
- the<span style="font-weight: bold;"> <B></B></span>time of representation of \r
one step.</p></li>\r
+               <li class=kadov-p><p class="whs13">Primitive type \r
- <span style="font-weight: normal;">provides choice between </span>Poin\r
+ sprites<span style="font-weight: normal;">, </span>Open GL points<span \r
style="font-weight: normal;"> and </span>Geometrical Spheres<span style="font-weight: normal;">.</span></p></li>\r
                \r
-               <li class=kadov-p><p class="whs6"><span \r
- style="font-weight: bold;"><B>Number of cycles -</B></span> in this menu you \r
- can define the number of times this animation will be repeated.</p></li>\r
+               <li class=kadov-p><p class="whs14"><span style="font-weight: bold;"><B>Maximum \r
+ Size</B></span> <span style="font-weight: bold;"><B>(Clamp)</B></span> - defines \r
+ the maximum size of sprite points ranging from 1 to 512. By default the \r
+ value is set to 256 pixels. </p></li>\r
                \r
-               <li class=kadov-p><p class="whs6"><span \r
- style="font-weight: bold;"><B>Number of steps</B></span> - in this menu you can \r
- define the number of steps, which will compose the whole animation.</p></li>\r
+               <li class=kadov-p><p class="whs13">Main Texture - \r
+ &nbsp;<span style="font-weight: normal;">path \r
+ to the </span>Main Texture<span style="font-weight: normal;"> (16x16 pixels) \r
+ which defines the shape of the point sprite used for rendering.</span></p></li>\r
+               \r
+               <li class=kadov-p><p class="whs10"><span \r
+ style="font-weight: bold;"><B>Alpha Channel Texture (16*16) -</B></span> path \r
+ to the <span style="font-weight: bold;"><B>Alpha Channel Texture</B></span> which \r
+ defines the transparency of the point sprite.</p></li>\r
+               \r
+               <li class=kadov-p><p class="whs13">Alpha Channel Threshold \r
+ - <span style="font-weight: normal;">defines the level of transparency \r
+ ranging from 0 to 1.</span> </p></li>\r
+               \r
+               <li class=kadov-p><p class="whs13">Geometrical Sphere \r
+ Resolution - <span style="font-weight: normal;">defines the number of \r
+ faces of</span> Geometry Spheres.</p></li>\r
+               \r
+               <li class=kadov-p><p class="whs13">Notify when number \r
+ of faces exceeds -<span style="font-weight: normal;"> limitation of the \r
+ number of faces;</span> <span style="font-weight: normal;">the user will \r
+ be warned if it exceeds the given value.</span></p></li>\r
        </ul>\r
 </ul>\r
 \r
+<p class="whs12">&nbsp;</p>\r
+\r
+<ul type="disc" class="whs3">\r
+       \r
+       <li class=kadov-p><p class="whs1">Size - in this menu \r
+ you can define</p></li>\r
+</ul>\r
+\r
+<ul type="disc" class="whs3">\r
+       \r
+       <li class=kadov-p><p class="whs15">Range value for min \r
+ and max size - <span style="font-weight: normal;">these two parameters \r
+ will be respectively multiplied by a reference length (average size of \r
+ cells of the mesh) to define the range for minimum and maximum size of \r
+ a point during rendering (at magnification = 100%). Default values are:</span></p></li>\r
+       \r
+       <ol type="disc" class="whs16">\r
+               \r
+               <ul type="disc" class="whs3">\r
+                       \r
+                       <li style="list-style: circle;"\r
+                               type=circle\r
+                               class=kadov-p><p><span style="font-weight: bold;"><B>Rainbow</B></span> \r
+ scale: <span style="font-weight: bold;"><B>min = 10%</B></span>, <span style="font-weight: bold;"><B>max \r
+ = 33%</B></span></p></li>\r
+                       \r
+                       <ul type="square" class="whs17">\r
+                               \r
+                               <li class=kadov-p><p class="whs18">Min size \r
+ is associated to the smallest real value (including negative values).</p></li>\r
+                               \r
+                               <li class=kadov-p><p class="whs18">Max size \r
+ is associated to the largest real value.</p></li>\r
+                       </ul>\r
+                       \r
+                       <li style="list-style: circle;"\r
+                               type=circle\r
+                               class=kadov-p><p><span style="font-weight: bold;"><B>Bicolor</B></span> \r
+ scale: <span style="font-weight: bold;"><B>min = 0</B></span> (not editable), \r
+ <span style="font-weight: bold;"><B>max = 33%</B></span></p></li>\r
+                       \r
+                       <ul type="square" class="whs17">\r
+                               \r
+                               <li class=kadov-p><p class="whs18">Null size \r
+ is associated to the 0 scalar value.</p></li>\r
+                               \r
+                               <li class=kadov-p><p class="whs18">Max size \r
+ is associated to the largest absolute value.</p></li>\r
+                       </ul>\r
+               </ul>\r
+       </ol>\r
+</ul>\r
+\r
+<p class="whs19">Both values are dynamically updated by the \r
+ system according to the selected scalar bar. In the case of a <span style="font-weight: bold;"><B>Bicolor</B></span> \r
+ scale, the minimum value is set to 0 in the dialog and the control is \r
+ disabled.</p>\r
+\r
 <ul type="disc" class="whs3">\r
        \r
-       <li class=kadov-p><p class="whs1">MED Files Import - \r
- <span style="font-weight: normal;">this checkbox provides you with an \r
- option of</span> Full MED Loading.</p></li>\r
+       <li class=kadov-p><p class="whs11"><span style="font-weight: bold;"><B>Magnification \r
+ (%)</B></span> corresponds to the change of size of results at Gauss point \r
+ primitives in 2D space. Acceptable values range from 0 to N; 100% means \r
+ no magnification, 50% means half of its size, 200% mean twice its size \r
+ and so forth. By default this value is set to 100%.</p></li>\r
+       \r
+       <li class=kadov-p><p class="whs11"><span style="font-weight: bold;"><B>+/- \r
+ Ratio</B></span> corresponds to the number by which the magnification will \r
+ be respectively multiplied or divided at edition, ranging from 0.01 to \r
+ 10. By default this value is set to 2.</p></li>\r
 </ul>\r
 \r
+<p class="whs1">&nbsp;</p>\r
+\r
+<ul type="disc" class="whs3">\r
+       \r
+       <li class=kadov-p><p class="whs1">Geometry </p></li>\r
+       \r
+       <li class=kadov-p><p class="whs11"><span style="font-weight: bold;"><B>Size \r
+ of points (%) </B></span>defines a value that will be multiplied by a reference \r
+ length (representative of the average size of cells of the mesh) to define \r
+ the size of points during rendering (at magnification = 100%). Default \r
+ values 10%.</p></li>\r
+       \r
+       <li class=kadov-p><p class="whs12">Background \r
+ Color - <span style="font-weight: normal;">&nbsp;allows \r
+ to select the color of points used for presentations. Click on the colored \r
+ line to access to the </span><a href="select_color_and_font.htm">Select \r
+ Color</a><span style="font-weight: normal;"> dialog box. </span></p></li>\r
+</ul>\r
+\r
+<p class="whs13">&nbsp;</p>\r
+\r
+<ul type="disc" class="whs3">\r
+       \r
+       <li class=kadov-p><p class="whs1">Gauss Points Scalar \r
+ Bar</p></li>\r
+       \r
+       <li class=kadov-p><p class="whs7">Active \r
+ Bar - <span style="font-weight: normal;">this option allows to choose</span> \r
+ Local<span style="font-weight: normal;"> or</span> Global <span style="font-weight: normal;">Bar \r
+ as active.</span></p></li>\r
+       \r
+       <li class=kadov-p><p class="whs7">Display \r
+ Global Bar - <span style="font-weight: normal;">this option allows to \r
+ visualize or to hide the Global Bar.</span></p></li>\r
+       \r
+       <li class=kadov-p><p class="whs7">Scalar \r
+ Bar Mode - <span style="font-weight: normal;">this option allows to choose</span> \r
+ <span style="font-weight: normal;">between</span> Bicolor <span style="font-weight: normal;">and</span> \r
+ Rainbow <span style="font-weight: normal;">Scalar Bar Mode.</span></p></li>\r
+       \r
+       <li class=kadov-p><p class="whs7">Spacing \r
+ - <span style="font-weight: normal;">allows to define Spacing from 0.01 \r
+ to 1.</span></p></li>\r
+</ul>\r
+\r
+<p class="whs13">&nbsp;</p>\r
+\r
+<p class="whs6">Inside <span style="font-weight: normal;">and</span> \r
+ Outside Cursor Preferences<span style="font-weight: normal;"> allow to \r
+ set</span> Primitives, Size<span style="font-weight: normal;"> and</span> \r
+ Magnification<span style="font-weight: normal;"> for the respective zones.</span> \r
+ &nbsp;</p>\r
+\r
+<p class="whs6">&nbsp;</p>\r
+\r
+<p class="whs20">Picking Preferences</p>\r
+\r
+<p class="whs20">&nbsp;</p>\r
+\r
+<p class="whs20"><img src="pics/propp6.png" x-maintain-ratio="TRUE" width="668px" height="646px" border="0" class="img_whs2"></p>\r
+\r
+<p class="whs5">&nbsp;</p>\r
+\r
+<ul type="disc" class="whs3">\r
+       \r
+       <li class=kadov-p><p><span style="font-weight: bold;"><B>Cursor</B></span> \r
+ - allows to adjust the Size of the cursor used for Picking (ranging from \r
+ 0.1 to 1), the Height of the pyramids (ranging from 0 to 10) and the Selection \r
+ cursor color. </p></li>\r
+       \r
+       <li class=kadov-p><p><span style="font-weight: bold;"><B>Tolerance</B></span> \r
+ - defines at which distance of the cursor from the point it becomes selected \r
+ (ranges from 0.001 to 10). </p></li>\r
+       \r
+       <li class=kadov-p><p><span style="font-weight: bold;"><B>Information window \r
+ -</B></span> allows to define the <span style="font-weight: bold;"><B>Transparency</B></span> \r
+ (from 0% = opaque to 100% = transparent) and <span style="font-weight: bold;"><B>Position</B></span> \r
+ of the window, which can be: </p></li>\r
+       \r
+       <li class=kadov-p><p class="whs11"><span style="font-weight: bold;"><B>Centred \r
+ below the point</B></span>, or</p></li>\r
+       \r
+       <li class=kadov-p><p class="whs11">located at <span style="font-weight: bold;"><B>Top-left \r
+ corner of the 3D view</B></span></p></li>\r
+       \r
+       <li class=kadov-p><p class="whs8">Movement \r
+ of the Camera <span style="font-weight: normal;">can also be define by \r
+ the user. </span></p></li>\r
+       \r
+       <li class=kadov-p><p class="whs11"><span style="font-weight: bold;"><B>Zoom \r
+ at first selected point -</B></span> This value is used to define the focal \r
+ distance at the first selected point (at the end of the movement of the \r
+ camera). This value is a ratio that will be multiplied by the current \r
+ zoom value.</p></li>\r
+       \r
+       <li class=kadov-p><p class="whs9">Number \r
+ of steps between two positions - <span style="font-weight: normal;">defines \r
+ the smoothness of camera movement at selection by the number of iterations. \r
+ If set to 1 the camera is zoomed and centered at the point momentarily. \r
+ Greater numbers mean very slow camera movement.</span> &nbsp;&nbsp;</p></li>\r
+       \r
+       <li class=kadov-p><p class="whs6">Display \r
+ parent mesh element - <span style="font-weight: normal;">allows to visualize \r
+ or hide the patent mesh element of the selected gauss point.</span> </p></li>\r
+</ul>\r
+\r
+<p class="whs15">&nbsp;</p>\r
+\r
+<p class="whs20">Navigation Preferences</p>\r
+\r
+<p class="whs15">&nbsp;</p>\r
+\r
+<p class="whs20"><img src="pics/propp7.png" x-maintain-ratio="TRUE" width="668px" height="646px" border="0" class="img_whs2"></p>\r
+\r
+<p class="whs21">&nbsp;</p>\r
+\r
+<p class="whs12">&nbsp;</p>\r
+\r
+<ul type="disc" class="whs3">\r
+       \r
+       <li class=kadov-p><p class="whs1">Mouse</p></li>\r
+</ul>\r
+\r
+<ul type="disc" class="whs3">\r
+       \r
+       <li class=kadov-p><p class="whs15">Mouse Behaviour - <span \r
+ style="font-weight: normal;">this option allows to choose one of the modes \r
+ of work with mouse in Gauss Viewer. </span></p></li>\r
+       \r
+       <li class=kadov-p><p class="whs22">Salome Standard Controls \r
+ - <span style="font-weight: normal;">allows to manipulate objects in the \r
+ viewer with the mouse and locked Ctrl button: increase or decrease the \r
+ zoom ratio with the left mouse button, translate object in any direction \r
+ with the central mouse button or rotate it with the right mouse button. \r
+ </span></p></li>\r
+       \r
+       <li class=kadov-p><p class="whs22">Keyboard Free - <span \r
+ style="font-weight: normal;">allows to manipulate objects in the viewer \r
+ with the mouse without locking Ctrl button</span>. <span style="font-weight: normal;">In \r
+ this case the operations are assigned to the buttons differently: rotation \r
+ is made with the left button, translation with the right and zoom with \r
+ both pressed in the same time.</span> &nbsp;&nbsp;</p></li>\r
+</ul>\r
+\r
+<p class="whs12">&nbsp;</p>\r
+\r
+<ul type="disc" class="whs3">\r
+       \r
+       <li class=kadov-p><p class="whs1">Keyboard</p></li>\r
+</ul>\r
+\r
+<ul type="disc" class="whs3">\r
+       \r
+       <li class=kadov-p><p class="whs15">[+]/[-] Speed Increment \r
+ - <span style="font-weight: normal;">defines the number of units by which \r
+ the speed increases or respectively decreases after pressing [+] or [-] \r
+ keyboard buttons.</span></p></li>\r
+</ul>\r
+\r
+<p class="whs12">&nbsp;</p>\r
+\r
+<ul type="disc" class="whs3">\r
+       \r
+       <li class=kadov-p><p class="whs1">Spacemouse -<span style="font-weight: normal;"> \r
+ a mouse-like manipulator device specially designed for working with 3D \r
+ presentations, objects, etc. You can reassign the actions listed below \r
+ to any of its buttons. </span></p></li>\r
+</ul>\r
+\r
+<ul type="disc" class="whs3">\r
+       \r
+       <li class=kadov-p><p class="whs15">Decrease Speed Increment \r
+ - <span style="font-weight: normal;">decreases by 1 the speed increment \r
+ used for the keyboard (same as [-] key).</span></p></li>\r
+       \r
+       <li class=kadov-p><p class="whs15">Increase Speed Increment \r
+ - <span style="font-weight: normal;">increase by 1 the speed increment \r
+ used for the keyboard (same as [+] key).</span></p></li>\r
+       \r
+       <li class=kadov-p><p class="whs15">Decrease Gauss Points \r
+ Magnification - <span style="font-weight: normal;">divides the current \r
+ magnification by the magnification ratio.</span></p></li>\r
+       \r
+       <li class=kadov-p><p class="whs15">Increase Gauss Points \r
+ Magnification -<span style="font-weight: normal;"> multiplies the current \r
+ magnification by the magnification ratio.</span></p></li>\r
+       \r
+       <li class=kadov-p><p class="whs15">Dominant / combined \r
+ switch -<span style="font-weight: normal;"> toggles button to switch to \r
+ dominant or combined movements.</span></p></li>\r
+</ul>\r
+\r
+<p class="whs15">&nbsp;</p>\r
+\r
+<p class="whs15">&nbsp;</p>\r
+\r
+<p class="whs20">Recorder Preferences</p>\r
+\r
+<p class="whs20">&nbsp;</p>\r
+\r
+<p class="whs20"><img src="pics/propp8.png" x-maintain-ratio="TRUE" width="668px" height="646px" border="0" class="img_whs2"></p>\r
+\r
+<p class="whs1">&nbsp;</p>\r
+\r
 <p>&nbsp;</p>\r
 \r
+<ul type="disc" class="whs3">\r
+       \r
+       <li class=kadov-p><p class="whs1">Settings</p></li>\r
+</ul>\r
+\r
+<ul type="disc" class="whs3">\r
+       \r
+       <li class=kadov-p><p class="whs15">Mode - <span style="font-weight: normal;">allows \r
+ to choose from</span> <span style="font-weight: normal;">two recording \r
+ regimes:</span></p></li>\r
+       \r
+       <li class=kadov-p><p class="whs22">Recording all displayed \r
+ frames - <span style="font-weight: normal;">records exactly at the FPS \r
+ rate specified by the user.</span> &nbsp;</p></li>\r
+       \r
+       <li class=kadov-p><p class="whs22">Recording at a given \r
+ FPS - <span style="font-weight: normal;">records only when the contents \r
+ of the viewer change (some activity is performed). &nbsp;In \r
+ the AVI file non-recorded images are substituted with the copies of the \r
+ latest recorded image, which produces files with lower quality but requires \r
+ less system resources.</span> &nbsp;</p></li>\r
+       \r
+       <li class=kadov-p><p class="whs15">FPS - <span style="font-weight: normal;">allows \r
+ to define the FPS (frames per second) rate for the clip. Set greater value \r
+ for better quality. &nbsp;</span></p></li>\r
+       \r
+       <li class=kadov-p><p class="whs15">Quality - <span style="font-weight: normal;">allows \r
+ to set the quality of the clip in the interval between 0 and 100.</span> \r
+ </p></li>\r
+       \r
+       <li class=kadov-p><p class="whs15">Progressive - <span \r
+ style="font-weight: normal;">allows to record a progressive API file.</span> \r
+ </p></li>\r
+</ul>\r
+\r
+<p class="whs15">&nbsp;</p>\r
+\r
+<p class="whs15">&nbsp;</p>\r
+\r
 <p>&nbsp;</p>\r
 \r
 <script type="text/javascript" language="javascript1.2">\r
diff --git a/doc/salome/gui/KERNEL/select_color_and_font.htm b/doc/salome/gui/KERNEL/select_color_and_font.htm
new file mode 100755 (executable)
index 0000000..6bb8ac4
--- /dev/null
@@ -0,0 +1,124 @@
+<!doctype HTML public "-//W3C//DTD HTML 4.0 Frameset//EN">\r
+\r
+<html>\r
+\r
+<head>\r
+<title>Select Color and Font</title>\r
+<meta http-equiv="content-type" content="text/html; charset=windows-1252">\r
+<meta name="generator" content="RoboHelp by eHelp Corporation www.ehelp.com">\r
+<link rel="stylesheet" href="default_ns.css"><script type="text/javascript" language="JavaScript" title="WebHelpSplitCss">\r
+<!--\r
+if (navigator.appName !="Netscape")\r
+{   document.write("<link rel='stylesheet' href='default.css'>");}\r
+//-->\r
+</script>\r
+<style type="text/css">\r
+<!--\r
+p.whs1 { margin-left:40px; }\r
+img_whs2 { border:none; width:492px; height:392px; float:none; border-style:none; }\r
+p.whs3 { font-family:'Times New Roman' , serif; }\r
+img_whs4 { border:none; width:510px; height:393px; float:none; border-style:none; }\r
+p.whs5 { font-family:'Times New Roman' , serif; font-weight:bold; }\r
+-->\r
+</style><script type="text/javascript" language="JavaScript" title="WebHelpInlineScript">\r
+<!--\r
+function reDo() {\r
+  if (innerWidth != origWidth || innerHeight != origHeight)\r
+     location.reload();\r
+}\r
+if ((parseInt(navigator.appVersion) == 4) && (navigator.appName == "Netscape")) {\r
+       origWidth = innerWidth;\r
+       origHeight = innerHeight;\r
+       onresize = reDo;\r
+}\r
+onerror = null; \r
+//-->\r
+</script>\r
+<style type="text/css">\r
+<!--\r
+div.WebHelpPopupMenu { position:absolute; left:0px; top:0px; z-index:4; visibility:hidden; }\r
+-->\r
+</style><script type="text/javascript" language="javascript1.2" src="whmsg.js"></script>\r
+<script type="text/javascript" language="javascript" src="whver.js"></script>\r
+<script type="text/javascript" language="javascript1.2" src="whproxy.js"></script>\r
+<script type="text/javascript" language="javascript1.2" src="whutils.js"></script>\r
+<script type="text/javascript" language="javascript1.2" src="whtopic.js"></script>\r
+</head>\r
+<body><script type="text/javascript" language="javascript1.2">\r
+<!--\r
+if (window.gbWhTopic)\r
+{\r
+       if (window.addTocInfo)\r
+       {\r
+       addTocInfo("GUI module\nSetting Preferences\nSelect Color and Font");\r
+addButton("show",BTN_TEXT,"Show","","","","",0,0,"","","");\r
+\r
+       }\r
+       if (window.writeBtnStyle)\r
+               writeBtnStyle();\r
+\r
+       if (window.writeIntopicBar)\r
+               writeIntopicBar(1);\r
+\r
+       if (window.setRelStartPage)\r
+       {\r
+       setRelStartPage("kernel.htm");\r
+\r
+               autoSync(1);\r
+               sendSyncInfo();\r
+               sendAveInfoOut();\r
+       }\r
+}\r
+else\r
+       if (window.gbIE4)\r
+               document.location.reload();\r
+//-->\r
+</script>\r
+<h1>Select Color and Font</h1>\r
+\r
+<p><span style="font-weight: bold;"><B>Select Color</B></span> and <span style="font-weight: bold;"><B>Select \r
+ Font</B></span> menus are used in many Preferences.</p>\r
+\r
+<h3>Select color</h3>\r
+\r
+<p class="whs1"><img src="pics/selectcolor.png" x-maintain-ratio="TRUE" width="492px" height="392px" border="0" class="img_whs2"></p>\r
+\r
+<p>&nbsp;</p>\r
+\r
+<p class="whs3">This menu &nbsp;allows \r
+ to choose from either predefined <span style="font-weight: bold;"><B>Basic \r
+ Colors </B></span>grouped in the upper left corner of the window or <span \r
+ style="font-weight: bold;"><B>Custom Colors,</B></span> which you can define \r
+ yourselves. To define a Custom Color, click on one of the Custom Color \r
+ cells, select the color you need in the field of colors or by typing in \r
+ its numeric parameters in the lower right corner of the window, then click \r
+ <span style="font-weight: bold;"><B>Add to Custom Colors</B></span> button. The \r
+ chosen color will be added to <span style="font-weight: bold;"><B>Custom \r
+ Colors</B></span> table. &nbsp;</p>\r
+\r
+<h3>Select Font</h3>\r
+\r
+<p class="whs1"><img src="pics/selectfont.png" x-maintain-ratio="TRUE" width="510px" height="393px" border="0" class="img_whs4"></p>\r
+\r
+<p class="whs5">&nbsp;</p>\r
+\r
+<p class="whs5"><span \r
+ style="font-weight: normal;">This menu provides a wide choice of </span>Fonts, \r
+ Font Styles <span style="font-weight: normal;">and</span> Sizes. <span \r
+ style="font-weight: normal;">Characters can be underlined or struck out. \r
+ It is possible to preview them in the</span> Sample <span style="font-weight: normal;">window.</span> \r
+ <span style="font-family: 'Times New Roman', serif; font-weight: bold;"><B>Script</B></span><span \r
+ style="font-family: 'Times New Roman', serif; font-weight: normal;"> dialog-box \r
+ gives the possibility to use not only Latin and Latin Extended but also \r
+ Cyrillic, Greek, Arabic, Runic and many other subsets. &nbsp;</span></p>\r
+\r
+<p class="whs5">&nbsp;</p>\r
+\r
+<script type="text/javascript" language="javascript1.2">\r
+<!--\r
+if (window.writeIntopicBar)\r
+       writeIntopicBar(0);\r
+//-->\r
+</script>\r
+</body>\r
+</html>\r
index 69f2168e0c130239ddace7a32c9cbbaa7f69d5b9..35dfc8f2867634369edc533e34c70042195db356 100755 (executable)
@@ -15,8 +15,22 @@ if (navigator.appName !="Netscape")
 <style type="text/css">\r
 <!--\r
 p.whs1 { font-family:'Times New Roman' , serif; }\r
+p.whs2 { margin-left:0px; background-image:url('texture_horiz_ltbluebubbles.jpg'); text-align:justify; }\r
+img_whs3 { border:none; float:none; width:36px; height:38px; border-style:none; }\r
+p.whs4 { font-style:italic; color:#ff0000; margin-left:40px; text-align:justify; }\r
 -->\r
-</style><script type="text/javascript" language="JavaScript" title="WebHelpInlineScript">\r
+</style><script type="text/javascript" language="JavaScript">\r
+<!--\r
+if ((navigator.appName == "Netscape") && (parseInt(navigator.appVersion) == 4))\r
+{\r
+  var strNSS = "<style type='text/css'>";\r
+  strNSS += "p.whs2 {margin-left:1pt; }";\r
+  strNSS +="</style>";\r
+  document.write(strNSS);\r
+}\r
+//-->\r
+</script>\r
+<script type="text/javascript" language="JavaScript" title="WebHelpInlineScript">\r
 <!--\r
 function reDo() {\r
   if (innerWidth != origWidth || innerHeight != origHeight)\r
@@ -74,18 +88,30 @@ else
 \r
 <p>In <span style="font-weight: bold;"><B>SALOME </B></span>you can set preferences \r
  for each module in the common editor of preferences. SALOME preferences \r
- refer to the whole GUI SALOME session, others are module-specific and \r
- are accessible only after you load a respective module. When you change \r
- settings (click \93OK\94 or &quot;Apply&quot; button) each module receives \r
- notification about what preferences are changed. The preferences, set \r
- during the current study session, are automatically saved in a special \r
- user file at the end of the session. So, next time you launch SALOME application, \r
- these preferences will be restored.</p>\r
-\r
-<p class="whs1"><span>T</span>he preferences \r
- you set will be default preferences for all new objects, but they are \r
- not retroactive and do not automatically apply to the existing objects. \r
- </p>\r
+ refer to the whole GUI SALOME session, other preferences are module-specific \r
+ and are accessible only after you load a respective module. </p>\r
+\r
+<p>When you change settings (click \93OK\94 or &quot;Apply&quot; button) each \r
+ module receives notification about what preferences are changed. You can \r
+ also click &quot;Default&quot; button to restore default preferences or \r
+ &quot;Close&quot; button to quit the menu without any changes. </p>\r
+\r
+<p>The preferences, set during the current study session, are automatically \r
+ saved in a special user file at the end of the session. So, next time \r
+ you launch SALOME application, these preferences will be restored.</p>\r
+\r
+<p class="whs1">&nbsp;</p>\r
+\r
+<p class="whs2"><img src="note1.gif" x-maintain-ratio="TRUE" width="36px" height="38px" border="0" class="img_whs3">The preferences you set \r
+ will be default preferences for all <span style="font-weight: bold;"><B>new</B></span> \r
+ objects, but they are not retroactive and do not automatically apply to \r
+ the existing objects. </p>\r
+\r
+<p class="whs4">&nbsp;</p>\r
+\r
+<p class="whs1">&nbsp;</p>\r
+\r
+<p class="whs1">&nbsp;</p>\r
 \r
 <p class="whs1">&nbsp;</p>\r
 \r
diff --git a/doc/salome/gui/KERNEL/supervisor_preferences.htm b/doc/salome/gui/KERNEL/supervisor_preferences.htm
deleted file mode 100755 (executable)
index 9445558..0000000
+++ /dev/null
@@ -1,73 +0,0 @@
-<HTML>\r
-<HEAD>\r
-<meta http-equiv="content-type" content="text/html;charset=windows-1252">\r
-<TITLE>Supervisor Preferences</TITLE>\r
-<link rel="stylesheet" href="default_ns.css"><script type="text/javascript" language="JavaScript" title="WebHelpSplitCss">\r
-<!--\r
-if (navigator.appName !="Netscape")\r
-{   document.write("<link rel='stylesheet' href='default.css'>");}\r
-//-->\r
-</script>\r
- <meta name="generator" content="RoboHelp by eHelp Corporation www.ehelp.com"><script type="text/javascript" language="JavaScript" title="WebHelpInlineScript">\r
-<!--\r
-function reDo() {\r
-  if (innerWidth != origWidth || innerHeight != origHeight)\r
-     location.reload();\r
-}\r
-if ((parseInt(navigator.appVersion) == 4) && (navigator.appName == "Netscape")) {\r
-       origWidth = innerWidth;\r
-       origHeight = innerHeight;\r
-       onresize = reDo;\r
-}\r
-onerror = null; \r
-//-->\r
-</script>\r
-<style type="text/css">\r
-<!--\r
-div.WebHelpPopupMenu { position:absolute; left:0px; top:0px; z-index:4; visibility:hidden; }\r
--->\r
-</style><script type="text/javascript" language="javascript1.2" src="whmsg.js"></script>\r
-<script type="text/javascript" language="javascript" src="whver.js"></script>\r
-<script type="text/javascript" language="javascript1.2" src="whproxy.js"></script>\r
-<script type="text/javascript" language="javascript1.2" src="whutils.js"></script>\r
-<script type="text/javascript" language="javascript1.2" src="whtopic.js"></script>\r
-</HEAD>\r
-<BODY><script type="text/javascript" language="javascript1.2">\r
-<!--\r
-if (window.gbWhTopic)\r
-{\r
-       if (window.addTocInfo)\r
-       {\r
-       addButton("show",BTN_TEXT,"Show","","","","",0,0,"","","");\r
-\r
-       }\r
-       if (window.writeBtnStyle)\r
-               writeBtnStyle();\r
-\r
-       if (window.writeIntopicBar)\r
-               writeIntopicBar(1);\r
-\r
-       if (window.setRelStartPage)\r
-       {\r
-       setRelStartPage("kernel.htm");\r
-\r
-               autoSync(1);\r
-               sendSyncInfo();\r
-               sendAveInfoOut();\r
-       }\r
-}\r
-else\r
-       if (window.gbIE4)\r
-               document.location.reload();\r
-//-->\r
-</script>\r
-<H1>Supervisor Preferences</H1>\r
- <P>Type topic text here.</P>\r
-<script type="text/javascript" language="javascript1.2">\r
-<!--\r
-if (window.writeIntopicBar)\r
-       writeIntopicBar(0);\r
-//-->\r
-</script>\r
-</BODY>\r
-</HTML>
\ No newline at end of file
diff --git a/doc/salome/gui/KERNEL/viewers.htm b/doc/salome/gui/KERNEL/viewers.htm
deleted file mode 100755 (executable)
index 2774379..0000000
+++ /dev/null
@@ -1,212 +0,0 @@
-<!doctype HTML public "-//W3C//DTD HTML 4.0 Frameset//EN">\r
-\r
-<html>\r
-\r
-<head>\r
-<title>Viewers</title>\r
-<meta http-equiv="content-type" content="text/html; charset=windows-1252">\r
-<meta name="generator" content="RoboHelp by eHelp Corporation www.ehelp.com">\r
-<link rel="stylesheet" href="default_ns.css"><script type="text/javascript" language="JavaScript" title="WebHelpSplitCss">\r
-<!--\r
-if (navigator.appName !="Netscape")\r
-{   document.write("<link rel='stylesheet' href='default.css'>");}\r
-//-->\r
-</script>\r
-<style type="text/css">\r
-<!--\r
-ul.whs1 { list-style:disc; }\r
-img_whs2 { border:none; width:26px; height:25px; border-style:none; }\r
-img_whs3 { border:none; width:27px; height:26px; border-style:none; }\r
-img_whs4 { border:none; width:28px; height:26px; border-style:none; }\r
-img_whs5 { border:none; width:28px; height:29px; border-style:none; }\r
-img_whs6 { border:none; width:27px; height:25px; border-style:none; }\r
-img_whs7 { border:none; width:26px; height:26px; border-style:none; }\r
-img_whs8 { border:none; width:28px; height:28px; border-style:none; }\r
-img_whs9 { border:none; width:27px; height:27px; border-style:none; }\r
-img_whs10 { border:none; width:29px; height:28px; border-style:none; }\r
-img_whs11 { border:none; width:25px; height:27px; border-style:none; }\r
-img_whs12 { border:none; width:28px; height:30px; border-style:none; }\r
-img_whs13 { border:none; width:402px; height:396px; float:none; border-style:none; }\r
--->\r
-</style><script type="text/javascript" language="JavaScript" title="WebHelpInlineScript">\r
-<!--\r
-function reDo() {\r
-  if (innerWidth != origWidth || innerHeight != origHeight)\r
-     location.reload();\r
-}\r
-if ((parseInt(navigator.appVersion) == 4) && (navigator.appName == "Netscape")) {\r
-       origWidth = innerWidth;\r
-       origHeight = innerHeight;\r
-       onresize = reDo;\r
-}\r
-onerror = null; \r
-//-->\r
-</script>\r
-<style type="text/css">\r
-<!--\r
-div.WebHelpPopupMenu { position:absolute; left:0px; top:0px; z-index:4; visibility:hidden; }\r
--->\r
-</style><script type="text/javascript" language="javascript1.2" src="whmsg.js"></script>\r
-<script type="text/javascript" language="javascript" src="whver.js"></script>\r
-<script type="text/javascript" language="javascript1.2" src="whproxy.js"></script>\r
-<script type="text/javascript" language="javascript1.2" src="whutils.js"></script>\r
-<script type="text/javascript" language="javascript1.2" src="whtopic.js"></script>\r
-</head>\r
-<body><script type="text/javascript" language="javascript1.2">\r
-<!--\r
-if (window.gbWhTopic)\r
-{\r
-       if (window.addTocInfo)\r
-       {\r
-       addTocInfo("GUI module\nViewers");\r
-addButton("show",BTN_TEXT,"Show","","","","",0,0,"","","");\r
-\r
-       }\r
-       if (window.writeBtnStyle)\r
-               writeBtnStyle();\r
-\r
-       if (window.writeIntopicBar)\r
-               writeIntopicBar(1);\r
-\r
-       if (window.setRelStartPage)\r
-       {\r
-       setRelStartPage("kernel.htm");\r
-\r
-               autoSync(1);\r
-               sendSyncInfo();\r
-               sendAveInfoOut();\r
-       }\r
-}\r
-else\r
-       if (window.gbIE4)\r
-               document.location.reload();\r
-//-->\r
-</script>\r
-<h1>Viewers</h1>\r
-\r
-<p>Salome gives you a choice of four different viewers. This wide choice \r
- of instruments providing both common and unique possibilities aims to \r
- give the users of SALOME Platform maximum convenience and ease in their \r
- work.</p>\r
-\r
-<p>Customizing the viewers you can define settings to be used in them by \r
- default in the <span style="font-weight: bold;"><B>Preferences</B></span> menu.</p>\r
-\r
-<p>Salome Platform also provides you with <span style="font-weight: bold;"><B>Viewer \r
- Toolbars</B></span>, which make it possible to promptly operate your viewer \r
- scene. Some of the functions are common for all viewers. </p>\r
-\r
-<ul type="disc" class="whs1">\r
-       \r
-       <li class=kadov-p><p><img src="image77.gif" width="26px" height="25px" border="0" class="img_whs2"> <span style="font-weight: bold;"><B>Dump \r
- View</B></span> - exports an object from the viewer in bmp, png, jpg or jpeg \r
- image format. </p></li>\r
-       \r
-       <li class=kadov-p><p><img src="image78.gif" width="27px" height="26px" border="0" class="img_whs3"> <span style="font-weight: bold;"><B>Fit \r
- all</B></span> - resizes the view to place all represented objects in the \r
- visible area</p></li>\r
-       \r
-       <li class=kadov-p><p><img src="image79.gif" width="28px" height="26px" border="0" class="img_whs4"> <span style="font-weight: bold;"><B>Panning</B></span> \r
- - in case if the represented objects are greater that the visible area \r
- and you don't wish to use <span style="font-weight: bold;"><B>Fit all</B></span> \r
- functionality, click on this button and you'll be able to drag the scene \r
- to see its remote parts. </p></li>\r
-</ul>\r
-\r
-<ul type="disc" class="whs1">\r
-       \r
-       <li class=kadov-p><p><img src="image86.gif" width="28px" height="29px" border="0" class="img_whs5"> <span style="font-weight: bold;"><B>Clone \r
- view</B></span> - opens a new duplicate scene.</p></li>\r
-</ul>\r
-\r
-<p>&nbsp;</p>\r
-\r
-<p><span style="font-weight: bold;"><B>VTK 3d &nbsp;viewer</B></span> \r
- (Visualization ToolKit Viewer) and <span style="font-weight: bold;"><B>OCC \r
- 3d viewer</B></span> (Open CasCade Viewer) are both useful for creation of \r
- geometrical models in the GEOM module, however, there some differences, \r
- which specialize the use of the modules. </p>\r
-\r
-<p><span style="font-weight: bold;"><B>OCC 3d viewer</B></span> is the default \r
- viewer for GEOM Module. Only this viewer gives you the possibility to \r
- select sub-shapes (described in full detail in the help for the GEOM Module). \r
- Unfortunately, you can't visualize meshes in this viewer, for this, use \r
- VTK 3d viewer. &nbsp;&nbsp;</p>\r
-\r
-<p><span style="font-weight: bold;"><B>VTK 3d &nbsp;viewer</B></span> \r
- is the default viewer for SMESH Module. Using this viewer you'll be able \r
- to visualize and work with meshes. &nbsp;</p>\r
-\r
-<p>Most of functions in Viewer Toolbars of these modules are common for \r
- both viewers, they are:</p>\r
-\r
-<ul type="disc" class="whs1">\r
-       \r
-       <li class=kadov-p><p><img src="image88.gif" width="27px" height="25px" border="0" class="img_whs6"> <span style="font-weight: bold;"><B>Show/Hide \r
- Trihedron</B></span> - shows or hides coordinate axes. </p></li>\r
-       \r
-       <li class=kadov-p><p><img src="image89.gif" width="26px" height="26px" border="0" class="img_whs7"> <span style="font-weight: bold;"><B>Rotation</B></span> \r
- - click this button and rotate the selected object in the viewer using \r
- the mouse. </p></li>\r
-       \r
-       <li class=kadov-p><p><img src="image90.gif" width="28px" height="28px" border="0" class="img_whs8"> <span style="font-weight: bold;"><B>Front</B></span> \r
- - shows the front view of the object.</p></li>\r
-       \r
-       <li class=kadov-p><p><img src="image91.gif" width="26px" height="26px" border="0" class="img_whs7"> <span style="font-weight: bold;"><B>Reset</B></span> \r
- - returns the object in its initial position.</p></li>\r
-</ul>\r
-\r
-<p>One more function is available in <span style="font-weight: bold;"><B>OCC \r
- 3d viewer</B></span> only. </p>\r
-\r
-<ul type="disc" class="whs1">\r
-       \r
-       <li class=kadov-p><p><img src="image92.gif" width="27px" height="25px" border="0" class="img_whs6"> <span style="font-weight: bold;"><B>Memorize \r
- view</B></span> - saves the view of the object. </p></li>\r
-</ul>\r
-\r
-<p>&nbsp;</p>\r
-\r
-<p><span style="font-weight: bold;"><B>Plot 2d viewer</B></span> is destined to \r
- the representation of &nbsp;2d \r
- plots and graphs obtained via Post-Pro module. </p>\r
-\r
-<p>Its viewer toolbar gives you fast access to the following operations:</p>\r
-\r
-<ul type="disc" class="whs1">\r
-       \r
-       <li class=kadov-p><p><img src="image80.gif" width="27px" height="27px" border="0" class="img_whs9"> Draw Points - represents points \r
- on the graph.</p></li>\r
-       \r
-       <li class=kadov-p><p><img src="image81.gif" width="29px" height="28px" border="0" class="img_whs10"> &amp; <img src="image82.gif" width="25px" height="27px" border="0" class="img_whs11"> Horizontal \r
- axis logarithmic &amp; Vertical axis logarithmic - changes the scaling \r
- on axes to logarithmic. </p></li>\r
-       \r
-       <li class=kadov-p><p><img src="image83.gif" width="28px" height="30px" border="0" class="img_whs12"> Show Legend - reveals all verbal \r
- and numerical information on the graphs.</p></li>\r
-       \r
-       <li class=kadov-p><p><img src="image84.gif" width="29px" height="28px" border="0" class="img_whs10"> Settings - calls a menu, in which \r
- you can specify advanced settings for your <span style="font-weight: bold;"><B>Plot \r
- 2d Viewer</B></span>. Value major/minor it is maximum number of\r
- major/minor intervals for a specified axis. The real number of intervals\r
- fits {1,2,5}*10^n with a natural number n and not exceed the maximum\r
- as specified by the user. &nbsp;</p></li>\r
-</ul>\r
-\r
-<p>&nbsp;</p>\r
-\r
-<p><img src="pics/plot1.png" x-maintain-ratio="TRUE" width="402px" height="396px" border="0" class="img_whs13"></p>\r
-\r
-<p>&nbsp;</p>\r
-\r
-<p><span style="font-weight: bold;"><B>GL Viewer</B></span> is used by exterior \r
- modules built-in in the <span style="font-weight: bold;"><B>SALOME Platform.</B></span></p>\r
-\r
-<script type="text/javascript" language="javascript1.2">\r
-<!--\r
-if (window.writeIntopicBar)\r
-       writeIntopicBar(0);\r
-//-->\r
-</script>\r
-</body>\r
-</html>\r
index abbeed833a5d8d5c392036ac61f19a3bcef890ce..ec80b72541294de3c5b03359eaf9461c57e71af7 100755 (executable)
 </script>\r
 <script language="javascript">\r
 <!--\r
+aTE("Dump Study","dump_study.htm");\r
 aTE("GEOM preferences","geom_preferences.htm");\r
+aTE("Introduction to GUI","introduction_to_gui.htm");\r
 aTE("About SALOME architecture","kernel/about_salome_pro_architecture.htm");\r
 aTE("About SALOME help system","kernel/about_salome_pro_help_system.htm");\r
 aTE("Creating a new study","kernel/creating_a_new_study.htm");\r
-aTE("Displaying/hiding toolbars","kernel/displaying_hiding_toolbars.htm");\r
 aTE("Displaying studies","kernel/displaying_studies.htm");\r
 aTE("Editing studies","kernel/editing_studies.htm");\r
 aTE("Getting properties of the study","kernel/getting_properties_of_the_study.htm");\r
 aTE("Getting started2","kernel/getting_started2.htm");\r
 aTE("Introduction","kernel/introduction.htm");\r
-aTE("Introduction to IAPP","kernel/introduction_to_iapp.htm");\r
 aTE("Introduction to SALOME","kernel/introduction_to_salome_pro.htm");\r
 aTE("Navigating topics","kernel/navigating_topics.htm");\r
 aTE("Opening studies","kernel/opening_studies.htm");\r
@@ -37,9 +37,8 @@ aTE("Using Object Browser","kernel/using_object_browser.htm");
 aTE("Using Registry tool","kernel/using_registry.htm");\r
 aTE("MESH preferences","mesh_preferences.htm");\r
 aTE("Post-Pro Preferences","post-pro_preferences.htm");\r
+aTE("Select Color and Font","select_color_and_font.htm");\r
 aTE("Setting Preferences","setting_preferences.htm");\r
-aTE("Supervisor Preferences","supervisor_preferences.htm");\r
-aTE("Viewers","viewers.htm");\r
 \r
 //-->\r
 </script>\r
index f030d8658722aa01145fdb90f12bb907f0a5c258..7a1060e4a963e39bef4856614c25adb32904c6a4 100755 (executable)
@@ -8,9 +8,9 @@
 <script language="javascript" src="whfts.js"></script>\r
 <script language="javascript">\r
 <!--\r
-iWM("__version__","zon","whfwdata0.htm");\r
+iWM("__version__","zoom","whfwdata0.htm");\r
 \r
-iTM(0,27,"whftdata0.htm");\r
+iTM(0,26,"whftdata0.htm");\r
 \r
 //-->\r
 </script>\r
index 8b506782cfc00502b72092a94cb626eec07209b6..f73ba00c231a87688c58d77d6de24d6a2d52f14f 100755 (executable)
 <!--\r
 aWE("__version__",14);\r
 aWE("_omnipymodul",14);\r
-aWE("0",1,5,14,10,16);\r
-aWE("1",3,14,24,15);\r
-aWE("10",14);\r
+aWE("0",6,14,2,24,16);\r
+aWE("001",24);\r
+aWE("01",24);\r
+aWE("1",5,14,24,15);\r
+aWE("10",14,24);\r
+aWE("100",24);\r
 aWE("103100",14);\r
 aWE("13",14);\r
-aWE("2",3,14,24,15);\r
+aWE("16",24);\r
+aWE("16x16",24);\r
+aWE("2",5,14,24,15);\r
+aWE("200",24);\r
 aWE("23",14);\r
 aWE("24",14);\r
-aWE("2d",5,9,10,27);\r
-aWE("3",1,5,14,10,24,15,16);\r
+aWE("256",24);\r
+aWE("2d",6,10,2,24);\r
+aWE("3",6,14,2,15,16);\r
 aWE("31",14);\r
-aWE("3d",9,10,18,27);\r
+aWE("33",24);\r
+aWE("3d",10,2,24,18);\r
 aWE("4",14);\r
 aWE("5",14);\r
+aWE("50",24);\r
+aWE("512",24);\r
 aWE("6",14);\r
 aWE("7",14);\r
 aWE("8",14);\r
 aWE("9",14);\r
-aWE("abl",1,5,14,18,27);\r
+aWE("abl",3,6,14,18);\r
 aWE("abort",14);\r
-aWE("abov",7,14);\r
-aWE("abstraction",3);\r
-aWE("acces",1,16,18,21,27);\r
-aWE("accessibl",9,25);\r
+aWE("abov",8,14);\r
+aWE("abscissa",23,24);\r
+aWE("absolut",24);\r
+aWE("abstraction",5);\r
+aWE("acceptabl",24);\r
+aWE("acces",3,1,23,24,16,18,21);\r
+aWE("accessibl",10,26);\r
 aWE("accidental",14);\r
-aWE("accord",14,15,16,21);\r
+aWE("accord",14,24,15,16,21);\r
 aWE("account",14);\r
-aWE("achiev",1);\r
-aWE("acquaint",2);\r
-aWE("action",18);\r
-aWE("activ",3,5,16,17);\r
-aWE("activat",3,16,17);\r
-aWE("actual",1,3,6);\r
-aWE("ad",18,19);\r
-aWE("adapt",1);\r
-aWE("add",4,14,15,18,19);\r
-aWE("addition",3,14);\r
-aWE("additional",1,4,6,14,10,21);\r
-aWE("adjust",18);\r
-aWE("advanc",14,19,27);\r
-aWE("affect",1);\r
-aWE("again",14,12,17);\r
-aWE("aim",27);\r
-aWE("algorithm",1,14,11);\r
-aWE("allow",1,6,0,14,11,15,16,17,18,19,22);\r
+aWE("achiev",3);\r
+aWE("acquaint",4);\r
+aWE("action",24,18);\r
+aWE("activ",5,6,24,16,17);\r
+aWE("activat",5,16,17);\r
+aWE("activity",24);\r
+aWE("actual",5,7);\r
+aWE("ad",0,25,19);\r
+aWE("adapt",3);\r
+aWE("add",14,15,16,25,18,19);\r
+aWE("addition",5,14);\r
+aWE("additional",3,7,14,2,24,16,21);\r
+aWE("addres",24);\r
+aWE("adjust",24);\r
+aWE("advanc",14,19);\r
+aWE("affect",3);\r
+aWE("again",6,14,12,17);\r
+aWE("algorithm",3,14,11);\r
+aWE("allow",3,0,7,1,14,11,23,24,15,16,17,25,18,19,22);\r
+aWE("almost",17);\r
 aWE("along",11,18);\r
 aWE("alongsid",19);\r
+aWE("alpha",24);\r
 aWE("already",14);\r
 aWE("alway",11);\r
 aWE("amount",14);\r
 aWE("animation",24);\r
 aWE("annoy",14);\r
-aWE("anoth",1,17);\r
+aWE("anoth",3,17);\r
 aWE("answ",14);\r
-aWE("any",1,2,5,4,7,14,11,12,15);\r
+aWE("any",3,4,6,8,14,11,12,24,15,16,17,26);\r
 aWE("anyth",14);\r
-aWE("ap",25,21);\r
-aWE("appear",7,8,14,18,19,22);\r
-aWE("applet",2);\r
-aWE("appli",18);\r
-aWE("application",1,5,9,10,15,16,17,18,25,19,21);\r
+aWE("ap",26,21);\r
+aWE("api",0,24);\r
+aWE("appear",0,8,9,14,18,19,22);\r
+aWE("appearanc",23);\r
+aWE("applet",4);\r
+aWE("application",3,6,0,10,2,15,16,17,18,26,19,21);\r
 aWE("approach",14,11,16);\r
-aWE("appropriat",14,9);\r
+aWE("appropriat",14,10);\r
 aWE("approximat",14);\r
-aWE("arabic",18);\r
-aWE("architectur",1,9);\r
-aWE("area",5,16,27);\r
+aWE("arabic",25);\r
+aWE("architectur",3,0,10);\r
+aWE("area",6,16,18);\r
 aWE("argument",14);\r
+aWE("arrang",24);\r
 aWE("arrow",21);\r
 aWE("ascend",21);\r
 aWE("ascii",17,18);\r
 aWE("ask",14);\r
-aWE("associat",13,21);\r
-aWE("attach",9);\r
+aWE("assign",24);\r
+aWE("associat",13,24,21);\r
+aWE("attach",10);\r
 aWE("attribut",21);\r
-aWE("author",7,19);\r
+aWE("author",8,19);\r
 aWE("auto",14,18);\r
 aWE("automatic",23);\r
-aWE("automatical",4,14,23,13,15,17,25);\r
-aWE("availability",6);\r
-aWE("availabl",1,3,6,14,9,27);\r
-aWE("avoid",14);\r
+aWE("automatical",0,14,23,13,24,15,16,17,26);\r
+aWE("availability",7);\r
+aWE("availabl",3,5,7,14,10);\r
+aWE("averag",24);\r
+aWE("avi",24);\r
+aWE("avoid",0,14);\r
 aWE("awar",14);\r
 aWE("awk",14);\r
-aWE("ax",18,27);\r
-aWE("axi",18,27);\r
+aWE("ax",18);\r
+aWE("axi",18);\r
 aWE("b",14);\r
 aWE("back",14,23);\r
-aWE("background",18);\r
+aWE("background",24,18);\r
 aWE("bar",23,24,21);\r
-aWE("bas",1,9,10,17);\r
+aWE("bas",3,10,2,17);\r
 aWE("bash",14);\r
-aWE("basi",1);\r
-aWE("basic",1,14,11,16,18);\r
-aWE("batch",1,14,15);\r
+aWE("basi",3);\r
+aWE("basic",3,14,11,16,25);\r
+aWE("batch",3,0,14,15);\r
 aWE("be",14);\r
-aWE("becom",5);\r
+aWE("becom",6,24);\r
 aWE("befor",14);\r
 aWE("begin",18,22);\r
-aWE("behav",1);\r
-aWE("behavior",9);\r
-aWE("below",14,12);\r
+aWE("behav",3);\r
+aWE("behavior",10);\r
+aWE("behaviour",24);\r
+aWE("below",14,12,24);\r
+aWE("bet",24);\r
+aWE("bicolor",24);\r
+aWE("big",24);\r
 aWE("bin",14,15,19);\r
 aWE("binari",14);\r
 aWE("binary",14,17);\r
 aWE("blu",14);\r
-aWE("blur",1);\r
-aWE("bmp",27);\r
+aWE("blur",3);\r
 aWE("bold",14);\r
 aWE("book",20);\r
 aWE("boost",14);\r
 aWE("boost_version",14);\r
 aWE("boostdir",14);\r
-aWE("border",16);\r
-aWE("both",10,23,27);\r
-aWE("bottom",9,18);\r
-aWE("box",0,7,14,23,13,17,18,19,22);\r
+aWE("border",23,16);\r
+aWE("both",2,23,24);\r
+aWE("bottom",10,23,24,18);\r
+aWE("box",0,1,8,14,23,13,24,17,25,18,19,22);\r
 aWE("bracket",14);\r
-aWE("brief",5,14,12);\r
-aWE("bring",10);\r
-aWE("brows",2,3,14,10,13,16,18,19,21);\r
+aWE("brep",10);\r
+aWE("brief",6,14,12);\r
+aWE("bring",2);\r
+aWE("brows",4,5,6,0,14,2,13,16,17,18,19,21);\r
 aWE("bug",14);\r
-aWE("build",14,19);\r
-aWE("built",14,11,27);\r
-aWE("button",14,10,12,13,17,18,25,19,22,27);\r
-aWE("c",1,14,15);\r
-aWE("ca",9);\r
-aWE("cad",9,11);\r
-aWE("cal",1,14,27);\r
-aWE("calculation",8,9,11);\r
+aWE("build",14,24,19);\r
+aWE("built",14,11,24);\r
+aWE("button",14,2,12,13,24,17,25,18,26,19,22);\r
+aWE("c",3,14,15);\r
+aWE("ca",10);\r
+aWE("cad",10,11);\r
+aWE("cal",3,0,14);\r
+aWE("calculation",9,10,11);\r
 aWE("call",14,17,19,22);\r
-aWE("cam",1);\r
+aWE("cam",3);\r
+aWE("camera",24);\r
 aWE("cancel",14);\r
 aWE("capability",19);\r
 aWE("caption",14);\r
-aWE("car",14,9);\r
+aWE("car",14,10);\r
 aWE("careful",14);\r
-aWE("carry",9);\r
-aWE("cas",1,7,14,11,16,17,27);\r
-aWE("cascad",14,27);\r
+aWE("carri",23);\r
+aWE("carry",10);\r
+aWE("cas",3,8,14,11,24,16,17);\r
+aWE("cascad",14);\r
 aWE("casroot",14);\r
 aWE("cat",14);\r
 aWE("catalog",19);\r
 aWE("catalogmodulegeneral",19);\r
 aWE("catalogmodulepersonnel",19);\r
-aWE("catalogu",10,15);\r
+aWE("catalogu",2,15);\r
 aWE("categori",20);\r
 aWE("cd",14);\r
-aWE("cel",18);\r
-aWE("chang",1,5,7,14,23,16,17,18,25,27);\r
-aWE("chapt",23);\r
-aWE("chapter",2);\r
+aWE("cel",24,25);\r
+aWE("center",24);\r
+aWE("centr",24);\r
+aWE("central",24);\r
+aWE("chang",3,6,8,14,23,24,16,17,18,26);\r
+aWE("channel",24);\r
+aWE("chapter",4);\r
+aWE("character",25);\r
 aWE("charg",14);\r
-aWE("check",14);\r
+aWE("check",0,14,24,16,18);\r
 aWE("check_version",14);\r
 aWE("checkbox",14,23,24);\r
-aWE("choic",14,27);\r
-aWE("choos",3,4,6,7,14,23,13,24,18,19,22);\r
-aWE("chosen",24,18,19);\r
+aWE("choic",0,14,24,25);\r
+aWE("choos",5,7,1,8,14,23,13,24,16,25,19,22);\r
+aWE("chosen",24,25,19);\r
+aWE("clamp",24);\r
 aWE("classic",16);\r
 aWE("clear",14);\r
 aWE("clearall",16);\r
-aWE("click",3,6,7,14,12,13,16,17,18,25,19,20,21,22,27);\r
+aWE("click",5,6,0,7,1,8,14,23,12,13,24,16,17,25,18,26,19,20,21,22);\r
 aWE("clickabl",12);\r
-aWE("client",1);\r
-aWE("clon",27);\r
-aWE("clos",1,14,12,17,20);\r
-aWE("cluster",1);\r
-aWE("cod",1,14);\r
-aWE("coefficient",23);\r
+aWE("client",3);\r
+aWE("clip",24);\r
+aWE("clos",3,14,12,24,17,26,20);\r
+aWE("cluster",3);\r
+aWE("cod",3,14);\r
+aWE("coef",23);\r
 aWE("coincid",14);\r
 aWE("collect",14);\r
-aWE("color",0,23,24,18,21);\r
+aWE("color",1,23,24,25,18,21);\r
 aWE("column",18,21,22);\r
-aWE("combin",11);\r
+aWE("combin",11,24);\r
 aWE("comfortabl",16);\r
 aWE("comma",14);\r
-aWE("command",1,14,15);\r
-aWE("common",14,10,11,16,17,25,27);\r
-aWE("compar",1);\r
+aWE("command",3,0,14,15);\r
+aWE("common",14,2,11,16,17,26);\r
+aWE("compar",3,23);\r
 aWE("compatibl",14);\r
 aWE("compil",14);\r
 aWE("compilation",14);\r
-aWE("complet",7,14,20,22);\r
-aWE("complex",1,9);\r
-aWE("component",1,2,4,6,9,10,11,12,13,24,16,17,18,19,21,22);\r
+aWE("complet",8,14,20,22);\r
+aWE("complex",3,10);\r
+aWE("component",3,4,0,7,10,2,11,12,13,24,16,17,18,19,21,22);\r
 aWE("compos",24);\r
 aWE("comput",14,18);\r
-aWE("computation",1,9);\r
-aWE("computational",9);\r
-aWE("concept",1,12);\r
-aWE("concern",14,9);\r
-aWE("conclusion",1);\r
+aWE("computation",3,10);\r
+aWE("computational",10);\r
+aWE("concept",3,12);\r
+aWE("concern",14,10);\r
+aWE("conclusion",3);\r
 aWE("config",14);\r
 aWE("config_fil",14);\r
 aWE("config_mandrake10_1",14);\r
-aWE("configur",14,9);\r
+aWE("configur",14,10);\r
 aWE("configurabl",11);\r
 aWE("configuration",14);\r
-aWE("confirm",14);\r
-aWE("connect",8,11,13,16,18);\r
+aWE("confirm",0,14);\r
+aWE("connect",9,11,13,16,18);\r
 aWE("consist",16);\r
-aWE("consol",9,15,16,17,18);\r
-aWE("constant",1,15);\r
-aWE("construction",9,11);\r
-aWE("contain",1,2,3,7,14,13,15,16,19,20,21,22);\r
+aWE("consol",6,10,15,16,17,18);\r
+aWE("constant",3,15);\r
+aWE("construction",10,11);\r
+aWE("consum",0);\r
+aWE("contain",3,4,5,0,8,14,13,15,16,19,20,21,22);\r
 aWE("container",15);\r
-aWE("content",14,20);\r
-aWE("context",4,14,16,21);\r
+aWE("content",0,14,24,20);\r
+aWE("context",14,16,21);\r
 aWE("continu",14);\r
-aWE("control",3,14,23);\r
-aWE("convenienc",16,27);\r
-aWE("convert",14);\r
+aWE("control",5,14,23,24);\r
+aWE("convert",0,14);\r
 aWE("cooperat",11);\r
-aWE("coordinat",18,27);\r
-aWE("copy",6,14,16,17);\r
+aWE("coordinat",18);\r
+aWE("copi",24);\r
+aWE("copy",7,14,16,17);\r
 aWE("copyright",14);\r
-aWE("corba",1,3,10);\r
-aWE("corn",17,18);\r
+aWE("corba",3,5,2);\r
+aWE("corn",24,17,25);\r
 aWE("correct",16);\r
-aWE("correspond",14,23,13,15,20);\r
-aWE("cost",9);\r
-aWE("coupl",1,9);\r
+aWE("correspond",14,23,13,24,15,20);\r
+aWE("cost",10);\r
+aWE("coupl",3,10);\r
 aWE("cpp",15);\r
-aWE("creat",1,2,3,5,8,14,9,10,11,13,15,16,17,18,19,21);\r
-aWE("creation",1,14,10,27);\r
+aWE("creat",3,4,5,6,0,9,14,10,2,11,23,13,15,16,17,18,19,21);\r
+aWE("creation",3,14,2);\r
 aWE("cros",12,17);\r
 aWE("csh",14,15);\r
 aWE("cshell",15);\r
-aWE("current",5,6,7,14,12,15,17,25,21,22);\r
+aWE("ctrl",24);\r
+aWE("current",6,0,8,14,12,24,15,17,18,26,21,22);\r
+aWE("cursor",24);\r
 aWE("curv",18);\r
-aWE("custom",9,18,19);\r
-aWE("customiz",27);\r
-aWE("customization",1);\r
+aWE("custom",10,25,18,19);\r
+aWE("customization",3);\r
 aWE("cycl",24);\r
-aWE("cyrillic",18);\r
+aWE("cyrillic",25);\r
 aWE("d",14);\r
-aWE("dat",7,22);\r
-aWE("data",1,3,8,14,9,10,11,17,18,19);\r
-aWE("databas",1);\r
+aWE("dat",8,22);\r
+aWE("data",3,5,0,9,14,10,2,11,17,18,19);\r
+aWE("databas",3);\r
 aWE("debug",21);\r
-aWE("default",3,4,0,14,11,23,24,15,17,18,25,21,27);\r
-aWE("defin",1,14,9,24,18,27);\r
-aWE("definit",1,3,4,6,15,17,18,21,22);\r
-aWE("definition",1,9,20);\r
-aWE("delay",9);\r
-aWE("demand",9,10);\r
-aWE("depend",6,14,21);\r
+aWE("decreas",24);\r
+aWE("default",5,1,14,23,24,15,16,17,18,26,21);\r
+aWE("defin",3,0,1,14,10,23,24,25,18);\r
+aWE("definit",3,5,7,15,16,21,22);\r
+aWE("definition",3,10,20);\r
+aWE("delay",10);\r
+aWE("delet",17);\r
+aWE("demand",10,2,24);\r
+aWE("depend",7,14,21);\r
 aWE("dependanci",14);\r
 aWE("dependenci",14);\r
-aWE("deriv",1);\r
+aWE("deriv",3);\r
 aWE("descend",21);\r
-aWE("describ",1,2,14,23,19,27);\r
+aWE("describ",3,4,14,19);\r
 aWE("description",14,15,19);\r
-aWE("design",9);\r
+aWE("design",10,24);\r
 aWE("desir",19);\r
-aWE("desktop",5,4,8,14,10,16,17);\r
-aWE("destin",8,16,21,22,27);\r
+aWE("desktop",6,9,14,2,16,17);\r
+aWE("destin",9,16,21,22);\r
 aWE("destination",12);\r
-aWE("detail",0,14,23,18,27);\r
+aWE("detail",14,18);\r
 aWE("dev",14);\r
-aWE("develop",1);\r
-aWE("development",1,9);\r
+aWE("develop",3);\r
+aWE("development",3,10);\r
+aWE("devic",24);\r
 aWE("diagram",23);\r
-aWE("dialog",0,7,14,23,13,16,17,18,19,22);\r
+aWE("dialog",0,1,8,14,23,13,24,16,17,25,18,19,22);\r
 aWE("dif",14);\r
 aWE("differ",16);\r
-aWE("differenc",1,14,16,17,27);\r
-aWE("different",1,2,3,8,14,13,15,16,17,21,27);\r
+aWE("differenc",3,14,16,17);\r
+aWE("different",3,4,5,9,14,13,24,15,16,17,21);\r
 aWE("digit",23);\r
-aWE("digital",9);\r
+aWE("digital",10);\r
 aWE("dir",14);\r
-aWE("direction",5);\r
+aWE("direction",6,24);\r
 aWE("directori",14,18);\r
 aWE("directory",14,15,17,18,19);\r
-aWE("disabl",14,18);\r
+aWE("disabl",14,24,18);\r
 aWE("disable_flag",14);\r
 aWE("disk",14,15);\r
-aWE("display",5,4,0,14,23,12,15,16,17,18,20,21,22);\r
-aWE("distinction",1);\r
-aWE("distribut",1,14);\r
+aWE("display",6,1,14,23,12,24,15,16,17,18,20,21,22);\r
+aWE("distanc",24);\r
+aWE("distinction",3);\r
+aWE("distribut",3,14);\r
 aWE("distribution",14);\r
-aWE("divid",2,22);\r
-aWE("do",6,14);\r
-aWE("dockabl",10,16,17);\r
-aWE("document",3,8,14,16);\r
-aWE("domain",1,11);\r
-aWE("don",14,19,27);\r
+aWE("divid",4,24,22);\r
+aWE("do",7,14);\r
+aWE("dockabl",6,2,16,17);\r
+aWE("document",5,0,9,14,16);\r
+aWE("domain",3,11);\r
+aWE("dominant",24);\r
+aWE("don",14,24,19);\r
 aWE("dot",14);\r
 aWE("doubl",22);\r
-aWE("down",7,12,21);\r
+aWE("down",8,12,21);\r
 aWE("doxygen",14);\r
 aWE("doxytag",14);\r
 aWE("doxywizard",14);\r
-aWE("drag",4,27);\r
-aWE("dramatical",1);\r
-aWE("draw",27);\r
+aWE("drag",16);\r
+aWE("dramatical",3);\r
 aWE("driv",14);\r
-aWE("drop",4,12);\r
-aWE("dump",27);\r
+aWE("drop",12,16);\r
+aWE("dump",0);\r
 aWE("dumpversion",14);\r
-aWE("duplicat",27);\r
-aWE("dynamic",10);\r
-aWE("dynamical",11);\r
-aWE("e",14,10,16,17);\r
-aWE("eas",27);\r
-aWE("easi",1,9);\r
-aWE("easy",1);\r
-aWE("economical",1);\r
+aWE("dynamic",2);\r
+aWE("dynamical",11,24);\r
+aWE("e",14,2,16,17);\r
+aWE("easi",3,10);\r
+aWE("easy",3);\r
+aWE("economical",3);\r
 aWE("edg",23);\r
-aWE("edit",6,7,14,10,15);\r
-aWE("editor",25);\r
-aWE("efficient",9);\r
+aWE("edit",7,8,14,2,15);\r
+aWE("editabl",24);\r
+aWE("edition",24);\r
+aWE("editor",26);\r
+aWE("efficient",10);\r
 aWE("egrep",14);\r
-aWE("eith",24,18,19);\r
-aWE("electrical",9);\r
-aWE("electronic",9);\r
-aWE("element",9,23);\r
-aWE("empty",5,14);\r
+aWE("eith",24,25,18,19);\r
+aWE("electrical",10);\r
+aWE("electronic",10);\r
+aWE("element",10,23,24);\r
+aWE("empty",6,14);\r
 aWE("enabl",18,20);\r
-aWE("encourag",1);\r
-aWE("end",1,14,25);\r
-aWE("enforc",1);\r
-aWE("engin",1);\r
+aWE("encourag",3);\r
+aWE("end",3,14,24,18,26);\r
+aWE("enforc",3);\r
+aWE("engin",3);\r
 aWE("enough",14);\r
-aWE("ensur",1,9);\r
-aWE("ent",7,14,15,17);\r
+aWE("ensur",3,10);\r
+aWE("ent",8,14,15,17);\r
 aWE("enter",14);\r
 aWE("entity",23);\r
 aWE("entry",18,21);\r
@@ -349,110 +387,118 @@ aWE("env_",14);
 aWE("env_for_launch",14);\r
 aWE("env_product",14);\r
 aWE("env_vtk",14);\r
-aWE("environment",1,5,8,14,9,10,15);\r
-aWE("equal",14);\r
-aWE("equipment",9);\r
-aWE("error",14);\r
-aWE("etc",1,4,14,10,11,16);\r
+aWE("environment",3,6,9,14,10,2,15);\r
+aWE("equal",3,14);\r
+aWE("equipment",10);\r
+aWE("error",0,14);\r
+aWE("etc",3,14,2,11,24,16);\r
 aWE("ev",22);\r
-aWE("even",1,16);\r
-aWE("every",9,20);\r
+aWE("even",3,16);\r
+aWE("every",10,20);\r
 aWE("everyth",14);\r
-aWE("evolution",9);\r
-aWE("evolv",1);\r
+aWE("evolution",10);\r
+aWE("evolv",3);\r
 aWE("ex",15);\r
-aWE("exact",14);\r
+aWE("exact",14,24);\r
 aWE("examl",14);\r
-aWE("exampl",5,14,9,16,17,19);\r
-aWE("exception",10);\r
-aWE("exchang",1);\r
-aWE("execution",9,11);\r
-aWE("exist",1,14,11,13,17,25,19);\r
+aWE("exampl",6,14,10,16,17,19);\r
+aWE("exceed",24);\r
+aWE("exception",2);\r
+aWE("exchang",3);\r
+aWE("execution",10,11);\r
+aWE("exist",3,14,11,13,17,26,19);\r
 aWE("existenc",14);\r
 aWE("expand",12);\r
-aWE("expandability",1);\r
-aWE("expectation",9);\r
-aWE("exploit",1);\r
-aWE("explor",2);\r
-aWE("export",9,27);\r
-aWE("expos",1);\r
-aWE("extend",18);\r
+aWE("expandability",3);\r
+aWE("expectation",10);\r
+aWE("expert",0);\r
+aWE("exploit",3);\r
+aWE("explor",4);\r
+aWE("export",10,23);\r
+aWE("expos",3);\r
+aWE("extend",25);\r
 aWE("extension",17);\r
-aWE("exterior",27);\r
 aWE("external",18);\r
 aWE("extract",14);\r
-aWE("extreme",9);\r
+aWE("extreme",10);\r
 aWE("f",14);\r
 aWE("fac",23,24,18);\r
-aWE("facilitat",1,11);\r
+aWE("facilitat",3,11);\r
 aWE("fact",14,16);\r
 aWE("factory",19);\r
 aWE("fail",14);\r
 aWE("fals",14);\r
-aWE("fast",27);\r
-aWE("featur",2,6,14);\r
-aWE("field",7,14,9,23,24,18);\r
+aWE("famili",24);\r
+aWE("featur",4,7,14,24);\r
+aWE("field",8,14,10,23,24,25);\r
 aWE("fig",14);\r
-aWE("figur",3,14);\r
-aWE("fil",3,7,14,13,24,15,16,17,18,25,19);\r
+aWE("figur",1,14);\r
+aWE("fil",5,0,8,14,11,13,24,15,16,17,18,26,19);\r
 aWE("fill",23);\r
 aWE("find",14,19,20);\r
 aWE("find_in_path",14);\r
-aWE("fine",1);\r
-aWE("finish",14,12);\r
-aWE("finit",9);\r
-aWE("first",14,21);\r
-aWE("fit",27);\r
-aWE("fiv",11);\r
+aWE("fine",3);\r
+aWE("finish",14,12,24);\r
+aWE("finit",10);\r
+aWE("first",0,14,24,18,21);\r
+aWE("fit",18);\r
 aWE("flag",14);\r
-aWE("flexibility",1);\r
-aWE("flexibl",14,9,10);\r
+aWE("flexibility",3,0);\r
+aWE("flexibl",14,10,2);\r
+aWE("focal",24);\r
 aWE("focu",12);\r
-aWE("fold",14,21);\r
-aWE("follow",1,0,7,8,14,12,13,15,16,17,18,19,20,22,27);\r
-aWE("font",23,24,18);\r
+aWE("fold",14,17,21);\r
+aWE("follow",3,0,8,9,14,12,13,15,16,17,18,19,20,22);\r
+aWE("font",23,24,25,18);\r
 aWE("forget",19);\r
-aWE("format",2,9,13,18,27);\r
-aWE("four",10,27);\r
-aWE("fram",14);\r
-aWE("framework",10,21);\r
-aWE("fre",9);\r
-aWE("friend",9);\r
-aWE("front",27);\r
-aWE("full",23,24,20,27);\r
-aWE("function",14,9,11,16,17,27);\r
+aWE("format",4,10,13,18);\r
+aWE("forth",24);\r
+aWE("fp",24);\r
+aWE("fram",14,24);\r
+aWE("framework",2,21);\r
+aWE("fre",10,24);\r
+aWE("friend",10);\r
+aWE("ful",24);\r
+aWE("fulfill",0);\r
+aWE("full",24,20);\r
+aWE("function",0,14,10,11,16,17);\r
 aWE("function_nam",14);\r
 aWE("functional",16);\r
-aWE("functionality",1,2,6,8,23,16,19,27);\r
-aWE("functionnaliti",9);\r
-aWE("fundamental",1);\r
+aWE("functionaliti",10);\r
+aWE("functionality",3,4,7,9,16,19);\r
+aWE("fundamental",3);\r
 aWE("furth",14);\r
 aWE("g",14,15);\r
+aWE("gap",23);\r
+aWE("gaus",2,24);\r
 aWE("gcc",14);\r
-aWE("general",8,14,23,16,18);\r
-aWE("generat",14,11,19);\r
-aWE("generator",9,10,19);\r
-aWE("generic",9,11);\r
-aWE("geom",1,4,6,0,14,11,27);\r
-aWE("geometrical",9,11,27);\r
-aWE("geometry",0);\r
-aWE("get",2,7,8,14,9,21);\r
-aWE("giv",7,14,16,18,27);\r
-aWE("given",14,11);\r
-aWE("gl",27);\r
+aWE("general",9,14,23,16,18);\r
+aWE("generat",0,14,11,19);\r
+aWE("generator",10,2,19);\r
+aWE("generic",10,11);\r
+aWE("geom",14,11);\r
+aWE("geometrical",1,10,11,24);\r
+aWE("geometry",3,1,11,24,16);\r
+aWE("get",4,9,14,10,21);\r
+aWE("giv",0,8,14,16,25);\r
+aWE("given",14,11,24);\r
+aWE("gl",24);\r
+aWE("global",24);\r
 aWE("glossary",20);\r
 aWE("go",14,12);\r
-aWE("graph",5,11,18,27);\r
-aWE("graphical",10,11);\r
+aWE("graph",6,11,18);\r
+aWE("graphic",24);\r
+aWE("graphical",0,2,11);\r
 aWE("graphviz",14);\r
-aWE("great",27);\r
-aWE("greek",18);\r
+aWE("great",0,24);\r
+aWE("greek",25);\r
 aWE("grep",14);\r
-aWE("group",18);\r
-aWE("gui",1,3,14,10,11,15,18,25);\r
+aWE("group",23,24,25);\r
+aWE("gui",3,5,0,14,2,11,15,17,18,26);\r
 aWE("h",14,15);\r
-aWE("hand",1,12,20);\r
-aWE("handl",14,9,10);\r
+aWE("half",24);\r
+aWE("hand",3,12,20);\r
+aWE("handl",14,10,2);\r
 aWE("happydoc",14);\r
 aWE("hard",14,15);\r
 aWE("hasn",17);\r
@@ -461,61 +507,62 @@ aWE("haven",18);
 aWE("hdf",14,13,17,18);\r
 aWE("hdf5",14);\r
 aWE("hdf5hom",14);\r
-aWE("heal",9);\r
+aWE("heal",10);\r
+aWE("height",23,24);\r
 aWE("hello",22);\r
-aWE("help",1,2,14,9,12,13,15,18,20,21,22,27);\r
+aWE("help",3,4,14,10,12,13,15,18,20,21);\r
 aWE("helpful",14);\r
-aWE("her",14,23,24,18,26);\r
-aWE("heterogeneou",9);\r
-aWE("hid",4,16,18,21,27);\r
-aWE("high",14,9);\r
-aWE("highlight",14,21);\r
+aWE("her",14,23,24,18);\r
+aWE("heterogeneou",10);\r
+aWE("hid",24,16,18,21);\r
+aWE("high",14,10);\r
+aWE("highlight",14,23,21);\r
 aWE("hint",14);\r
 aWE("history",22);\r
 aWE("hom",15);\r
-aWE("horizontal",5,23,24,18,27);\r
-aWE("host",1);\r
+aWE("horizontal",6,23,24,18);\r
+aWE("host",3);\r
 aWE("hotspot",12);\r
-aWE("how",1,14);\r
+aWE("how",3,14);\r
 aWE("hpp",14);\r
-aWE("html",2,20);\r
+aWE("html",4,20);\r
 aWE("hxx",14);\r
-aWE("i",14,10,16,17);\r
-aWE("iapp",1);\r
-aWE("icon",3,6,16,19);\r
+aWE("i",14,2,16,17);\r
+aWE("icon",5,7,16,19);\r
 aWE("idea",14);\r
 aWE("identification",21,22);\r
 aWE("identify",14);\r
-aWE("idl",1,19);\r
+aWE("idl",3,19);\r
 aWE("ie",18);\r
-aWE("if",3,5,6,14,23,13,24,15,16,17,18,19,21,27);\r
-aWE("ig",9);\r
+aWE("if",5,6,0,7,14,23,13,24,15,16,17,18,19,21);\r
+aWE("ig",10);\r
 aWE("ignor",14);\r
-aWE("imag",9,27);\r
+aWE("imag",10,24);\r
 aWE("immediate",12);\r
-aWE("implement",1,14);\r
-aWE("implementation",1,19);\r
+aWE("implement",3,14);\r
+aWE("implementation",3,19);\r
 aWE("impli",14);\r
-aWE("import",14,9,10,11,24,16);\r
+aWE("import",0,14,10,2,11,24,16);\r
 aWE("important",14);\r
 aWE("impos",24);\r
 aWE("impossibl",14);\r
-aWE("improv",10);\r
+aWE("improv",2);\r
 aWE("inc",14);\r
-aWE("includ",14,12,20);\r
-aWE("inclusiv",1);\r
-aWE("increas",9);\r
-aWE("incremental",1);\r
-aWE("independenc",1);\r
-aWE("independent",1);\r
-aWE("index",21);\r
+aWE("includ",14,12,24,20);\r
+aWE("inclusiv",3);\r
+aWE("increas",0,10,24);\r
+aWE("increment",1,24);\r
+aWE("incremental",3);\r
+aWE("independenc",3);\r
+aWE("independent",3);\r
+aWE("index",23,21);\r
 aWE("indicat",16,17);\r
-aWE("information",1,0,7,14,12,17,20,22,27);\r
-aWE("initial",8,27);\r
-aWE("input",9,19);\r
+aWE("information",3,8,14,12,24,17,20,22);\r
+aWE("initial",9);\r
+aWE("input",10,19);\r
 aWE("insert",14);\r
-aWE("insid",1,5,12,19);\r
-aWE("inspect",14);\r
+aWE("insid",3,6,12,24,19);\r
+aWE("inspect",14,24);\r
 aWE("instal",14,19);\r
 aWE("instalation",14);\r
 aWE("install",14,15);\r
@@ -533,59 +580,64 @@ aWE("installation_script_nam",14);
 aWE("installdiskspac",14);\r
 aWE("installwizard_root_directory",14);\r
 aWE("installworkxxxxx",14);\r
-aWE("instanc",3);\r
+aWE("instanc",5);\r
 aWE("instead",14);\r
-aWE("instrument",27);\r
-aWE("instrumental",1);\r
+aWE("instrumental",3);\r
 aWE("integ",14);\r
 aWE("integer",23);\r
-aWE("integrat",1,9,10,11);\r
-aWE("integration",1,9,10,19);\r
+aWE("integrat",3,10,2,11);\r
+aWE("integration",3,10,2,19);\r
 aWE("intend",14);\r
-aWE("interaction",10);\r
-aWE("interfac",1,9,10,11,16,19);\r
-aWE("internal",1,14);\r
-aWE("internet",2);\r
-aWE("interoperability",9);\r
+aWE("interaction",2);\r
+aWE("interfac",3,0,10,2,11,16,19);\r
+aWE("interior",23);\r
+aWE("internal",3,14);\r
+aWE("internet",4);\r
+aWE("interoperability",10);\r
 aWE("interoperabl",21);\r
-aWE("interpret",10,16);\r
-aWE("interval",22);\r
+aWE("interpret",2,16);\r
+aWE("interval",24,22);\r
 aWE("introduc",14);\r
-aWE("introduction",14,9,10,11);\r
+aWE("introduction",14,10,2,11);\r
 aWE("invalid",17);\r
 aWE("invok",14,16);\r
 aWE("ior",18,21);\r
 aWE("isolin",18);\r
 aWE("ispython",14);\r
-aWE("item",7,9,10);\r
+aWE("item",8,10,2);\r
+aWE("iteration",24);\r
 aWE("itself",14);\r
-aWE("java",2);\r
-aWE("jpeg",27);\r
-aWE("jpg",27);\r
+aWE("java",4);\r
 aWE("just",14,18);\r
 aWE("k",15);\r
 aWE("kbyt",14);\r
 aWE("kernel",14,11,15);\r
-aWE("key",14);\r
+aWE("key",14,24);\r
+aWE("keyboard",24);\r
 aWE("kill",15);\r
 aWE("killall",15);\r
-aWE("kind",7,12);\r
+aWE("kind",8,12);\r
 aWE("know",19);\r
+aWE("knowledg",0);\r
 aWE("l",15);\r
 aWE("label",23,24);\r
-aWE("languag",1);\r
+aWE("languag",3);\r
 aWE("larg",14);\r
-aWE("last",17,22);\r
-aWE("latin",18);\r
-aWE("launch",2,14,13,15,25,19,22);\r
-aWE("lay",3);\r
-aWE("layout",17);\r
+aWE("largest",24);\r
+aWE("last",18,22);\r
+aWE("latest",24);\r
+aWE("latin",25);\r
+aWE("launch",4,0,14,13,15,26,19,22);\r
+aWE("lay",5);\r
+aWE("layout",0,17);\r
 aWE("ld_library_path",14);\r
 aWE("lead",17);\r
-aWE("learn",14,9);\r
-aWE("left",14,18,20);\r
-aWE("legend",18,27);\r
-aWE("level",1,23,18);\r
+aWE("learn",14,10);\r
+aWE("left",14,23,24,25,18,20);\r
+aWE("legend",18);\r
+aWE("length",24);\r
+aWE("les",24);\r
+aWE("level",3,23,24,18);\r
 aWE("lib",14);\r
 aWE("libcosnotify4",14);\r
 aWE("libhdf5",14);\r
@@ -593,624 +645,690 @@ aWE("libm",14);
 aWE("libomniorb4",14);\r
 aWE("libqwt",14);\r
 aWE("librari",14);\r
-aWE("library",14,10);\r
+aWE("library",14,2);\r
 aWE("libstdplugin",14);\r
 aWE("libtcl8",14);\r
 aWE("libtk8",14);\r
 aWE("libvtkcommon",14);\r
 aWE("licens",14);\r
-aWE("lik",1,5,4,14,12,16,17,19,21);\r
+aWE("lik",3,6,14,12,24,16,17,19,21);\r
 aWE("like",14);\r
 aWE("limit",24);\r
-aWE("lin",2,14,23,15,18);\r
+aWE("limitation",24);\r
+aWE("lin",4,1,14,23,24,15,18);\r
 aWE("linear",18);\r
-aWE("link",1,0,9,12);\r
-aWE("linux",2,14);\r
-aWE("list",7,14,12,15,18,20,22);\r
+aWE("link",3,10,12);\r
+aWE("linux",4,14);\r
+aWE("list",8,14,12,24,15,18,20,22);\r
 aWE("list_of_prerequisit",14);\r
-aWE("ll",18,27);\r
-aWE("load",1,10,13,24,15,16,18,25,21);\r
-aWE("locat",1,4,15,18,20,21);\r
-aWE("location",19);\r
-aWE("lock",7);\r
+aWE("ll",18);\r
+aWE("load",3,0,2,13,24,15,16,18,26,21);\r
+aWE("local",24);\r
+aWE("locat",3,24,15,16,18,20,21);\r
+aWE("location",0,19);\r
+aWE("lock",8,24);\r
 aWE("log",15);\r
-aWE("logarithmic",24,18,27);\r
-aWE("long",1);\r
+aWE("logarithmic",24,18);\r
+aWE("long",3);\r
 aWE("look",14,19,20);\r
+aWE("lookout",23,24);\r
 aWE("lost",17);\r
 aWE("lot",16);\r
-aWE("low",14,18,20);\r
+aWE("low",14,24,25,20);\r
 aWE("m",15);\r
-aWE("machin",1,17,22);\r
-aWE("macintosh",2);\r
-aWE("macro",1);\r
-aWE("main",3,4,6,7,14,9,13,16,17,18,19,22);\r
+aWE("machin",3,17,22);\r
+aWE("macintosh",4);\r
+aWE("macro",3);\r
+aWE("magnification",24);\r
+aWE("main",5,0,7,8,14,10,13,24,16,17,18,19,22);\r
 aWE("major",14);\r
-aWE("mak",3,14,9,23,27);\r
+aWE("mak",5,14,10,23);\r
 aWE("make_dir",14);\r
 aWE("make_env",14);\r
-aWE("manag",9,18);\r
-aWE("management",9,10,16);\r
+aWE("manag",10,18);\r
+aWE("management",10,2,16);\r
 aWE("mandrak",14);\r
 aWE("mandrake10",14);\r
-aWE("manual",2,14,18);\r
-aWE("map",1);\r
-aWE("mark",4,14,18);\r
+aWE("manipulat",24);\r
+aWE("manipulator",24);\r
+aWE("manual",4,0,14,18);\r
+aWE("map",3);\r
+aWE("mark",14,18);\r
 aWE("marker",18);\r
-aWE("market",9);\r
-aWE("massive",1);\r
+aWE("market",10);\r
+aWE("massive",3);\r
 aWE("mast",14);\r
 aWE("match",20);\r
+aWE("matrix",24);\r
 aWE("max",24);\r
-aWE("maximiz",3,16);\r
-aWE("maximum",27);\r
-aWE("mean",5,8,14,16,17);\r
-aWE("mechanism",10);\r
+aWE("maximiz",5);\r
+aWE("maximum",24);\r
+aWE("mean",6,9,14,24,16,17);\r
+aWE("mechanism",0,2);\r
 aWE("med2hom",14);\r
-aWE("meet",9);\r
-aWE("memoriz",27);\r
+aWE("meet",10);\r
+aWE("memory",24);\r
 aWE("mention",14);\r
-aWE("menu",1,3,4,6,7,10,23,12,13,24,16,17,18,19,21,22,27);\r
+aWE("menu",3,5,0,7,8,2,23,12,13,24,16,17,25,18,26,19,21,22);\r
 aWE("menubar",16);\r
-aWE("mesh",0,9,11,23,27);\r
-aWE("messag",7,14,10,15,22);\r
+aWE("mesh",3,10,11,23,24,16);\r
+aWE("messag",8,14,2,15);\r
 aWE("middl",14);\r
 aWE("min",24);\r
-aWE("minimiz",3,16);\r
+aWE("minimiz",5);\r
+aWE("minimum",24);\r
 aWE("minor",14);\r
 aWE("mis",14);\r
 aWE("mistak",16);\r
 aWE("mix",16);\r
-aWE("mod",1,0,14,23,24,15);\r
-aWE("model",1,9,11,23,27);\r
-aWE("modern",9);\r
-aWE("modification",1,7);\r
-aWE("modify",14,9);\r
-aWE("modul",1,2,6,0,14,10,11,23,24,15,16,17,18,25,19,27);\r
+aWE("mod",3,0,1,14,23,24,15);\r
+aWE("model",3,10,11,23);\r
+aWE("modern",10);\r
+aWE("modification",3,0,8);\r
+aWE("modify",0,14,10);\r
+aWE("modul",3,4,7,1,14,2,11,23,24,15,16,17,18,26,19);\r
 aWE("module_root_dir",14);\r
 aWE("module_src_dir",14);\r
 aWE("module1",15);\r
 aWE("module2",15);\r
 aWE("modulu",24);\r
-aWE("moment",14);\r
-aWE("mous",4,27);\r
-aWE("mov",5);\r
+aWE("moment",14,24);\r
+aWE("momentari",24);\r
+aWE("mous",23,24,16);\r
+aWE("mov",6);\r
+aWE("movement",24);\r
 aWE("mozilla",18);\r
 aWE("msg2qm",14);\r
 aWE("msg2qm_root",14);\r
 aWE("much",14);\r
-aWE("multi",5,8,9,10,16,19);\r
+aWE("multi",6,9,10,2,16,19);\r
 aWE("multifil",17,18);\r
 aWE("multipl",17);\r
-aWE("multiti",1);\r
-aWE("must",1,9,11);\r
-aWE("n",14);\r
-aWE("nam",1,3,7,14,17,19,21,22);\r
+aWE("multipli",24);\r
+aWE("multiti",3);\r
+aWE("must",3,10,11);\r
+aWE("n",14,24);\r
+aWE("nam",3,5,0,8,14,17,19,21,22);\r
 aWE("nativ",14);\r
-aWE("natur",6);\r
-aWE("natural",1);\r
+aWE("natur",7);\r
+aWE("natural",3);\r
 aWE("navigat",14,12);\r
-aWE("navigation",2,12);\r
-aWE("navigator",2);\r
-aWE("ne",5,14,12,18);\r
-aWE("necessary",14,23,15,16,17,21);\r
+aWE("navigation",4,12,24);\r
+aWE("navigator",4);\r
+aWE("ne",6,14,12,25,18);\r
+aWE("necessary",0,14,23,15,16,17,21);\r
+aWE("need",24);\r
+aWE("negativ",24);\r
 aWE("netgen",14);\r
 aWE("netgenroot",14);\r
-aWE("netscap",2,18);\r
-aWE("new",1,3,7,8,14,9,17,25,19,27);\r
-aWE("next",7,14,15,18,25,19);\r
+aWE("netscap",4,18);\r
+aWE("new",3,5,8,9,14,10,17,18,26,19);\r
+aWE("next",8,14,15,26,19);\r
 aWE("nf",14);\r
 aWE("nod",23,19);\r
-aWE("normal",5);\r
-aWE("not",14,18);\r
-aWE("noticeab",1);\r
+aWE("normal",6);\r
+aWE("not",14);\r
+aWE("noticeab",3);\r
 aWE("notifd",14);\r
-aWE("notification",25);\r
-aWE("notion",8);\r
+aWE("notification",26);\r
+aWE("notify",24);\r
+aWE("notion",9);\r
 aWE("now",16);\r
-aWE("null",14);\r
-aWE("numb",14,23,24,18,22);\r
-aWE("number",14,23);\r
-aWE("numeric",14,9,11,18);\r
-aWE("numerical",1,8,9,27);\r
+aWE("nth",24);\r
+aWE("null",14,24);\r
+aWE("numb",14,11,23,24,18,22);\r
+aWE("number",14,23,24);\r
+aWE("numeric",14,10,11,25);\r
+aWE("numerical",3,9,10);\r
 aWE("numerou",15);\r
-aWE("object",1,3,6,10,23,13,16,18,25,21,27);\r
-aWE("objectiv",1);\r
+aWE("object",3,5,6,0,7,2,23,13,24,16,17,18,26,21);\r
+aWE("objectiv",3);\r
 aWE("obligatory",14);\r
-aWE("obtain",27);\r
-aWE("occ",3,5,10,18,27);\r
+aWE("occ",5,6,2,18);\r
 aWE("occ_version_major",14);\r
 aWE("occ_version_minor",14);\r
 aWE("occupi",14);\r
 aWE("off",14);\r
-aWE("offer",1);\r
-aWE("often",9);\r
-aWE("ok",14,13,25);\r
-aWE("omg",1);\r
+aWE("offer",3);\r
+aWE("often",10);\r
+aWE("ok",14,13,26);\r
+aWE("omg",3);\r
 aWE("omit",14);\r
 aWE("omni",14);\r
 aWE("omninotify",14);\r
 aWE("omniorb",14);\r
 aWE("omniorbdir",14);\r
 aWE("omniorbpy",14);\r
-aWE("on",1,5,6,14,10,12,13,24,15,16,17,18,19,21,27);\r
+aWE("on",3,6,0,7,14,2,12,13,24,15,16,17,25,18,19,21);\r
+aWE("onc",24);\r
 aWE("onlin",20);\r
-aWE("open",5,8,14,9,11,12,13,15,17,19,20,27);\r
+aWE("opaqu",24);\r
+aWE("open",6,0,9,14,10,11,12,13,24,15,17,19,20);\r
 aWE("opencascad",14);\r
-aWE("operat",27);\r
-aWE("operation",6,8,17,27);\r
-aWE("optimiz",14,9);\r
+aWE("operat",0);\r
+aWE("operation",7,9,23,24,17);\r
+aWE("optimiz",14,10,24);\r
 aWE("optimization",11);\r
-aWE("option",6,7,14,13,24,15,16,17,18,21);\r
-aWE("optional",14,9,11);\r
+aWE("option",7,8,14,13,24,15,16,17,18,21);\r
+aWE("optional",14,10,11);\r
 aWE("ord",14);\r
-aWE("org",1);\r
+aWE("ordinat",23,24);\r
+aWE("org",3);\r
 aWE("orientation",23,24);\r
 aWE("origin",23,24);\r
+aWE("original",0);\r
 aWE("originality",11);\r
 aWE("os",14);\r
 aWE("os_version",14);\r
-aWE("other",2,25);\r
-aWE("otherwis",14,17);\r
-aWE("out",9);\r
+aWE("other",4,0);\r
+aWE("otherwis",0,14,24,17);\r
+aWE("out",10,23,25);\r
 aWE("outlin",23);\r
-aWE("output",14,10);\r
-aWE("outsid",16);\r
+aWE("output",14,2);\r
+aWE("outsid",24,16);\r
 aWE("overload",14);\r
-aWE("own",14,10,11,16);\r
+aWE("own",14,2,11,16);\r
 aWE("p",15);\r
 aWE("packag",14,15,19);\r
-aWE("pag",14,18,20);\r
-aWE("pan",12,20,27);\r
-aWE("parallel",1);\r
+aWE("pag",14,20);\r
+aWE("pan",12,17,20);\r
+aWE("parallel",3);\r
 aWE("paramet",14,19);\r
-aWE("parameter",1,0,14,23,24,18,19);\r
-aWE("part",5,14,16,27);\r
-aWE("particular",9,17);\r
+aWE("parameter",3,14,24,25,18,19);\r
+aWE("parent",24);\r
+aWE("part",6,14,16);\r
+aWE("particular",10,17);\r
 aWE("party",11);\r
 aWE("pas",14);\r
-aWE("past",6,16);\r
-aWE("path",14);\r
-aWE("pc",1);\r
-aWE("perform",14,9);\r
-aWE("performanc",1,8,9);\r
+aWE("past",7,16);\r
+aWE("patent",24);\r
+aWE("path",14,24);\r
+aWE("pc",3);\r
+aWE("per",24);\r
+aWE("perform",14,10,23,24);\r
+aWE("performanc",3,9,10);\r
 aWE("permission",14);\r
-aWE("phenomena",1);\r
+aWE("phenomena",3);\r
 aWE("phras",20);\r
-aWE("physic",9);\r
-aWE("physical",1,9,11);\r
-aWE("pick",14);\r
+aWE("physic",10);\r
+aWE("physical",3,10,11);\r
+aWE("pick",14,24);\r
 aWE("pickup",14);\r
 aWE("pickup_env",14);\r
 aWE("pickup_env_flag",14);\r
 aWE("pickupenv",14);\r
-aWE("pictur",7);\r
+aWE("pictur",8);\r
 aWE("pid",22);\r
-aWE("piec",1);\r
-aWE("plac",5,4,14,10,16,27);\r
-aWE("platform",1,2,5,4,8,14,9,10,11,15,16,17,19,22,27);\r
-aWE("pleas",14,18);\r
-aWE("plot",5,10,27);\r
-aWE("plot2d",3,18);\r
-aWE("plug",10);\r
-aWE("png",27);\r
+aWE("piec",3);\r
+aWE("pixel",24);\r
+aWE("plac",6,14,2,16);\r
+aWE("placement",23,24);\r
+aWE("platform",3,4,6,0,9,14,10,2,11,15,16,17,19,22);\r
+aWE("play",0);\r
+aWE("pleas",14);\r
+aWE("plot",6,2);\r
+aWE("plot2d",5,18);\r
+aWE("plug",2);\r
 aWE("po",14);\r
-aWE("point",1,14,23,18,27);\r
+aWE("point",3,14,2,23,24,18);\r
 aWE("pop",12,13,16,21);\r
 aWE("popup",12);\r
 aWE("port",15);\r
 aWE("portkill",15);\r
-aWE("position",16,17,18,27);\r
+aWE("position",24,16,17,18);\r
 aWE("positive",16);\r
-aWE("possibiliti",27);\r
-aWE("possibility",1,14,15,18,19,27);\r
-aWE("possibl",1,14,23,16,17,21,27);\r
-aWE("post",9,11,24,27);\r
-aWE("powerful",10);\r
-aWE("pr",9,11);\r
+aWE("possibility",3,0,14,15,25,19);\r
+aWE("possibl",3,0,14,16,17,25,21);\r
+aWE("post",3,10,11,24,16,17);\r
+aWE("powerful",2);\r
+aWE("pr",10,11);\r
 aWE("precision",23);\r
 aWE("precompil",14);\r
-aWE("predefin",1,14,18);\r
+aWE("predefin",3,14,25);\r
 aWE("preferabl",15);\r
-aWE("preferenc",0,23,24,18,25,26,21,27);\r
+aWE("preferenc",1,23,24,25,18,26,21);\r
 aWE("prefix",14);\r
 aWE("preinstal",14);\r
 aWE("preliminary",14);\r
 aWE("prerequisit",14);\r
-aWE("pres",14,18);\r
+aWE("pres",14,24,18);\r
+aWE("preselect",23);\r
 aWE("preselection",23);\r
-aWE("present",23);\r
-aWE("presentation",3,23,16,18);\r
+aWE("present",23,24);\r
+aWE("presentation",5,23,24,16,18);\r
+aWE("prevent",24);\r
+aWE("preview",25);\r
 aWE("previou",14,13);\r
 aWE("previous",14,11,13,17);\r
+aWE("primitiv",24);\r
 aWE("print",14,15);\r
 aWE("print_env",14);\r
-aWE("priority",9);\r
-aWE("pro",24,27);\r
-aWE("probab",3);\r
-aWE("problem",14,9);\r
-aWE("proce",8,14);\r
-aWE("procedur",14,15,18);\r
-aWE("proces",1,14,9,10,11,22);\r
-aWE("processor",1,9);\r
-aWE("product",14,9,15);\r
+aWE("priority",10);\r
+aWE("pro",3,11,24,16,17);\r
+aWE("probab",5);\r
+aWE("problem",0,14,10);\r
+aWE("proce",9,14);\r
+aWE("procedur",14,15);\r
+aWE("proces",3,0,14,10,2,11,24,22);\r
+aWE("processor",3,10);\r
+aWE("produc",24);\r
+aWE("product",14,10,15);\r
 aWE("product_context",14);\r
 aWE("product_description",14);\r
 aWE("product_nam",14);\r
 aWE("product_script_nam",14);\r
 aWE("product_version",14);\r
-aWE("productivity",1);\r
+aWE("productivity",3,0);\r
 aWE("products_directory",14);\r
 aWE("profil",15);\r
-aWE("program",1,14);\r
-aWE("programmatic",9);\r
-aWE("progres",14);\r
-aWE("prompt",14,15,27);\r
+aWE("program",3,14);\r
+aWE("programmatic",10);\r
+aWE("progres",14,24);\r
+aWE("progressiv",24);\r
+aWE("prompt",14,15);\r
+aWE("pron",0);\r
 aWE("prop",14);\r
 aWE("proper",14);\r
-aWE("properti",7,9,11,18);\r
-aWE("propos",14,10);\r
-aWE("provid",1,6,14,9,10,11,24,15,19,20,22,27);\r
-aWE("pur",1);\r
-aWE("purpos",8,21);\r
+aWE("properti",8,10,11,24,18);\r
+aWE("propos",14,2);\r
+aWE("provid",3,7,14,10,2,11,24,15,25,19,20,22);\r
+aWE("publish",0,17);\r
+aWE("pur",3);\r
+aWE("purpos",9,21);\r
 aWE("py",15);\r
 aWE("pyqt",14);\r
 aWE("pyqtdir",14);\r
-aWE("python",1,14,9,10,15,16,17,18);\r
+aWE("pyramid",24);\r
+aWE("python",3,6,0,14,10,2,15,16,17,18);\r
 aWE("pythonhom",14);\r
 aWE("qglobal",14);\r
 aWE("qm",14);\r
 aWE("qt",14);\r
 aWE("qt_version_str",14);\r
 aWE("qtdir",14);\r
-aWE("quality",9,23);\r
-aWE("quantiti",9);\r
+aWE("quality",10,23,24);\r
+aWE("quantiti",10);\r
 aWE("question",14);\r
 aWE("quick",14,18,21);\r
-aWE("quit",14,17);\r
+aWE("quit",0,14,17,26);\r
 aWE("quot",14);\r
 aWE("qwt",14);\r
 aWE("qwthom",14);\r
 aWE("radio",14);\r
+aWE("rainbow",24);\r
 aWE("rang",11,24);\r
-aWE("rapid",1);\r
-aWE("re",12);\r
-aWE("reactivity",9);\r
-aWE("read",14,9,12);\r
+aWE("rapid",3);\r
+aWE("rat",24);\r
+aWE("rath",0);\r
+aWE("ratio",24);\r
+aWE("re",0,12);\r
+aWE("reactivity",10);\r
+aWE("read",14,10,12);\r
 aWE("readm",14);\r
-aWE("realiz",8);\r
-aWE("receiv",25);\r
-aWE("recommend",14);\r
-aWE("record",7);\r
+aWE("real",24);\r
+aWE("realiz",9);\r
+aWE("reassign",24);\r
+aWE("receiv",26);\r
+aWE("recommend",14,24);\r
+aWE("record",8,24);\r
 aWE("red",21);\r
 aWE("redirection",15);\r
-aWE("redo",6);\r
-aWE("reduc",9);\r
-aWE("ref",18,25);\r
+aWE("redo",7);\r
+aWE("reduc",10);\r
+aWE("ref",18,26);\r
 aWE("refer",14);\r
-aWE("referenc",2,12,18,21);\r
-aWE("refin",9);\r
+aWE("referenc",4,12,24,18,21);\r
+aWE("refin",10,24);\r
 aWE("refresh",22);\r
 aWE("refreshment",22);\r
-aWE("registry",10,22);\r
+aWE("regim",24);\r
+aWE("registry",2,22);\r
 aWE("reinstal",14);\r
 aWE("reinstall",14);\r
 aWE("reinstallation",14);\r
 aWE("relat",12,20);\r
-aWE("relativ",14);\r
+aWE("relativ",14,23,18);\r
 aWE("releas",14);\r
 aWE("relevant",12);\r
-aWE("reliability",9);\r
+aWE("reliability",10);\r
 aWE("reload",17);\r
-aWE("relocat",4);\r
-aWE("remain",1);\r
-aWE("remot",3,27);\r
+aWE("relocat",16);\r
+aWE("remain",3);\r
+aWE("remot",5);\r
 aWE("remov",14,18);\r
+aWE("renam",17);\r
+aWE("render",24);\r
+aWE("reopen",18);\r
 aWE("repeat",24);\r
-aWE("represent",1,8,9,11,20,27);\r
-aWE("representation",5,11,23,24,18,27);\r
-aWE("requir",14,9,13,17);\r
-aWE("requirement",1,9,15);\r
-aWE("reset",14,27);\r
-aWE("resiz",16,27);\r
-aWE("resourc",14,10);\r
-aWE("respectiv",25);\r
-aWE("respond",1);\r
+aWE("represent",3,9,10,11,20);\r
+aWE("representation",6,11,24,18);\r
+aWE("representativ",24);\r
+aWE("requir",14,10,13,24,17);\r
+aWE("requirement",3,10,15);\r
+aWE("reset",14);\r
+aWE("resolution",24);\r
+aWE("resolv",0);\r
+aWE("resourc",14,2,24);\r
+aWE("respectiv",24,26);\r
+aWE("respective",24);\r
+aWE("respond",3);\r
 aWE("responsibl",14);\r
-aWE("restor",9,25);\r
-aWE("result",5,8,9,17);\r
-aWE("retroactiv",25);\r
-aWE("return",27);\r
-aWE("reus",1);\r
-aWE("reusabl",9);\r
-aWE("reveal",27);\r
-aWE("right",14,12,13,16,17,18,20,21);\r
-aWE("risk",9);\r
-aWE("robustnes",9);\r
-aWE("rol",1);\r
+aWE("rest",18);\r
+aWE("restor",10,17,18,26);\r
+aWE("result",9,10,24);\r
+aWE("retroactiv",26);\r
+aWE("reus",3);\r
+aWE("reusabl",10);\r
+aWE("reversib",0,24);\r
+aWE("right",6,14,12,13,24,16,17,25,18,20,21);\r
+aWE("risk",10);\r
+aWE("robustnes",10);\r
+aWE("rol",3);\r
 aWE("root",14);\r
-aWE("rotat",27);\r
-aWE("rotation",27);\r
+aWE("rotat",24);\r
+aWE("rotation",24);\r
 aWE("rul",14);\r
-aWE("run",1,14,15,19,22);\r
-aWE("runic",18);\r
+aWE("run",3,14,15,19,22);\r
+aWE("runic",25);\r
 aWE("runinstall",14);\r
 aWE("runsalom",15,19);\r
 aWE("runsalomewithport",19);\r
-aWE("s",1,14,12);\r
-aWE("saf",10);\r
-aWE("salom",1,2,3,5,4,6,8,14,9,10,11,12,13,15,16,17,18,25,19,20,21,22,27);\r
+aWE("s",3,14,12);\r
+aWE("saf",2);\r
+aWE("salom",3,4,5,6,0,7,9,14,10,2,11,12,13,24,15,16,17,18,26,19,20,21,22);\r
 aWE("salome_modulecatalog_serv",19);\r
-aWE("sam",5,12,16,17,18,19,22);\r
-aWE("sav",1,14,9,10,16,17,18,25,27);\r
-aWE("scal",1,24,18,27);\r
+aWE("salomed",0);\r
+aWE("sam",6,12,24,16,17,19,22);\r
+aWE("sampl",25);\r
+aWE("sav",3,0,14,10,2,16,17,18,26);\r
+aWE("scal",3,24,18);\r
 aWE("scalar",23,24);\r
-aWE("scen",27);\r
-aWE("schem",1,14,9);\r
-aWE("schema",9);\r
-aWE("scientific",1);\r
-aWE("screen",5);\r
-aWE("script",1,14,15,18,19);\r
-aWE("scroll",7);\r
-aWE("se",3,5,0,7,14,13,17,18,19,21,27);\r
-aWE("search",2,14,13,17,20);\r
-aWE("second",14);\r
+aWE("schem",3,14,10);\r
+aWE("schema",10);\r
+aWE("scientific",3);\r
+aWE("screen",6);\r
+aWE("script",3,0,14,15,25,19);\r
+aWE("scroll",8);\r
+aWE("se",6,8,14,13,17,18,19,21);\r
+aWE("search",4,14,13,17,20);\r
+aWE("second",0,14,24);\r
 aWE("section",14,16,18);\r
 aWE("sectionthi",14);\r
 aWE("sed",14);\r
-aWE("select",3,5,0,7,14,23,13,17,18,20,27);\r
+aWE("seen",23);\r
+aWE("select",5,6,0,1,8,14,23,13,24,17,25,18,20);\r
 aWE("selectall",16);\r
-aWE("selection",10,23,18);\r
+aWE("selection",2,23,24);\r
 aWE("send",14);\r
-aWE("sensitiv",4,16,21);\r
-aWE("separat",1,14,16);\r
-aWE("serv",1,19);\r
-aWE("server",1,15);\r
-aWE("servic",1,14,19);\r
-aWE("session",0,23,13,24,17,18,25,21,22);\r
-aWE("set",2,0,7,14,9,23,24,15,16,17,18,25,21,22);\r
-aWE("setting",0,14,23,24,16,17,18,25,27);\r
-aWE("sever",9);\r
+aWE("sensitiv",16,21);\r
+aWE("separat",3,14,24,16);\r
+aWE("serv",3,19);\r
+aWE("server",3,15);\r
+aWE("servic",3,14,19);\r
+aWE("session",1,23,13,24,17,18,26,21,22);\r
+aWE("set",4,0,1,8,14,10,23,24,15,16,17,18,26,21,22);\r
+aWE("setting",14,24,16,17,18,26);\r
+aWE("sever",10);\r
 aWE("sh",14);\r
-aWE("shad",0,23);\r
-aWE("shap",27);\r
-aWE("shell",14,10,11,15);\r
+aWE("shad",1,23,24);\r
+aWE("shap",24);\r
+aWE("shell",14,2,11,15);\r
 aWE("short",14,20);\r
-aWE("shot",5);\r
-aWE("should",8,14,17,19);\r
-aWE("show",14,21,27);\r
-aWE("shown",7,14);\r
+aWE("shot",6);\r
+aWE("should",9,14,17,19);\r
+aWE("show",14,21);\r
+aWE("shown",8,14);\r
 aWE("shrink",23);\r
-aWE("signal",14,10);\r
+aWE("sid",23,24);\r
+aWE("signal",14,2);\r
 aWE("signatur",14);\r
 aWE("sigterm",14);\r
-aWE("simp",18);\r
-aWE("simpl",1);\r
+aWE("simpl",3);\r
 aWE("simplify",14);\r
-aWE("simulat",1);\r
-aWE("simulation",9,11);\r
-aWE("simultaneous",5,8,14);\r
-aWE("sinc",14,10);\r
+aWE("simulat",3);\r
+aWE("simulation",10,11);\r
+aWE("simultaneous",6,9,14);\r
+aWE("sinc",14,2);\r
 aWE("singl",14);\r
 aWE("sip",14);\r
 aWE("sipdir",14);\r
-aWE("situation",1);\r
-aWE("siz",5,23,24,16,17,18);\r
+aWE("situation",3);\r
+aWE("siz",6,23,24,16,17,25,18);\r
 aWE("skip",14);\r
 aWE("slight",14);\r
-aWE("small",17);\r
-aWE("smesh",1,4,27);\r
+aWE("slow",24);\r
+aWE("smallest",24);\r
 aWE("smooth",18);\r
-aWE("so",1,6,14,15,25,20,21);\r
-aWE("softwar",1,9,11);\r
-aWE("solution",9);\r
-aWE("solv",9);\r
-aWE("solver",9,11);\r
+aWE("smoothnes",24);\r
+aWE("so",3,7,14,24,15,26,20,21);\r
+aWE("softwar",3,10,11);\r
+aWE("solution",10);\r
+aWE("solv",10);\r
+aWE("solver",10,11);\r
 aWE("someth",14);\r
 aWE("sort",18,21);\r
 aWE("sort_path",14);\r
-aWE("sourc",14,9,11,15);\r
-aWE("spac",14);\r
-aWE("special",1,14,13,15,16,17,25);\r
-aWE("specializ",27);\r
-aWE("specifi",1);\r
-aWE("specific",1,4,9,15,16,25,20);\r
+aWE("sourc",14,10,11,15);\r
+aWE("spac",14,23,24);\r
+aWE("spacemous",24);\r
+aWE("spe",24);\r
+aWE("special",3,14,13,24,15,16,17,18,26);\r
+aWE("specifi",3,24);\r
+aWE("specific",3,0,10,15,16,26,20);\r
 aWE("specification",11);\r
-aWE("specify",17,18,19,27);\r
-aWE("spin",0);\r
+aWE("specify",17,18,19);\r
+aWE("spher",24);\r
+aWE("spin",1);\r
 aWE("splin",18);\r
-aWE("split",5);\r
-aWE("standalon",10);\r
-aWE("standard",1,3,14,10,13,16,17,19);\r
+aWE("split",6);\r
+aWE("sprit",24);\r
+aWE("stamp",24);\r
+aWE("standalon",2);\r
+aWE("standard",3,5,14,2,13,24,16,17,19);\r
 aWE("standard_version",14);\r
-aWE("start",1,5,8,14,16,18,19,22);\r
-aWE("stat",14);\r
-aWE("station",1);\r
+aWE("start",6,9,14,16,18,19,22);\r
+aWE("stat",0,14,17,18);\r
+aWE("station",3);\r
 aWE("statu",14);\r
-aWE("step",0,14,9,24);\r
+aWE("step",1,14,10,24);\r
 aWE("still",14);\r
-aWE("stor",1,14,13,17,19);\r
+aWE("stor",3,0,14,13,17,18,19);\r
 aWE("str",14);\r
 aWE("strict",14);\r
 aWE("strong",14);\r
-aWE("structur",1,14,9,10,13,21);\r
-aWE("structural",9);\r
-aWE("studi",3,5,6,8,9,10,13,16,17);\r
-aWE("study",1,3,5,6,7,8,9,10,13,16,17,18,25,19,21,22);\r
-aWE("study1",3);\r
-aWE("styl",18);\r
-aWE("sub",14,20,27);\r
-aWE("submenu",3,4,18);\r
-aWE("subset",18);\r
+aWE("struck",25);\r
+aWE("structur",3,14,10,2,13,21);\r
+aWE("structural",10);\r
+aWE("studi",5,6,7,9,10,2,13,16,17);\r
+aWE("study",3,5,6,0,7,8,9,10,2,13,24,16,17,18,26,19,21,22);\r
+aWE("study1",5);\r
+aWE("styl",25,18);\r
+aWE("sub",14,20);\r
+aWE("submenu",5,16,18);\r
+aWE("subset",25);\r
+aWE("substitut",24);\r
 aWE("successful",14);\r
-aWE("suit",10);\r
+aWE("suit",2);\r
 aWE("summariz",14);\r
+aWE("superposition",24);\r
 aWE("superv",15);\r
-aWE("supervision",10,11,15,19);\r
-aWE("supervisor",26);\r
+aWE("supervision",2,15,19);\r
+aWE("supervisor",11,18,19);\r
 aWE("supplementary",21,22);\r
-aWE("support",14,9,19);\r
+aWE("support",14,10,19);\r
 aWE("supported_installation_mod",14);\r
 aWE("suppos",14);\r
 aWE("sur",14);\r
+aWE("surfac",23);\r
 aWE("sweep",24);\r
 aWE("swig",14);\r
-aWE("switch",5,14,10);\r
-aWE("system",1,2,14,9,12,20);\r
-aWE("t",6,14,15,16,17,18,19,27);\r
-aWE("tab",5,20,22);\r
-aWE("tabl",14,18);\r
+aWE("switch",6,14,2,24);\r
+aWE("system",3,4,14,10,12,24,20);\r
+aWE("t",7,14,24,15,16,17,18,19);\r
+aWE("tab",6,20,22);\r
+aWE("tabl",14,25);\r
 aWE("tag",14);\r
-aWE("tailor",9);\r
-aWE("tak",1,14);\r
+aWE("tailor",10);\r
+aWE("tak",3,14);\r
 aWE("taken",14,15);\r
 aWE("target",14);\r
 aWE("target_directory",14);\r
 aWE("target_platform",14);\r
 aWE("targetdir",14);\r
+aWE("task",0);\r
 aWE("tcl",14);\r
 aWE("tclhom",14);\r
 aWE("tclsh8",14);\r
-aWE("technologi",1);\r
-aWE("technological",9);\r
-aWE("technology",1);\r
+aWE("technologi",3);\r
+aWE("technological",10);\r
+aWE("technology",3);\r
 aWE("temp",14);\r
 aWE("temp_directory",14);\r
 aWE("temp_fold",14);\r
 aWE("tempdir",14);\r
 aWE("temporary",14);\r
 aWE("temporarydiskspac",14);\r
-aWE("term",9,12,20);\r
+aWE("tensor",24);\r
+aWE("term",10,12,20);\r
 aWE("terminal",14,15);\r
-aWE("test",1,14,19);\r
-aWE("text",14,12,26,20);\r
-aWE("them",1,5,14,9,15,16,22,27);\r
+aWE("test",3,14,19);\r
+aWE("text",14,12,20);\r
+aWE("textur",24);\r
+aWE("them",3,6,14,10,23,15,16,25,22);\r
 aWE("therefor",14);\r
 aWE("third",11);\r
 aWE("thos",14,18,20);\r
 aWE("thre",14);\r
-aWE("thu",1);\r
-aWE("tim",1,5,7,14,9,24,15,25,19,22);\r
-aWE("titl",14,23,24);\r
+aWE("threshold",24);\r
+aWE("thu",3,0);\r
+aWE("tim",3,6,0,8,14,10,24,15,17,26,19,22);\r
+aWE("titl",14,23,24,18);\r
 aWE("tk",14);\r
 aWE("tmp",14);\r
 aWE("tmp_disk_spac",14);\r
 aWE("togeth",14);\r
 aWE("toggl",23,24,21);\r
-aWE("tool",1,14,10,11,16,19,22);\r
-aWE("toolbar",1,3,4,6,10,13,16,17,27);\r
-aWE("toolkit",10,27);\r
-aWE("top",3,4,14,10,18);\r
-aWE("topic",2,12,26,20);\r
+aWE("toleranc",24);\r
+aWE("tool",3,14,2,11,16,19,22);\r
+aWE("toolbar",3,5,7,2,13,16,17);\r
+aWE("toolkit",2);\r
+aWE("top",5,14,2,24,16,18);\r
+aWE("topic",4,12,20);\r
 aWE("topmost",14);\r
 aWE("total",14);\r
-aWE("totality",1);\r
+aWE("totality",3);\r
+aWE("touch",0);\r
 aWE("tr",14);\r
-aWE("train",9);\r
-aWE("tre",3,14,18,19,21);\r
+aWE("train",10);\r
+aWE("translat",24);\r
+aWE("translation",24);\r
+aWE("transparency",24);\r
+aWE("transparent",24);\r
+aWE("tre",5,14,18,19,21);\r
 aWE("tri",14);\r
-aWE("trihedron",18,27);\r
+aWE("trihedron",18);\r
 aWE("trolltech",14);\r
 aWE("tru",14);\r
-aWE("try",7,14,17,19);\r
+aWE("try",8,14,17,19);\r
 aWE("try_exist",14);\r
 aWE("try_nativ",14);\r
 aWE("try_preinstal",14);\r
-aWE("two",5,14,12,17,19);\r
-aWE("typ",14,23,24,18,26,19);\r
+aWE("twic",24);\r
+aWE("two",6,14,12,24,17,19);\r
+aWE("typ",0,14,23,24,25,18,19);\r
 aWE("typical",19);\r
 aWE("u",18);\r
-aWE("ultimat",1);\r
-aWE("undo",6,18);\r
+aWE("ultimat",3);\r
+aWE("uncheck",24,16);\r
+aWE("underlin",25);\r
+aWE("undo",7,18);\r
 aWE("undon",18);\r
-aWE("unfortunate",14,27);\r
-aWE("uniqu",14,27);\r
-aWE("unix",2);\r
+aWE("unfortunate",14);\r
+aWE("uniqu",14);\r
+aWE("unit",24);\r
+aWE("unix",4);\r
 aWE("unload",13,17);\r
-aWE("unmark",4);\r
 aWE("unnecessary",14);\r
 aWE("unselect",14);\r
-aWE("up",14,9,12,13,16,17,18,21);\r
-aWE("updat",23,16,17,19);\r
-aWE("upload",4,10,16);\r
-aWE("us",1,6,0,7,8,14,9,10,11,23,24,15,16,17,18,25,19,20,21,22,27);\r
-aWE("usability",10);\r
-aWE("usag",14);\r
-aWE("usecas",10);\r
-aWE("useful",27);\r
-aWE("user",7,19,27);\r
+aWE("unus",0);\r
+aWE("up",14,10,12,13,16,17,25,21);\r
+aWE("updat",23,24,16,17,19);\r
+aWE("upload",2,16);\r
+aWE("us",3,0,1,8,9,14,10,2,11,23,24,15,16,17,25,18,26,19,20,21,22);\r
+aWE("usability",2);\r
+aWE("usag",14,24);\r
+aWE("user",8,19);\r
 aWE("usr",14);\r
 aWE("usual",14);\r
-aWE("utiliti",2);\r
+aWE("utiliti",4);\r
 aWE("v",14,18);\r
 aWE("valid",18);\r
-aWE("validation",1);\r
-aWE("valu",0,14,23,18,21);\r
+aWE("validation",3);\r
+aWE("valu",1,14,23,24,18,21);\r
 aWE("variabl",14,15);\r
 aWE("varibl",14);\r
-aWE("variety",2,12);\r
+aWE("variety",4,12);\r
 aWE("variou",14,11);\r
 aWE("ve",14,18);\r
+aWE("vector",24);\r
 aWE("ver",14);\r
 aWE("ver_major",14);\r
 aWE("ver_minor",14);\r
-aWE("verbal",27);\r
-aWE("version",1,5,14,10,16,19);\r
-aWE("vertical",5,23,24,18,27);\r
-aWE("very",14,9,10,16);\r
-aWE("via",27);\r
-aWE("view",1,3,4,7,14,10,23,12,16,18,20,22,27);\r
-aWE("viewer",3,5,10,11,16,18,27);\r
-aWE("visibl",27);\r
-aWE("visu",1,4,6,11);\r
+aWE("version",6,14,2,16,19);\r
+aWE("vertical",6,23,24,18);\r
+aWE("very",14,10,2,24,16);\r
+aWE("view",3,5,8,14,2,23,12,24,16,18,20,22);\r
+aWE("viewer",5,6,2,11,16,17,18);\r
 aWE("visual",11);\r
-aWE("visualiz",9,27);\r
-aWE("visualization",8,9,10,11,16,27);\r
-aWE("vtk",3,5,14,10,18,27);\r
+aWE("visualisation",1,24);\r
+aWE("visualiz",10,24);\r
+aWE("visualization",9,10,2,11,16);\r
+aWE("vtk",5,6,14,2,18);\r
 aWE("vtkhom",14);\r
 aWE("wait",14);\r
-aWE("want",5,14,12);\r
-aWE("warn",7,14);\r
+aWE("want",6,14,12);\r
+aWE("warn",8,14,24);\r
 aWE("way",14,11,19);\r
-aWE("web",2);\r
-aWE("welcom",2,9);\r
-aWE("well",16);\r
-aWE("what",1,14,9,12,25,21);\r
-aWE("whenev",23);\r
-aWE("wherev",5);\r
+aWE("web",4);\r
+aWE("welcom",4,10);\r
+aWE("what",3,14,10,12,26,21);\r
+aWE("whenev",23,18);\r
+aWE("wherev",6);\r
 aWE("wheth",14);\r
-aWE("whil",1);\r
-aWE("whol",24,16,17,18,25);\r
-aWE("wid",2,11,27);\r
+aWE("whil",3);\r
+aWE("whol",24,18,26);\r
+aWE("whos",23);\r
+aWE("wid",4,11,25);\r
 aWE("widget",11);\r
-aWE("width",23);\r
-aWE("will",2,3,4,7,14,23,13,24,15,16,17,18,25,19,21,22);\r
-aWE("window",2,3,5,4,8,14,10,12,15,16,17,18,22);\r
-aWE("wirefram",0,23);\r
-aWE("wish",5,27);\r
+aWE("width",23,24);\r
+aWE("will",4,5,0,8,14,23,13,24,15,16,17,25,18,26,19,21,22);\r
+aWE("window",4,5,6,9,14,2,12,24,15,16,17,25,18,22);\r
+aWE("wirefram",1,23);\r
+aWE("wish",6);\r
 aWE("wish8",14);\r
-aWE("within",1,3,6,22);\r
-aWE("without",1,14,15);\r
+aWE("within",3,5,7,22);\r
+aWE("without",3,0,14,24,15,26);\r
 aWE("wizard",14);\r
-aWE("won",6,14,15);\r
+aWE("won",7,14,15);\r
 aWE("word",20);\r
-aWE("work",1,5,8,14,16,17,27);\r
-aWE("would",4,14,17,19);\r
-aWE("writ",9,17);\r
-aWE("written",1,17);\r
+aWE("work",3,6,0,9,14,11,24,16,17);\r
+aWE("would",14,16,17,19);\r
+aWE("writ",10,17);\r
+aWE("written",3,17);\r
 aWE("wrong",14);\r
-aWE("www",1);\r
-aWE("x",15);\r
+aWE("www",3);\r
+aWE("x",23,24,15);\r
 aWE("xml",14,15,19);\r
 aWE("xterm",15);\r
 aWE("xxxxx",14);\r
-aWE("y",14);\r
-aWE("year",9);\r
-aWE("yes",7,14);\r
+aWE("y",14,23,24);\r
+aWE("year",10);\r
+aWE("yes",8,14);\r
 aWE("yet",14,18);\r
-aWE("your",3,5,6,7,14,23,24,15,16,17,18,19,27);\r
-aWE("yourselv",18);\r
-aWE("zon",3,5);\r
+aWE("your",5,6,0,7,8,14,23,24,15,17,18,19);\r
+aWE("yourselv",25);\r
+aWE("zon",5,6,24);\r
+aWE("zoom",24,17);\r
 \r
 //-->\r
 </script>\r
index d41a28b3dc8d6cff1e69640c39c28ecf6c76f496..a037edb04a998875594b5e17127f70be29de0b64 100755 (executable)
    aTE(2,0,"Installing SALOME","kernel/readme.html");\r
    aTE(2,0,"Running SALOME","kernel/running_salome_pro.htm");\r
  aTE(1,21,"GUI module");\r
-   aTE(2,0,"Introduction to GUI","kernel/introduction_to_iapp.htm");\r
+   aTE(2,0,"Introduction to GUI","introduction_to_gui.htm");\r
    aTE(2,0,"Getting started","kernel/getting_started2.htm");\r
    aTE(2,0,"SALOME desktop","kernel/salome_pro_desktop.htm");\r
-   aTE(2,0,"Viewers","viewers.htm");\r
-   aTE(2,0,"Displaying/hiding toolbars","kernel/displaying_hiding_toolbars.htm");\r
-   aTE(1,6,"Study management");\r
+   aTE(1,7,"Study management");\r
      aTE(2,0,"Creating a new study","kernel/creating_a_new_study.htm");\r
      aTE(2,0,"Opening studies","kernel/opening_studies.htm");\r
      aTE(2,0,"Saving and closing studies","kernel/saving_a_study.htm");\r
      aTE(2,0,"Editing studies","kernel/editing_studies.htm");\r
      aTE(2,0,"Displaying studies","kernel/displaying_studies.htm");\r
-     aTE(2,0,"Getting and setting study properties","kernel/getting_properties_of_the_study.htm");\r
+     aTE(2,0,"Working with Python Scripts","dump_study.htm");\r
+     aTE(2,0,"Setting study properties","kernel/getting_properties_of_the_study.htm");\r
    aTE(2,0,"Using Object Browser","kernel/using_object_browser.htm");\r
    aTE(2,0,"Using Registry tool","kernel/using_registry.htm");\r
    aTE(2,0,"Using Catalog Generator","kernel/using_catalog_generator.htm");\r
-   aTE(1,5,"Setting Preferences");\r
+   aTE(1,6,"Setting Preferences");\r
      aTE(2,0,"Setting Preferences","setting_preferences.htm");\r
+     aTE(2,0,"Select Color and Font","select_color_and_font.htm");\r
      aTE(2,0,"SALOME preferences","kernel/setting_preferences.htm");\r
-     aTE(2,0,"GEOM preferences","geom_preferences.htm");\r
-     aTE(2,0,"MESH preferences","mesh_preferences.htm");\r
+     aTE(2,0,"Geometry preferences","geom_preferences.htm");\r
+     aTE(2,0,"Mesh preferences","mesh_preferences.htm");\r
      aTE(2,0,"Post-Pro Preferences","post-pro_preferences.htm");\r
 \r
 //-->\r
index d4ef2afa3dce0ba394dfe43d5e03388a73087a41..9f66cfaaeedfaafc9db05b6aaf6a78c980fc5a20 100755 (executable)
@@ -34,13 +34,11 @@ A:hover {color:Navy; } A:hover {font-family:Tahoma; } A:hover {font-size:8pt; }
 <p class="ftsbody" >\r
 \r
 \r
-<a name="bm_{"></a><a name="subkey_{{"></a><a href="../kernel/readme.html"><b>__version__</b></a> <br><a name="bms_{O"></a><a name="subkey_{O"></a><a href="../kernel/readme.html"><b>_omnipymodule</b></a> <br><nobr><a name="bms_{D"></a><a name="subkey_{D"></a>2d <a href="../kernel/introduction_to_iapp.htm"><b>1</b></a> <a href="../kernel/introduction.htm"><b>2</b></a> <a href="../kernel/displaying_studies.htm"><b>3</b></a> <a href="../viewers.htm"><b>4</b></a> </nobr><br><nobr>3d <a href="../kernel/introduction_to_iapp.htm"><b>1</b></a> <a href="../kernel/introduction.htm"><b>2</b></a> <a href="../viewers.htm"><b>3</b></a> <a href="../kernel/setting_preferences.htm"><b>4</b></a> </nobr><br>\r
+<a name="bm_{"></a><a name="subkey_{{"></a><a href="../kernel/readme.html"><b>__version__</b></a> <br><a name="bms_{O"></a><a name="subkey_{O"></a><a href="../kernel/readme.html"><b>_omnipymodule</b></a> <br><a name="bms_{{"></a><a name="subkey_{{"></a><a href="../post-pro_preferences.htm"><b>16x16</b></a> <br><nobr><a name="bms_{D"></a><a name="subkey_{D"></a>2d <a href="../kernel/introduction.htm"><b>1</b></a> <a href="../kernel/displaying_studies.htm"><b>2</b></a> <a href="../introduction_to_gui.htm"><b>3</b></a> <a href="../post-pro_preferences.htm"><b>4</b></a> </nobr><br><nobr>3d <a href="../kernel/introduction.htm"><b>1</b></a> <a href="../introduction_to_gui.htm"><b>2</b></a> <a href="../post-pro_preferences.htm"><b>3</b></a> <a href="../kernel/setting_preferences.htm"><b>4</b></a> </nobr><br>\r
 <br><br>\r
-<nobr><a name="bm_A"></a><a name="subkey_AB"></a>able <a href="../kernel/readme.html"><b>1</b></a> <a href="../kernel/displaying_studies.htm"><b>2</b></a> <a href="../kernel/about_salome_pro_architecture.htm"><b>3</b></a> <a href="../viewers.htm"><b>4</b></a> <a href="../kernel/setting_preferences.htm"><b>5</b></a> </nobr><br><a href="../kernel/readme.html"><b>abort</b></a> <br><nobr>above <a href="../kernel/readme.html"><b>1</b></a> <a href="../kernel/getting_properties_of_the_study.htm"><b>2</b></a> </nobr><br><a href="../kernel/creating_a_new_study.htm"><b>abstraction</b></a> <br><nobr><a name="bms_AC"></a><a name="subkey_AC"></a>access <a href="../kernel/about_salome_pro_architecture.htm"><b>1</b></a> <a href="../viewers.htm"><b>2</b></a> <a href="../kernel/using_object_browser.htm"><b>3</b></a> <a href="../kernel/setting_preferences.htm"><b>4</b></a> <a href="../kernel/salome_pro_desktop.htm"><b>5</b></a> </nobr><br><nobr>accessible <a href="../kernel/introduction.htm"><b>1</b></a> <a href="../setting_preferences.htm"><b>2</b></a> </nobr><br><a href="../kernel/readme.html"><b>accidentally</b></a> <br><nobr>according <a href="../kernel/running_salome_pro.htm"><b>1</b></a> <a href="../kernel/readme.html"><b>2</b></a> <a href="../kernel/using_object_browser.htm"><b>3</b></a> <a href="../kernel/salome_pro_desktop.htm"><b>4</b></a> </nobr><br><a href="../kernel/readme.html"><b>account</b></a> <br><a href="../kernel/about_salome_pro_architecture.htm"><b>achieved</b></a> <br><a href="../kernel/about_salome_pro_architecture.htm"><b>achieves</b></a> <br><a href="../kernel/about_salome_pro_help_system.htm"><b>acquainted</b></a> <br><a href="../kernel/setting_preferences.htm"><b>actions</b></a> <br><nobr>activated <a href="../kernel/creating_a_new_study.htm"><b>1</b></a> <a href="../kernel/saving_a_study.htm"><b>2</b></a> <a href="../kernel/salome_pro_desktop.htm"><b>3</b></a> </nobr><br><nobr>active <a href="../kernel/displaying_studies.htm"><b>1</b></a> <a href="../kernel/creating_a_new_study.htm"><b>2</b></a> <a href="../kernel/saving_a_study.htm"><b>3</b></a> <a href="../kernel/salome_pro_desktop.htm"><b>4</b></a> </nobr><br><a href="../kernel/creating_a_new_study.htm"><b>actual</b></a> <br><nobr>actually <a href="../kernel/editing_studies.htm"><b>1</b></a> <a href="../kernel/about_salome_pro_architecture.htm"><b>2</b></a> </nobr><br><a name="bms_AD"></a><a name="subkey_AD"></a><a href="../kernel/about_salome_pro_architecture.htm"><b>adapted</b></a> <br><nobr>add <a href="../kernel/running_salome_pro.htm"><b>1</b></a> <a href="../kernel/readme.html"><b>2</b></a> <a href="../kernel/displaying_hiding_toolbars.htm"><b>3</b></a> <a href="../kernel/using_catalog_generator.htm"><b>4</b></a> <a href="../kernel/setting_preferences.htm"><b>5</b></a> </nobr><br><a href="../kernel/setting_preferences.htm"><b>added</b></a> <br><a href="../kernel/using_catalog_generator.htm"><b>adding</b></a> <br><nobr>addition <a href="../kernel/readme.html"><b>1</b></a> <a href="../kernel/creating_a_new_study.htm"><b>2</b></a> </nobr><br><nobr>additional <a href="../kernel/readme.html"><b>1</b></a> <a href="../kernel/introduction_to_iapp.htm"><b>2</b></a> <a href="../kernel/editing_studies.htm"><b>3</b></a> <a href="../kernel/displaying_hiding_toolbars.htm"><b>4</b></a> <a href="../kernel/about_salome_pro_architecture.htm"><b>5</b></a> <a href="../kernel/using_object_browser.htm"><b>6</b></a> </nobr><br><a href="../kernel/setting_preferences.htm"><b>adjust</b></a> <br><nobr>advanced <a href="../kernel/readme.html"><b>1</b></a> <a href="../viewers.htm"><b>2</b></a> <a href="../kernel/using_catalog_generator.htm"><b>3</b></a> </nobr><br><a name="bms_AF"></a><a name="subkey_AF"></a><a href="../kernel/about_salome_pro_architecture.htm"><b>affecting</b></a> <br><nobr><a name="bms_AG"></a><a name="subkey_AG"></a>again <a href="../kernel/readme.html"><b>1</b></a> <a href="../kernel/navigating_topics.htm"><b>2</b></a> <a href="../kernel/saving_a_study.htm"><b>3</b></a> </nobr><br><a name="bms_AI"></a><a name="subkey_AI"></a><a href="../viewers.htm"><b>aims</b></a> <br><a name="bms_AL"></a><a name="subkey_AL"></a><a href="../kernel/readme.html"><b>algorithm</b></a> <br><nobr>algorithms <a href="../kernel/introduction_to_salome_pro.htm"><b>1</b></a> <a href="../kernel/about_salome_pro_architecture.htm"><b>2</b></a> </nobr><br><nobr>allow <a href="../kernel/readme.html"><b>1</b></a> <a href="../geom_preferences.htm"><b>2</b></a> </nobr><br><nobr>allowing <a href="../kernel/running_salome_pro.htm"><b>1</b></a> <a href="../kernel/editing_studies.htm"><b>2</b></a> <a href="../kernel/salome_pro_desktop.htm"><b>3</b></a> </nobr><br><nobr>allows <a href="../kernel/readme.html"><b>1</b></a> <a href="../kernel/introduction_to_salome_pro.htm"><b>2</b></a> <a href="../kernel/about_salome_pro_architecture.htm"><b>3</b></a> <a href="../kernel/using_registry.htm"><b>4</b></a> <a href="../kernel/using_catalog_generator.htm"><b>5</b></a> <a href="../kernel/setting_preferences.htm"><b>6</b></a> <a href="../kernel/saving_a_study.htm"><b>7</b></a> </nobr><br><nobr>along <a href="../kernel/introduction_to_salome_pro.htm"><b>1</b></a> <a href="../kernel/setting_preferences.htm"><b>2</b></a> </nobr><br><a href="../kernel/using_catalog_generator.htm"><b>alongside</b></a> <br><a href="../kernel/readme.html"><b>already</b></a> <br><a href="../kernel/introduction_to_salome_pro.htm"><b>always</b></a> <br><a name="bms_AM"></a><a name="subkey_AM"></a><a href="../kernel/readme.html"><b>amount</b></a> <br><a name="bms_AN"></a><a name="subkey_AN"></a><a href="../post-pro_preferences.htm"><b>animation</b></a> <br><a href="../kernel/readme.html"><b>annoying</b></a> <br><nobr>another <a href="../kernel/about_salome_pro_architecture.htm"><b>1</b></a> <a href="../kernel/saving_a_study.htm"><b>2</b></a> </nobr><br><a href="../kernel/readme.html"><b>answer</b></a> <br><nobr>any <a href="../kernel/running_salome_pro.htm"><b>1</b></a> <a href="../kernel/readme.html"><b>2</b></a> <a href="../kernel/navigating_topics.htm"><b>3</b></a> <a href="../kernel/introduction_to_salome_pro.htm"><b>4</b></a> <a href="../kernel/getting_properties_of_the_study.htm"><b>5</b></a> <a href="../kernel/displaying_studies.htm"><b>6</b></a> <a href="../kernel/displaying_hiding_toolbars.htm"><b>7</b></a> <a href="../kernel/about_salome_pro_help_system.htm"><b>8</b></a> <a href="../kernel/about_salome_pro_architecture.htm"><b>9</b></a> </nobr><br><a href="../kernel/readme.html"><b>anything</b></a> <br><nobr><a name="bms_AP"></a><a name="subkey_AP"></a>appear <a href="../kernel/readme.html"><b>1</b></a> <a href="../kernel/getting_properties_of_the_study.htm"><b>2</b></a> <a href="../kernel/using_registry.htm"><b>3</b></a> <a href="../kernel/using_catalog_generator.htm"><b>4</b></a> <a href="../kernel/setting_preferences.htm"><b>5</b></a> </nobr><br><nobr>appears <a href="../kernel/readme.html"><b>1</b></a> <a href="../kernel/getting_started2.htm"><b>2</b></a> </nobr><br><a href="../kernel/about_salome_pro_help_system.htm"><b>applets</b></a> <br><nobr>application <a href="../kernel/running_salome_pro.htm"><b>1</b></a> <a href="../kernel/introduction_to_iapp.htm"><b>2</b></a> <a href="../kernel/introduction.htm"><b>3</b></a> <a href="../kernel/displaying_studies.htm"><b>4</b></a> <a href="../kernel/about_salome_pro_architecture.htm"><b>5</b></a> <a href="../setting_preferences.htm"><b>6</b></a> <a href="../kernel/using_object_browser.htm"><b>7</b></a> <a href="../kernel/using_catalog_generator.htm"><b>8</b></a> <a href="../kernel/setting_preferences.htm"><b>9</b></a> <a href="../kernel/saving_a_study.htm"><b>10</b></a> <a href="../kernel/salome_pro_desktop.htm"><b>11</b></a> </nobr><br><nobr>applications <a href="../kernel/running_salome_pro.htm"><b>1</b></a> <a href="../kernel/about_salome_pro_architecture.htm"><b>2</b></a> </nobr><br><a href="../kernel/setting_preferences.htm"><b>applies</b></a> <br><nobr>apply <a href="../setting_preferences.htm"><b>1</b></a> <a href="../kernel/using_object_browser.htm"><b>2</b></a> </nobr><br><nobr>approach <a href="../kernel/readme.html"><b>1</b></a> <a href="../kernel/introduction_to_salome_pro.htm"><b>2</b></a> <a href="../kernel/salome_pro_desktop.htm"><b>3</b></a> </nobr><br><nobr>appropriate <a href="../kernel/readme.html"><b>1</b></a> <a href="../kernel/introduction.htm"><b>2</b></a> </nobr><br><a href="../kernel/readme.html"><b>approximate</b></a> <br><a name="bms_AR"></a><a name="subkey_AR"></a><a href="../kernel/setting_preferences.htm"><b>arabic</b></a> <br><nobr>architecture <a href="../kernel/introduction.htm"><b>1</b></a> <a href="../kernel/about_salome_pro_architecture.htm"><b>2</b></a> </nobr><br><a href="../kernel/about_salome_pro_architecture.htm"><b>architectures</b></a> <br><nobr>area <a href="../kernel/displaying_studies.htm"><b>1</b></a> <a href="../viewers.htm"><b>2</b></a> </nobr><br><nobr>areas <a href="../kernel/displaying_studies.htm"><b>1</b></a> <a href="../kernel/salome_pro_desktop.htm"><b>2</b></a> </nobr><br><a href="../kernel/readme.html"><b>argument</b></a> <br><a href="../kernel/readme.html"><b>arguments</b></a> <br><a href="../kernel/using_object_browser.htm"><b>arrow</b></a> <br><a name="bms_AS"></a><a name="subkey_AS"></a><a href="../kernel/using_object_browser.htm"><b>ascending</b></a> <br><nobr>ascii <a href="../kernel/setting_preferences.htm"><b>1</b></a> <a href="../kernel/saving_a_study.htm"><b>2</b></a> </nobr><br><a href="../kernel/readme.html"><b>ask</b></a> <br><nobr>associated <a href="../kernel/opening_studies.htm"><b>1</b></a> <a href="../kernel/using_object_browser.htm"><b>2</b></a> </nobr><br><a name="bms_AT"></a><a name="subkey_AT"></a><a href="../kernel/introduction.htm"><b>attached</b></a> <br><a href="../kernel/using_object_browser.htm"><b>attribute</b></a> <br><a href="../kernel/using_object_browser.htm"><b>attributes</b></a> <br><nobr><a name="bms_AU"></a><a name="subkey_AU"></a>author <a href="../kernel/getting_properties_of_the_study.htm"><b>1</b></a> <a href="../kernel/using_catalog_generator.htm"><b>2</b></a> </nobr><br><nobr>auto <a href="../kernel/readme.html"><b>1</b></a> <a href="../kernel/setting_preferences.htm"><b>2</b></a> </nobr><br><a href="../mesh_preferences.htm"><b>automatic</b></a> <br><nobr>automatically <a href="../kernel/running_salome_pro.htm"><b>1</b></a> <a href="../kernel/readme.html"><b>2</b></a> <a href="../kernel/opening_studies.htm"><b>3</b></a> <a href="../kernel/displaying_hiding_toolbars.htm"><b>4</b></a> <a href="../setting_preferences.htm"><b>5</b></a> <a href="../mesh_preferences.htm"><b>6</b></a> <a href="../kernel/saving_a_study.htm"><b>7</b></a> </nobr><br><a name="bms_AV"></a><a name="subkey_AV"></a><a href="../kernel/editing_studies.htm"><b>availability</b></a> <br><nobr>available <a href="../kernel/readme.html"><b>1</b></a> <a href="../kernel/introduction.htm"><b>2</b></a> <a href="../kernel/editing_studies.htm"><b>3</b></a> <a href="../kernel/creating_a_new_study.htm"><b>4</b></a> <a href="../kernel/about_salome_pro_architecture.htm"><b>5</b></a> <a href="../viewers.htm"><b>6</b></a> </nobr><br><a href="../kernel/readme.html"><b>avoid</b></a> <br><a name="bms_AW"></a><a name="subkey_AW"></a><a href="../kernel/readme.html"><b>aware</b></a> <br><a href="../kernel/readme.html"><b>awk</b></a> <br><nobr><a name="bms_AX"></a><a name="subkey_AX"></a>axes <a href="../viewers.htm"><b>1</b></a> <a href="../kernel/setting_preferences.htm"><b>2</b></a> </nobr><br><nobr>axis <a href="../viewers.htm"><b>1</b></a> <a href="../kernel/setting_preferences.htm"><b>2</b></a> </nobr><br>\r
+<nobr><a name="bm_A"></a><a name="subkey_AB"></a>able <a href="../kernel/readme.html"><b>1</b></a> <a href="../kernel/displaying_studies.htm"><b>2</b></a> <a href="../kernel/about_salome_pro_architecture.htm"><b>3</b></a> <a href="../kernel/setting_preferences.htm"><b>4</b></a> </nobr><br><a href="../kernel/readme.html"><b>abort</b></a> <br><nobr>above <a href="../kernel/readme.html"><b>1</b></a> <a href="../kernel/getting_properties_of_the_study.htm"><b>2</b></a> </nobr><br><nobr>abscissa <a href="../post-pro_preferences.htm"><b>1</b></a> <a href="../mesh_preferences.htm"><b>2</b></a> </nobr><br><a href="../post-pro_preferences.htm"><b>absolute</b></a> <br><a href="../kernel/creating_a_new_study.htm"><b>abstraction</b></a> <br><a name="bms_AC"></a><a name="subkey_AC"></a><a href="../post-pro_preferences.htm"><b>acceptable</b></a> <br><nobr>access <a href="../kernel/about_salome_pro_architecture.htm"><b>1</b></a> <a href="../geom_preferences.htm"><b>2</b></a> <a href="../post-pro_preferences.htm"><b>3</b></a> <a href="../mesh_preferences.htm"><b>4</b></a> <a href="../kernel/using_object_browser.htm"><b>5</b></a> <a href="../kernel/setting_preferences.htm"><b>6</b></a> <a href="../kernel/salome_pro_desktop.htm"><b>7</b></a> </nobr><br><nobr>accessible <a href="../kernel/introduction.htm"><b>1</b></a> <a href="../setting_preferences.htm"><b>2</b></a> </nobr><br><a href="../kernel/readme.html"><b>accidentally</b></a> <br><nobr>according <a href="../kernel/running_salome_pro.htm"><b>1</b></a> <a href="../kernel/readme.html"><b>2</b></a> <a href="../post-pro_preferences.htm"><b>3</b></a> <a href="../kernel/using_object_browser.htm"><b>4</b></a> <a href="../kernel/salome_pro_desktop.htm"><b>5</b></a> </nobr><br><a href="../kernel/readme.html"><b>account</b></a> <br><a href="../kernel/about_salome_pro_architecture.htm"><b>achieved</b></a> <br><a href="../kernel/about_salome_pro_architecture.htm"><b>achieves</b></a> <br><a href="../kernel/about_salome_pro_help_system.htm"><b>acquainted</b></a> <br><nobr>actions <a href="../post-pro_preferences.htm"><b>1</b></a> <a href="../kernel/setting_preferences.htm"><b>2</b></a> </nobr><br><nobr>activated <a href="../kernel/creating_a_new_study.htm"><b>1</b></a> <a href="../kernel/saving_a_study.htm"><b>2</b></a> <a href="../kernel/salome_pro_desktop.htm"><b>3</b></a> </nobr><br><nobr>active <a href="../kernel/displaying_studies.htm"><b>1</b></a> <a href="../kernel/creating_a_new_study.htm"><b>2</b></a> <a href="../post-pro_preferences.htm"><b>3</b></a> <a href="../kernel/saving_a_study.htm"><b>4</b></a> <a href="../kernel/salome_pro_desktop.htm"><b>5</b></a> </nobr><br><a href="../post-pro_preferences.htm"><b>activity</b></a> <br><a href="../kernel/creating_a_new_study.htm"><b>actual</b></a> <br><a href="../kernel/editing_studies.htm"><b>actually</b></a> <br><a name="bms_AD"></a><a name="subkey_AD"></a><a href="../kernel/about_salome_pro_architecture.htm"><b>adapted</b></a> <br><nobr>add <a href="../kernel/running_salome_pro.htm"><b>1</b></a> <a href="../kernel/readme.html"><b>2</b></a> <a href="../select_color_and_font.htm"><b>3</b></a> <a href="../kernel/using_catalog_generator.htm"><b>4</b></a> <a href="../kernel/setting_preferences.htm"><b>5</b></a> <a href="../kernel/salome_pro_desktop.htm"><b>6</b></a> </nobr><br><a href="../select_color_and_font.htm"><b>added</b></a> <br><a href="../kernel/using_catalog_generator.htm"><b>adding</b></a> <br><nobr>addition <a href="../kernel/readme.html"><b>1</b></a> <a href="../kernel/creating_a_new_study.htm"><b>2</b></a> </nobr><br><nobr>additional <a href="../kernel/readme.html"><b>1</b></a> <a href="../kernel/editing_studies.htm"><b>2</b></a> <a href="../kernel/about_salome_pro_architecture.htm"><b>3</b></a> <a href="../introduction_to_gui.htm"><b>4</b></a> <a href="../post-pro_preferences.htm"><b>5</b></a> <a href="../kernel/using_object_browser.htm"><b>6</b></a> <a href="../kernel/salome_pro_desktop.htm"><b>7</b></a> </nobr><br><a href="../post-pro_preferences.htm"><b>addressing</b></a> <br><a href="../dump_study.htm"><b>adds</b></a> <br><a href="../post-pro_preferences.htm"><b>adjust</b></a> <br><nobr>advanced <a href="../kernel/readme.html"><b>1</b></a> <a href="../kernel/using_catalog_generator.htm"><b>2</b></a> </nobr><br><a name="bms_AF"></a><a name="subkey_AF"></a><a href="../kernel/about_salome_pro_architecture.htm"><b>affecting</b></a> <br><nobr><a name="bms_AG"></a><a name="subkey_AG"></a>again <a href="../kernel/readme.html"><b>1</b></a> <a href="../kernel/navigating_topics.htm"><b>2</b></a> <a href="../kernel/displaying_studies.htm"><b>3</b></a> <a href="../kernel/saving_a_study.htm"><b>4</b></a> </nobr><br><a name="bms_AL"></a><a name="subkey_AL"></a><a href="../kernel/readme.html"><b>algorithm</b></a> <br><nobr>algorithms <a href="../kernel/introduction_to_salome_pro.htm"><b>1</b></a> <a href="../kernel/about_salome_pro_architecture.htm"><b>2</b></a> </nobr><br><nobr>allow <a href="../kernel/readme.html"><b>1</b></a> <a href="../post-pro_preferences.htm"><b>2</b></a> </nobr><br><nobr>allowing <a href="../kernel/running_salome_pro.htm"><b>1</b></a> <a href="../kernel/introduction_to_salome_pro.htm"><b>2</b></a> <a href="../kernel/editing_studies.htm"><b>3</b></a> <a href="../dump_study.htm"><b>4</b></a> <a href="../kernel/salome_pro_desktop.htm"><b>5</b></a> </nobr><br><nobr>allows <a href="../kernel/readme.html"><b>1</b></a> <a href="../kernel/introduction_to_salome_pro.htm"><b>2</b></a> <a href="../kernel/about_salome_pro_architecture.htm"><b>3</b></a> <a href="../geom_preferences.htm"><b>4</b></a> <a href="../select_color_and_font.htm"><b>5</b></a> <a href="../post-pro_preferences.htm"><b>6</b></a> <a href="../mesh_preferences.htm"><b>7</b></a> <a href="../kernel/using_registry.htm"><b>8</b></a> <a href="../kernel/using_catalog_generator.htm"><b>9</b></a> <a href="../kernel/setting_preferences.htm"><b>10</b></a> <a href="../kernel/saving_a_study.htm"><b>11</b></a> </nobr><br><a href="../kernel/saving_a_study.htm"><b>almost</b></a> <br><nobr>along <a href="../kernel/introduction_to_salome_pro.htm"><b>1</b></a> <a href="../kernel/setting_preferences.htm"><b>2</b></a> </nobr><br><a href="../kernel/using_catalog_generator.htm"><b>alongside</b></a> <br><a href="../post-pro_preferences.htm"><b>alpha</b></a> <br><a href="../kernel/readme.html"><b>already</b></a> <br><a href="../kernel/introduction_to_salome_pro.htm"><b>always</b></a> <br><a name="bms_AM"></a><a name="subkey_AM"></a><a href="../kernel/readme.html"><b>amount</b></a> <br><a name="bms_AN"></a><a name="subkey_AN"></a><a href="../post-pro_preferences.htm"><b>animation</b></a> <br><a href="../kernel/readme.html"><b>annoying</b></a> <br><nobr>another <a href="../kernel/about_salome_pro_architecture.htm"><b>1</b></a> <a href="../kernel/saving_a_study.htm"><b>2</b></a> </nobr><br><a href="../kernel/readme.html"><b>answer</b></a> <br><nobr>any <a href="../kernel/running_salome_pro.htm"><b>1</b></a> <a href="../kernel/readme.html"><b>2</b></a> <a href="../kernel/navigating_topics.htm"><b>3</b></a> <a href="../kernel/introduction_to_salome_pro.htm"><b>4</b></a> <a href="../kernel/getting_properties_of_the_study.htm"><b>5</b></a> <a href="../kernel/displaying_studies.htm"><b>6</b></a> <a href="../kernel/about_salome_pro_help_system.htm"><b>7</b></a> <a href="../kernel/about_salome_pro_architecture.htm"><b>8</b></a> <a href="../setting_preferences.htm"><b>9</b></a> <a href="../post-pro_preferences.htm"><b>10</b></a> <a href="../kernel/saving_a_study.htm"><b>11</b></a> <a href="../kernel/salome_pro_desktop.htm"><b>12</b></a> </nobr><br><a href="../kernel/readme.html"><b>anything</b></a> <br><nobr><a name="bms_AP"></a><a name="subkey_AP"></a>api <a href="../dump_study.htm"><b>1</b></a> <a href="../post-pro_preferences.htm"><b>2</b></a> </nobr><br><nobr>appear <a href="../kernel/readme.html"><b>1</b></a> <a href="../kernel/getting_properties_of_the_study.htm"><b>2</b></a> <a href="../dump_study.htm"><b>3</b></a> <a href="../kernel/using_registry.htm"><b>4</b></a> <a href="../kernel/using_catalog_generator.htm"><b>5</b></a> <a href="../kernel/setting_preferences.htm"><b>6</b></a> </nobr><br><a href="../mesh_preferences.htm"><b>appearance</b></a> <br><nobr>appears <a href="../kernel/readme.html"><b>1</b></a> <a href="../kernel/getting_started2.htm"><b>2</b></a> </nobr><br><a href="../kernel/about_salome_pro_help_system.htm"><b>applets</b></a> <br><nobr>application <a href="../kernel/running_salome_pro.htm"><b>1</b></a> <a href="../kernel/introduction.htm"><b>2</b></a> <a href="../kernel/displaying_studies.htm"><b>3</b></a> <a href="../kernel/about_salome_pro_architecture.htm"><b>4</b></a> <a href="../introduction_to_gui.htm"><b>5</b></a> <a href="../dump_study.htm"><b>6</b></a> <a href="../setting_preferences.htm"><b>7</b></a> <a href="../kernel/using_object_browser.htm"><b>8</b></a> <a href="../kernel/using_catalog_generator.htm"><b>9</b></a> <a href="../kernel/setting_preferences.htm"><b>10</b></a> <a href="../kernel/saving_a_study.htm"><b>11</b></a> <a href="../kernel/salome_pro_desktop.htm"><b>12</b></a> </nobr><br><nobr>applications <a href="../kernel/running_salome_pro.htm"><b>1</b></a> <a href="../kernel/about_salome_pro_architecture.htm"><b>2</b></a> </nobr><br><nobr>apply <a href="../setting_preferences.htm"><b>1</b></a> <a href="../kernel/using_object_browser.htm"><b>2</b></a> </nobr><br><nobr>approach <a href="../kernel/readme.html"><b>1</b></a> <a href="../kernel/introduction_to_salome_pro.htm"><b>2</b></a> <a href="../kernel/salome_pro_desktop.htm"><b>3</b></a> </nobr><br><nobr>appropriate <a href="../kernel/readme.html"><b>1</b></a> <a href="../kernel/introduction.htm"><b>2</b></a> </nobr><br><a href="../kernel/readme.html"><b>approximate</b></a> <br><a name="bms_AR"></a><a name="subkey_AR"></a><a href="../select_color_and_font.htm"><b>arabic</b></a> <br><nobr>architecture <a href="../kernel/introduction.htm"><b>1</b></a> <a href="../kernel/about_salome_pro_architecture.htm"><b>2</b></a> <a href="../dump_study.htm"><b>3</b></a> </nobr><br><a href="../kernel/about_salome_pro_architecture.htm"><b>architectures</b></a> <br><nobr>area <a href="../kernel/displaying_studies.htm"><b>1</b></a> <a href="../kernel/setting_preferences.htm"><b>2</b></a> </nobr><br><nobr>areas <a href="../kernel/displaying_studies.htm"><b>1</b></a> <a href="../kernel/salome_pro_desktop.htm"><b>2</b></a> </nobr><br><a href="../kernel/readme.html"><b>argument</b></a> <br><a href="../kernel/readme.html"><b>arguments</b></a> <br><a href="../post-pro_preferences.htm"><b>arrange</b></a> <br><a href="../kernel/using_object_browser.htm"><b>arrow</b></a> <br><a name="bms_AS"></a><a name="subkey_AS"></a><a href="../kernel/using_object_browser.htm"><b>ascending</b></a> <br><nobr>ascii <a href="../kernel/setting_preferences.htm"><b>1</b></a> <a href="../kernel/saving_a_study.htm"><b>2</b></a> </nobr><br><a href="../kernel/readme.html"><b>ask</b></a> <br><a href="../post-pro_preferences.htm"><b>assigned</b></a> <br><nobr>associated <a href="../kernel/opening_studies.htm"><b>1</b></a> <a href="../post-pro_preferences.htm"><b>2</b></a> <a href="../kernel/using_object_browser.htm"><b>3</b></a> </nobr><br><a name="bms_AT"></a><a name="subkey_AT"></a><a href="../kernel/introduction.htm"><b>attached</b></a> <br><a href="../kernel/using_object_browser.htm"><b>attribute</b></a> <br><a href="../kernel/using_object_browser.htm"><b>attributes</b></a> <br><nobr><a name="bms_AU"></a><a name="subkey_AU"></a>author <a href="../kernel/getting_properties_of_the_study.htm"><b>1</b></a> <a href="../kernel/using_catalog_generator.htm"><b>2</b></a> </nobr><br><nobr>auto <a href="../kernel/readme.html"><b>1</b></a> <a href="../kernel/setting_preferences.htm"><b>2</b></a> </nobr><br><a href="../mesh_preferences.htm"><b>automatic</b></a> <br><nobr>automatically <a href="../kernel/running_salome_pro.htm"><b>1</b></a> <a href="../kernel/readme.html"><b>2</b></a> <a href="../kernel/opening_studies.htm"><b>3</b></a> <a href="../dump_study.htm"><b>4</b></a> <a href="../setting_preferences.htm"><b>5</b></a> <a href="../post-pro_preferences.htm"><b>6</b></a> <a href="../mesh_preferences.htm"><b>7</b></a> <a href="../kernel/saving_a_study.htm"><b>8</b></a> <a href="../kernel/salome_pro_desktop.htm"><b>9</b></a> </nobr><br><a name="bms_AV"></a><a name="subkey_AV"></a><a href="../kernel/editing_studies.htm"><b>availability</b></a> <br><nobr>available <a href="../kernel/readme.html"><b>1</b></a> <a href="../kernel/introduction.htm"><b>2</b></a> <a href="../kernel/editing_studies.htm"><b>3</b></a> <a href="../kernel/creating_a_new_study.htm"><b>4</b></a> <a href="../kernel/about_salome_pro_architecture.htm"><b>5</b></a> </nobr><br><a href="../post-pro_preferences.htm"><b>average</b></a> <br><a href="../post-pro_preferences.htm"><b>avi</b></a> <br><a href="../kernel/readme.html"><b>avoid</b></a> <br><a href="../dump_study.htm"><b>avoiding</b></a> <br><a name="bms_AW"></a><a name="subkey_AW"></a><a href="../kernel/readme.html"><b>aware</b></a> <br><a href="../kernel/readme.html"><b>awk</b></a> <br><a name="bms_AX"></a><a name="subkey_AX"></a><a href="../kernel/setting_preferences.htm"><b>axes</b></a> <br><a href="../kernel/setting_preferences.htm"><b>axis</b></a> <br>\r
 <br><br>\r
-<a name="bm_B"></a><a name="subkey_B{"></a><a href="../kernel/readme.html"><b>b</b></a> <br><nobr><a name="bms_BA"></a><a name="subkey_BA"></a>back <a href="../kernel/readme.html"><b>1</b></a> <a href="../mesh_preferences.htm"><b>2</b></a> </nobr><br><a href="../kernel/setting_preferences.htm"><b>background</b></a> <br><nobr>bar <a href="../post-pro_preferences.htm"><b>1</b></a> <a href="../mesh_preferences.htm"><b>2</b></a> <a href="../kernel/using_object_browser.htm"><b>3</b></a> </nobr><br><a href="../kernel/saving_a_study.htm"><b>base</b></a> <br><nobr>based <a href="../kernel/introduction_to_iapp.htm"><b>1</b></a> <a href="../kernel/introduction.htm"><b>2</b></a> <a href="../kernel/about_salome_pro_architecture.htm"><b>3</b></a> </nobr><br><a href="../kernel/readme.html"><b>bash</b></a> <br><nobr>basic <a href="../kernel/readme.html"><b>1</b></a> <a href="../kernel/introduction_to_salome_pro.htm"><b>2</b></a> <a href="../kernel/about_salome_pro_architecture.htm"><b>3</b></a> <a href="../kernel/setting_preferences.htm"><b>4</b></a> <a href="../kernel/salome_pro_desktop.htm"><b>5</b></a> </nobr><br><a href="../kernel/about_salome_pro_architecture.htm"><b>basis</b></a> <br><nobr>batch <a href="../kernel/running_salome_pro.htm"><b>1</b></a> <a href="../kernel/readme.html"><b>2</b></a> <a href="../kernel/about_salome_pro_architecture.htm"><b>3</b></a> </nobr><br><a name="bms_BE"></a><a name="subkey_BE"></a><a href="../kernel/displaying_studies.htm"><b>becomes</b></a> <br><a href="../kernel/readme.html"><b>before</b></a> <br><a href="../kernel/setting_preferences.htm"><b>begin</b></a> <br><a href="../kernel/using_registry.htm"><b>begins</b></a> <br><a href="../kernel/about_salome_pro_architecture.htm"><b>behave</b></a> <br><a href="../kernel/introduction.htm"><b>behavior</b></a> <br><a href="../kernel/readme.html"><b>being</b></a> <br><nobr>below <a href="../kernel/readme.html"><b>1</b></a> <a href="../kernel/navigating_topics.htm"><b>2</b></a> </nobr><br><nobr><a name="bms_BI"></a><a name="subkey_BI"></a>bin <a href="../kernel/running_salome_pro.htm"><b>1</b></a> <a href="../kernel/readme.html"><b>2</b></a> <a href="../kernel/using_catalog_generator.htm"><b>3</b></a> </nobr><br><a href="../kernel/readme.html"><b>binaries</b></a> <br><nobr>binary <a href="../kernel/readme.html"><b>1</b></a> <a href="../kernel/saving_a_study.htm"><b>2</b></a> </nobr><br><a name="bms_BL"></a><a name="subkey_BL"></a><a href="../kernel/readme.html"><b>blue</b></a> <br><a href="../kernel/about_salome_pro_architecture.htm"><b>blur</b></a> <br><a name="bms_BM"></a><a name="subkey_BM"></a><a href="../viewers.htm"><b>bmp</b></a> <br><a name="bms_BO"></a><a name="subkey_BO"></a><a href="../kernel/readme.html"><b>bold</b></a> <br><a href="../kernel/using_left-hand_tabs.htm"><b>book</b></a> <br><a href="../kernel/using_left-hand_tabs.htm"><b>books</b></a> <br><a href="../kernel/readme.html"><b>boost</b></a> <br><a href="../kernel/readme.html"><b>boost_version</b></a> <br><a href="../kernel/readme.html"><b>boostdir</b></a> <br><a href="../kernel/salome_pro_desktop.htm"><b>borders</b></a> <br><nobr>both <a href="../kernel/introduction_to_iapp.htm"><b>1</b></a> <a href="../viewers.htm"><b>2</b></a> <a href="../mesh_preferences.htm"><b>3</b></a> </nobr><br><nobr>bottom <a href="../kernel/introduction.htm"><b>1</b></a> <a href="../kernel/setting_preferences.htm"><b>2</b></a> </nobr><br><nobr>box <a href="../kernel/readme.html"><b>1</b></a> <a href="../kernel/opening_studies.htm"><b>2</b></a> <a href="../kernel/getting_properties_of_the_study.htm"><b>3</b></a> <a href="../geom_preferences.htm"><b>4</b></a> <a href="../mesh_preferences.htm"><b>5</b></a> <a href="../kernel/using_registry.htm"><b>6</b></a> <a href="../kernel/using_catalog_generator.htm"><b>7</b></a> <a href="../kernel/setting_preferences.htm"><b>8</b></a> <a href="../kernel/saving_a_study.htm"><b>9</b></a> </nobr><br><a href="../geom_preferences.htm"><b>boxes</b></a> <br><a name="bms_BR"></a><a name="subkey_BR"></a><a href="../kernel/readme.html"><b>brackets</b></a> <br><nobr>brief <a href="../kernel/readme.html"><b>1</b></a> <a href="../kernel/navigating_topics.htm"><b>2</b></a> <a href="../kernel/displaying_studies.htm"><b>3</b></a> </nobr><br><a href="../kernel/introduction_to_iapp.htm"><b>bringing</b></a> <br><nobr>browse <a href="../kernel/readme.html"><b>1</b></a> <a href="../kernel/using_catalog_generator.htm"><b>2</b></a> <a href="../kernel/setting_preferences.htm"><b>3</b></a> </nobr><br><nobr>browser <a href="../kernel/opening_studies.htm"><b>1</b></a> <a href="../kernel/introduction_to_iapp.htm"><b>2</b></a> <a href="../kernel/creating_a_new_study.htm"><b>3</b></a> <a href="../kernel/about_salome_pro_help_system.htm"><b>4</b></a> <a href="../kernel/using_object_browser.htm"><b>5</b></a> <a href="../kernel/setting_preferences.htm"><b>6</b></a> <a href="../kernel/salome_pro_desktop.htm"><b>7</b></a> </nobr><br><a name="bms_BU"></a><a name="subkey_BU"></a><a href="../kernel/readme.html"><b>bug</b></a> <br><nobr>build <a href="../kernel/readme.html"><b>1</b></a> <a href="../kernel/using_catalog_generator.htm"><b>2</b></a> </nobr><br><a href="../kernel/readme.html"><b>building</b></a> <br><nobr>built <a href="../kernel/readme.html"><b>1</b></a> <a href="../kernel/introduction_to_salome_pro.htm"><b>2</b></a> <a href="../viewers.htm"><b>3</b></a> </nobr><br><nobr>button <a href="../kernel/readme.html"><b>1</b></a> <a href="../kernel/opening_studies.htm"><b>2</b></a> <a href="../kernel/navigating_topics.htm"><b>3</b></a> <a href="../viewers.htm"><b>4</b></a> <a href="../setting_preferences.htm"><b>5</b></a> <a href="../kernel/using_registry.htm"><b>6</b></a> <a href="../kernel/using_catalog_generator.htm"><b>7</b></a> <a href="../kernel/setting_preferences.htm"><b>8</b></a> <a href="../kernel/saving_a_study.htm"><b>9</b></a> </nobr><br><nobr>buttons <a href="../kernel/readme.html"><b>1</b></a> <a href="../kernel/navigating_topics.htm"><b>2</b></a> <a href="../kernel/introduction_to_iapp.htm"><b>3</b></a> <a href="../kernel/setting_preferences.htm"><b>4</b></a> </nobr><br>\r
-<br><br>\r
-<nobr><a name="bm_C"></a><a name="subkey_C{"></a>c <a href="../kernel/running_salome_pro.htm"><b>1</b></a> <a href="../kernel/readme.html"><b>2</b></a> <a href="../kernel/about_salome_pro_architecture.htm"><b>3</b></a> </nobr><br><nobr><a name="bms_CA"></a><a name="subkey_CA"></a>cad <a href="../kernel/introduction_to_salome_pro.htm"><b>1</b></a> <a href="../kernel/introduction.htm"><b>2</b></a> </nobr><br><a href="../kernel/introduction.htm"><b>cae</b></a> <br><a href="../kernel/introduction.htm"><b>calculation</b></a> <br><nobr>calculations <a href="../kernel/introduction_to_salome_pro.htm"><b>1</b></a> <a href="../kernel/getting_started2.htm"><b>2</b></a> </nobr><br><nobr>call <a href="../kernel/readme.html"><b>1</b></a> <a href="../kernel/using_registry.htm"><b>2</b></a> <a href="../kernel/using_catalog_generator.htm"><b>3</b></a> <a href="../kernel/saving_a_study.htm"><b>4</b></a> </nobr><br><nobr>called <a href="../kernel/readme.html"><b>1</b></a> <a href="../kernel/about_salome_pro_architecture.htm"><b>2</b></a> </nobr><br><a href="../kernel/readme.html"><b>calling</b></a> <br><a href="../viewers.htm"><b>calls</b></a> <br><a href="../kernel/about_salome_pro_architecture.htm"><b>cam</b></a> <br><a href="../kernel/readme.html"><b>cancel</b></a> <br><a href="../kernel/using_catalog_generator.htm"><b>capability</b></a> <br><a href="../kernel/readme.html"><b>caption</b></a> <br><a href="../kernel/readme.html"><b>care</b></a> <br><a href="../kernel/readme.html"><b>carefully</b></a> <br><a href="../kernel/introduction.htm"><b>carrying</b></a> <br><a href="../kernel/introduction.htm"><b>cars</b></a> <br><nobr>cascade <a href="../kernel/readme.html"><b>1</b></a> <a href="../viewers.htm"><b>2</b></a> </nobr><br><nobr>case <a href="../kernel/readme.html"><b>1</b></a> <a href="../kernel/introduction_to_salome_pro.htm"><b>2</b></a> <a href="../kernel/getting_properties_of_the_study.htm"><b>3</b></a> <a href="../kernel/about_salome_pro_architecture.htm"><b>4</b></a> <a href="../viewers.htm"><b>5</b></a> <a href="../kernel/saving_a_study.htm"><b>6</b></a> <a href="../kernel/salome_pro_desktop.htm"><b>7</b></a> </nobr><br><a href="../kernel/readme.html"><b>casroot</b></a> <br><a href="../kernel/readme.html"><b>cat</b></a> <br><a href="../kernel/using_catalog_generator.htm"><b>catalog</b></a> <br><a href="../kernel/using_catalog_generator.htm"><b>catalogmodulegeneral</b></a> <br><a href="../kernel/using_catalog_generator.htm"><b>catalogmodulepersonnel</b></a> <br><nobr>catalogue <a href="../kernel/running_salome_pro.htm"><b>1</b></a> <a href="../kernel/introduction_to_iapp.htm"><b>2</b></a> </nobr><br><a href="../kernel/using_left-hand_tabs.htm"><b>categories</b></a> <br><br><br></p><p class="ftsbody" align="center"><a href="whlstf1.htm" target="_self" title="previous search group"><b>&gt;&gt;</b></a>\r
+<a name="bm_B"></a><a name="subkey_B{"></a><a href="../kernel/readme.html"><b>b</b></a> <br><nobr><a name="bms_BA"></a><a name="subkey_BA"></a>back <a href="../kernel/readme.html"><b>1</b></a> <a href="../mesh_preferences.htm"><b>2</b></a> </nobr><br><nobr>background <a href="../post-pro_preferences.htm"><b>1</b></a> <a href="../kernel/setting_preferences.htm"><b>2</b></a> </nobr><br><nobr>bar <a href="../post-pro_preferences.htm"><b>1</b></a> <a href="../mesh_preferences.htm"><b>2</b></a> <a href="../kernel/using_object_browser.htm"><b>3</b></a> </nobr><br><nobr>bars <a href="../post-pro_preferences.htm"><b>1</b></a> <a href="../mesh_preferences.htm"><b>2</b></a> </nobr><br><a href="../kernel/saving_a_study.htm"><b>base</b></a> <br><nobr>based <a href="../kernel/introduction.htm"><b>1</b></a> <a href="../kernel/about_salome_pro_architecture.htm"><b>2</b></a> <a href="../introduction_to_gui.htm"><b>3</b></a> </nobr><br><a href="../kernel/readme.html"><b>bash</b></a> <br><nobr>basic <a href="../kernel/readme.html"><b>1</b></a> <a href="../kernel/introduction_to_salome_pro.htm"><b>2</b></a> <a href="../kernel/about_salome_pro_architecture.htm"><b>3</b></a> <a href="../select_color_and_font.htm"><b>4</b></a> <a href="../kernel/salome_pro_desktop.htm"><b>5</b></a> </nobr><br><a href="../kernel/about_salome_pro_architecture.htm"><b>basis</b></a> <br><nobr>batch <a href="../kernel/running_salome_pro.htm"><b>1</b></a> <a href="../kernel/readme.html"><b>2</b></a> <a href="../kernel/about_salome_pro_architecture.htm"><b>3</b></a> <a href="../dump_study.htm"><b>4</b></a> </nobr><br><nobr><a name="bms_BE"></a><a name="subkey_BE"></a>becomes <a href="../kernel/displaying_studies.htm"><b>1</b></a> <a href="../post-pro_preferences.htm"><b>2</b></a> </nobr><br><a href="../kernel/readme.html"><b>before</b></a> <br><a href="../kernel/setting_preferences.htm"><b>begin</b></a> <br><a href="../kernel/using_registry.htm"><b>begins</b></a> <br><a href="../kernel/about_salome_pro_architecture.htm"><b>behave</b></a> <br><a href="../kernel/introduction.htm"><b>behavior</b></a> <br><a href="../post-pro_preferences.htm"><b>behaviour</b></a> <br><a href="../kernel/readme.html"><b>being</b></a> <br><nobr>below <a href="../kernel/readme.html"><b>1</b></a> <a href="../kernel/navigating_topics.htm"><b>2</b></a> <a href="../post-pro_preferences.htm"><b>3</b></a> </nobr><br><a href="../post-pro_preferences.htm"><b>better</b></a> <br><a name="bms_BI"></a><a name="subkey_BI"></a><a href="../post-pro_preferences.htm"><b>bicolor</b></a> <br><a href="../post-pro_preferences.htm"><b>big</b></a> <br><nobr>bin <a href="../kernel/running_salome_pro.htm"><b>1</b></a> <a href="../kernel/readme.html"><b>2</b></a> <a href="../kernel/using_catalog_generator.htm"><b>3</b></a> </nobr><br><a href="../kernel/readme.html"><b>binaries</b></a> <br><nobr>binary <a href="../kernel/readme.html"><b>1</b></a> <a href="../kernel/saving_a_study.htm"><b>2</b></a> </nobr><br><a name="bms_BL"></a><a name="subkey_BL"></a><a href="../kernel/readme.html"><b>blue</b></a> <br><a href="../kernel/about_salome_pro_architecture.htm"><b>blur</b></a> <br><a name="bms_BO"></a><a name="subkey_BO"></a><a href="../kernel/readme.html"><b>bold</b></a> <br><a href="../kernel/using_left-hand_tabs.htm"><b>book</b></a> <br><a href="../kernel/using_left-hand_tabs.htm"><b>books</b></a> <br><a href="../kernel/readme.html"><b>boost</b></a> <br><a href="../kernel/readme.html"><b>boost_version</b></a> <br><a href="../kernel/readme.html"><b>boostdir</b></a> <br><nobr>borders <a href="../mesh_preferences.htm"><b>1</b></a> <a href="../kernel/salome_pro_desktop.htm"><b>2</b></a> </nobr><br><nobr>both <a href="../introduction_to_gui.htm"><b>1</b></a> <a href="../post-pro_preferences.htm"><b>2</b></a> <a href="../mesh_preferences.htm"><b>3</b></a> </nobr><br><nobr>bottom <a href="../kernel/introduction.htm"><b>1</b></a> <a href="../post-pro_preferences.htm"><b>2</b></a> <a href="../mesh_preferences.htm"><b>3</b></a> <a href="../kernel/setting_preferences.htm"><b>4</b></a> </nobr><br><nobr>box <a href="../kernel/readme.html"><b>1</b></a> <a href="../kernel/opening_studies.htm"><b>2</b></a> <a href="../kernel/getting_properties_of_the_study.htm"><b>3</b></a> <a href="../geom_preferences.htm"><b>4</b></a> <a href="../dump_study.htm"><b>5</b></a> <a href="../select_color_and_font.htm"><b>6</b></a> <a href="../post-pro_preferences.htm"><b>7</b></a> <a href="../mesh_preferences.htm"><b>8</b></a> <a href="../kernel/using_registry.htm"><b>9</b></a> <a href="../kernel/using_catalog_generator.htm"><b>10</b></a> <a href="../kernel/setting_preferences.htm"><b>11</b></a> <a href="../kernel/saving_a_study.htm"><b>12</b></a> </nobr><br><a href="../geom_preferences.htm"><b>boxes</b></a> <br><br><br></p><p class="ftsbody" align="center"><a href="whlstf1.htm" target="_self" title="previous search group"><b>&gt;&gt;</b></a>\r
 \r
 </body>\r
 \r
index b7eb501dcd750e8611bc5479852127a2b0a858e9..aee38666e98ec6fba2013391885f63b581bf3642 100755 (executable)
@@ -33,7 +33,9 @@ A:hover {color:Navy; } A:hover {font-family:Tahoma; } A:hover {font-size:8pt; }
 <body marginheight="0"  marginwidth="0" bgproperties="fixed">\r
 <p class="ftsbody" align="center"><a href="whlstf0.htm" target="_self" title="previous search group"><b>&lt;&lt;</b></a><br><br></p>\r
 <p class="ftsbody" >\r
-<a name="bms_CD"></a><a name="subkey_CD"></a><a href="../kernel/readme.html"><b>cd</b></a> <br><a name="bms_CE"></a><a name="subkey_CE"></a><a href="../kernel/setting_preferences.htm"><b>cells</b></a> <br><nobr><a name="bms_CH"></a><a name="subkey_CH"></a>change <a href="../kernel/readme.html"><b>1</b></a> <a href="../kernel/getting_properties_of_the_study.htm"><b>2</b></a> <a href="../kernel/displaying_studies.htm"><b>3</b></a> <a href="../kernel/about_salome_pro_architecture.htm"><b>4</b></a> <a href="../setting_preferences.htm"><b>5</b></a> <a href="../kernel/setting_preferences.htm"><b>6</b></a> <a href="../kernel/salome_pro_desktop.htm"><b>7</b></a> </nobr><br><a href="../setting_preferences.htm"><b>changed</b></a> <br><nobr>changes <a href="../kernel/getting_properties_of_the_study.htm"><b>1</b></a> <a href="../viewers.htm"><b>2</b></a> <a href="../mesh_preferences.htm"><b>3</b></a> <a href="../kernel/saving_a_study.htm"><b>4</b></a> </nobr><br><a href="../kernel/readme.html"><b>changing</b></a> <br><a href="../mesh_preferences.htm"><b>chapter</b></a> <br><a href="../kernel/about_salome_pro_help_system.htm"><b>chapters</b></a> <br><a href="../kernel/readme.html"><b>charge</b></a> <br><a href="../kernel/readme.html"><b>check</b></a> <br><a href="../kernel/readme.html"><b>check_version</b></a> <br><nobr>checkbox <a href="../kernel/readme.html"><b>1</b></a> <a href="../post-pro_preferences.htm"><b>2</b></a> <a href="../mesh_preferences.htm"><b>3</b></a> </nobr><br><a href="../kernel/readme.html"><b>checkboxes</b></a> <br><a href="../kernel/readme.html"><b>checked</b></a> <br><a href="../kernel/readme.html"><b>checking</b></a> <br><a href="../kernel/readme.html"><b>checks</b></a> <br><nobr>choice <a href="../kernel/readme.html"><b>1</b></a> <a href="../viewers.htm"><b>2</b></a> </nobr><br><nobr>choose <a href="../kernel/readme.html"><b>1</b></a> <a href="../kernel/opening_studies.htm"><b>2</b></a> <a href="../kernel/getting_properties_of_the_study.htm"><b>3</b></a> <a href="../kernel/editing_studies.htm"><b>4</b></a> <a href="../kernel/displaying_hiding_toolbars.htm"><b>5</b></a> <a href="../kernel/creating_a_new_study.htm"><b>6</b></a> <a href="../post-pro_preferences.htm"><b>7</b></a> <a href="../mesh_preferences.htm"><b>8</b></a> <a href="../kernel/using_registry.htm"><b>9</b></a> <a href="../kernel/using_catalog_generator.htm"><b>10</b></a> <a href="../kernel/setting_preferences.htm"><b>11</b></a> </nobr><br><nobr>chosen <a href="../post-pro_preferences.htm"><b>1</b></a> <a href="../kernel/using_catalog_generator.htm"><b>2</b></a> <a href="../kernel/setting_preferences.htm"><b>3</b></a> </nobr><br><a name="bms_CL"></a><a name="subkey_CL"></a><a href="../kernel/salome_pro_desktop.htm"><b>classic</b></a> <br><a href="../kernel/readme.html"><b>clear</b></a> <br><a href="../kernel/salome_pro_desktop.htm"><b>clearall</b></a> <br><nobr>click <a href="../kernel/readme.html"><b>1</b></a> <a href="../kernel/opening_studies.htm"><b>2</b></a> <a href="../kernel/navigating_topics.htm"><b>3</b></a> <a href="../kernel/getting_properties_of_the_study.htm"><b>4</b></a> <a href="../kernel/editing_studies.htm"><b>5</b></a> <a href="../kernel/creating_a_new_study.htm"><b>6</b></a> <a href="../viewers.htm"><b>7</b></a> <a href="../setting_preferences.htm"><b>8</b></a> <a href="../kernel/using_registry.htm"><b>9</b></a> <a href="../kernel/using_object_browser.htm"><b>10</b></a> <a href="../kernel/using_left-hand_tabs.htm"><b>11</b></a> <a href="../kernel/using_catalog_generator.htm"><b>12</b></a> <a href="../kernel/setting_preferences.htm"><b>13</b></a> <a href="../kernel/saving_a_study.htm"><b>14</b></a> <a href="../kernel/salome_pro_desktop.htm"><b>15</b></a> </nobr><br><a href="../kernel/navigating_topics.htm"><b>clickable</b></a> <br><a href="../kernel/navigating_topics.htm"><b>clicked</b></a> <br><nobr>clicking <a href="../kernel/readme.html"><b>1</b></a> <a href="../kernel/using_object_browser.htm"><b>2</b></a> </nobr><br><a href="../kernel/about_salome_pro_architecture.htm"><b>client</b></a> <br><a href="../viewers.htm"><b>clone</b></a> <br><nobr>close <a href="../kernel/readme.html"><b>1</b></a> <a href="../kernel/navigating_topics.htm"><b>2</b></a> <a href="../kernel/saving_a_study.htm"><b>3</b></a> </nobr><br><a href="../kernel/using_left-hand_tabs.htm"><b>closed</b></a> <br><nobr>closes <a href="../kernel/readme.html"><b>1</b></a> <a href="../kernel/using_left-hand_tabs.htm"><b>2</b></a> </nobr><br><nobr>closing <a href="../kernel/readme.html"><b>1</b></a> <a href="../kernel/about_salome_pro_architecture.htm"><b>2</b></a> <a href="../kernel/saving_a_study.htm"><b>3</b></a> </nobr><br><a href="../kernel/about_salome_pro_architecture.htm"><b>clusters</b></a> <br><nobr><a name="bms_CO"></a><a name="subkey_CO"></a>code <a href="../kernel/readme.html"><b>1</b></a> <a href="../kernel/about_salome_pro_architecture.htm"><b>2</b></a> </nobr><br><a href="../mesh_preferences.htm"><b>coefficient</b></a> <br><a href="../kernel/readme.html"><b>coincide</b></a> <br><a href="../kernel/readme.html"><b>collect</b></a> <br><a href="../kernel/readme.html"><b>collected</b></a> <br><a href="../kernel/readme.html"><b>collects</b></a> <br><nobr>color <a href="../geom_preferences.htm"><b>1</b></a> <a href="../post-pro_preferences.htm"><b>2</b></a> <a href="../mesh_preferences.htm"><b>3</b></a> <a href="../kernel/using_object_browser.htm"><b>4</b></a> <a href="../kernel/setting_preferences.htm"><b>5</b></a> </nobr><br><a href="../kernel/setting_preferences.htm"><b>colored</b></a> <br><nobr>colors <a href="../post-pro_preferences.htm"><b>1</b></a> <a href="../mesh_preferences.htm"><b>2</b></a> <a href="../kernel/setting_preferences.htm"><b>3</b></a> </nobr><br><a href="../kernel/using_object_browser.htm"><b>column</b></a> <br><nobr>columns <a href="../kernel/using_registry.htm"><b>1</b></a> <a href="../kernel/using_object_browser.htm"><b>2</b></a> <a href="../kernel/setting_preferences.htm"><b>3</b></a> </nobr><br><a href="../kernel/introduction_to_salome_pro.htm"><b>combines</b></a> <br><a href="../kernel/salome_pro_desktop.htm"><b>comfortable</b></a> <br><a href="../kernel/readme.html"><b>comma</b></a> <br><nobr>command <a href="../kernel/running_salome_pro.htm"><b>1</b></a> <a href="../kernel/readme.html"><b>2</b></a> </nobr><br><a href="../kernel/about_salome_pro_architecture.htm"><b>commands</b></a> <br><nobr>common <a href="../kernel/readme.html"><b>1</b></a> <a href="../kernel/introduction_to_salome_pro.htm"><b>2</b></a> <a href="../kernel/introduction_to_iapp.htm"><b>3</b></a> <a href="../viewers.htm"><b>4</b></a> <a href="../setting_preferences.htm"><b>5</b></a> <a href="../kernel/saving_a_study.htm"><b>6</b></a> <a href="../kernel/salome_pro_desktop.htm"><b>7</b></a> </nobr><br><a href="../kernel/about_salome_pro_architecture.htm"><b>compared</b></a> <br><a href="../kernel/readme.html"><b>compatible</b></a> <br><a href="../kernel/readme.html"><b>compilation</b></a> <br><a href="../kernel/readme.html"><b>compiled</b></a> <br><a href="../kernel/readme.html"><b>compiling</b></a> <br><nobr>complete <a href="../kernel/getting_properties_of_the_study.htm"><b>1</b></a> <a href="../kernel/using_registry.htm"><b>2</b></a> </nobr><br><nobr>completed <a href="../kernel/readme.html"><b>1</b></a> <a href="../kernel/using_left-hand_tabs.htm"><b>2</b></a> </nobr><br><nobr>complex <a href="../kernel/introduction.htm"><b>1</b></a> <a href="../kernel/about_salome_pro_architecture.htm"><b>2</b></a> </nobr><br><nobr>component <a href="../kernel/opening_studies.htm"><b>1</b></a> <a href="../kernel/introduction_to_salome_pro.htm"><b>2</b></a> <a href="../kernel/introduction_to_iapp.htm"><b>3</b></a> <a href="../kernel/editing_studies.htm"><b>4</b></a> <a href="../kernel/displaying_hiding_toolbars.htm"><b>5</b></a> <a href="../kernel/about_salome_pro_architecture.htm"><b>6</b></a> <a href="../post-pro_preferences.htm"><b>7</b></a> <a href="../kernel/using_registry.htm"><b>8</b></a> <a href="../kernel/using_object_browser.htm"><b>9</b></a> <a href="../kernel/using_catalog_generator.htm"><b>10</b></a> <a href="../kernel/setting_preferences.htm"><b>11</b></a> <a href="../kernel/saving_a_study.htm"><b>12</b></a> <a href="../kernel/salome_pro_desktop.htm"><b>13</b></a> </nobr><br><nobr>components <a href="../kernel/opening_studies.htm"><b>1</b></a> <a href="../kernel/navigating_topics.htm"><b>2</b></a> <a href="../kernel/introduction_to_salome_pro.htm"><b>3</b></a> <a href="../kernel/introduction_to_iapp.htm"><b>4</b></a> <a href="../kernel/introduction.htm"><b>5</b></a> <a href="../kernel/about_salome_pro_help_system.htm"><b>6</b></a> <a href="../kernel/about_salome_pro_architecture.htm"><b>7</b></a> <a href="../kernel/using_registry.htm"><b>8</b></a> <a href="../kernel/using_object_browser.htm"><b>9</b></a> <a href="../kernel/using_catalog_generator.htm"><b>10</b></a> <a href="../kernel/saving_a_study.htm"><b>11</b></a> <a href="../kernel/salome_pro_desktop.htm"><b>12</b></a> </nobr><br><a href="../post-pro_preferences.htm"><b>compose</b></a> <br><nobr>computation <a href="../kernel/introduction.htm"><b>1</b></a> <a href="../kernel/about_salome_pro_architecture.htm"><b>2</b></a> </nobr><br><a href="../kernel/introduction.htm"><b>computational</b></a> <br><a href="../kernel/introduction.htm"><b>computations</b></a> <br><nobr>computer <a href="../kernel/readme.html"><b>1</b></a> <a href="../kernel/setting_preferences.htm"><b>2</b></a> </nobr><br><nobr>concept <a href="../kernel/navigating_topics.htm"><b>1</b></a> <a href="../kernel/about_salome_pro_architecture.htm"><b>2</b></a> </nobr><br><a href="../kernel/introduction.htm"><b>concerning</b></a> <br><a href="../kernel/readme.html"><b>concerns</b></a> <br><a href="../kernel/about_salome_pro_architecture.htm"><b>conclusion</b></a> <br><a href="../kernel/readme.html"><b>config</b></a> <br><a href="../kernel/readme.html"><b>config_files</b></a> <br><a href="../kernel/readme.html"><b>config_mandrake10_1</b></a> <br><a href="../kernel/introduction_to_salome_pro.htm"><b>configurable</b></a> <br><a href="../kernel/readme.html"><b>configuration</b></a> <br><nobr>configure <a href="../kernel/readme.html"><b>1</b></a> <a href="../kernel/introduction.htm"><b>2</b></a> </nobr><br><a href="../kernel/readme.html"><b>confirm</b></a> <br><a href="../kernel/opening_studies.htm"><b>connect</b></a> <br><nobr>connected <a href="../kernel/introduction_to_salome_pro.htm"><b>1</b></a> <a href="../kernel/getting_started2.htm"><b>2</b></a> <a href="../kernel/setting_preferences.htm"><b>3</b></a> <a href="../kernel/salome_pro_desktop.htm"><b>4</b></a> </nobr><br><a href="../kernel/salome_pro_desktop.htm"><b>consists</b></a> <br><nobr>console <a href="../kernel/running_salome_pro.htm"><b>1</b></a> <a href="../kernel/introduction.htm"><b>2</b></a> <a href="../kernel/setting_preferences.htm"><b>3</b></a> <a href="../kernel/saving_a_study.htm"><b>4</b></a> <a href="../kernel/salome_pro_desktop.htm"><b>5</b></a> </nobr><br><a href="../kernel/about_salome_pro_architecture.htm"><b>constant</b></a> <br><a href="../kernel/running_salome_pro.htm"><b>constantly</b></a> <br><nobr>construction <a href="../kernel/introduction_to_salome_pro.htm"><b>1</b></a> <a href="../kernel/introduction.htm"><b>2</b></a> </nobr><br><nobr>contain <a href="../kernel/readme.html"><b>1</b></a> <a href="../kernel/opening_studies.htm"><b>2</b></a> <a href="../kernel/using_object_browser.htm"><b>3</b></a> <a href="../kernel/salome_pro_desktop.htm"><b>4</b></a> </nobr><br><a href="../kernel/salome_pro_desktop.htm"><b>container</b></a> <br><a href="../kernel/running_salome_pro.htm"><b>containers</b></a> <br><nobr>containing <a href="../kernel/readme.html"><b>1</b></a> <a href="../kernel/using_left-hand_tabs.htm"><b>2</b></a> <a href="../kernel/using_catalog_generator.htm"><b>3</b></a> </nobr><br><nobr>contains <a href="../kernel/running_salome_pro.htm"><b>1</b></a> <a href="../kernel/readme.html"><b>2</b></a> <a href="../kernel/getting_properties_of_the_study.htm"><b>3</b></a> <a href="../kernel/creating_a_new_study.htm"><b>4</b></a> <a href="../kernel/about_salome_pro_help_system.htm"><b>5</b></a> <a href="../kernel/about_salome_pro_architecture.htm"><b>6</b></a> <a href="../kernel/using_registry.htm"><b>7</b></a> <a href="../kernel/using_object_browser.htm"><b>8</b></a> <a href="../kernel/salome_pro_desktop.htm"><b>9</b></a> </nobr><br><nobr>content <a href="../kernel/readme.html"><b>1</b></a> <a href="../kernel/using_left-hand_tabs.htm"><b>2</b></a> </nobr><br><a href="../kernel/using_left-hand_tabs.htm"><b>contents</b></a> <br><nobr>context <a href="../kernel/readme.html"><b>1</b></a> <a href="../kernel/displaying_hiding_toolbars.htm"><b>2</b></a> <a href="../kernel/using_object_browser.htm"><b>3</b></a> <a href="../kernel/salome_pro_desktop.htm"><b>4</b></a> </nobr><br><a href="../kernel/readme.html"><b>continue</b></a> <br><nobr>control <a href="../kernel/readme.html"><b>1</b></a> <a href="../kernel/creating_a_new_study.htm"><b>2</b></a> <a href="../mesh_preferences.htm"><b>3</b></a> </nobr><br><a href="../mesh_preferences.htm"><b>controls</b></a> <br><nobr>convenience <a href="../viewers.htm"><b>1</b></a> <a href="../kernel/salome_pro_desktop.htm"><b>2</b></a> </nobr><br><a href="../kernel/readme.html"><b>convert</b></a> <br><a href="../kernel/introduction_to_salome_pro.htm"><b>cooperate</b></a> <br><a href="../viewers.htm"><b>coordinate</b></a> <br><a href="../kernel/setting_preferences.htm"><b>coordinates</b></a> <br><nobr>copy <a href="../kernel/readme.html"><b>1</b></a> <a href="../kernel/editing_studies.htm"><b>2</b></a> <a href="../kernel/saving_a_study.htm"><b>3</b></a> <a href="../kernel/salome_pro_desktop.htm"><b>4</b></a> </nobr><br><a href="../kernel/salome_pro_desktop.htm"><b>copying</b></a> <br><a href="../kernel/readme.html"><b>copyright</b></a> <br><nobr>corba <a href="../kernel/introduction_to_iapp.htm"><b>1</b></a> <a href="../kernel/creating_a_new_study.htm"><b>2</b></a> <a href="../kernel/about_salome_pro_architecture.htm"><b>3</b></a> </nobr><br><nobr>corner <a href="../kernel/setting_preferences.htm"><b>1</b></a> <a href="../kernel/saving_a_study.htm"><b>2</b></a> </nobr><br><a href="../kernel/salome_pro_desktop.htm"><b>correcting</b></a> <br><nobr>corresponding <a href="../kernel/running_salome_pro.htm"><b>1</b></a> <a href="../kernel/readme.html"><b>2</b></a> <a href="../kernel/opening_studies.htm"><b>3</b></a> <a href="../mesh_preferences.htm"><b>4</b></a> <a href="../kernel/using_left-hand_tabs.htm"><b>5</b></a> </nobr><br><a href="../kernel/readme.html"><b>correspondingly</b></a> <br><a href="../kernel/readme.html"><b>corresponds</b></a> <br><a href="../kernel/introduction.htm"><b>costs</b></a> <br><nobr>coupling <a href="../kernel/introduction.htm"><b>1</b></a> <a href="../kernel/about_salome_pro_architecture.htm"><b>2</b></a> </nobr><br><a name="bms_CP"></a><a name="subkey_CP"></a><a href="../kernel/running_salome_pro.htm"><b>cpp</b></a> <br><nobr><a name="bms_CR"></a><a name="subkey_CR"></a>create <a href="../kernel/running_salome_pro.htm"><b>1</b></a> <a href="../kernel/readme.html"><b>2</b></a> <a href="../kernel/introduction_to_iapp.htm"><b>3</b></a> <a href="../kernel/introduction.htm"><b>4</b></a> <a href="../kernel/getting_started2.htm"><b>5</b></a> <a href="../kernel/displaying_studies.htm"><b>6</b></a> <a href="../kernel/creating_a_new_study.htm"><b>7</b></a> <a href="../kernel/about_salome_pro_architecture.htm"><b>8</b></a> <a href="../kernel/using_catalog_generator.htm"><b>9</b></a> <a href="../kernel/setting_preferences.htm"><b>10</b></a> <a href="../kernel/saving_a_study.htm"><b>11</b></a> </nobr><br><nobr>created <a href="../kernel/running_salome_pro.htm"><b>1</b></a> <a href="../kernel/readme.html"><b>2</b></a> <a href="../kernel/opening_studies.htm"><b>3</b></a> <a href="../kernel/introduction_to_salome_pro.htm"><b>4</b></a> <a href="../kernel/introduction_to_iapp.htm"><b>5</b></a> <a href="../kernel/creating_a_new_study.htm"><b>6</b></a> <a href="../kernel/about_salome_pro_help_system.htm"><b>7</b></a> <a href="../kernel/about_salome_pro_architecture.htm"><b>8</b></a> <a href="../kernel/using_object_browser.htm"><b>9</b></a> <a href="../kernel/setting_preferences.htm"><b>10</b></a> <a href="../kernel/salome_pro_desktop.htm"><b>11</b></a> </nobr><br><a href="../kernel/readme.html"><b>creates</b></a> <br><nobr>creating <a href="../kernel/creating_a_new_study.htm"><b>1</b></a> <a href="../kernel/salome_pro_desktop.htm"><b>2</b></a> </nobr><br><nobr>creation <a href="../kernel/readme.html"><b>1</b></a> <a href="../kernel/introduction_to_iapp.htm"><b>2</b></a> <a href="../kernel/about_salome_pro_architecture.htm"><b>3</b></a> <a href="../viewers.htm"><b>4</b></a> </nobr><br><nobr>cross <a href="../kernel/navigating_topics.htm"><b>1</b></a> <a href="../kernel/saving_a_study.htm"><b>2</b></a> </nobr><br><nobr><a name="bms_CS"></a><a name="subkey_CS"></a>csh <a href="../kernel/running_salome_pro.htm"><b>1</b></a> <a href="../kernel/readme.html"><b>2</b></a> </nobr><br><a href="../kernel/running_salome_pro.htm"><b>cshell</b></a> <br><nobr><a name="bms_CU"></a><a name="subkey_CU"></a>current <a href="../kernel/running_salome_pro.htm"><b>1</b></a> <a href="../kernel/readme.html"><b>2</b></a> <a href="../kernel/getting_properties_of_the_study.htm"><b>3</b></a> <a href="../kernel/displaying_studies.htm"><b>4</b></a> <a href="../setting_preferences.htm"><b>5</b></a> <a href="../kernel/using_registry.htm"><b>6</b></a> <a href="../kernel/using_object_browser.htm"><b>7</b></a> <a href="../kernel/saving_a_study.htm"><b>8</b></a> </nobr><br><nobr>currently <a href="../kernel/readme.html"><b>1</b></a> <a href="../kernel/navigating_topics.htm"><b>2</b></a> <a href="../kernel/editing_studies.htm"><b>3</b></a> <a href="../kernel/using_registry.htm"><b>4</b></a> <a href="../kernel/using_object_browser.htm"><b>5</b></a> </nobr><br><a href="../kernel/setting_preferences.htm"><b>curve</b></a> <br><nobr>custom <a href="../kernel/introduction.htm"><b>1</b></a> <a href="../kernel/using_catalog_generator.htm"><b>2</b></a> <a href="../kernel/setting_preferences.htm"><b>3</b></a> </nobr><br><a href="../kernel/introduction.htm"><b>customer</b></a> <br><a href="../kernel/about_salome_pro_architecture.htm"><b>customization</b></a> <br><a href="../viewers.htm"><b>customizing</b></a> <br><a name="bms_CY"></a><a name="subkey_CY"></a><a href="../post-pro_preferences.htm"><b>cycles</b></a> <br><a href="../kernel/setting_preferences.htm"><b>cyrillic</b></a> <br><br><br></p><p class="ftsbody" align="center"><a href="whlstf2.htm" target="_self" title="previous search group"><b>&gt;&gt;</b></a>\r
+<a name="bms_BR"></a><a name="subkey_BR"></a><a href="../kernel/readme.html"><b>brackets</b></a> <br><a href="../kernel/introduction.htm"><b>brep</b></a> <br><nobr>brief <a href="../kernel/readme.html"><b>1</b></a> <a href="../kernel/navigating_topics.htm"><b>2</b></a> <a href="../kernel/displaying_studies.htm"><b>3</b></a> </nobr><br><a href="../introduction_to_gui.htm"><b>bringing</b></a> <br><nobr>browse <a href="../kernel/readme.html"><b>1</b></a> <a href="../dump_study.htm"><b>2</b></a> <a href="../kernel/using_catalog_generator.htm"><b>3</b></a> <a href="../kernel/setting_preferences.htm"><b>4</b></a> </nobr><br><nobr>browser <a href="../kernel/opening_studies.htm"><b>1</b></a> <a href="../kernel/displaying_studies.htm"><b>2</b></a> <a href="../kernel/creating_a_new_study.htm"><b>3</b></a> <a href="../kernel/about_salome_pro_help_system.htm"><b>4</b></a> <a href="../introduction_to_gui.htm"><b>5</b></a> <a href="../kernel/using_object_browser.htm"><b>6</b></a> <a href="../kernel/setting_preferences.htm"><b>7</b></a> <a href="../kernel/saving_a_study.htm"><b>8</b></a> <a href="../kernel/salome_pro_desktop.htm"><b>9</b></a> </nobr><br><a name="bms_BU"></a><a name="subkey_BU"></a><a href="../kernel/readme.html"><b>bug</b></a> <br><nobr>build <a href="../kernel/readme.html"><b>1</b></a> <a href="../post-pro_preferences.htm"><b>2</b></a> <a href="../kernel/using_catalog_generator.htm"><b>3</b></a> </nobr><br><a href="../kernel/readme.html"><b>building</b></a> <br><nobr>built <a href="../kernel/readme.html"><b>1</b></a> <a href="../kernel/introduction_to_salome_pro.htm"><b>2</b></a> <a href="../post-pro_preferences.htm"><b>3</b></a> </nobr><br><nobr>button <a href="../kernel/readme.html"><b>1</b></a> <a href="../kernel/opening_studies.htm"><b>2</b></a> <a href="../kernel/navigating_topics.htm"><b>3</b></a> <a href="../setting_preferences.htm"><b>4</b></a> <a href="../select_color_and_font.htm"><b>5</b></a> <a href="../post-pro_preferences.htm"><b>6</b></a> <a href="../kernel/using_registry.htm"><b>7</b></a> <a href="../kernel/using_catalog_generator.htm"><b>8</b></a> <a href="../kernel/setting_preferences.htm"><b>9</b></a> <a href="../kernel/saving_a_study.htm"><b>10</b></a> </nobr><br><nobr>buttons <a href="../kernel/readme.html"><b>1</b></a> <a href="../kernel/navigating_topics.htm"><b>2</b></a> <a href="../introduction_to_gui.htm"><b>3</b></a> <a href="../post-pro_preferences.htm"><b>4</b></a> <a href="../kernel/setting_preferences.htm"><b>5</b></a> </nobr><br>\r
+<br><br>\r
+<nobr><a name="bm_C"></a><a name="subkey_C{"></a>c <a href="../kernel/running_salome_pro.htm"><b>1</b></a> <a href="../kernel/readme.html"><b>2</b></a> <a href="../kernel/about_salome_pro_architecture.htm"><b>3</b></a> </nobr><br><nobr><a name="bms_CA"></a><a name="subkey_CA"></a>cad <a href="../kernel/introduction_to_salome_pro.htm"><b>1</b></a> <a href="../kernel/introduction.htm"><b>2</b></a> </nobr><br><a href="../kernel/introduction.htm"><b>cae</b></a> <br><a href="../kernel/introduction.htm"><b>calculation</b></a> <br><nobr>calculations <a href="../kernel/introduction_to_salome_pro.htm"><b>1</b></a> <a href="../kernel/getting_started2.htm"><b>2</b></a> </nobr><br><nobr>call <a href="../kernel/readme.html"><b>1</b></a> <a href="../kernel/using_registry.htm"><b>2</b></a> <a href="../kernel/using_catalog_generator.htm"><b>3</b></a> <a href="../kernel/saving_a_study.htm"><b>4</b></a> </nobr><br><nobr>called <a href="../kernel/readme.html"><b>1</b></a> <a href="../kernel/about_salome_pro_architecture.htm"><b>2</b></a> </nobr><br><a href="../kernel/readme.html"><b>calling</b></a> <br><a href="../dump_study.htm"><b>calls</b></a> <br><a href="../kernel/about_salome_pro_architecture.htm"><b>cam</b></a> <br><a href="../post-pro_preferences.htm"><b>camera</b></a> <br><a href="../kernel/readme.html"><b>cancel</b></a> <br><a href="../kernel/using_catalog_generator.htm"><b>capability</b></a> <br><a href="../kernel/readme.html"><b>caption</b></a> <br><a href="../kernel/readme.html"><b>care</b></a> <br><a href="../kernel/readme.html"><b>carefully</b></a> <br><a href="../mesh_preferences.htm"><b>carried</b></a> <br><a href="../kernel/introduction.htm"><b>carrying</b></a> <br><a href="../kernel/introduction.htm"><b>cars</b></a> <br><a href="../kernel/readme.html"><b>cascade</b></a> <br><nobr>case <a href="../kernel/readme.html"><b>1</b></a> <a href="../kernel/introduction_to_salome_pro.htm"><b>2</b></a> <a href="../kernel/getting_properties_of_the_study.htm"><b>3</b></a> <a href="../kernel/about_salome_pro_architecture.htm"><b>4</b></a> <a href="../post-pro_preferences.htm"><b>5</b></a> <a href="../kernel/saving_a_study.htm"><b>6</b></a> <a href="../kernel/salome_pro_desktop.htm"><b>7</b></a> </nobr><br><a href="../kernel/readme.html"><b>casroot</b></a> <br><a href="../kernel/readme.html"><b>cat</b></a> <br><a href="../kernel/using_catalog_generator.htm"><b>catalog</b></a> <br><a href="../kernel/using_catalog_generator.htm"><b>catalogmodulegeneral</b></a> <br><a href="../kernel/using_catalog_generator.htm"><b>catalogmodulepersonnel</b></a> <br><nobr>catalogue <a href="../kernel/running_salome_pro.htm"><b>1</b></a> <a href="../introduction_to_gui.htm"><b>2</b></a> </nobr><br><a href="../kernel/using_left-hand_tabs.htm"><b>categories</b></a> <br><a name="bms_CD"></a><a name="subkey_CD"></a><a href="../kernel/readme.html"><b>cd</b></a> <br><nobr><a name="bms_CE"></a><a name="subkey_CE"></a>cells <a href="../select_color_and_font.htm"><b>1</b></a> <a href="../post-pro_preferences.htm"><b>2</b></a> </nobr><br><a href="../post-pro_preferences.htm"><b>centered</b></a> <br><a href="../post-pro_preferences.htm"><b>central</b></a> <br><a href="../post-pro_preferences.htm"><b>centred</b></a> <br><nobr><a name="bms_CH"></a><a name="subkey_CH"></a>change <a href="../kernel/readme.html"><b>1</b></a> <a href="../kernel/getting_properties_of_the_study.htm"><b>2</b></a> <a href="../kernel/displaying_studies.htm"><b>3</b></a> <a href="../kernel/about_salome_pro_architecture.htm"><b>4</b></a> <a href="../setting_preferences.htm"><b>5</b></a> <a href="../post-pro_preferences.htm"><b>6</b></a> <a href="../kernel/setting_preferences.htm"><b>7</b></a> <a href="../kernel/salome_pro_desktop.htm"><b>8</b></a> </nobr><br><a href="../setting_preferences.htm"><b>changed</b></a> <br><nobr>changes <a href="../kernel/getting_properties_of_the_study.htm"><b>1</b></a> <a href="../setting_preferences.htm"><b>2</b></a> <a href="../mesh_preferences.htm"><b>3</b></a> <a href="../kernel/saving_a_study.htm"><b>4</b></a> </nobr><br><a href="../kernel/readme.html"><b>changing</b></a> <br><a href="../post-pro_preferences.htm"><b>channel</b></a> <br><a href="../kernel/about_salome_pro_help_system.htm"><b>chapters</b></a> <br><a href="../select_color_and_font.htm"><b>characters</b></a> <br><a href="../kernel/readme.html"><b>charge</b></a> <br><nobr>check <a href="../kernel/readme.html"><b>1</b></a> <a href="../kernel/salome_pro_desktop.htm"><b>2</b></a> </nobr><br><a href="../kernel/readme.html"><b>check_version</b></a> <br><nobr>checkbox <a href="../kernel/readme.html"><b>1</b></a> <a href="../post-pro_preferences.htm"><b>2</b></a> <a href="../mesh_preferences.htm"><b>3</b></a> </nobr><br><a href="../kernel/readme.html"><b>checkboxes</b></a> <br><nobr>checked <a href="../kernel/readme.html"><b>1</b></a> <a href="../dump_study.htm"><b>2</b></a> <a href="../post-pro_preferences.htm"><b>3</b></a> <a href="../kernel/setting_preferences.htm"><b>4</b></a> </nobr><br><a href="../kernel/readme.html"><b>checking</b></a> <br><a href="../kernel/readme.html"><b>checks</b></a> <br><nobr>choice <a href="../kernel/readme.html"><b>1</b></a> <a href="../dump_study.htm"><b>2</b></a> <a href="../select_color_and_font.htm"><b>3</b></a> <a href="../post-pro_preferences.htm"><b>4</b></a> </nobr><br><nobr>choose <a href="../kernel/readme.html"><b>1</b></a> <a href="../kernel/opening_studies.htm"><b>2</b></a> <a href="../kernel/getting_properties_of_the_study.htm"><b>3</b></a> <a href="../kernel/editing_studies.htm"><b>4</b></a> <a href="../kernel/creating_a_new_study.htm"><b>5</b></a> <a href="../geom_preferences.htm"><b>6</b></a> <a href="../select_color_and_font.htm"><b>7</b></a> <a href="../post-pro_preferences.htm"><b>8</b></a> <a href="../mesh_preferences.htm"><b>9</b></a> <a href="../kernel/using_registry.htm"><b>10</b></a> <a href="../kernel/using_catalog_generator.htm"><b>11</b></a> <a href="../kernel/salome_pro_desktop.htm"><b>12</b></a> </nobr><br><nobr>chosen <a href="../select_color_and_font.htm"><b>1</b></a> <a href="../post-pro_preferences.htm"><b>2</b></a> <a href="../kernel/using_catalog_generator.htm"><b>3</b></a> </nobr><br><a name="bms_CL"></a><a name="subkey_CL"></a><a href="../post-pro_preferences.htm"><b>clamp</b></a> <br><a href="../kernel/salome_pro_desktop.htm"><b>classic</b></a> <br><a href="../kernel/readme.html"><b>clear</b></a> <br><a href="../kernel/salome_pro_desktop.htm"><b>clearall</b></a> <br><nobr>click <a href="../kernel/readme.html"><b>1</b></a> <a href="../kernel/opening_studies.htm"><b>2</b></a> <a href="../kernel/navigating_topics.htm"><b>3</b></a> <a href="../kernel/getting_properties_of_the_study.htm"><b>4</b></a> <a href="../kernel/editing_studies.htm"><b>5</b></a> <a href="../kernel/displaying_studies.htm"><b>6</b></a> <a href="../kernel/creating_a_new_study.htm"><b>7</b></a> <a href="../geom_preferences.htm"><b>8</b></a> <a href="../dump_study.htm"><b>9</b></a> <a href="../setting_preferences.htm"><b>10</b></a> <a href="../select_color_and_font.htm"><b>11</b></a> <a href="../post-pro_preferences.htm"><b>12</b></a> <a href="../mesh_preferences.htm"><b>13</b></a> <a href="../kernel/using_registry.htm"><b>14</b></a> <a href="../kernel/using_object_browser.htm"><b>15</b></a> <a href="../kernel/using_left-hand_tabs.htm"><b>16</b></a> <a href="../kernel/using_catalog_generator.htm"><b>17</b></a> <a href="../kernel/setting_preferences.htm"><b>18</b></a> <a href="../kernel/saving_a_study.htm"><b>19</b></a> <a href="../kernel/salome_pro_desktop.htm"><b>20</b></a> </nobr><br><a href="../kernel/navigating_topics.htm"><b>clickable</b></a> <br><a href="../kernel/navigating_topics.htm"><b>clicked</b></a> <br><nobr>clicking <a href="../kernel/readme.html"><b>1</b></a> <a href="../mesh_preferences.htm"><b>2</b></a> <a href="../kernel/using_object_browser.htm"><b>3</b></a> </nobr><br><a href="../kernel/about_salome_pro_architecture.htm"><b>client</b></a> <br><a href="../post-pro_preferences.htm"><b>clip</b></a> <br><nobr>close <a href="../kernel/readme.html"><b>1</b></a> <a href="../kernel/navigating_topics.htm"><b>2</b></a> <a href="../setting_preferences.htm"><b>3</b></a> <a href="../post-pro_preferences.htm"><b>4</b></a> <a href="../kernel/saving_a_study.htm"><b>5</b></a> </nobr><br><nobr>closed <a href="../post-pro_preferences.htm"><b>1</b></a> <a href="../kernel/using_left-hand_tabs.htm"><b>2</b></a> </nobr><br><nobr>closes <a href="../kernel/readme.html"><b>1</b></a> <a href="../kernel/using_left-hand_tabs.htm"><b>2</b></a> </nobr><br><nobr>closing <a href="../kernel/readme.html"><b>1</b></a> <a href="../kernel/about_salome_pro_architecture.htm"><b>2</b></a> <a href="../kernel/saving_a_study.htm"><b>3</b></a> </nobr><br><a href="../kernel/about_salome_pro_architecture.htm"><b>clusters</b></a> <br><nobr><a name="bms_CO"></a><a name="subkey_CO"></a>code <a href="../kernel/readme.html"><b>1</b></a> <a href="../kernel/about_salome_pro_architecture.htm"><b>2</b></a> </nobr><br><a href="../mesh_preferences.htm"><b>coef</b></a> <br><a href="../kernel/readme.html"><b>coincide</b></a> <br><a href="../kernel/readme.html"><b>collect</b></a> <br><a href="../kernel/readme.html"><b>collected</b></a> <br><a href="../kernel/readme.html"><b>collects</b></a> <br><nobr>color <a href="../geom_preferences.htm"><b>1</b></a> <a href="../select_color_and_font.htm"><b>2</b></a> <a href="../post-pro_preferences.htm"><b>3</b></a> <a href="../mesh_preferences.htm"><b>4</b></a> <a href="../kernel/using_object_browser.htm"><b>5</b></a> <a href="../kernel/setting_preferences.htm"><b>6</b></a> </nobr><br><nobr>colored <a href="../geom_preferences.htm"><b>1</b></a> <a href="../post-pro_preferences.htm"><b>2</b></a> <a href="../mesh_preferences.htm"><b>3</b></a> <a href="../kernel/setting_preferences.htm"><b>4</b></a> </nobr><br><nobr>colors <a href="../select_color_and_font.htm"><b>1</b></a> <a href="../post-pro_preferences.htm"><b>2</b></a> <a href="../mesh_preferences.htm"><b>3</b></a> </nobr><br><nobr>column <a href="../kernel/using_object_browser.htm"><b>1</b></a> <a href="../kernel/setting_preferences.htm"><b>2</b></a> </nobr><br><nobr>columns <a href="../kernel/using_registry.htm"><b>1</b></a> <a href="../kernel/using_object_browser.htm"><b>2</b></a> <a href="../kernel/setting_preferences.htm"><b>3</b></a> </nobr><br><a href="../post-pro_preferences.htm"><b>combined</b></a> <br><a href="../kernel/introduction_to_salome_pro.htm"><b>combines</b></a> <br><a href="../kernel/salome_pro_desktop.htm"><b>comfortable</b></a> <br><a href="../kernel/readme.html"><b>comma</b></a> <br><nobr>command <a href="../kernel/running_salome_pro.htm"><b>1</b></a> <a href="../kernel/readme.html"><b>2</b></a> </nobr><br><nobr>commands <a href="../kernel/about_salome_pro_architecture.htm"><b>1</b></a> <a href="../dump_study.htm"><b>2</b></a> </nobr><br><nobr>common <a href="../kernel/readme.html"><b>1</b></a> <a href="../kernel/introduction_to_salome_pro.htm"><b>2</b></a> <a href="../introduction_to_gui.htm"><b>3</b></a> <a href="../setting_preferences.htm"><b>4</b></a> <a href="../kernel/saving_a_study.htm"><b>5</b></a> <a href="../kernel/salome_pro_desktop.htm"><b>6</b></a> </nobr><br><nobr>compared <a href="../kernel/about_salome_pro_architecture.htm"><b>1</b></a> <a href="../mesh_preferences.htm"><b>2</b></a> </nobr><br><a href="../kernel/readme.html"><b>compatible</b></a> <br><a href="../kernel/readme.html"><b>compilation</b></a> <br><a href="../kernel/readme.html"><b>compiled</b></a> <br><a href="../kernel/readme.html"><b>compiling</b></a> <br><nobr>complete <a href="../kernel/getting_properties_of_the_study.htm"><b>1</b></a> <a href="../kernel/using_registry.htm"><b>2</b></a> </nobr><br><nobr>completed <a href="../kernel/readme.html"><b>1</b></a> <a href="../kernel/using_left-hand_tabs.htm"><b>2</b></a> </nobr><br><nobr>complex <a href="../kernel/introduction.htm"><b>1</b></a> <a href="../kernel/about_salome_pro_architecture.htm"><b>2</b></a> </nobr><br><nobr>component <a href="../kernel/opening_studies.htm"><b>1</b></a> <a href="../kernel/introduction_to_salome_pro.htm"><b>2</b></a> <a href="../kernel/editing_studies.htm"><b>3</b></a> <a href="../kernel/about_salome_pro_architecture.htm"><b>4</b></a> <a href="../introduction_to_gui.htm"><b>5</b></a> <a href="../dump_study.htm"><b>6</b></a> <a href="../post-pro_preferences.htm"><b>7</b></a> <a href="../kernel/using_registry.htm"><b>8</b></a> <a href="../kernel/using_object_browser.htm"><b>9</b></a> <a href="../kernel/using_catalog_generator.htm"><b>10</b></a> <a href="../kernel/setting_preferences.htm"><b>11</b></a> <a href="../kernel/saving_a_study.htm"><b>12</b></a> <a href="../kernel/salome_pro_desktop.htm"><b>13</b></a> </nobr><br><nobr>components <a href="../kernel/opening_studies.htm"><b>1</b></a> <a href="../kernel/navigating_topics.htm"><b>2</b></a> <a href="../kernel/introduction_to_salome_pro.htm"><b>3</b></a> <a href="../kernel/introduction.htm"><b>4</b></a> <a href="../kernel/about_salome_pro_help_system.htm"><b>5</b></a> <a href="../kernel/about_salome_pro_architecture.htm"><b>6</b></a> <a href="../introduction_to_gui.htm"><b>7</b></a> <a href="../dump_study.htm"><b>8</b></a> <a href="../kernel/using_registry.htm"><b>9</b></a> <a href="../kernel/using_object_browser.htm"><b>10</b></a> <a href="../kernel/using_catalog_generator.htm"><b>11</b></a> <a href="../kernel/saving_a_study.htm"><b>12</b></a> <a href="../kernel/salome_pro_desktop.htm"><b>13</b></a> </nobr><br><a href="../post-pro_preferences.htm"><b>compose</b></a> <br><nobr>computation <a href="../kernel/introduction.htm"><b>1</b></a> <a href="../kernel/about_salome_pro_architecture.htm"><b>2</b></a> </nobr><br><a href="../kernel/introduction.htm"><b>computational</b></a> <br><a href="../kernel/introduction.htm"><b>computations</b></a> <br><nobr>computer <a href="../kernel/readme.html"><b>1</b></a> <a href="../kernel/setting_preferences.htm"><b>2</b></a> </nobr><br><nobr>concept <a href="../kernel/navigating_topics.htm"><b>1</b></a> <a href="../kernel/about_salome_pro_architecture.htm"><b>2</b></a> </nobr><br><a href="../kernel/introduction.htm"><b>concerning</b></a> <br><a href="../kernel/readme.html"><b>concerns</b></a> <br><a href="../kernel/about_salome_pro_architecture.htm"><b>conclusion</b></a> <br><a href="../kernel/readme.html"><b>config</b></a> <br><a href="../kernel/readme.html"><b>config_files</b></a> <br><a href="../kernel/readme.html"><b>config_mandrake10_1</b></a> <br><a href="../kernel/introduction_to_salome_pro.htm"><b>configurable</b></a> <br><a href="../kernel/readme.html"><b>configuration</b></a> <br><nobr>configure <a href="../kernel/readme.html"><b>1</b></a> <a href="../kernel/introduction.htm"><b>2</b></a> </nobr><br><nobr>confirm <a href="../kernel/readme.html"><b>1</b></a> <a href="../dump_study.htm"><b>2</b></a> </nobr><br><a href="../kernel/opening_studies.htm"><b>connect</b></a> <br><nobr>connected <a href="../kernel/introduction_to_salome_pro.htm"><b>1</b></a> <a href="../kernel/getting_started2.htm"><b>2</b></a> <a href="../kernel/setting_preferences.htm"><b>3</b></a> <a href="../kernel/salome_pro_desktop.htm"><b>4</b></a> </nobr><br><a href="../kernel/salome_pro_desktop.htm"><b>consists</b></a> <br><nobr>console <a href="../kernel/running_salome_pro.htm"><b>1</b></a> <a href="../kernel/introduction.htm"><b>2</b></a> <a href="../kernel/displaying_studies.htm"><b>3</b></a> <a href="../kernel/setting_preferences.htm"><b>4</b></a> <a href="../kernel/saving_a_study.htm"><b>5</b></a> <a href="../kernel/salome_pro_desktop.htm"><b>6</b></a> </nobr><br><a href="../kernel/about_salome_pro_architecture.htm"><b>constant</b></a> <br><a href="../kernel/running_salome_pro.htm"><b>constantly</b></a> <br><nobr>construction <a href="../kernel/introduction_to_salome_pro.htm"><b>1</b></a> <a href="../kernel/introduction.htm"><b>2</b></a> </nobr><br><a href="../dump_study.htm"><b>consuming</b></a> <br><nobr>contain <a href="../kernel/readme.html"><b>1</b></a> <a href="../kernel/opening_studies.htm"><b>2</b></a> <a href="../kernel/using_object_browser.htm"><b>3</b></a> <a href="../kernel/salome_pro_desktop.htm"><b>4</b></a> </nobr><br><a href="../kernel/salome_pro_desktop.htm"><b>container</b></a> <br><a href="../kernel/running_salome_pro.htm"><b>containers</b></a> <br><nobr>containing <a href="../kernel/readme.html"><b>1</b></a> <a href="../dump_study.htm"><b>2</b></a> <a href="../kernel/using_left-hand_tabs.htm"><b>3</b></a> <a href="../kernel/using_catalog_generator.htm"><b>4</b></a> </nobr><br><nobr>contains <a href="../kernel/running_salome_pro.htm"><b>1</b></a> <a href="../kernel/readme.html"><b>2</b></a> <a href="../kernel/getting_properties_of_the_study.htm"><b>3</b></a> <a href="../kernel/creating_a_new_study.htm"><b>4</b></a> <a href="../kernel/about_salome_pro_help_system.htm"><b>5</b></a> <a href="../kernel/about_salome_pro_architecture.htm"><b>6</b></a> <a href="../kernel/using_registry.htm"><b>7</b></a> <a href="../kernel/using_object_browser.htm"><b>8</b></a> <a href="../kernel/salome_pro_desktop.htm"><b>9</b></a> </nobr><br><nobr>content <a href="../kernel/readme.html"><b>1</b></a> <a href="../dump_study.htm"><b>2</b></a> <a href="../kernel/using_left-hand_tabs.htm"><b>3</b></a> </nobr><br><nobr>contents <a href="../post-pro_preferences.htm"><b>1</b></a> <a href="../kernel/using_left-hand_tabs.htm"><b>2</b></a> </nobr><br><nobr>context <a href="../kernel/readme.html"><b>1</b></a> <a href="../kernel/using_object_browser.htm"><b>2</b></a> <a href="../kernel/salome_pro_desktop.htm"><b>3</b></a> </nobr><br><a href="../kernel/readme.html"><b>continue</b></a> <br><nobr>control <a href="../kernel/readme.html"><b>1</b></a> <a href="../kernel/creating_a_new_study.htm"><b>2</b></a> <a href="../post-pro_preferences.htm"><b>3</b></a> <a href="../mesh_preferences.htm"><b>4</b></a> </nobr><br><nobr>controls <a href="../post-pro_preferences.htm"><b>1</b></a> <a href="../mesh_preferences.htm"><b>2</b></a> </nobr><br><nobr>convert <a href="../kernel/readme.html"><b>1</b></a> <a href="../dump_study.htm"><b>2</b></a> </nobr><br><a href="../kernel/introduction_to_salome_pro.htm"><b>cooperate</b></a> <br><a href="../kernel/setting_preferences.htm"><b>coordinate</b></a> <br><a href="../kernel/setting_preferences.htm"><b>coordinates</b></a> <br><a href="../post-pro_preferences.htm"><b>copies</b></a> <br><nobr>copy <a href="../kernel/readme.html"><b>1</b></a> <a href="../kernel/editing_studies.htm"><b>2</b></a> <a href="../kernel/saving_a_study.htm"><b>3</b></a> <a href="../kernel/salome_pro_desktop.htm"><b>4</b></a> </nobr><br><a href="../kernel/salome_pro_desktop.htm"><b>copying</b></a> <br><a href="../kernel/readme.html"><b>copyright</b></a> <br><nobr>corba <a href="../kernel/creating_a_new_study.htm"><b>1</b></a> <a href="../kernel/about_salome_pro_architecture.htm"><b>2</b></a> <a href="../introduction_to_gui.htm"><b>3</b></a> </nobr><br><nobr>corner <a href="../select_color_and_font.htm"><b>1</b></a> <a href="../post-pro_preferences.htm"><b>2</b></a> <a href="../kernel/saving_a_study.htm"><b>3</b></a> </nobr><br><a href="../kernel/salome_pro_desktop.htm"><b>correcting</b></a> <br><nobr>corresponding <a href="../kernel/running_salome_pro.htm"><b>1</b></a> <a href="../kernel/readme.html"><b>2</b></a> <a href="../kernel/opening_studies.htm"><b>3</b></a> <a href="../mesh_preferences.htm"><b>4</b></a> <a href="../kernel/using_left-hand_tabs.htm"><b>5</b></a> </nobr><br><a href="../kernel/readme.html"><b>correspondingly</b></a> <br><nobr>corresponds <a href="../kernel/readme.html"><b>1</b></a> <a href="../post-pro_preferences.htm"><b>2</b></a> </nobr><br><a href="../kernel/introduction.htm"><b>costs</b></a> <br><nobr>coupling <a href="../kernel/introduction.htm"><b>1</b></a> <a href="../kernel/about_salome_pro_architecture.htm"><b>2</b></a> </nobr><br><br><br></p><p class="ftsbody" align="center"><a href="whlstf2.htm" target="_self" title="previous search group"><b>&gt;&gt;</b></a>\r
 \r
 </body>\r
 \r
index aef9a7b7f5700ccf2d64d18ce3daffd9ce4be4ed..63683dcd1410e22d34ff21e2083bb71f63a41ce0 100755 (executable)
@@ -33,13 +33,12 @@ A:hover {color:Navy; } A:hover {font-family:Tahoma; } A:hover {font-size:8pt; }
 <body marginheight="0"  marginwidth="0" bgproperties="fixed">\r
 <p class="ftsbody" align="center"><a href="whlstf9.htm" target="_self" title="previous search group"><b>&lt;&lt;</b></a><br><br></p>\r
 <p class="ftsbody" >\r
-<nobr><a name="bms_WO"></a><a name="subkey_WO"></a>won <a href="../kernel/running_salome_pro.htm"><b>1</b></a> <a href="../kernel/readme.html"><b>2</b></a> <a href="../kernel/editing_studies.htm"><b>3</b></a> </nobr><br><a href="../kernel/using_left-hand_tabs.htm"><b>word</b></a> <br><a href="../kernel/using_left-hand_tabs.htm"><b>words</b></a> <br><nobr>work <a href="../kernel/readme.html"><b>1</b></a> <a href="../kernel/getting_started2.htm"><b>2</b></a> <a href="../kernel/displaying_studies.htm"><b>3</b></a> <a href="../kernel/about_salome_pro_architecture.htm"><b>4</b></a> <a href="../viewers.htm"><b>5</b></a> </nobr><br><nobr>working <a href="../kernel/getting_started2.htm"><b>1</b></a> <a href="../kernel/about_salome_pro_architecture.htm"><b>2</b></a> <a href="../kernel/saving_a_study.htm"><b>3</b></a> <a href="../kernel/salome_pro_desktop.htm"><b>4</b></a> </nobr><br><nobr>would <a href="../kernel/readme.html"><b>1</b></a> <a href="../kernel/displaying_hiding_toolbars.htm"><b>2</b></a> <a href="../kernel/using_catalog_generator.htm"><b>3</b></a> <a href="../kernel/saving_a_study.htm"><b>4</b></a> </nobr><br><nobr><a name="bms_WR"></a><a name="subkey_WR"></a>write <a href="../kernel/introduction.htm"><b>1</b></a> <a href="../kernel/saving_a_study.htm"><b>2</b></a> </nobr><br><nobr>written <a href="../kernel/about_salome_pro_architecture.htm"><b>1</b></a> <a href="../kernel/saving_a_study.htm"><b>2</b></a> </nobr><br><a href="../kernel/readme.html"><b>wrong</b></a> <br><a name="bms_WW"></a><a name="subkey_WW"></a><a href="../kernel/about_salome_pro_architecture.htm"><b>www</b></a> <br>\r
+<a name="bms_TE"></a><a name="subkey_TE"></a><a href="../kernel/introduction.htm"><b>technological</b></a> <br><a href="../kernel/about_salome_pro_architecture.htm"><b>technologies</b></a> <br><a href="../kernel/about_salome_pro_architecture.htm"><b>technology</b></a> <br><a href="../kernel/readme.html"><b>temp</b></a> <br><a href="../kernel/readme.html"><b>temp_directory</b></a> <br><a href="../kernel/readme.html"><b>temp_folder</b></a> <br><a href="../kernel/readme.html"><b>tempdir</b></a> <br><a href="../kernel/readme.html"><b>temporary</b></a> <br><a href="../kernel/readme.html"><b>temporarydiskspace</b></a> <br><a href="../post-pro_preferences.htm"><b>tensor</b></a> <br><nobr>term <a href="../kernel/navigating_topics.htm"><b>1</b></a> <a href="../kernel/using_left-hand_tabs.htm"><b>2</b></a> </nobr><br><nobr>terminal <a href="../kernel/running_salome_pro.htm"><b>1</b></a> <a href="../kernel/readme.html"><b>2</b></a> </nobr><br><a href="../kernel/introduction.htm"><b>terms</b></a> <br><nobr>test <a href="../kernel/readme.html"><b>1</b></a> <a href="../kernel/about_salome_pro_architecture.htm"><b>2</b></a> <a href="../kernel/using_catalog_generator.htm"><b>3</b></a> </nobr><br><a href="../kernel/readme.html"><b>tests</b></a> <br><nobr>text <a href="../kernel/readme.html"><b>1</b></a> <a href="../kernel/navigating_topics.htm"><b>2</b></a> <a href="../kernel/using_left-hand_tabs.htm"><b>3</b></a> </nobr><br><a href="../post-pro_preferences.htm"><b>texture</b></a> <br><nobr><a name="bms_TH"></a><a name="subkey_TH"></a>them <a href="../kernel/running_salome_pro.htm"><b>1</b></a> <a href="../kernel/readme.html"><b>2</b></a> <a href="../kernel/introduction.htm"><b>3</b></a> <a href="../kernel/displaying_studies.htm"><b>4</b></a> <a href="../kernel/about_salome_pro_architecture.htm"><b>5</b></a> <a href="../select_color_and_font.htm"><b>6</b></a> <a href="../mesh_preferences.htm"><b>7</b></a> <a href="../kernel/using_registry.htm"><b>8</b></a> <a href="../kernel/salome_pro_desktop.htm"><b>9</b></a> </nobr><br><a href="../kernel/readme.html"><b>therefore</b></a> <br><a href="../kernel/introduction_to_salome_pro.htm"><b>third</b></a> <br><nobr>those <a href="../kernel/readme.html"><b>1</b></a> <a href="../kernel/using_left-hand_tabs.htm"><b>2</b></a> <a href="../kernel/setting_preferences.htm"><b>3</b></a> </nobr><br><a href="../kernel/readme.html"><b>three</b></a> <br><a href="../post-pro_preferences.htm"><b>threshold</b></a> <br><nobr>thus <a href="../kernel/about_salome_pro_architecture.htm"><b>1</b></a> <a href="../dump_study.htm"><b>2</b></a> </nobr><br><nobr><a name="bms_TI"></a><a name="subkey_TI"></a>time <a href="../kernel/running_salome_pro.htm"><b>1</b></a> <a href="../kernel/readme.html"><b>2</b></a> <a href="../kernel/introduction.htm"><b>3</b></a> <a href="../kernel/getting_properties_of_the_study.htm"><b>4</b></a> <a href="../kernel/displaying_studies.htm"><b>5</b></a> <a href="../kernel/about_salome_pro_architecture.htm"><b>6</b></a> <a href="../dump_study.htm"><b>7</b></a> <a href="../setting_preferences.htm"><b>8</b></a> <a href="../post-pro_preferences.htm"><b>9</b></a> <a href="../kernel/using_registry.htm"><b>10</b></a> <a href="../kernel/using_catalog_generator.htm"><b>11</b></a> <a href="../kernel/saving_a_study.htm"><b>12</b></a> </nobr><br><a href="../post-pro_preferences.htm"><b>times</b></a> <br><nobr>title <a href="../kernel/readme.html"><b>1</b></a> <a href="../post-pro_preferences.htm"><b>2</b></a> <a href="../mesh_preferences.htm"><b>3</b></a> <a href="../kernel/setting_preferences.htm"><b>4</b></a> </nobr><br><a name="bms_TK"></a><a name="subkey_TK"></a><a href="../kernel/readme.html"><b>tk</b></a> <br><a name="bms_TM"></a><a name="subkey_TM"></a><a href="../kernel/readme.html"><b>tmp</b></a> <br><a href="../kernel/readme.html"><b>tmp_disk_space</b></a> <br><a name="bms_TO"></a><a name="subkey_TO"></a><a href="../kernel/readme.html"><b>together</b></a> <br><a href="../mesh_preferences.htm"><b>toggle</b></a> <br><a href="../post-pro_preferences.htm"><b>toggles</b></a> <br><a href="../kernel/using_object_browser.htm"><b>toggling</b></a> <br><a href="../post-pro_preferences.htm"><b>tolerance</b></a> <br><nobr>tool <a href="../kernel/readme.html"><b>1</b></a> <a href="../introduction_to_gui.htm"><b>2</b></a> <a href="../kernel/using_registry.htm"><b>3</b></a> <a href="../kernel/using_catalog_generator.htm"><b>4</b></a> </nobr><br><nobr>toolbar <a href="../kernel/opening_studies.htm"><b>1</b></a> <a href="../kernel/editing_studies.htm"><b>2</b></a> <a href="../kernel/creating_a_new_study.htm"><b>3</b></a> <a href="../kernel/about_salome_pro_architecture.htm"><b>4</b></a> <a href="../introduction_to_gui.htm"><b>5</b></a> <a href="../kernel/saving_a_study.htm"><b>6</b></a> <a href="../kernel/salome_pro_desktop.htm"><b>7</b></a> </nobr><br><nobr>toolbars <a href="../introduction_to_gui.htm"><b>1</b></a> <a href="../kernel/salome_pro_desktop.htm"><b>2</b></a> </nobr><br><a href="../introduction_to_gui.htm"><b>toolkit</b></a> <br><nobr>tools <a href="../kernel/introduction_to_salome_pro.htm"><b>1</b></a> <a href="../kernel/about_salome_pro_architecture.htm"><b>2</b></a> <a href="../introduction_to_gui.htm"><b>3</b></a> <a href="../kernel/using_registry.htm"><b>4</b></a> <a href="../kernel/using_catalog_generator.htm"><b>5</b></a> <a href="../kernel/salome_pro_desktop.htm"><b>6</b></a> </nobr><br><nobr>top <a href="../kernel/readme.html"><b>1</b></a> <a href="../kernel/creating_a_new_study.htm"><b>2</b></a> <a href="../introduction_to_gui.htm"><b>3</b></a> <a href="../post-pro_preferences.htm"><b>4</b></a> <a href="../kernel/setting_preferences.htm"><b>5</b></a> <a href="../kernel/salome_pro_desktop.htm"><b>6</b></a> </nobr><br><nobr>topic <a href="../kernel/navigating_topics.htm"><b>1</b></a> <a href="../kernel/using_left-hand_tabs.htm"><b>2</b></a> </nobr><br><nobr>topics <a href="../kernel/navigating_topics.htm"><b>1</b></a> <a href="../kernel/about_salome_pro_help_system.htm"><b>2</b></a> <a href="../kernel/using_left-hand_tabs.htm"><b>3</b></a> </nobr><br><a href="../kernel/readme.html"><b>topmost</b></a> <br><a href="../kernel/readme.html"><b>total</b></a> <br><a href="../kernel/about_salome_pro_architecture.htm"><b>totality</b></a> <br><a href="../dump_study.htm"><b>touching</b></a> <br><a name="bms_TR"></a><a name="subkey_TR"></a><a href="../kernel/readme.html"><b>tr</b></a> <br><a href="../kernel/introduction.htm"><b>training</b></a> <br><a href="../post-pro_preferences.htm"><b>translate</b></a> <br><a href="../post-pro_preferences.htm"><b>translation</b></a> <br><a href="../post-pro_preferences.htm"><b>transparency</b></a> <br><a href="../post-pro_preferences.htm"><b>transparent</b></a> <br><nobr>tree <a href="../kernel/readme.html"><b>1</b></a> <a href="../kernel/creating_a_new_study.htm"><b>2</b></a> <a href="../kernel/using_object_browser.htm"><b>3</b></a> <a href="../kernel/using_catalog_generator.htm"><b>4</b></a> <a href="../kernel/setting_preferences.htm"><b>5</b></a> </nobr><br><a href="../kernel/readme.html"><b>tries</b></a> <br><a href="../kernel/setting_preferences.htm"><b>trihedron</b></a> <br><a href="../kernel/readme.html"><b>trolltech</b></a> <br><a href="../kernel/readme.html"><b>true</b></a> <br><nobr>try <a href="../kernel/readme.html"><b>1</b></a> <a href="../kernel/getting_properties_of_the_study.htm"><b>2</b></a> <a href="../kernel/using_catalog_generator.htm"><b>3</b></a> <a href="../kernel/saving_a_study.htm"><b>4</b></a> </nobr><br><a href="../kernel/readme.html"><b>try_existing</b></a> <br><a href="../kernel/readme.html"><b>try_native</b></a> <br><a href="../kernel/readme.html"><b>try_preinstalled</b></a> <br><a name="bms_TW"></a><a name="subkey_TW"></a><a href="../post-pro_preferences.htm"><b>twice</b></a> <br><nobr>two <a href="../kernel/readme.html"><b>1</b></a> <a href="../kernel/navigating_topics.htm"><b>2</b></a> <a href="../kernel/displaying_studies.htm"><b>3</b></a> <a href="../post-pro_preferences.htm"><b>4</b></a> <a href="../kernel/using_catalog_generator.htm"><b>5</b></a> <a href="../kernel/saving_a_study.htm"><b>6</b></a> </nobr><br><nobr><a name="bms_TY"></a><a name="subkey_TY"></a>type <a href="../kernel/readme.html"><b>1</b></a> <a href="../dump_study.htm"><b>2</b></a> <a href="../post-pro_preferences.htm"><b>3</b></a> <a href="../mesh_preferences.htm"><b>4</b></a> <a href="../kernel/using_catalog_generator.htm"><b>5</b></a> <a href="../kernel/setting_preferences.htm"><b>6</b></a> </nobr><br><a href="../kernel/using_catalog_generator.htm"><b>typical</b></a> <br><nobr>typing <a href="../kernel/readme.html"><b>1</b></a> <a href="../select_color_and_font.htm"><b>2</b></a> </nobr><br>\r
 <br><br>\r
-<a name="bm_X"></a><a name="subkey_X{"></a><a href="../kernel/running_salome_pro.htm"><b>x</b></a> <br><nobr><a name="bms_XM"></a><a name="subkey_XM"></a>xml <a href="../kernel/running_salome_pro.htm"><b>1</b></a> <a href="../kernel/readme.html"><b>2</b></a> <a href="../kernel/using_catalog_generator.htm"><b>3</b></a> </nobr><br><a name="bms_XT"></a><a name="subkey_XT"></a><a href="../kernel/running_salome_pro.htm"><b>xterm</b></a> <br><a name="bms_XX"></a><a name="subkey_XX"></a><a href="../kernel/readme.html"><b>xxxxx</b></a> <br>\r
+<a name="bm_U"></a><a name="subkey_U{"></a><a href="../kernel/setting_preferences.htm"><b>u</b></a> <br><a name="bms_UL"></a><a name="subkey_UL"></a><a href="../kernel/about_salome_pro_architecture.htm"><b>ultimate</b></a> <br><a name="bms_UN"></a><a name="subkey_UN"></a><a href="../kernel/salome_pro_desktop.htm"><b>uncheck</b></a> <br><a href="../post-pro_preferences.htm"><b>unchecked</b></a> <br><a href="../select_color_and_font.htm"><b>underlined</b></a> <br><nobr>undo <a href="../kernel/editing_studies.htm"><b>1</b></a> <a href="../kernel/setting_preferences.htm"><b>2</b></a> </nobr><br><a href="../kernel/setting_preferences.htm"><b>undone</b></a> <br><a href="../kernel/readme.html"><b>unfortunately</b></a> <br><a href="../kernel/readme.html"><b>unique</b></a> <br><a href="../post-pro_preferences.htm"><b>units</b></a> <br><a href="../kernel/about_salome_pro_help_system.htm"><b>unix</b></a> <br><a href="../kernel/saving_a_study.htm"><b>unload</b></a> <br><nobr>unloaded <a href="../kernel/opening_studies.htm"><b>1</b></a> <a href="../kernel/saving_a_study.htm"><b>2</b></a> </nobr><br><a href="../kernel/readme.html"><b>unnecessary</b></a> <br><a href="../kernel/readme.html"><b>unselect</b></a> <br><a href="../kernel/readme.html"><b>unselecting</b></a> <br><a href="../dump_study.htm"><b>unused</b></a> <br><nobr><a name="bms_UP"></a><a name="subkey_UP"></a>up <a href="../kernel/readme.html"><b>1</b></a> <a href="../kernel/opening_studies.htm"><b>2</b></a> <a href="../kernel/navigating_topics.htm"><b>3</b></a> <a href="../kernel/introduction.htm"><b>4</b></a> <a href="../kernel/using_object_browser.htm"><b>5</b></a> <a href="../kernel/salome_pro_desktop.htm"><b>6</b></a> </nobr><br><nobr>update <a href="../mesh_preferences.htm"><b>1</b></a> <a href="../kernel/using_catalog_generator.htm"><b>2</b></a> </nobr><br><nobr>updated <a href="../post-pro_preferences.htm"><b>1</b></a> <a href="../mesh_preferences.htm"><b>2</b></a> <a href="../kernel/using_catalog_generator.htm"><b>3</b></a> <a href="../kernel/saving_a_study.htm"><b>4</b></a> <a href="../kernel/salome_pro_desktop.htm"><b>5</b></a> </nobr><br><nobr>uploading <a href="../introduction_to_gui.htm"><b>1</b></a> <a href="../kernel/salome_pro_desktop.htm"><b>2</b></a> </nobr><br><nobr>upper <a href="../select_color_and_font.htm"><b>1</b></a> <a href="../kernel/saving_a_study.htm"><b>2</b></a> </nobr><br><a name="bms_US"></a><a name="subkey_US"></a><a href="../introduction_to_gui.htm"><b>usability</b></a> <br><nobr>usage <a href="../kernel/readme.html"><b>1</b></a> <a href="../post-pro_preferences.htm"><b>2</b></a> </nobr><br><nobr>used <a href="../kernel/readme.html"><b>1</b></a> <a href="../kernel/getting_started2.htm"><b>2</b></a> <a href="../kernel/about_salome_pro_architecture.htm"><b>3</b></a> <a href="../geom_preferences.htm"><b>4</b></a> <a href="../select_color_and_font.htm"><b>5</b></a> <a href="../post-pro_preferences.htm"><b>6</b></a> <a href="../mesh_preferences.htm"><b>7</b></a> <a href="../kernel/using_catalog_generator.htm"><b>8</b></a> <a href="../kernel/setting_preferences.htm"><b>9</b></a> <a href="../kernel/saving_a_study.htm"><b>10</b></a> <a href="../kernel/salome_pro_desktop.htm"><b>11</b></a> </nobr><br><nobr>user <a href="../kernel/readme.html"><b>1</b></a> <a href="../kernel/introduction_to_salome_pro.htm"><b>2</b></a> <a href="../kernel/introduction.htm"><b>3</b></a> <a href="../kernel/getting_properties_of_the_study.htm"><b>4</b></a> <a href="../kernel/about_salome_pro_architecture.htm"><b>5</b></a> <a href="../introduction_to_gui.htm"><b>6</b></a> <a href="../dump_study.htm"><b>7</b></a> <a href="../setting_preferences.htm"><b>8</b></a> <a href="../post-pro_preferences.htm"><b>9</b></a> <a href="../kernel/using_registry.htm"><b>10</b></a> <a href="../kernel/using_catalog_generator.htm"><b>11</b></a> </nobr><br><nobr>users <a href="../kernel/getting_properties_of_the_study.htm"><b>1</b></a> <a href="../kernel/using_catalog_generator.htm"><b>2</b></a> </nobr><br><nobr>uses <a href="../kernel/readme.html"><b>1</b></a> <a href="../kernel/salome_pro_desktop.htm"><b>2</b></a> </nobr><br><nobr>using <a href="../kernel/running_salome_pro.htm"><b>1</b></a> <a href="../kernel/readme.html"><b>2</b></a> <a href="../kernel/introduction_to_salome_pro.htm"><b>3</b></a> <a href="../kernel/introduction.htm"><b>4</b></a> <a href="../kernel/about_salome_pro_architecture.htm"><b>5</b></a> <a href="../dump_study.htm"><b>6</b></a> <a href="../post-pro_preferences.htm"><b>7</b></a> <a href="../kernel/using_registry.htm"><b>8</b></a> <a href="../kernel/using_object_browser.htm"><b>9</b></a> <a href="../kernel/using_left-hand_tabs.htm"><b>10</b></a> <a href="../kernel/using_catalog_generator.htm"><b>11</b></a> </nobr><br><a href="../kernel/readme.html"><b>usr</b></a> <br><a href="../kernel/readme.html"><b>usually</b></a> <br><a name="bms_UT"></a><a name="subkey_UT"></a><a href="../kernel/about_salome_pro_help_system.htm"><b>utilities</b></a> <br>\r
 <br><br>\r
-<a name="bm_Y"></a><a name="subkey_Y{"></a><a href="../kernel/readme.html"><b>y</b></a> <br><a name="bms_YE"></a><a name="subkey_YE"></a><a href="../kernel/introduction.htm"><b>year</b></a> <br><nobr>yes <a href="../kernel/readme.html"><b>1</b></a> <a href="../kernel/getting_properties_of_the_study.htm"><b>2</b></a> </nobr><br><nobr>yet <a href="../kernel/readme.html"><b>1</b></a> <a href="../kernel/setting_preferences.htm"><b>2</b></a> </nobr><br><nobr><a name="bms_YO"></a><a name="subkey_YO"></a>your <a href="../kernel/running_salome_pro.htm"><b>1</b></a> <a href="../kernel/readme.html"><b>2</b></a> <a href="../kernel/getting_properties_of_the_study.htm"><b>3</b></a> <a href="../kernel/editing_studies.htm"><b>4</b></a> <a href="../kernel/displaying_studies.htm"><b>5</b></a> <a href="../kernel/creating_a_new_study.htm"><b>6</b></a> <a href="../viewers.htm"><b>7</b></a> <a href="../post-pro_preferences.htm"><b>8</b></a> <a href="../mesh_preferences.htm"><b>9</b></a> <a href="../kernel/using_catalog_generator.htm"><b>10</b></a> <a href="../kernel/setting_preferences.htm"><b>11</b></a> <a href="../kernel/saving_a_study.htm"><b>12</b></a> <a href="../kernel/salome_pro_desktop.htm"><b>13</b></a> </nobr><br><a href="../kernel/setting_preferences.htm"><b>yourselves</b></a> <br>\r
-<br><br>\r
-<nobr><a name="bm_Z"></a><a name="subkey_ZO"></a>zone <a href="../kernel/displaying_studies.htm"><b>1</b></a> <a href="../kernel/creating_a_new_study.htm"><b>2</b></a> </nobr><br><br><br></p>\r
+<nobr><a name="bm_V"></a><a name="subkey_V{"></a>v <a href="../kernel/readme.html"><b>1</b></a> <a href="../kernel/setting_preferences.htm"><b>2</b></a> </nobr><br><a name="bms_VA"></a><a name="subkey_VA"></a><a href="../kernel/setting_preferences.htm"><b>valid</b></a> <br><a href="../kernel/about_salome_pro_architecture.htm"><b>validation</b></a> <br><nobr>value <a href="../kernel/readme.html"><b>1</b></a> <a href="../geom_preferences.htm"><b>2</b></a> <a href="../post-pro_preferences.htm"><b>3</b></a> <a href="../mesh_preferences.htm"><b>4</b></a> <a href="../kernel/using_object_browser.htm"><b>5</b></a> <a href="../kernel/setting_preferences.htm"><b>6</b></a> </nobr><br><nobr>values <a href="../kernel/readme.html"><b>1</b></a> <a href="../geom_preferences.htm"><b>2</b></a> <a href="../post-pro_preferences.htm"><b>3</b></a> </nobr><br><a href="../kernel/readme.html"><b>variable</b></a> <br><nobr>variables <a href="../kernel/running_salome_pro.htm"><b>1</b></a> <a href="../kernel/readme.html"><b>2</b></a> </nobr><br><a href="../kernel/readme.html"><b>varible</b></a> <br><nobr>variety <a href="../kernel/navigating_topics.htm"><b>1</b></a> <a href="../kernel/about_salome_pro_help_system.htm"><b>2</b></a> </nobr><br><nobr>various <a href="../kernel/readme.html"><b>1</b></a> <a href="../kernel/introduction_to_salome_pro.htm"><b>2</b></a> </nobr><br><nobr><a name="bms_VE"></a><a name="subkey_VE"></a>ve <a href="../kernel/readme.html"><b>1</b></a> <a href="../kernel/setting_preferences.htm"><b>2</b></a> </nobr><br><a href="../post-pro_preferences.htm"><b>vector</b></a> <br><a href="../kernel/readme.html"><b>ver</b></a> <br><a href="../kernel/readme.html"><b>ver_major</b></a> <br><a href="../kernel/readme.html"><b>ver_minor</b></a> <br><nobr>version <a href="../kernel/readme.html"><b>1</b></a> <a href="../kernel/displaying_studies.htm"><b>2</b></a> <a href="../introduction_to_gui.htm"><b>3</b></a> <a href="../kernel/using_catalog_generator.htm"><b>4</b></a> <a href="../kernel/salome_pro_desktop.htm"><b>5</b></a> </nobr><br><a href="../kernel/readme.html"><b>versions</b></a> <br><nobr>vertical <a href="../kernel/displaying_studies.htm"><b>1</b></a> <a href="../post-pro_preferences.htm"><b>2</b></a> <a href="../mesh_preferences.htm"><b>3</b></a> <a href="../kernel/setting_preferences.htm"><b>4</b></a> </nobr><br><a href="../kernel/displaying_studies.htm"><b>vertically</b></a> <br><nobr>very <a href="../kernel/readme.html"><b>1</b></a> <a href="../kernel/introduction.htm"><b>2</b></a> <a href="../introduction_to_gui.htm"><b>3</b></a> <a href="../post-pro_preferences.htm"><b>4</b></a> <a href="../kernel/salome_pro_desktop.htm"><b>5</b></a> </nobr><br><nobr><a name="bms_VI"></a><a name="subkey_VI"></a>view <a href="../kernel/readme.html"><b>1</b></a> <a href="../kernel/navigating_topics.htm"><b>2</b></a> <a href="../kernel/getting_properties_of_the_study.htm"><b>3</b></a> <a href="../kernel/about_salome_pro_architecture.htm"><b>4</b></a> <a href="../post-pro_preferences.htm"><b>5</b></a> <a href="../kernel/using_registry.htm"><b>6</b></a> <a href="../kernel/using_left-hand_tabs.htm"><b>7</b></a> <a href="../kernel/salome_pro_desktop.htm"><b>8</b></a> </nobr><br><nobr>viewer <a href="../kernel/creating_a_new_study.htm"><b>1</b></a> <a href="../introduction_to_gui.htm"><b>2</b></a> <a href="../post-pro_preferences.htm"><b>3</b></a> <a href="../mesh_preferences.htm"><b>4</b></a> <a href="../kernel/using_left-hand_tabs.htm"><b>5</b></a> <a href="../kernel/setting_preferences.htm"><b>6</b></a> <a href="../kernel/salome_pro_desktop.htm"><b>7</b></a> </nobr><br><nobr>viewers <a href="../kernel/introduction_to_salome_pro.htm"><b>1</b></a> <a href="../kernel/displaying_studies.htm"><b>2</b></a> <a href="../kernel/creating_a_new_study.htm"><b>3</b></a> <a href="../introduction_to_gui.htm"><b>4</b></a> <a href="../kernel/setting_preferences.htm"><b>5</b></a> <a href="../kernel/saving_a_study.htm"><b>6</b></a> <a href="../kernel/salome_pro_desktop.htm"><b>7</b></a> </nobr><br><nobr>viewing <a href="../kernel/navigating_topics.htm"><b>1</b></a> <a href="../kernel/setting_preferences.htm"><b>2</b></a> </nobr><br><a href="../kernel/introduction_to_salome_pro.htm"><b>visual</b></a> <br><nobr>visualisation <a href="../geom_preferences.htm"><b>1</b></a> <a href="../post-pro_preferences.htm"><b>2</b></a> </nobr><br><nobr>visualization <a href="../kernel/introduction_to_salome_pro.htm"><b>1</b></a> <a href="../kernel/introduction.htm"><b>2</b></a> <a href="../kernel/getting_started2.htm"><b>3</b></a> <a href="../introduction_to_gui.htm"><b>4</b></a> <a href="../kernel/salome_pro_desktop.htm"><b>5</b></a> </nobr><br><nobr>visualize <a href="../kernel/introduction.htm"><b>1</b></a> <a href="../post-pro_preferences.htm"><b>2</b></a> </nobr><br><br><br></p><p class="ftsbody" align="center"><a href="whlstf11.htm" target="_self" title="previous search group"><b>&gt;&gt;</b></a>\r
+\r
 </body>\r
 \r
 </html>\r
diff --git a/doc/salome/gui/KERNEL/whgdata/whlstf11.htm b/doc/salome/gui/KERNEL/whgdata/whlstf11.htm
new file mode 100755 (executable)
index 0000000..2cbc447
--- /dev/null
@@ -0,0 +1,48 @@
+<html>\r
+<head>\r
+<title>Search Words List</title>\r
+\r
+<meta name="generator" content="RoboHelp by eHelp Corporation   www.ehelp.com">\r
+<meta name="description" content="WebHelp 5.50">\r
+<base target="bsscright">\r
+<style>\r
+<!--\r
+body {margin-left:1pt; margin-top:1pt; margin-right:1pt;font-family:Arial; font-size:9pt;}\r
+\r
+A:link {font-family:Arial; font-size:9pt; color:#000000;  font-style:normal;  text-decoration:none; }\r
+A:visited {font-family:Arial; font-size:9pt; color:#000000; font-style:normal;  text-decoration:none; }\r
+A:active {background-color:#cccccc;}\r
+A:hover {font-family:Arial; font-size:9pt; color:#007f00; font-style:normal;  text-decoration:underline; }\r
+\r
+.tabs {background-color:#c0c0c0;}\r
+.ftsheader {margin-left:10pt; margin-top:0pt;}\r
+.ftsbody {margin-left:10pt; margin-top:0pt;}\r
+.inactive {color:#666666;}\r
+.ftsheader {background-color:White; } \r
+\r
+body {background-color:White; } \r
+p {color:Black; } p {font-family:Tahoma; } p {font-size:8pt; } p {font-style:Normal; } p {text-decoration:none; } \r
+A:link {color:Black; } A:link {font-family:Tahoma; } A:link {font-size:8pt; } A:link {font-style:Normal; } A:link {text-decoration:none; } \r
+A:visited {color:Black; } A:visited {font-family:Tahoma; } A:visited {font-size:8pt; } A:visited {font-style:Normal; } A:visited {text-decoration:none; } \r
+A:active {background-color:Silver; } \r
+A:hover {color:Navy; } A:hover {font-family:Tahoma; } A:hover {font-size:8pt; } A:hover {font-style:Normal; } A:hover {text-decoration:underline; } \r
+\r
+-->\r
+</style>\r
+</head>\r
+<body marginheight="0"  marginwidth="0" bgproperties="fixed">\r
+<p class="ftsbody" align="center"><a href="whlstf10.htm" target="_self" title="previous search group"><b>&lt;&lt;</b></a><br><br></p>\r
+<p class="ftsbody" >\r
+<nobr><a name="bms_VT"></a><a name="subkey_VT"></a>vtk <a href="../kernel/readme.html"><b>1</b></a> <a href="../kernel/displaying_studies.htm"><b>2</b></a> <a href="../kernel/creating_a_new_study.htm"><b>3</b></a> <a href="../introduction_to_gui.htm"><b>4</b></a> <a href="../kernel/setting_preferences.htm"><b>5</b></a> </nobr><br><a href="../kernel/readme.html"><b>vtkhome</b></a> <br>\r
+<br><br>\r
+<a name="bm_W"></a><a name="subkey_WA"></a><a href="../kernel/readme.html"><b>wait</b></a> <br><a href="../kernel/readme.html"><b>waiting</b></a> <br><nobr>want <a href="../kernel/readme.html"><b>1</b></a> <a href="../kernel/navigating_topics.htm"><b>2</b></a> <a href="../kernel/displaying_studies.htm"><b>3</b></a> </nobr><br><a href="../post-pro_preferences.htm"><b>warned</b></a> <br><nobr>warning <a href="../kernel/readme.html"><b>1</b></a> <a href="../kernel/getting_properties_of_the_study.htm"><b>2</b></a> </nobr><br><nobr>way <a href="../kernel/readme.html"><b>1</b></a> <a href="../kernel/introduction_to_salome_pro.htm"><b>2</b></a> <a href="../kernel/using_catalog_generator.htm"><b>3</b></a> </nobr><br><a name="bms_WE"></a><a name="subkey_WE"></a><a href="../kernel/about_salome_pro_help_system.htm"><b>web</b></a> <br><nobr>welcome <a href="../kernel/introduction.htm"><b>1</b></a> <a href="../kernel/about_salome_pro_help_system.htm"><b>2</b></a> </nobr><br><nobr><a name="bms_WH"></a><a name="subkey_WH"></a>what <a href="../kernel/readme.html"><b>1</b></a> <a href="../kernel/navigating_topics.htm"><b>2</b></a> <a href="../kernel/introduction.htm"><b>3</b></a> <a href="../kernel/about_salome_pro_architecture.htm"><b>4</b></a> <a href="../setting_preferences.htm"><b>5</b></a> <a href="../kernel/using_object_browser.htm"><b>6</b></a> </nobr><br><nobr>whenever <a href="../mesh_preferences.htm"><b>1</b></a> <a href="../kernel/setting_preferences.htm"><b>2</b></a> </nobr><br><a href="../kernel/displaying_studies.htm"><b>wherever</b></a> <br><a href="../kernel/readme.html"><b>whether</b></a> <br><a href="../kernel/about_salome_pro_architecture.htm"><b>while</b></a> <br><nobr>whole <a href="../setting_preferences.htm"><b>1</b></a> <a href="../post-pro_preferences.htm"><b>2</b></a> <a href="../kernel/setting_preferences.htm"><b>3</b></a> </nobr><br><a href="../mesh_preferences.htm"><b>whose</b></a> <br><nobr><a name="bms_WI"></a><a name="subkey_WI"></a>wide <a href="../kernel/introduction_to_salome_pro.htm"><b>1</b></a> <a href="../kernel/about_salome_pro_help_system.htm"><b>2</b></a> <a href="../select_color_and_font.htm"><b>3</b></a> </nobr><br><a href="../kernel/introduction_to_salome_pro.htm"><b>widgets</b></a> <br><nobr>width <a href="../post-pro_preferences.htm"><b>1</b></a> <a href="../mesh_preferences.htm"><b>2</b></a> </nobr><br><nobr>will <a href="../kernel/running_salome_pro.htm"><b>1</b></a> <a href="../kernel/readme.html"><b>2</b></a> <a href="../kernel/opening_studies.htm"><b>3</b></a> <a href="../kernel/getting_properties_of_the_study.htm"><b>4</b></a> <a href="../kernel/creating_a_new_study.htm"><b>5</b></a> <a href="../kernel/about_salome_pro_help_system.htm"><b>6</b></a> <a href="../dump_study.htm"><b>7</b></a> <a href="../setting_preferences.htm"><b>8</b></a> <a href="../select_color_and_font.htm"><b>9</b></a> <a href="../post-pro_preferences.htm"><b>10</b></a> <a href="../mesh_preferences.htm"><b>11</b></a> <a href="../kernel/using_registry.htm"><b>12</b></a> <a href="../kernel/using_object_browser.htm"><b>13</b></a> <a href="../kernel/using_catalog_generator.htm"><b>14</b></a> <a href="../kernel/setting_preferences.htm"><b>15</b></a> <a href="../kernel/saving_a_study.htm"><b>16</b></a> <a href="../kernel/salome_pro_desktop.htm"><b>17</b></a> </nobr><br><nobr>window <a href="../kernel/running_salome_pro.htm"><b>1</b></a> <a href="../kernel/readme.html"><b>2</b></a> <a href="../kernel/navigating_topics.htm"><b>3</b></a> <a href="../kernel/getting_started2.htm"><b>4</b></a> <a href="../kernel/displaying_studies.htm"><b>5</b></a> <a href="../kernel/creating_a_new_study.htm"><b>6</b></a> <a href="../introduction_to_gui.htm"><b>7</b></a> <a href="../select_color_and_font.htm"><b>8</b></a> <a href="../post-pro_preferences.htm"><b>9</b></a> <a href="../kernel/using_registry.htm"><b>10</b></a> <a href="../kernel/saving_a_study.htm"><b>11</b></a> <a href="../kernel/salome_pro_desktop.htm"><b>12</b></a> </nobr><br><a href="../introduction_to_gui.htm"><b>windowed</b></a> <br><nobr>windows <a href="../kernel/navigating_topics.htm"><b>1</b></a> <a href="../kernel/displaying_studies.htm"><b>2</b></a> <a href="../kernel/creating_a_new_study.htm"><b>3</b></a> <a href="../kernel/about_salome_pro_help_system.htm"><b>4</b></a> <a href="../introduction_to_gui.htm"><b>5</b></a> <a href="../kernel/setting_preferences.htm"><b>6</b></a> <a href="../kernel/saving_a_study.htm"><b>7</b></a> <a href="../kernel/salome_pro_desktop.htm"><b>8</b></a> </nobr><br><nobr>wireframe <a href="../geom_preferences.htm"><b>1</b></a> <a href="../mesh_preferences.htm"><b>2</b></a> </nobr><br><a href="../kernel/displaying_studies.htm"><b>wish</b></a> <br><a href="../kernel/readme.html"><b>wish8</b></a> <br><nobr>within <a href="../kernel/editing_studies.htm"><b>1</b></a> <a href="../kernel/creating_a_new_study.htm"><b>2</b></a> <a href="../kernel/about_salome_pro_architecture.htm"><b>3</b></a> <a href="../kernel/using_registry.htm"><b>4</b></a> </nobr><br><nobr>without <a href="../kernel/running_salome_pro.htm"><b>1</b></a> <a href="../kernel/readme.html"><b>2</b></a> <a href="../kernel/about_salome_pro_architecture.htm"><b>3</b></a> <a href="../dump_study.htm"><b>4</b></a> <a href="../setting_preferences.htm"><b>5</b></a> <a href="../post-pro_preferences.htm"><b>6</b></a> </nobr><br><a href="../kernel/readme.html"><b>wizard</b></a> <br><a href="../kernel/readme.html"><b>wizards</b></a> <br><nobr><a name="bms_WO"></a><a name="subkey_WO"></a>won <a href="../kernel/running_salome_pro.htm"><b>1</b></a> <a href="../kernel/readme.html"><b>2</b></a> <a href="../kernel/editing_studies.htm"><b>3</b></a> </nobr><br><a href="../kernel/using_left-hand_tabs.htm"><b>word</b></a> <br><a href="../kernel/using_left-hand_tabs.htm"><b>words</b></a> <br><nobr>work <a href="../kernel/readme.html"><b>1</b></a> <a href="../kernel/introduction_to_salome_pro.htm"><b>2</b></a> <a href="../kernel/getting_started2.htm"><b>3</b></a> <a href="../kernel/displaying_studies.htm"><b>4</b></a> <a href="../kernel/about_salome_pro_architecture.htm"><b>5</b></a> <a href="../post-pro_preferences.htm"><b>6</b></a> </nobr><br><nobr>working <a href="../kernel/getting_started2.htm"><b>1</b></a> <a href="../kernel/about_salome_pro_architecture.htm"><b>2</b></a> <a href="../dump_study.htm"><b>3</b></a> <a href="../post-pro_preferences.htm"><b>4</b></a> <a href="../kernel/saving_a_study.htm"><b>5</b></a> <a href="../kernel/salome_pro_desktop.htm"><b>6</b></a> </nobr><br><nobr>would <a href="../kernel/readme.html"><b>1</b></a> <a href="../kernel/using_catalog_generator.htm"><b>2</b></a> <a href="../kernel/saving_a_study.htm"><b>3</b></a> <a href="../kernel/salome_pro_desktop.htm"><b>4</b></a> </nobr><br><nobr><a name="bms_WR"></a><a name="subkey_WR"></a>write <a href="../kernel/introduction.htm"><b>1</b></a> <a href="../kernel/saving_a_study.htm"><b>2</b></a> </nobr><br><nobr>written <a href="../kernel/about_salome_pro_architecture.htm"><b>1</b></a> <a href="../kernel/saving_a_study.htm"><b>2</b></a> </nobr><br><a href="../kernel/readme.html"><b>wrong</b></a> <br><a name="bms_WW"></a><a name="subkey_WW"></a><a href="../kernel/about_salome_pro_architecture.htm"><b>www</b></a> <br>\r
+<br><br>\r
+<nobr><a name="bm_X"></a><a name="subkey_X{"></a>x <a href="../kernel/running_salome_pro.htm"><b>1</b></a> <a href="../post-pro_preferences.htm"><b>2</b></a> <a href="../mesh_preferences.htm"><b>3</b></a> </nobr><br><nobr><a name="bms_XM"></a><a name="subkey_XM"></a>xml <a href="../kernel/running_salome_pro.htm"><b>1</b></a> <a href="../kernel/readme.html"><b>2</b></a> <a href="../kernel/using_catalog_generator.htm"><b>3</b></a> </nobr><br><a name="bms_XT"></a><a name="subkey_XT"></a><a href="../kernel/running_salome_pro.htm"><b>xterm</b></a> <br><a name="bms_XX"></a><a name="subkey_XX"></a><a href="../kernel/readme.html"><b>xxxxx</b></a> <br>\r
+<br><br>\r
+<nobr><a name="bm_Y"></a><a name="subkey_Y{"></a>y <a href="../kernel/readme.html"><b>1</b></a> <a href="../post-pro_preferences.htm"><b>2</b></a> <a href="../mesh_preferences.htm"><b>3</b></a> </nobr><br><a name="bms_YE"></a><a name="subkey_YE"></a><a href="../kernel/introduction.htm"><b>year</b></a> <br><nobr>yes <a href="../kernel/readme.html"><b>1</b></a> <a href="../kernel/getting_properties_of_the_study.htm"><b>2</b></a> </nobr><br><nobr>yet <a href="../kernel/readme.html"><b>1</b></a> <a href="../kernel/setting_preferences.htm"><b>2</b></a> </nobr><br><nobr><a name="bms_YO"></a><a name="subkey_YO"></a>your <a href="../kernel/running_salome_pro.htm"><b>1</b></a> <a href="../kernel/readme.html"><b>2</b></a> <a href="../kernel/getting_properties_of_the_study.htm"><b>3</b></a> <a href="../kernel/editing_studies.htm"><b>4</b></a> <a href="../kernel/displaying_studies.htm"><b>5</b></a> <a href="../kernel/creating_a_new_study.htm"><b>6</b></a> <a href="../dump_study.htm"><b>7</b></a> <a href="../post-pro_preferences.htm"><b>8</b></a> <a href="../mesh_preferences.htm"><b>9</b></a> <a href="../kernel/using_catalog_generator.htm"><b>10</b></a> <a href="../kernel/setting_preferences.htm"><b>11</b></a> <a href="../kernel/saving_a_study.htm"><b>12</b></a> </nobr><br><a href="../select_color_and_font.htm"><b>yourselves</b></a> <br>\r
+<br><br>\r
+<nobr><a name="bm_Z"></a><a name="subkey_ZO"></a>zone <a href="../kernel/displaying_studies.htm"><b>1</b></a> <a href="../kernel/creating_a_new_study.htm"><b>2</b></a> </nobr><br><a href="../post-pro_preferences.htm"><b>zones</b></a> <br><a href="../post-pro_preferences.htm"><b>zoom</b></a> <br><a href="../post-pro_preferences.htm"><b>zoomed</b></a> <br><a href="../kernel/saving_a_study.htm"><b>zooming</b></a> <br><br><br></p>\r
+</body>\r
+\r
+</html>\r
+\r
index f933f9ce175b18f3cc902abb32749bd4473046c2..5c35d3302f820e496363d8af5e5fdb3f6aa4743c 100755 (executable)
@@ -33,11 +33,11 @@ A:hover {color:Navy; } A:hover {font-family:Tahoma; } A:hover {font-size:8pt; }
 <body marginheight="0"  marginwidth="0" bgproperties="fixed">\r
 <p class="ftsbody" align="center"><a href="whlstf1.htm" target="_self" title="previous search group"><b>&lt;&lt;</b></a><br><br></p>\r
 <p class="ftsbody" >\r
-\r
-\r
-<a name="bm_D"></a><a name="subkey_D{"></a><a href="../kernel/readme.html"><b>d</b></a> <br><nobr><a name="bms_DA"></a><a name="subkey_DA"></a>data <a href="../kernel/readme.html"><b>1</b></a> <a href="../kernel/introduction_to_salome_pro.htm"><b>2</b></a> <a href="../kernel/introduction_to_iapp.htm"><b>3</b></a> <a href="../kernel/introduction.htm"><b>4</b></a> <a href="../kernel/getting_started2.htm"><b>5</b></a> <a href="../kernel/creating_a_new_study.htm"><b>6</b></a> <a href="../kernel/about_salome_pro_architecture.htm"><b>7</b></a> <a href="../kernel/using_catalog_generator.htm"><b>8</b></a> <a href="../kernel/setting_preferences.htm"><b>9</b></a> <a href="../kernel/saving_a_study.htm"><b>10</b></a> </nobr><br><a href="../kernel/about_salome_pro_architecture.htm"><b>database</b></a> <br><nobr>date <a href="../kernel/getting_properties_of_the_study.htm"><b>1</b></a> <a href="../kernel/using_registry.htm"><b>2</b></a> </nobr><br><a name="bms_DE"></a><a name="subkey_DE"></a><a href="../kernel/using_object_browser.htm"><b>debugging</b></a> <br><nobr>default <a href="../kernel/running_salome_pro.htm"><b>1</b></a> <a href="../kernel/readme.html"><b>2</b></a> <a href="../kernel/introduction_to_salome_pro.htm"><b>3</b></a> <a href="../kernel/displaying_hiding_toolbars.htm"><b>4</b></a> <a href="../kernel/creating_a_new_study.htm"><b>5</b></a> <a href="../geom_preferences.htm"><b>6</b></a> <a href="../viewers.htm"><b>7</b></a> <a href="../setting_preferences.htm"><b>8</b></a> <a href="../post-pro_preferences.htm"><b>9</b></a> <a href="../mesh_preferences.htm"><b>10</b></a> <a href="../kernel/using_object_browser.htm"><b>11</b></a> <a href="../kernel/setting_preferences.htm"><b>12</b></a> <a href="../kernel/saving_a_study.htm"><b>13</b></a> </nobr><br><nobr>define <a href="../kernel/readme.html"><b>1</b></a> <a href="../kernel/introduction.htm"><b>2</b></a> <a href="../viewers.htm"><b>3</b></a> <a href="../post-pro_preferences.htm"><b>4</b></a> <a href="../kernel/setting_preferences.htm"><b>5</b></a> </nobr><br><nobr>defined <a href="../kernel/readme.html"><b>1</b></a> <a href="../kernel/about_salome_pro_architecture.htm"><b>2</b></a> </nobr><br><nobr>definite <a href="../kernel/running_salome_pro.htm"><b>1</b></a> <a href="../kernel/editing_studies.htm"><b>2</b></a> <a href="../kernel/displaying_hiding_toolbars.htm"><b>3</b></a> <a href="../kernel/creating_a_new_study.htm"><b>4</b></a> <a href="../kernel/about_salome_pro_architecture.htm"><b>5</b></a> <a href="../kernel/using_registry.htm"><b>6</b></a> <a href="../kernel/using_object_browser.htm"><b>7</b></a> <a href="../kernel/setting_preferences.htm"><b>8</b></a> <a href="../kernel/saving_a_study.htm"><b>9</b></a> </nobr><br><nobr>definition <a href="../kernel/introduction.htm"><b>1</b></a> <a href="../kernel/about_salome_pro_architecture.htm"><b>2</b></a> <a href="../kernel/using_left-hand_tabs.htm"><b>3</b></a> </nobr><br><a href="../kernel/using_left-hand_tabs.htm"><b>definitions</b></a> <br><a href="../kernel/introduction.htm"><b>delays</b></a> <br><a href="../kernel/introduction_to_iapp.htm"><b>demand</b></a> <br><a href="../kernel/introduction.htm"><b>demands</b></a> <br><a href="../kernel/readme.html"><b>dependancies</b></a> <br><a href="../kernel/readme.html"><b>dependencies</b></a> <br><a href="../kernel/readme.html"><b>depending</b></a> <br><nobr>depends <a href="../kernel/editing_studies.htm"><b>1</b></a> <a href="../kernel/using_object_browser.htm"><b>2</b></a> </nobr><br><a href="../kernel/about_salome_pro_architecture.htm"><b>derived</b></a> <br><a href="../kernel/using_object_browser.htm"><b>descending</b></a> <br><nobr>described <a href="../kernel/readme.html"><b>1</b></a> <a href="../kernel/about_salome_pro_architecture.htm"><b>2</b></a> <a href="../viewers.htm"><b>3</b></a> <a href="../mesh_preferences.htm"><b>4</b></a> </nobr><br><a href="../kernel/readme.html"><b>describes</b></a> <br><nobr>describing <a href="../kernel/about_salome_pro_help_system.htm"><b>1</b></a> <a href="../kernel/using_catalog_generator.htm"><b>2</b></a> </nobr><br><nobr>description <a href="../kernel/running_salome_pro.htm"><b>1</b></a> <a href="../kernel/readme.html"><b>2</b></a> <a href="../kernel/using_catalog_generator.htm"><b>3</b></a> </nobr><br><nobr>descriptions <a href="../kernel/readme.html"><b>1</b></a> <a href="../kernel/using_catalog_generator.htm"><b>2</b></a> </nobr><br><a href="../kernel/introduction.htm"><b>design</b></a> <br><a href="../kernel/using_catalog_generator.htm"><b>desired</b></a> <br><nobr>desktop <a href="../kernel/readme.html"><b>1</b></a> <a href="../kernel/introduction_to_iapp.htm"><b>2</b></a> <a href="../kernel/getting_started2.htm"><b>3</b></a> <a href="../kernel/displaying_studies.htm"><b>4</b></a> <a href="../kernel/displaying_hiding_toolbars.htm"><b>5</b></a> <a href="../kernel/saving_a_study.htm"><b>6</b></a> <a href="../kernel/salome_pro_desktop.htm"><b>7</b></a> </nobr><br><a href="../kernel/navigating_topics.htm"><b>destination</b></a> <br><nobr>destined <a href="../kernel/getting_started2.htm"><b>1</b></a> <a href="../viewers.htm"><b>2</b></a> <a href="../kernel/using_registry.htm"><b>3</b></a> <a href="../kernel/using_object_browser.htm"><b>4</b></a> <a href="../kernel/salome_pro_desktop.htm"><b>5</b></a> </nobr><br><nobr>detail <a href="../viewers.htm"><b>1</b></a> <a href="../mesh_preferences.htm"><b>2</b></a> </nobr><br><nobr>detailed <a href="../geom_preferences.htm"><b>1</b></a> <a href="../kernel/setting_preferences.htm"><b>2</b></a> </nobr><br><a href="../kernel/readme.html"><b>details</b></a> <br><a href="../kernel/readme.html"><b>dev</b></a> <br><a href="../kernel/about_salome_pro_architecture.htm"><b>developer</b></a> <br><nobr>development <a href="../kernel/introduction.htm"><b>1</b></a> <a href="../kernel/about_salome_pro_architecture.htm"><b>2</b></a> </nobr><br><a href="../kernel/about_salome_pro_architecture.htm"><b>developments</b></a> <br><a name="bms_DI"></a><a name="subkey_DI"></a><a href="../mesh_preferences.htm"><b>diagrams</b></a> <br><nobr>dialog <a href="../kernel/readme.html"><b>1</b></a> <a href="../kernel/opening_studies.htm"><b>2</b></a> <a href="../kernel/getting_properties_of_the_study.htm"><b>3</b></a> <a href="../geom_preferences.htm"><b>4</b></a> <a href="../mesh_preferences.htm"><b>5</b></a> <a href="../kernel/using_registry.htm"><b>6</b></a> <a href="../kernel/using_catalog_generator.htm"><b>7</b></a> <a href="../kernel/setting_preferences.htm"><b>8</b></a> <a href="../kernel/saving_a_study.htm"><b>9</b></a> </nobr><br><a href="../kernel/salome_pro_desktop.htm"><b>dialogs</b></a> <br><a href="../kernel/readme.html"><b>differ</b></a> <br><nobr>difference <a href="../kernel/readme.html"><b>1</b></a> <a href="../kernel/about_salome_pro_architecture.htm"><b>2</b></a> <a href="../kernel/saving_a_study.htm"><b>3</b></a> <a href="../kernel/salome_pro_desktop.htm"><b>4</b></a> </nobr><br><a href="../viewers.htm"><b>differences</b></a> <br><nobr>different <a href="../kernel/running_salome_pro.htm"><b>1</b></a> <a href="../kernel/readme.html"><b>2</b></a> <a href="../kernel/opening_studies.htm"><b>3</b></a> <a href="../kernel/getting_started2.htm"><b>4</b></a> <a href="../kernel/creating_a_new_study.htm"><b>5</b></a> <a href="../kernel/about_salome_pro_help_system.htm"><b>6</b></a> <a href="../kernel/about_salome_pro_architecture.htm"><b>7</b></a> <a href="../viewers.htm"><b>8</b></a> <a href="../kernel/using_object_browser.htm"><b>9</b></a> <a href="../kernel/saving_a_study.htm"><b>10</b></a> <a href="../kernel/salome_pro_desktop.htm"><b>11</b></a> </nobr><br><a href="../kernel/salome_pro_desktop.htm"><b>differs</b></a> <br><a href="../kernel/introduction.htm"><b>digital</b></a> <br><a href="../mesh_preferences.htm"><b>digits</b></a> <br><a href="../kernel/readme.html"><b>dir</b></a> <br><a href="../kernel/displaying_studies.htm"><b>direction</b></a> <br><nobr>directories <a href="../kernel/readme.html"><b>1</b></a> <a href="../kernel/setting_preferences.htm"><b>2</b></a> </nobr><br><nobr>directory <a href="../kernel/running_salome_pro.htm"><b>1</b></a> <a href="../kernel/readme.html"><b>2</b></a> <a href="../kernel/using_catalog_generator.htm"><b>3</b></a> <a href="../kernel/setting_preferences.htm"><b>4</b></a> <a href="../kernel/saving_a_study.htm"><b>5</b></a> </nobr><br><nobr>disable <a href="../kernel/readme.html"><b>1</b></a> <a href="../kernel/setting_preferences.htm"><b>2</b></a> </nobr><br><a href="../kernel/readme.html"><b>disable_flag</b></a> <br><nobr>disk <a href="../kernel/running_salome_pro.htm"><b>1</b></a> <a href="../kernel/readme.html"><b>2</b></a> </nobr><br><nobr>display <a href="../kernel/displaying_studies.htm"><b>1</b></a> <a href="../kernel/displaying_hiding_toolbars.htm"><b>2</b></a> <a href="../geom_preferences.htm"><b>3</b></a> <a href="../mesh_preferences.htm"><b>4</b></a> <a href="../kernel/using_registry.htm"><b>5</b></a> <a href="../kernel/using_left-hand_tabs.htm"><b>6</b></a> <a href="../kernel/setting_preferences.htm"><b>7</b></a> </nobr><br><nobr>displayed <a href="../kernel/running_salome_pro.htm"><b>1</b></a> <a href="../kernel/readme.html"><b>2</b></a> <a href="../kernel/displaying_studies.htm"><b>3</b></a> <a href="../mesh_preferences.htm"><b>4</b></a> <a href="../kernel/using_object_browser.htm"><b>5</b></a> <a href="../kernel/using_left-hand_tabs.htm"><b>6</b></a> <a href="../kernel/setting_preferences.htm"><b>7</b></a> <a href="../kernel/saving_a_study.htm"><b>8</b></a> <a href="../kernel/salome_pro_desktop.htm"><b>9</b></a> </nobr><br><nobr>displaying <a href="../kernel/displaying_studies.htm"><b>1</b></a> <a href="../kernel/displaying_hiding_toolbars.htm"><b>2</b></a> <a href="../kernel/using_object_browser.htm"><b>3</b></a> </nobr><br><nobr>displays <a href="../kernel/readme.html"><b>1</b></a> <a href="../kernel/navigating_topics.htm"><b>2</b></a> <a href="../kernel/using_registry.htm"><b>3</b></a> <a href="../kernel/using_object_browser.htm"><b>4</b></a> <a href="../kernel/using_left-hand_tabs.htm"><b>5</b></a> </nobr><br><a href="../kernel/about_salome_pro_architecture.htm"><b>distinction</b></a> <br><a href="../kernel/readme.html"><b>distribute</b></a> <br><a href="../kernel/about_salome_pro_architecture.htm"><b>distributed</b></a> <br><a href="../kernel/readme.html"><b>distribution</b></a> <br><nobr>divided <a href="../kernel/about_salome_pro_help_system.htm"><b>1</b></a> <a href="../kernel/using_registry.htm"><b>2</b></a> </nobr><br><nobr><a name="bms_DO"></a><a name="subkey_DO"></a>dockable <a href="../kernel/introduction_to_iapp.htm"><b>1</b></a> <a href="../kernel/saving_a_study.htm"><b>2</b></a> <a href="../kernel/salome_pro_desktop.htm"><b>3</b></a> </nobr><br><nobr>document <a href="../kernel/readme.html"><b>1</b></a> <a href="../kernel/getting_started2.htm"><b>2</b></a> <a href="../kernel/creating_a_new_study.htm"><b>3</b></a> <a href="../kernel/salome_pro_desktop.htm"><b>4</b></a> </nobr><br><nobr>does <a href="../kernel/readme.html"><b>1</b></a> <a href="../kernel/editing_studies.htm"><b>2</b></a> </nobr><br><a href="../kernel/readme.html"><b>doing</b></a> <br><nobr>domain <a href="../kernel/introduction_to_salome_pro.htm"><b>1</b></a> <a href="../kernel/about_salome_pro_architecture.htm"><b>2</b></a> </nobr><br><nobr>don <a href="../viewers.htm"><b>1</b></a> <a href="../kernel/using_catalog_generator.htm"><b>2</b></a> </nobr><br><a href="../kernel/readme.html"><b>done</b></a> <br><a href="../kernel/readme.html"><b>dot</b></a> <br><a href="../kernel/using_registry.htm"><b>double</b></a> <br><nobr>down <a href="../kernel/navigating_topics.htm"><b>1</b></a> <a href="../kernel/getting_properties_of_the_study.htm"><b>2</b></a> <a href="../kernel/using_object_browser.htm"><b>3</b></a> </nobr><br><a href="../kernel/readme.html"><b>doxygen</b></a> <br><a href="../kernel/readme.html"><b>doxytag</b></a> <br><a href="../kernel/readme.html"><b>doxywizard</b></a> <br><a name="bms_DR"></a><a name="subkey_DR"></a><a href="../viewers.htm"><b>drag</b></a> <br><a href="../kernel/displaying_hiding_toolbars.htm"><b>dragging</b></a> <br><a href="../kernel/about_salome_pro_architecture.htm"><b>dramatically</b></a> <br><a href="../viewers.htm"><b>draw</b></a> <br><a href="../kernel/readme.html"><b>drive</b></a> <br><a href="../kernel/navigating_topics.htm"><b>drop</b></a> <br><a href="../kernel/displaying_hiding_toolbars.htm"><b>dropping</b></a> <br><a name="bms_DU"></a><a name="subkey_DU"></a><a href="../viewers.htm"><b>dump</b></a> <br><a href="../kernel/readme.html"><b>dumpversion</b></a> <br><a href="../viewers.htm"><b>duplicate</b></a> <br><a name="bms_DY"></a><a name="subkey_DY"></a><a href="../kernel/introduction_to_iapp.htm"><b>dynamic</b></a> <br><a href="../kernel/introduction_to_salome_pro.htm"><b>dynamically</b></a> <br>\r
+<a name="bms_CP"></a><a name="subkey_CP"></a><a href="../kernel/running_salome_pro.htm"><b>cpp</b></a> <br><nobr><a name="bms_CR"></a><a name="subkey_CR"></a>create <a href="../kernel/running_salome_pro.htm"><b>1</b></a> <a href="../kernel/readme.html"><b>2</b></a> <a href="../kernel/introduction.htm"><b>3</b></a> <a href="../kernel/getting_started2.htm"><b>4</b></a> <a href="../kernel/displaying_studies.htm"><b>5</b></a> <a href="../kernel/creating_a_new_study.htm"><b>6</b></a> <a href="../kernel/about_salome_pro_architecture.htm"><b>7</b></a> <a href="../introduction_to_gui.htm"><b>8</b></a> <a href="../dump_study.htm"><b>9</b></a> <a href="../mesh_preferences.htm"><b>10</b></a> <a href="../kernel/using_catalog_generator.htm"><b>11</b></a> <a href="../kernel/setting_preferences.htm"><b>12</b></a> <a href="../kernel/saving_a_study.htm"><b>13</b></a> </nobr><br><nobr>created <a href="../kernel/running_salome_pro.htm"><b>1</b></a> <a href="../kernel/readme.html"><b>2</b></a> <a href="../kernel/opening_studies.htm"><b>3</b></a> <a href="../kernel/introduction_to_salome_pro.htm"><b>4</b></a> <a href="../kernel/creating_a_new_study.htm"><b>5</b></a> <a href="../kernel/about_salome_pro_help_system.htm"><b>6</b></a> <a href="../kernel/about_salome_pro_architecture.htm"><b>7</b></a> <a href="../introduction_to_gui.htm"><b>8</b></a> <a href="../dump_study.htm"><b>9</b></a> <a href="../kernel/using_object_browser.htm"><b>10</b></a> <a href="../kernel/setting_preferences.htm"><b>11</b></a> <a href="../kernel/salome_pro_desktop.htm"><b>12</b></a> </nobr><br><nobr>creates <a href="../kernel/readme.html"><b>1</b></a> <a href="../dump_study.htm"><b>2</b></a> </nobr><br><nobr>creating <a href="../kernel/creating_a_new_study.htm"><b>1</b></a> <a href="../kernel/salome_pro_desktop.htm"><b>2</b></a> </nobr><br><nobr>creation <a href="../kernel/readme.html"><b>1</b></a> <a href="../kernel/about_salome_pro_architecture.htm"><b>2</b></a> <a href="../introduction_to_gui.htm"><b>3</b></a> </nobr><br><nobr>cross <a href="../kernel/navigating_topics.htm"><b>1</b></a> <a href="../kernel/saving_a_study.htm"><b>2</b></a> </nobr><br><nobr><a name="bms_CS"></a><a name="subkey_CS"></a>csh <a href="../kernel/running_salome_pro.htm"><b>1</b></a> <a href="../kernel/readme.html"><b>2</b></a> </nobr><br><a href="../kernel/running_salome_pro.htm"><b>cshell</b></a> <br><a name="bms_CT"></a><a name="subkey_CT"></a><a href="../post-pro_preferences.htm"><b>ctrl</b></a> <br><nobr><a name="bms_CU"></a><a name="subkey_CU"></a>current <a href="../kernel/running_salome_pro.htm"><b>1</b></a> <a href="../kernel/readme.html"><b>2</b></a> <a href="../kernel/getting_properties_of_the_study.htm"><b>3</b></a> <a href="../kernel/displaying_studies.htm"><b>4</b></a> <a href="../dump_study.htm"><b>5</b></a> <a href="../setting_preferences.htm"><b>6</b></a> <a href="../post-pro_preferences.htm"><b>7</b></a> <a href="../kernel/using_registry.htm"><b>8</b></a> <a href="../kernel/using_object_browser.htm"><b>9</b></a> <a href="../kernel/setting_preferences.htm"><b>10</b></a> <a href="../kernel/saving_a_study.htm"><b>11</b></a> </nobr><br><nobr>currently <a href="../kernel/readme.html"><b>1</b></a> <a href="../kernel/navigating_topics.htm"><b>2</b></a> <a href="../kernel/using_registry.htm"><b>3</b></a> <a href="../kernel/using_object_browser.htm"><b>4</b></a> </nobr><br><a href="../post-pro_preferences.htm"><b>cursor</b></a> <br><a href="../kernel/setting_preferences.htm"><b>curve</b></a> <br><nobr>custom <a href="../kernel/introduction.htm"><b>1</b></a> <a href="../select_color_and_font.htm"><b>2</b></a> <a href="../kernel/using_catalog_generator.htm"><b>3</b></a> <a href="../kernel/setting_preferences.htm"><b>4</b></a> </nobr><br><a href="../kernel/introduction.htm"><b>customer</b></a> <br><a href="../kernel/about_salome_pro_architecture.htm"><b>customization</b></a> <br><a name="bms_CY"></a><a name="subkey_CY"></a><a href="../post-pro_preferences.htm"><b>cycles</b></a> <br><a href="../select_color_and_font.htm"><b>cyrillic</b></a> <br>\r
+<br><br>\r
+<a name="bm_D"></a><a name="subkey_D{"></a><a href="../kernel/readme.html"><b>d</b></a> <br><nobr><a name="bms_DA"></a><a name="subkey_DA"></a>data <a href="../kernel/readme.html"><b>1</b></a> <a href="../kernel/introduction_to_salome_pro.htm"><b>2</b></a> <a href="../kernel/introduction.htm"><b>3</b></a> <a href="../kernel/getting_started2.htm"><b>4</b></a> <a href="../kernel/creating_a_new_study.htm"><b>5</b></a> <a href="../kernel/about_salome_pro_architecture.htm"><b>6</b></a> <a href="../introduction_to_gui.htm"><b>7</b></a> <a href="../dump_study.htm"><b>8</b></a> <a href="../kernel/using_catalog_generator.htm"><b>9</b></a> <a href="../kernel/setting_preferences.htm"><b>10</b></a> <a href="../kernel/saving_a_study.htm"><b>11</b></a> </nobr><br><a href="../kernel/about_salome_pro_architecture.htm"><b>database</b></a> <br><nobr>date <a href="../kernel/getting_properties_of_the_study.htm"><b>1</b></a> <a href="../kernel/using_registry.htm"><b>2</b></a> </nobr><br><a name="bms_DE"></a><a name="subkey_DE"></a><a href="../kernel/using_object_browser.htm"><b>debugging</b></a> <br><a href="../post-pro_preferences.htm"><b>decrease</b></a> <br><a href="../post-pro_preferences.htm"><b>decreases</b></a> <br><nobr>default <a href="../kernel/running_salome_pro.htm"><b>1</b></a> <a href="../kernel/readme.html"><b>2</b></a> <a href="../kernel/creating_a_new_study.htm"><b>3</b></a> <a href="../geom_preferences.htm"><b>4</b></a> <a href="../setting_preferences.htm"><b>5</b></a> <a href="../post-pro_preferences.htm"><b>6</b></a> <a href="../mesh_preferences.htm"><b>7</b></a> <a href="../kernel/using_object_browser.htm"><b>8</b></a> <a href="../kernel/setting_preferences.htm"><b>9</b></a> <a href="../kernel/saving_a_study.htm"><b>10</b></a> <a href="../kernel/salome_pro_desktop.htm"><b>11</b></a> </nobr><br><a href="../kernel/running_salome_pro.htm"><b>defaults</b></a> <br><nobr>define <a href="../kernel/readme.html"><b>1</b></a> <a href="../kernel/introduction.htm"><b>2</b></a> <a href="../geom_preferences.htm"><b>3</b></a> <a href="../dump_study.htm"><b>4</b></a> <a href="../select_color_and_font.htm"><b>5</b></a> <a href="../post-pro_preferences.htm"><b>6</b></a> <a href="../mesh_preferences.htm"><b>7</b></a> <a href="../kernel/setting_preferences.htm"><b>8</b></a> </nobr><br><nobr>defined <a href="../kernel/readme.html"><b>1</b></a> <a href="../kernel/about_salome_pro_architecture.htm"><b>2</b></a> <a href="../mesh_preferences.htm"><b>3</b></a> </nobr><br><a href="../post-pro_preferences.htm"><b>defines</b></a> <br><nobr>definite <a href="../kernel/running_salome_pro.htm"><b>1</b></a> <a href="../kernel/editing_studies.htm"><b>2</b></a> <a href="../kernel/creating_a_new_study.htm"><b>3</b></a> <a href="../kernel/about_salome_pro_architecture.htm"><b>4</b></a> <a href="../kernel/using_registry.htm"><b>5</b></a> <a href="../kernel/using_object_browser.htm"><b>6</b></a> <a href="../kernel/salome_pro_desktop.htm"><b>7</b></a> </nobr><br><nobr>definition <a href="../kernel/introduction.htm"><b>1</b></a> <a href="../kernel/about_salome_pro_architecture.htm"><b>2</b></a> <a href="../kernel/using_left-hand_tabs.htm"><b>3</b></a> </nobr><br><a href="../kernel/using_left-hand_tabs.htm"><b>definitions</b></a> <br><a href="../kernel/introduction.htm"><b>delays</b></a> <br><a href="../kernel/saving_a_study.htm"><b>deleted</b></a> <br><nobr>demand <a href="../introduction_to_gui.htm"><b>1</b></a> <a href="../post-pro_preferences.htm"><b>2</b></a> </nobr><br><a href="../kernel/introduction.htm"><b>demands</b></a> <br><a href="../kernel/readme.html"><b>dependancies</b></a> <br><a href="../kernel/readme.html"><b>dependencies</b></a> <br><a href="../kernel/readme.html"><b>depending</b></a> <br><nobr>depends <a href="../kernel/editing_studies.htm"><b>1</b></a> <a href="../kernel/using_object_browser.htm"><b>2</b></a> </nobr><br><a href="../kernel/about_salome_pro_architecture.htm"><b>derived</b></a> <br><a href="../kernel/using_object_browser.htm"><b>descending</b></a> <br><nobr>described <a href="../kernel/readme.html"><b>1</b></a> <a href="../kernel/about_salome_pro_architecture.htm"><b>2</b></a> </nobr><br><a href="../kernel/readme.html"><b>describes</b></a> <br><nobr>describing <a href="../kernel/about_salome_pro_help_system.htm"><b>1</b></a> <a href="../kernel/using_catalog_generator.htm"><b>2</b></a> </nobr><br><nobr>description <a href="../kernel/running_salome_pro.htm"><b>1</b></a> <a href="../kernel/readme.html"><b>2</b></a> <a href="../kernel/using_catalog_generator.htm"><b>3</b></a> </nobr><br><nobr>descriptions <a href="../kernel/readme.html"><b>1</b></a> <a href="../kernel/using_catalog_generator.htm"><b>2</b></a> </nobr><br><a href="../kernel/introduction.htm"><b>design</b></a> <br><a href="../post-pro_preferences.htm"><b>designed</b></a> <br><a href="../kernel/using_catalog_generator.htm"><b>desired</b></a> <br><nobr>desktop <a href="../kernel/readme.html"><b>1</b></a> <a href="../kernel/getting_started2.htm"><b>2</b></a> <a href="../kernel/displaying_studies.htm"><b>3</b></a> <a href="../introduction_to_gui.htm"><b>4</b></a> <a href="../kernel/saving_a_study.htm"><b>5</b></a> <a href="../kernel/salome_pro_desktop.htm"><b>6</b></a> </nobr><br><a href="../kernel/navigating_topics.htm"><b>destination</b></a> <br><nobr>destined <a href="../kernel/getting_started2.htm"><b>1</b></a> <a href="../kernel/using_registry.htm"><b>2</b></a> <a href="../kernel/using_object_browser.htm"><b>3</b></a> <a href="../kernel/salome_pro_desktop.htm"><b>4</b></a> </nobr><br><a href="../kernel/setting_preferences.htm"><b>detailed</b></a> <br><a href="../kernel/readme.html"><b>details</b></a> <br><a href="../kernel/readme.html"><b>dev</b></a> <br><a href="../kernel/about_salome_pro_architecture.htm"><b>developer</b></a> <br><nobr>development <a href="../kernel/introduction.htm"><b>1</b></a> <a href="../kernel/about_salome_pro_architecture.htm"><b>2</b></a> </nobr><br><a href="../kernel/about_salome_pro_architecture.htm"><b>developments</b></a> <br><a href="../post-pro_preferences.htm"><b>device</b></a> <br><a name="bms_DI"></a><a name="subkey_DI"></a><a href="../mesh_preferences.htm"><b>diagrams</b></a> <br><nobr>dialog <a href="../kernel/readme.html"><b>1</b></a> <a href="../kernel/opening_studies.htm"><b>2</b></a> <a href="../kernel/getting_properties_of_the_study.htm"><b>3</b></a> <a href="../geom_preferences.htm"><b>4</b></a> <a href="../dump_study.htm"><b>5</b></a> <a href="../select_color_and_font.htm"><b>6</b></a> <a href="../post-pro_preferences.htm"><b>7</b></a> <a href="../mesh_preferences.htm"><b>8</b></a> <a href="../kernel/using_registry.htm"><b>9</b></a> <a href="../kernel/using_catalog_generator.htm"><b>10</b></a> <a href="../kernel/setting_preferences.htm"><b>11</b></a> <a href="../kernel/saving_a_study.htm"><b>12</b></a> </nobr><br><a href="../kernel/salome_pro_desktop.htm"><b>dialogs</b></a> <br><a href="../kernel/readme.html"><b>differ</b></a> <br><nobr>difference <a href="../kernel/readme.html"><b>1</b></a> <a href="../kernel/about_salome_pro_architecture.htm"><b>2</b></a> <a href="../kernel/saving_a_study.htm"><b>3</b></a> <a href="../kernel/salome_pro_desktop.htm"><b>4</b></a> </nobr><br><nobr>different <a href="../kernel/running_salome_pro.htm"><b>1</b></a> <a href="../kernel/readme.html"><b>2</b></a> <a href="../kernel/opening_studies.htm"><b>3</b></a> <a href="../kernel/getting_started2.htm"><b>4</b></a> <a href="../kernel/creating_a_new_study.htm"><b>5</b></a> <a href="../kernel/about_salome_pro_help_system.htm"><b>6</b></a> <a href="../kernel/about_salome_pro_architecture.htm"><b>7</b></a> <a href="../kernel/using_object_browser.htm"><b>8</b></a> <a href="../kernel/saving_a_study.htm"><b>9</b></a> <a href="../kernel/salome_pro_desktop.htm"><b>10</b></a> </nobr><br><a href="../post-pro_preferences.htm"><b>differently</b></a> <br><a href="../kernel/salome_pro_desktop.htm"><b>differs</b></a> <br><a href="../kernel/introduction.htm"><b>digital</b></a> <br><a href="../mesh_preferences.htm"><b>digits</b></a> <br><a href="../kernel/readme.html"><b>dir</b></a> <br><nobr>direction <a href="../kernel/displaying_studies.htm"><b>1</b></a> <a href="../post-pro_preferences.htm"><b>2</b></a> </nobr><br><nobr>directories <a href="../kernel/readme.html"><b>1</b></a> <a href="../kernel/setting_preferences.htm"><b>2</b></a> </nobr><br><nobr>directory <a href="../kernel/running_salome_pro.htm"><b>1</b></a> <a href="../kernel/readme.html"><b>2</b></a> <a href="../kernel/using_catalog_generator.htm"><b>3</b></a> <a href="../kernel/setting_preferences.htm"><b>4</b></a> <a href="../kernel/saving_a_study.htm"><b>5</b></a> </nobr><br><nobr>disable <a href="../kernel/readme.html"><b>1</b></a> <a href="../kernel/setting_preferences.htm"><b>2</b></a> </nobr><br><a href="../kernel/readme.html"><b>disable_flag</b></a> <br><a href="../post-pro_preferences.htm"><b>disabled</b></a> <br><nobr>disk <a href="../kernel/running_salome_pro.htm"><b>1</b></a> <a href="../kernel/readme.html"><b>2</b></a> </nobr><br><nobr>display <a href="../kernel/displaying_studies.htm"><b>1</b></a> <a href="../geom_preferences.htm"><b>2</b></a> <a href="../post-pro_preferences.htm"><b>3</b></a> <a href="../mesh_preferences.htm"><b>4</b></a> <a href="../kernel/using_registry.htm"><b>5</b></a> <a href="../kernel/using_left-hand_tabs.htm"><b>6</b></a> <a href="../kernel/setting_preferences.htm"><b>7</b></a> <a href="../kernel/salome_pro_desktop.htm"><b>8</b></a> </nobr><br><nobr>displayed <a href="../kernel/running_salome_pro.htm"><b>1</b></a> <a href="../kernel/readme.html"><b>2</b></a> <a href="../kernel/displaying_studies.htm"><b>3</b></a> <a href="../post-pro_preferences.htm"><b>4</b></a> <a href="../mesh_preferences.htm"><b>5</b></a> <a href="../kernel/using_object_browser.htm"><b>6</b></a> <a href="../kernel/using_left-hand_tabs.htm"><b>7</b></a> <a href="../kernel/setting_preferences.htm"><b>8</b></a> <a href="../kernel/saving_a_study.htm"><b>9</b></a> <a href="../kernel/salome_pro_desktop.htm"><b>10</b></a> </nobr><br><nobr>displaying <a href="../kernel/displaying_studies.htm"><b>1</b></a> <a href="../kernel/using_object_browser.htm"><b>2</b></a> </nobr><br><nobr>displays <a href="../kernel/readme.html"><b>1</b></a> <a href="../kernel/navigating_topics.htm"><b>2</b></a> <a href="../kernel/using_registry.htm"><b>3</b></a> <a href="../kernel/using_object_browser.htm"><b>4</b></a> <a href="../kernel/using_left-hand_tabs.htm"><b>5</b></a> </nobr><br><a href="../post-pro_preferences.htm"><b>distance</b></a> <br><a href="../kernel/about_salome_pro_architecture.htm"><b>distinction</b></a> <br><a href="../kernel/readme.html"><b>distribute</b></a> <br><a href="../kernel/about_salome_pro_architecture.htm"><b>distributed</b></a> <br><a href="../kernel/readme.html"><b>distribution</b></a> <br><nobr>divided <a href="../kernel/about_salome_pro_help_system.htm"><b>1</b></a> <a href="../post-pro_preferences.htm"><b>2</b></a> <a href="../kernel/using_registry.htm"><b>3</b></a> </nobr><br><a href="../post-pro_preferences.htm"><b>divides</b></a> <br><nobr><a name="bms_DO"></a><a name="subkey_DO"></a>dockable <a href="../kernel/displaying_studies.htm"><b>1</b></a> <a href="../introduction_to_gui.htm"><b>2</b></a> <a href="../kernel/saving_a_study.htm"><b>3</b></a> <a href="../kernel/salome_pro_desktop.htm"><b>4</b></a> </nobr><br><nobr>document <a href="../kernel/readme.html"><b>1</b></a> <a href="../kernel/getting_started2.htm"><b>2</b></a> <a href="../kernel/creating_a_new_study.htm"><b>3</b></a> <a href="../dump_study.htm"><b>4</b></a> <a href="../kernel/salome_pro_desktop.htm"><b>5</b></a> </nobr><br><nobr>does <a href="../kernel/readme.html"><b>1</b></a> <a href="../kernel/editing_studies.htm"><b>2</b></a> </nobr><br><a href="../kernel/readme.html"><b>doing</b></a> <br><nobr>domain <a href="../kernel/introduction_to_salome_pro.htm"><b>1</b></a> <a href="../kernel/about_salome_pro_architecture.htm"><b>2</b></a> </nobr><br><a href="../post-pro_preferences.htm"><b>dominant</b></a> <br><a href="../kernel/using_catalog_generator.htm"><b>don</b></a> <br><nobr>done <a href="../kernel/readme.html"><b>1</b></a> <a href="../post-pro_preferences.htm"><b>2</b></a> </nobr><br><a href="../kernel/readme.html"><b>dot</b></a> <br><a href="../kernel/using_registry.htm"><b>double</b></a> <br><nobr>down <a href="../kernel/navigating_topics.htm"><b>1</b></a> <a href="../kernel/getting_properties_of_the_study.htm"><b>2</b></a> <a href="../kernel/using_object_browser.htm"><b>3</b></a> </nobr><br><a href="../kernel/readme.html"><b>doxygen</b></a> <br><a href="../kernel/readme.html"><b>doxytag</b></a> <br><a href="../kernel/readme.html"><b>doxywizard</b></a> <br><a name="bms_DR"></a><a name="subkey_DR"></a><a href="../kernel/salome_pro_desktop.htm"><b>dragging</b></a> <br><a href="../kernel/about_salome_pro_architecture.htm"><b>dramatically</b></a> <br><a href="../kernel/readme.html"><b>drive</b></a> <br><a href="../kernel/navigating_topics.htm"><b>drop</b></a> <br><a href="../kernel/salome_pro_desktop.htm"><b>dropping</b></a> <br><a name="bms_DU"></a><a name="subkey_DU"></a><a href="../dump_study.htm"><b>dump</b></a> <br><a href="../kernel/readme.html"><b>dumpversion</b></a> <br><a name="bms_DY"></a><a name="subkey_DY"></a><a href="../introduction_to_gui.htm"><b>dynamic</b></a> <br><nobr>dynamically <a href="../kernel/introduction_to_salome_pro.htm"><b>1</b></a> <a href="../post-pro_preferences.htm"><b>2</b></a> </nobr><br>\r
 <br><br>\r
-<nobr><a name="bm_E"></a><a name="subkey_E{"></a>e <a href="../kernel/readme.html"><b>1</b></a> <a href="../kernel/introduction_to_iapp.htm"><b>2</b></a> <a href="../kernel/saving_a_study.htm"><b>3</b></a> <a href="../kernel/salome_pro_desktop.htm"><b>4</b></a> </nobr><br><a name="bms_EA"></a><a name="subkey_EA"></a><a href="../viewers.htm"><b>ease</b></a> <br><a href="../kernel/introduction.htm"><b>easier</b></a> <br><a href="../kernel/about_salome_pro_architecture.htm"><b>easily</b></a> <br><a href="../kernel/about_salome_pro_architecture.htm"><b>easy</b></a> <br><a name="bms_EC"></a><a name="subkey_EC"></a><a href="../kernel/about_salome_pro_architecture.htm"><b>economically</b></a> <br><a name="bms_ED"></a><a name="subkey_ED"></a><a href="../mesh_preferences.htm"><b>edges</b></a> <br><nobr>edit <a href="../kernel/running_salome_pro.htm"><b>1</b></a> <a href="../kernel/readme.html"><b>2</b></a> <a href="../kernel/getting_properties_of_the_study.htm"><b>3</b></a> <a href="../kernel/editing_studies.htm"><b>4</b></a> </nobr><br><nobr>editing <a href="../kernel/introduction_to_iapp.htm"><b>1</b></a> <a href="../kernel/editing_studies.htm"><b>2</b></a> </nobr><br><a href="../setting_preferences.htm"><b>editor</b></a> <br><a name="bms_EF"></a><a name="subkey_EF"></a><a href="../kernel/introduction.htm"><b>efficient</b></a> <br><a name="bms_EG"></a><a name="subkey_EG"></a><a href="../kernel/readme.html"><b>egrep</b></a> <br><nobr><a name="bms_EI"></a><a name="subkey_EI"></a>either <a href="../post-pro_preferences.htm"><b>1</b></a> <a href="../kernel/using_catalog_generator.htm"><b>2</b></a> <a href="../kernel/setting_preferences.htm"><b>3</b></a> </nobr><br><a name="bms_EL"></a><a name="subkey_EL"></a><a href="../kernel/introduction.htm"><b>electrical</b></a> <br><a href="../kernel/introduction.htm"><b>electronic</b></a> <br><a href="../kernel/introduction.htm"><b>element</b></a> <br><a href="../mesh_preferences.htm"><b>elements</b></a> <br><nobr><a name="bms_EM"></a><a name="subkey_EM"></a>empty <a href="../kernel/readme.html"><b>1</b></a> <a href="../kernel/displaying_studies.htm"><b>2</b></a> </nobr><br><a name="bms_EN"></a><a name="subkey_EN"></a><a href="../kernel/setting_preferences.htm"><b>enable</b></a> <br><a href="../kernel/using_left-hand_tabs.htm"><b>enables</b></a> <br><a href="../kernel/about_salome_pro_architecture.htm"><b>encouraging</b></a> <br><nobr>end <a href="../kernel/readme.html"><b>1</b></a> <a href="../kernel/about_salome_pro_architecture.htm"><b>2</b></a> <a href="../setting_preferences.htm"><b>3</b></a> </nobr><br><a href="../kernel/about_salome_pro_architecture.htm"><b>enforcing</b></a> <br><a href="../kernel/about_salome_pro_architecture.htm"><b>engine</b></a> <br><a href="../kernel/readme.html"><b>enough</b></a> <br><a href="../kernel/introduction.htm"><b>ensure</b></a> <br><a href="../kernel/about_salome_pro_architecture.htm"><b>ensuring</b></a> <br><nobr>enter <a href="../kernel/running_salome_pro.htm"><b>1</b></a> <a href="../kernel/readme.html"><b>2</b></a> <a href="../kernel/getting_properties_of_the_study.htm"><b>3</b></a> <a href="../kernel/saving_a_study.htm"><b>4</b></a> </nobr><br><a href="../kernel/readme.html"><b>entered</b></a> <br><a href="../mesh_preferences.htm"><b>entity</b></a> <br><nobr>entry <a href="../kernel/using_object_browser.htm"><b>1</b></a> <a href="../kernel/setting_preferences.htm"><b>2</b></a> </nobr><br><a href="../kernel/running_salome_pro.htm"><b>env</b></a> <br><a href="../kernel/readme.html"><b>env_</b></a> <br><a href="../kernel/readme.html"><b>env_for_launch</b></a> <br><a href="../kernel/readme.html"><b>env_products</b></a> <br><a href="../kernel/readme.html"><b>env_vtk</b></a> <br><nobr>environment <a href="../kernel/running_salome_pro.htm"><b>1</b></a> <a href="../kernel/readme.html"><b>2</b></a> <a href="../kernel/introduction_to_iapp.htm"><b>3</b></a> <a href="../kernel/introduction.htm"><b>4</b></a> <a href="../kernel/getting_started2.htm"><b>5</b></a> <a href="../kernel/displaying_studies.htm"><b>6</b></a> </nobr><br><nobr>environments <a href="../kernel/introduction.htm"><b>1</b></a> <a href="../kernel/about_salome_pro_architecture.htm"><b>2</b></a> </nobr><br><a name="bms_EQ"></a><a name="subkey_EQ"></a><a href="../kernel/readme.html"><b>equal</b></a> <br><a href="../kernel/introduction.htm"><b>equipment</b></a> <br><a name="bms_ER"></a><a name="subkey_ER"></a><a href="../kernel/readme.html"><b>error</b></a> <br><nobr><a name="bms_ET"></a><a name="subkey_ET"></a>etc <a href="../kernel/readme.html"><b>1</b></a> <a href="../kernel/introduction_to_salome_pro.htm"><b>2</b></a> <a href="../kernel/introduction_to_iapp.htm"><b>3</b></a> <a href="../kernel/displaying_hiding_toolbars.htm"><b>4</b></a> <a href="../kernel/about_salome_pro_architecture.htm"><b>5</b></a> <a href="../kernel/salome_pro_desktop.htm"><b>6</b></a> </nobr><br><nobr><a name="bms_EV"></a><a name="subkey_EV"></a>even <a href="../kernel/about_salome_pro_architecture.htm"><b>1</b></a> <a href="../kernel/salome_pro_desktop.htm"><b>2</b></a> </nobr><br><a href="../kernel/using_registry.htm"><b>ever</b></a> <br><nobr>every <a href="../kernel/introduction.htm"><b>1</b></a> <a href="../kernel/using_left-hand_tabs.htm"><b>2</b></a> </nobr><br><a href="../kernel/readme.html"><b>everything</b></a> <br><a href="../kernel/introduction.htm"><b>evolutions</b></a> <br><a href="../kernel/about_salome_pro_architecture.htm"><b>evolve</b></a> <br><a name="bms_EX"></a><a name="subkey_EX"></a><a href="../kernel/running_salome_pro.htm"><b>ex</b></a> <br><a href="../kernel/readme.html"><b>exact</b></a> <br><a href="../kernel/readme.html"><b>exactly</b></a> <br><a href="../kernel/readme.html"><b>examle</b></a> <br><nobr>example <a href="../kernel/readme.html"><b>1</b></a> <a href="../kernel/introduction.htm"><b>2</b></a> <a href="../kernel/displaying_studies.htm"><b>3</b></a> <a href="../kernel/using_catalog_generator.htm"><b>4</b></a> <a href="../kernel/saving_a_study.htm"><b>5</b></a> <a href="../kernel/salome_pro_desktop.htm"><b>6</b></a> </nobr><br><a href="../kernel/introduction_to_iapp.htm"><b>exception</b></a> <br><a href="../kernel/about_salome_pro_architecture.htm"><b>exchanges</b></a> <br><nobr>execution <a href="../kernel/introduction_to_salome_pro.htm"><b>1</b></a> <a href="../kernel/introduction.htm"><b>2</b></a> </nobr><br><a href="../kernel/readme.html"><b>exist</b></a> <br><a href="../kernel/readme.html"><b>existence</b></a> <br><nobr>existing <a href="../kernel/opening_studies.htm"><b>1</b></a> <a href="../kernel/introduction_to_salome_pro.htm"><b>2</b></a> <a href="../kernel/about_salome_pro_architecture.htm"><b>3</b></a> <a href="../setting_preferences.htm"><b>4</b></a> <a href="../kernel/using_catalog_generator.htm"><b>5</b></a> <a href="../kernel/saving_a_study.htm"><b>6</b></a> </nobr><br><a href="../kernel/readme.html"><b>exists</b></a> <br><a href="../kernel/about_salome_pro_architecture.htm"><b>expandability</b></a> <br><a href="../kernel/navigating_topics.htm"><b>expanding</b></a> <br><a href="../kernel/introduction.htm"><b>expectations</b></a> <br><a href="../kernel/about_salome_pro_architecture.htm"><b>exploits</b></a> <br><a href="../kernel/about_salome_pro_help_system.htm"><b>explorer</b></a> <br><a href="../kernel/introduction.htm"><b>export</b></a> <br><a href="../viewers.htm"><b>exports</b></a> <br><a href="../kernel/about_salome_pro_architecture.htm"><b>exposes</b></a> <br><a href="../kernel/setting_preferences.htm"><b>extended</b></a> <br><a href="../kernel/saving_a_study.htm"><b>extensions</b></a> <br><a href="../viewers.htm"><b>exterior</b></a> <br><a href="../kernel/setting_preferences.htm"><b>external</b></a> <br><a href="../kernel/readme.html"><b>extracting</b></a> <br><a href="../kernel/introduction.htm"><b>extremely</b></a> <br><br><br></p><p class="ftsbody" align="center"><a href="whlstf3.htm" target="_self" title="previous search group"><b>&gt;&gt;</b></a>\r
+<nobr><a name="bm_E"></a><a name="subkey_E{"></a>e <a href="../kernel/readme.html"><b>1</b></a> <a href="../introduction_to_gui.htm"><b>2</b></a> <a href="../kernel/saving_a_study.htm"><b>3</b></a> <a href="../kernel/salome_pro_desktop.htm"><b>4</b></a> </nobr><br><a name="bms_EA"></a><a name="subkey_EA"></a><a href="../kernel/introduction.htm"><b>easier</b></a> <br><a href="../kernel/about_salome_pro_architecture.htm"><b>easily</b></a> <br><a href="../kernel/about_salome_pro_architecture.htm"><b>easy</b></a> <br><a name="bms_EC"></a><a name="subkey_EC"></a><a href="../kernel/about_salome_pro_architecture.htm"><b>economically</b></a> <br><a name="bms_ED"></a><a name="subkey_ED"></a><a href="../mesh_preferences.htm"><b>edges</b></a> <br><nobr>edit <a href="../kernel/running_salome_pro.htm"><b>1</b></a> <a href="../kernel/readme.html"><b>2</b></a> <a href="../kernel/getting_properties_of_the_study.htm"><b>3</b></a> <a href="../kernel/editing_studies.htm"><b>4</b></a> </nobr><br><a href="../post-pro_preferences.htm"><b>editable</b></a> <br><nobr>editing <a href="../kernel/editing_studies.htm"><b>1</b></a> <a href="../introduction_to_gui.htm"><b>2</b></a> </nobr><br><a href="../post-pro_preferences.htm"><b>edition</b></a> <br><a href="../setting_preferences.htm"><b>editor</b></a> <br><a name="bms_EF"></a><a name="subkey_EF"></a><a href="../kernel/introduction.htm"><b>efficient</b></a> <br><br><br></p><p class="ftsbody" align="center"><a href="whlstf3.htm" target="_self" title="previous search group"><b>&gt;&gt;</b></a>\r
 \r
 </body>\r
 \r
index e3288fafef0878fecaf81cbbc793e25a09fd25b9..b552245d4ed92b1cfb8c90ddb9a77429a578a94b 100755 (executable)
@@ -33,15 +33,11 @@ A:hover {color:Navy; } A:hover {font-family:Tahoma; } A:hover {font-size:8pt; }
 <body marginheight="0"  marginwidth="0" bgproperties="fixed">\r
 <p class="ftsbody" align="center"><a href="whlstf2.htm" target="_self" title="previous search group"><b>&lt;&lt;</b></a><br><br></p>\r
 <p class="ftsbody" >\r
-\r
-\r
-<a name="bm_F"></a><a name="subkey_F{"></a><a href="../kernel/readme.html"><b>f</b></a> <br><nobr><a name="bms_FA"></a><a name="subkey_FA"></a>face <a href="../post-pro_preferences.htm"><b>1</b></a> <a href="../mesh_preferences.htm"><b>2</b></a> <a href="../kernel/setting_preferences.htm"><b>3</b></a> </nobr><br><a href="../mesh_preferences.htm"><b>faces</b></a> <br><a href="../kernel/about_salome_pro_architecture.htm"><b>facilitated</b></a> <br><a href="../kernel/introduction_to_salome_pro.htm"><b>facilitates</b></a> <br><nobr>fact <a href="../kernel/readme.html"><b>1</b></a> <a href="../kernel/salome_pro_desktop.htm"><b>2</b></a> </nobr><br><a href="../kernel/using_catalog_generator.htm"><b>factory</b></a> <br><a href="../kernel/readme.html"><b>fail</b></a> <br><a href="../kernel/readme.html"><b>fails</b></a> <br><a href="../kernel/readme.html"><b>false</b></a> <br><a href="../viewers.htm"><b>fast</b></a> <br><a name="bms_FE"></a><a name="subkey_FE"></a><a href="../kernel/readme.html"><b>feature</b></a> <br><nobr>features <a href="../kernel/editing_studies.htm"><b>1</b></a> <a href="../kernel/about_salome_pro_help_system.htm"><b>2</b></a> </nobr><br><nobr><a name="bms_FI"></a><a name="subkey_FI"></a>field <a href="../kernel/readme.html"><b>1</b></a> <a href="../kernel/getting_properties_of_the_study.htm"><b>2</b></a> <a href="../post-pro_preferences.htm"><b>3</b></a> <a href="../mesh_preferences.htm"><b>4</b></a> <a href="../kernel/setting_preferences.htm"><b>5</b></a> </nobr><br><a href="../kernel/introduction.htm"><b>fields</b></a> <br><a href="../kernel/readme.html"><b>fig</b></a> <br><nobr>figure <a href="../kernel/readme.html"><b>1</b></a> <a href="../kernel/creating_a_new_study.htm"><b>2</b></a> </nobr><br><nobr>file <a href="../kernel/running_salome_pro.htm"><b>1</b></a> <a href="../kernel/readme.html"><b>2</b></a> <a href="../kernel/opening_studies.htm"><b>3</b></a> <a href="../kernel/getting_properties_of_the_study.htm"><b>4</b></a> <a href="../kernel/creating_a_new_study.htm"><b>5</b></a> <a href="../setting_preferences.htm"><b>6</b></a> <a href="../kernel/using_catalog_generator.htm"><b>7</b></a> <a href="../kernel/setting_preferences.htm"><b>8</b></a> <a href="../kernel/saving_a_study.htm"><b>9</b></a> <a href="../kernel/salome_pro_desktop.htm"><b>10</b></a> </nobr><br><nobr>files <a href="../kernel/readme.html"><b>1</b></a> <a href="../post-pro_preferences.htm"><b>2</b></a> <a href="../kernel/using_catalog_generator.htm"><b>3</b></a> <a href="../kernel/setting_preferences.htm"><b>4</b></a> <a href="../kernel/saving_a_study.htm"><b>5</b></a> </nobr><br><a href="../mesh_preferences.htm"><b>fill</b></a> <br><nobr>find <a href="../kernel/readme.html"><b>1</b></a> <a href="../kernel/using_left-hand_tabs.htm"><b>2</b></a> <a href="../kernel/using_catalog_generator.htm"><b>3</b></a> </nobr><br><a href="../kernel/readme.html"><b>find_in_path</b></a> <br><a href="../kernel/readme.html"><b>finds</b></a> <br><a href="../kernel/about_salome_pro_architecture.htm"><b>finely</b></a> <br><nobr>finish <a href="../kernel/readme.html"><b>1</b></a> <a href="../kernel/navigating_topics.htm"><b>2</b></a> </nobr><br><a href="../kernel/readme.html"><b>finishes</b></a> <br><a href="../kernel/introduction.htm"><b>finite</b></a> <br><nobr>first <a href="../kernel/readme.html"><b>1</b></a> <a href="../kernel/using_object_browser.htm"><b>2</b></a> </nobr><br><a href="../viewers.htm"><b>fit</b></a> <br><a href="../kernel/introduction_to_salome_pro.htm"><b>five</b></a> <br><a name="bms_FL"></a><a name="subkey_FL"></a><a href="../kernel/readme.html"><b>flag</b></a> <br><a href="../kernel/about_salome_pro_architecture.htm"><b>flexibility</b></a> <br><nobr>flexible <a href="../kernel/readme.html"><b>1</b></a> <a href="../kernel/introduction_to_iapp.htm"><b>2</b></a> <a href="../kernel/introduction.htm"><b>3</b></a> </nobr><br><a name="bms_FO"></a><a name="subkey_FO"></a><a href="../kernel/navigating_topics.htm"><b>focus</b></a> <br><nobr>folder <a href="../kernel/readme.html"><b>1</b></a> <a href="../kernel/using_object_browser.htm"><b>2</b></a> </nobr><br><nobr>follow <a href="../kernel/readme.html"><b>1</b></a> <a href="../kernel/about_salome_pro_architecture.htm"><b>2</b></a> <a href="../geom_preferences.htm"><b>3</b></a> </nobr><br><nobr>following <a href="../kernel/running_salome_pro.htm"><b>1</b></a> <a href="../kernel/readme.html"><b>2</b></a> <a href="../kernel/opening_studies.htm"><b>3</b></a> <a href="../kernel/navigating_topics.htm"><b>4</b></a> <a href="../kernel/getting_started2.htm"><b>5</b></a> <a href="../kernel/getting_properties_of_the_study.htm"><b>6</b></a> <a href="../kernel/about_salome_pro_architecture.htm"><b>7</b></a> <a href="../geom_preferences.htm"><b>8</b></a> <a href="../viewers.htm"><b>9</b></a> <a href="../kernel/using_registry.htm"><b>10</b></a> <a href="../kernel/using_left-hand_tabs.htm"><b>11</b></a> <a href="../kernel/using_catalog_generator.htm"><b>12</b></a> <a href="../kernel/setting_preferences.htm"><b>13</b></a> <a href="../kernel/saving_a_study.htm"><b>14</b></a> <a href="../kernel/salome_pro_desktop.htm"><b>15</b></a> </nobr><br><nobr>font <a href="../post-pro_preferences.htm"><b>1</b></a> <a href="../mesh_preferences.htm"><b>2</b></a> <a href="../kernel/setting_preferences.htm"><b>3</b></a> </nobr><br><a href="../kernel/using_catalog_generator.htm"><b>forget</b></a> <br><nobr>format <a href="../kernel/opening_studies.htm"><b>1</b></a> <a href="../kernel/introduction.htm"><b>2</b></a> <a href="../kernel/about_salome_pro_help_system.htm"><b>3</b></a> <a href="../viewers.htm"><b>4</b></a> <a href="../kernel/setting_preferences.htm"><b>5</b></a> </nobr><br><a href="../kernel/introduction.htm"><b>formats</b></a> <br><nobr>four <a href="../kernel/introduction_to_iapp.htm"><b>1</b></a> <a href="../viewers.htm"><b>2</b></a> </nobr><br><a name="bms_FR"></a><a name="subkey_FR"></a><a href="../kernel/readme.html"><b>frame</b></a> <br><nobr>framework <a href="../kernel/introduction_to_iapp.htm"><b>1</b></a> <a href="../kernel/using_object_browser.htm"><b>2</b></a> </nobr><br><a href="../kernel/introduction.htm"><b>free</b></a> <br><a href="../kernel/introduction.htm"><b>friendly</b></a> <br><a href="../viewers.htm"><b>front</b></a> <br><nobr><a name="bms_FU"></a><a name="subkey_FU"></a>full <a href="../viewers.htm"><b>1</b></a> <a href="../post-pro_preferences.htm"><b>2</b></a> <a href="../mesh_preferences.htm"><b>3</b></a> <a href="../kernel/using_left-hand_tabs.htm"><b>4</b></a> </nobr><br><nobr>function <a href="../kernel/readme.html"><b>1</b></a> <a href="../kernel/introduction_to_salome_pro.htm"><b>2</b></a> <a href="../viewers.htm"><b>3</b></a> </nobr><br><a href="../kernel/readme.html"><b>function_name</b></a> <br><a href="../kernel/salome_pro_desktop.htm"><b>functional</b></a> <br><nobr>functionality <a href="../kernel/getting_started2.htm"><b>1</b></a> <a href="../kernel/editing_studies.htm"><b>2</b></a> <a href="../kernel/about_salome_pro_help_system.htm"><b>3</b></a> <a href="../kernel/about_salome_pro_architecture.htm"><b>4</b></a> <a href="../viewers.htm"><b>5</b></a> <a href="../mesh_preferences.htm"><b>6</b></a> <a href="../kernel/using_catalog_generator.htm"><b>7</b></a> <a href="../kernel/salome_pro_desktop.htm"><b>8</b></a> </nobr><br><a href="../kernel/saving_a_study.htm"><b>functioning</b></a> <br><a href="../kernel/introduction.htm"><b>functionnalities</b></a> <br><nobr>functions <a href="../kernel/readme.html"><b>1</b></a> <a href="../kernel/introduction_to_salome_pro.htm"><b>2</b></a> <a href="../kernel/introduction.htm"><b>3</b></a> <a href="../viewers.htm"><b>4</b></a> <a href="../kernel/salome_pro_desktop.htm"><b>5</b></a> </nobr><br><a href="../kernel/about_salome_pro_architecture.htm"><b>fundamental</b></a> <br><a href="../kernel/readme.html"><b>further</b></a> <br>\r
-<br><br>\r
-<nobr><a name="bm_G"></a><a name="subkey_G{"></a>g <a href="../kernel/running_salome_pro.htm"><b>1</b></a> <a href="../kernel/readme.html"><b>2</b></a> </nobr><br><a name="bms_GC"></a><a name="subkey_GC"></a><a href="../kernel/readme.html"><b>gcc</b></a> <br><nobr><a name="bms_GE"></a><a name="subkey_GE"></a>general <a href="../kernel/readme.html"><b>1</b></a> <a href="../kernel/getting_started2.htm"><b>2</b></a> <a href="../mesh_preferences.htm"><b>3</b></a> <a href="../kernel/setting_preferences.htm"><b>4</b></a> <a href="../kernel/salome_pro_desktop.htm"><b>5</b></a> </nobr><br><a href="../kernel/using_catalog_generator.htm"><b>generate</b></a> <br><nobr>generated <a href="../kernel/readme.html"><b>1</b></a> <a href="../kernel/using_catalog_generator.htm"><b>2</b></a> </nobr><br><nobr>generates <a href="../kernel/readme.html"><b>1</b></a> <a href="../kernel/introduction_to_salome_pro.htm"><b>2</b></a> </nobr><br><nobr>generator <a href="../kernel/introduction_to_iapp.htm"><b>1</b></a> <a href="../kernel/using_catalog_generator.htm"><b>2</b></a> </nobr><br><a href="../kernel/introduction.htm"><b>generators</b></a> <br><nobr>generic <a href="../kernel/introduction_to_salome_pro.htm"><b>1</b></a> <a href="../kernel/introduction.htm"><b>2</b></a> </nobr><br><nobr>geom <a href="../kernel/readme.html"><b>1</b></a> <a href="../kernel/introduction_to_salome_pro.htm"><b>2</b></a> <a href="../kernel/editing_studies.htm"><b>3</b></a> <a href="../kernel/displaying_hiding_toolbars.htm"><b>4</b></a> <a href="../kernel/about_salome_pro_architecture.htm"><b>5</b></a> <a href="../geom_preferences.htm"><b>6</b></a> <a href="../viewers.htm"><b>7</b></a> </nobr><br><nobr>geometrical <a href="../kernel/introduction_to_salome_pro.htm"><b>1</b></a> <a href="../kernel/introduction.htm"><b>2</b></a> <a href="../viewers.htm"><b>3</b></a> </nobr><br><a href="../geom_preferences.htm"><b>geometry</b></a> <br><nobr>get <a href="../kernel/readme.html"><b>1</b></a> <a href="../kernel/about_salome_pro_help_system.htm"><b>2</b></a> </nobr><br><nobr>getting <a href="../kernel/introduction.htm"><b>1</b></a> <a href="../kernel/getting_started2.htm"><b>2</b></a> <a href="../kernel/getting_properties_of_the_study.htm"><b>3</b></a> <a href="../kernel/using_object_browser.htm"><b>4</b></a> </nobr><br><nobr><a name="bms_GI"></a><a name="subkey_GI"></a>give <a href="../kernel/readme.html"><b>1</b></a> <a href="../viewers.htm"><b>2</b></a> </nobr><br><nobr>given <a href="../kernel/readme.html"><b>1</b></a> <a href="../kernel/introduction_to_salome_pro.htm"><b>2</b></a> </nobr><br><nobr>gives <a href="../kernel/readme.html"><b>1</b></a> <a href="../kernel/getting_properties_of_the_study.htm"><b>2</b></a> <a href="../viewers.htm"><b>3</b></a> <a href="../kernel/setting_preferences.htm"><b>4</b></a> <a href="../kernel/salome_pro_desktop.htm"><b>5</b></a> </nobr><br><a name="bms_GL"></a><a name="subkey_GL"></a><a href="../viewers.htm"><b>gl</b></a> <br><a href="../kernel/using_left-hand_tabs.htm"><b>glossary</b></a> <br><nobr><a name="bms_GO"></a><a name="subkey_GO"></a>go <a href="../kernel/readme.html"><b>1</b></a> <a href="../kernel/navigating_topics.htm"><b>2</b></a> </nobr><br><nobr><a name="bms_GR"></a><a name="subkey_GR"></a>graph <a href="../viewers.htm"><b>1</b></a> <a href="../kernel/setting_preferences.htm"><b>2</b></a> </nobr><br><nobr>graphical <a href="../kernel/introduction_to_salome_pro.htm"><b>1</b></a> <a href="../kernel/introduction_to_iapp.htm"><b>2</b></a> </nobr><br><nobr>graphs <a href="../kernel/introduction_to_salome_pro.htm"><b>1</b></a> <a href="../kernel/displaying_studies.htm"><b>2</b></a> <a href="../viewers.htm"><b>3</b></a> <a href="../kernel/setting_preferences.htm"><b>4</b></a> </nobr><br><a href="../kernel/readme.html"><b>graphviz</b></a> <br><a href="../viewers.htm"><b>greater</b></a> <br><a href="../kernel/setting_preferences.htm"><b>greek</b></a> <br><a href="../kernel/readme.html"><b>grep</b></a> <br><a href="../kernel/setting_preferences.htm"><b>grouped</b></a> <br><nobr><a name="bms_GU"></a><a name="subkey_GU"></a>gui <a href="../kernel/running_salome_pro.htm"><b>1</b></a> <a href="../kernel/readme.html"><b>2</b></a> <a href="../kernel/introduction_to_salome_pro.htm"><b>3</b></a> <a href="../kernel/introduction_to_iapp.htm"><b>4</b></a> <a href="../kernel/creating_a_new_study.htm"><b>5</b></a> <a href="../kernel/about_salome_pro_architecture.htm"><b>6</b></a> <a href="../setting_preferences.htm"><b>7</b></a> <a href="../kernel/setting_preferences.htm"><b>8</b></a> </nobr><br>\r
+<a name="bms_EG"></a><a name="subkey_EG"></a><a href="../kernel/readme.html"><b>egrep</b></a> <br><nobr><a name="bms_EI"></a><a name="subkey_EI"></a>either <a href="../select_color_and_font.htm"><b>1</b></a> <a href="../post-pro_preferences.htm"><b>2</b></a> <a href="../kernel/using_catalog_generator.htm"><b>3</b></a> <a href="../kernel/setting_preferences.htm"><b>4</b></a> </nobr><br><a name="bms_EL"></a><a name="subkey_EL"></a><a href="../kernel/introduction.htm"><b>electrical</b></a> <br><a href="../kernel/introduction.htm"><b>electronic</b></a> <br><nobr>element <a href="../kernel/introduction.htm"><b>1</b></a> <a href="../post-pro_preferences.htm"><b>2</b></a> <a href="../mesh_preferences.htm"><b>3</b></a> </nobr><br><a href="../mesh_preferences.htm"><b>elements</b></a> <br><nobr><a name="bms_EM"></a><a name="subkey_EM"></a>empty <a href="../kernel/readme.html"><b>1</b></a> <a href="../kernel/displaying_studies.htm"><b>2</b></a> </nobr><br><a name="bms_EN"></a><a name="subkey_EN"></a><a href="../kernel/setting_preferences.htm"><b>enable</b></a> <br><a href="../kernel/using_left-hand_tabs.htm"><b>enables</b></a> <br><a href="../kernel/about_salome_pro_architecture.htm"><b>encouraging</b></a> <br><nobr>end <a href="../kernel/readme.html"><b>1</b></a> <a href="../kernel/about_salome_pro_architecture.htm"><b>2</b></a> <a href="../setting_preferences.htm"><b>3</b></a> <a href="../post-pro_preferences.htm"><b>4</b></a> <a href="../kernel/setting_preferences.htm"><b>5</b></a> </nobr><br><a href="../kernel/about_salome_pro_architecture.htm"><b>enforcing</b></a> <br><a href="../kernel/about_salome_pro_architecture.htm"><b>engine</b></a> <br><a href="../kernel/readme.html"><b>enough</b></a> <br><a href="../kernel/introduction.htm"><b>ensure</b></a> <br><a href="../kernel/about_salome_pro_architecture.htm"><b>ensuring</b></a> <br><nobr>enter <a href="../kernel/running_salome_pro.htm"><b>1</b></a> <a href="../kernel/readme.html"><b>2</b></a> <a href="../kernel/getting_properties_of_the_study.htm"><b>3</b></a> <a href="../kernel/saving_a_study.htm"><b>4</b></a> </nobr><br><a href="../kernel/readme.html"><b>entered</b></a> <br><a href="../mesh_preferences.htm"><b>entity</b></a> <br><nobr>entry <a href="../kernel/using_object_browser.htm"><b>1</b></a> <a href="../kernel/setting_preferences.htm"><b>2</b></a> </nobr><br><a href="../kernel/running_salome_pro.htm"><b>env</b></a> <br><a href="../kernel/readme.html"><b>env_</b></a> <br><a href="../kernel/readme.html"><b>env_for_launch</b></a> <br><a href="../kernel/readme.html"><b>env_products</b></a> <br><a href="../kernel/readme.html"><b>env_vtk</b></a> <br><nobr>environment <a href="../kernel/running_salome_pro.htm"><b>1</b></a> <a href="../kernel/readme.html"><b>2</b></a> <a href="../kernel/introduction.htm"><b>3</b></a> <a href="../kernel/getting_started2.htm"><b>4</b></a> <a href="../kernel/displaying_studies.htm"><b>5</b></a> <a href="../introduction_to_gui.htm"><b>6</b></a> </nobr><br><nobr>environments <a href="../kernel/introduction.htm"><b>1</b></a> <a href="../kernel/about_salome_pro_architecture.htm"><b>2</b></a> </nobr><br><a name="bms_EQ"></a><a name="subkey_EQ"></a><a href="../kernel/readme.html"><b>equal</b></a> <br><a href="../kernel/about_salome_pro_architecture.htm"><b>equally</b></a> <br><a href="../kernel/introduction.htm"><b>equipment</b></a> <br><nobr><a name="bms_ER"></a><a name="subkey_ER"></a>error <a href="../kernel/readme.html"><b>1</b></a> <a href="../dump_study.htm"><b>2</b></a> </nobr><br><nobr><a name="bms_ET"></a><a name="subkey_ET"></a>etc <a href="../kernel/readme.html"><b>1</b></a> <a href="../kernel/introduction_to_salome_pro.htm"><b>2</b></a> <a href="../kernel/about_salome_pro_architecture.htm"><b>3</b></a> <a href="../introduction_to_gui.htm"><b>4</b></a> <a href="../post-pro_preferences.htm"><b>5</b></a> <a href="../kernel/salome_pro_desktop.htm"><b>6</b></a> </nobr><br><nobr><a name="bms_EV"></a><a name="subkey_EV"></a>even <a href="../kernel/about_salome_pro_architecture.htm"><b>1</b></a> <a href="../kernel/salome_pro_desktop.htm"><b>2</b></a> </nobr><br><a href="../kernel/using_registry.htm"><b>ever</b></a> <br><nobr>every <a href="../kernel/introduction.htm"><b>1</b></a> <a href="../kernel/using_left-hand_tabs.htm"><b>2</b></a> </nobr><br><a href="../kernel/readme.html"><b>everything</b></a> <br><a href="../kernel/introduction.htm"><b>evolutions</b></a> <br><a href="../kernel/about_salome_pro_architecture.htm"><b>evolve</b></a> <br><a name="bms_EX"></a><a name="subkey_EX"></a><a href="../kernel/running_salome_pro.htm"><b>ex</b></a> <br><a href="../kernel/readme.html"><b>exact</b></a> <br><nobr>exactly <a href="../kernel/readme.html"><b>1</b></a> <a href="../post-pro_preferences.htm"><b>2</b></a> </nobr><br><a href="../kernel/readme.html"><b>examle</b></a> <br><nobr>example <a href="../kernel/readme.html"><b>1</b></a> <a href="../kernel/introduction.htm"><b>2</b></a> <a href="../kernel/displaying_studies.htm"><b>3</b></a> <a href="../kernel/using_catalog_generator.htm"><b>4</b></a> <a href="../kernel/saving_a_study.htm"><b>5</b></a> <a href="../kernel/salome_pro_desktop.htm"><b>6</b></a> </nobr><br><a href="../post-pro_preferences.htm"><b>exceeds</b></a> <br><a href="../introduction_to_gui.htm"><b>exception</b></a> <br><a href="../kernel/about_salome_pro_architecture.htm"><b>exchanges</b></a> <br><nobr>execution <a href="../kernel/introduction_to_salome_pro.htm"><b>1</b></a> <a href="../kernel/introduction.htm"><b>2</b></a> </nobr><br><a href="../kernel/readme.html"><b>exist</b></a> <br><a href="../kernel/readme.html"><b>existence</b></a> <br><nobr>existing <a href="../kernel/opening_studies.htm"><b>1</b></a> <a href="../kernel/introduction_to_salome_pro.htm"><b>2</b></a> <a href="../kernel/about_salome_pro_architecture.htm"><b>3</b></a> <a href="../setting_preferences.htm"><b>4</b></a> <a href="../kernel/using_catalog_generator.htm"><b>5</b></a> <a href="../kernel/saving_a_study.htm"><b>6</b></a> </nobr><br><a href="../kernel/readme.html"><b>exists</b></a> <br><a href="../kernel/about_salome_pro_architecture.htm"><b>expandability</b></a> <br><a href="../kernel/navigating_topics.htm"><b>expanding</b></a> <br><a href="../kernel/introduction.htm"><b>expectations</b></a> <br><a href="../dump_study.htm"><b>expert</b></a> <br><a href="../kernel/about_salome_pro_architecture.htm"><b>exploits</b></a> <br><a href="../kernel/about_salome_pro_help_system.htm"><b>explorer</b></a> <br><nobr>export <a href="../kernel/introduction.htm"><b>1</b></a> <a href="../mesh_preferences.htm"><b>2</b></a> </nobr><br><a href="../kernel/about_salome_pro_architecture.htm"><b>exposes</b></a> <br><a href="../select_color_and_font.htm"><b>extended</b></a> <br><a href="../kernel/saving_a_study.htm"><b>extensions</b></a> <br><a href="../kernel/setting_preferences.htm"><b>external</b></a> <br><a href="../kernel/readme.html"><b>extracting</b></a> <br><a href="../kernel/introduction.htm"><b>extremely</b></a> <br>\r
 <br><br>\r
-<nobr><a name="bm_H"></a><a name="subkey_H{"></a>h <a href="../kernel/running_salome_pro.htm"><b>1</b></a> <a href="../kernel/readme.html"><b>2</b></a> </nobr><br><nobr><a name="bms_HA"></a><a name="subkey_HA"></a>hand <a href="../kernel/navigating_topics.htm"><b>1</b></a> <a href="../kernel/about_salome_pro_architecture.htm"><b>2</b></a> <a href="../kernel/using_left-hand_tabs.htm"><b>3</b></a> </nobr><br><a href="../kernel/introduction.htm"><b>handle</b></a> <br><a href="../kernel/introduction.htm"><b>handled</b></a> <br><a href="../kernel/readme.html"><b>handler</b></a> <br><a href="../kernel/introduction_to_iapp.htm"><b>handling</b></a> <br><a href="../kernel/readme.html"><b>happydoc</b></a> <br><nobr>hard <a href="../kernel/running_salome_pro.htm"><b>1</b></a> <a href="../kernel/readme.html"><b>2</b></a> </nobr><br><a href="../kernel/saving_a_study.htm"><b>hasn</b></a> <br><a href="../kernel/setting_preferences.htm"><b>haven</b></a> <br><nobr>having <a href="../kernel/navigating_topics.htm"><b>1</b></a> <a href="../kernel/introduction_to_salome_pro.htm"><b>2</b></a> <a href="../kernel/using_object_browser.htm"><b>3</b></a> </nobr><br><nobr><a name="bms_HD"></a><a name="subkey_HD"></a>hdf <a href="../kernel/readme.html"><b>1</b></a> <a href="../kernel/opening_studies.htm"><b>2</b></a> <a href="../kernel/setting_preferences.htm"><b>3</b></a> <a href="../kernel/saving_a_study.htm"><b>4</b></a> </nobr><br><a href="../kernel/readme.html"><b>hdf5</b></a> <br><a href="../kernel/readme.html"><b>hdf5home</b></a> <br><a name="bms_HE"></a><a name="subkey_HE"></a><a href="../kernel/introduction.htm"><b>healing</b></a> <br><a href="../kernel/using_registry.htm"><b>hello</b></a> <br><nobr>help <a href="../kernel/running_salome_pro.htm"><b>1</b></a> <a href="../kernel/readme.html"><b>2</b></a> <a href="../kernel/opening_studies.htm"><b>3</b></a> <a href="../kernel/navigating_topics.htm"><b>4</b></a> <a href="../kernel/about_salome_pro_help_system.htm"><b>5</b></a> <a href="../kernel/about_salome_pro_architecture.htm"><b>6</b></a> <a href="../viewers.htm"><b>7</b></a> <a href="../kernel/using_registry.htm"><b>8</b></a> <a href="../kernel/using_object_browser.htm"><b>9</b></a> <a href="../kernel/using_left-hand_tabs.htm"><b>10</b></a> <a href="../kernel/setting_preferences.htm"><b>11</b></a> </nobr><br><a href="../kernel/readme.html"><b>helpful</b></a> <br><nobr>helps <a href="../kernel/readme.html"><b>1</b></a> <a href="../kernel/introduction.htm"><b>2</b></a> </nobr><br><nobr>here <a href="../kernel/readme.html"><b>1</b></a> <a href="../supervisor_preferences.htm"><b>2</b></a> <a href="../post-pro_preferences.htm"><b>3</b></a> <a href="../mesh_preferences.htm"><b>4</b></a> <a href="../kernel/setting_preferences.htm"><b>5</b></a> </nobr><br><a href="../kernel/introduction.htm"><b>heterogeneous</b></a> <br><nobr><a name="bms_HI"></a><a name="subkey_HI"></a>hide <a href="../kernel/displaying_hiding_toolbars.htm"><b>1</b></a> <a href="../viewers.htm"><b>2</b></a> <a href="../kernel/setting_preferences.htm"><b>3</b></a> <a href="../kernel/salome_pro_desktop.htm"><b>4</b></a> </nobr><br><a href="../viewers.htm"><b>hides</b></a> <br><nobr>hiding <a href="../kernel/displaying_hiding_toolbars.htm"><b>1</b></a> <a href="../kernel/using_object_browser.htm"><b>2</b></a> </nobr><br><a href="../kernel/introduction.htm"><b>high</b></a> <br><a href="../kernel/readme.html"><b>higher</b></a> <br><nobr>highlighted <a href="../kernel/readme.html"><b>1</b></a> <a href="../kernel/using_object_browser.htm"><b>2</b></a> </nobr><br><a href="../kernel/readme.html"><b>hints</b></a> <br><a href="../kernel/using_registry.htm"><b>history</b></a> <br><a name="bms_HO"></a><a name="subkey_HO"></a><a href="../kernel/running_salome_pro.htm"><b>home</b></a> <br><nobr>horizontal <a href="../kernel/displaying_studies.htm"><b>1</b></a> <a href="../viewers.htm"><b>2</b></a> <a href="../post-pro_preferences.htm"><b>3</b></a> <a href="../mesh_preferences.htm"><b>4</b></a> <a href="../kernel/setting_preferences.htm"><b>5</b></a> </nobr><br><a href="../kernel/displaying_studies.htm"><b>horizontally</b></a> <br><a href="../kernel/about_salome_pro_architecture.htm"><b>host</b></a> <br><a href="../kernel/navigating_topics.htm"><b>hotspot</b></a> <br><a href="../kernel/navigating_topics.htm"><b>hotspots</b></a> <br><nobr>how <a href="../kernel/readme.html"><b>1</b></a> <a href="../kernel/about_salome_pro_architecture.htm"><b>2</b></a> </nobr><br><a name="bms_HP"></a><a name="subkey_HP"></a><a href="../kernel/readme.html"><b>hpp</b></a> <br><nobr><a name="bms_HT"></a><a name="subkey_HT"></a>html <a href="../kernel/about_salome_pro_help_system.htm"><b>1</b></a> <a href="../kernel/using_left-hand_tabs.htm"><b>2</b></a> </nobr><br><a name="bms_HX"></a><a name="subkey_HX"></a><a href="../kernel/readme.html"><b>hxx</b></a> <br>\r
+<a name="bm_F"></a><a name="subkey_F{"></a><a href="../kernel/readme.html"><b>f</b></a> <br><nobr><a name="bms_FA"></a><a name="subkey_FA"></a>face <a href="../post-pro_preferences.htm"><b>1</b></a> <a href="../mesh_preferences.htm"><b>2</b></a> <a href="../kernel/setting_preferences.htm"><b>3</b></a> </nobr><br><nobr>faces <a href="../post-pro_preferences.htm"><b>1</b></a> <a href="../mesh_preferences.htm"><b>2</b></a> </nobr><br><a href="../kernel/about_salome_pro_architecture.htm"><b>facilitated</b></a> <br><a href="../kernel/introduction_to_salome_pro.htm"><b>facilitates</b></a> <br><nobr>fact <a href="../kernel/readme.html"><b>1</b></a> <a href="../kernel/salome_pro_desktop.htm"><b>2</b></a> </nobr><br><a href="../kernel/using_catalog_generator.htm"><b>factory</b></a> <br><a href="../kernel/readme.html"><b>fail</b></a> <br><a href="../kernel/readme.html"><b>fails</b></a> <br><a href="../kernel/readme.html"><b>false</b></a> <br><a href="../post-pro_preferences.htm"><b>families</b></a> <br><nobr><a name="bms_FE"></a><a name="subkey_FE"></a>feature <a href="../kernel/readme.html"><b>1</b></a> <a href="../post-pro_preferences.htm"><b>2</b></a> </nobr><br><nobr>features <a href="../kernel/editing_studies.htm"><b>1</b></a> <a href="../kernel/about_salome_pro_help_system.htm"><b>2</b></a> </nobr><br><nobr><a name="bms_FI"></a><a name="subkey_FI"></a>field <a href="../kernel/readme.html"><b>1</b></a> <a href="../kernel/getting_properties_of_the_study.htm"><b>2</b></a> <a href="../select_color_and_font.htm"><b>3</b></a> <a href="../post-pro_preferences.htm"><b>4</b></a> <a href="../mesh_preferences.htm"><b>5</b></a> </nobr><br><nobr>fields <a href="../kernel/introduction.htm"><b>1</b></a> <a href="../post-pro_preferences.htm"><b>2</b></a> </nobr><br><a href="../kernel/readme.html"><b>fig</b></a> <br><a href="../kernel/readme.html"><b>figure</b></a> <br><a href="../geom_preferences.htm"><b>figures</b></a> <br><nobr>file <a href="../kernel/running_salome_pro.htm"><b>1</b></a> <a href="../kernel/readme.html"><b>2</b></a> <a href="../kernel/opening_studies.htm"><b>3</b></a> <a href="../kernel/getting_properties_of_the_study.htm"><b>4</b></a> <a href="../kernel/creating_a_new_study.htm"><b>5</b></a> <a href="../dump_study.htm"><b>6</b></a> <a href="../setting_preferences.htm"><b>7</b></a> <a href="../post-pro_preferences.htm"><b>8</b></a> <a href="../kernel/using_catalog_generator.htm"><b>9</b></a> <a href="../kernel/setting_preferences.htm"><b>10</b></a> <a href="../kernel/saving_a_study.htm"><b>11</b></a> <a href="../kernel/salome_pro_desktop.htm"><b>12</b></a> </nobr><br><nobr>files <a href="../kernel/readme.html"><b>1</b></a> <a href="../kernel/introduction_to_salome_pro.htm"><b>2</b></a> <a href="../post-pro_preferences.htm"><b>3</b></a> <a href="../kernel/using_catalog_generator.htm"><b>4</b></a> <a href="../kernel/setting_preferences.htm"><b>5</b></a> <a href="../kernel/saving_a_study.htm"><b>6</b></a> </nobr><br><a href="../mesh_preferences.htm"><b>fill</b></a> <br><nobr>find <a href="../kernel/readme.html"><b>1</b></a> <a href="../kernel/using_left-hand_tabs.htm"><b>2</b></a> <a href="../kernel/using_catalog_generator.htm"><b>3</b></a> </nobr><br><a href="../kernel/readme.html"><b>find_in_path</b></a> <br><a href="../kernel/readme.html"><b>finds</b></a> <br><a href="../kernel/about_salome_pro_architecture.htm"><b>finely</b></a> <br><nobr>finish <a href="../kernel/readme.html"><b>1</b></a> <a href="../kernel/navigating_topics.htm"><b>2</b></a> <a href="../post-pro_preferences.htm"><b>3</b></a> </nobr><br><a href="../kernel/readme.html"><b>finishes</b></a> <br><a href="../kernel/introduction.htm"><b>finite</b></a> <br><nobr>first <a href="../kernel/readme.html"><b>1</b></a> <a href="../dump_study.htm"><b>2</b></a> <a href="../post-pro_preferences.htm"><b>3</b></a> <a href="../kernel/using_object_browser.htm"><b>4</b></a> <a href="../kernel/setting_preferences.htm"><b>5</b></a> </nobr><br><a href="../kernel/setting_preferences.htm"><b>fit</b></a> <br><a name="bms_FL"></a><a name="subkey_FL"></a><a href="../kernel/readme.html"><b>flag</b></a> <br><nobr>flexibility <a href="../kernel/about_salome_pro_architecture.htm"><b>1</b></a> <a href="../dump_study.htm"><b>2</b></a> </nobr><br><nobr>flexible <a href="../kernel/readme.html"><b>1</b></a> <a href="../kernel/introduction.htm"><b>2</b></a> <a href="../introduction_to_gui.htm"><b>3</b></a> </nobr><br><a name="bms_FO"></a><a name="subkey_FO"></a><a href="../post-pro_preferences.htm"><b>focal</b></a> <br><a href="../kernel/navigating_topics.htm"><b>focus</b></a> <br><nobr>folder <a href="../kernel/readme.html"><b>1</b></a> <a href="../kernel/using_object_browser.htm"><b>2</b></a> <a href="../kernel/saving_a_study.htm"><b>3</b></a> </nobr><br><nobr>follow <a href="../kernel/readme.html"><b>1</b></a> <a href="../kernel/about_salome_pro_architecture.htm"><b>2</b></a> </nobr><br><nobr>following <a href="../kernel/running_salome_pro.htm"><b>1</b></a> <a href="../kernel/readme.html"><b>2</b></a> <a href="../kernel/opening_studies.htm"><b>3</b></a> <a href="../kernel/navigating_topics.htm"><b>4</b></a> <a href="../kernel/getting_started2.htm"><b>5</b></a> <a href="../kernel/getting_properties_of_the_study.htm"><b>6</b></a> <a href="../kernel/about_salome_pro_architecture.htm"><b>7</b></a> <a href="../dump_study.htm"><b>8</b></a> <a href="../kernel/using_registry.htm"><b>9</b></a> <a href="../kernel/using_left-hand_tabs.htm"><b>10</b></a> <a href="../kernel/using_catalog_generator.htm"><b>11</b></a> <a href="../kernel/setting_preferences.htm"><b>12</b></a> <a href="../kernel/saving_a_study.htm"><b>13</b></a> <a href="../kernel/salome_pro_desktop.htm"><b>14</b></a> </nobr><br><nobr>font <a href="../select_color_and_font.htm"><b>1</b></a> <a href="../post-pro_preferences.htm"><b>2</b></a> <a href="../mesh_preferences.htm"><b>3</b></a> <a href="../kernel/setting_preferences.htm"><b>4</b></a> </nobr><br><a href="../select_color_and_font.htm"><b>fonts</b></a> <br><a href="../kernel/using_catalog_generator.htm"><b>forget</b></a> <br><nobr>format <a href="../kernel/opening_studies.htm"><b>1</b></a> <a href="../kernel/introduction.htm"><b>2</b></a> <a href="../kernel/about_salome_pro_help_system.htm"><b>3</b></a> <a href="../kernel/setting_preferences.htm"><b>4</b></a> </nobr><br><a href="../kernel/introduction.htm"><b>formats</b></a> <br><a href="../post-pro_preferences.htm"><b>forth</b></a> <br><a name="bms_FP"></a><a name="subkey_FP"></a><a href="../post-pro_preferences.htm"><b>fps</b></a> <br><a name="bms_FR"></a><a name="subkey_FR"></a><a href="../kernel/readme.html"><b>frame</b></a> <br><a href="../post-pro_preferences.htm"><b>frames</b></a> <br><nobr>framework <a href="../introduction_to_gui.htm"><b>1</b></a> <a href="../kernel/using_object_browser.htm"><b>2</b></a> </nobr><br><nobr>free <a href="../kernel/introduction.htm"><b>1</b></a> <a href="../post-pro_preferences.htm"><b>2</b></a> </nobr><br><a href="../kernel/introduction.htm"><b>friendly</b></a> <br><a name="bms_FU"></a><a name="subkey_FU"></a><a href="../dump_study.htm"><b>fulfill</b></a> <br><nobr>full <a href="../post-pro_preferences.htm"><b>1</b></a> <a href="../kernel/using_left-hand_tabs.htm"><b>2</b></a> </nobr><br><a href="../post-pro_preferences.htm"><b>fully</b></a> <br><nobr>function <a href="../kernel/readme.html"><b>1</b></a> <a href="../kernel/introduction_to_salome_pro.htm"><b>2</b></a> <a href="../dump_study.htm"><b>3</b></a> </nobr><br><a href="../kernel/readme.html"><b>function_name</b></a> <br><a href="../kernel/salome_pro_desktop.htm"><b>functional</b></a> <br><a href="../kernel/introduction.htm"><b>functionalities</b></a> <br><nobr>functionality <a href="../kernel/getting_started2.htm"><b>1</b></a> <a href="../kernel/editing_studies.htm"><b>2</b></a> <a href="../kernel/about_salome_pro_help_system.htm"><b>3</b></a> <a href="../kernel/about_salome_pro_architecture.htm"><b>4</b></a> <a href="../kernel/using_catalog_generator.htm"><b>5</b></a> <a href="../kernel/salome_pro_desktop.htm"><b>6</b></a> </nobr><br><a href="../kernel/saving_a_study.htm"><b>functioning</b></a> <br><nobr>functions <a href="../kernel/readme.html"><b>1</b></a> <a href="../kernel/introduction_to_salome_pro.htm"><b>2</b></a> <a href="../kernel/introduction.htm"><b>3</b></a> <a href="../kernel/salome_pro_desktop.htm"><b>4</b></a> </nobr><br><a href="../kernel/about_salome_pro_architecture.htm"><b>fundamental</b></a> <br><a href="../kernel/readme.html"><b>further</b></a> <br>\r
 <br><br>\r
-<nobr><a name="bm_I"></a><a name="subkey_I{"></a>i <a href="../kernel/readme.html"><b>1</b></a> <a href="../kernel/introduction_to_iapp.htm"><b>2</b></a> <a href="../kernel/saving_a_study.htm"><b>3</b></a> <a href="../kernel/salome_pro_desktop.htm"><b>4</b></a> </nobr><br><a name="bms_IA"></a><a name="subkey_IA"></a><a href="../kernel/about_salome_pro_architecture.htm"><b>iapp</b></a> <br><nobr><a name="bms_IC"></a><a name="subkey_IC"></a>icon <a href="../kernel/creating_a_new_study.htm"><b>1</b></a> <a href="../kernel/using_catalog_generator.htm"><b>2</b></a> </nobr><br><nobr>icons <a href="../kernel/editing_studies.htm"><b>1</b></a> <a href="../kernel/salome_pro_desktop.htm"><b>2</b></a> </nobr><br><a name="bms_ID"></a><a name="subkey_ID"></a><a href="../kernel/readme.html"><b>idea</b></a> <br><nobr>identification <a href="../kernel/using_registry.htm"><b>1</b></a> <a href="../kernel/using_object_browser.htm"><b>2</b></a> </nobr><br><a href="../kernel/readme.html"><b>identify</b></a> <br><nobr>idl <a href="../kernel/about_salome_pro_architecture.htm"><b>1</b></a> <a href="../kernel/using_catalog_generator.htm"><b>2</b></a> </nobr><br><a name="bms_IE"></a><a name="subkey_IE"></a><a href="../kernel/setting_preferences.htm"><b>ie</b></a> <br><br><br></p><p class="ftsbody" align="center"><a href="whlstf4.htm" target="_self" title="previous search group"><b>&gt;&gt;</b></a>\r
+<nobr><a name="bm_G"></a><a name="subkey_G{"></a>g <a href="../kernel/running_salome_pro.htm"><b>1</b></a> <a href="../kernel/readme.html"><b>2</b></a> </nobr><br><a name="bms_GA"></a><a name="subkey_GA"></a><a href="../mesh_preferences.htm"><b>gaps</b></a> <br><nobr>gauss <a href="../introduction_to_gui.htm"><b>1</b></a> <a href="../post-pro_preferences.htm"><b>2</b></a> </nobr><br><a name="bms_GC"></a><a name="subkey_GC"></a><a href="../kernel/readme.html"><b>gcc</b></a> <br><nobr><a name="bms_GE"></a><a name="subkey_GE"></a>general <a href="../kernel/readme.html"><b>1</b></a> <a href="../kernel/getting_started2.htm"><b>2</b></a> <a href="../mesh_preferences.htm"><b>3</b></a> <a href="../kernel/setting_preferences.htm"><b>4</b></a> <a href="../kernel/salome_pro_desktop.htm"><b>5</b></a> </nobr><br><nobr>generate <a href="../dump_study.htm"><b>1</b></a> <a href="../kernel/using_catalog_generator.htm"><b>2</b></a> </nobr><br><nobr>generated <a href="../kernel/readme.html"><b>1</b></a> <a href="../dump_study.htm"><b>2</b></a> <a href="../kernel/using_catalog_generator.htm"><b>3</b></a> </nobr><br><nobr>generates <a href="../kernel/readme.html"><b>1</b></a> <a href="../kernel/introduction_to_salome_pro.htm"><b>2</b></a> </nobr><br><nobr>generator <a href="../introduction_to_gui.htm"><b>1</b></a> <a href="../kernel/using_catalog_generator.htm"><b>2</b></a> </nobr><br><a href="../kernel/introduction.htm"><b>generators</b></a> <br><nobr>generic <a href="../kernel/introduction_to_salome_pro.htm"><b>1</b></a> <a href="../kernel/introduction.htm"><b>2</b></a> </nobr><br><nobr>geom <a href="../kernel/readme.html"><b>1</b></a> <a href="../kernel/introduction_to_salome_pro.htm"><b>2</b></a> </nobr><br><nobr>geometrical <a href="../kernel/introduction_to_salome_pro.htm"><b>1</b></a> <a href="../kernel/introduction.htm"><b>2</b></a> <a href="../geom_preferences.htm"><b>3</b></a> <a href="../post-pro_preferences.htm"><b>4</b></a> </nobr><br><nobr>geometry <a href="../kernel/introduction_to_salome_pro.htm"><b>1</b></a> <a href="../kernel/about_salome_pro_architecture.htm"><b>2</b></a> <a href="../geom_preferences.htm"><b>3</b></a> <a href="../post-pro_preferences.htm"><b>4</b></a> <a href="../kernel/salome_pro_desktop.htm"><b>5</b></a> </nobr><br><nobr>get <a href="../kernel/readme.html"><b>1</b></a> <a href="../kernel/about_salome_pro_help_system.htm"><b>2</b></a> </nobr><br><nobr>getting <a href="../kernel/introduction.htm"><b>1</b></a> <a href="../kernel/getting_started2.htm"><b>2</b></a> <a href="../kernel/using_object_browser.htm"><b>3</b></a> </nobr><br><br><br></p><p class="ftsbody" align="center"><a href="whlstf4.htm" target="_self" title="previous search group"><b>&gt;&gt;</b></a>\r
 \r
 </body>\r
 \r
index 2e5e1f3ab7bac50fce8ba8f9412030684878411a..081f5910bcd17588739bd63e4727ef52d19dd7ee 100755 (executable)
@@ -33,13 +33,11 @@ A:hover {color:Navy; } A:hover {font-family:Tahoma; } A:hover {font-size:8pt; }
 <body marginheight="0"  marginwidth="0" bgproperties="fixed">\r
 <p class="ftsbody" align="center"><a href="whlstf3.htm" target="_self" title="previous search group"><b>&lt;&lt;</b></a><br><br></p>\r
 <p class="ftsbody" >\r
-<nobr><a name="bms_IF"></a><a name="subkey_IF"></a>if <a href="../kernel/running_salome_pro.htm"><b>1</b></a> <a href="../kernel/readme.html"><b>2</b></a> <a href="../kernel/opening_studies.htm"><b>3</b></a> <a href="../kernel/editing_studies.htm"><b>4</b></a> <a href="../kernel/displaying_studies.htm"><b>5</b></a> <a href="../kernel/creating_a_new_study.htm"><b>6</b></a> <a href="../viewers.htm"><b>7</b></a> <a href="../post-pro_preferences.htm"><b>8</b></a> <a href="../mesh_preferences.htm"><b>9</b></a> <a href="../kernel/using_object_browser.htm"><b>10</b></a> <a href="../kernel/using_catalog_generator.htm"><b>11</b></a> <a href="../kernel/setting_preferences.htm"><b>12</b></a> <a href="../kernel/saving_a_study.htm"><b>13</b></a> <a href="../kernel/salome_pro_desktop.htm"><b>14</b></a> </nobr><br><a name="bms_IG"></a><a name="subkey_IG"></a><a href="../kernel/introduction.htm"><b>iges</b></a> <br><a href="../kernel/readme.html"><b>ignored</b></a> <br><a name="bms_IM"></a><a name="subkey_IM"></a><a href="../viewers.htm"><b>image</b></a> <br><a href="../kernel/introduction.htm"><b>images</b></a> <br><a href="../kernel/navigating_topics.htm"><b>immediately</b></a> <br><nobr>implement <a href="../kernel/readme.html"><b>1</b></a> <a href="../kernel/about_salome_pro_architecture.htm"><b>2</b></a> </nobr><br><nobr>implementation <a href="../kernel/about_salome_pro_architecture.htm"><b>1</b></a> <a href="../kernel/using_catalog_generator.htm"><b>2</b></a> </nobr><br><a href="../kernel/readme.html"><b>implementing</b></a> <br><a href="../kernel/readme.html"><b>implied</b></a> <br><nobr>import <a href="../kernel/readme.html"><b>1</b></a> <a href="../kernel/introduction.htm"><b>2</b></a> <a href="../post-pro_preferences.htm"><b>3</b></a> </nobr><br><a href="../kernel/readme.html"><b>important</b></a> <br><nobr>imported <a href="../kernel/introduction_to_salome_pro.htm"><b>1</b></a> <a href="../kernel/introduction_to_iapp.htm"><b>2</b></a> <a href="../kernel/salome_pro_desktop.htm"><b>3</b></a> </nobr><br><a href="../post-pro_preferences.htm"><b>imposed</b></a> <br><a href="../kernel/readme.html"><b>impossible</b></a> <br><a href="../kernel/introduction_to_iapp.htm"><b>improves</b></a> <br><a name="bms_IN"></a><a name="subkey_IN"></a><a href="../kernel/readme.html"><b>inc</b></a> <br><a href="../kernel/readme.html"><b>included</b></a> <br><nobr>includes <a href="../kernel/readme.html"><b>1</b></a> <a href="../kernel/using_left-hand_tabs.htm"><b>2</b></a> </nobr><br><nobr>including <a href="../kernel/readme.html"><b>1</b></a> <a href="../kernel/navigating_topics.htm"><b>2</b></a> </nobr><br><a href="../kernel/about_salome_pro_architecture.htm"><b>inclusive</b></a> <br><a href="../kernel/introduction.htm"><b>increasingly</b></a> <br><a href="../kernel/about_salome_pro_architecture.htm"><b>incrementally</b></a> <br><a href="../kernel/about_salome_pro_architecture.htm"><b>independence</b></a> <br><a href="../kernel/about_salome_pro_architecture.htm"><b>independent</b></a> <br><a href="../kernel/using_object_browser.htm"><b>index</b></a> <br><nobr>indicate <a href="../kernel/saving_a_study.htm"><b>1</b></a> <a href="../kernel/salome_pro_desktop.htm"><b>2</b></a> </nobr><br><nobr>information <a href="../kernel/readme.html"><b>1</b></a> <a href="../kernel/navigating_topics.htm"><b>2</b></a> <a href="../kernel/getting_properties_of_the_study.htm"><b>3</b></a> <a href="../kernel/about_salome_pro_architecture.htm"><b>4</b></a> <a href="../geom_preferences.htm"><b>5</b></a> <a href="../viewers.htm"><b>6</b></a> <a href="../kernel/using_registry.htm"><b>7</b></a> <a href="../kernel/using_left-hand_tabs.htm"><b>8</b></a> <a href="../kernel/saving_a_study.htm"><b>9</b></a> </nobr><br><nobr>initial <a href="../kernel/getting_started2.htm"><b>1</b></a> <a href="../viewers.htm"><b>2</b></a> </nobr><br><nobr>input <a href="../kernel/introduction.htm"><b>1</b></a> <a href="../kernel/using_catalog_generator.htm"><b>2</b></a> </nobr><br><a href="../kernel/readme.html"><b>insert</b></a> <br><nobr>inside <a href="../kernel/navigating_topics.htm"><b>1</b></a> <a href="../kernel/displaying_studies.htm"><b>2</b></a> <a href="../kernel/about_salome_pro_architecture.htm"><b>3</b></a> <a href="../kernel/using_catalog_generator.htm"><b>4</b></a> </nobr><br><a href="../kernel/readme.html"><b>inspect</b></a> <br><a href="../kernel/readme.html"><b>instalation</b></a> <br><nobr>install <a href="../kernel/running_salome_pro.htm"><b>1</b></a> <a href="../kernel/readme.html"><b>2</b></a> </nobr><br><a href="../kernel/readme.html"><b>install_binary</b></a> <br><a href="../kernel/readme.html"><b>install_disk_space</b></a> <br><a href="../kernel/readme.html"><b>install_source</b></a> <br><a href="../kernel/readme.html"><b>install_wizard_caption</b></a> <br><a href="../kernel/readme.html"><b>install_wizard_copyright</b></a> <br><a href="../kernel/readme.html"><b>install_wizard_license_info</b></a> <br><a href="../kernel/readme.html"><b>install_wizard_root_directory</b></a> <br><a href="../kernel/readme.html"><b>install_wizard_version</b></a> <br><nobr>installation <a href="../kernel/running_salome_pro.htm"><b>1</b></a> <a href="../kernel/readme.html"><b>2</b></a> </nobr><br><a href="../kernel/readme.html"><b>installation_mode</b></a> <br><a href="../kernel/readme.html"><b>installation_script_name</b></a> <br><a href="../kernel/readme.html"><b>installdiskspace</b></a> <br><nobr>installed <a href="../kernel/readme.html"><b>1</b></a> <a href="../kernel/using_catalog_generator.htm"><b>2</b></a> </nobr><br><a href="../kernel/readme.html"><b>installing</b></a> <br><a href="../kernel/readme.html"><b>installwizard_root_directory</b></a> <br><a href="../kernel/readme.html"><b>installworkxxxxx</b></a> <br><a href="../kernel/creating_a_new_study.htm"><b>instances</b></a> <br><a href="../kernel/readme.html"><b>instead</b></a> <br><a href="../kernel/about_salome_pro_architecture.htm"><b>instrumental</b></a> <br><a href="../viewers.htm"><b>instruments</b></a> <br><a href="../kernel/readme.html"><b>integer</b></a> <br><a href="../mesh_preferences.htm"><b>integers</b></a> <br><a href="../kernel/introduction_to_salome_pro.htm"><b>integrate</b></a> <br><nobr>integrated <a href="../kernel/introduction_to_salome_pro.htm"><b>1</b></a> <a href="../kernel/introduction_to_iapp.htm"><b>2</b></a> <a href="../kernel/introduction.htm"><b>3</b></a> <a href="../kernel/about_salome_pro_architecture.htm"><b>4</b></a> </nobr><br><nobr>integration <a href="../kernel/introduction_to_iapp.htm"><b>1</b></a> <a href="../kernel/introduction.htm"><b>2</b></a> <a href="../kernel/about_salome_pro_architecture.htm"><b>3</b></a> <a href="../kernel/using_catalog_generator.htm"><b>4</b></a> </nobr><br><a href="../kernel/readme.html"><b>intend</b></a> <br><a href="../kernel/introduction_to_iapp.htm"><b>interaction</b></a> <br><nobr>interface <a href="../kernel/introduction_to_salome_pro.htm"><b>1</b></a> <a href="../kernel/introduction_to_iapp.htm"><b>2</b></a> <a href="../kernel/introduction.htm"><b>3</b></a> <a href="../kernel/about_salome_pro_architecture.htm"><b>4</b></a> <a href="../kernel/using_catalog_generator.htm"><b>5</b></a> <a href="../kernel/salome_pro_desktop.htm"><b>6</b></a> </nobr><br><nobr>interfaces <a href="../kernel/introduction_to_iapp.htm"><b>1</b></a> <a href="../kernel/introduction.htm"><b>2</b></a> <a href="../kernel/about_salome_pro_architecture.htm"><b>3</b></a> <a href="../kernel/using_catalog_generator.htm"><b>4</b></a> </nobr><br><nobr>internal <a href="../kernel/readme.html"><b>1</b></a> <a href="../kernel/about_salome_pro_architecture.htm"><b>2</b></a> </nobr><br><a href="../kernel/about_salome_pro_help_system.htm"><b>internet</b></a> <br><a href="../kernel/introduction.htm"><b>interoperability</b></a> <br><a href="../kernel/using_object_browser.htm"><b>interoperable</b></a> <br><nobr>interpreter <a href="../kernel/introduction_to_iapp.htm"><b>1</b></a> <a href="../kernel/salome_pro_desktop.htm"><b>2</b></a> </nobr><br><a href="../kernel/using_registry.htm"><b>interval</b></a> <br><a href="../kernel/readme.html"><b>introduced</b></a> <br><nobr>introduction <a href="../kernel/readme.html"><b>1</b></a> <a href="../kernel/introduction_to_salome_pro.htm"><b>2</b></a> <a href="../kernel/introduction_to_iapp.htm"><b>3</b></a> <a href="../kernel/introduction.htm"><b>4</b></a> </nobr><br><a href="../kernel/saving_a_study.htm"><b>invalid</b></a> <br><a href="../kernel/readme.html"><b>invoke</b></a> <br><a href="../kernel/salome_pro_desktop.htm"><b>invoked</b></a> <br><nobr><a name="bms_IO"></a><a name="subkey_IO"></a>ior <a href="../kernel/using_object_browser.htm"><b>1</b></a> <a href="../kernel/setting_preferences.htm"><b>2</b></a> </nobr><br><a name="bms_IS"></a><a name="subkey_IS"></a><a href="../kernel/setting_preferences.htm"><b>isolines</b></a> <br><a href="../kernel/readme.html"><b>ispython</b></a> <br><a name="bms_IT"></a><a name="subkey_IT"></a><a href="../kernel/getting_properties_of_the_study.htm"><b>item</b></a> <br><nobr>items <a href="../kernel/introduction_to_iapp.htm"><b>1</b></a> <a href="../kernel/introduction.htm"><b>2</b></a> </nobr><br><a href="../kernel/readme.html"><b>itself</b></a> <br>\r
+<a name="bms_GI"></a><a name="subkey_GI"></a><a href="../kernel/readme.html"><b>give</b></a> <br><nobr>given <a href="../kernel/readme.html"><b>1</b></a> <a href="../kernel/introduction_to_salome_pro.htm"><b>2</b></a> <a href="../post-pro_preferences.htm"><b>3</b></a> </nobr><br><nobr>gives <a href="../kernel/readme.html"><b>1</b></a> <a href="../kernel/getting_properties_of_the_study.htm"><b>2</b></a> <a href="../dump_study.htm"><b>3</b></a> <a href="../select_color_and_font.htm"><b>4</b></a> <a href="../kernel/salome_pro_desktop.htm"><b>5</b></a> </nobr><br><a name="bms_GL"></a><a name="subkey_GL"></a><a href="../post-pro_preferences.htm"><b>gl</b></a> <br><a href="../post-pro_preferences.htm"><b>global</b></a> <br><a href="../kernel/using_left-hand_tabs.htm"><b>glossary</b></a> <br><nobr><a name="bms_GO"></a><a name="subkey_GO"></a>go <a href="../kernel/readme.html"><b>1</b></a> <a href="../kernel/navigating_topics.htm"><b>2</b></a> </nobr><br><a name="bms_GR"></a><a name="subkey_GR"></a><a href="../kernel/setting_preferences.htm"><b>graph</b></a> <br><a href="../post-pro_preferences.htm"><b>graphic</b></a> <br><nobr>graphical <a href="../kernel/introduction_to_salome_pro.htm"><b>1</b></a> <a href="../introduction_to_gui.htm"><b>2</b></a> <a href="../dump_study.htm"><b>3</b></a> </nobr><br><nobr>graphs <a href="../kernel/introduction_to_salome_pro.htm"><b>1</b></a> <a href="../kernel/displaying_studies.htm"><b>2</b></a> <a href="../kernel/setting_preferences.htm"><b>3</b></a> </nobr><br><a href="../kernel/readme.html"><b>graphviz</b></a> <br><a href="../dump_study.htm"><b>great</b></a> <br><a href="../post-pro_preferences.htm"><b>greater</b></a> <br><a href="../dump_study.htm"><b>greatly</b></a> <br><a href="../select_color_and_font.htm"><b>greek</b></a> <br><a href="../kernel/readme.html"><b>grep</b></a> <br><a href="../select_color_and_font.htm"><b>grouped</b></a> <br><nobr>groups <a href="../post-pro_preferences.htm"><b>1</b></a> <a href="../mesh_preferences.htm"><b>2</b></a> </nobr><br><nobr><a name="bms_GU"></a><a name="subkey_GU"></a>gui <a href="../kernel/running_salome_pro.htm"><b>1</b></a> <a href="../kernel/readme.html"><b>2</b></a> <a href="../kernel/introduction_to_salome_pro.htm"><b>3</b></a> <a href="../kernel/creating_a_new_study.htm"><b>4</b></a> <a href="../kernel/about_salome_pro_architecture.htm"><b>5</b></a> <a href="../introduction_to_gui.htm"><b>6</b></a> <a href="../dump_study.htm"><b>7</b></a> <a href="../setting_preferences.htm"><b>8</b></a> <a href="../kernel/setting_preferences.htm"><b>9</b></a> <a href="../kernel/saving_a_study.htm"><b>10</b></a> </nobr><br>\r
 <br><br>\r
-<a name="bm_J"></a><a name="subkey_JA"></a><a href="../kernel/about_salome_pro_help_system.htm"><b>java</b></a> <br><a name="bms_JP"></a><a name="subkey_JP"></a><a href="../viewers.htm"><b>jpeg</b></a> <br><a href="../viewers.htm"><b>jpg</b></a> <br><nobr><a name="bms_JU"></a><a name="subkey_JU"></a>just <a href="../kernel/readme.html"><b>1</b></a> <a href="../kernel/setting_preferences.htm"><b>2</b></a> </nobr><br>\r
+<nobr><a name="bm_H"></a><a name="subkey_H{"></a>h <a href="../kernel/running_salome_pro.htm"><b>1</b></a> <a href="../kernel/readme.html"><b>2</b></a> </nobr><br><a name="bms_HA"></a><a name="subkey_HA"></a><a href="../post-pro_preferences.htm"><b>half</b></a> <br><nobr>hand <a href="../kernel/navigating_topics.htm"><b>1</b></a> <a href="../kernel/about_salome_pro_architecture.htm"><b>2</b></a> <a href="../kernel/using_left-hand_tabs.htm"><b>3</b></a> </nobr><br><a href="../kernel/introduction.htm"><b>handle</b></a> <br><a href="../kernel/introduction.htm"><b>handled</b></a> <br><a href="../kernel/readme.html"><b>handler</b></a> <br><a href="../introduction_to_gui.htm"><b>handling</b></a> <br><a href="../kernel/readme.html"><b>happydoc</b></a> <br><nobr>hard <a href="../kernel/running_salome_pro.htm"><b>1</b></a> <a href="../kernel/readme.html"><b>2</b></a> </nobr><br><a href="../kernel/saving_a_study.htm"><b>hasn</b></a> <br><a href="../kernel/setting_preferences.htm"><b>haven</b></a> <br><nobr>having <a href="../kernel/navigating_topics.htm"><b>1</b></a> <a href="../kernel/introduction_to_salome_pro.htm"><b>2</b></a> <a href="../kernel/using_object_browser.htm"><b>3</b></a> </nobr><br><nobr><a name="bms_HD"></a><a name="subkey_HD"></a>hdf <a href="../kernel/readme.html"><b>1</b></a> <a href="../kernel/opening_studies.htm"><b>2</b></a> <a href="../kernel/setting_preferences.htm"><b>3</b></a> <a href="../kernel/saving_a_study.htm"><b>4</b></a> </nobr><br><a href="../kernel/readme.html"><b>hdf5</b></a> <br><a href="../kernel/readme.html"><b>hdf5home</b></a> <br><a name="bms_HE"></a><a name="subkey_HE"></a><a href="../kernel/introduction.htm"><b>healing</b></a> <br><nobr>height <a href="../post-pro_preferences.htm"><b>1</b></a> <a href="../mesh_preferences.htm"><b>2</b></a> </nobr><br><a href="../kernel/using_registry.htm"><b>hello</b></a> <br><nobr>help <a href="../kernel/running_salome_pro.htm"><b>1</b></a> <a href="../kernel/readme.html"><b>2</b></a> <a href="../kernel/opening_studies.htm"><b>3</b></a> <a href="../kernel/navigating_topics.htm"><b>4</b></a> <a href="../kernel/about_salome_pro_help_system.htm"><b>5</b></a> <a href="../kernel/about_salome_pro_architecture.htm"><b>6</b></a> <a href="../kernel/using_object_browser.htm"><b>7</b></a> <a href="../kernel/using_left-hand_tabs.htm"><b>8</b></a> <a href="../kernel/setting_preferences.htm"><b>9</b></a> </nobr><br><a href="../kernel/readme.html"><b>helpful</b></a> <br><nobr>helps <a href="../kernel/readme.html"><b>1</b></a> <a href="../kernel/introduction.htm"><b>2</b></a> </nobr><br><nobr>here <a href="../kernel/readme.html"><b>1</b></a> <a href="../post-pro_preferences.htm"><b>2</b></a> <a href="../mesh_preferences.htm"><b>3</b></a> <a href="../kernel/setting_preferences.htm"><b>4</b></a> </nobr><br><a href="../kernel/introduction.htm"><b>heterogeneous</b></a> <br><nobr><a name="bms_HI"></a><a name="subkey_HI"></a>hide <a href="../post-pro_preferences.htm"><b>1</b></a> <a href="../kernel/setting_preferences.htm"><b>2</b></a> <a href="../kernel/salome_pro_desktop.htm"><b>3</b></a> </nobr><br><a href="../kernel/using_object_browser.htm"><b>hiding</b></a> <br><a href="../kernel/introduction.htm"><b>high</b></a> <br><a href="../kernel/readme.html"><b>higher</b></a> <br><a href="../mesh_preferences.htm"><b>highlight</b></a> <br><nobr>highlighted <a href="../kernel/readme.html"><b>1</b></a> <a href="../kernel/using_object_browser.htm"><b>2</b></a> </nobr><br><a href="../kernel/readme.html"><b>hints</b></a> <br><a href="../kernel/using_registry.htm"><b>history</b></a> <br><a name="bms_HO"></a><a name="subkey_HO"></a><a href="../kernel/running_salome_pro.htm"><b>home</b></a> <br><nobr>horizontal <a href="../kernel/displaying_studies.htm"><b>1</b></a> <a href="../post-pro_preferences.htm"><b>2</b></a> <a href="../mesh_preferences.htm"><b>3</b></a> <a href="../kernel/setting_preferences.htm"><b>4</b></a> </nobr><br><a href="../kernel/displaying_studies.htm"><b>horizontally</b></a> <br><a href="../kernel/about_salome_pro_architecture.htm"><b>host</b></a> <br><a href="../kernel/navigating_topics.htm"><b>hotspot</b></a> <br><a href="../kernel/navigating_topics.htm"><b>hotspots</b></a> <br><nobr>how <a href="../kernel/readme.html"><b>1</b></a> <a href="../kernel/about_salome_pro_architecture.htm"><b>2</b></a> </nobr><br><a name="bms_HP"></a><a name="subkey_HP"></a><a href="../kernel/readme.html"><b>hpp</b></a> <br><nobr><a name="bms_HT"></a><a name="subkey_HT"></a>html <a href="../kernel/about_salome_pro_help_system.htm"><b>1</b></a> <a href="../kernel/using_left-hand_tabs.htm"><b>2</b></a> </nobr><br><a name="bms_HX"></a><a name="subkey_HX"></a><a href="../kernel/readme.html"><b>hxx</b></a> <br>\r
 <br><br>\r
-<a name="bm_K"></a><a name="subkey_K{"></a><a href="../kernel/running_salome_pro.htm"><b>k</b></a> <br><a name="bms_KB"></a><a name="subkey_KB"></a><a href="../kernel/readme.html"><b>kbytes</b></a> <br><nobr><a name="bms_KE"></a><a name="subkey_KE"></a>kernel <a href="../kernel/running_salome_pro.htm"><b>1</b></a> <a href="../kernel/readme.html"><b>2</b></a> <a href="../kernel/introduction_to_salome_pro.htm"><b>3</b></a> </nobr><br><a href="../kernel/readme.html"><b>key</b></a> <br><a name="bms_KI"></a><a name="subkey_KI"></a><a href="../kernel/running_salome_pro.htm"><b>kill</b></a> <br><a href="../kernel/running_salome_pro.htm"><b>killall</b></a> <br><nobr>kind <a href="../kernel/navigating_topics.htm"><b>1</b></a> <a href="../kernel/getting_properties_of_the_study.htm"><b>2</b></a> </nobr><br><a name="bms_KN"></a><a name="subkey_KN"></a><a href="../kernel/using_catalog_generator.htm"><b>know</b></a> <br>\r
-<br><br>\r
-<a name="bm_L"></a><a name="subkey_L{"></a><a href="../kernel/running_salome_pro.htm"><b>l</b></a> <br><nobr><a name="bms_LA"></a><a name="subkey_LA"></a>labels <a href="../post-pro_preferences.htm"><b>1</b></a> <a href="../mesh_preferences.htm"><b>2</b></a> </nobr><br><a href="../kernel/about_salome_pro_architecture.htm"><b>language</b></a> <br><a href="../kernel/readme.html"><b>larger</b></a> <br><nobr>last <a href="../kernel/using_registry.htm"><b>1</b></a> <a href="../kernel/saving_a_study.htm"><b>2</b></a> </nobr><br><a href="../kernel/setting_preferences.htm"><b>latin</b></a> <br><nobr>launch <a href="../kernel/running_salome_pro.htm"><b>1</b></a> <a href="../kernel/readme.html"><b>2</b></a> <a href="../kernel/opening_studies.htm"><b>3</b></a> <a href="../setting_preferences.htm"><b>4</b></a> <a href="../kernel/using_catalog_generator.htm"><b>5</b></a> </nobr><br><nobr>launched <a href="../kernel/running_salome_pro.htm"><b>1</b></a> <a href="../kernel/readme.html"><b>2</b></a> <a href="../kernel/about_salome_pro_help_system.htm"><b>3</b></a> <a href="../kernel/using_registry.htm"><b>4</b></a> </nobr><br><a href="../kernel/readme.html"><b>launches</b></a> <br><nobr>launching <a href="../kernel/running_salome_pro.htm"><b>1</b></a> <a href="../kernel/readme.html"><b>2</b></a> <a href="../kernel/using_registry.htm"><b>3</b></a> <a href="../kernel/using_catalog_generator.htm"><b>4</b></a> </nobr><br><a href="../kernel/creating_a_new_study.htm"><b>layer</b></a> <br><a href="../kernel/saving_a_study.htm"><b>layout</b></a> <br><a name="bms_LD"></a><a name="subkey_LD"></a><a href="../kernel/readme.html"><b>ld_library_path</b></a> <br><a name="bms_LE"></a><a name="subkey_LE"></a><a href="../kernel/saving_a_study.htm"><b>lead</b></a> <br><a href="../kernel/readme.html"><b>learn</b></a> <br><a href="../kernel/introduction.htm"><b>learning</b></a> <br><nobr>left <a href="../kernel/readme.html"><b>1</b></a> <a href="../kernel/using_left-hand_tabs.htm"><b>2</b></a> <a href="../kernel/setting_preferences.htm"><b>3</b></a> </nobr><br><nobr>legend <a href="../viewers.htm"><b>1</b></a> <a href="../kernel/setting_preferences.htm"><b>2</b></a> </nobr><br><nobr>level <a href="../kernel/about_salome_pro_architecture.htm"><b>1</b></a> <a href="../mesh_preferences.htm"><b>2</b></a> <a href="../kernel/setting_preferences.htm"><b>3</b></a> </nobr><br><a name="bms_LI"></a><a name="subkey_LI"></a><a href="../kernel/readme.html"><b>lib</b></a> <br><a href="../kernel/readme.html"><b>libcosnotify4</b></a> <br><a href="../kernel/readme.html"><b>libhdf5</b></a> <br><a href="../kernel/readme.html"><b>libmed</b></a> <br><a href="../kernel/readme.html"><b>libomniorb4</b></a> <br><a href="../kernel/readme.html"><b>libqwt</b></a> <br><a href="../kernel/readme.html"><b>libraries</b></a> <br><nobr>library <a href="../kernel/readme.html"><b>1</b></a> <a href="../kernel/introduction_to_iapp.htm"><b>2</b></a> </nobr><br><a href="../kernel/readme.html"><b>libstdplugin</b></a> <br><a href="../kernel/readme.html"><b>libtcl8</b></a> <br><a href="../kernel/readme.html"><b>libtk8</b></a> <br><a href="../kernel/readme.html"><b>libvtkcommon</b></a> <br><a href="../kernel/readme.html"><b>license</b></a> <br><nobr>like <a href="../kernel/readme.html"><b>1</b></a> <a href="../kernel/navigating_topics.htm"><b>2</b></a> <a href="../kernel/displaying_studies.htm"><b>3</b></a> <a href="../kernel/displaying_hiding_toolbars.htm"><b>4</b></a> <a href="../kernel/about_salome_pro_architecture.htm"><b>5</b></a> <a href="../kernel/using_object_browser.htm"><b>6</b></a> <a href="../kernel/using_catalog_generator.htm"><b>7</b></a> <a href="../kernel/saving_a_study.htm"><b>8</b></a> <a href="../kernel/salome_pro_desktop.htm"><b>9</b></a> </nobr><br><a href="../kernel/readme.html"><b>likely</b></a> <br><a href="../post-pro_preferences.htm"><b>limits</b></a> <br><nobr>line <a href="../kernel/running_salome_pro.htm"><b>1</b></a> <a href="../kernel/readme.html"><b>2</b></a> <a href="../kernel/about_salome_pro_help_system.htm"><b>3</b></a> <a href="../kernel/setting_preferences.htm"><b>4</b></a> </nobr><br><a href="../kernel/setting_preferences.htm"><b>linear</b></a> <br><nobr>lines <a href="../mesh_preferences.htm"><b>1</b></a> <a href="../kernel/setting_preferences.htm"><b>2</b></a> </nobr><br><nobr>link <a href="../kernel/navigating_topics.htm"><b>1</b></a> <a href="../kernel/introduction.htm"><b>2</b></a> <a href="../geom_preferences.htm"><b>3</b></a> </nobr><br><nobr>links <a href="../kernel/navigating_topics.htm"><b>1</b></a> <a href="../kernel/about_salome_pro_architecture.htm"><b>2</b></a> </nobr><br><nobr>linux <a href="../kernel/readme.html"><b>1</b></a> <a href="../kernel/about_salome_pro_help_system.htm"><b>2</b></a> </nobr><br><nobr>list <a href="../kernel/running_salome_pro.htm"><b>1</b></a> <a href="../kernel/readme.html"><b>2</b></a> <a href="../kernel/navigating_topics.htm"><b>3</b></a> <a href="../kernel/getting_properties_of_the_study.htm"><b>4</b></a> <a href="../kernel/using_registry.htm"><b>5</b></a> <a href="../kernel/using_left-hand_tabs.htm"><b>6</b></a> <a href="../kernel/setting_preferences.htm"><b>7</b></a> </nobr><br><a href="../kernel/readme.html"><b>list_of_prerequisites</b></a> <br><nobr><a name="bms_LL"></a><a name="subkey_LL"></a>ll <a href="../viewers.htm"><b>1</b></a> <a href="../kernel/setting_preferences.htm"><b>2</b></a> </nobr><br><nobr><a name="bms_LO"></a><a name="subkey_LO"></a>load <a href="../kernel/opening_studies.htm"><b>1</b></a> <a href="../setting_preferences.htm"><b>2</b></a> </nobr><br><nobr>loaded <a href="../kernel/running_salome_pro.htm"><b>1</b></a> <a href="../kernel/introduction_to_iapp.htm"><b>2</b></a> <a href="../kernel/using_object_browser.htm"><b>3</b></a> <a href="../kernel/setting_preferences.htm"><b>4</b></a> <a href="../kernel/salome_pro_desktop.htm"><b>5</b></a> </nobr><br><nobr>loading <a href="../kernel/introduction_to_iapp.htm"><b>1</b></a> <a href="../kernel/about_salome_pro_architecture.htm"><b>2</b></a> <a href="../post-pro_preferences.htm"><b>3</b></a> </nobr><br><a href="../kernel/using_left-hand_tabs.htm"><b>locate</b></a> <br><nobr>located <a href="../kernel/running_salome_pro.htm"><b>1</b></a> <a href="../kernel/displaying_hiding_toolbars.htm"><b>2</b></a> <a href="../kernel/about_salome_pro_architecture.htm"><b>3</b></a> <a href="../kernel/using_object_browser.htm"><b>4</b></a> <a href="../kernel/setting_preferences.htm"><b>5</b></a> </nobr><br><a href="../kernel/using_catalog_generator.htm"><b>location</b></a> <br><a href="../kernel/getting_properties_of_the_study.htm"><b>lock</b></a> <br><a href="../kernel/getting_properties_of_the_study.htm"><b>locked</b></a> <br><a href="../kernel/running_salome_pro.htm"><b>log</b></a> <br><nobr>logarithmic <a href="../viewers.htm"><b>1</b></a> <a href="../post-pro_preferences.htm"><b>2</b></a> <a href="../kernel/setting_preferences.htm"><b>3</b></a> </nobr><br><a href="../kernel/running_salome_pro.htm"><b>logger</b></a> <br><a href="../kernel/about_salome_pro_architecture.htm"><b>long</b></a> <br><a href="../kernel/using_catalog_generator.htm"><b>look</b></a> <br><nobr>looks <a href="../kernel/readme.html"><b>1</b></a> <a href="../kernel/using_left-hand_tabs.htm"><b>2</b></a> </nobr><br><a href="../kernel/saving_a_study.htm"><b>lost</b></a> <br><a href="../kernel/salome_pro_desktop.htm"><b>lot</b></a> <br><nobr>lower <a href="../kernel/readme.html"><b>1</b></a> <a href="../kernel/using_left-hand_tabs.htm"><b>2</b></a> <a href="../kernel/setting_preferences.htm"><b>3</b></a> </nobr><br><br><br></p><p class="ftsbody" align="center"><a href="whlstf5.htm" target="_self" title="previous search group"><b>&gt;&gt;</b></a>\r
+<nobr><a name="bm_I"></a><a name="subkey_I{"></a>i <a href="../kernel/readme.html"><b>1</b></a> <a href="../introduction_to_gui.htm"><b>2</b></a> <a href="../kernel/saving_a_study.htm"><b>3</b></a> <a href="../kernel/salome_pro_desktop.htm"><b>4</b></a> </nobr><br><nobr><a name="bms_IC"></a><a name="subkey_IC"></a>icon <a href="../kernel/creating_a_new_study.htm"><b>1</b></a> <a href="../kernel/using_catalog_generator.htm"><b>2</b></a> </nobr><br><nobr>icons <a href="../kernel/editing_studies.htm"><b>1</b></a> <a href="../kernel/salome_pro_desktop.htm"><b>2</b></a> </nobr><br><a name="bms_ID"></a><a name="subkey_ID"></a><a href="../kernel/readme.html"><b>idea</b></a> <br><nobr>identification <a href="../kernel/using_registry.htm"><b>1</b></a> <a href="../kernel/using_object_browser.htm"><b>2</b></a> </nobr><br><a href="../kernel/readme.html"><b>identify</b></a> <br><nobr>idl <a href="../kernel/about_salome_pro_architecture.htm"><b>1</b></a> <a href="../kernel/using_catalog_generator.htm"><b>2</b></a> </nobr><br><a name="bms_IE"></a><a name="subkey_IE"></a><a href="../kernel/setting_preferences.htm"><b>ie</b></a> <br><nobr><a name="bms_IF"></a><a name="subkey_IF"></a>if <a href="../kernel/running_salome_pro.htm"><b>1</b></a> <a href="../kernel/readme.html"><b>2</b></a> <a href="../kernel/opening_studies.htm"><b>3</b></a> <a href="../kernel/editing_studies.htm"><b>4</b></a> <a href="../kernel/displaying_studies.htm"><b>5</b></a> <a href="../kernel/creating_a_new_study.htm"><b>6</b></a> <a href="../dump_study.htm"><b>7</b></a> <a href="../post-pro_preferences.htm"><b>8</b></a> <a href="../mesh_preferences.htm"><b>9</b></a> <a href="../kernel/using_object_browser.htm"><b>10</b></a> <a href="../kernel/using_catalog_generator.htm"><b>11</b></a> <a href="../kernel/setting_preferences.htm"><b>12</b></a> <a href="../kernel/saving_a_study.htm"><b>13</b></a> <a href="../kernel/salome_pro_desktop.htm"><b>14</b></a> </nobr><br><a name="bms_IG"></a><a name="subkey_IG"></a><a href="../kernel/introduction.htm"><b>iges</b></a> <br><a href="../kernel/readme.html"><b>ignored</b></a> <br><a name="bms_IM"></a><a name="subkey_IM"></a><a href="../post-pro_preferences.htm"><b>image</b></a> <br><nobr>images <a href="../kernel/introduction.htm"><b>1</b></a> <a href="../post-pro_preferences.htm"><b>2</b></a> </nobr><br><a href="../kernel/navigating_topics.htm"><b>immediately</b></a> <br><nobr>implement <a href="../kernel/readme.html"><b>1</b></a> <a href="../kernel/about_salome_pro_architecture.htm"><b>2</b></a> </nobr><br><nobr>implementation <a href="../kernel/about_salome_pro_architecture.htm"><b>1</b></a> <a href="../kernel/using_catalog_generator.htm"><b>2</b></a> </nobr><br><a href="../kernel/readme.html"><b>implementing</b></a> <br><a href="../kernel/readme.html"><b>implied</b></a> <br><nobr>import <a href="../kernel/readme.html"><b>1</b></a> <a href="../kernel/introduction.htm"><b>2</b></a> <a href="../post-pro_preferences.htm"><b>3</b></a> </nobr><br><a href="../kernel/readme.html"><b>important</b></a> <br><nobr>imported <a href="../kernel/introduction_to_salome_pro.htm"><b>1</b></a> <a href="../introduction_to_gui.htm"><b>2</b></a> <a href="../dump_study.htm"><b>3</b></a> <a href="../kernel/salome_pro_desktop.htm"><b>4</b></a> </nobr><br><a href="../post-pro_preferences.htm"><b>imposed</b></a> <br><a href="../kernel/readme.html"><b>impossible</b></a> <br><a href="../introduction_to_gui.htm"><b>improves</b></a> <br><a name="bms_IN"></a><a name="subkey_IN"></a><a href="../kernel/readme.html"><b>inc</b></a> <br><a href="../kernel/readme.html"><b>included</b></a> <br><nobr>includes <a href="../kernel/readme.html"><b>1</b></a> <a href="../kernel/using_left-hand_tabs.htm"><b>2</b></a> </nobr><br><nobr>including <a href="../kernel/readme.html"><b>1</b></a> <a href="../kernel/navigating_topics.htm"><b>2</b></a> <a href="../post-pro_preferences.htm"><b>3</b></a> </nobr><br><a href="../kernel/about_salome_pro_architecture.htm"><b>inclusive</b></a> <br><a href="../post-pro_preferences.htm"><b>increase</b></a> <br><nobr>increases <a href="../dump_study.htm"><b>1</b></a> <a href="../post-pro_preferences.htm"><b>2</b></a> </nobr><br><a href="../kernel/introduction.htm"><b>increasingly</b></a> <br><nobr>increment <a href="../geom_preferences.htm"><b>1</b></a> <a href="../post-pro_preferences.htm"><b>2</b></a> </nobr><br><a href="../kernel/about_salome_pro_architecture.htm"><b>incrementally</b></a> <br><a href="../kernel/about_salome_pro_architecture.htm"><b>independence</b></a> <br><a href="../kernel/about_salome_pro_architecture.htm"><b>independent</b></a> <br><a href="../kernel/using_object_browser.htm"><b>index</b></a> <br><a href="../mesh_preferences.htm"><b>indexing</b></a> <br><nobr>indicate <a href="../kernel/saving_a_study.htm"><b>1</b></a> <a href="../kernel/salome_pro_desktop.htm"><b>2</b></a> </nobr><br><nobr>information <a href="../kernel/readme.html"><b>1</b></a> <a href="../kernel/navigating_topics.htm"><b>2</b></a> <a href="../kernel/getting_properties_of_the_study.htm"><b>3</b></a> <a href="../kernel/about_salome_pro_architecture.htm"><b>4</b></a> <a href="../post-pro_preferences.htm"><b>5</b></a> <a href="../kernel/using_registry.htm"><b>6</b></a> <a href="../kernel/using_left-hand_tabs.htm"><b>7</b></a> <a href="../kernel/saving_a_study.htm"><b>8</b></a> </nobr><br><a href="../kernel/getting_started2.htm"><b>initial</b></a> <br><nobr>input <a href="../kernel/introduction.htm"><b>1</b></a> <a href="../kernel/using_catalog_generator.htm"><b>2</b></a> </nobr><br><a href="../kernel/readme.html"><b>insert</b></a> <br><nobr>inside <a href="../kernel/navigating_topics.htm"><b>1</b></a> <a href="../kernel/displaying_studies.htm"><b>2</b></a> <a href="../kernel/about_salome_pro_architecture.htm"><b>3</b></a> <a href="../post-pro_preferences.htm"><b>4</b></a> <a href="../kernel/using_catalog_generator.htm"><b>5</b></a> </nobr><br><a href="../kernel/readme.html"><b>inspect</b></a> <br><a href="../post-pro_preferences.htm"><b>inspected</b></a> <br><a href="../kernel/readme.html"><b>instalation</b></a> <br><nobr>install <a href="../kernel/running_salome_pro.htm"><b>1</b></a> <a href="../kernel/readme.html"><b>2</b></a> </nobr><br><a href="../kernel/readme.html"><b>install_binary</b></a> <br><a href="../kernel/readme.html"><b>install_disk_space</b></a> <br><a href="../kernel/readme.html"><b>install_source</b></a> <br><a href="../kernel/readme.html"><b>install_wizard_caption</b></a> <br><a href="../kernel/readme.html"><b>install_wizard_copyright</b></a> <br><a href="../kernel/readme.html"><b>install_wizard_license_info</b></a> <br><a href="../kernel/readme.html"><b>install_wizard_root_directory</b></a> <br><a href="../kernel/readme.html"><b>install_wizard_version</b></a> <br><nobr>installation <a href="../kernel/running_salome_pro.htm"><b>1</b></a> <a href="../kernel/readme.html"><b>2</b></a> </nobr><br><a href="../kernel/readme.html"><b>installation_mode</b></a> <br><a href="../kernel/readme.html"><b>installation_script_name</b></a> <br><a href="../kernel/readme.html"><b>installdiskspace</b></a> <br><nobr>installed <a href="../kernel/readme.html"><b>1</b></a> <a href="../kernel/using_catalog_generator.htm"><b>2</b></a> </nobr><br><a href="../kernel/readme.html"><b>installing</b></a> <br><a href="../kernel/readme.html"><b>installwizard_root_directory</b></a> <br><a href="../kernel/readme.html"><b>installworkxxxxx</b></a> <br><a href="../kernel/creating_a_new_study.htm"><b>instances</b></a> <br><a href="../kernel/readme.html"><b>instead</b></a> <br><a href="../kernel/about_salome_pro_architecture.htm"><b>instrumental</b></a> <br><a href="../kernel/readme.html"><b>integer</b></a> <br><a href="../mesh_preferences.htm"><b>integers</b></a> <br><a href="../kernel/introduction_to_salome_pro.htm"><b>integrate</b></a> <br><nobr>integrated <a href="../kernel/introduction_to_salome_pro.htm"><b>1</b></a> <a href="../kernel/introduction.htm"><b>2</b></a> <a href="../kernel/about_salome_pro_architecture.htm"><b>3</b></a> <a href="../introduction_to_gui.htm"><b>4</b></a> </nobr><br><a href="../kernel/introduction_to_salome_pro.htm"><b>integrates</b></a> <br><nobr>integration <a href="../kernel/introduction.htm"><b>1</b></a> <a href="../kernel/about_salome_pro_architecture.htm"><b>2</b></a> <a href="../introduction_to_gui.htm"><b>3</b></a> <a href="../kernel/using_catalog_generator.htm"><b>4</b></a> </nobr><br><a href="../kernel/readme.html"><b>intend</b></a> <br><a href="../introduction_to_gui.htm"><b>interaction</b></a> <br><nobr>interface <a href="../kernel/introduction_to_salome_pro.htm"><b>1</b></a> <a href="../kernel/introduction.htm"><b>2</b></a> <a href="../kernel/about_salome_pro_architecture.htm"><b>3</b></a> <a href="../introduction_to_gui.htm"><b>4</b></a> <a href="../dump_study.htm"><b>5</b></a> <a href="../kernel/using_catalog_generator.htm"><b>6</b></a> <a href="../kernel/salome_pro_desktop.htm"><b>7</b></a> </nobr><br><nobr>interfaces <a href="../kernel/introduction.htm"><b>1</b></a> <a href="../kernel/about_salome_pro_architecture.htm"><b>2</b></a> <a href="../introduction_to_gui.htm"><b>3</b></a> <a href="../kernel/using_catalog_generator.htm"><b>4</b></a> </nobr><br><a href="../mesh_preferences.htm"><b>interior</b></a> <br><nobr>internal <a href="../kernel/readme.html"><b>1</b></a> <a href="../kernel/about_salome_pro_architecture.htm"><b>2</b></a> </nobr><br><a href="../kernel/about_salome_pro_help_system.htm"><b>internet</b></a> <br><a href="../kernel/introduction.htm"><b>interoperability</b></a> <br><a href="../kernel/using_object_browser.htm"><b>interoperable</b></a> <br><nobr>interpreter <a href="../introduction_to_gui.htm"><b>1</b></a> <a href="../kernel/salome_pro_desktop.htm"><b>2</b></a> </nobr><br><nobr>interval <a href="../post-pro_preferences.htm"><b>1</b></a> <a href="../kernel/using_registry.htm"><b>2</b></a> </nobr><br><a href="../kernel/readme.html"><b>introduced</b></a> <br><nobr>introduction <a href="../kernel/readme.html"><b>1</b></a> <a href="../kernel/introduction_to_salome_pro.htm"><b>2</b></a> <a href="../kernel/introduction.htm"><b>3</b></a> <a href="../introduction_to_gui.htm"><b>4</b></a> </nobr><br><a href="../kernel/saving_a_study.htm"><b>invalid</b></a> <br><a href="../kernel/readme.html"><b>invoke</b></a> <br><a href="../kernel/salome_pro_desktop.htm"><b>invoked</b></a> <br><br><br></p><p class="ftsbody" align="center"><a href="whlstf5.htm" target="_self" title="previous search group"><b>&gt;&gt;</b></a>\r
 \r
 </body>\r
 \r
index 0626de04587d3cb34c5887eba2b890e329374093..a128c7826383cf16b0e627f5780e173d221a4ad0 100755 (executable)
@@ -33,13 +33,15 @@ A:hover {color:Navy; } A:hover {font-family:Tahoma; } A:hover {font-size:8pt; }
 <body marginheight="0"  marginwidth="0" bgproperties="fixed">\r
 <p class="ftsbody" align="center"><a href="whlstf4.htm" target="_self" title="previous search group"><b>&lt;&lt;</b></a><br><br></p>\r
 <p class="ftsbody" >\r
-\r
-\r
-<a name="bm_M"></a><a name="subkey_M{"></a><a href="../kernel/running_salome_pro.htm"><b>m</b></a> <br><nobr><a name="bms_MA"></a><a name="subkey_MA"></a>machine <a href="../kernel/using_registry.htm"><b>1</b></a> <a href="../kernel/saving_a_study.htm"><b>2</b></a> </nobr><br><a href="../kernel/about_salome_pro_architecture.htm"><b>machines</b></a> <br><a href="../kernel/about_salome_pro_help_system.htm"><b>macintosh</b></a> <br><a href="../kernel/about_salome_pro_architecture.htm"><b>macro</b></a> <br><nobr>main <a href="../kernel/readme.html"><b>1</b></a> <a href="../kernel/opening_studies.htm"><b>2</b></a> <a href="../kernel/introduction.htm"><b>3</b></a> <a href="../kernel/getting_properties_of_the_study.htm"><b>4</b></a> <a href="../kernel/editing_studies.htm"><b>5</b></a> <a href="../kernel/displaying_hiding_toolbars.htm"><b>6</b></a> <a href="../kernel/creating_a_new_study.htm"><b>7</b></a> <a href="../kernel/using_registry.htm"><b>8</b></a> <a href="../kernel/using_catalog_generator.htm"><b>9</b></a> <a href="../kernel/setting_preferences.htm"><b>10</b></a> <a href="../kernel/saving_a_study.htm"><b>11</b></a> <a href="../kernel/salome_pro_desktop.htm"><b>12</b></a> </nobr><br><a href="../kernel/readme.html"><b>major</b></a> <br><nobr>make <a href="../kernel/readme.html"><b>1</b></a> <a href="../kernel/creating_a_new_study.htm"><b>2</b></a> <a href="../viewers.htm"><b>3</b></a> <a href="../mesh_preferences.htm"><b>4</b></a> </nobr><br><a href="../kernel/readme.html"><b>make_dir</b></a> <br><a href="../kernel/readme.html"><b>make_env</b></a> <br><a href="../kernel/introduction.htm"><b>makes</b></a> <br><nobr>manage <a href="../kernel/introduction.htm"><b>1</b></a> <a href="../kernel/setting_preferences.htm"><b>2</b></a> </nobr><br><nobr>management <a href="../kernel/introduction_to_iapp.htm"><b>1</b></a> <a href="../kernel/introduction.htm"><b>2</b></a> <a href="../kernel/salome_pro_desktop.htm"><b>3</b></a> </nobr><br><a href="../kernel/readme.html"><b>mandrake</b></a> <br><a href="../kernel/readme.html"><b>mandrake10</b></a> <br><a href="../kernel/about_salome_pro_help_system.htm"><b>manual</b></a> <br><a href="../kernel/readme.html"><b>manually</b></a> <br><a href="../kernel/setting_preferences.htm"><b>manuals</b></a> <br><a href="../kernel/about_salome_pro_architecture.htm"><b>mapped</b></a> <br><nobr>mark <a href="../kernel/readme.html"><b>1</b></a> <a href="../kernel/displaying_hiding_toolbars.htm"><b>2</b></a> </nobr><br><nobr>marked <a href="../kernel/readme.html"><b>1</b></a> <a href="../kernel/setting_preferences.htm"><b>2</b></a> </nobr><br><a href="../kernel/setting_preferences.htm"><b>marker</b></a> <br><a href="../kernel/setting_preferences.htm"><b>markers</b></a> <br><a href="../kernel/introduction.htm"><b>market</b></a> <br><a href="../kernel/about_salome_pro_architecture.htm"><b>massively</b></a> <br><a href="../kernel/readme.html"><b>master</b></a> <br><a href="../kernel/using_left-hand_tabs.htm"><b>matches</b></a> <br><a href="../post-pro_preferences.htm"><b>max</b></a> <br><a href="../kernel/creating_a_new_study.htm"><b>maximize</b></a> <br><a href="../kernel/salome_pro_desktop.htm"><b>maximized</b></a> <br><a href="../viewers.htm"><b>maximum</b></a> <br><nobr><a name="bms_ME"></a><a name="subkey_ME"></a>means <a href="../kernel/readme.html"><b>1</b></a> <a href="../kernel/getting_started2.htm"><b>2</b></a> <a href="../kernel/displaying_studies.htm"><b>3</b></a> <a href="../kernel/saving_a_study.htm"><b>4</b></a> <a href="../kernel/salome_pro_desktop.htm"><b>5</b></a> </nobr><br><a href="../kernel/introduction_to_iapp.htm"><b>mechanisms</b></a> <br><a href="../kernel/readme.html"><b>med2home</b></a> <br><a href="../kernel/introduction.htm"><b>meet</b></a> <br><a href="../viewers.htm"><b>memorize</b></a> <br><a href="../kernel/readme.html"><b>mentioned</b></a> <br><nobr>menu <a href="../kernel/opening_studies.htm"><b>1</b></a> <a href="../kernel/navigating_topics.htm"><b>2</b></a> <a href="../kernel/introduction_to_iapp.htm"><b>3</b></a> <a href="../kernel/getting_properties_of_the_study.htm"><b>4</b></a> <a href="../kernel/editing_studies.htm"><b>5</b></a> <a href="../kernel/displaying_hiding_toolbars.htm"><b>6</b></a> <a href="../kernel/creating_a_new_study.htm"><b>7</b></a> <a href="../kernel/about_salome_pro_architecture.htm"><b>8</b></a> <a href="../viewers.htm"><b>9</b></a> <a href="../post-pro_preferences.htm"><b>10</b></a> <a href="../mesh_preferences.htm"><b>11</b></a> <a href="../kernel/using_registry.htm"><b>12</b></a> <a href="../kernel/using_object_browser.htm"><b>13</b></a> <a href="../kernel/using_catalog_generator.htm"><b>14</b></a> <a href="../kernel/setting_preferences.htm"><b>15</b></a> <a href="../kernel/saving_a_study.htm"><b>16</b></a> <a href="../kernel/salome_pro_desktop.htm"><b>17</b></a> </nobr><br><a href="../kernel/salome_pro_desktop.htm"><b>menubar</b></a> <br><nobr>menus <a href="../kernel/introduction_to_iapp.htm"><b>1</b></a> <a href="../kernel/setting_preferences.htm"><b>2</b></a> <a href="../kernel/salome_pro_desktop.htm"><b>3</b></a> </nobr><br><nobr>mesh <a href="../kernel/introduction_to_salome_pro.htm"><b>1</b></a> <a href="../kernel/introduction.htm"><b>2</b></a> <a href="../geom_preferences.htm"><b>3</b></a> <a href="../mesh_preferences.htm"><b>4</b></a> </nobr><br><nobr>meshes <a href="../kernel/introduction_to_salome_pro.htm"><b>1</b></a> <a href="../viewers.htm"><b>2</b></a> </nobr><br><nobr>meshing <a href="../kernel/introduction_to_salome_pro.htm"><b>1</b></a> <a href="../kernel/introduction.htm"><b>2</b></a> </nobr><br><nobr>message <a href="../kernel/readme.html"><b>1</b></a> <a href="../kernel/getting_properties_of_the_study.htm"><b>2</b></a> <a href="../kernel/using_registry.htm"><b>3</b></a> </nobr><br><nobr>messages <a href="../kernel/running_salome_pro.htm"><b>1</b></a> <a href="../kernel/introduction_to_iapp.htm"><b>2</b></a> </nobr><br><a name="bms_MI"></a><a name="subkey_MI"></a><a href="../kernel/readme.html"><b>middle</b></a> <br><a href="../post-pro_preferences.htm"><b>min</b></a> <br><nobr>minimized <a href="../kernel/creating_a_new_study.htm"><b>1</b></a> <a href="../kernel/salome_pro_desktop.htm"><b>2</b></a> </nobr><br><a href="../kernel/readme.html"><b>minor</b></a> <br><a href="../kernel/readme.html"><b>missed</b></a> <br><a href="../kernel/salome_pro_desktop.htm"><b>mistakes</b></a> <br><a href="../kernel/salome_pro_desktop.htm"><b>mix</b></a> <br><nobr><a name="bms_MO"></a><a name="subkey_MO"></a>mode <a href="../kernel/running_salome_pro.htm"><b>1</b></a> <a href="../kernel/readme.html"><b>2</b></a> <a href="../kernel/about_salome_pro_architecture.htm"><b>3</b></a> <a href="../geom_preferences.htm"><b>4</b></a> <a href="../post-pro_preferences.htm"><b>5</b></a> <a href="../mesh_preferences.htm"><b>6</b></a> </nobr><br><nobr>model <a href="../kernel/about_salome_pro_architecture.htm"><b>1</b></a> <a href="../mesh_preferences.htm"><b>2</b></a> </nobr><br><nobr>modeling <a href="../kernel/introduction.htm"><b>1</b></a> <a href="../kernel/about_salome_pro_architecture.htm"><b>2</b></a> </nobr><br><nobr>models <a href="../kernel/introduction_to_salome_pro.htm"><b>1</b></a> <a href="../kernel/introduction.htm"><b>2</b></a> <a href="../viewers.htm"><b>3</b></a> </nobr><br><a href="../kernel/introduction.htm"><b>modern</b></a> <br><a href="../kernel/readme.html"><b>modes</b></a> <br><nobr>modification <a href="../kernel/getting_properties_of_the_study.htm"><b>1</b></a> <a href="../kernel/about_salome_pro_architecture.htm"><b>2</b></a> </nobr><br><a href="../kernel/getting_properties_of_the_study.htm"><b>modifications</b></a> <br><nobr>modify <a href="../kernel/readme.html"><b>1</b></a> <a href="../kernel/introduction.htm"><b>2</b></a> </nobr><br><a href="../kernel/readme.html"><b>modifying</b></a> <br><nobr>module <a href="../kernel/running_salome_pro.htm"><b>1</b></a> <a href="../kernel/readme.html"><b>2</b></a> <a href="../kernel/introduction_to_salome_pro.htm"><b>3</b></a> <a href="../kernel/introduction_to_iapp.htm"><b>4</b></a> <a href="../kernel/editing_studies.htm"><b>5</b></a> <a href="../geom_preferences.htm"><b>6</b></a> <a href="../viewers.htm"><b>7</b></a> <a href="../setting_preferences.htm"><b>8</b></a> <a href="../post-pro_preferences.htm"><b>9</b></a> <a href="../mesh_preferences.htm"><b>10</b></a> <a href="../kernel/using_catalog_generator.htm"><b>11</b></a> <a href="../kernel/saving_a_study.htm"><b>12</b></a> <a href="../kernel/salome_pro_desktop.htm"><b>13</b></a> </nobr><br><a href="../kernel/readme.html"><b>module_root_dir</b></a> <br><a href="../kernel/readme.html"><b>module_src_dir</b></a> <br><a href="../kernel/running_salome_pro.htm"><b>module1</b></a> <br><a href="../kernel/running_salome_pro.htm"><b>module2</b></a> <br><nobr>modules <a href="../kernel/running_salome_pro.htm"><b>1</b></a> <a href="../kernel/readme.html"><b>2</b></a> <a href="../kernel/introduction_to_salome_pro.htm"><b>3</b></a> <a href="../kernel/introduction_to_iapp.htm"><b>4</b></a> <a href="../kernel/about_salome_pro_help_system.htm"><b>5</b></a> <a href="../kernel/about_salome_pro_architecture.htm"><b>6</b></a> <a href="../viewers.htm"><b>7</b></a> <a href="../kernel/using_catalog_generator.htm"><b>8</b></a> <a href="../kernel/setting_preferences.htm"><b>9</b></a> <a href="../kernel/saving_a_study.htm"><b>10</b></a> <a href="../kernel/salome_pro_desktop.htm"><b>11</b></a> </nobr><br><a href="../post-pro_preferences.htm"><b>modulus</b></a> <br><a href="../kernel/readme.html"><b>moment</b></a> <br><nobr>mouse <a href="../kernel/displaying_hiding_toolbars.htm"><b>1</b></a> <a href="../viewers.htm"><b>2</b></a> </nobr><br><a href="../kernel/displaying_studies.htm"><b>move</b></a> <br><a href="../kernel/setting_preferences.htm"><b>mozilla</b></a> <br><a name="bms_MS"></a><a name="subkey_MS"></a><a href="../kernel/readme.html"><b>msg2qm</b></a> <br><a href="../kernel/readme.html"><b>msg2qm_root</b></a> <br><a name="bms_MU"></a><a name="subkey_MU"></a><a href="../kernel/readme.html"><b>much</b></a> <br><nobr>multi <a href="../kernel/introduction_to_iapp.htm"><b>1</b></a> <a href="../kernel/introduction.htm"><b>2</b></a> <a href="../kernel/getting_started2.htm"><b>3</b></a> <a href="../kernel/displaying_studies.htm"><b>4</b></a> <a href="../kernel/using_catalog_generator.htm"><b>5</b></a> <a href="../kernel/salome_pro_desktop.htm"><b>6</b></a> </nobr><br><nobr>multifile <a href="../kernel/setting_preferences.htm"><b>1</b></a> <a href="../kernel/saving_a_study.htm"><b>2</b></a> </nobr><br><a href="../kernel/saving_a_study.htm"><b>multiple</b></a> <br><a href="../kernel/about_salome_pro_architecture.htm"><b>multitier</b></a> <br><nobr>must <a href="../kernel/introduction_to_salome_pro.htm"><b>1</b></a> <a href="../kernel/introduction.htm"><b>2</b></a> <a href="../kernel/about_salome_pro_architecture.htm"><b>3</b></a> </nobr><br>\r
+<nobr><a name="bms_IO"></a><a name="subkey_IO"></a>ior <a href="../kernel/using_object_browser.htm"><b>1</b></a> <a href="../kernel/setting_preferences.htm"><b>2</b></a> </nobr><br><a name="bms_IS"></a><a name="subkey_IS"></a><a href="../kernel/setting_preferences.htm"><b>isolines</b></a> <br><a href="../kernel/readme.html"><b>ispython</b></a> <br><a name="bms_IT"></a><a name="subkey_IT"></a><a href="../kernel/getting_properties_of_the_study.htm"><b>item</b></a> <br><nobr>items <a href="../kernel/introduction.htm"><b>1</b></a> <a href="../introduction_to_gui.htm"><b>2</b></a> </nobr><br><a href="../post-pro_preferences.htm"><b>iterations</b></a> <br><a href="../kernel/readme.html"><b>itself</b></a> <br>\r
+<br><br>\r
+<a name="bm_J"></a><a name="subkey_JA"></a><a href="../kernel/about_salome_pro_help_system.htm"><b>java</b></a> <br><nobr><a name="bms_JU"></a><a name="subkey_JU"></a>just <a href="../kernel/readme.html"><b>1</b></a> <a href="../kernel/setting_preferences.htm"><b>2</b></a> </nobr><br>\r
+<br><br>\r
+<a name="bm_K"></a><a name="subkey_K{"></a><a href="../kernel/running_salome_pro.htm"><b>k</b></a> <br><a name="bms_KB"></a><a name="subkey_KB"></a><a href="../kernel/readme.html"><b>kbytes</b></a> <br><nobr><a name="bms_KE"></a><a name="subkey_KE"></a>kernel <a href="../kernel/running_salome_pro.htm"><b>1</b></a> <a href="../kernel/readme.html"><b>2</b></a> <a href="../kernel/introduction_to_salome_pro.htm"><b>3</b></a> </nobr><br><nobr>key <a href="../kernel/readme.html"><b>1</b></a> <a href="../post-pro_preferences.htm"><b>2</b></a> </nobr><br><a href="../post-pro_preferences.htm"><b>keyboard</b></a> <br><a name="bms_KI"></a><a name="subkey_KI"></a><a href="../kernel/running_salome_pro.htm"><b>kill</b></a> <br><a href="../kernel/running_salome_pro.htm"><b>killall</b></a> <br><nobr>kind <a href="../kernel/navigating_topics.htm"><b>1</b></a> <a href="../kernel/getting_properties_of_the_study.htm"><b>2</b></a> </nobr><br><a name="bms_KN"></a><a name="subkey_KN"></a><a href="../kernel/using_catalog_generator.htm"><b>know</b></a> <br><a href="../dump_study.htm"><b>knowledge</b></a> <br>\r
 <br><br>\r
-<a name="bm_N"></a><a name="subkey_N{"></a><a href="../kernel/readme.html"><b>n</b></a> <br><nobr><a name="bms_NA"></a><a name="subkey_NA"></a>name <a href="../kernel/readme.html"><b>1</b></a> <a href="../kernel/getting_properties_of_the_study.htm"><b>2</b></a> <a href="../kernel/creating_a_new_study.htm"><b>3</b></a> <a href="../kernel/using_registry.htm"><b>4</b></a> <a href="../kernel/using_object_browser.htm"><b>5</b></a> <a href="../kernel/using_catalog_generator.htm"><b>6</b></a> <a href="../kernel/saving_a_study.htm"><b>7</b></a> </nobr><br><nobr>named <a href="../kernel/readme.html"><b>1</b></a> <a href="../kernel/about_salome_pro_architecture.htm"><b>2</b></a> </nobr><br><a href="../kernel/readme.html"><b>names</b></a> <br><a href="../kernel/readme.html"><b>native</b></a> <br><a href="../kernel/about_salome_pro_architecture.htm"><b>natural</b></a> <br><a href="../kernel/editing_studies.htm"><b>nature</b></a> <br><nobr>navigate <a href="../kernel/readme.html"><b>1</b></a> <a href="../kernel/navigating_topics.htm"><b>2</b></a> </nobr><br><a href="../kernel/navigating_topics.htm"><b>navigating</b></a> <br><nobr>navigation <a href="../kernel/navigating_topics.htm"><b>1</b></a> <a href="../kernel/about_salome_pro_help_system.htm"><b>2</b></a> </nobr><br><a href="../kernel/about_salome_pro_help_system.htm"><b>navigator</b></a> <br><nobr><a name="bms_NE"></a><a name="subkey_NE"></a>necessary <a href="../kernel/running_salome_pro.htm"><b>1</b></a> <a href="../kernel/readme.html"><b>2</b></a> <a href="../mesh_preferences.htm"><b>3</b></a> <a href="../kernel/using_object_browser.htm"><b>4</b></a> <a href="../kernel/saving_a_study.htm"><b>5</b></a> <a href="../kernel/salome_pro_desktop.htm"><b>6</b></a> </nobr><br><nobr>need <a href="../kernel/readme.html"><b>1</b></a> <a href="../kernel/navigating_topics.htm"><b>2</b></a> <a href="../kernel/displaying_studies.htm"><b>3</b></a> <a href="../kernel/setting_preferences.htm"><b>4</b></a> </nobr><br><a href="../kernel/readme.html"><b>netgen</b></a> <br><a href="../kernel/readme.html"><b>netgenroot</b></a> <br><nobr>netscape <a href="../kernel/about_salome_pro_help_system.htm"><b>1</b></a> <a href="../kernel/setting_preferences.htm"><b>2</b></a> </nobr><br><nobr>new <a href="../kernel/readme.html"><b>1</b></a> <a href="../kernel/introduction.htm"><b>2</b></a> <a href="../kernel/getting_started2.htm"><b>3</b></a> <a href="../kernel/getting_properties_of_the_study.htm"><b>4</b></a> <a href="../kernel/creating_a_new_study.htm"><b>5</b></a> <a href="../kernel/about_salome_pro_architecture.htm"><b>6</b></a> <a href="../viewers.htm"><b>7</b></a> <a href="../setting_preferences.htm"><b>8</b></a> <a href="../kernel/using_catalog_generator.htm"><b>9</b></a> <a href="../kernel/saving_a_study.htm"><b>10</b></a> </nobr><br><a href="../kernel/readme.html"><b>newer</b></a> <br><nobr>next <a href="../kernel/running_salome_pro.htm"><b>1</b></a> <a href="../kernel/readme.html"><b>2</b></a> <a href="../kernel/getting_properties_of_the_study.htm"><b>3</b></a> <a href="../setting_preferences.htm"><b>4</b></a> <a href="../kernel/using_catalog_generator.htm"><b>5</b></a> <a href="../kernel/setting_preferences.htm"><b>6</b></a> </nobr><br><a name="bms_NF"></a><a name="subkey_NF"></a><a href="../kernel/readme.html"><b>nf</b></a> <br><nobr><a name="bms_NO"></a><a name="subkey_NO"></a>nodes <a href="../mesh_preferences.htm"><b>1</b></a> <a href="../kernel/using_catalog_generator.htm"><b>2</b></a> </nobr><br><a href="../kernel/displaying_studies.htm"><b>normal</b></a> <br><nobr>note <a href="../kernel/readme.html"><b>1</b></a> <a href="../kernel/setting_preferences.htm"><b>2</b></a> </nobr><br><a href="../kernel/readme.html"><b>notes</b></a> <br><a href="../kernel/about_salome_pro_architecture.htm"><b>noticeably</b></a> <br><a href="../kernel/readme.html"><b>notifd</b></a> <br><a href="../setting_preferences.htm"><b>notification</b></a> <br><a href="../kernel/getting_started2.htm"><b>notion</b></a> <br><a href="../kernel/salome_pro_desktop.htm"><b>now</b></a> <br><a name="bms_NU"></a><a name="subkey_NU"></a><a href="../kernel/readme.html"><b>null</b></a> <br><nobr>number <a href="../kernel/readme.html"><b>1</b></a> <a href="../post-pro_preferences.htm"><b>2</b></a> <a href="../mesh_preferences.htm"><b>3</b></a> <a href="../kernel/using_registry.htm"><b>4</b></a> <a href="../kernel/setting_preferences.htm"><b>5</b></a> </nobr><br><nobr>numbers <a href="../kernel/readme.html"><b>1</b></a> <a href="../mesh_preferences.htm"><b>2</b></a> </nobr><br><nobr>numeric <a href="../kernel/readme.html"><b>1</b></a> <a href="../kernel/introduction_to_salome_pro.htm"><b>2</b></a> <a href="../kernel/introduction.htm"><b>3</b></a> <a href="../kernel/setting_preferences.htm"><b>4</b></a> </nobr><br><nobr>numerical <a href="../kernel/introduction.htm"><b>1</b></a> <a href="../kernel/getting_started2.htm"><b>2</b></a> <a href="../kernel/about_salome_pro_architecture.htm"><b>3</b></a> <a href="../viewers.htm"><b>4</b></a> </nobr><br><a href="../kernel/running_salome_pro.htm"><b>numerous</b></a> <br>\r
+<a name="bm_L"></a><a name="subkey_L{"></a><a href="../kernel/running_salome_pro.htm"><b>l</b></a> <br><nobr><a name="bms_LA"></a><a name="subkey_LA"></a>labels <a href="../post-pro_preferences.htm"><b>1</b></a> <a href="../mesh_preferences.htm"><b>2</b></a> </nobr><br><a href="../kernel/about_salome_pro_architecture.htm"><b>language</b></a> <br><a href="../kernel/readme.html"><b>larger</b></a> <br><a href="../post-pro_preferences.htm"><b>largest</b></a> <br><nobr>last <a href="../kernel/using_registry.htm"><b>1</b></a> <a href="../kernel/setting_preferences.htm"><b>2</b></a> </nobr><br><a href="../post-pro_preferences.htm"><b>latest</b></a> <br><a href="../select_color_and_font.htm"><b>latin</b></a> <br><nobr>launch <a href="../kernel/running_salome_pro.htm"><b>1</b></a> <a href="../kernel/readme.html"><b>2</b></a> <a href="../kernel/opening_studies.htm"><b>3</b></a> <a href="../setting_preferences.htm"><b>4</b></a> <a href="../kernel/using_catalog_generator.htm"><b>5</b></a> </nobr><br><nobr>launched <a href="../kernel/running_salome_pro.htm"><b>1</b></a> <a href="../kernel/readme.html"><b>2</b></a> <a href="../kernel/about_salome_pro_help_system.htm"><b>3</b></a> <a href="../dump_study.htm"><b>4</b></a> <a href="../kernel/using_registry.htm"><b>5</b></a> </nobr><br><a href="../kernel/readme.html"><b>launches</b></a> <br><nobr>launching <a href="../kernel/running_salome_pro.htm"><b>1</b></a> <a href="../kernel/readme.html"><b>2</b></a> <a href="../kernel/using_registry.htm"><b>3</b></a> <a href="../kernel/using_catalog_generator.htm"><b>4</b></a> </nobr><br><a href="../kernel/creating_a_new_study.htm"><b>layer</b></a> <br><nobr>layout <a href="../dump_study.htm"><b>1</b></a> <a href="../kernel/saving_a_study.htm"><b>2</b></a> </nobr><br><a name="bms_LD"></a><a name="subkey_LD"></a><a href="../kernel/readme.html"><b>ld_library_path</b></a> <br><a name="bms_LE"></a><a name="subkey_LE"></a><a href="../kernel/saving_a_study.htm"><b>lead</b></a> <br><a href="../kernel/readme.html"><b>learn</b></a> <br><a href="../kernel/introduction.htm"><b>learning</b></a> <br><nobr>left <a href="../kernel/readme.html"><b>1</b></a> <a href="../select_color_and_font.htm"><b>2</b></a> <a href="../post-pro_preferences.htm"><b>3</b></a> <a href="../mesh_preferences.htm"><b>4</b></a> <a href="../kernel/using_left-hand_tabs.htm"><b>5</b></a> <a href="../kernel/setting_preferences.htm"><b>6</b></a> </nobr><br><a href="../kernel/setting_preferences.htm"><b>legend</b></a> <br><a href="../post-pro_preferences.htm"><b>length</b></a> <br><a href="../post-pro_preferences.htm"><b>less</b></a> <br><nobr>level <a href="../kernel/about_salome_pro_architecture.htm"><b>1</b></a> <a href="../post-pro_preferences.htm"><b>2</b></a> <a href="../mesh_preferences.htm"><b>3</b></a> <a href="../kernel/setting_preferences.htm"><b>4</b></a> </nobr><br><a name="bms_LI"></a><a name="subkey_LI"></a><a href="../kernel/readme.html"><b>lib</b></a> <br><a href="../kernel/readme.html"><b>libcosnotify4</b></a> <br><a href="../kernel/readme.html"><b>libhdf5</b></a> <br><a href="../kernel/readme.html"><b>libmed</b></a> <br><a href="../kernel/readme.html"><b>libomniorb4</b></a> <br><a href="../kernel/readme.html"><b>libqwt</b></a> <br><a href="../kernel/readme.html"><b>libraries</b></a> <br><nobr>library <a href="../kernel/readme.html"><b>1</b></a> <a href="../introduction_to_gui.htm"><b>2</b></a> </nobr><br><a href="../kernel/readme.html"><b>libstdplugin</b></a> <br><a href="../kernel/readme.html"><b>libtcl8</b></a> <br><a href="../kernel/readme.html"><b>libtk8</b></a> <br><a href="../kernel/readme.html"><b>libvtkcommon</b></a> <br><a href="../kernel/readme.html"><b>license</b></a> <br><nobr>like <a href="../kernel/readme.html"><b>1</b></a> <a href="../kernel/navigating_topics.htm"><b>2</b></a> <a href="../kernel/displaying_studies.htm"><b>3</b></a> <a href="../kernel/about_salome_pro_architecture.htm"><b>4</b></a> <a href="../post-pro_preferences.htm"><b>5</b></a> <a href="../kernel/using_object_browser.htm"><b>6</b></a> <a href="../kernel/using_catalog_generator.htm"><b>7</b></a> <a href="../kernel/saving_a_study.htm"><b>8</b></a> <a href="../kernel/salome_pro_desktop.htm"><b>9</b></a> </nobr><br><a href="../kernel/readme.html"><b>likely</b></a> <br><a href="../post-pro_preferences.htm"><b>limitation</b></a> <br><a href="../post-pro_preferences.htm"><b>limits</b></a> <br><nobr>line <a href="../kernel/running_salome_pro.htm"><b>1</b></a> <a href="../kernel/readme.html"><b>2</b></a> <a href="../kernel/about_salome_pro_help_system.htm"><b>3</b></a> <a href="../geom_preferences.htm"><b>4</b></a> <a href="../post-pro_preferences.htm"><b>5</b></a> <a href="../mesh_preferences.htm"><b>6</b></a> <a href="../kernel/setting_preferences.htm"><b>7</b></a> </nobr><br><a href="../kernel/setting_preferences.htm"><b>linear</b></a> <br><nobr>lines <a href="../mesh_preferences.htm"><b>1</b></a> <a href="../kernel/setting_preferences.htm"><b>2</b></a> </nobr><br><nobr>link <a href="../kernel/navigating_topics.htm"><b>1</b></a> <a href="../kernel/introduction.htm"><b>2</b></a> </nobr><br><nobr>links <a href="../kernel/navigating_topics.htm"><b>1</b></a> <a href="../kernel/about_salome_pro_architecture.htm"><b>2</b></a> </nobr><br><nobr>linux <a href="../kernel/readme.html"><b>1</b></a> <a href="../kernel/about_salome_pro_help_system.htm"><b>2</b></a> </nobr><br><nobr>list <a href="../kernel/running_salome_pro.htm"><b>1</b></a> <a href="../kernel/readme.html"><b>2</b></a> <a href="../kernel/navigating_topics.htm"><b>3</b></a> <a href="../kernel/getting_properties_of_the_study.htm"><b>4</b></a> <a href="../kernel/using_registry.htm"><b>5</b></a> <a href="../kernel/using_left-hand_tabs.htm"><b>6</b></a> <a href="../kernel/setting_preferences.htm"><b>7</b></a> </nobr><br><a href="../kernel/readme.html"><b>list_of_prerequisites</b></a> <br><a href="../post-pro_preferences.htm"><b>listed</b></a> <br><a name="bms_LL"></a><a name="subkey_LL"></a><a href="../kernel/setting_preferences.htm"><b>ll</b></a> <br><nobr><a name="bms_LO"></a><a name="subkey_LO"></a>load <a href="../kernel/opening_studies.htm"><b>1</b></a> <a href="../dump_study.htm"><b>2</b></a> <a href="../setting_preferences.htm"><b>3</b></a> </nobr><br><nobr>loaded <a href="../kernel/running_salome_pro.htm"><b>1</b></a> <a href="../introduction_to_gui.htm"><b>2</b></a> <a href="../post-pro_preferences.htm"><b>3</b></a> <a href="../kernel/using_object_browser.htm"><b>4</b></a> <a href="../kernel/setting_preferences.htm"><b>5</b></a> <a href="../kernel/salome_pro_desktop.htm"><b>6</b></a> </nobr><br><nobr>loading <a href="../kernel/about_salome_pro_architecture.htm"><b>1</b></a> <a href="../introduction_to_gui.htm"><b>2</b></a> <a href="../post-pro_preferences.htm"><b>3</b></a> <a href="../kernel/salome_pro_desktop.htm"><b>4</b></a> </nobr><br><a href="../post-pro_preferences.htm"><b>local</b></a> <br><a href="../kernel/using_left-hand_tabs.htm"><b>locate</b></a> <br><nobr>located <a href="../kernel/running_salome_pro.htm"><b>1</b></a> <a href="../kernel/about_salome_pro_architecture.htm"><b>2</b></a> <a href="../post-pro_preferences.htm"><b>3</b></a> <a href="../kernel/using_object_browser.htm"><b>4</b></a> <a href="../kernel/setting_preferences.htm"><b>5</b></a> <a href="../kernel/salome_pro_desktop.htm"><b>6</b></a> </nobr><br><nobr>location <a href="../dump_study.htm"><b>1</b></a> <a href="../kernel/using_catalog_generator.htm"><b>2</b></a> </nobr><br><a href="../kernel/getting_properties_of_the_study.htm"><b>lock</b></a> <br><nobr>locked <a href="../kernel/getting_properties_of_the_study.htm"><b>1</b></a> <a href="../post-pro_preferences.htm"><b>2</b></a> </nobr><br><a href="../post-pro_preferences.htm"><b>locking</b></a> <br><a href="../kernel/running_salome_pro.htm"><b>log</b></a> <br><nobr>logarithmic <a href="../post-pro_preferences.htm"><b>1</b></a> <a href="../kernel/setting_preferences.htm"><b>2</b></a> </nobr><br><a href="../kernel/running_salome_pro.htm"><b>logger</b></a> <br><a href="../kernel/about_salome_pro_architecture.htm"><b>long</b></a> <br><a href="../kernel/using_catalog_generator.htm"><b>look</b></a> <br><nobr>lookout <a href="../post-pro_preferences.htm"><b>1</b></a> <a href="../mesh_preferences.htm"><b>2</b></a> </nobr><br><nobr>looks <a href="../kernel/readme.html"><b>1</b></a> <a href="../kernel/using_left-hand_tabs.htm"><b>2</b></a> </nobr><br><a href="../kernel/saving_a_study.htm"><b>lost</b></a> <br><a href="../kernel/salome_pro_desktop.htm"><b>lot</b></a> <br><nobr>lower <a href="../kernel/readme.html"><b>1</b></a> <a href="../select_color_and_font.htm"><b>2</b></a> <a href="../post-pro_preferences.htm"><b>3</b></a> <a href="../kernel/using_left-hand_tabs.htm"><b>4</b></a> </nobr><br>\r
 <br><br>\r
-<nobr><a name="bm_O"></a><a name="subkey_OB"></a>object <a href="../kernel/opening_studies.htm"><b>1</b></a> <a href="../kernel/introduction_to_iapp.htm"><b>2</b></a> <a href="../kernel/editing_studies.htm"><b>3</b></a> <a href="../kernel/creating_a_new_study.htm"><b>4</b></a> <a href="../viewers.htm"><b>5</b></a> <a href="../mesh_preferences.htm"><b>6</b></a> <a href="../kernel/using_object_browser.htm"><b>7</b></a> <a href="../kernel/setting_preferences.htm"><b>8</b></a> <a href="../kernel/salome_pro_desktop.htm"><b>9</b></a> </nobr><br><a href="../kernel/about_salome_pro_architecture.htm"><b>objectives</b></a> <br><nobr>objects <a href="../kernel/opening_studies.htm"><b>1</b></a> <a href="../kernel/introduction_to_iapp.htm"><b>2</b></a> <a href="../kernel/about_salome_pro_architecture.htm"><b>3</b></a> <a href="../viewers.htm"><b>4</b></a> <a href="../setting_preferences.htm"><b>5</b></a> <a href="../mesh_preferences.htm"><b>6</b></a> <a href="../kernel/using_object_browser.htm"><b>7</b></a> <a href="../kernel/salome_pro_desktop.htm"><b>8</b></a> </nobr><br><a href="../kernel/readme.html"><b>obligatory</b></a> <br><a href="../viewers.htm"><b>obtained</b></a> <br><nobr><a name="bms_OC"></a><a name="subkey_OC"></a>occ <a href="../kernel/introduction_to_iapp.htm"><b>1</b></a> <a href="../kernel/displaying_studies.htm"><b>2</b></a> <a href="../kernel/creating_a_new_study.htm"><b>3</b></a> <a href="../viewers.htm"><b>4</b></a> <a href="../kernel/setting_preferences.htm"><b>5</b></a> </nobr><br><a href="../kernel/readme.html"><b>occ_version_major</b></a> <br><a href="../kernel/readme.html"><b>occ_version_minor</b></a> <br><a href="../kernel/readme.html"><b>occupies</b></a> <br><a name="bms_OF"></a><a name="subkey_OF"></a><a href="../kernel/readme.html"><b>off</b></a> <br><a href="../kernel/about_salome_pro_architecture.htm"><b>offered</b></a> <br><a href="../kernel/introduction.htm"><b>often</b></a> <br><nobr><a name="bms_OK"></a><a name="subkey_OK"></a>ok <a href="../kernel/readme.html"><b>1</b></a> <a href="../kernel/opening_studies.htm"><b>2</b></a> <a href="../setting_preferences.htm"><b>3</b></a> </nobr><br><a name="bms_OM"></a><a name="subkey_OM"></a><a href="../kernel/about_salome_pro_architecture.htm"><b>omg</b></a> <br><a href="../kernel/readme.html"><b>omit</b></a> <br><a href="../kernel/readme.html"><b>omni</b></a> <br><a href="../kernel/readme.html"><b>omninotify</b></a> <br><a href="../kernel/readme.html"><b>omniorb</b></a> <br><a href="../kernel/readme.html"><b>omniorbdir</b></a> <br><a href="../kernel/readme.html"><b>omniorbpy</b></a> <br><br><br></p><p class="ftsbody" align="center"><a href="whlstf6.htm" target="_self" title="previous search group"><b>&gt;&gt;</b></a>\r
+<a name="bm_M"></a><a name="subkey_M{"></a><a href="../kernel/running_salome_pro.htm"><b>m</b></a> <br><nobr><a name="bms_MA"></a><a name="subkey_MA"></a>machine <a href="../kernel/using_registry.htm"><b>1</b></a> <a href="../kernel/saving_a_study.htm"><b>2</b></a> </nobr><br><a href="../kernel/about_salome_pro_architecture.htm"><b>machines</b></a> <br><a href="../kernel/about_salome_pro_help_system.htm"><b>macintosh</b></a> <br><a href="../kernel/about_salome_pro_architecture.htm"><b>macro</b></a> <br><a href="../post-pro_preferences.htm"><b>magnification</b></a> <br><nobr>main <a href="../kernel/readme.html"><b>1</b></a> <a href="../kernel/opening_studies.htm"><b>2</b></a> <a href="../kernel/introduction.htm"><b>3</b></a> <a href="../kernel/getting_properties_of_the_study.htm"><b>4</b></a> <a href="../kernel/editing_studies.htm"><b>5</b></a> <a href="../kernel/creating_a_new_study.htm"><b>6</b></a> <a href="../dump_study.htm"><b>7</b></a> <a href="../post-pro_preferences.htm"><b>8</b></a> <a href="../kernel/using_registry.htm"><b>9</b></a> <a href="../kernel/using_catalog_generator.htm"><b>10</b></a> <a href="../kernel/setting_preferences.htm"><b>11</b></a> <a href="../kernel/saving_a_study.htm"><b>12</b></a> <a href="../kernel/salome_pro_desktop.htm"><b>13</b></a> </nobr><br><a href="../kernel/readme.html"><b>major</b></a> <br><nobr>make <a href="../kernel/readme.html"><b>1</b></a> <a href="../kernel/creating_a_new_study.htm"><b>2</b></a> <a href="../mesh_preferences.htm"><b>3</b></a> </nobr><br><a href="../kernel/readme.html"><b>make_dir</b></a> <br><a href="../kernel/readme.html"><b>make_env</b></a> <br><a href="../kernel/introduction.htm"><b>makes</b></a> <br><nobr>manage <a href="../kernel/introduction.htm"><b>1</b></a> <a href="../kernel/setting_preferences.htm"><b>2</b></a> </nobr><br><nobr>management <a href="../kernel/introduction.htm"><b>1</b></a> <a href="../introduction_to_gui.htm"><b>2</b></a> <a href="../kernel/salome_pro_desktop.htm"><b>3</b></a> </nobr><br><a href="../kernel/readme.html"><b>mandrake</b></a> <br><a href="../kernel/readme.html"><b>mandrake10</b></a> <br><a href="../post-pro_preferences.htm"><b>manipulate</b></a> <br><a href="../post-pro_preferences.htm"><b>manipulator</b></a> <br><nobr>manual <a href="../kernel/about_salome_pro_help_system.htm"><b>1</b></a> <a href="../dump_study.htm"><b>2</b></a> </nobr><br><a href="../kernel/readme.html"><b>manually</b></a> <br><a href="../kernel/setting_preferences.htm"><b>manuals</b></a> <br><a href="../kernel/about_salome_pro_architecture.htm"><b>mapped</b></a> <br><a href="../kernel/readme.html"><b>mark</b></a> <br><a href="../kernel/readme.html"><b>marked</b></a> <br><a href="../kernel/setting_preferences.htm"><b>marker</b></a> <br><a href="../kernel/setting_preferences.htm"><b>markers</b></a> <br><a href="../kernel/introduction.htm"><b>market</b></a> <br><a href="../kernel/about_salome_pro_architecture.htm"><b>massively</b></a> <br><a href="../kernel/readme.html"><b>master</b></a> <br><a href="../kernel/using_left-hand_tabs.htm"><b>matches</b></a> <br><a href="../post-pro_preferences.htm"><b>matrix</b></a> <br><a href="../post-pro_preferences.htm"><b>max</b></a> <br><a href="../kernel/creating_a_new_study.htm"><b>maximize</b></a> <br><a href="../post-pro_preferences.htm"><b>maximum</b></a> <br><a name="bms_ME"></a><a name="subkey_ME"></a><a href="../post-pro_preferences.htm"><b>mean</b></a> <br><nobr>means <a href="../kernel/readme.html"><b>1</b></a> <a href="../kernel/getting_started2.htm"><b>2</b></a> <a href="../kernel/displaying_studies.htm"><b>3</b></a> <a href="../post-pro_preferences.htm"><b>4</b></a> <a href="../kernel/saving_a_study.htm"><b>5</b></a> <a href="../kernel/salome_pro_desktop.htm"><b>6</b></a> </nobr><br><a href="../dump_study.htm"><b>mechanism</b></a> <br><a href="../introduction_to_gui.htm"><b>mechanisms</b></a> <br><a href="../kernel/readme.html"><b>med2home</b></a> <br><a href="../kernel/introduction.htm"><b>meet</b></a> <br><a href="../post-pro_preferences.htm"><b>memory</b></a> <br><a href="../kernel/readme.html"><b>mentioned</b></a> <br><nobr>menu <a href="../kernel/opening_studies.htm"><b>1</b></a> <a href="../kernel/navigating_topics.htm"><b>2</b></a> <a href="../kernel/getting_properties_of_the_study.htm"><b>3</b></a> <a href="../kernel/editing_studies.htm"><b>4</b></a> <a href="../kernel/creating_a_new_study.htm"><b>5</b></a> <a href="../kernel/about_salome_pro_architecture.htm"><b>6</b></a> <a href="../introduction_to_gui.htm"><b>7</b></a> <a href="../dump_study.htm"><b>8</b></a> <a href="../setting_preferences.htm"><b>9</b></a> <a href="../select_color_and_font.htm"><b>10</b></a> <a href="../post-pro_preferences.htm"><b>11</b></a> <a href="../mesh_preferences.htm"><b>12</b></a> <a href="../kernel/using_registry.htm"><b>13</b></a> <a href="../kernel/using_object_browser.htm"><b>14</b></a> <a href="../kernel/using_catalog_generator.htm"><b>15</b></a> <a href="../kernel/setting_preferences.htm"><b>16</b></a> <a href="../kernel/saving_a_study.htm"><b>17</b></a> <a href="../kernel/salome_pro_desktop.htm"><b>18</b></a> </nobr><br><a href="../kernel/salome_pro_desktop.htm"><b>menubar</b></a> <br><nobr>menus <a href="../introduction_to_gui.htm"><b>1</b></a> <a href="../select_color_and_font.htm"><b>2</b></a> <a href="../kernel/salome_pro_desktop.htm"><b>3</b></a> </nobr><br><nobr>mesh <a href="../kernel/introduction_to_salome_pro.htm"><b>1</b></a> <a href="../kernel/introduction.htm"><b>2</b></a> <a href="../kernel/about_salome_pro_architecture.htm"><b>3</b></a> <a href="../post-pro_preferences.htm"><b>4</b></a> <a href="../mesh_preferences.htm"><b>5</b></a> <a href="../kernel/salome_pro_desktop.htm"><b>6</b></a> </nobr><br><nobr>meshes <a href="../kernel/introduction_to_salome_pro.htm"><b>1</b></a> <a href="../mesh_preferences.htm"><b>2</b></a> </nobr><br><nobr>meshing <a href="../kernel/introduction_to_salome_pro.htm"><b>1</b></a> <a href="../kernel/introduction.htm"><b>2</b></a> </nobr><br><nobr>message <a href="../kernel/readme.html"><b>1</b></a> <a href="../kernel/getting_properties_of_the_study.htm"><b>2</b></a> </nobr><br><nobr>messages <a href="../kernel/running_salome_pro.htm"><b>1</b></a> <a href="../introduction_to_gui.htm"><b>2</b></a> </nobr><br><a name="bms_MI"></a><a name="subkey_MI"></a><a href="../kernel/readme.html"><b>middle</b></a> <br><a href="../post-pro_preferences.htm"><b>min</b></a> <br><a href="../kernel/creating_a_new_study.htm"><b>minimized</b></a> <br><a href="../post-pro_preferences.htm"><b>minimum</b></a> <br><a href="../kernel/readme.html"><b>minor</b></a> <br><a href="../kernel/readme.html"><b>missed</b></a> <br><a href="../kernel/salome_pro_desktop.htm"><b>mistakes</b></a> <br><a href="../kernel/salome_pro_desktop.htm"><b>mix</b></a> <br><br><br></p><p class="ftsbody" align="center"><a href="whlstf6.htm" target="_self" title="previous search group"><b>&gt;&gt;</b></a>\r
 \r
 </body>\r
 \r
index d5e75b264233632529454a19d83abf6e1d39b857..82729334b892b1aa89503546e962eafcfe17d967 100755 (executable)
@@ -33,9 +33,11 @@ A:hover {color:Navy; } A:hover {font-family:Tahoma; } A:hover {font-size:8pt; }
 <body marginheight="0"  marginwidth="0" bgproperties="fixed">\r
 <p class="ftsbody" align="center"><a href="whlstf5.htm" target="_self" title="previous search group"><b>&lt;&lt;</b></a><br><br></p>\r
 <p class="ftsbody" >\r
-<nobr><a name="bms_ON"></a><a name="subkey_ON"></a>one <a href="../kernel/running_salome_pro.htm"><b>1</b></a> <a href="../kernel/readme.html"><b>2</b></a> <a href="../kernel/opening_studies.htm"><b>3</b></a> <a href="../kernel/navigating_topics.htm"><b>4</b></a> <a href="../kernel/introduction_to_iapp.htm"><b>5</b></a> <a href="../kernel/editing_studies.htm"><b>6</b></a> <a href="../kernel/displaying_studies.htm"><b>7</b></a> <a href="../kernel/about_salome_pro_architecture.htm"><b>8</b></a> <a href="../viewers.htm"><b>9</b></a> <a href="../post-pro_preferences.htm"><b>10</b></a> <a href="../kernel/using_object_browser.htm"><b>11</b></a> <a href="../kernel/using_catalog_generator.htm"><b>12</b></a> <a href="../kernel/setting_preferences.htm"><b>13</b></a> <a href="../kernel/saving_a_study.htm"><b>14</b></a> <a href="../kernel/salome_pro_desktop.htm"><b>15</b></a> </nobr><br><nobr>ones <a href="../kernel/running_salome_pro.htm"><b>1</b></a> <a href="../kernel/readme.html"><b>2</b></a> </nobr><br><a href="../kernel/using_left-hand_tabs.htm"><b>online</b></a> <br><nobr><a name="bms_OP"></a><a name="subkey_OP"></a>open <a href="../kernel/running_salome_pro.htm"><b>1</b></a> <a href="../kernel/readme.html"><b>2</b></a> <a href="../kernel/opening_studies.htm"><b>3</b></a> <a href="../kernel/navigating_topics.htm"><b>4</b></a> <a href="../kernel/introduction_to_salome_pro.htm"><b>5</b></a> <a href="../kernel/introduction.htm"><b>6</b></a> <a href="../kernel/getting_started2.htm"><b>7</b></a> <a href="../kernel/displaying_studies.htm"><b>8</b></a> <a href="../viewers.htm"><b>9</b></a> <a href="../kernel/using_left-hand_tabs.htm"><b>10</b></a> <a href="../kernel/using_catalog_generator.htm"><b>11</b></a> <a href="../kernel/saving_a_study.htm"><b>12</b></a> </nobr><br><a href="../kernel/readme.html"><b>opencascade</b></a> <br><nobr>opening <a href="../kernel/opening_studies.htm"><b>1</b></a> <a href="../kernel/saving_a_study.htm"><b>2</b></a> </nobr><br><nobr>opens <a href="../kernel/navigating_topics.htm"><b>1</b></a> <a href="../viewers.htm"><b>2</b></a> <a href="../kernel/using_left-hand_tabs.htm"><b>3</b></a> </nobr><br><a href="../viewers.htm"><b>operate</b></a> <br><nobr>operation <a href="../kernel/editing_studies.htm"><b>1</b></a> <a href="../kernel/saving_a_study.htm"><b>2</b></a> </nobr><br><nobr>operations <a href="../kernel/getting_started2.htm"><b>1</b></a> <a href="../kernel/editing_studies.htm"><b>2</b></a> <a href="../viewers.htm"><b>3</b></a> </nobr><br><a href="../kernel/introduction_to_salome_pro.htm"><b>optimization</b></a> <br><a href="../kernel/introduction.htm"><b>optimize</b></a> <br><a href="../kernel/readme.html"><b>optimized</b></a> <br><nobr>option <a href="../kernel/readme.html"><b>1</b></a> <a href="../kernel/opening_studies.htm"><b>2</b></a> <a href="../kernel/getting_properties_of_the_study.htm"><b>3</b></a> <a href="../kernel/editing_studies.htm"><b>4</b></a> <a href="../post-pro_preferences.htm"><b>5</b></a> <a href="../kernel/setting_preferences.htm"><b>6</b></a> <a href="../kernel/saving_a_study.htm"><b>7</b></a> </nobr><br><a href="../kernel/readme.html"><b>optional</b></a> <br><nobr>optionally <a href="../kernel/introduction_to_salome_pro.htm"><b>1</b></a> <a href="../kernel/introduction.htm"><b>2</b></a> </nobr><br><nobr>options <a href="../kernel/running_salome_pro.htm"><b>1</b></a> <a href="../kernel/readme.html"><b>2</b></a> <a href="../kernel/using_object_browser.htm"><b>3</b></a> <a href="../kernel/saving_a_study.htm"><b>4</b></a> <a href="../kernel/salome_pro_desktop.htm"><b>5</b></a> </nobr><br><a name="bms_OR"></a><a name="subkey_OR"></a><a href="../kernel/readme.html"><b>order</b></a> <br><a href="../kernel/about_salome_pro_architecture.htm"><b>org</b></a> <br><nobr>orientation <a href="../post-pro_preferences.htm"><b>1</b></a> <a href="../mesh_preferences.htm"><b>2</b></a> </nobr><br><nobr>origin <a href="../post-pro_preferences.htm"><b>1</b></a> <a href="../mesh_preferences.htm"><b>2</b></a> </nobr><br><a href="../kernel/introduction_to_salome_pro.htm"><b>originality</b></a> <br><a name="bms_OS"></a><a name="subkey_OS"></a><a href="../kernel/readme.html"><b>os</b></a> <br><a href="../kernel/readme.html"><b>os_version</b></a> <br><nobr><a name="bms_OT"></a><a name="subkey_OT"></a>others <a href="../kernel/about_salome_pro_help_system.htm"><b>1</b></a> <a href="../setting_preferences.htm"><b>2</b></a> </nobr><br><nobr>otherwise <a href="../kernel/readme.html"><b>1</b></a> <a href="../kernel/saving_a_study.htm"><b>2</b></a> </nobr><br><a name="bms_OU"></a><a name="subkey_OU"></a><a href="../kernel/introduction.htm"><b>out</b></a> <br><a href="../mesh_preferences.htm"><b>outline</b></a> <br><nobr>output <a href="../kernel/readme.html"><b>1</b></a> <a href="../kernel/introduction_to_iapp.htm"><b>2</b></a> </nobr><br><a href="../kernel/salome_pro_desktop.htm"><b>outside</b></a> <br><a name="bms_OV"></a><a name="subkey_OV"></a><a href="../kernel/readme.html"><b>overloads</b></a> <br><nobr><a name="bms_OW"></a><a name="subkey_OW"></a>own <a href="../kernel/readme.html"><b>1</b></a> <a href="../kernel/introduction_to_salome_pro.htm"><b>2</b></a> <a href="../kernel/introduction_to_iapp.htm"><b>3</b></a> <a href="../kernel/salome_pro_desktop.htm"><b>4</b></a> </nobr><br>\r
+<nobr><a name="bms_MO"></a><a name="subkey_MO"></a>mode <a href="../kernel/running_salome_pro.htm"><b>1</b></a> <a href="../kernel/readme.html"><b>2</b></a> <a href="../kernel/about_salome_pro_architecture.htm"><b>3</b></a> <a href="../geom_preferences.htm"><b>4</b></a> <a href="../dump_study.htm"><b>5</b></a> <a href="../post-pro_preferences.htm"><b>6</b></a> <a href="../mesh_preferences.htm"><b>7</b></a> </nobr><br><nobr>model <a href="../kernel/about_salome_pro_architecture.htm"><b>1</b></a> <a href="../mesh_preferences.htm"><b>2</b></a> </nobr><br><nobr>modeling <a href="../kernel/introduction.htm"><b>1</b></a> <a href="../kernel/about_salome_pro_architecture.htm"><b>2</b></a> </nobr><br><nobr>models <a href="../kernel/introduction_to_salome_pro.htm"><b>1</b></a> <a href="../kernel/introduction.htm"><b>2</b></a> </nobr><br><a href="../kernel/introduction.htm"><b>modern</b></a> <br><nobr>modes <a href="../kernel/readme.html"><b>1</b></a> <a href="../post-pro_preferences.htm"><b>2</b></a> </nobr><br><nobr>modification <a href="../kernel/getting_properties_of_the_study.htm"><b>1</b></a> <a href="../kernel/about_salome_pro_architecture.htm"><b>2</b></a> <a href="../dump_study.htm"><b>3</b></a> </nobr><br><a href="../kernel/getting_properties_of_the_study.htm"><b>modifications</b></a> <br><nobr>modify <a href="../kernel/readme.html"><b>1</b></a> <a href="../kernel/introduction.htm"><b>2</b></a> <a href="../dump_study.htm"><b>3</b></a> </nobr><br><a href="../kernel/readme.html"><b>modifying</b></a> <br><nobr>module <a href="../kernel/running_salome_pro.htm"><b>1</b></a> <a href="../kernel/readme.html"><b>2</b></a> <a href="../kernel/introduction_to_salome_pro.htm"><b>3</b></a> <a href="../kernel/editing_studies.htm"><b>4</b></a> <a href="../introduction_to_gui.htm"><b>5</b></a> <a href="../geom_preferences.htm"><b>6</b></a> <a href="../setting_preferences.htm"><b>7</b></a> <a href="../post-pro_preferences.htm"><b>8</b></a> <a href="../mesh_preferences.htm"><b>9</b></a> <a href="../kernel/using_catalog_generator.htm"><b>10</b></a> <a href="../kernel/saving_a_study.htm"><b>11</b></a> <a href="../kernel/salome_pro_desktop.htm"><b>12</b></a> </nobr><br><a href="../kernel/readme.html"><b>module_root_dir</b></a> <br><a href="../kernel/readme.html"><b>module_src_dir</b></a> <br><a href="../kernel/running_salome_pro.htm"><b>module1</b></a> <br><a href="../kernel/running_salome_pro.htm"><b>module2</b></a> <br><nobr>modules <a href="../kernel/running_salome_pro.htm"><b>1</b></a> <a href="../kernel/readme.html"><b>2</b></a> <a href="../kernel/introduction_to_salome_pro.htm"><b>3</b></a> <a href="../kernel/about_salome_pro_help_system.htm"><b>4</b></a> <a href="../kernel/about_salome_pro_architecture.htm"><b>5</b></a> <a href="../introduction_to_gui.htm"><b>6</b></a> <a href="../kernel/using_catalog_generator.htm"><b>7</b></a> <a href="../kernel/setting_preferences.htm"><b>8</b></a> <a href="../kernel/saving_a_study.htm"><b>9</b></a> <a href="../kernel/salome_pro_desktop.htm"><b>10</b></a> </nobr><br><a href="../post-pro_preferences.htm"><b>modulus</b></a> <br><nobr>moment <a href="../kernel/readme.html"><b>1</b></a> <a href="../post-pro_preferences.htm"><b>2</b></a> </nobr><br><a href="../post-pro_preferences.htm"><b>momentarily</b></a> <br><nobr>mouse <a href="../post-pro_preferences.htm"><b>1</b></a> <a href="../mesh_preferences.htm"><b>2</b></a> <a href="../kernel/salome_pro_desktop.htm"><b>3</b></a> </nobr><br><a href="../kernel/displaying_studies.htm"><b>move</b></a> <br><a href="../post-pro_preferences.htm"><b>movement</b></a> <br><a href="../post-pro_preferences.htm"><b>movements</b></a> <br><a href="../kernel/setting_preferences.htm"><b>mozilla</b></a> <br><a name="bms_MS"></a><a name="subkey_MS"></a><a href="../kernel/readme.html"><b>msg2qm</b></a> <br><a href="../kernel/readme.html"><b>msg2qm_root</b></a> <br><a name="bms_MU"></a><a name="subkey_MU"></a><a href="../kernel/readme.html"><b>much</b></a> <br><nobr>multi <a href="../kernel/introduction.htm"><b>1</b></a> <a href="../kernel/getting_started2.htm"><b>2</b></a> <a href="../kernel/displaying_studies.htm"><b>3</b></a> <a href="../introduction_to_gui.htm"><b>4</b></a> <a href="../kernel/using_catalog_generator.htm"><b>5</b></a> <a href="../kernel/salome_pro_desktop.htm"><b>6</b></a> </nobr><br><nobr>multifile <a href="../kernel/setting_preferences.htm"><b>1</b></a> <a href="../kernel/saving_a_study.htm"><b>2</b></a> </nobr><br><a href="../kernel/saving_a_study.htm"><b>multiple</b></a> <br><a href="../post-pro_preferences.htm"><b>multiplied</b></a> <br><a href="../post-pro_preferences.htm"><b>multiplies</b></a> <br><a href="../kernel/about_salome_pro_architecture.htm"><b>multitier</b></a> <br><nobr>must <a href="../kernel/introduction_to_salome_pro.htm"><b>1</b></a> <a href="../kernel/introduction.htm"><b>2</b></a> <a href="../kernel/about_salome_pro_architecture.htm"><b>3</b></a> </nobr><br>\r
 <br><br>\r
-<a name="bm_P"></a><a name="subkey_P{"></a><a href="../kernel/running_salome_pro.htm"><b>p</b></a> <br><nobr><a name="bms_PA"></a><a name="subkey_PA"></a>package <a href="../kernel/running_salome_pro.htm"><b>1</b></a> <a href="../kernel/readme.html"><b>2</b></a> <a href="../kernel/using_catalog_generator.htm"><b>3</b></a> </nobr><br><a href="../kernel/readme.html"><b>packages</b></a> <br><nobr>page <a href="../kernel/readme.html"><b>1</b></a> <a href="../kernel/setting_preferences.htm"><b>2</b></a> </nobr><br><nobr>pages <a href="../kernel/readme.html"><b>1</b></a> <a href="../kernel/using_left-hand_tabs.htm"><b>2</b></a> </nobr><br><nobr>pane <a href="../kernel/navigating_topics.htm"><b>1</b></a> <a href="../kernel/using_left-hand_tabs.htm"><b>2</b></a> </nobr><br><a href="../viewers.htm"><b>panning</b></a> <br><a href="../kernel/about_salome_pro_architecture.htm"><b>parallel</b></a> <br><nobr>parameter <a href="../kernel/readme.html"><b>1</b></a> <a href="../kernel/using_catalog_generator.htm"><b>2</b></a> </nobr><br><nobr>parameters <a href="../kernel/readme.html"><b>1</b></a> <a href="../kernel/about_salome_pro_architecture.htm"><b>2</b></a> <a href="../geom_preferences.htm"><b>3</b></a> <a href="../post-pro_preferences.htm"><b>4</b></a> <a href="../mesh_preferences.htm"><b>5</b></a> <a href="../kernel/using_catalog_generator.htm"><b>6</b></a> <a href="../kernel/setting_preferences.htm"><b>7</b></a> </nobr><br><a href="../kernel/readme.html"><b>part</b></a> <br><a href="../kernel/saving_a_study.htm"><b>particular</b></a> <br><a href="../kernel/introduction.htm"><b>particularly</b></a> <br><nobr>parts <a href="../kernel/displaying_studies.htm"><b>1</b></a> <a href="../viewers.htm"><b>2</b></a> <a href="../kernel/salome_pro_desktop.htm"><b>3</b></a> </nobr><br><a href="../kernel/introduction_to_salome_pro.htm"><b>party</b></a> <br><a href="../kernel/readme.html"><b>pass</b></a> <br><nobr>paste <a href="../kernel/editing_studies.htm"><b>1</b></a> <a href="../kernel/salome_pro_desktop.htm"><b>2</b></a> </nobr><br><a href="../kernel/salome_pro_desktop.htm"><b>pasting</b></a> <br><a href="../kernel/readme.html"><b>path</b></a> <br><a name="bms_PC"></a><a name="subkey_PC"></a><a href="../kernel/about_salome_pro_architecture.htm"><b>pc</b></a> <br><nobr><a name="bms_PE"></a><a name="subkey_PE"></a>perform <a href="../kernel/readme.html"><b>1</b></a> <a href="../kernel/introduction.htm"><b>2</b></a> </nobr><br><nobr>performance <a href="../kernel/introduction.htm"><b>1</b></a> <a href="../kernel/getting_started2.htm"><b>2</b></a> <a href="../kernel/about_salome_pro_architecture.htm"><b>3</b></a> </nobr><br><a href="../kernel/readme.html"><b>performed</b></a> <br><a href="../kernel/readme.html"><b>permission</b></a> <br><a name="bms_PH"></a><a name="subkey_PH"></a><a href="../kernel/about_salome_pro_architecture.htm"><b>phenomena</b></a> <br><a href="../kernel/using_left-hand_tabs.htm"><b>phrases</b></a> <br><nobr>physical <a href="../kernel/introduction_to_salome_pro.htm"><b>1</b></a> <a href="../kernel/introduction.htm"><b>2</b></a> <a href="../kernel/about_salome_pro_architecture.htm"><b>3</b></a> </nobr><br><a href="../kernel/introduction.htm"><b>physics</b></a> <br><a name="bms_PI"></a><a name="subkey_PI"></a><a href="../kernel/readme.html"><b>pick</b></a> <br><a href="../kernel/readme.html"><b>picks</b></a> <br><a href="../kernel/readme.html"><b>pickup</b></a> <br><a href="../kernel/readme.html"><b>pickup_env</b></a> <br><a href="../kernel/readme.html"><b>pickup_env_flag</b></a> <br><a href="../kernel/readme.html"><b>pickupenv</b></a> <br><a href="../kernel/getting_properties_of_the_study.htm"><b>picture</b></a> <br><a href="../kernel/using_registry.htm"><b>pid</b></a> <br><a href="../kernel/about_salome_pro_architecture.htm"><b>piece</b></a> <br><nobr><a name="bms_PL"></a><a name="subkey_PL"></a>place <a href="../kernel/readme.html"><b>1</b></a> <a href="../kernel/displaying_studies.htm"><b>2</b></a> <a href="../kernel/displaying_hiding_toolbars.htm"><b>3</b></a> <a href="../viewers.htm"><b>4</b></a> <a href="../kernel/salome_pro_desktop.htm"><b>5</b></a> </nobr><br><nobr>placed <a href="../kernel/introduction_to_iapp.htm"><b>1</b></a> <a href="../kernel/displaying_studies.htm"><b>2</b></a> <a href="../kernel/salome_pro_desktop.htm"><b>3</b></a> </nobr><br><nobr>platform <a href="../kernel/running_salome_pro.htm"><b>1</b></a> <a href="../kernel/readme.html"><b>2</b></a> <a href="../kernel/introduction_to_salome_pro.htm"><b>3</b></a> <a href="../kernel/introduction_to_iapp.htm"><b>4</b></a> <a href="../kernel/introduction.htm"><b>5</b></a> <a href="../kernel/getting_started2.htm"><b>6</b></a> <a href="../kernel/displaying_studies.htm"><b>7</b></a> <a href="../kernel/displaying_hiding_toolbars.htm"><b>8</b></a> <a href="../kernel/about_salome_pro_help_system.htm"><b>9</b></a> <a href="../kernel/about_salome_pro_architecture.htm"><b>10</b></a> <a href="../viewers.htm"><b>11</b></a> <a href="../kernel/using_registry.htm"><b>12</b></a> <a href="../kernel/using_catalog_generator.htm"><b>13</b></a> <a href="../kernel/saving_a_study.htm"><b>14</b></a> <a href="../kernel/salome_pro_desktop.htm"><b>15</b></a> </nobr><br><a href="../kernel/readme.html"><b>platforms</b></a> <br><nobr>please <a href="../kernel/readme.html"><b>1</b></a> <a href="../kernel/setting_preferences.htm"><b>2</b></a> </nobr><br><nobr>plot <a href="../kernel/introduction_to_iapp.htm"><b>1</b></a> <a href="../kernel/displaying_studies.htm"><b>2</b></a> <a href="../viewers.htm"><b>3</b></a> </nobr><br><nobr>plot2d <a href="../kernel/creating_a_new_study.htm"><b>1</b></a> <a href="../kernel/setting_preferences.htm"><b>2</b></a> </nobr><br><a href="../viewers.htm"><b>plots</b></a> <br><a href="../kernel/introduction_to_iapp.htm"><b>plug</b></a> <br><a name="bms_PN"></a><a name="subkey_PN"></a><a href="../viewers.htm"><b>png</b></a> <br><a name="bms_PO"></a><a name="subkey_PO"></a><a href="../kernel/readme.html"><b>po</b></a> <br><nobr>point <a href="../kernel/about_salome_pro_architecture.htm"><b>1</b></a> <a href="../mesh_preferences.htm"><b>2</b></a> </nobr><br><nobr>points <a href="../kernel/readme.html"><b>1</b></a> <a href="../viewers.htm"><b>2</b></a> <a href="../kernel/setting_preferences.htm"><b>3</b></a> </nobr><br><nobr>pop <a href="../kernel/opening_studies.htm"><b>1</b></a> <a href="../kernel/navigating_topics.htm"><b>2</b></a> <a href="../kernel/using_object_browser.htm"><b>3</b></a> <a href="../kernel/salome_pro_desktop.htm"><b>4</b></a> </nobr><br><a href="../kernel/navigating_topics.htm"><b>popup</b></a> <br><a href="../kernel/navigating_topics.htm"><b>popups</b></a> <br><a href="../kernel/running_salome_pro.htm"><b>port</b></a> <br><a href="../kernel/running_salome_pro.htm"><b>portkill</b></a> <br><nobr>position <a href="../viewers.htm"><b>1</b></a> <a href="../kernel/setting_preferences.htm"><b>2</b></a> <a href="../kernel/saving_a_study.htm"><b>3</b></a> <a href="../kernel/salome_pro_desktop.htm"><b>4</b></a> </nobr><br><nobr>positions <a href="../kernel/saving_a_study.htm"><b>1</b></a> <a href="../kernel/salome_pro_desktop.htm"><b>2</b></a> </nobr><br><a href="../kernel/salome_pro_desktop.htm"><b>positively</b></a> <br><a href="../viewers.htm"><b>possibilities</b></a> <br><nobr>possibility <a href="../kernel/running_salome_pro.htm"><b>1</b></a> <a href="../kernel/readme.html"><b>2</b></a> <a href="../kernel/about_salome_pro_architecture.htm"><b>3</b></a> <a href="../viewers.htm"><b>4</b></a> <a href="../kernel/using_catalog_generator.htm"><b>5</b></a> <a href="../kernel/setting_preferences.htm"><b>6</b></a> </nobr><br><nobr>possible <a href="../kernel/readme.html"><b>1</b></a> <a href="../kernel/about_salome_pro_architecture.htm"><b>2</b></a> <a href="../viewers.htm"><b>3</b></a> <a href="../mesh_preferences.htm"><b>4</b></a> <a href="../kernel/using_object_browser.htm"><b>5</b></a> <a href="../kernel/saving_a_study.htm"><b>6</b></a> <a href="../kernel/salome_pro_desktop.htm"><b>7</b></a> </nobr><br><nobr>post <a href="../kernel/introduction_to_salome_pro.htm"><b>1</b></a> <a href="../kernel/introduction.htm"><b>2</b></a> <a href="../viewers.htm"><b>3</b></a> <a href="../post-pro_preferences.htm"><b>4</b></a> </nobr><br><a href="../kernel/introduction_to_iapp.htm"><b>powerful</b></a> <br><nobr><a name="bms_PR"></a><a name="subkey_PR"></a>pre <a href="../kernel/introduction_to_salome_pro.htm"><b>1</b></a> <a href="../kernel/introduction.htm"><b>2</b></a> </nobr><br><a href="../mesh_preferences.htm"><b>precision</b></a> <br><a href="../kernel/readme.html"><b>precompiled</b></a> <br><nobr>predefined <a href="../kernel/readme.html"><b>1</b></a> <a href="../kernel/about_salome_pro_architecture.htm"><b>2</b></a> <a href="../kernel/setting_preferences.htm"><b>3</b></a> </nobr><br><a href="../kernel/running_salome_pro.htm"><b>preferable</b></a> <br><nobr>preferences <a href="../geom_preferences.htm"><b>1</b></a> <a href="../viewers.htm"><b>2</b></a> <a href="../supervisor_preferences.htm"><b>3</b></a> <a href="../setting_preferences.htm"><b>4</b></a> <a href="../post-pro_preferences.htm"><b>5</b></a> <a href="../mesh_preferences.htm"><b>6</b></a> <a href="../kernel/using_object_browser.htm"><b>7</b></a> <a href="../kernel/setting_preferences.htm"><b>8</b></a> </nobr><br><a href="../kernel/readme.html"><b>prefix</b></a> <br><a href="../kernel/readme.html"><b>preinstalled</b></a> <br><a href="../kernel/readme.html"><b>preliminary</b></a> <br><a href="../kernel/readme.html"><b>prerequisite</b></a> <br><a href="../kernel/readme.html"><b>prerequisites</b></a> <br><a href="../mesh_preferences.htm"><b>preselection</b></a> <br><nobr>presentation <a href="../kernel/creating_a_new_study.htm"><b>1</b></a> <a href="../mesh_preferences.htm"><b>2</b></a> </nobr><br><nobr>presentations <a href="../kernel/setting_preferences.htm"><b>1</b></a> <a href="../kernel/salome_pro_desktop.htm"><b>2</b></a> </nobr><br><a href="../mesh_preferences.htm"><b>presented</b></a> <br><nobr>press <a href="../kernel/readme.html"><b>1</b></a> <a href="../kernel/setting_preferences.htm"><b>2</b></a> </nobr><br><a href="../kernel/readme.html"><b>pressing</b></a> <br><nobr>previous <a href="../kernel/readme.html"><b>1</b></a> <a href="../kernel/opening_studies.htm"><b>2</b></a> </nobr><br><nobr>previously <a href="../kernel/readme.html"><b>1</b></a> <a href="../kernel/opening_studies.htm"><b>2</b></a> <a href="../kernel/introduction_to_salome_pro.htm"><b>3</b></a> <a href="../kernel/saving_a_study.htm"><b>4</b></a> </nobr><br><nobr>print <a href="../kernel/running_salome_pro.htm"><b>1</b></a> <a href="../kernel/readme.html"><b>2</b></a> </nobr><br><a href="../kernel/readme.html"><b>print_env</b></a> <br><a href="../kernel/readme.html"><b>prints</b></a> <br><a href="../kernel/introduction.htm"><b>priority</b></a> <br><nobr>pro <a href="../viewers.htm"><b>1</b></a> <a href="../post-pro_preferences.htm"><b>2</b></a> </nobr><br><a href="../kernel/creating_a_new_study.htm"><b>probably</b></a> <br><nobr>problem <a href="../kernel/readme.html"><b>1</b></a> <a href="../kernel/introduction.htm"><b>2</b></a> </nobr><br><a href="../kernel/readme.html"><b>problems</b></a> <br><nobr>procedure <a href="../kernel/running_salome_pro.htm"><b>1</b></a> <a href="../kernel/readme.html"><b>2</b></a> <a href="../kernel/setting_preferences.htm"><b>3</b></a> </nobr><br><nobr>proceed <a href="../kernel/readme.html"><b>1</b></a> <a href="../kernel/getting_started2.htm"><b>2</b></a> </nobr><br><nobr>process <a href="../kernel/readme.html"><b>1</b></a> <a href="../kernel/introduction.htm"><b>2</b></a> <a href="../kernel/about_salome_pro_architecture.htm"><b>3</b></a> <a href="../kernel/using_registry.htm"><b>4</b></a> </nobr><br><a href="../kernel/using_registry.htm"><b>processes</b></a> <br><nobr>processing <a href="../kernel/readme.html"><b>1</b></a> <a href="../kernel/introduction_to_salome_pro.htm"><b>2</b></a> <a href="../kernel/introduction_to_iapp.htm"><b>3</b></a> <a href="../kernel/introduction.htm"><b>4</b></a> </nobr><br><nobr>processors <a href="../kernel/introduction.htm"><b>1</b></a> <a href="../kernel/about_salome_pro_architecture.htm"><b>2</b></a> </nobr><br><a href="../kernel/readme.html"><b>product</b></a> <br><a href="../kernel/readme.html"><b>product_context</b></a> <br><a href="../kernel/readme.html"><b>product_description</b></a> <br><a href="../kernel/readme.html"><b>product_name</b></a> <br><a href="../kernel/readme.html"><b>product_script_name</b></a> <br><a href="../kernel/readme.html"><b>product_version</b></a> <br><a href="../kernel/about_salome_pro_architecture.htm"><b>productivity</b></a> <br><nobr>products <a href="../kernel/running_salome_pro.htm"><b>1</b></a> <a href="../kernel/readme.html"><b>2</b></a> <a href="../kernel/introduction.htm"><b>3</b></a> </nobr><br><a href="../kernel/readme.html"><b>products_directory</b></a> <br><a href="../kernel/running_salome_pro.htm"><b>profile</b></a> <br><a href="../kernel/readme.html"><b>program</b></a> <br><a href="../kernel/introduction.htm"><b>programmatic</b></a> <br><a href="../kernel/about_salome_pro_architecture.htm"><b>programming</b></a> <br><a href="../kernel/readme.html"><b>progress</b></a> <br><a href="../kernel/readme.html"><b>prompted</b></a> <br><a href="../kernel/running_salome_pro.htm"><b>prompting</b></a> <br><a href="../viewers.htm"><b>promptly</b></a> <br><a href="../kernel/readme.html"><b>proper</b></a> <br><a href="../kernel/readme.html"><b>properly</b></a> <br><nobr>properties <a href="../kernel/introduction_to_salome_pro.htm"><b>1</b></a> <a href="../kernel/introduction.htm"><b>2</b></a> <a href="../kernel/getting_properties_of_the_study.htm"><b>3</b></a> <a href="../kernel/setting_preferences.htm"><b>4</b></a> </nobr><br><a href="../kernel/readme.html"><b>proposed</b></a> <br><a href="../kernel/introduction_to_iapp.htm"><b>proposes</b></a> <br><nobr>provide <a href="../kernel/readme.html"><b>1</b></a> <a href="../kernel/editing_studies.htm"><b>2</b></a> </nobr><br><nobr>provided <a href="../kernel/running_salome_pro.htm"><b>1</b></a> <a href="../kernel/readme.html"><b>2</b></a> <a href="../kernel/introduction.htm"><b>3</b></a> <a href="../kernel/about_salome_pro_architecture.htm"><b>4</b></a> <a href="../kernel/using_catalog_generator.htm"><b>5</b></a> </nobr><br><nobr>provides <a href="../kernel/readme.html"><b>1</b></a> <a href="../kernel/introduction_to_salome_pro.htm"><b>2</b></a> <a href="../kernel/introduction_to_iapp.htm"><b>3</b></a> <a href="../kernel/introduction.htm"><b>4</b></a> <a href="../kernel/about_salome_pro_architecture.htm"><b>5</b></a> <a href="../viewers.htm"><b>6</b></a> <a href="../post-pro_preferences.htm"><b>7</b></a> <a href="../kernel/using_catalog_generator.htm"><b>8</b></a> </nobr><br><nobr>providing <a href="../viewers.htm"><b>1</b></a> <a href="../kernel/using_registry.htm"><b>2</b></a> <a href="../kernel/using_left-hand_tabs.htm"><b>3</b></a> </nobr><br><br><br></p><p class="ftsbody" align="center"><a href="whlstf7.htm" target="_self" title="previous search group"><b>&gt;&gt;</b></a>\r
+<nobr><a name="bm_N"></a><a name="subkey_N{"></a>n <a href="../kernel/readme.html"><b>1</b></a> <a href="../post-pro_preferences.htm"><b>2</b></a> </nobr><br><nobr><a name="bms_NA"></a><a name="subkey_NA"></a>name <a href="../kernel/readme.html"><b>1</b></a> <a href="../kernel/getting_properties_of_the_study.htm"><b>2</b></a> <a href="../kernel/creating_a_new_study.htm"><b>3</b></a> <a href="../dump_study.htm"><b>4</b></a> <a href="../kernel/using_registry.htm"><b>5</b></a> <a href="../kernel/using_object_browser.htm"><b>6</b></a> <a href="../kernel/using_catalog_generator.htm"><b>7</b></a> <a href="../kernel/saving_a_study.htm"><b>8</b></a> </nobr><br><nobr>named <a href="../kernel/readme.html"><b>1</b></a> <a href="../kernel/about_salome_pro_architecture.htm"><b>2</b></a> </nobr><br><nobr>names <a href="../kernel/readme.html"><b>1</b></a> <a href="../kernel/saving_a_study.htm"><b>2</b></a> </nobr><br><a href="../kernel/readme.html"><b>native</b></a> <br><a href="../kernel/about_salome_pro_architecture.htm"><b>natural</b></a> <br><a href="../kernel/editing_studies.htm"><b>nature</b></a> <br><nobr>navigate <a href="../kernel/readme.html"><b>1</b></a> <a href="../kernel/navigating_topics.htm"><b>2</b></a> </nobr><br><a href="../kernel/navigating_topics.htm"><b>navigating</b></a> <br><nobr>navigation <a href="../kernel/navigating_topics.htm"><b>1</b></a> <a href="../kernel/about_salome_pro_help_system.htm"><b>2</b></a> <a href="../post-pro_preferences.htm"><b>3</b></a> </nobr><br><a href="../kernel/about_salome_pro_help_system.htm"><b>navigator</b></a> <br><nobr><a name="bms_NE"></a><a name="subkey_NE"></a>necessary <a href="../kernel/running_salome_pro.htm"><b>1</b></a> <a href="../kernel/readme.html"><b>2</b></a> <a href="../dump_study.htm"><b>3</b></a> <a href="../mesh_preferences.htm"><b>4</b></a> <a href="../kernel/using_object_browser.htm"><b>5</b></a> <a href="../kernel/saving_a_study.htm"><b>6</b></a> <a href="../kernel/salome_pro_desktop.htm"><b>7</b></a> </nobr><br><nobr>need <a href="../kernel/readme.html"><b>1</b></a> <a href="../kernel/navigating_topics.htm"><b>2</b></a> <a href="../kernel/displaying_studies.htm"><b>3</b></a> <a href="../select_color_and_font.htm"><b>4</b></a> <a href="../kernel/setting_preferences.htm"><b>5</b></a> </nobr><br><a href="../post-pro_preferences.htm"><b>needed</b></a> <br><a href="../post-pro_preferences.htm"><b>negative</b></a> <br><a href="../kernel/readme.html"><b>netgen</b></a> <br><a href="../kernel/readme.html"><b>netgenroot</b></a> <br><nobr>netscape <a href="../kernel/about_salome_pro_help_system.htm"><b>1</b></a> <a href="../kernel/setting_preferences.htm"><b>2</b></a> </nobr><br><nobr>new <a href="../kernel/readme.html"><b>1</b></a> <a href="../kernel/introduction.htm"><b>2</b></a> <a href="../kernel/getting_started2.htm"><b>3</b></a> <a href="../kernel/getting_properties_of_the_study.htm"><b>4</b></a> <a href="../kernel/creating_a_new_study.htm"><b>5</b></a> <a href="../kernel/about_salome_pro_architecture.htm"><b>6</b></a> <a href="../setting_preferences.htm"><b>7</b></a> <a href="../kernel/using_catalog_generator.htm"><b>8</b></a> <a href="../kernel/setting_preferences.htm"><b>9</b></a> <a href="../kernel/saving_a_study.htm"><b>10</b></a> </nobr><br><a href="../kernel/readme.html"><b>newer</b></a> <br><nobr>next <a href="../kernel/running_salome_pro.htm"><b>1</b></a> <a href="../kernel/readme.html"><b>2</b></a> <a href="../kernel/getting_properties_of_the_study.htm"><b>3</b></a> <a href="../setting_preferences.htm"><b>4</b></a> <a href="../kernel/using_catalog_generator.htm"><b>5</b></a> </nobr><br><a name="bms_NF"></a><a name="subkey_NF"></a><a href="../kernel/readme.html"><b>nf</b></a> <br><nobr><a name="bms_NO"></a><a name="subkey_NO"></a>nodes <a href="../mesh_preferences.htm"><b>1</b></a> <a href="../kernel/using_catalog_generator.htm"><b>2</b></a> </nobr><br><a href="../kernel/displaying_studies.htm"><b>normal</b></a> <br><a href="../kernel/readme.html"><b>note</b></a> <br><a href="../kernel/readme.html"><b>notes</b></a> <br><a href="../kernel/about_salome_pro_architecture.htm"><b>noticeably</b></a> <br><a href="../kernel/readme.html"><b>notifd</b></a> <br><a href="../setting_preferences.htm"><b>notification</b></a> <br><a href="../post-pro_preferences.htm"><b>notify</b></a> <br><a href="../kernel/getting_started2.htm"><b>notion</b></a> <br><a href="../kernel/salome_pro_desktop.htm"><b>now</b></a> <br><a name="bms_NT"></a><a name="subkey_NT"></a><a href="../post-pro_preferences.htm"><b>nth</b></a> <br><nobr><a name="bms_NU"></a><a name="subkey_NU"></a>null <a href="../kernel/readme.html"><b>1</b></a> <a href="../post-pro_preferences.htm"><b>2</b></a> </nobr><br><nobr>number <a href="../kernel/readme.html"><b>1</b></a> <a href="../kernel/introduction_to_salome_pro.htm"><b>2</b></a> <a href="../post-pro_preferences.htm"><b>3</b></a> <a href="../mesh_preferences.htm"><b>4</b></a> <a href="../kernel/using_registry.htm"><b>5</b></a> <a href="../kernel/setting_preferences.htm"><b>6</b></a> </nobr><br><nobr>numbers <a href="../kernel/readme.html"><b>1</b></a> <a href="../post-pro_preferences.htm"><b>2</b></a> <a href="../mesh_preferences.htm"><b>3</b></a> </nobr><br><nobr>numeric <a href="../kernel/readme.html"><b>1</b></a> <a href="../kernel/introduction_to_salome_pro.htm"><b>2</b></a> <a href="../kernel/introduction.htm"><b>3</b></a> <a href="../select_color_and_font.htm"><b>4</b></a> </nobr><br><nobr>numerical <a href="../kernel/introduction.htm"><b>1</b></a> <a href="../kernel/getting_started2.htm"><b>2</b></a> <a href="../kernel/about_salome_pro_architecture.htm"><b>3</b></a> </nobr><br><a href="../kernel/running_salome_pro.htm"><b>numerous</b></a> <br>\r
+<br><br>\r
+<nobr><a name="bm_O"></a><a name="subkey_OB"></a>object <a href="../kernel/opening_studies.htm"><b>1</b></a> <a href="../kernel/editing_studies.htm"><b>2</b></a> <a href="../kernel/displaying_studies.htm"><b>3</b></a> <a href="../kernel/creating_a_new_study.htm"><b>4</b></a> <a href="../introduction_to_gui.htm"><b>5</b></a> <a href="../post-pro_preferences.htm"><b>6</b></a> <a href="../mesh_preferences.htm"><b>7</b></a> <a href="../kernel/using_object_browser.htm"><b>8</b></a> <a href="../kernel/setting_preferences.htm"><b>9</b></a> <a href="../kernel/saving_a_study.htm"><b>10</b></a> <a href="../kernel/salome_pro_desktop.htm"><b>11</b></a> </nobr><br><a href="../kernel/about_salome_pro_architecture.htm"><b>objectives</b></a> <br><nobr>objects <a href="../kernel/opening_studies.htm"><b>1</b></a> <a href="../kernel/about_salome_pro_architecture.htm"><b>2</b></a> <a href="../introduction_to_gui.htm"><b>3</b></a> <a href="../dump_study.htm"><b>4</b></a> <a href="../setting_preferences.htm"><b>5</b></a> <a href="../post-pro_preferences.htm"><b>6</b></a> <a href="../kernel/using_object_browser.htm"><b>7</b></a> <a href="../kernel/saving_a_study.htm"><b>8</b></a> <a href="../kernel/salome_pro_desktop.htm"><b>9</b></a> </nobr><br><a href="../kernel/readme.html"><b>obligatory</b></a> <br><nobr><a name="bms_OC"></a><a name="subkey_OC"></a>occ <a href="../kernel/displaying_studies.htm"><b>1</b></a> <a href="../kernel/creating_a_new_study.htm"><b>2</b></a> <a href="../introduction_to_gui.htm"><b>3</b></a> <a href="../kernel/setting_preferences.htm"><b>4</b></a> </nobr><br><a href="../kernel/readme.html"><b>occ_version_major</b></a> <br><a href="../kernel/readme.html"><b>occ_version_minor</b></a> <br><a href="../kernel/readme.html"><b>occupies</b></a> <br><a name="bms_OF"></a><a name="subkey_OF"></a><a href="../kernel/readme.html"><b>off</b></a> <br><a href="../kernel/about_salome_pro_architecture.htm"><b>offered</b></a> <br><a href="../kernel/introduction.htm"><b>often</b></a> <br><nobr><a name="bms_OK"></a><a name="subkey_OK"></a>ok <a href="../kernel/readme.html"><b>1</b></a> <a href="../kernel/opening_studies.htm"><b>2</b></a> <a href="../setting_preferences.htm"><b>3</b></a> </nobr><br><a name="bms_OM"></a><a name="subkey_OM"></a><a href="../kernel/about_salome_pro_architecture.htm"><b>omg</b></a> <br><a href="../kernel/readme.html"><b>omit</b></a> <br><a href="../kernel/readme.html"><b>omni</b></a> <br><a href="../kernel/readme.html"><b>omninotify</b></a> <br><a href="../kernel/readme.html"><b>omniorb</b></a> <br><a href="../kernel/readme.html"><b>omniorbdir</b></a> <br><a href="../kernel/readme.html"><b>omniorbpy</b></a> <br><a name="bms_ON"></a><a name="subkey_ON"></a><a href="../post-pro_preferences.htm"><b>once</b></a> <br><nobr>one <a href="../kernel/running_salome_pro.htm"><b>1</b></a> <a href="../kernel/readme.html"><b>2</b></a> <a href="../kernel/opening_studies.htm"><b>3</b></a> <a href="../kernel/navigating_topics.htm"><b>4</b></a> <a href="../kernel/editing_studies.htm"><b>5</b></a> <a href="../kernel/displaying_studies.htm"><b>6</b></a> <a href="../kernel/about_salome_pro_architecture.htm"><b>7</b></a> <a href="../introduction_to_gui.htm"><b>8</b></a> <a href="../dump_study.htm"><b>9</b></a> <a href="../select_color_and_font.htm"><b>10</b></a> <a href="../post-pro_preferences.htm"><b>11</b></a> <a href="../kernel/using_object_browser.htm"><b>12</b></a> <a href="../kernel/using_catalog_generator.htm"><b>13</b></a> <a href="../kernel/setting_preferences.htm"><b>14</b></a> <a href="../kernel/saving_a_study.htm"><b>15</b></a> <a href="../kernel/salome_pro_desktop.htm"><b>16</b></a> </nobr><br><a href="../kernel/readme.html"><b>ones</b></a> <br><a href="../kernel/using_left-hand_tabs.htm"><b>online</b></a> <br><a name="bms_OP"></a><a name="subkey_OP"></a><a href="../post-pro_preferences.htm"><b>opaque</b></a> <br><nobr>open <a href="../kernel/running_salome_pro.htm"><b>1</b></a> <a href="../kernel/readme.html"><b>2</b></a> <a href="../kernel/opening_studies.htm"><b>3</b></a> <a href="../kernel/navigating_topics.htm"><b>4</b></a> <a href="../kernel/introduction_to_salome_pro.htm"><b>5</b></a> <a href="../kernel/introduction.htm"><b>6</b></a> <a href="../kernel/getting_started2.htm"><b>7</b></a> <a href="../kernel/displaying_studies.htm"><b>8</b></a> <a href="../dump_study.htm"><b>9</b></a> <a href="../post-pro_preferences.htm"><b>10</b></a> <a href="../kernel/using_left-hand_tabs.htm"><b>11</b></a> <a href="../kernel/using_catalog_generator.htm"><b>12</b></a> <a href="../kernel/saving_a_study.htm"><b>13</b></a> </nobr><br><a href="../kernel/readme.html"><b>opencascade</b></a> <br><nobr>opening <a href="../kernel/opening_studies.htm"><b>1</b></a> <a href="../kernel/saving_a_study.htm"><b>2</b></a> </nobr><br><nobr>opens <a href="../kernel/navigating_topics.htm"><b>1</b></a> <a href="../kernel/using_left-hand_tabs.htm"><b>2</b></a> </nobr><br><a href="../dump_study.htm"><b>operated</b></a> <br><nobr>operation <a href="../kernel/editing_studies.htm"><b>1</b></a> <a href="../mesh_preferences.htm"><b>2</b></a> <a href="../kernel/saving_a_study.htm"><b>3</b></a> </nobr><br><nobr>operations <a href="../kernel/getting_started2.htm"><b>1</b></a> <a href="../kernel/editing_studies.htm"><b>2</b></a> <a href="../post-pro_preferences.htm"><b>3</b></a> </nobr><br><a href="../kernel/introduction_to_salome_pro.htm"><b>optimization</b></a> <br><nobr>optimize <a href="../kernel/introduction.htm"><b>1</b></a> <a href="../post-pro_preferences.htm"><b>2</b></a> </nobr><br><a href="../kernel/readme.html"><b>optimized</b></a> <br><nobr>option <a href="../kernel/readme.html"><b>1</b></a> <a href="../kernel/opening_studies.htm"><b>2</b></a> <a href="../kernel/getting_properties_of_the_study.htm"><b>3</b></a> <a href="../kernel/editing_studies.htm"><b>4</b></a> <a href="../post-pro_preferences.htm"><b>5</b></a> <a href="../kernel/setting_preferences.htm"><b>6</b></a> <a href="../kernel/saving_a_study.htm"><b>7</b></a> </nobr><br><a href="../kernel/readme.html"><b>optional</b></a> <br><nobr>optionally <a href="../kernel/introduction_to_salome_pro.htm"><b>1</b></a> <a href="../kernel/introduction.htm"><b>2</b></a> </nobr><br><nobr>options <a href="../kernel/running_salome_pro.htm"><b>1</b></a> <a href="../kernel/readme.html"><b>2</b></a> <a href="../post-pro_preferences.htm"><b>3</b></a> <a href="../kernel/using_object_browser.htm"><b>4</b></a> <a href="../kernel/saving_a_study.htm"><b>5</b></a> <a href="../kernel/salome_pro_desktop.htm"><b>6</b></a> </nobr><br><a name="bms_OR"></a><a name="subkey_OR"></a><a href="../kernel/readme.html"><b>order</b></a> <br><nobr>ordinate <a href="../post-pro_preferences.htm"><b>1</b></a> <a href="../mesh_preferences.htm"><b>2</b></a> </nobr><br><a href="../kernel/about_salome_pro_architecture.htm"><b>org</b></a> <br><nobr>orientation <a href="../post-pro_preferences.htm"><b>1</b></a> <a href="../mesh_preferences.htm"><b>2</b></a> </nobr><br><nobr>origin <a href="../post-pro_preferences.htm"><b>1</b></a> <a href="../mesh_preferences.htm"><b>2</b></a> </nobr><br><a href="../dump_study.htm"><b>original</b></a> <br><a href="../kernel/introduction_to_salome_pro.htm"><b>originality</b></a> <br><a name="bms_OS"></a><a name="subkey_OS"></a><a href="../kernel/readme.html"><b>os</b></a> <br><a href="../kernel/readme.html"><b>os_version</b></a> <br><nobr><a name="bms_OT"></a><a name="subkey_OT"></a>others <a href="../kernel/about_salome_pro_help_system.htm"><b>1</b></a> <a href="../dump_study.htm"><b>2</b></a> </nobr><br><nobr>otherwise <a href="../kernel/readme.html"><b>1</b></a> <a href="../dump_study.htm"><b>2</b></a> <a href="../post-pro_preferences.htm"><b>3</b></a> <a href="../kernel/saving_a_study.htm"><b>4</b></a> </nobr><br><nobr><a name="bms_OU"></a><a name="subkey_OU"></a>out <a href="../kernel/introduction.htm"><b>1</b></a> <a href="../select_color_and_font.htm"><b>2</b></a> <a href="../mesh_preferences.htm"><b>3</b></a> </nobr><br><a href="../mesh_preferences.htm"><b>outline</b></a> <br><nobr>output <a href="../kernel/readme.html"><b>1</b></a> <a href="../introduction_to_gui.htm"><b>2</b></a> </nobr><br><nobr>outside <a href="../post-pro_preferences.htm"><b>1</b></a> <a href="../kernel/salome_pro_desktop.htm"><b>2</b></a> </nobr><br><br><br></p><p class="ftsbody" align="center"><a href="whlstf7.htm" target="_self" title="previous search group"><b>&gt;&gt;</b></a>\r
 \r
 </body>\r
 \r
index 9d419a53d47de11ceb9d75509a86a37f2257113c..33b9749b91d58dd7828862bef762473f0d693c6c 100755 (executable)
@@ -33,13 +33,9 @@ A:hover {color:Navy; } A:hover {font-family:Tahoma; } A:hover {font-size:8pt; }
 <body marginheight="0"  marginwidth="0" bgproperties="fixed">\r
 <p class="ftsbody" align="center"><a href="whlstf6.htm" target="_self" title="previous search group"><b>&lt;&lt;</b></a><br><br></p>\r
 <p class="ftsbody" >\r
-<a name="bms_PU"></a><a name="subkey_PU"></a><a href="../kernel/about_salome_pro_architecture.htm"><b>pure</b></a> <br><a href="../kernel/getting_started2.htm"><b>purpose</b></a> <br><a href="../kernel/using_object_browser.htm"><b>purposes</b></a> <br><a name="bms_PY"></a><a name="subkey_PY"></a><a href="../kernel/running_salome_pro.htm"><b>py</b></a> <br><a href="../kernel/readme.html"><b>pyqt</b></a> <br><a href="../kernel/readme.html"><b>pyqtdir</b></a> <br><nobr>python <a href="../kernel/running_salome_pro.htm"><b>1</b></a> <a href="../kernel/readme.html"><b>2</b></a> <a href="../kernel/introduction_to_iapp.htm"><b>3</b></a> <a href="../kernel/introduction.htm"><b>4</b></a> <a href="../kernel/about_salome_pro_architecture.htm"><b>5</b></a> <a href="../kernel/setting_preferences.htm"><b>6</b></a> <a href="../kernel/saving_a_study.htm"><b>7</b></a> <a href="../kernel/salome_pro_desktop.htm"><b>8</b></a> </nobr><br><a href="../kernel/readme.html"><b>pythonhome</b></a> <br>\r
+<a name="bms_OV"></a><a name="subkey_OV"></a><a href="../kernel/readme.html"><b>overloads</b></a> <br><nobr><a name="bms_OW"></a><a name="subkey_OW"></a>own <a href="../kernel/readme.html"><b>1</b></a> <a href="../kernel/introduction_to_salome_pro.htm"><b>2</b></a> <a href="../introduction_to_gui.htm"><b>3</b></a> <a href="../kernel/salome_pro_desktop.htm"><b>4</b></a> </nobr><br>\r
 <br><br>\r
-<a name="bm_Q"></a><a name="subkey_QG"></a><a href="../kernel/readme.html"><b>qglobal</b></a> <br><a name="bms_QM"></a><a name="subkey_QM"></a><a href="../kernel/readme.html"><b>qm</b></a> <br><a name="bms_QT"></a><a name="subkey_QT"></a><a href="../kernel/readme.html"><b>qt</b></a> <br><a href="../kernel/readme.html"><b>qt_version_str</b></a> <br><a href="../kernel/readme.html"><b>qtdir</b></a> <br><nobr><a name="bms_QU"></a><a name="subkey_QU"></a>quality <a href="../kernel/introduction.htm"><b>1</b></a> <a href="../mesh_preferences.htm"><b>2</b></a> </nobr><br><a href="../kernel/introduction.htm"><b>quantities</b></a> <br><a href="../kernel/readme.html"><b>question</b></a> <br><nobr>quick <a href="../kernel/readme.html"><b>1</b></a> <a href="../kernel/using_object_browser.htm"><b>2</b></a> <a href="../kernel/setting_preferences.htm"><b>3</b></a> </nobr><br><nobr>quickly <a href="../kernel/readme.html"><b>1</b></a> <a href="../kernel/setting_preferences.htm"><b>2</b></a> </nobr><br><a href="../kernel/saving_a_study.htm"><b>quit</b></a> <br><a href="../kernel/readme.html"><b>quits</b></a> <br><a href="../kernel/readme.html"><b>quoted</b></a> <br><a name="bms_QW"></a><a name="subkey_QW"></a><a href="../kernel/readme.html"><b>qwt</b></a> <br><a href="../kernel/readme.html"><b>qwthome</b></a> <br>\r
-<br><br>\r
-<a name="bm_R"></a><a name="subkey_RA"></a><a href="../kernel/readme.html"><b>radio</b></a> <br><nobr>range <a href="../kernel/introduction_to_salome_pro.htm"><b>1</b></a> <a href="../post-pro_preferences.htm"><b>2</b></a> </nobr><br><a href="../post-pro_preferences.htm"><b>ranges</b></a> <br><a href="../kernel/about_salome_pro_architecture.htm"><b>rapidly</b></a> <br><a name="bms_RE"></a><a name="subkey_RE"></a><a href="../kernel/navigating_topics.htm"><b>re</b></a> <br><a href="../kernel/introduction.htm"><b>reactivity</b></a> <br><nobr>read <a href="../kernel/readme.html"><b>1</b></a> <a href="../kernel/navigating_topics.htm"><b>2</b></a> <a href="../kernel/introduction.htm"><b>3</b></a> </nobr><br><a href="../kernel/navigating_topics.htm"><b>reading</b></a> <br><a href="../kernel/readme.html"><b>readme</b></a> <br><a href="../kernel/getting_started2.htm"><b>realize</b></a> <br><a href="../setting_preferences.htm"><b>receives</b></a> <br><a href="../kernel/readme.html"><b>recommended</b></a> <br><a href="../kernel/getting_properties_of_the_study.htm"><b>record</b></a> <br><a href="../kernel/using_object_browser.htm"><b>red</b></a> <br><a href="../kernel/running_salome_pro.htm"><b>redirection</b></a> <br><a href="../kernel/editing_studies.htm"><b>redo</b></a> <br><a href="../kernel/introduction.htm"><b>reduce</b></a> <br><a href="../kernel/introduction.htm"><b>reduces</b></a> <br><nobr>refer <a href="../setting_preferences.htm"><b>1</b></a> <a href="../kernel/setting_preferences.htm"><b>2</b></a> </nobr><br><nobr>reference <a href="../kernel/navigating_topics.htm"><b>1</b></a> <a href="../kernel/about_salome_pro_help_system.htm"><b>2</b></a> <a href="../kernel/using_object_browser.htm"><b>3</b></a> <a href="../kernel/setting_preferences.htm"><b>4</b></a> </nobr><br><a href="../kernel/using_object_browser.htm"><b>references</b></a> <br><a href="../kernel/readme.html"><b>refers</b></a> <br><a href="../kernel/introduction.htm"><b>refined</b></a> <br><a href="../kernel/using_registry.htm"><b>refresh</b></a> <br><a href="../kernel/using_registry.htm"><b>refreshment</b></a> <br><nobr>registry <a href="../kernel/introduction_to_iapp.htm"><b>1</b></a> <a href="../kernel/using_registry.htm"><b>2</b></a> </nobr><br><a href="../kernel/readme.html"><b>reinstall</b></a> <br><a href="../kernel/readme.html"><b>reinstallation</b></a> <br><a href="../kernel/readme.html"><b>reinstalling</b></a> <br><nobr>related <a href="../kernel/navigating_topics.htm"><b>1</b></a> <a href="../kernel/using_left-hand_tabs.htm"><b>2</b></a> </nobr><br><a href="../kernel/readme.html"><b>relative</b></a> <br><a href="../kernel/readme.html"><b>release</b></a> <br><a href="../kernel/navigating_topics.htm"><b>relevant</b></a> <br><a href="../kernel/introduction.htm"><b>reliability</b></a> <br><a href="../kernel/saving_a_study.htm"><b>reload</b></a> <br><a href="../kernel/displaying_hiding_toolbars.htm"><b>relocate</b></a> <br><a href="../kernel/about_salome_pro_architecture.htm"><b>remains</b></a> <br><nobr>remote <a href="../kernel/creating_a_new_study.htm"><b>1</b></a> <a href="../viewers.htm"><b>2</b></a> </nobr><br><a href="../kernel/setting_preferences.htm"><b>remove</b></a> <br><a href="../kernel/readme.html"><b>removed</b></a> <br><a href="../kernel/readme.html"><b>removing</b></a> <br><a href="../post-pro_preferences.htm"><b>repeated</b></a> <br><nobr>represent <a href="../kernel/about_salome_pro_architecture.htm"><b>1</b></a> <a href="../kernel/using_left-hand_tabs.htm"><b>2</b></a> </nobr><br><nobr>representation <a href="../kernel/introduction_to_salome_pro.htm"><b>1</b></a> <a href="../kernel/displaying_studies.htm"><b>2</b></a> <a href="../viewers.htm"><b>3</b></a> <a href="../post-pro_preferences.htm"><b>4</b></a> <a href="../mesh_preferences.htm"><b>5</b></a> <a href="../kernel/setting_preferences.htm"><b>6</b></a> </nobr><br><a href="../viewers.htm"><b>represented</b></a> <br><nobr>represents <a href="../kernel/introduction_to_salome_pro.htm"><b>1</b></a> <a href="../kernel/introduction.htm"><b>2</b></a> <a href="../kernel/getting_started2.htm"><b>3</b></a> <a href="../viewers.htm"><b>4</b></a> </nobr><br><nobr>required <a href="../kernel/readme.html"><b>1</b></a> <a href="../kernel/opening_studies.htm"><b>2</b></a> </nobr><br><nobr>requirements <a href="../kernel/running_salome_pro.htm"><b>1</b></a> <a href="../kernel/introduction.htm"><b>2</b></a> <a href="../kernel/about_salome_pro_architecture.htm"><b>3</b></a> </nobr><br><nobr>requires <a href="../kernel/introduction.htm"><b>1</b></a> <a href="../kernel/saving_a_study.htm"><b>2</b></a> </nobr><br><nobr>reset <a href="../kernel/readme.html"><b>1</b></a> <a href="../viewers.htm"><b>2</b></a> </nobr><br><a href="../kernel/salome_pro_desktop.htm"><b>resized</b></a> <br><a href="../viewers.htm"><b>resizes</b></a> <br><a href="../kernel/readme.html"><b>resource</b></a> <br><a href="../kernel/introduction_to_iapp.htm"><b>resources</b></a> <br><a href="../setting_preferences.htm"><b>respective</b></a> <br><a href="../kernel/about_salome_pro_architecture.htm"><b>responds</b></a> <br><a href="../kernel/readme.html"><b>responsible</b></a> <br><a href="../kernel/introduction.htm"><b>restore</b></a> <br><a href="../setting_preferences.htm"><b>restored</b></a> <br><nobr>result <a href="../kernel/introduction.htm"><b>1</b></a> <a href="../kernel/saving_a_study.htm"><b>2</b></a> </nobr><br><a href="../kernel/getting_started2.htm"><b>resulting</b></a> <br><nobr>results <a href="../kernel/introduction.htm"><b>1</b></a> <a href="../kernel/displaying_studies.htm"><b>2</b></a> </nobr><br><a href="../setting_preferences.htm"><b>retroactive</b></a> <br><a href="../viewers.htm"><b>returns</b></a> <br><a href="../kernel/introduction.htm"><b>reusable</b></a> <br><a href="../kernel/about_salome_pro_architecture.htm"><b>reuse</b></a> <br><a href="../viewers.htm"><b>reveals</b></a> <br><nobr><a name="bms_RI"></a><a name="subkey_RI"></a>right <a href="../kernel/readme.html"><b>1</b></a> <a href="../kernel/opening_studies.htm"><b>2</b></a> <a href="../kernel/navigating_topics.htm"><b>3</b></a> <a href="../kernel/using_object_browser.htm"><b>4</b></a> <a href="../kernel/using_left-hand_tabs.htm"><b>5</b></a> <a href="../kernel/setting_preferences.htm"><b>6</b></a> <a href="../kernel/saving_a_study.htm"><b>7</b></a> <a href="../kernel/salome_pro_desktop.htm"><b>8</b></a> </nobr><br><a href="../kernel/introduction.htm"><b>risks</b></a> <br><a name="bms_RO"></a><a name="subkey_RO"></a><a href="../kernel/introduction.htm"><b>robustness</b></a> <br><a href="../kernel/about_salome_pro_architecture.htm"><b>roles</b></a> <br><a href="../kernel/readme.html"><b>root</b></a> <br><a href="../viewers.htm"><b>rotate</b></a> <br><a href="../viewers.htm"><b>rotation</b></a> <br><a name="bms_RU"></a><a name="subkey_RU"></a><a href="../kernel/readme.html"><b>rules</b></a> <br><nobr>run <a href="../kernel/running_salome_pro.htm"><b>1</b></a> <a href="../kernel/readme.html"><b>2</b></a> <a href="../kernel/about_salome_pro_architecture.htm"><b>3</b></a> </nobr><br><a href="../kernel/setting_preferences.htm"><b>runic</b></a> <br><a href="../kernel/readme.html"><b>runinstall</b></a> <br><nobr>running <a href="../kernel/running_salome_pro.htm"><b>1</b></a> <a href="../kernel/using_registry.htm"><b>2</b></a> <a href="../kernel/using_catalog_generator.htm"><b>3</b></a> </nobr><br><a href="../kernel/readme.html"><b>runs</b></a> <br><nobr>runsalome <a href="../kernel/running_salome_pro.htm"><b>1</b></a> <a href="../kernel/using_catalog_generator.htm"><b>2</b></a> </nobr><br><a href="../kernel/using_catalog_generator.htm"><b>runsalomewithport</b></a> <br>\r
-<br><br>\r
-<nobr><a name="bm_S"></a><a name="subkey_S{"></a>s <a href="../kernel/readme.html"><b>1</b></a> <a href="../kernel/navigating_topics.htm"><b>2</b></a> <a href="../kernel/about_salome_pro_architecture.htm"><b>3</b></a> </nobr><br><a name="bms_SA"></a><a name="subkey_SA"></a><a href="../kernel/introduction_to_iapp.htm"><b>safe</b></a> <br><nobr>salome <a href="../kernel/running_salome_pro.htm"><b>1</b></a> <a href="../kernel/readme.html"><b>2</b></a> <a href="../kernel/opening_studies.htm"><b>3</b></a> <a href="../kernel/navigating_topics.htm"><b>4</b></a> <a href="../kernel/introduction_to_salome_pro.htm"><b>5</b></a> <a href="../kernel/introduction_to_iapp.htm"><b>6</b></a> <a href="../kernel/introduction.htm"><b>7</b></a> <a href="../kernel/getting_started2.htm"><b>8</b></a> <a href="../kernel/editing_studies.htm"><b>9</b></a> <a href="../kernel/displaying_studies.htm"><b>10</b></a> <a href="../kernel/displaying_hiding_toolbars.htm"><b>11</b></a> <a href="../kernel/creating_a_new_study.htm"><b>12</b></a> <a href="../kernel/about_salome_pro_help_system.htm"><b>13</b></a> <a href="../kernel/about_salome_pro_architecture.htm"><b>14</b></a> <a href="../viewers.htm"><b>15</b></a> <a href="../setting_preferences.htm"><b>16</b></a> <a href="../kernel/using_registry.htm"><b>17</b></a> <a href="../kernel/using_object_browser.htm"><b>18</b></a> <a href="../kernel/using_left-hand_tabs.htm"><b>19</b></a> <a href="../kernel/using_catalog_generator.htm"><b>20</b></a> <a href="../kernel/setting_preferences.htm"><b>21</b></a> <a href="../kernel/saving_a_study.htm"><b>22</b></a> <a href="../kernel/salome_pro_desktop.htm"><b>23</b></a> </nobr><br><a href="../kernel/using_catalog_generator.htm"><b>salome_modulecatalog_server</b></a> <br><nobr>same <a href="../kernel/navigating_topics.htm"><b>1</b></a> <a href="../kernel/displaying_studies.htm"><b>2</b></a> <a href="../kernel/using_registry.htm"><b>3</b></a> <a href="../kernel/using_catalog_generator.htm"><b>4</b></a> <a href="../kernel/setting_preferences.htm"><b>5</b></a> <a href="../kernel/saving_a_study.htm"><b>6</b></a> <a href="../kernel/salome_pro_desktop.htm"><b>7</b></a> </nobr><br><nobr>save <a href="../kernel/readme.html"><b>1</b></a> <a href="../kernel/introduction.htm"><b>2</b></a> <a href="../kernel/setting_preferences.htm"><b>3</b></a> <a href="../kernel/saving_a_study.htm"><b>4</b></a> </nobr><br><nobr>saved <a href="../setting_preferences.htm"><b>1</b></a> <a href="../kernel/setting_preferences.htm"><b>2</b></a> <a href="../kernel/saving_a_study.htm"><b>3</b></a> </nobr><br><nobr>saves <a href="../viewers.htm"><b>1</b></a> <a href="../kernel/salome_pro_desktop.htm"><b>2</b></a> </nobr><br><nobr>saving <a href="../kernel/introduction_to_iapp.htm"><b>1</b></a> <a href="../kernel/about_salome_pro_architecture.htm"><b>2</b></a> <a href="../kernel/saving_a_study.htm"><b>3</b></a> <a href="../kernel/salome_pro_desktop.htm"><b>4</b></a> </nobr><br><nobr><a name="bms_SC"></a><a name="subkey_SC"></a>scalar <a href="../post-pro_preferences.htm"><b>1</b></a> <a href="../mesh_preferences.htm"><b>2</b></a> </nobr><br><nobr>scale <a href="../kernel/about_salome_pro_architecture.htm"><b>1</b></a> <a href="../kernel/setting_preferences.htm"><b>2</b></a> </nobr><br><nobr>scaling <a href="../viewers.htm"><b>1</b></a> <a href="../post-pro_preferences.htm"><b>2</b></a> </nobr><br><a href="../viewers.htm"><b>scene</b></a> <br><a href="../kernel/introduction.htm"><b>schemas</b></a> <br><a href="../kernel/readme.html"><b>scheme</b></a> <br><nobr>schemes <a href="../kernel/introduction.htm"><b>1</b></a> <a href="../kernel/about_salome_pro_architecture.htm"><b>2</b></a> </nobr><br><a href="../kernel/about_salome_pro_architecture.htm"><b>scientific</b></a> <br><a href="../kernel/displaying_studies.htm"><b>screen</b></a> <br><nobr>script <a href="../kernel/running_salome_pro.htm"><b>1</b></a> <a href="../kernel/readme.html"><b>2</b></a> <a href="../kernel/using_catalog_generator.htm"><b>3</b></a> <a href="../kernel/setting_preferences.htm"><b>4</b></a> </nobr><br><nobr>scripts <a href="../kernel/readme.html"><b>1</b></a> <a href="../kernel/about_salome_pro_architecture.htm"><b>2</b></a> <a href="../kernel/using_catalog_generator.htm"><b>3</b></a> </nobr><br><a href="../kernel/getting_properties_of_the_study.htm"><b>scroll</b></a> <br><nobr><a name="bms_SE"></a><a name="subkey_SE"></a>search <a href="../kernel/readme.html"><b>1</b></a> <a href="../kernel/opening_studies.htm"><b>2</b></a> <a href="../kernel/about_salome_pro_help_system.htm"><b>3</b></a> <a href="../kernel/using_left-hand_tabs.htm"><b>4</b></a> <a href="../kernel/saving_a_study.htm"><b>5</b></a> </nobr><br><a href="../kernel/using_left-hand_tabs.htm"><b>searching</b></a> <br><a href="../kernel/readme.html"><b>second</b></a> <br><a href="../kernel/readme.html"><b>seconds</b></a> <br><nobr>section <a href="../kernel/readme.html"><b>1</b></a> <a href="../kernel/setting_preferences.htm"><b>2</b></a> </nobr><br><nobr>sections <a href="../kernel/readme.html"><b>1</b></a> <a href="../kernel/salome_pro_desktop.htm"><b>2</b></a> </nobr><br><a href="../kernel/readme.html"><b>sectionthis</b></a> <br><a href="../kernel/readme.html"><b>sed</b></a> <br><nobr>see <a href="../kernel/readme.html"><b>1</b></a> <a href="../kernel/opening_studies.htm"><b>2</b></a> <a href="../kernel/getting_properties_of_the_study.htm"><b>3</b></a> <a href="../kernel/displaying_studies.htm"><b>4</b></a> <a href="../kernel/creating_a_new_study.htm"><b>5</b></a> <a href="../geom_preferences.htm"><b>6</b></a> <a href="../viewers.htm"><b>7</b></a> <a href="../kernel/using_object_browser.htm"><b>8</b></a> <a href="../kernel/using_catalog_generator.htm"><b>9</b></a> <a href="../kernel/setting_preferences.htm"><b>10</b></a> <a href="../kernel/saving_a_study.htm"><b>11</b></a> </nobr><br><nobr>select <a href="../kernel/readme.html"><b>1</b></a> <a href="../kernel/opening_studies.htm"><b>2</b></a> <a href="../kernel/getting_properties_of_the_study.htm"><b>3</b></a> <a href="../kernel/displaying_studies.htm"><b>4</b></a> <a href="../kernel/creating_a_new_study.htm"><b>5</b></a> <a href="../geom_preferences.htm"><b>6</b></a> <a href="../viewers.htm"><b>7</b></a> <a href="../kernel/using_left-hand_tabs.htm"><b>8</b></a> <a href="../kernel/setting_preferences.htm"><b>9</b></a> <a href="../kernel/saving_a_study.htm"><b>10</b></a> </nobr><br><a href="../kernel/salome_pro_desktop.htm"><b>selectall</b></a> <br><nobr>selected <a href="../kernel/readme.html"><b>1</b></a> <a href="../viewers.htm"><b>2</b></a> <a href="../mesh_preferences.htm"><b>3</b></a> <a href="../kernel/setting_preferences.htm"><b>4</b></a> </nobr><br><a href="../kernel/readme.html"><b>selecting</b></a> <br><nobr>selection <a href="../kernel/introduction_to_iapp.htm"><b>1</b></a> <a href="../mesh_preferences.htm"><b>2</b></a> <a href="../kernel/setting_preferences.htm"><b>3</b></a> </nobr><br><a href="../kernel/readme.html"><b>sends</b></a> <br><nobr>sensitive <a href="../kernel/displaying_hiding_toolbars.htm"><b>1</b></a> <a href="../kernel/using_object_browser.htm"><b>2</b></a> <a href="../kernel/salome_pro_desktop.htm"><b>3</b></a> </nobr><br><a href="../kernel/salome_pro_desktop.htm"><b>separate</b></a> <br><nobr>separated <a href="../kernel/readme.html"><b>1</b></a> <a href="../kernel/about_salome_pro_architecture.htm"><b>2</b></a> </nobr><br><a href="../kernel/about_salome_pro_architecture.htm"><b>server</b></a> <br><nobr>servers <a href="../kernel/running_salome_pro.htm"><b>1</b></a> <a href="../kernel/about_salome_pro_architecture.htm"><b>2</b></a> </nobr><br><a href="../kernel/using_catalog_generator.htm"><b>serves</b></a> <br><a href="../kernel/readme.html"><b>service</b></a> <br><nobr>services <a href="../kernel/about_salome_pro_architecture.htm"><b>1</b></a> <a href="../kernel/using_catalog_generator.htm"><b>2</b></a> </nobr><br><nobr>session <a href="../kernel/opening_studies.htm"><b>1</b></a> <a href="../setting_preferences.htm"><b>2</b></a> <a href="../kernel/using_registry.htm"><b>3</b></a> <a href="../kernel/using_object_browser.htm"><b>4</b></a> <a href="../kernel/setting_preferences.htm"><b>5</b></a> <a href="../kernel/saving_a_study.htm"><b>6</b></a> </nobr><br><nobr>sessions <a href="../geom_preferences.htm"><b>1</b></a> <a href="../post-pro_preferences.htm"><b>2</b></a> <a href="../mesh_preferences.htm"><b>3</b></a> </nobr><br><nobr>set <a href="../kernel/running_salome_pro.htm"><b>1</b></a> <a href="../kernel/readme.html"><b>2</b></a> <a href="../kernel/about_salome_pro_help_system.htm"><b>3</b></a> <a href="../geom_preferences.htm"><b>4</b></a> <a href="../setting_preferences.htm"><b>5</b></a> <a href="../post-pro_preferences.htm"><b>6</b></a> <a href="../mesh_preferences.htm"><b>7</b></a> <a href="../kernel/using_registry.htm"><b>8</b></a> <a href="../kernel/setting_preferences.htm"><b>9</b></a> <a href="../kernel/salome_pro_desktop.htm"><b>10</b></a> </nobr><br><nobr>sets <a href="../kernel/readme.html"><b>1</b></a> <a href="../kernel/introduction.htm"><b>2</b></a> </nobr><br><nobr>setting <a href="../kernel/readme.html"><b>1</b></a> <a href="../kernel/getting_properties_of_the_study.htm"><b>2</b></a> <a href="../setting_preferences.htm"><b>3</b></a> <a href="../kernel/using_object_browser.htm"><b>4</b></a> <a href="../kernel/setting_preferences.htm"><b>5</b></a> <a href="../kernel/saving_a_study.htm"><b>6</b></a> </nobr><br><nobr>settings <a href="../kernel/readme.html"><b>1</b></a> <a href="../geom_preferences.htm"><b>2</b></a> <a href="../viewers.htm"><b>3</b></a> <a href="../setting_preferences.htm"><b>4</b></a> <a href="../post-pro_preferences.htm"><b>5</b></a> <a href="../mesh_preferences.htm"><b>6</b></a> <a href="../kernel/setting_preferences.htm"><b>7</b></a> <a href="../kernel/saving_a_study.htm"><b>8</b></a> <a href="../kernel/salome_pro_desktop.htm"><b>9</b></a> </nobr><br><a href="../kernel/introduction.htm"><b>severe</b></a> <br><br><br></p><p class="ftsbody" align="center"><a href="whlstf8.htm" target="_self" title="previous search group"><b>&gt;&gt;</b></a>\r
+<a name="bm_P"></a><a name="subkey_P{"></a><a href="../kernel/running_salome_pro.htm"><b>p</b></a> <br><nobr><a name="bms_PA"></a><a name="subkey_PA"></a>package <a href="../kernel/running_salome_pro.htm"><b>1</b></a> <a href="../kernel/readme.html"><b>2</b></a> <a href="../kernel/using_catalog_generator.htm"><b>3</b></a> </nobr><br><a href="../kernel/readme.html"><b>packages</b></a> <br><a href="../kernel/readme.html"><b>page</b></a> <br><nobr>pages <a href="../kernel/readme.html"><b>1</b></a> <a href="../kernel/using_left-hand_tabs.htm"><b>2</b></a> </nobr><br><nobr>pane <a href="../kernel/navigating_topics.htm"><b>1</b></a> <a href="../kernel/using_left-hand_tabs.htm"><b>2</b></a> </nobr><br><a href="../kernel/saving_a_study.htm"><b>panning</b></a> <br><a href="../kernel/about_salome_pro_architecture.htm"><b>parallel</b></a> <br><nobr>parameter <a href="../kernel/readme.html"><b>1</b></a> <a href="../kernel/using_catalog_generator.htm"><b>2</b></a> </nobr><br><nobr>parameters <a href="../kernel/readme.html"><b>1</b></a> <a href="../kernel/about_salome_pro_architecture.htm"><b>2</b></a> <a href="../select_color_and_font.htm"><b>3</b></a> <a href="../post-pro_preferences.htm"><b>4</b></a> <a href="../kernel/using_catalog_generator.htm"><b>5</b></a> <a href="../kernel/setting_preferences.htm"><b>6</b></a> </nobr><br><a href="../post-pro_preferences.htm"><b>parent</b></a> <br><nobr>part <a href="../kernel/readme.html"><b>1</b></a> <a href="../kernel/displaying_studies.htm"><b>2</b></a> </nobr><br><a href="../kernel/saving_a_study.htm"><b>particular</b></a> <br><a href="../kernel/introduction.htm"><b>particularly</b></a> <br><nobr>parts <a href="../kernel/displaying_studies.htm"><b>1</b></a> <a href="../kernel/salome_pro_desktop.htm"><b>2</b></a> </nobr><br><a href="../kernel/introduction_to_salome_pro.htm"><b>party</b></a> <br><a href="../kernel/readme.html"><b>pass</b></a> <br><nobr>paste <a href="../kernel/editing_studies.htm"><b>1</b></a> <a href="../kernel/salome_pro_desktop.htm"><b>2</b></a> </nobr><br><a href="../kernel/salome_pro_desktop.htm"><b>pasting</b></a> <br><a href="../post-pro_preferences.htm"><b>patent</b></a> <br><nobr>path <a href="../kernel/readme.html"><b>1</b></a> <a href="../post-pro_preferences.htm"><b>2</b></a> </nobr><br><a name="bms_PC"></a><a name="subkey_PC"></a><a href="../kernel/about_salome_pro_architecture.htm"><b>pc</b></a> <br><a name="bms_PE"></a><a name="subkey_PE"></a><a href="../post-pro_preferences.htm"><b>per</b></a> <br><nobr>perform <a href="../kernel/readme.html"><b>1</b></a> <a href="../kernel/introduction.htm"><b>2</b></a> <a href="../post-pro_preferences.htm"><b>3</b></a> </nobr><br><nobr>performance <a href="../kernel/introduction.htm"><b>1</b></a> <a href="../kernel/getting_started2.htm"><b>2</b></a> <a href="../kernel/about_salome_pro_architecture.htm"><b>3</b></a> </nobr><br><nobr>performed <a href="../kernel/readme.html"><b>1</b></a> <a href="../post-pro_preferences.htm"><b>2</b></a> <a href="../mesh_preferences.htm"><b>3</b></a> </nobr><br><a href="../kernel/readme.html"><b>permission</b></a> <br><a name="bms_PH"></a><a name="subkey_PH"></a><a href="../kernel/about_salome_pro_architecture.htm"><b>phenomena</b></a> <br><a href="../kernel/using_left-hand_tabs.htm"><b>phrases</b></a> <br><nobr>physical <a href="../kernel/introduction_to_salome_pro.htm"><b>1</b></a> <a href="../kernel/introduction.htm"><b>2</b></a> <a href="../kernel/about_salome_pro_architecture.htm"><b>3</b></a> </nobr><br><a href="../kernel/introduction.htm"><b>physics</b></a> <br><a name="bms_PI"></a><a name="subkey_PI"></a><a href="../kernel/readme.html"><b>pick</b></a> <br><a href="../post-pro_preferences.htm"><b>picking</b></a> <br><a href="../kernel/readme.html"><b>picks</b></a> <br><a href="../kernel/readme.html"><b>pickup</b></a> <br><a href="../kernel/readme.html"><b>pickup_env</b></a> <br><a href="../kernel/readme.html"><b>pickup_env_flag</b></a> <br><a href="../kernel/readme.html"><b>pickupenv</b></a> <br><a href="../kernel/getting_properties_of_the_study.htm"><b>picture</b></a> <br><a href="../kernel/using_registry.htm"><b>pid</b></a> <br><a href="../kernel/about_salome_pro_architecture.htm"><b>piece</b></a> <br><a href="../post-pro_preferences.htm"><b>pixels</b></a> <br><nobr><a name="bms_PL"></a><a name="subkey_PL"></a>place <a href="../kernel/readme.html"><b>1</b></a> <a href="../kernel/displaying_studies.htm"><b>2</b></a> <a href="../kernel/salome_pro_desktop.htm"><b>3</b></a> </nobr><br><nobr>placed <a href="../kernel/displaying_studies.htm"><b>1</b></a> <a href="../introduction_to_gui.htm"><b>2</b></a> <a href="../kernel/salome_pro_desktop.htm"><b>3</b></a> </nobr><br><nobr>placement <a href="../post-pro_preferences.htm"><b>1</b></a> <a href="../mesh_preferences.htm"><b>2</b></a> </nobr><br><nobr>platform <a href="../kernel/running_salome_pro.htm"><b>1</b></a> <a href="../kernel/readme.html"><b>2</b></a> <a href="../kernel/introduction_to_salome_pro.htm"><b>3</b></a> <a href="../kernel/introduction.htm"><b>4</b></a> <a href="../kernel/getting_started2.htm"><b>5</b></a> <a href="../kernel/displaying_studies.htm"><b>6</b></a> <a href="../kernel/about_salome_pro_help_system.htm"><b>7</b></a> <a href="../kernel/about_salome_pro_architecture.htm"><b>8</b></a> <a href="../introduction_to_gui.htm"><b>9</b></a> <a href="../dump_study.htm"><b>10</b></a> <a href="../kernel/using_registry.htm"><b>11</b></a> <a href="../kernel/using_catalog_generator.htm"><b>12</b></a> <a href="../kernel/saving_a_study.htm"><b>13</b></a> <a href="../kernel/salome_pro_desktop.htm"><b>14</b></a> </nobr><br><a href="../kernel/readme.html"><b>platforms</b></a> <br><a href="../dump_study.htm"><b>played</b></a> <br><a href="../kernel/readme.html"><b>please</b></a> <br><nobr>plot <a href="../kernel/displaying_studies.htm"><b>1</b></a> <a href="../introduction_to_gui.htm"><b>2</b></a> </nobr><br><nobr>plot2d <a href="../kernel/creating_a_new_study.htm"><b>1</b></a> <a href="../kernel/setting_preferences.htm"><b>2</b></a> </nobr><br><a href="../introduction_to_gui.htm"><b>plug</b></a> <br><a name="bms_PO"></a><a name="subkey_PO"></a><a href="../kernel/readme.html"><b>po</b></a> <br><nobr>point <a href="../kernel/about_salome_pro_architecture.htm"><b>1</b></a> <a href="../post-pro_preferences.htm"><b>2</b></a> <a href="../mesh_preferences.htm"><b>3</b></a> </nobr><br><nobr>points <a href="../kernel/readme.html"><b>1</b></a> <a href="../introduction_to_gui.htm"><b>2</b></a> <a href="../post-pro_preferences.htm"><b>3</b></a> <a href="../kernel/setting_preferences.htm"><b>4</b></a> </nobr><br><nobr>pop <a href="../kernel/opening_studies.htm"><b>1</b></a> <a href="../kernel/navigating_topics.htm"><b>2</b></a> <a href="../kernel/using_object_browser.htm"><b>3</b></a> <a href="../kernel/salome_pro_desktop.htm"><b>4</b></a> </nobr><br><a href="../kernel/navigating_topics.htm"><b>popup</b></a> <br><a href="../kernel/navigating_topics.htm"><b>popups</b></a> <br><a href="../kernel/running_salome_pro.htm"><b>port</b></a> <br><a href="../kernel/running_salome_pro.htm"><b>portkill</b></a> <br><nobr>position <a href="../post-pro_preferences.htm"><b>1</b></a> <a href="../kernel/setting_preferences.htm"><b>2</b></a> <a href="../kernel/saving_a_study.htm"><b>3</b></a> <a href="../kernel/salome_pro_desktop.htm"><b>4</b></a> </nobr><br><nobr>positions <a href="../post-pro_preferences.htm"><b>1</b></a> <a href="../kernel/setting_preferences.htm"><b>2</b></a> <a href="../kernel/saving_a_study.htm"><b>3</b></a> <a href="../kernel/salome_pro_desktop.htm"><b>4</b></a> </nobr><br><a href="../kernel/salome_pro_desktop.htm"><b>positively</b></a> <br><nobr>possibility <a href="../kernel/running_salome_pro.htm"><b>1</b></a> <a href="../kernel/readme.html"><b>2</b></a> <a href="../kernel/about_salome_pro_architecture.htm"><b>3</b></a> <a href="../dump_study.htm"><b>4</b></a> <a href="../select_color_and_font.htm"><b>5</b></a> <a href="../kernel/using_catalog_generator.htm"><b>6</b></a> </nobr><br><nobr>possible <a href="../kernel/readme.html"><b>1</b></a> <a href="../kernel/about_salome_pro_architecture.htm"><b>2</b></a> <a href="../dump_study.htm"><b>3</b></a> <a href="../select_color_and_font.htm"><b>4</b></a> <a href="../kernel/using_object_browser.htm"><b>5</b></a> <a href="../kernel/saving_a_study.htm"><b>6</b></a> <a href="../kernel/salome_pro_desktop.htm"><b>7</b></a> </nobr><br><nobr>post <a href="../kernel/introduction_to_salome_pro.htm"><b>1</b></a> <a href="../kernel/introduction.htm"><b>2</b></a> <a href="../kernel/about_salome_pro_architecture.htm"><b>3</b></a> <a href="../post-pro_preferences.htm"><b>4</b></a> <a href="../kernel/saving_a_study.htm"><b>5</b></a> <a href="../kernel/salome_pro_desktop.htm"><b>6</b></a> </nobr><br><a href="../introduction_to_gui.htm"><b>powerful</b></a> <br><nobr><a name="bms_PR"></a><a name="subkey_PR"></a>pre <a href="../kernel/introduction_to_salome_pro.htm"><b>1</b></a> <a href="../kernel/introduction.htm"><b>2</b></a> </nobr><br><a href="../mesh_preferences.htm"><b>precision</b></a> <br><a href="../kernel/readme.html"><b>precompiled</b></a> <br><nobr>predefined <a href="../kernel/readme.html"><b>1</b></a> <a href="../kernel/about_salome_pro_architecture.htm"><b>2</b></a> <a href="../select_color_and_font.htm"><b>3</b></a> </nobr><br><a href="../kernel/running_salome_pro.htm"><b>preferable</b></a> <br><nobr>preferences <a href="../geom_preferences.htm"><b>1</b></a> <a href="../setting_preferences.htm"><b>2</b></a> <a href="../select_color_and_font.htm"><b>3</b></a> <a href="../post-pro_preferences.htm"><b>4</b></a> <a href="../mesh_preferences.htm"><b>5</b></a> <a href="../kernel/using_object_browser.htm"><b>6</b></a> <a href="../kernel/setting_preferences.htm"><b>7</b></a> </nobr><br><a href="../kernel/readme.html"><b>prefix</b></a> <br><a href="../kernel/readme.html"><b>preinstalled</b></a> <br><a href="../kernel/readme.html"><b>preliminary</b></a> <br><a href="../kernel/readme.html"><b>prerequisite</b></a> <br><a href="../kernel/readme.html"><b>prerequisites</b></a> <br><a href="../mesh_preferences.htm"><b>preselected</b></a> <br><a href="../mesh_preferences.htm"><b>preselection</b></a> <br><a href="../post-pro_preferences.htm"><b>present</b></a> <br><nobr>presentation <a href="../kernel/creating_a_new_study.htm"><b>1</b></a> <a href="../post-pro_preferences.htm"><b>2</b></a> <a href="../mesh_preferences.htm"><b>3</b></a> </nobr><br><nobr>presentations <a href="../post-pro_preferences.htm"><b>1</b></a> <a href="../kernel/setting_preferences.htm"><b>2</b></a> <a href="../kernel/salome_pro_desktop.htm"><b>3</b></a> </nobr><br><a href="../mesh_preferences.htm"><b>presented</b></a> <br><nobr>press <a href="../kernel/readme.html"><b>1</b></a> <a href="../kernel/setting_preferences.htm"><b>2</b></a> </nobr><br><a href="../post-pro_preferences.htm"><b>pressed</b></a> <br><nobr>pressing <a href="../kernel/readme.html"><b>1</b></a> <a href="../post-pro_preferences.htm"><b>2</b></a> </nobr><br><a href="../post-pro_preferences.htm"><b>prevents</b></a> <br><a href="../select_color_and_font.htm"><b>preview</b></a> <br><nobr>previous <a href="../kernel/readme.html"><b>1</b></a> <a href="../kernel/opening_studies.htm"><b>2</b></a> </nobr><br><nobr>previously <a href="../kernel/readme.html"><b>1</b></a> <a href="../kernel/opening_studies.htm"><b>2</b></a> <a href="../kernel/introduction_to_salome_pro.htm"><b>3</b></a> <a href="../kernel/saving_a_study.htm"><b>4</b></a> </nobr><br><a href="../post-pro_preferences.htm"><b>primitive</b></a> <br><a href="../post-pro_preferences.htm"><b>primitives</b></a> <br><nobr>print <a href="../kernel/running_salome_pro.htm"><b>1</b></a> <a href="../kernel/readme.html"><b>2</b></a> </nobr><br><a href="../kernel/readme.html"><b>print_env</b></a> <br><a href="../kernel/readme.html"><b>prints</b></a> <br><a href="../kernel/introduction.htm"><b>priority</b></a> <br><nobr>pro <a href="../kernel/introduction_to_salome_pro.htm"><b>1</b></a> <a href="../kernel/about_salome_pro_architecture.htm"><b>2</b></a> <a href="../post-pro_preferences.htm"><b>3</b></a> <a href="../kernel/saving_a_study.htm"><b>4</b></a> <a href="../kernel/salome_pro_desktop.htm"><b>5</b></a> </nobr><br><a href="../kernel/creating_a_new_study.htm"><b>probably</b></a> <br><nobr>problem <a href="../kernel/readme.html"><b>1</b></a> <a href="../kernel/introduction.htm"><b>2</b></a> <a href="../dump_study.htm"><b>3</b></a> </nobr><br><a href="../kernel/readme.html"><b>problems</b></a> <br><nobr>procedure <a href="../kernel/running_salome_pro.htm"><b>1</b></a> <a href="../kernel/readme.html"><b>2</b></a> </nobr><br><nobr>proceed <a href="../kernel/readme.html"><b>1</b></a> <a href="../kernel/getting_started2.htm"><b>2</b></a> </nobr><br><nobr>process <a href="../kernel/readme.html"><b>1</b></a> <a href="../kernel/introduction.htm"><b>2</b></a> <a href="../kernel/about_salome_pro_architecture.htm"><b>3</b></a> <a href="../dump_study.htm"><b>4</b></a> <a href="../kernel/using_registry.htm"><b>5</b></a> </nobr><br><a href="../post-pro_preferences.htm"><b>processed</b></a> <br><a href="../kernel/using_registry.htm"><b>processes</b></a> <br><nobr>processing <a href="../kernel/readme.html"><b>1</b></a> <a href="../kernel/introduction_to_salome_pro.htm"><b>2</b></a> <a href="../kernel/introduction.htm"><b>3</b></a> <a href="../introduction_to_gui.htm"><b>4</b></a> </nobr><br><nobr>processors <a href="../kernel/introduction.htm"><b>1</b></a> <a href="../kernel/about_salome_pro_architecture.htm"><b>2</b></a> </nobr><br><a href="../post-pro_preferences.htm"><b>produces</b></a> <br><a href="../kernel/readme.html"><b>product</b></a> <br><a href="../kernel/readme.html"><b>product_context</b></a> <br><a href="../kernel/readme.html"><b>product_description</b></a> <br><a href="../kernel/readme.html"><b>product_name</b></a> <br><a href="../kernel/readme.html"><b>product_script_name</b></a> <br><a href="../kernel/readme.html"><b>product_version</b></a> <br><nobr>productivity <a href="../kernel/about_salome_pro_architecture.htm"><b>1</b></a> <a href="../dump_study.htm"><b>2</b></a> </nobr><br><nobr>products <a href="../kernel/running_salome_pro.htm"><b>1</b></a> <a href="../kernel/readme.html"><b>2</b></a> <a href="../kernel/introduction.htm"><b>3</b></a> </nobr><br><a href="../kernel/readme.html"><b>products_directory</b></a> <br><a href="../kernel/running_salome_pro.htm"><b>profile</b></a> <br><a href="../kernel/readme.html"><b>program</b></a> <br><a href="../kernel/introduction.htm"><b>programmatic</b></a> <br><a href="../kernel/about_salome_pro_architecture.htm"><b>programming</b></a> <br><nobr>progress <a href="../kernel/readme.html"><b>1</b></a> <a href="../post-pro_preferences.htm"><b>2</b></a> </nobr><br><a href="../post-pro_preferences.htm"><b>progressive</b></a> <br><a href="../kernel/readme.html"><b>prompted</b></a> <br><a href="../kernel/running_salome_pro.htm"><b>prompting</b></a> <br><a href="../dump_study.htm"><b>prone</b></a> <br><a href="../kernel/readme.html"><b>proper</b></a> <br><a href="../kernel/readme.html"><b>properly</b></a> <br><nobr>properties <a href="../kernel/introduction_to_salome_pro.htm"><b>1</b></a> <a href="../kernel/introduction.htm"><b>2</b></a> <a href="../kernel/getting_properties_of_the_study.htm"><b>3</b></a> <a href="../post-pro_preferences.htm"><b>4</b></a> <a href="../kernel/setting_preferences.htm"><b>5</b></a> </nobr><br><a href="../kernel/readme.html"><b>proposed</b></a> <br><a href="../introduction_to_gui.htm"><b>proposes</b></a> <br><nobr>provide <a href="../kernel/readme.html"><b>1</b></a> <a href="../kernel/editing_studies.htm"><b>2</b></a> </nobr><br><nobr>provided <a href="../kernel/running_salome_pro.htm"><b>1</b></a> <a href="../kernel/readme.html"><b>2</b></a> <a href="../kernel/introduction.htm"><b>3</b></a> <a href="../kernel/about_salome_pro_architecture.htm"><b>4</b></a> <a href="../kernel/using_catalog_generator.htm"><b>5</b></a> </nobr><br><nobr>provides <a href="../kernel/readme.html"><b>1</b></a> <a href="../kernel/introduction_to_salome_pro.htm"><b>2</b></a> <a href="../kernel/introduction.htm"><b>3</b></a> <a href="../kernel/about_salome_pro_architecture.htm"><b>4</b></a> <a href="../introduction_to_gui.htm"><b>5</b></a> <a href="../select_color_and_font.htm"><b>6</b></a> <a href="../post-pro_preferences.htm"><b>7</b></a> <a href="../kernel/using_catalog_generator.htm"><b>8</b></a> </nobr><br><nobr>providing <a href="../kernel/using_registry.htm"><b>1</b></a> <a href="../kernel/using_left-hand_tabs.htm"><b>2</b></a> </nobr><br><a name="bms_PU"></a><a name="subkey_PU"></a><a href="../dump_study.htm"><b>publish</b></a> <br><nobr>published <a href="../dump_study.htm"><b>1</b></a> <a href="../kernel/saving_a_study.htm"><b>2</b></a> </nobr><br><a href="../kernel/about_salome_pro_architecture.htm"><b>pure</b></a> <br><a href="../kernel/getting_started2.htm"><b>purpose</b></a> <br><a href="../kernel/using_object_browser.htm"><b>purposes</b></a> <br><br><br></p><p class="ftsbody" align="center"><a href="whlstf8.htm" target="_self" title="previous search group"><b>&gt;&gt;</b></a>\r
 \r
 </body>\r
 \r
index 8fe023ad906a7c98d8269699bc1b621330fa46de..830511800496d52989039163ae41c2b1c59e3d75 100755 (executable)
@@ -33,9 +33,13 @@ A:hover {color:Navy; } A:hover {font-family:Tahoma; } A:hover {font-size:8pt; }
 <body marginheight="0"  marginwidth="0" bgproperties="fixed">\r
 <p class="ftsbody" align="center"><a href="whlstf7.htm" target="_self" title="previous search group"><b>&lt;&lt;</b></a><br><br></p>\r
 <p class="ftsbody" >\r
-<a name="bms_SH"></a><a name="subkey_SH"></a><a href="../kernel/readme.html"><b>sh</b></a> <br><nobr>shading <a href="../geom_preferences.htm"><b>1</b></a> <a href="../mesh_preferences.htm"><b>2</b></a> </nobr><br><a href="../viewers.htm"><b>shapes</b></a> <br><nobr>shell <a href="../kernel/running_salome_pro.htm"><b>1</b></a> <a href="../kernel/readme.html"><b>2</b></a> <a href="../kernel/introduction_to_salome_pro.htm"><b>3</b></a> <a href="../kernel/introduction_to_iapp.htm"><b>4</b></a> </nobr><br><nobr>short <a href="../kernel/readme.html"><b>1</b></a> <a href="../kernel/using_left-hand_tabs.htm"><b>2</b></a> </nobr><br><a href="../kernel/displaying_studies.htm"><b>shot</b></a> <br><nobr>should <a href="../kernel/readme.html"><b>1</b></a> <a href="../kernel/getting_started2.htm"><b>2</b></a> <a href="../kernel/using_catalog_generator.htm"><b>3</b></a> <a href="../kernel/saving_a_study.htm"><b>4</b></a> </nobr><br><a href="../viewers.htm"><b>show</b></a> <br><nobr>shown <a href="../kernel/readme.html"><b>1</b></a> <a href="../kernel/getting_properties_of_the_study.htm"><b>2</b></a> </nobr><br><nobr>shows <a href="../kernel/readme.html"><b>1</b></a> <a href="../viewers.htm"><b>2</b></a> <a href="../kernel/using_object_browser.htm"><b>3</b></a> </nobr><br><a href="../mesh_preferences.htm"><b>shrink</b></a> <br><a name="bms_SI"></a><a name="subkey_SI"></a><a href="../kernel/readme.html"><b>signal</b></a> <br><a href="../kernel/introduction_to_iapp.htm"><b>signals</b></a> <br><a href="../kernel/readme.html"><b>signature</b></a> <br><a href="../kernel/readme.html"><b>sigterm</b></a> <br><a href="../kernel/about_salome_pro_architecture.htm"><b>simple</b></a> <br><a href="../kernel/readme.html"><b>simplify</b></a> <br><a href="../kernel/setting_preferences.htm"><b>simply</b></a> <br><a href="../kernel/about_salome_pro_architecture.htm"><b>simulate</b></a> <br><a href="../kernel/introduction.htm"><b>simulation</b></a> <br><nobr>simulations <a href="../kernel/introduction_to_salome_pro.htm"><b>1</b></a> <a href="../kernel/introduction.htm"><b>2</b></a> </nobr><br><nobr>simultaneously <a href="../kernel/readme.html"><b>1</b></a> <a href="../kernel/getting_started2.htm"><b>2</b></a> <a href="../kernel/displaying_studies.htm"><b>3</b></a> </nobr><br><nobr>since <a href="../kernel/readme.html"><b>1</b></a> <a href="../kernel/introduction_to_iapp.htm"><b>2</b></a> </nobr><br><a href="../kernel/readme.html"><b>single</b></a> <br><a href="../kernel/readme.html"><b>sip</b></a> <br><a href="../kernel/readme.html"><b>sipdir</b></a> <br><a href="../kernel/about_salome_pro_architecture.htm"><b>situations</b></a> <br><nobr>size <a href="../kernel/displaying_studies.htm"><b>1</b></a> <a href="../post-pro_preferences.htm"><b>2</b></a> <a href="../mesh_preferences.htm"><b>3</b></a> <a href="../kernel/setting_preferences.htm"><b>4</b></a> <a href="../kernel/saving_a_study.htm"><b>5</b></a> <a href="../kernel/salome_pro_desktop.htm"><b>6</b></a> </nobr><br><nobr>sizes <a href="../kernel/saving_a_study.htm"><b>1</b></a> <a href="../kernel/salome_pro_desktop.htm"><b>2</b></a> </nobr><br><a href="../kernel/setting_preferences.htm"><b>sizing</b></a> <br><a name="bms_SK"></a><a name="subkey_SK"></a><a href="../kernel/readme.html"><b>skip</b></a> <br><a href="../kernel/readme.html"><b>skipped</b></a> <br><a name="bms_SL"></a><a name="subkey_SL"></a><a href="../kernel/readme.html"><b>slightly</b></a> <br><a name="bms_SM"></a><a name="subkey_SM"></a><a href="../kernel/saving_a_study.htm"><b>small</b></a> <br><nobr>smesh <a href="../kernel/displaying_hiding_toolbars.htm"><b>1</b></a> <a href="../kernel/about_salome_pro_architecture.htm"><b>2</b></a> <a href="../viewers.htm"><b>3</b></a> </nobr><br><a href="../kernel/setting_preferences.htm"><b>smooth</b></a> <br><nobr><a name="bms_SO"></a><a name="subkey_SO"></a>so <a href="../kernel/running_salome_pro.htm"><b>1</b></a> <a href="../kernel/readme.html"><b>2</b></a> <a href="../kernel/editing_studies.htm"><b>3</b></a> <a href="../kernel/about_salome_pro_architecture.htm"><b>4</b></a> <a href="../setting_preferences.htm"><b>5</b></a> <a href="../kernel/using_object_browser.htm"><b>6</b></a> <a href="../kernel/using_left-hand_tabs.htm"><b>7</b></a> </nobr><br><nobr>software <a href="../kernel/introduction_to_salome_pro.htm"><b>1</b></a> <a href="../kernel/introduction.htm"><b>2</b></a> <a href="../kernel/about_salome_pro_architecture.htm"><b>3</b></a> </nobr><br><a href="../kernel/introduction.htm"><b>solution</b></a> <br><a href="../kernel/introduction.htm"><b>solutions</b></a> <br><a href="../kernel/introduction.htm"><b>solver</b></a> <br><nobr>solvers <a href="../kernel/introduction_to_salome_pro.htm"><b>1</b></a> <a href="../kernel/introduction.htm"><b>2</b></a> </nobr><br><a href="../kernel/readme.html"><b>something</b></a> <br><nobr>sort <a href="../kernel/using_object_browser.htm"><b>1</b></a> <a href="../kernel/setting_preferences.htm"><b>2</b></a> </nobr><br><a href="../kernel/readme.html"><b>sort_path</b></a> <br><a href="../kernel/using_object_browser.htm"><b>sorting</b></a> <br><nobr>source <a href="../kernel/running_salome_pro.htm"><b>1</b></a> <a href="../kernel/readme.html"><b>2</b></a> <a href="../kernel/introduction_to_salome_pro.htm"><b>3</b></a> <a href="../kernel/introduction.htm"><b>4</b></a> </nobr><br><a href="../kernel/readme.html"><b>sources</b></a> <br><a name="bms_SP"></a><a name="subkey_SP"></a><a href="../kernel/readme.html"><b>space</b></a> <br><a href="../kernel/readme.html"><b>spaces</b></a> <br><nobr>special <a href="../kernel/running_salome_pro.htm"><b>1</b></a> <a href="../kernel/readme.html"><b>2</b></a> <a href="../kernel/opening_studies.htm"><b>3</b></a> <a href="../kernel/about_salome_pro_architecture.htm"><b>4</b></a> <a href="../setting_preferences.htm"><b>5</b></a> <a href="../kernel/saving_a_study.htm"><b>6</b></a> <a href="../kernel/salome_pro_desktop.htm"><b>7</b></a> </nobr><br><a href="../viewers.htm"><b>specialize</b></a> <br><nobr>specific <a href="../kernel/running_salome_pro.htm"><b>1</b></a> <a href="../kernel/introduction.htm"><b>2</b></a> <a href="../kernel/displaying_hiding_toolbars.htm"><b>3</b></a> <a href="../kernel/about_salome_pro_architecture.htm"><b>4</b></a> <a href="../setting_preferences.htm"><b>5</b></a> <a href="../kernel/using_left-hand_tabs.htm"><b>6</b></a> <a href="../kernel/salome_pro_desktop.htm"><b>7</b></a> </nobr><br><a href="../kernel/introduction_to_salome_pro.htm"><b>specification</b></a> <br><a href="../kernel/about_salome_pro_architecture.htm"><b>specifies</b></a> <br><nobr>specify <a href="../viewers.htm"><b>1</b></a> <a href="../kernel/using_catalog_generator.htm"><b>2</b></a> <a href="../kernel/setting_preferences.htm"><b>3</b></a> <a href="../kernel/saving_a_study.htm"><b>4</b></a> </nobr><br><a href="../geom_preferences.htm"><b>spin</b></a> <br><a href="../kernel/setting_preferences.htm"><b>splines</b></a> <br><a href="../kernel/displaying_studies.htm"><b>split</b></a> <br><a name="bms_ST"></a><a name="subkey_ST"></a><a href="../kernel/introduction_to_iapp.htm"><b>standalone</b></a> <br><nobr>standard <a href="../kernel/readme.html"><b>1</b></a> <a href="../kernel/opening_studies.htm"><b>2</b></a> <a href="../kernel/introduction_to_iapp.htm"><b>3</b></a> <a href="../kernel/creating_a_new_study.htm"><b>4</b></a> <a href="../kernel/about_salome_pro_architecture.htm"><b>5</b></a> <a href="../kernel/using_catalog_generator.htm"><b>6</b></a> <a href="../kernel/saving_a_study.htm"><b>7</b></a> <a href="../kernel/salome_pro_desktop.htm"><b>8</b></a> </nobr><br><a href="../kernel/readme.html"><b>standard_version</b></a> <br><nobr>start <a href="../kernel/readme.html"><b>1</b></a> <a href="../kernel/getting_started2.htm"><b>2</b></a> </nobr><br><nobr>started <a href="../kernel/readme.html"><b>1</b></a> <a href="../kernel/getting_started2.htm"><b>2</b></a> <a href="../kernel/using_registry.htm"><b>3</b></a> <a href="../kernel/using_catalog_generator.htm"><b>4</b></a> <a href="../kernel/setting_preferences.htm"><b>5</b></a> </nobr><br><nobr>starting <a href="../kernel/readme.html"><b>1</b></a> <a href="../kernel/displaying_studies.htm"><b>2</b></a> <a href="../kernel/about_salome_pro_architecture.htm"><b>3</b></a> <a href="../kernel/using_registry.htm"><b>4</b></a> <a href="../kernel/salome_pro_desktop.htm"><b>5</b></a> </nobr><br><a href="../kernel/readme.html"><b>state</b></a> <br><a href="../kernel/about_salome_pro_architecture.htm"><b>stations</b></a> <br><a href="../kernel/readme.html"><b>status</b></a> <br><nobr>step <a href="../kernel/introduction.htm"><b>1</b></a> <a href="../geom_preferences.htm"><b>2</b></a> <a href="../post-pro_preferences.htm"><b>3</b></a> </nobr><br><nobr>steps <a href="../kernel/readme.html"><b>1</b></a> <a href="../post-pro_preferences.htm"><b>2</b></a> </nobr><br><a href="../kernel/readme.html"><b>still</b></a> <br><nobr>store <a href="../kernel/readme.html"><b>1</b></a> <a href="../kernel/using_catalog_generator.htm"><b>2</b></a> <a href="../kernel/saving_a_study.htm"><b>3</b></a> </nobr><br><nobr>stored <a href="../kernel/readme.html"><b>1</b></a> <a href="../kernel/opening_studies.htm"><b>2</b></a> <a href="../kernel/about_salome_pro_architecture.htm"><b>3</b></a> <a href="../kernel/using_catalog_generator.htm"><b>4</b></a> <a href="../kernel/saving_a_study.htm"><b>5</b></a> </nobr><br><a href="../kernel/saving_a_study.htm"><b>storing</b></a> <br><a href="../kernel/readme.html"><b>strict</b></a> <br><a href="../kernel/readme.html"><b>string</b></a> <br><a href="../kernel/readme.html"><b>strongly</b></a> <br><a href="../kernel/introduction.htm"><b>structural</b></a> <br><nobr>structure <a href="../kernel/readme.html"><b>1</b></a> <a href="../kernel/opening_studies.htm"><b>2</b></a> <a href="../kernel/introduction_to_iapp.htm"><b>3</b></a> <a href="../kernel/about_salome_pro_architecture.htm"><b>4</b></a> <a href="../kernel/using_object_browser.htm"><b>5</b></a> </nobr><br><a href="../kernel/introduction.htm"><b>structures</b></a> <br><nobr>studies <a href="../kernel/opening_studies.htm"><b>1</b></a> <a href="../kernel/introduction_to_iapp.htm"><b>2</b></a> <a href="../kernel/introduction.htm"><b>3</b></a> <a href="../kernel/getting_started2.htm"><b>4</b></a> <a href="../kernel/editing_studies.htm"><b>5</b></a> <a href="../kernel/displaying_studies.htm"><b>6</b></a> <a href="../kernel/creating_a_new_study.htm"><b>7</b></a> <a href="../kernel/saving_a_study.htm"><b>8</b></a> <a href="../kernel/salome_pro_desktop.htm"><b>9</b></a> </nobr><br><nobr>study <a href="../kernel/opening_studies.htm"><b>1</b></a> <a href="../kernel/introduction_to_iapp.htm"><b>2</b></a> <a href="../kernel/introduction.htm"><b>3</b></a> <a href="../kernel/getting_started2.htm"><b>4</b></a> <a href="../kernel/getting_properties_of_the_study.htm"><b>5</b></a> <a href="../kernel/editing_studies.htm"><b>6</b></a> <a href="../kernel/displaying_studies.htm"><b>7</b></a> <a href="../kernel/creating_a_new_study.htm"><b>8</b></a> <a href="../kernel/about_salome_pro_architecture.htm"><b>9</b></a> <a href="../setting_preferences.htm"><b>10</b></a> <a href="../kernel/using_registry.htm"><b>11</b></a> <a href="../kernel/using_object_browser.htm"><b>12</b></a> <a href="../kernel/using_catalog_generator.htm"><b>13</b></a> <a href="../kernel/setting_preferences.htm"><b>14</b></a> <a href="../kernel/saving_a_study.htm"><b>15</b></a> <a href="../kernel/salome_pro_desktop.htm"><b>16</b></a> </nobr><br><a href="../kernel/creating_a_new_study.htm"><b>study1</b></a> <br><a href="../kernel/setting_preferences.htm"><b>style</b></a> <br><nobr><a name="bms_SU"></a><a name="subkey_SU"></a>sub <a href="../kernel/readme.html"><b>1</b></a> <a href="../viewers.htm"><b>2</b></a> <a href="../kernel/using_left-hand_tabs.htm"><b>3</b></a> </nobr><br><nobr>submenu <a href="../kernel/displaying_hiding_toolbars.htm"><b>1</b></a> <a href="../kernel/creating_a_new_study.htm"><b>2</b></a> <a href="../kernel/setting_preferences.htm"><b>3</b></a> </nobr><br><a href="../kernel/setting_preferences.htm"><b>subsets</b></a> <br><a href="../kernel/readme.html"><b>successfully</b></a> <br><a href="../kernel/introduction_to_iapp.htm"><b>suit</b></a> <br><a href="../kernel/readme.html"><b>summarizes</b></a> <br><a href="../kernel/running_salome_pro.htm"><b>superv</b></a> <br><nobr>supervision <a href="../kernel/running_salome_pro.htm"><b>1</b></a> <a href="../kernel/introduction_to_salome_pro.htm"><b>2</b></a> <a href="../kernel/introduction_to_iapp.htm"><b>3</b></a> <a href="../kernel/using_catalog_generator.htm"><b>4</b></a> </nobr><br><a href="../supervisor_preferences.htm"><b>supervisor</b></a> <br><nobr>supplementary <a href="../kernel/using_registry.htm"><b>1</b></a> <a href="../kernel/using_object_browser.htm"><b>2</b></a> </nobr><br><nobr>support <a href="../kernel/readme.html"><b>1</b></a> <a href="../kernel/using_catalog_generator.htm"><b>2</b></a> </nobr><br><a href="../kernel/readme.html"><b>supported</b></a> <br><a href="../kernel/readme.html"><b>supported_installation_modes</b></a> <br><a href="../kernel/introduction.htm"><b>supports</b></a> <br><a href="../kernel/readme.html"><b>supposed</b></a> <br><a href="../kernel/readme.html"><b>sure</b></a> <br><a name="bms_SW"></a><a name="subkey_SW"></a><a href="../post-pro_preferences.htm"><b>sweep</b></a> <br><a href="../post-pro_preferences.htm"><b>sweeping</b></a> <br><a href="../kernel/readme.html"><b>swig</b></a> <br><a href="../kernel/displaying_studies.htm"><b>switch</b></a> <br><a href="../kernel/readme.html"><b>switched</b></a> <br><a href="../kernel/introduction_to_iapp.htm"><b>switching</b></a> <br><nobr><a name="bms_SY"></a><a name="subkey_SY"></a>system <a href="../kernel/readme.html"><b>1</b></a> <a href="../kernel/navigating_topics.htm"><b>2</b></a> <a href="../kernel/about_salome_pro_help_system.htm"><b>3</b></a> <a href="../kernel/about_salome_pro_architecture.htm"><b>4</b></a> <a href="../kernel/using_left-hand_tabs.htm"><b>5</b></a> </nobr><br><nobr>systems <a href="../kernel/introduction.htm"><b>1</b></a> <a href="../kernel/about_salome_pro_architecture.htm"><b>2</b></a> </nobr><br>\r
+<a name="bms_PY"></a><a name="subkey_PY"></a><a href="../kernel/running_salome_pro.htm"><b>py</b></a> <br><a href="../kernel/readme.html"><b>pyqt</b></a> <br><a href="../kernel/readme.html"><b>pyqtdir</b></a> <br><a href="../post-pro_preferences.htm"><b>pyramids</b></a> <br><nobr>python <a href="../kernel/running_salome_pro.htm"><b>1</b></a> <a href="../kernel/readme.html"><b>2</b></a> <a href="../kernel/introduction.htm"><b>3</b></a> <a href="../kernel/displaying_studies.htm"><b>4</b></a> <a href="../kernel/about_salome_pro_architecture.htm"><b>5</b></a> <a href="../introduction_to_gui.htm"><b>6</b></a> <a href="../dump_study.htm"><b>7</b></a> <a href="../kernel/setting_preferences.htm"><b>8</b></a> <a href="../kernel/saving_a_study.htm"><b>9</b></a> <a href="../kernel/salome_pro_desktop.htm"><b>10</b></a> </nobr><br><a href="../kernel/readme.html"><b>pythonhome</b></a> <br>\r
 <br><br>\r
-<nobr><a name="bm_T"></a><a name="subkey_T{"></a>t <a href="../kernel/running_salome_pro.htm"><b>1</b></a> <a href="../kernel/readme.html"><b>2</b></a> <a href="../kernel/editing_studies.htm"><b>3</b></a> <a href="../viewers.htm"><b>4</b></a> <a href="../kernel/using_catalog_generator.htm"><b>5</b></a> <a href="../kernel/setting_preferences.htm"><b>6</b></a> <a href="../kernel/saving_a_study.htm"><b>7</b></a> <a href="../kernel/salome_pro_desktop.htm"><b>8</b></a> </nobr><br><nobr><a name="bms_TA"></a><a name="subkey_TA"></a>tab <a href="../kernel/using_registry.htm"><b>1</b></a> <a href="../kernel/using_left-hand_tabs.htm"><b>2</b></a> </nobr><br><nobr>table <a href="../kernel/readme.html"><b>1</b></a> <a href="../kernel/setting_preferences.htm"><b>2</b></a> </nobr><br><nobr>tabs <a href="../kernel/displaying_studies.htm"><b>1</b></a> <a href="../kernel/using_left-hand_tabs.htm"><b>2</b></a> </nobr><br><a href="../kernel/readme.html"><b>tag</b></a> <br><a href="../kernel/readme.html"><b>tags</b></a> <br><a href="../kernel/introduction.htm"><b>tailored</b></a> <br><a href="../kernel/readme.html"><b>take</b></a> <br><nobr>taken <a href="../kernel/running_salome_pro.htm"><b>1</b></a> <a href="../kernel/readme.html"><b>2</b></a> </nobr><br><a href="../kernel/about_salome_pro_architecture.htm"><b>takes</b></a> <br><a href="../kernel/readme.html"><b>target</b></a> <br><a href="../kernel/readme.html"><b>target_directory</b></a> <br><a href="../kernel/readme.html"><b>target_platform</b></a> <br><a href="../kernel/readme.html"><b>targetdir</b></a> <br><a name="bms_TC"></a><a name="subkey_TC"></a><a href="../kernel/readme.html"><b>tcl</b></a> <br><a href="../kernel/readme.html"><b>tclhome</b></a> <br><a href="../kernel/readme.html"><b>tclsh8</b></a> <br><a name="bms_TE"></a><a name="subkey_TE"></a><a href="../kernel/introduction.htm"><b>technological</b></a> <br><a href="../kernel/about_salome_pro_architecture.htm"><b>technologies</b></a> <br><a href="../kernel/about_salome_pro_architecture.htm"><b>technology</b></a> <br><a href="../kernel/readme.html"><b>temp</b></a> <br><a href="../kernel/readme.html"><b>temp_directory</b></a> <br><a href="../kernel/readme.html"><b>temp_folder</b></a> <br><a href="../kernel/readme.html"><b>tempdir</b></a> <br><a href="../kernel/readme.html"><b>temporary</b></a> <br><a href="../kernel/readme.html"><b>temporarydiskspace</b></a> <br><nobr>term <a href="../kernel/navigating_topics.htm"><b>1</b></a> <a href="../kernel/using_left-hand_tabs.htm"><b>2</b></a> </nobr><br><nobr>terminal <a href="../kernel/running_salome_pro.htm"><b>1</b></a> <a href="../kernel/readme.html"><b>2</b></a> </nobr><br><a href="../kernel/introduction.htm"><b>terms</b></a> <br><nobr>test <a href="../kernel/readme.html"><b>1</b></a> <a href="../kernel/about_salome_pro_architecture.htm"><b>2</b></a> <a href="../kernel/using_catalog_generator.htm"><b>3</b></a> </nobr><br><a href="../kernel/readme.html"><b>tests</b></a> <br><nobr>text <a href="../kernel/readme.html"><b>1</b></a> <a href="../kernel/navigating_topics.htm"><b>2</b></a> <a href="../supervisor_preferences.htm"><b>3</b></a> <a href="../kernel/using_left-hand_tabs.htm"><b>4</b></a> </nobr><br><br><br></p><p class="ftsbody" align="center"><a href="whlstf9.htm" target="_self" title="previous search group"><b>&gt;&gt;</b></a>\r
+<a name="bm_Q"></a><a name="subkey_QG"></a><a href="../kernel/readme.html"><b>qglobal</b></a> <br><a name="bms_QM"></a><a name="subkey_QM"></a><a href="../kernel/readme.html"><b>qm</b></a> <br><a name="bms_QT"></a><a name="subkey_QT"></a><a href="../kernel/readme.html"><b>qt</b></a> <br><a href="../kernel/readme.html"><b>qt_version_str</b></a> <br><a href="../kernel/readme.html"><b>qtdir</b></a> <br><nobr><a name="bms_QU"></a><a name="subkey_QU"></a>quality <a href="../kernel/introduction.htm"><b>1</b></a> <a href="../post-pro_preferences.htm"><b>2</b></a> <a href="../mesh_preferences.htm"><b>3</b></a> </nobr><br><a href="../kernel/introduction.htm"><b>quantities</b></a> <br><a href="../kernel/readme.html"><b>question</b></a> <br><nobr>quick <a href="../kernel/readme.html"><b>1</b></a> <a href="../kernel/using_object_browser.htm"><b>2</b></a> <a href="../kernel/setting_preferences.htm"><b>3</b></a> </nobr><br><nobr>quickly <a href="../kernel/readme.html"><b>1</b></a> <a href="../kernel/setting_preferences.htm"><b>2</b></a> </nobr><br><nobr>quit <a href="../setting_preferences.htm"><b>1</b></a> <a href="../kernel/saving_a_study.htm"><b>2</b></a> </nobr><br><a href="../dump_study.htm"><b>quite</b></a> <br><a href="../kernel/readme.html"><b>quits</b></a> <br><a href="../kernel/readme.html"><b>quoted</b></a> <br><a name="bms_QW"></a><a name="subkey_QW"></a><a href="../kernel/readme.html"><b>qwt</b></a> <br><a href="../kernel/readme.html"><b>qwthome</b></a> <br>\r
+<br><br>\r
+<a name="bm_R"></a><a name="subkey_RA"></a><a href="../kernel/readme.html"><b>radio</b></a> <br><a href="../post-pro_preferences.htm"><b>rainbow</b></a> <br><nobr>range <a href="../kernel/introduction_to_salome_pro.htm"><b>1</b></a> <a href="../post-pro_preferences.htm"><b>2</b></a> </nobr><br><a href="../post-pro_preferences.htm"><b>ranges</b></a> <br><a href="../post-pro_preferences.htm"><b>ranging</b></a> <br><a href="../kernel/about_salome_pro_architecture.htm"><b>rapidly</b></a> <br><a href="../post-pro_preferences.htm"><b>rate</b></a> <br><a href="../dump_study.htm"><b>rather</b></a> <br><a href="../post-pro_preferences.htm"><b>ratio</b></a> <br><nobr><a name="bms_RE"></a><a name="subkey_RE"></a>re <a href="../kernel/navigating_topics.htm"><b>1</b></a> <a href="../dump_study.htm"><b>2</b></a> </nobr><br><a href="../kernel/introduction.htm"><b>reactivity</b></a> <br><nobr>read <a href="../kernel/readme.html"><b>1</b></a> <a href="../kernel/navigating_topics.htm"><b>2</b></a> <a href="../kernel/introduction.htm"><b>3</b></a> </nobr><br><a href="../kernel/navigating_topics.htm"><b>reading</b></a> <br><a href="../kernel/readme.html"><b>readme</b></a> <br><a href="../post-pro_preferences.htm"><b>real</b></a> <br><a href="../kernel/getting_started2.htm"><b>realize</b></a> <br><a href="../post-pro_preferences.htm"><b>reassign</b></a> <br><a href="../setting_preferences.htm"><b>receives</b></a> <br><nobr>recommended <a href="../kernel/readme.html"><b>1</b></a> <a href="../post-pro_preferences.htm"><b>2</b></a> </nobr><br><nobr>record <a href="../kernel/getting_properties_of_the_study.htm"><b>1</b></a> <a href="../post-pro_preferences.htm"><b>2</b></a> </nobr><br><a href="../post-pro_preferences.htm"><b>recorded</b></a> <br><a href="../post-pro_preferences.htm"><b>recorder</b></a> <br><a href="../post-pro_preferences.htm"><b>recording</b></a> <br><a href="../post-pro_preferences.htm"><b>records</b></a> <br><a href="../kernel/using_object_browser.htm"><b>red</b></a> <br><a href="../kernel/running_salome_pro.htm"><b>redirection</b></a> <br><a href="../kernel/editing_studies.htm"><b>redo</b></a> <br><a href="../kernel/introduction.htm"><b>reduce</b></a> <br><a href="../kernel/introduction.htm"><b>reduces</b></a> <br><nobr>refer <a href="../setting_preferences.htm"><b>1</b></a> <a href="../kernel/setting_preferences.htm"><b>2</b></a> </nobr><br><nobr>reference <a href="../kernel/navigating_topics.htm"><b>1</b></a> <a href="../kernel/about_salome_pro_help_system.htm"><b>2</b></a> <a href="../post-pro_preferences.htm"><b>3</b></a> <a href="../kernel/using_object_browser.htm"><b>4</b></a> <a href="../kernel/setting_preferences.htm"><b>5</b></a> </nobr><br><a href="../kernel/using_object_browser.htm"><b>references</b></a> <br><a href="../kernel/readme.html"><b>refers</b></a> <br><a href="../kernel/introduction.htm"><b>refined</b></a> <br><a href="../post-pro_preferences.htm"><b>refining</b></a> <br><a href="../kernel/using_registry.htm"><b>refresh</b></a> <br><a href="../kernel/using_registry.htm"><b>refreshment</b></a> <br><a href="../post-pro_preferences.htm"><b>regimes</b></a> <br><nobr>registry <a href="../introduction_to_gui.htm"><b>1</b></a> <a href="../kernel/using_registry.htm"><b>2</b></a> </nobr><br><a href="../kernel/readme.html"><b>reinstall</b></a> <br><a href="../kernel/readme.html"><b>reinstallation</b></a> <br><a href="../kernel/readme.html"><b>reinstalling</b></a> <br><nobr>related <a href="../kernel/navigating_topics.htm"><b>1</b></a> <a href="../kernel/using_left-hand_tabs.htm"><b>2</b></a> </nobr><br><nobr>relative <a href="../kernel/readme.html"><b>1</b></a> <a href="../mesh_preferences.htm"><b>2</b></a> <a href="../kernel/setting_preferences.htm"><b>3</b></a> </nobr><br><a href="../kernel/readme.html"><b>release</b></a> <br><a href="../kernel/navigating_topics.htm"><b>relevant</b></a> <br><a href="../kernel/introduction.htm"><b>reliability</b></a> <br><a href="../kernel/saving_a_study.htm"><b>reload</b></a> <br><a href="../kernel/salome_pro_desktop.htm"><b>relocate</b></a> <br><a href="../kernel/about_salome_pro_architecture.htm"><b>remains</b></a> <br><a href="../kernel/creating_a_new_study.htm"><b>remote</b></a> <br><a href="../kernel/setting_preferences.htm"><b>remove</b></a> <br><a href="../kernel/readme.html"><b>removed</b></a> <br><a href="../kernel/readme.html"><b>removing</b></a> <br><a href="../kernel/saving_a_study.htm"><b>renamed</b></a> <br><a href="../post-pro_preferences.htm"><b>rendering</b></a> <br><a href="../kernel/setting_preferences.htm"><b>reopened</b></a> <br><a href="../post-pro_preferences.htm"><b>repeated</b></a> <br><nobr>represent <a href="../kernel/about_salome_pro_architecture.htm"><b>1</b></a> <a href="../kernel/using_left-hand_tabs.htm"><b>2</b></a> </nobr><br><nobr>representation <a href="../kernel/introduction_to_salome_pro.htm"><b>1</b></a> <a href="../kernel/displaying_studies.htm"><b>2</b></a> <a href="../post-pro_preferences.htm"><b>3</b></a> <a href="../kernel/setting_preferences.htm"><b>4</b></a> </nobr><br><a href="../post-pro_preferences.htm"><b>representative</b></a> <br><nobr>represents <a href="../kernel/introduction_to_salome_pro.htm"><b>1</b></a> <a href="../kernel/introduction.htm"><b>2</b></a> <a href="../kernel/getting_started2.htm"><b>3</b></a> </nobr><br><nobr>required <a href="../kernel/readme.html"><b>1</b></a> <a href="../kernel/opening_studies.htm"><b>2</b></a> </nobr><br><nobr>requirements <a href="../kernel/running_salome_pro.htm"><b>1</b></a> <a href="../kernel/introduction.htm"><b>2</b></a> <a href="../kernel/about_salome_pro_architecture.htm"><b>3</b></a> </nobr><br><nobr>requires <a href="../kernel/introduction.htm"><b>1</b></a> <a href="../post-pro_preferences.htm"><b>2</b></a> <a href="../kernel/saving_a_study.htm"><b>3</b></a> </nobr><br><a href="../kernel/readme.html"><b>reset</b></a> <br><a href="../post-pro_preferences.htm"><b>resolution</b></a> <br><a href="../dump_study.htm"><b>resolved</b></a> <br><a href="../kernel/readme.html"><b>resource</b></a> <br><nobr>resources <a href="../introduction_to_gui.htm"><b>1</b></a> <a href="../post-pro_preferences.htm"><b>2</b></a> </nobr><br><nobr>respective <a href="../setting_preferences.htm"><b>1</b></a> <a href="../post-pro_preferences.htm"><b>2</b></a> </nobr><br><a href="../post-pro_preferences.htm"><b>respectively</b></a> <br><a href="../kernel/about_salome_pro_architecture.htm"><b>responds</b></a> <br><a href="../kernel/readme.html"><b>responsible</b></a> <br><a href="../kernel/setting_preferences.htm"><b>rest</b></a> <br><nobr>restore <a href="../kernel/introduction.htm"><b>1</b></a> <a href="../setting_preferences.htm"><b>2</b></a> <a href="../kernel/setting_preferences.htm"><b>3</b></a> <a href="../kernel/saving_a_study.htm"><b>4</b></a> </nobr><br><nobr>restored <a href="../setting_preferences.htm"><b>1</b></a> <a href="../kernel/setting_preferences.htm"><b>2</b></a> <a href="../kernel/saving_a_study.htm"><b>3</b></a> </nobr><br><a href="../kernel/introduction.htm"><b>result</b></a> <br><a href="../kernel/getting_started2.htm"><b>resulting</b></a> <br><nobr>results <a href="../kernel/introduction.htm"><b>1</b></a> <a href="../post-pro_preferences.htm"><b>2</b></a> </nobr><br><a href="../setting_preferences.htm"><b>retroactive</b></a> <br><a href="../kernel/introduction.htm"><b>reusable</b></a> <br><a href="../kernel/about_salome_pro_architecture.htm"><b>reuse</b></a> <br><nobr>reversibly <a href="../dump_study.htm"><b>1</b></a> <a href="../post-pro_preferences.htm"><b>2</b></a> </nobr><br><nobr><a name="bms_RI"></a><a name="subkey_RI"></a>right <a href="../kernel/readme.html"><b>1</b></a> <a href="../kernel/opening_studies.htm"><b>2</b></a> <a href="../kernel/navigating_topics.htm"><b>3</b></a> <a href="../kernel/displaying_studies.htm"><b>4</b></a> <a href="../select_color_and_font.htm"><b>5</b></a> <a href="../post-pro_preferences.htm"><b>6</b></a> <a href="../kernel/using_object_browser.htm"><b>7</b></a> <a href="../kernel/using_left-hand_tabs.htm"><b>8</b></a> <a href="../kernel/setting_preferences.htm"><b>9</b></a> <a href="../kernel/saving_a_study.htm"><b>10</b></a> <a href="../kernel/salome_pro_desktop.htm"><b>11</b></a> </nobr><br><a href="../kernel/introduction.htm"><b>risks</b></a> <br><a name="bms_RO"></a><a name="subkey_RO"></a><a href="../kernel/introduction.htm"><b>robustness</b></a> <br><a href="../kernel/about_salome_pro_architecture.htm"><b>roles</b></a> <br><a href="../kernel/readme.html"><b>root</b></a> <br><a href="../post-pro_preferences.htm"><b>rotate</b></a> <br><a href="../post-pro_preferences.htm"><b>rotation</b></a> <br><a name="bms_RU"></a><a name="subkey_RU"></a><a href="../kernel/readme.html"><b>rules</b></a> <br><nobr>run <a href="../kernel/running_salome_pro.htm"><b>1</b></a> <a href="../kernel/readme.html"><b>2</b></a> <a href="../kernel/about_salome_pro_architecture.htm"><b>3</b></a> </nobr><br><a href="../select_color_and_font.htm"><b>runic</b></a> <br><a href="../kernel/readme.html"><b>runinstall</b></a> <br><nobr>running <a href="../kernel/running_salome_pro.htm"><b>1</b></a> <a href="../kernel/using_registry.htm"><b>2</b></a> <a href="../kernel/using_catalog_generator.htm"><b>3</b></a> </nobr><br><a href="../kernel/readme.html"><b>runs</b></a> <br><nobr>runsalome <a href="../kernel/running_salome_pro.htm"><b>1</b></a> <a href="../kernel/using_catalog_generator.htm"><b>2</b></a> </nobr><br><a href="../kernel/using_catalog_generator.htm"><b>runsalomewithport</b></a> <br>\r
+<br><br>\r
+<nobr><a name="bm_S"></a><a name="subkey_S{"></a>s <a href="../kernel/readme.html"><b>1</b></a> <a href="../kernel/navigating_topics.htm"><b>2</b></a> <a href="../kernel/about_salome_pro_architecture.htm"><b>3</b></a> </nobr><br><a name="bms_SA"></a><a name="subkey_SA"></a><a href="../introduction_to_gui.htm"><b>safe</b></a> <br><nobr>salome <a href="../kernel/running_salome_pro.htm"><b>1</b></a> <a href="../kernel/readme.html"><b>2</b></a> <a href="../kernel/opening_studies.htm"><b>3</b></a> <a href="../kernel/navigating_topics.htm"><b>4</b></a> <a href="../kernel/introduction_to_salome_pro.htm"><b>5</b></a> <a href="../kernel/introduction.htm"><b>6</b></a> <a href="../kernel/getting_started2.htm"><b>7</b></a> <a href="../kernel/editing_studies.htm"><b>8</b></a> <a href="../kernel/displaying_studies.htm"><b>9</b></a> <a href="../kernel/creating_a_new_study.htm"><b>10</b></a> <a href="../kernel/about_salome_pro_help_system.htm"><b>11</b></a> <a href="../kernel/about_salome_pro_architecture.htm"><b>12</b></a> <a href="../introduction_to_gui.htm"><b>13</b></a> <a href="../dump_study.htm"><b>14</b></a> <a href="../setting_preferences.htm"><b>15</b></a> <a href="../post-pro_preferences.htm"><b>16</b></a> <a href="../kernel/using_registry.htm"><b>17</b></a> <a href="../kernel/using_object_browser.htm"><b>18</b></a> <a href="../kernel/using_left-hand_tabs.htm"><b>19</b></a> <a href="../kernel/using_catalog_generator.htm"><b>20</b></a> <a href="../kernel/setting_preferences.htm"><b>21</b></a> <a href="../kernel/saving_a_study.htm"><b>22</b></a> <a href="../kernel/salome_pro_desktop.htm"><b>23</b></a> </nobr><br><a href="../kernel/using_catalog_generator.htm"><b>salome_modulecatalog_server</b></a> <br><a href="../dump_study.htm"><b>salomeds</b></a> <br><nobr>same <a href="../kernel/navigating_topics.htm"><b>1</b></a> <a href="../kernel/displaying_studies.htm"><b>2</b></a> <a href="../post-pro_preferences.htm"><b>3</b></a> <a href="../kernel/using_registry.htm"><b>4</b></a> <a href="../kernel/using_catalog_generator.htm"><b>5</b></a> <a href="../kernel/saving_a_study.htm"><b>6</b></a> <a href="../kernel/salome_pro_desktop.htm"><b>7</b></a> </nobr><br><a href="../select_color_and_font.htm"><b>sample</b></a> <br><nobr>save <a href="../kernel/readme.html"><b>1</b></a> <a href="../kernel/introduction.htm"><b>2</b></a> <a href="../dump_study.htm"><b>3</b></a> <a href="../kernel/setting_preferences.htm"><b>4</b></a> <a href="../kernel/saving_a_study.htm"><b>5</b></a> </nobr><br><nobr>saved <a href="../dump_study.htm"><b>1</b></a> <a href="../setting_preferences.htm"><b>2</b></a> <a href="../kernel/setting_preferences.htm"><b>3</b></a> <a href="../kernel/saving_a_study.htm"><b>4</b></a> </nobr><br><nobr>saves <a href="../kernel/saving_a_study.htm"><b>1</b></a> <a href="../kernel/salome_pro_desktop.htm"><b>2</b></a> </nobr><br><nobr>saving <a href="../kernel/about_salome_pro_architecture.htm"><b>1</b></a> <a href="../introduction_to_gui.htm"><b>2</b></a> <a href="../kernel/saving_a_study.htm"><b>3</b></a> <a href="../kernel/salome_pro_desktop.htm"><b>4</b></a> </nobr><br><nobr><a name="bms_SC"></a><a name="subkey_SC"></a>scalar <a href="../post-pro_preferences.htm"><b>1</b></a> <a href="../mesh_preferences.htm"><b>2</b></a> </nobr><br><nobr>scale <a href="../kernel/about_salome_pro_architecture.htm"><b>1</b></a> <a href="../post-pro_preferences.htm"><b>2</b></a> <a href="../kernel/setting_preferences.htm"><b>3</b></a> </nobr><br><a href="../post-pro_preferences.htm"><b>scaling</b></a> <br><a href="../kernel/introduction.htm"><b>schemas</b></a> <br><a href="../kernel/readme.html"><b>scheme</b></a> <br><nobr>schemes <a href="../kernel/introduction.htm"><b>1</b></a> <a href="../kernel/about_salome_pro_architecture.htm"><b>2</b></a> </nobr><br><a href="../kernel/about_salome_pro_architecture.htm"><b>scientific</b></a> <br><a href="../kernel/displaying_studies.htm"><b>screen</b></a> <br><nobr>script <a href="../kernel/running_salome_pro.htm"><b>1</b></a> <a href="../kernel/readme.html"><b>2</b></a> <a href="../dump_study.htm"><b>3</b></a> <a href="../select_color_and_font.htm"><b>4</b></a> <a href="../kernel/using_catalog_generator.htm"><b>5</b></a> </nobr><br><a href="../dump_study.htm"><b>scripting</b></a> <br><nobr>scripts <a href="../kernel/readme.html"><b>1</b></a> <a href="../kernel/about_salome_pro_architecture.htm"><b>2</b></a> <a href="../dump_study.htm"><b>3</b></a> <a href="../kernel/using_catalog_generator.htm"><b>4</b></a> </nobr><br><a href="../kernel/getting_properties_of_the_study.htm"><b>scroll</b></a> <br><nobr><a name="bms_SE"></a><a name="subkey_SE"></a>search <a href="../kernel/readme.html"><b>1</b></a> <a href="../kernel/opening_studies.htm"><b>2</b></a> <a href="../kernel/about_salome_pro_help_system.htm"><b>3</b></a> <a href="../kernel/using_left-hand_tabs.htm"><b>4</b></a> <a href="../kernel/saving_a_study.htm"><b>5</b></a> </nobr><br><a href="../kernel/using_left-hand_tabs.htm"><b>searching</b></a> <br><nobr>second <a href="../kernel/readme.html"><b>1</b></a> <a href="../dump_study.htm"><b>2</b></a> <a href="../post-pro_preferences.htm"><b>3</b></a> </nobr><br><a href="../kernel/readme.html"><b>seconds</b></a> <br><nobr>section <a href="../kernel/readme.html"><b>1</b></a> <a href="../kernel/setting_preferences.htm"><b>2</b></a> </nobr><br><nobr>sections <a href="../kernel/readme.html"><b>1</b></a> <a href="../kernel/salome_pro_desktop.htm"><b>2</b></a> </nobr><br><a href="../kernel/readme.html"><b>sectionthis</b></a> <br><a href="../kernel/readme.html"><b>sed</b></a> <br><nobr>see <a href="../kernel/readme.html"><b>1</b></a> <a href="../kernel/opening_studies.htm"><b>2</b></a> <a href="../kernel/getting_properties_of_the_study.htm"><b>3</b></a> <a href="../kernel/displaying_studies.htm"><b>4</b></a> <a href="../kernel/using_object_browser.htm"><b>5</b></a> <a href="../kernel/using_catalog_generator.htm"><b>6</b></a> <a href="../kernel/setting_preferences.htm"><b>7</b></a> <a href="../kernel/saving_a_study.htm"><b>8</b></a> </nobr><br><a href="../mesh_preferences.htm"><b>seen</b></a> <br><nobr>select <a href="../kernel/readme.html"><b>1</b></a> <a href="../kernel/opening_studies.htm"><b>2</b></a> <a href="../kernel/getting_properties_of_the_study.htm"><b>3</b></a> <a href="../kernel/displaying_studies.htm"><b>4</b></a> <a href="../kernel/creating_a_new_study.htm"><b>5</b></a> <a href="../geom_preferences.htm"><b>6</b></a> <a href="../dump_study.htm"><b>7</b></a> <a href="../select_color_and_font.htm"><b>8</b></a> <a href="../post-pro_preferences.htm"><b>9</b></a> <a href="../mesh_preferences.htm"><b>10</b></a> <a href="../kernel/using_left-hand_tabs.htm"><b>11</b></a> <a href="../kernel/setting_preferences.htm"><b>12</b></a> <a href="../kernel/saving_a_study.htm"><b>13</b></a> </nobr><br><a href="../kernel/salome_pro_desktop.htm"><b>selectall</b></a> <br><nobr>selected <a href="../kernel/readme.html"><b>1</b></a> <a href="../post-pro_preferences.htm"><b>2</b></a> <a href="../mesh_preferences.htm"><b>3</b></a> <a href="../kernel/setting_preferences.htm"><b>4</b></a> </nobr><br><nobr>selecting <a href="../kernel/readme.html"><b>1</b></a> <a href="../dump_study.htm"><b>2</b></a> </nobr><br><nobr>selection <a href="../introduction_to_gui.htm"><b>1</b></a> <a href="../post-pro_preferences.htm"><b>2</b></a> <a href="../mesh_preferences.htm"><b>3</b></a> </nobr><br><a href="../kernel/readme.html"><b>sends</b></a> <br><nobr>sensitive <a href="../kernel/using_object_browser.htm"><b>1</b></a> <a href="../kernel/salome_pro_desktop.htm"><b>2</b></a> </nobr><br><nobr>separate <a href="../post-pro_preferences.htm"><b>1</b></a> <a href="../kernel/salome_pro_desktop.htm"><b>2</b></a> </nobr><br><nobr>separated <a href="../kernel/readme.html"><b>1</b></a> <a href="../kernel/about_salome_pro_architecture.htm"><b>2</b></a> </nobr><br><a href="../kernel/about_salome_pro_architecture.htm"><b>server</b></a> <br><nobr>servers <a href="../kernel/running_salome_pro.htm"><b>1</b></a> <a href="../kernel/about_salome_pro_architecture.htm"><b>2</b></a> </nobr><br><a href="../kernel/using_catalog_generator.htm"><b>serves</b></a> <br><a href="../kernel/readme.html"><b>service</b></a> <br><nobr>services <a href="../kernel/about_salome_pro_architecture.htm"><b>1</b></a> <a href="../kernel/using_catalog_generator.htm"><b>2</b></a> </nobr><br><nobr>session <a href="../kernel/opening_studies.htm"><b>1</b></a> <a href="../setting_preferences.htm"><b>2</b></a> <a href="../post-pro_preferences.htm"><b>3</b></a> <a href="../kernel/using_registry.htm"><b>4</b></a> <a href="../kernel/using_object_browser.htm"><b>5</b></a> <a href="../kernel/setting_preferences.htm"><b>6</b></a> <a href="../kernel/saving_a_study.htm"><b>7</b></a> </nobr><br><nobr>sessions <a href="../geom_preferences.htm"><b>1</b></a> <a href="../post-pro_preferences.htm"><b>2</b></a> <a href="../mesh_preferences.htm"><b>3</b></a> </nobr><br><nobr>set <a href="../kernel/running_salome_pro.htm"><b>1</b></a> <a href="../kernel/readme.html"><b>2</b></a> <a href="../kernel/about_salome_pro_help_system.htm"><b>3</b></a> <a href="../geom_preferences.htm"><b>4</b></a> <a href="../dump_study.htm"><b>5</b></a> <a href="../setting_preferences.htm"><b>6</b></a> <a href="../post-pro_preferences.htm"><b>7</b></a> <a href="../mesh_preferences.htm"><b>8</b></a> <a href="../kernel/using_registry.htm"><b>9</b></a> <a href="../kernel/setting_preferences.htm"><b>10</b></a> <a href="../kernel/salome_pro_desktop.htm"><b>11</b></a> </nobr><br><nobr>sets <a href="../kernel/readme.html"><b>1</b></a> <a href="../kernel/introduction.htm"><b>2</b></a> </nobr><br><nobr>setting <a href="../kernel/readme.html"><b>1</b></a> <a href="../kernel/getting_properties_of_the_study.htm"><b>2</b></a> <a href="../setting_preferences.htm"><b>3</b></a> <a href="../kernel/using_object_browser.htm"><b>4</b></a> <a href="../kernel/setting_preferences.htm"><b>5</b></a> <a href="../kernel/saving_a_study.htm"><b>6</b></a> </nobr><br><nobr>settings <a href="../kernel/readme.html"><b>1</b></a> <a href="../setting_preferences.htm"><b>2</b></a> <a href="../post-pro_preferences.htm"><b>3</b></a> <a href="../kernel/setting_preferences.htm"><b>4</b></a> <a href="../kernel/saving_a_study.htm"><b>5</b></a> <a href="../kernel/salome_pro_desktop.htm"><b>6</b></a> </nobr><br><a href="../kernel/introduction.htm"><b>severe</b></a> <br><br><br></p><p class="ftsbody" align="center"><a href="whlstf9.htm" target="_self" title="previous search group"><b>&gt;&gt;</b></a>\r
 \r
 </body>\r
 \r
index 1285b2549216e0c0f9eb8806f5f5f8fe2d936fc2..bd0c7ca0435ab6704b10649023011fe28acfe9ca 100755 (executable)
@@ -33,13 +33,9 @@ A:hover {color:Navy; } A:hover {font-family:Tahoma; } A:hover {font-size:8pt; }
 <body marginheight="0"  marginwidth="0" bgproperties="fixed">\r
 <p class="ftsbody" align="center"><a href="whlstf8.htm" target="_self" title="previous search group"><b>&lt;&lt;</b></a><br><br></p>\r
 <p class="ftsbody" >\r
-<nobr><a name="bms_TH"></a><a name="subkey_TH"></a>them <a href="../kernel/running_salome_pro.htm"><b>1</b></a> <a href="../kernel/readme.html"><b>2</b></a> <a href="../kernel/introduction.htm"><b>3</b></a> <a href="../kernel/displaying_studies.htm"><b>4</b></a> <a href="../kernel/about_salome_pro_architecture.htm"><b>5</b></a> <a href="../viewers.htm"><b>6</b></a> <a href="../kernel/using_registry.htm"><b>7</b></a> <a href="../kernel/salome_pro_desktop.htm"><b>8</b></a> </nobr><br><a href="../kernel/readme.html"><b>therefore</b></a> <br><a href="../kernel/introduction_to_salome_pro.htm"><b>third</b></a> <br><nobr>those <a href="../kernel/readme.html"><b>1</b></a> <a href="../kernel/using_left-hand_tabs.htm"><b>2</b></a> <a href="../kernel/setting_preferences.htm"><b>3</b></a> </nobr><br><a href="../kernel/readme.html"><b>three</b></a> <br><a href="../kernel/about_salome_pro_architecture.htm"><b>thus</b></a> <br><nobr><a name="bms_TI"></a><a name="subkey_TI"></a>time <a href="../kernel/running_salome_pro.htm"><b>1</b></a> <a href="../kernel/readme.html"><b>2</b></a> <a href="../kernel/introduction.htm"><b>3</b></a> <a href="../kernel/getting_properties_of_the_study.htm"><b>4</b></a> <a href="../kernel/displaying_studies.htm"><b>5</b></a> <a href="../kernel/about_salome_pro_architecture.htm"><b>6</b></a> <a href="../setting_preferences.htm"><b>7</b></a> <a href="../post-pro_preferences.htm"><b>8</b></a> <a href="../kernel/using_registry.htm"><b>9</b></a> <a href="../kernel/using_catalog_generator.htm"><b>10</b></a> </nobr><br><a href="../post-pro_preferences.htm"><b>times</b></a> <br><nobr>title <a href="../kernel/readme.html"><b>1</b></a> <a href="../post-pro_preferences.htm"><b>2</b></a> <a href="../mesh_preferences.htm"><b>3</b></a> </nobr><br><a name="bms_TK"></a><a name="subkey_TK"></a><a href="../kernel/readme.html"><b>tk</b></a> <br><a name="bms_TM"></a><a name="subkey_TM"></a><a href="../kernel/readme.html"><b>tmp</b></a> <br><a href="../kernel/readme.html"><b>tmp_disk_space</b></a> <br><a name="bms_TO"></a><a name="subkey_TO"></a><a href="../kernel/readme.html"><b>together</b></a> <br><a href="../mesh_preferences.htm"><b>toggle</b></a> <br><a href="../post-pro_preferences.htm"><b>toggles</b></a> <br><a href="../kernel/using_object_browser.htm"><b>toggling</b></a> <br><nobr>tool <a href="../kernel/readme.html"><b>1</b></a> <a href="../kernel/introduction_to_iapp.htm"><b>2</b></a> <a href="../kernel/using_registry.htm"><b>3</b></a> <a href="../kernel/using_catalog_generator.htm"><b>4</b></a> </nobr><br><nobr>toolbar <a href="../kernel/opening_studies.htm"><b>1</b></a> <a href="../kernel/introduction_to_iapp.htm"><b>2</b></a> <a href="../kernel/editing_studies.htm"><b>3</b></a> <a href="../kernel/displaying_hiding_toolbars.htm"><b>4</b></a> <a href="../kernel/creating_a_new_study.htm"><b>5</b></a> <a href="../kernel/about_salome_pro_architecture.htm"><b>6</b></a> <a href="../viewers.htm"><b>7</b></a> <a href="../kernel/saving_a_study.htm"><b>8</b></a> <a href="../kernel/salome_pro_desktop.htm"><b>9</b></a> </nobr><br><nobr>toolbars <a href="../kernel/introduction_to_iapp.htm"><b>1</b></a> <a href="../kernel/displaying_hiding_toolbars.htm"><b>2</b></a> <a href="../viewers.htm"><b>3</b></a> <a href="../kernel/salome_pro_desktop.htm"><b>4</b></a> </nobr><br><nobr>toolkit <a href="../kernel/introduction_to_iapp.htm"><b>1</b></a> <a href="../viewers.htm"><b>2</b></a> </nobr><br><nobr>tools <a href="../kernel/introduction_to_salome_pro.htm"><b>1</b></a> <a href="../kernel/introduction_to_iapp.htm"><b>2</b></a> <a href="../kernel/about_salome_pro_architecture.htm"><b>3</b></a> <a href="../kernel/using_registry.htm"><b>4</b></a> <a href="../kernel/using_catalog_generator.htm"><b>5</b></a> <a href="../kernel/salome_pro_desktop.htm"><b>6</b></a> </nobr><br><nobr>top <a href="../kernel/readme.html"><b>1</b></a> <a href="../kernel/introduction_to_iapp.htm"><b>2</b></a> <a href="../kernel/displaying_hiding_toolbars.htm"><b>3</b></a> <a href="../kernel/creating_a_new_study.htm"><b>4</b></a> <a href="../kernel/setting_preferences.htm"><b>5</b></a> </nobr><br><nobr>topic <a href="../kernel/navigating_topics.htm"><b>1</b></a> <a href="../supervisor_preferences.htm"><b>2</b></a> <a href="../kernel/using_left-hand_tabs.htm"><b>3</b></a> </nobr><br><nobr>topics <a href="../kernel/navigating_topics.htm"><b>1</b></a> <a href="../kernel/about_salome_pro_help_system.htm"><b>2</b></a> <a href="../kernel/using_left-hand_tabs.htm"><b>3</b></a> </nobr><br><a href="../kernel/readme.html"><b>topmost</b></a> <br><a href="../kernel/readme.html"><b>total</b></a> <br><a href="../kernel/about_salome_pro_architecture.htm"><b>totality</b></a> <br><a name="bms_TR"></a><a name="subkey_TR"></a><a href="../kernel/readme.html"><b>tr</b></a> <br><a href="../kernel/introduction.htm"><b>training</b></a> <br><nobr>tree <a href="../kernel/readme.html"><b>1</b></a> <a href="../kernel/creating_a_new_study.htm"><b>2</b></a> <a href="../kernel/using_object_browser.htm"><b>3</b></a> <a href="../kernel/using_catalog_generator.htm"><b>4</b></a> <a href="../kernel/setting_preferences.htm"><b>5</b></a> </nobr><br><a href="../kernel/readme.html"><b>tries</b></a> <br><nobr>trihedron <a href="../viewers.htm"><b>1</b></a> <a href="../kernel/setting_preferences.htm"><b>2</b></a> </nobr><br><a href="../kernel/readme.html"><b>trolltech</b></a> <br><a href="../kernel/readme.html"><b>true</b></a> <br><nobr>try <a href="../kernel/readme.html"><b>1</b></a> <a href="../kernel/getting_properties_of_the_study.htm"><b>2</b></a> <a href="../kernel/using_catalog_generator.htm"><b>3</b></a> <a href="../kernel/saving_a_study.htm"><b>4</b></a> </nobr><br><a href="../kernel/readme.html"><b>try_existing</b></a> <br><a href="../kernel/readme.html"><b>try_native</b></a> <br><a href="../kernel/readme.html"><b>try_preinstalled</b></a> <br><nobr><a name="bms_TW"></a><a name="subkey_TW"></a>two <a href="../kernel/readme.html"><b>1</b></a> <a href="../kernel/navigating_topics.htm"><b>2</b></a> <a href="../kernel/displaying_studies.htm"><b>3</b></a> <a href="../kernel/using_catalog_generator.htm"><b>4</b></a> <a href="../kernel/saving_a_study.htm"><b>5</b></a> </nobr><br><nobr><a name="bms_TY"></a><a name="subkey_TY"></a>type <a href="../kernel/readme.html"><b>1</b></a> <a href="../supervisor_preferences.htm"><b>2</b></a> <a href="../post-pro_preferences.htm"><b>3</b></a> <a href="../mesh_preferences.htm"><b>4</b></a> <a href="../kernel/using_catalog_generator.htm"><b>5</b></a> <a href="../kernel/setting_preferences.htm"><b>6</b></a> </nobr><br><a href="../kernel/using_catalog_generator.htm"><b>typical</b></a> <br><nobr>typing <a href="../kernel/readme.html"><b>1</b></a> <a href="../kernel/setting_preferences.htm"><b>2</b></a> </nobr><br>\r
+<a name="bms_SH"></a><a name="subkey_SH"></a><a href="../kernel/readme.html"><b>sh</b></a> <br><nobr>shading <a href="../geom_preferences.htm"><b>1</b></a> <a href="../post-pro_preferences.htm"><b>2</b></a> <a href="../mesh_preferences.htm"><b>3</b></a> </nobr><br><a href="../post-pro_preferences.htm"><b>shape</b></a> <br><nobr>shell <a href="../kernel/running_salome_pro.htm"><b>1</b></a> <a href="../kernel/readme.html"><b>2</b></a> <a href="../kernel/introduction_to_salome_pro.htm"><b>3</b></a> <a href="../introduction_to_gui.htm"><b>4</b></a> </nobr><br><nobr>short <a href="../kernel/readme.html"><b>1</b></a> <a href="../kernel/using_left-hand_tabs.htm"><b>2</b></a> </nobr><br><a href="../kernel/displaying_studies.htm"><b>shot</b></a> <br><nobr>should <a href="../kernel/readme.html"><b>1</b></a> <a href="../kernel/getting_started2.htm"><b>2</b></a> <a href="../kernel/using_catalog_generator.htm"><b>3</b></a> <a href="../kernel/saving_a_study.htm"><b>4</b></a> </nobr><br><nobr>shown <a href="../kernel/readme.html"><b>1</b></a> <a href="../kernel/getting_properties_of_the_study.htm"><b>2</b></a> </nobr><br><nobr>shows <a href="../kernel/readme.html"><b>1</b></a> <a href="../kernel/using_object_browser.htm"><b>2</b></a> </nobr><br><a href="../mesh_preferences.htm"><b>shrink</b></a> <br><nobr><a name="bms_SI"></a><a name="subkey_SI"></a>side <a href="../post-pro_preferences.htm"><b>1</b></a> <a href="../mesh_preferences.htm"><b>2</b></a> </nobr><br><a href="../kernel/readme.html"><b>signal</b></a> <br><a href="../introduction_to_gui.htm"><b>signals</b></a> <br><a href="../kernel/readme.html"><b>signature</b></a> <br><a href="../kernel/readme.html"><b>sigterm</b></a> <br><a href="../kernel/about_salome_pro_architecture.htm"><b>simple</b></a> <br><a href="../kernel/readme.html"><b>simplify</b></a> <br><a href="../kernel/about_salome_pro_architecture.htm"><b>simulate</b></a> <br><a href="../kernel/introduction.htm"><b>simulation</b></a> <br><nobr>simulations <a href="../kernel/introduction_to_salome_pro.htm"><b>1</b></a> <a href="../kernel/introduction.htm"><b>2</b></a> </nobr><br><nobr>simultaneously <a href="../kernel/readme.html"><b>1</b></a> <a href="../kernel/getting_started2.htm"><b>2</b></a> <a href="../kernel/displaying_studies.htm"><b>3</b></a> </nobr><br><nobr>since <a href="../kernel/readme.html"><b>1</b></a> <a href="../introduction_to_gui.htm"><b>2</b></a> </nobr><br><a href="../kernel/readme.html"><b>single</b></a> <br><a href="../kernel/readme.html"><b>sip</b></a> <br><a href="../kernel/readme.html"><b>sipdir</b></a> <br><a href="../kernel/about_salome_pro_architecture.htm"><b>situations</b></a> <br><nobr>size <a href="../kernel/displaying_studies.htm"><b>1</b></a> <a href="../post-pro_preferences.htm"><b>2</b></a> <a href="../mesh_preferences.htm"><b>3</b></a> <a href="../kernel/setting_preferences.htm"><b>4</b></a> <a href="../kernel/saving_a_study.htm"><b>5</b></a> <a href="../kernel/salome_pro_desktop.htm"><b>6</b></a> </nobr><br><nobr>sizes <a href="../select_color_and_font.htm"><b>1</b></a> <a href="../kernel/saving_a_study.htm"><b>2</b></a> <a href="../kernel/salome_pro_desktop.htm"><b>3</b></a> </nobr><br><a name="bms_SK"></a><a name="subkey_SK"></a><a href="../kernel/readme.html"><b>skip</b></a> <br><a href="../kernel/readme.html"><b>skipped</b></a> <br><a name="bms_SL"></a><a name="subkey_SL"></a><a href="../kernel/readme.html"><b>slightly</b></a> <br><a href="../post-pro_preferences.htm"><b>slow</b></a> <br><a name="bms_SM"></a><a name="subkey_SM"></a><a href="../post-pro_preferences.htm"><b>smallest</b></a> <br><a href="../kernel/setting_preferences.htm"><b>smooth</b></a> <br><a href="../post-pro_preferences.htm"><b>smoothness</b></a> <br><nobr><a name="bms_SO"></a><a name="subkey_SO"></a>so <a href="../kernel/running_salome_pro.htm"><b>1</b></a> <a href="../kernel/readme.html"><b>2</b></a> <a href="../kernel/editing_studies.htm"><b>3</b></a> <a href="../kernel/about_salome_pro_architecture.htm"><b>4</b></a> <a href="../setting_preferences.htm"><b>5</b></a> <a href="../post-pro_preferences.htm"><b>6</b></a> <a href="../kernel/using_object_browser.htm"><b>7</b></a> <a href="../kernel/using_left-hand_tabs.htm"><b>8</b></a> </nobr><br><nobr>software <a href="../kernel/introduction_to_salome_pro.htm"><b>1</b></a> <a href="../kernel/introduction.htm"><b>2</b></a> <a href="../kernel/about_salome_pro_architecture.htm"><b>3</b></a> </nobr><br><a href="../kernel/introduction.htm"><b>solution</b></a> <br><a href="../kernel/introduction.htm"><b>solutions</b></a> <br><a href="../kernel/introduction.htm"><b>solver</b></a> <br><nobr>solvers <a href="../kernel/introduction_to_salome_pro.htm"><b>1</b></a> <a href="../kernel/introduction.htm"><b>2</b></a> </nobr><br><a href="../kernel/readme.html"><b>something</b></a> <br><nobr>sort <a href="../kernel/using_object_browser.htm"><b>1</b></a> <a href="../kernel/setting_preferences.htm"><b>2</b></a> </nobr><br><a href="../kernel/readme.html"><b>sort_path</b></a> <br><a href="../kernel/using_object_browser.htm"><b>sorting</b></a> <br><nobr>source <a href="../kernel/running_salome_pro.htm"><b>1</b></a> <a href="../kernel/readme.html"><b>2</b></a> <a href="../kernel/introduction_to_salome_pro.htm"><b>3</b></a> <a href="../kernel/introduction.htm"><b>4</b></a> </nobr><br><a href="../kernel/readme.html"><b>sources</b></a> <br><nobr><a name="bms_SP"></a><a name="subkey_SP"></a>space <a href="../kernel/readme.html"><b>1</b></a> <a href="../post-pro_preferences.htm"><b>2</b></a> <a href="../mesh_preferences.htm"><b>3</b></a> </nobr><br><a href="../post-pro_preferences.htm"><b>spacemouse</b></a> <br><a href="../kernel/readme.html"><b>spaces</b></a> <br><a href="../post-pro_preferences.htm"><b>spacing</b></a> <br><nobr>special <a href="../kernel/running_salome_pro.htm"><b>1</b></a> <a href="../kernel/readme.html"><b>2</b></a> <a href="../kernel/opening_studies.htm"><b>3</b></a> <a href="../kernel/about_salome_pro_architecture.htm"><b>4</b></a> <a href="../setting_preferences.htm"><b>5</b></a> <a href="../kernel/setting_preferences.htm"><b>6</b></a> <a href="../kernel/saving_a_study.htm"><b>7</b></a> <a href="../kernel/salome_pro_desktop.htm"><b>8</b></a> </nobr><br><a href="../post-pro_preferences.htm"><b>specially</b></a> <br><nobr>specific <a href="../kernel/running_salome_pro.htm"><b>1</b></a> <a href="../kernel/introduction.htm"><b>2</b></a> <a href="../kernel/about_salome_pro_architecture.htm"><b>3</b></a> <a href="../dump_study.htm"><b>4</b></a> <a href="../setting_preferences.htm"><b>5</b></a> <a href="../kernel/using_left-hand_tabs.htm"><b>6</b></a> <a href="../kernel/salome_pro_desktop.htm"><b>7</b></a> </nobr><br><a href="../kernel/introduction_to_salome_pro.htm"><b>specification</b></a> <br><a href="../post-pro_preferences.htm"><b>specified</b></a> <br><a href="../kernel/about_salome_pro_architecture.htm"><b>specifies</b></a> <br><nobr>specify <a href="../kernel/using_catalog_generator.htm"><b>1</b></a> <a href="../kernel/setting_preferences.htm"><b>2</b></a> <a href="../kernel/saving_a_study.htm"><b>3</b></a> </nobr><br><a href="../post-pro_preferences.htm"><b>speed</b></a> <br><a href="../post-pro_preferences.htm"><b>sphere</b></a> <br><a href="../post-pro_preferences.htm"><b>spheres</b></a> <br><a href="../geom_preferences.htm"><b>spin</b></a> <br><a href="../kernel/setting_preferences.htm"><b>splines</b></a> <br><a href="../kernel/displaying_studies.htm"><b>split</b></a> <br><a href="../post-pro_preferences.htm"><b>sprite</b></a> <br><a href="../post-pro_preferences.htm"><b>sprites</b></a> <br><a name="bms_ST"></a><a name="subkey_ST"></a><a href="../post-pro_preferences.htm"><b>stamps</b></a> <br><a href="../introduction_to_gui.htm"><b>standalone</b></a> <br><nobr>standard <a href="../kernel/readme.html"><b>1</b></a> <a href="../kernel/opening_studies.htm"><b>2</b></a> <a href="../kernel/creating_a_new_study.htm"><b>3</b></a> <a href="../kernel/about_salome_pro_architecture.htm"><b>4</b></a> <a href="../introduction_to_gui.htm"><b>5</b></a> <a href="../post-pro_preferences.htm"><b>6</b></a> <a href="../kernel/using_catalog_generator.htm"><b>7</b></a> <a href="../kernel/saving_a_study.htm"><b>8</b></a> <a href="../kernel/salome_pro_desktop.htm"><b>9</b></a> </nobr><br><a href="../kernel/readme.html"><b>standard_version</b></a> <br><nobr>start <a href="../kernel/readme.html"><b>1</b></a> <a href="../kernel/getting_started2.htm"><b>2</b></a> </nobr><br><nobr>started <a href="../kernel/readme.html"><b>1</b></a> <a href="../kernel/getting_started2.htm"><b>2</b></a> <a href="../kernel/using_registry.htm"><b>3</b></a> <a href="../kernel/using_catalog_generator.htm"><b>4</b></a> <a href="../kernel/setting_preferences.htm"><b>5</b></a> </nobr><br><nobr>starting <a href="../kernel/readme.html"><b>1</b></a> <a href="../kernel/displaying_studies.htm"><b>2</b></a> <a href="../kernel/using_registry.htm"><b>3</b></a> <a href="../kernel/salome_pro_desktop.htm"><b>4</b></a> </nobr><br><nobr>state <a href="../kernel/readme.html"><b>1</b></a> <a href="../dump_study.htm"><b>2</b></a> <a href="../kernel/setting_preferences.htm"><b>3</b></a> <a href="../kernel/saving_a_study.htm"><b>4</b></a> </nobr><br><a href="../kernel/saving_a_study.htm"><b>states</b></a> <br><a href="../kernel/about_salome_pro_architecture.htm"><b>stations</b></a> <br><a href="../kernel/readme.html"><b>status</b></a> <br><nobr>step <a href="../kernel/introduction.htm"><b>1</b></a> <a href="../geom_preferences.htm"><b>2</b></a> <a href="../post-pro_preferences.htm"><b>3</b></a> </nobr><br><nobr>steps <a href="../kernel/readme.html"><b>1</b></a> <a href="../post-pro_preferences.htm"><b>2</b></a> </nobr><br><a href="../kernel/readme.html"><b>still</b></a> <br><nobr>store <a href="../kernel/readme.html"><b>1</b></a> <a href="../kernel/using_catalog_generator.htm"><b>2</b></a> <a href="../kernel/setting_preferences.htm"><b>3</b></a> <a href="../kernel/saving_a_study.htm"><b>4</b></a> </nobr><br><nobr>stored <a href="../kernel/readme.html"><b>1</b></a> <a href="../kernel/opening_studies.htm"><b>2</b></a> <a href="../kernel/about_salome_pro_architecture.htm"><b>3</b></a> <a href="../dump_study.htm"><b>4</b></a> <a href="../kernel/using_catalog_generator.htm"><b>5</b></a> <a href="../kernel/saving_a_study.htm"><b>6</b></a> </nobr><br><a href="../kernel/saving_a_study.htm"><b>storing</b></a> <br><a href="../kernel/readme.html"><b>strict</b></a> <br><a href="../kernel/readme.html"><b>string</b></a> <br><a href="../kernel/readme.html"><b>strongly</b></a> <br><a href="../select_color_and_font.htm"><b>struck</b></a> <br><a href="../kernel/introduction.htm"><b>structural</b></a> <br><nobr>structure <a href="../kernel/readme.html"><b>1</b></a> <a href="../kernel/opening_studies.htm"><b>2</b></a> <a href="../kernel/about_salome_pro_architecture.htm"><b>3</b></a> <a href="../introduction_to_gui.htm"><b>4</b></a> <a href="../kernel/using_object_browser.htm"><b>5</b></a> </nobr><br><a href="../kernel/introduction.htm"><b>structures</b></a> <br><nobr>studies <a href="../kernel/opening_studies.htm"><b>1</b></a> <a href="../kernel/introduction.htm"><b>2</b></a> <a href="../kernel/getting_started2.htm"><b>3</b></a> <a href="../kernel/editing_studies.htm"><b>4</b></a> <a href="../kernel/displaying_studies.htm"><b>5</b></a> <a href="../kernel/creating_a_new_study.htm"><b>6</b></a> <a href="../introduction_to_gui.htm"><b>7</b></a> <a href="../kernel/saving_a_study.htm"><b>8</b></a> <a href="../kernel/salome_pro_desktop.htm"><b>9</b></a> </nobr><br><nobr>study <a href="../kernel/opening_studies.htm"><b>1</b></a> <a href="../kernel/introduction.htm"><b>2</b></a> <a href="../kernel/getting_started2.htm"><b>3</b></a> <a href="../kernel/getting_properties_of_the_study.htm"><b>4</b></a> <a href="../kernel/editing_studies.htm"><b>5</b></a> <a href="../kernel/displaying_studies.htm"><b>6</b></a> <a href="../kernel/creating_a_new_study.htm"><b>7</b></a> <a href="../kernel/about_salome_pro_architecture.htm"><b>8</b></a> <a href="../introduction_to_gui.htm"><b>9</b></a> <a href="../dump_study.htm"><b>10</b></a> <a href="../setting_preferences.htm"><b>11</b></a> <a href="../post-pro_preferences.htm"><b>12</b></a> <a href="../kernel/using_registry.htm"><b>13</b></a> <a href="../kernel/using_object_browser.htm"><b>14</b></a> <a href="../kernel/using_catalog_generator.htm"><b>15</b></a> <a href="../kernel/setting_preferences.htm"><b>16</b></a> <a href="../kernel/saving_a_study.htm"><b>17</b></a> <a href="../kernel/salome_pro_desktop.htm"><b>18</b></a> </nobr><br><a href="../kernel/creating_a_new_study.htm"><b>study1</b></a> <br><a href="../kernel/setting_preferences.htm"><b>style</b></a> <br><a href="../select_color_and_font.htm"><b>styles</b></a> <br><nobr><a name="bms_SU"></a><a name="subkey_SU"></a>sub <a href="../kernel/readme.html"><b>1</b></a> <a href="../kernel/using_left-hand_tabs.htm"><b>2</b></a> </nobr><br><nobr>submenu <a href="../kernel/creating_a_new_study.htm"><b>1</b></a> <a href="../kernel/setting_preferences.htm"><b>2</b></a> <a href="../kernel/salome_pro_desktop.htm"><b>3</b></a> </nobr><br><a href="../select_color_and_font.htm"><b>subsets</b></a> <br><a href="../post-pro_preferences.htm"><b>substituted</b></a> <br><a href="../kernel/readme.html"><b>successfully</b></a> <br><a href="../introduction_to_gui.htm"><b>suit</b></a> <br><a href="../kernel/readme.html"><b>summarizes</b></a> <br><a href="../post-pro_preferences.htm"><b>superposition</b></a> <br><a href="../kernel/running_salome_pro.htm"><b>superv</b></a> <br><nobr>supervision <a href="../kernel/running_salome_pro.htm"><b>1</b></a> <a href="../introduction_to_gui.htm"><b>2</b></a> <a href="../kernel/using_catalog_generator.htm"><b>3</b></a> </nobr><br><nobr>supervisor <a href="../kernel/introduction_to_salome_pro.htm"><b>1</b></a> <a href="../kernel/using_catalog_generator.htm"><b>2</b></a> <a href="../kernel/setting_preferences.htm"><b>3</b></a> </nobr><br><nobr>supplementary <a href="../kernel/using_registry.htm"><b>1</b></a> <a href="../kernel/using_object_browser.htm"><b>2</b></a> </nobr><br><nobr>support <a href="../kernel/readme.html"><b>1</b></a> <a href="../kernel/using_catalog_generator.htm"><b>2</b></a> </nobr><br><a href="../kernel/readme.html"><b>supported</b></a> <br><a href="../kernel/readme.html"><b>supported_installation_modes</b></a> <br><a href="../kernel/introduction.htm"><b>supports</b></a> <br><a href="../kernel/readme.html"><b>supposed</b></a> <br><a href="../kernel/readme.html"><b>sure</b></a> <br><a href="../mesh_preferences.htm"><b>surface</b></a> <br><a name="bms_SW"></a><a name="subkey_SW"></a><a href="../post-pro_preferences.htm"><b>sweep</b></a> <br><a href="../post-pro_preferences.htm"><b>sweeping</b></a> <br><a href="../kernel/readme.html"><b>swig</b></a> <br><nobr>switch <a href="../kernel/displaying_studies.htm"><b>1</b></a> <a href="../post-pro_preferences.htm"><b>2</b></a> </nobr><br><a href="../kernel/readme.html"><b>switched</b></a> <br><a href="../introduction_to_gui.htm"><b>switching</b></a> <br><nobr><a name="bms_SY"></a><a name="subkey_SY"></a>system <a href="../kernel/readme.html"><b>1</b></a> <a href="../kernel/navigating_topics.htm"><b>2</b></a> <a href="../kernel/about_salome_pro_help_system.htm"><b>3</b></a> <a href="../kernel/about_salome_pro_architecture.htm"><b>4</b></a> <a href="../post-pro_preferences.htm"><b>5</b></a> <a href="../kernel/using_left-hand_tabs.htm"><b>6</b></a> </nobr><br><nobr>systems <a href="../kernel/introduction.htm"><b>1</b></a> <a href="../kernel/about_salome_pro_architecture.htm"><b>2</b></a> </nobr><br>\r
 <br><br>\r
-<a name="bm_U"></a><a name="subkey_U{"></a><a href="../kernel/setting_preferences.htm"><b>u</b></a> <br><a name="bms_UL"></a><a name="subkey_UL"></a><a href="../kernel/about_salome_pro_architecture.htm"><b>ultimate</b></a> <br><nobr><a name="bms_UN"></a><a name="subkey_UN"></a>undo <a href="../kernel/editing_studies.htm"><b>1</b></a> <a href="../kernel/setting_preferences.htm"><b>2</b></a> </nobr><br><a href="../kernel/setting_preferences.htm"><b>undone</b></a> <br><nobr>unfortunately <a href="../kernel/readme.html"><b>1</b></a> <a href="../viewers.htm"><b>2</b></a> </nobr><br><nobr>unique <a href="../kernel/readme.html"><b>1</b></a> <a href="../viewers.htm"><b>2</b></a> </nobr><br><a href="../kernel/about_salome_pro_help_system.htm"><b>unix</b></a> <br><a href="../kernel/saving_a_study.htm"><b>unload</b></a> <br><nobr>unloaded <a href="../kernel/opening_studies.htm"><b>1</b></a> <a href="../kernel/saving_a_study.htm"><b>2</b></a> </nobr><br><a href="../kernel/displaying_hiding_toolbars.htm"><b>unmark</b></a> <br><a href="../kernel/readme.html"><b>unnecessary</b></a> <br><a href="../kernel/readme.html"><b>unselect</b></a> <br><a href="../kernel/readme.html"><b>unselecting</b></a> <br><nobr><a name="bms_UP"></a><a name="subkey_UP"></a>up <a href="../kernel/readme.html"><b>1</b></a> <a href="../kernel/opening_studies.htm"><b>2</b></a> <a href="../kernel/navigating_topics.htm"><b>3</b></a> <a href="../kernel/introduction.htm"><b>4</b></a> <a href="../kernel/using_object_browser.htm"><b>5</b></a> <a href="../kernel/salome_pro_desktop.htm"><b>6</b></a> </nobr><br><nobr>update <a href="../mesh_preferences.htm"><b>1</b></a> <a href="../kernel/using_catalog_generator.htm"><b>2</b></a> </nobr><br><nobr>updated <a href="../mesh_preferences.htm"><b>1</b></a> <a href="../kernel/using_catalog_generator.htm"><b>2</b></a> <a href="../kernel/saving_a_study.htm"><b>3</b></a> <a href="../kernel/salome_pro_desktop.htm"><b>4</b></a> </nobr><br><nobr>uploading <a href="../kernel/introduction_to_iapp.htm"><b>1</b></a> <a href="../kernel/displaying_hiding_toolbars.htm"><b>2</b></a> <a href="../kernel/salome_pro_desktop.htm"><b>3</b></a> </nobr><br><nobr>upper <a href="../kernel/setting_preferences.htm"><b>1</b></a> <a href="../kernel/saving_a_study.htm"><b>2</b></a> </nobr><br><a name="bms_US"></a><a name="subkey_US"></a><a href="../kernel/introduction_to_iapp.htm"><b>usability</b></a> <br><a href="../kernel/readme.html"><b>usage</b></a> <br><a href="../kernel/introduction_to_iapp.htm"><b>usecase</b></a> <br><nobr>used <a href="../kernel/readme.html"><b>1</b></a> <a href="../kernel/getting_started2.htm"><b>2</b></a> <a href="../kernel/editing_studies.htm"><b>3</b></a> <a href="../kernel/about_salome_pro_architecture.htm"><b>4</b></a> <a href="../geom_preferences.htm"><b>5</b></a> <a href="../viewers.htm"><b>6</b></a> <a href="../post-pro_preferences.htm"><b>7</b></a> <a href="../mesh_preferences.htm"><b>8</b></a> <a href="../kernel/using_catalog_generator.htm"><b>9</b></a> <a href="../kernel/setting_preferences.htm"><b>10</b></a> <a href="../kernel/saving_a_study.htm"><b>11</b></a> <a href="../kernel/salome_pro_desktop.htm"><b>12</b></a> </nobr><br><a href="../viewers.htm"><b>useful</b></a> <br><nobr>user <a href="../kernel/readme.html"><b>1</b></a> <a href="../kernel/introduction_to_salome_pro.htm"><b>2</b></a> <a href="../kernel/introduction_to_iapp.htm"><b>3</b></a> <a href="../kernel/introduction.htm"><b>4</b></a> <a href="../kernel/getting_properties_of_the_study.htm"><b>5</b></a> <a href="../kernel/about_salome_pro_architecture.htm"><b>6</b></a> <a href="../setting_preferences.htm"><b>7</b></a> <a href="../kernel/using_registry.htm"><b>8</b></a> <a href="../kernel/using_catalog_generator.htm"><b>9</b></a> </nobr><br><nobr>users <a href="../kernel/getting_properties_of_the_study.htm"><b>1</b></a> <a href="../viewers.htm"><b>2</b></a> <a href="../kernel/using_catalog_generator.htm"><b>3</b></a> </nobr><br><nobr>uses <a href="../kernel/readme.html"><b>1</b></a> <a href="../kernel/salome_pro_desktop.htm"><b>2</b></a> </nobr><br><nobr>using <a href="../kernel/running_salome_pro.htm"><b>1</b></a> <a href="../kernel/readme.html"><b>2</b></a> <a href="../kernel/introduction_to_salome_pro.htm"><b>3</b></a> <a href="../kernel/introduction.htm"><b>4</b></a> <a href="../kernel/about_salome_pro_architecture.htm"><b>5</b></a> <a href="../viewers.htm"><b>6</b></a> <a href="../kernel/using_registry.htm"><b>7</b></a> <a href="../kernel/using_object_browser.htm"><b>8</b></a> <a href="../kernel/using_left-hand_tabs.htm"><b>9</b></a> <a href="../kernel/using_catalog_generator.htm"><b>10</b></a> </nobr><br><a href="../kernel/readme.html"><b>usr</b></a> <br><a href="../kernel/readme.html"><b>usually</b></a> <br><a name="bms_UT"></a><a name="subkey_UT"></a><a href="../kernel/about_salome_pro_help_system.htm"><b>utilities</b></a> <br>\r
-<br><br>\r
-<nobr><a name="bm_V"></a><a name="subkey_V{"></a>v <a href="../kernel/readme.html"><b>1</b></a> <a href="../kernel/setting_preferences.htm"><b>2</b></a> </nobr><br><a name="bms_VA"></a><a name="subkey_VA"></a><a href="../kernel/setting_preferences.htm"><b>valid</b></a> <br><a href="../kernel/about_salome_pro_architecture.htm"><b>validation</b></a> <br><nobr>value <a href="../kernel/readme.html"><b>1</b></a> <a href="../geom_preferences.htm"><b>2</b></a> <a href="../mesh_preferences.htm"><b>3</b></a> <a href="../kernel/using_object_browser.htm"><b>4</b></a> <a href="../kernel/setting_preferences.htm"><b>5</b></a> </nobr><br><a href="../kernel/readme.html"><b>values</b></a> <br><a href="../kernel/readme.html"><b>variable</b></a> <br><nobr>variables <a href="../kernel/running_salome_pro.htm"><b>1</b></a> <a href="../kernel/readme.html"><b>2</b></a> </nobr><br><a href="../kernel/readme.html"><b>varible</b></a> <br><nobr>variety <a href="../kernel/navigating_topics.htm"><b>1</b></a> <a href="../kernel/about_salome_pro_help_system.htm"><b>2</b></a> </nobr><br><nobr>various <a href="../kernel/readme.html"><b>1</b></a> <a href="../kernel/introduction_to_salome_pro.htm"><b>2</b></a> </nobr><br><nobr><a name="bms_VE"></a><a name="subkey_VE"></a>ve <a href="../kernel/readme.html"><b>1</b></a> <a href="../kernel/setting_preferences.htm"><b>2</b></a> </nobr><br><a href="../kernel/readme.html"><b>ver</b></a> <br><a href="../kernel/readme.html"><b>ver_major</b></a> <br><a href="../kernel/readme.html"><b>ver_minor</b></a> <br><a href="../viewers.htm"><b>verbal</b></a> <br><nobr>version <a href="../kernel/readme.html"><b>1</b></a> <a href="../kernel/introduction_to_iapp.htm"><b>2</b></a> <a href="../kernel/displaying_studies.htm"><b>3</b></a> <a href="../kernel/about_salome_pro_architecture.htm"><b>4</b></a> <a href="../kernel/using_catalog_generator.htm"><b>5</b></a> <a href="../kernel/salome_pro_desktop.htm"><b>6</b></a> </nobr><br><a href="../kernel/readme.html"><b>versions</b></a> <br><nobr>vertical <a href="../kernel/displaying_studies.htm"><b>1</b></a> <a href="../viewers.htm"><b>2</b></a> <a href="../post-pro_preferences.htm"><b>3</b></a> <a href="../mesh_preferences.htm"><b>4</b></a> <a href="../kernel/setting_preferences.htm"><b>5</b></a> </nobr><br><a href="../kernel/displaying_studies.htm"><b>vertically</b></a> <br><nobr>very <a href="../kernel/readme.html"><b>1</b></a> <a href="../kernel/introduction_to_iapp.htm"><b>2</b></a> <a href="../kernel/introduction.htm"><b>3</b></a> <a href="../kernel/salome_pro_desktop.htm"><b>4</b></a> </nobr><br><a name="bms_VI"></a><a name="subkey_VI"></a><a href="../viewers.htm"><b>via</b></a> <br><nobr>view <a href="../kernel/readme.html"><b>1</b></a> <a href="../kernel/navigating_topics.htm"><b>2</b></a> <a href="../kernel/getting_properties_of_the_study.htm"><b>3</b></a> <a href="../kernel/displaying_hiding_toolbars.htm"><b>4</b></a> <a href="../kernel/about_salome_pro_architecture.htm"><b>5</b></a> <a href="../viewers.htm"><b>6</b></a> <a href="../kernel/using_registry.htm"><b>7</b></a> <a href="../kernel/using_left-hand_tabs.htm"><b>8</b></a> </nobr><br><nobr>viewer <a href="../kernel/introduction_to_iapp.htm"><b>1</b></a> <a href="../kernel/creating_a_new_study.htm"><b>2</b></a> <a href="../viewers.htm"><b>3</b></a> <a href="../mesh_preferences.htm"><b>4</b></a> <a href="../kernel/using_left-hand_tabs.htm"><b>5</b></a> <a href="../kernel/setting_preferences.htm"><b>6</b></a> <a href="../kernel/salome_pro_desktop.htm"><b>7</b></a> </nobr><br><nobr>viewers <a href="../kernel/introduction_to_salome_pro.htm"><b>1</b></a> <a href="../kernel/introduction_to_iapp.htm"><b>2</b></a> <a href="../kernel/displaying_studies.htm"><b>3</b></a> <a href="../kernel/creating_a_new_study.htm"><b>4</b></a> <a href="../viewers.htm"><b>5</b></a> <a href="../kernel/setting_preferences.htm"><b>6</b></a> <a href="../kernel/salome_pro_desktop.htm"><b>7</b></a> </nobr><br><nobr>viewing <a href="../kernel/navigating_topics.htm"><b>1</b></a> <a href="../kernel/setting_preferences.htm"><b>2</b></a> </nobr><br><a href="../viewers.htm"><b>visible</b></a> <br><nobr>visu <a href="../kernel/introduction_to_salome_pro.htm"><b>1</b></a> <a href="../kernel/editing_studies.htm"><b>2</b></a> <a href="../kernel/displaying_hiding_toolbars.htm"><b>3</b></a> <a href="../kernel/about_salome_pro_architecture.htm"><b>4</b></a> </nobr><br><a href="../kernel/introduction_to_salome_pro.htm"><b>visual</b></a> <br><nobr>visualization <a href="../kernel/introduction_to_salome_pro.htm"><b>1</b></a> <a href="../kernel/introduction_to_iapp.htm"><b>2</b></a> <a href="../kernel/introduction.htm"><b>3</b></a> <a href="../kernel/getting_started2.htm"><b>4</b></a> <a href="../viewers.htm"><b>5</b></a> <a href="../kernel/salome_pro_desktop.htm"><b>6</b></a> </nobr><br><nobr>visualize <a href="../kernel/introduction.htm"><b>1</b></a> <a href="../viewers.htm"><b>2</b></a> </nobr><br><nobr><a name="bms_VT"></a><a name="subkey_VT"></a>vtk <a href="../kernel/readme.html"><b>1</b></a> <a href="../kernel/introduction_to_iapp.htm"><b>2</b></a> <a href="../kernel/displaying_studies.htm"><b>3</b></a> <a href="../kernel/creating_a_new_study.htm"><b>4</b></a> <a href="../viewers.htm"><b>5</b></a> <a href="../kernel/setting_preferences.htm"><b>6</b></a> </nobr><br><a href="../kernel/readme.html"><b>vtkhome</b></a> <br>\r
-<br><br>\r
-<a name="bm_W"></a><a name="subkey_WA"></a><a href="../kernel/readme.html"><b>wait</b></a> <br><a href="../kernel/readme.html"><b>waiting</b></a> <br><nobr>want <a href="../kernel/readme.html"><b>1</b></a> <a href="../kernel/navigating_topics.htm"><b>2</b></a> <a href="../kernel/displaying_studies.htm"><b>3</b></a> </nobr><br><nobr>warning <a href="../kernel/readme.html"><b>1</b></a> <a href="../kernel/getting_properties_of_the_study.htm"><b>2</b></a> </nobr><br><nobr>way <a href="../kernel/readme.html"><b>1</b></a> <a href="../kernel/introduction_to_salome_pro.htm"><b>2</b></a> <a href="../kernel/using_catalog_generator.htm"><b>3</b></a> </nobr><br><a name="bms_WE"></a><a name="subkey_WE"></a><a href="../kernel/about_salome_pro_help_system.htm"><b>web</b></a> <br><nobr>welcome <a href="../kernel/introduction.htm"><b>1</b></a> <a href="../kernel/about_salome_pro_help_system.htm"><b>2</b></a> </nobr><br><a href="../kernel/salome_pro_desktop.htm"><b>well</b></a> <br><nobr><a name="bms_WH"></a><a name="subkey_WH"></a>what <a href="../kernel/readme.html"><b>1</b></a> <a href="../kernel/navigating_topics.htm"><b>2</b></a> <a href="../kernel/introduction.htm"><b>3</b></a> <a href="../kernel/about_salome_pro_architecture.htm"><b>4</b></a> <a href="../setting_preferences.htm"><b>5</b></a> <a href="../kernel/using_object_browser.htm"><b>6</b></a> </nobr><br><a href="../mesh_preferences.htm"><b>whenever</b></a> <br><a href="../kernel/displaying_studies.htm"><b>wherever</b></a> <br><a href="../kernel/readme.html"><b>whether</b></a> <br><a href="../kernel/about_salome_pro_architecture.htm"><b>while</b></a> <br><nobr>whole <a href="../setting_preferences.htm"><b>1</b></a> <a href="../post-pro_preferences.htm"><b>2</b></a> <a href="../kernel/setting_preferences.htm"><b>3</b></a> <a href="../kernel/saving_a_study.htm"><b>4</b></a> <a href="../kernel/salome_pro_desktop.htm"><b>5</b></a> </nobr><br><nobr><a name="bms_WI"></a><a name="subkey_WI"></a>wide <a href="../kernel/introduction_to_salome_pro.htm"><b>1</b></a> <a href="../kernel/about_salome_pro_help_system.htm"><b>2</b></a> <a href="../viewers.htm"><b>3</b></a> </nobr><br><a href="../kernel/introduction_to_salome_pro.htm"><b>widgets</b></a> <br><a href="../mesh_preferences.htm"><b>width</b></a> <br><nobr>will <a href="../kernel/running_salome_pro.htm"><b>1</b></a> <a href="../kernel/readme.html"><b>2</b></a> <a href="../kernel/opening_studies.htm"><b>3</b></a> <a href="../kernel/getting_properties_of_the_study.htm"><b>4</b></a> <a href="../kernel/displaying_hiding_toolbars.htm"><b>5</b></a> <a href="../kernel/creating_a_new_study.htm"><b>6</b></a> <a href="../kernel/about_salome_pro_help_system.htm"><b>7</b></a> <a href="../setting_preferences.htm"><b>8</b></a> <a href="../post-pro_preferences.htm"><b>9</b></a> <a href="../mesh_preferences.htm"><b>10</b></a> <a href="../kernel/using_registry.htm"><b>11</b></a> <a href="../kernel/using_object_browser.htm"><b>12</b></a> <a href="../kernel/using_catalog_generator.htm"><b>13</b></a> <a href="../kernel/setting_preferences.htm"><b>14</b></a> <a href="../kernel/saving_a_study.htm"><b>15</b></a> <a href="../kernel/salome_pro_desktop.htm"><b>16</b></a> </nobr><br><nobr>window <a href="../kernel/running_salome_pro.htm"><b>1</b></a> <a href="../kernel/readme.html"><b>2</b></a> <a href="../kernel/navigating_topics.htm"><b>3</b></a> <a href="../kernel/introduction_to_iapp.htm"><b>4</b></a> <a href="../kernel/getting_started2.htm"><b>5</b></a> <a href="../kernel/displaying_studies.htm"><b>6</b></a> <a href="../kernel/displaying_hiding_toolbars.htm"><b>7</b></a> <a href="../kernel/creating_a_new_study.htm"><b>8</b></a> <a href="../kernel/using_registry.htm"><b>9</b></a> <a href="../kernel/setting_preferences.htm"><b>10</b></a> <a href="../kernel/saving_a_study.htm"><b>11</b></a> <a href="../kernel/salome_pro_desktop.htm"><b>12</b></a> </nobr><br><a href="../kernel/introduction_to_iapp.htm"><b>windowed</b></a> <br><nobr>windows <a href="../kernel/navigating_topics.htm"><b>1</b></a> <a href="../kernel/introduction_to_iapp.htm"><b>2</b></a> <a href="../kernel/displaying_studies.htm"><b>3</b></a> <a href="../kernel/creating_a_new_study.htm"><b>4</b></a> <a href="../kernel/about_salome_pro_help_system.htm"><b>5</b></a> <a href="../kernel/setting_preferences.htm"><b>6</b></a> <a href="../kernel/saving_a_study.htm"><b>7</b></a> <a href="../kernel/salome_pro_desktop.htm"><b>8</b></a> </nobr><br><nobr>wireframe <a href="../geom_preferences.htm"><b>1</b></a> <a href="../mesh_preferences.htm"><b>2</b></a> </nobr><br><nobr>wish <a href="../kernel/displaying_studies.htm"><b>1</b></a> <a href="../viewers.htm"><b>2</b></a> </nobr><br><a href="../kernel/readme.html"><b>wish8</b></a> <br><nobr>within <a href="../kernel/editing_studies.htm"><b>1</b></a> <a href="../kernel/creating_a_new_study.htm"><b>2</b></a> <a href="../kernel/about_salome_pro_architecture.htm"><b>3</b></a> <a href="../kernel/using_registry.htm"><b>4</b></a> </nobr><br><nobr>without <a href="../kernel/running_salome_pro.htm"><b>1</b></a> <a href="../kernel/readme.html"><b>2</b></a> <a href="../kernel/about_salome_pro_architecture.htm"><b>3</b></a> </nobr><br><a href="../kernel/readme.html"><b>wizard</b></a> <br><a href="../kernel/readme.html"><b>wizards</b></a> <br><br><br></p><p class="ftsbody" align="center"><a href="whlstf10.htm" target="_self" title="previous search group"><b>&gt;&gt;</b></a>\r
+<nobr><a name="bm_T"></a><a name="subkey_T{"></a>t <a href="../kernel/running_salome_pro.htm"><b>1</b></a> <a href="../kernel/readme.html"><b>2</b></a> <a href="../kernel/editing_studies.htm"><b>3</b></a> <a href="../post-pro_preferences.htm"><b>4</b></a> <a href="../kernel/using_catalog_generator.htm"><b>5</b></a> <a href="../kernel/setting_preferences.htm"><b>6</b></a> <a href="../kernel/saving_a_study.htm"><b>7</b></a> <a href="../kernel/salome_pro_desktop.htm"><b>8</b></a> </nobr><br><nobr><a name="bms_TA"></a><a name="subkey_TA"></a>tab <a href="../kernel/displaying_studies.htm"><b>1</b></a> <a href="../kernel/using_registry.htm"><b>2</b></a> <a href="../kernel/using_left-hand_tabs.htm"><b>3</b></a> </nobr><br><nobr>table <a href="../kernel/readme.html"><b>1</b></a> <a href="../select_color_and_font.htm"><b>2</b></a> </nobr><br><nobr>tabs <a href="../kernel/displaying_studies.htm"><b>1</b></a> <a href="../kernel/using_left-hand_tabs.htm"><b>2</b></a> </nobr><br><a href="../kernel/readme.html"><b>tag</b></a> <br><a href="../kernel/readme.html"><b>tags</b></a> <br><a href="../kernel/introduction.htm"><b>tailored</b></a> <br><a href="../kernel/readme.html"><b>take</b></a> <br><nobr>taken <a href="../kernel/running_salome_pro.htm"><b>1</b></a> <a href="../kernel/readme.html"><b>2</b></a> </nobr><br><a href="../kernel/about_salome_pro_architecture.htm"><b>takes</b></a> <br><a href="../kernel/readme.html"><b>target</b></a> <br><a href="../kernel/readme.html"><b>target_directory</b></a> <br><a href="../kernel/readme.html"><b>target_platform</b></a> <br><a href="../kernel/readme.html"><b>targetdir</b></a> <br><a href="../dump_study.htm"><b>tasks</b></a> <br><a name="bms_TC"></a><a name="subkey_TC"></a><a href="../kernel/readme.html"><b>tcl</b></a> <br><a href="../kernel/readme.html"><b>tclhome</b></a> <br><a href="../kernel/readme.html"><b>tclsh8</b></a> <br><br><br></p><p class="ftsbody" align="center"><a href="whlstf10.htm" target="_self" title="previous search group"><b>&gt;&gt;</b></a>\r
 \r
 </body>\r
 \r
index 89ddc445e36a0f25fd395caa46fa6092312d5eb6..3bd7d43e607f2ce8d05f905a76523d72efe1a6db 100755 (executable)
@@ -37,7 +37,7 @@ body {background-color:White; }
 </head>\r
 <body marginheight="0"  marginwidth="0" bgproperties="fixed">\r
 \r
-<p class="ftsheader"><a name="subkey_{"></a> <a href="whnvl32.htm#home" target="_self" title="back to top level"><b>^</b></a> <a href="whlstf0.htm#bm_{" target="ftslist" title="search letter { "><b>{ </b></a> <a href="whlstf0.htm#bms_{O" target="ftslist" title="search letter {O"><b>{O</b></a> <a href="whlstf0.htm#bms_{D" target="ftslist" title="search letter {D"><b>{D</b></a>  <a href="whnvl32.htm#home" target="_self" title="back to top level"><b>^</b></a></p>\r
+<p class="ftsheader"><a name="subkey_{"></a> <a href="whnvl32.htm#home" target="_self" title="back to top level"><b>^</b></a> <a href="whlstf0.htm#bm_{" target="ftslist" title="search letter { "><b>{ </b></a> <a href="whlstf0.htm#bms_{O" target="ftslist" title="search letter {O"><b>{O</b></a> <a href="whlstf0.htm#bms_{{" target="ftslist" title="search letter { "><b>{ </b></a> <a href="whlstf0.htm#bms_{D" target="ftslist" title="search letter {D"><b>{D</b></a>  <a href="whnvl32.htm#home" target="_self" title="back to top level"><b>^</b></a></p>\r
 \r
 </body>\r
 \r
index ff8b73500becd8af045735d6c0dbf44e98577dee..c4b5ed44c762d853d9579d759869775a3a7fe81f 100755 (executable)
@@ -37,7 +37,7 @@ body {background-color:White; }
 </head>\r
 <body marginheight="0"  marginwidth="0" bgproperties="fixed">\r
 \r
-<p class="ftsheader"><a name="subkey_A"></a> <a href="whnvl32.htm#home" target="_self" title="back to top level"><b>^</b></a> <a href="whlstf0.htm#bm_A" target="ftslist" title="search letter AB"><b>AB</b></a> <a href="whlstf0.htm#bms_AC" target="ftslist" title="search letter AC"><b>AC</b></a> <a href="whlstf0.htm#bms_AD" target="ftslist" title="search letter AD"><b>AD</b></a> <a href="whlstf0.htm#bms_AF" target="ftslist" title="search letter AF"><b>AF</b></a> <a href="whlstf0.htm#bms_AG" target="ftslist" title="search letter AG"><b>AG</b></a> <a href="whlstf0.htm#bms_AI" target="ftslist" title="search letter AI"><b>AI</b></a> <a href="whlstf0.htm#bms_AL" target="ftslist" title="search letter AL"><b>AL</b></a> <a href="whlstf0.htm#bms_AM" target="ftslist" title="search letter AM"><b>AM</b></a> <a href="whlstf0.htm#bms_AN" target="ftslist" title="search letter AN"><b>AN</b></a> <a href="whlstf0.htm#bms_AP" target="ftslist" title="search letter AP"><b>AP</b></a> <a href="whlstf0.htm#bms_AR" target="ftslist" title="search letter AR"><b>AR</b></a> <a href="whlstf0.htm#bms_AS" target="ftslist" title="search letter AS"><b>AS</b></a> <a href="whlstf0.htm#bms_AT" target="ftslist" title="search letter AT"><b>AT</b></a> <a href="whlstf0.htm#bms_AU" target="ftslist" title="search letter AU"><b>AU</b></a> <a href="whlstf0.htm#bms_AV" target="ftslist" title="search letter AV"><b>AV</b></a> <a href="whlstf0.htm#bms_AW" target="ftslist" title="search letter AW"><b>AW</b></a> <a href="whlstf0.htm#bms_AX" target="ftslist" title="search letter AX"><b>AX</b></a>  <a href="whnvl32.htm#home" target="_self" title="back to top level"><b>^</b></a></p>\r
+<p class="ftsheader"><a name="subkey_A"></a> <a href="whnvl32.htm#home" target="_self" title="back to top level"><b>^</b></a> <a href="whlstf0.htm#bm_A" target="ftslist" title="search letter AB"><b>AB</b></a> <a href="whlstf0.htm#bms_AC" target="ftslist" title="search letter AC"><b>AC</b></a> <a href="whlstf0.htm#bms_AD" target="ftslist" title="search letter AD"><b>AD</b></a> <a href="whlstf0.htm#bms_AF" target="ftslist" title="search letter AF"><b>AF</b></a> <a href="whlstf0.htm#bms_AG" target="ftslist" title="search letter AG"><b>AG</b></a> <a href="whlstf0.htm#bms_AL" target="ftslist" title="search letter AL"><b>AL</b></a> <a href="whlstf0.htm#bms_AM" target="ftslist" title="search letter AM"><b>AM</b></a> <a href="whlstf0.htm#bms_AN" target="ftslist" title="search letter AN"><b>AN</b></a> <a href="whlstf0.htm#bms_AP" target="ftslist" title="search letter AP"><b>AP</b></a> <a href="whlstf0.htm#bms_AR" target="ftslist" title="search letter AR"><b>AR</b></a> <a href="whlstf0.htm#bms_AS" target="ftslist" title="search letter AS"><b>AS</b></a> <a href="whlstf0.htm#bms_AT" target="ftslist" title="search letter AT"><b>AT</b></a> <a href="whlstf0.htm#bms_AU" target="ftslist" title="search letter AU"><b>AU</b></a> <a href="whlstf0.htm#bms_AV" target="ftslist" title="search letter AV"><b>AV</b></a> <a href="whlstf0.htm#bms_AW" target="ftslist" title="search letter AW"><b>AW</b></a> <a href="whlstf0.htm#bms_AX" target="ftslist" title="search letter AX"><b>AX</b></a>  <a href="whnvl32.htm#home" target="_self" title="back to top level"><b>^</b></a></p>\r
 \r
 </body>\r
 \r
index 6e245471cc9582ba47f3b1d7978ded2ea6bdab12..471fb727980349f663d39aed6e616c70312a71b4 100755 (executable)
@@ -37,7 +37,7 @@ body {background-color:White; }
 </head>\r
 <body marginheight="0"  marginwidth="0" bgproperties="fixed">\r
 \r
-<p class="ftsheader"><a name="subkey_J"></a> <a href="whnvl32.htm#home" target="_self" title="back to top level"><b>^</b></a> <a href="whlstf4.htm#bm_J" target="ftslist" title="search letter JA"><b>JA</b></a> <a href="whlstf4.htm#bms_JP" target="ftslist" title="search letter JP"><b>JP</b></a> <a href="whlstf4.htm#bms_JU" target="ftslist" title="search letter JU"><b>JU</b></a>  <a href="whnvl32.htm#home" target="_self" title="back to top level"><b>^</b></a></p>\r
+<p class="ftsheader"><a name="subkey_J"></a> <a href="whnvl32.htm#home" target="_self" title="back to top level"><b>^</b></a> <a href="whlstf5.htm#bm_J" target="ftslist" title="search letter JA"><b>JA</b></a> <a href="whlstf5.htm#bms_JU" target="ftslist" title="search letter JU"><b>JU</b></a>  <a href="whnvl32.htm#home" target="_self" title="back to top level"><b>^</b></a></p>\r
 \r
 </body>\r
 \r
index a3219ba91a152cc624835d76a1c6818da826ba8c..972cc927d40dbaed288e0a5d554009a744e4f3ba 100755 (executable)
@@ -37,7 +37,7 @@ body {background-color:White; }
 </head>\r
 <body marginheight="0"  marginwidth="0" bgproperties="fixed">\r
 \r
-<p class="ftsheader"><a name="subkey_K"></a> <a href="whnvl32.htm#home" target="_self" title="back to top level"><b>^</b></a> <a href="whlstf4.htm#bm_K" target="ftslist" title="search letter K "><b>K </b></a> <a href="whlstf4.htm#bms_KB" target="ftslist" title="search letter KB"><b>KB</b></a> <a href="whlstf4.htm#bms_KE" target="ftslist" title="search letter KE"><b>KE</b></a> <a href="whlstf4.htm#bms_KI" target="ftslist" title="search letter KI"><b>KI</b></a> <a href="whlstf4.htm#bms_KN" target="ftslist" title="search letter KN"><b>KN</b></a>  <a href="whnvl32.htm#home" target="_self" title="back to top level"><b>^</b></a></p>\r
+<p class="ftsheader"><a name="subkey_K"></a> <a href="whnvl32.htm#home" target="_self" title="back to top level"><b>^</b></a> <a href="whlstf5.htm#bm_K" target="ftslist" title="search letter K "><b>K </b></a> <a href="whlstf5.htm#bms_KB" target="ftslist" title="search letter KB"><b>KB</b></a> <a href="whlstf5.htm#bms_KE" target="ftslist" title="search letter KE"><b>KE</b></a> <a href="whlstf5.htm#bms_KI" target="ftslist" title="search letter KI"><b>KI</b></a> <a href="whlstf5.htm#bms_KN" target="ftslist" title="search letter KN"><b>KN</b></a>  <a href="whnvl32.htm#home" target="_self" title="back to top level"><b>^</b></a></p>\r
 \r
 </body>\r
 \r
index 338a8c521211a2d33ab6c316601cf5881105fe31..f6196d1dcb98f0094d54f3439235544230f8fb26 100755 (executable)
@@ -37,7 +37,7 @@ body {background-color:White; }
 </head>\r
 <body marginheight="0"  marginwidth="0" bgproperties="fixed">\r
 \r
-<p class="ftsheader"><a name="subkey_L"></a> <a href="whnvl32.htm#home" target="_self" title="back to top level"><b>^</b></a> <a href="whlstf4.htm#bm_L" target="ftslist" title="search letter L "><b>L </b></a> <a href="whlstf4.htm#bms_LA" target="ftslist" title="search letter LA"><b>LA</b></a> <a href="whlstf4.htm#bms_LD" target="ftslist" title="search letter LD"><b>LD</b></a> <a href="whlstf4.htm#bms_LE" target="ftslist" title="search letter LE"><b>LE</b></a> <a href="whlstf4.htm#bms_LI" target="ftslist" title="search letter LI"><b>LI</b></a> <a href="whlstf4.htm#bms_LL" target="ftslist" title="search letter LL"><b>LL</b></a> <a href="whlstf4.htm#bms_LO" target="ftslist" title="search letter LO"><b>LO</b></a>  <a href="whnvl32.htm#home" target="_self" title="back to top level"><b>^</b></a></p>\r
+<p class="ftsheader"><a name="subkey_L"></a> <a href="whnvl32.htm#home" target="_self" title="back to top level"><b>^</b></a> <a href="whlstf5.htm#bm_L" target="ftslist" title="search letter L "><b>L </b></a> <a href="whlstf5.htm#bms_LA" target="ftslist" title="search letter LA"><b>LA</b></a> <a href="whlstf5.htm#bms_LD" target="ftslist" title="search letter LD"><b>LD</b></a> <a href="whlstf5.htm#bms_LE" target="ftslist" title="search letter LE"><b>LE</b></a> <a href="whlstf5.htm#bms_LI" target="ftslist" title="search letter LI"><b>LI</b></a> <a href="whlstf5.htm#bms_LL" target="ftslist" title="search letter LL"><b>LL</b></a> <a href="whlstf5.htm#bms_LO" target="ftslist" title="search letter LO"><b>LO</b></a>  <a href="whnvl32.htm#home" target="_self" title="back to top level"><b>^</b></a></p>\r
 \r
 </body>\r
 \r
index 3e61e9ab9c80dd29ba9e51ccee375b3680c93fff..6595333765f8d7b23a66e7d5c9ea372336bebff0 100755 (executable)
@@ -37,7 +37,7 @@ body {background-color:White; }
 </head>\r
 <body marginheight="0"  marginwidth="0" bgproperties="fixed">\r
 \r
-<p class="ftsheader"><a name="subkey_M"></a> <a href="whnvl32.htm#home" target="_self" title="back to top level"><b>^</b></a> <a href="whlstf5.htm#bm_M" target="ftslist" title="search letter M "><b>M </b></a> <a href="whlstf5.htm#bms_MA" target="ftslist" title="search letter MA"><b>MA</b></a> <a href="whlstf5.htm#bms_ME" target="ftslist" title="search letter ME"><b>ME</b></a> <a href="whlstf5.htm#bms_MI" target="ftslist" title="search letter MI"><b>MI</b></a> <a href="whlstf5.htm#bms_MO" target="ftslist" title="search letter MO"><b>MO</b></a> <a href="whlstf5.htm#bms_MS" target="ftslist" title="search letter MS"><b>MS</b></a> <a href="whlstf5.htm#bms_MU" target="ftslist" title="search letter MU"><b>MU</b></a>  <a href="whnvl32.htm#home" target="_self" title="back to top level"><b>^</b></a></p>\r
+<p class="ftsheader"><a name="subkey_M"></a> <a href="whnvl32.htm#home" target="_self" title="back to top level"><b>^</b></a> <a href="whlstf5.htm#bm_M" target="ftslist" title="search letter M "><b>M </b></a> <a href="whlstf5.htm#bms_MA" target="ftslist" title="search letter MA"><b>MA</b></a> <a href="whlstf5.htm#bms_ME" target="ftslist" title="search letter ME"><b>ME</b></a> <a href="whlstf5.htm#bms_MI" target="ftslist" title="search letter MI"><b>MI</b></a> <a href="whlstf6.htm#bms_MO" target="ftslist" title="search letter MO"><b>MO</b></a> <a href="whlstf6.htm#bms_MS" target="ftslist" title="search letter MS"><b>MS</b></a> <a href="whlstf6.htm#bms_MU" target="ftslist" title="search letter MU"><b>MU</b></a>  <a href="whnvl32.htm#home" target="_self" title="back to top level"><b>^</b></a></p>\r
 \r
 </body>\r
 \r
index 59928e570671e3990494d494133c63c4e219185f..96981f1d168797afaf15bb2ee2317cf36bf3084d 100755 (executable)
@@ -37,7 +37,7 @@ body {background-color:White; }
 </head>\r
 <body marginheight="0"  marginwidth="0" bgproperties="fixed">\r
 \r
-<p class="ftsheader"><a name="subkey_N"></a> <a href="whnvl32.htm#home" target="_self" title="back to top level"><b>^</b></a> <a href="whlstf5.htm#bm_N" target="ftslist" title="search letter N "><b>N </b></a> <a href="whlstf5.htm#bms_NA" target="ftslist" title="search letter NA"><b>NA</b></a> <a href="whlstf5.htm#bms_NE" target="ftslist" title="search letter NE"><b>NE</b></a> <a href="whlstf5.htm#bms_NF" target="ftslist" title="search letter NF"><b>NF</b></a> <a href="whlstf5.htm#bms_NO" target="ftslist" title="search letter NO"><b>NO</b></a> <a href="whlstf5.htm#bms_NU" target="ftslist" title="search letter NU"><b>NU</b></a>  <a href="whnvl32.htm#home" target="_self" title="back to top level"><b>^</b></a></p>\r
+<p class="ftsheader"><a name="subkey_N"></a> <a href="whnvl32.htm#home" target="_self" title="back to top level"><b>^</b></a> <a href="whlstf6.htm#bm_N" target="ftslist" title="search letter N "><b>N </b></a> <a href="whlstf6.htm#bms_NA" target="ftslist" title="search letter NA"><b>NA</b></a> <a href="whlstf6.htm#bms_NE" target="ftslist" title="search letter NE"><b>NE</b></a> <a href="whlstf6.htm#bms_NF" target="ftslist" title="search letter NF"><b>NF</b></a> <a href="whlstf6.htm#bms_NO" target="ftslist" title="search letter NO"><b>NO</b></a> <a href="whlstf6.htm#bms_NT" target="ftslist" title="search letter NT"><b>NT</b></a> <a href="whlstf6.htm#bms_NU" target="ftslist" title="search letter NU"><b>NU</b></a>  <a href="whnvl32.htm#home" target="_self" title="back to top level"><b>^</b></a></p>\r
 \r
 </body>\r
 \r
index 4c8222cf9a79bfd196173e7172e4a555a4bfdc4e..e554261772ab8646b84c1bc44a2f42d946d56542 100755 (executable)
@@ -37,7 +37,7 @@ body {background-color:White; }
 </head>\r
 <body marginheight="0"  marginwidth="0" bgproperties="fixed">\r
 \r
-<p class="ftsheader"><a name="subkey_O"></a> <a href="whnvl32.htm#home" target="_self" title="back to top level"><b>^</b></a> <a href="whlstf5.htm#bm_O" target="ftslist" title="search letter OB"><b>OB</b></a> <a href="whlstf5.htm#bms_OC" target="ftslist" title="search letter OC"><b>OC</b></a> <a href="whlstf5.htm#bms_OF" target="ftslist" title="search letter OF"><b>OF</b></a> <a href="whlstf5.htm#bms_OK" target="ftslist" title="search letter OK"><b>OK</b></a> <a href="whlstf5.htm#bms_OM" target="ftslist" title="search letter OM"><b>OM</b></a> <a href="whlstf6.htm#bms_ON" target="ftslist" title="search letter ON"><b>ON</b></a> <a href="whlstf6.htm#bms_OP" target="ftslist" title="search letter OP"><b>OP</b></a> <a href="whlstf6.htm#bms_OR" target="ftslist" title="search letter OR"><b>OR</b></a> <a href="whlstf6.htm#bms_OS" target="ftslist" title="search letter OS"><b>OS</b></a> <a href="whlstf6.htm#bms_OT" target="ftslist" title="search letter OT"><b>OT</b></a> <a href="whlstf6.htm#bms_OU" target="ftslist" title="search letter OU"><b>OU</b></a> <a href="whlstf6.htm#bms_OV" target="ftslist" title="search letter OV"><b>OV</b></a> <a href="whlstf6.htm#bms_OW" target="ftslist" title="search letter OW"><b>OW</b></a>  <a href="whnvl32.htm#home" target="_self" title="back to top level"><b>^</b></a></p>\r
+<p class="ftsheader"><a name="subkey_O"></a> <a href="whnvl32.htm#home" target="_self" title="back to top level"><b>^</b></a> <a href="whlstf6.htm#bm_O" target="ftslist" title="search letter OB"><b>OB</b></a> <a href="whlstf6.htm#bms_OC" target="ftslist" title="search letter OC"><b>OC</b></a> <a href="whlstf6.htm#bms_OF" target="ftslist" title="search letter OF"><b>OF</b></a> <a href="whlstf6.htm#bms_OK" target="ftslist" title="search letter OK"><b>OK</b></a> <a href="whlstf6.htm#bms_OM" target="ftslist" title="search letter OM"><b>OM</b></a> <a href="whlstf6.htm#bms_ON" target="ftslist" title="search letter ON"><b>ON</b></a> <a href="whlstf6.htm#bms_OP" target="ftslist" title="search letter OP"><b>OP</b></a> <a href="whlstf6.htm#bms_OR" target="ftslist" title="search letter OR"><b>OR</b></a> <a href="whlstf6.htm#bms_OS" target="ftslist" title="search letter OS"><b>OS</b></a> <a href="whlstf6.htm#bms_OT" target="ftslist" title="search letter OT"><b>OT</b></a> <a href="whlstf6.htm#bms_OU" target="ftslist" title="search letter OU"><b>OU</b></a> <a href="whlstf7.htm#bms_OV" target="ftslist" title="search letter OV"><b>OV</b></a> <a href="whlstf7.htm#bms_OW" target="ftslist" title="search letter OW"><b>OW</b></a>  <a href="whnvl32.htm#home" target="_self" title="back to top level"><b>^</b></a></p>\r
 \r
 </body>\r
 \r
index 77bdfd4282d0166ab45b23398e367ce1b660fdac..bba503981ab3ac4472ca842a291f00a82fc8d2a7 100755 (executable)
@@ -37,7 +37,7 @@ body {background-color:White; }
 </head>\r
 <body marginheight="0"  marginwidth="0" bgproperties="fixed">\r
 \r
-<p class="ftsheader"><a name="subkey_P"></a> <a href="whnvl32.htm#home" target="_self" title="back to top level"><b>^</b></a> <a href="whlstf6.htm#bm_P" target="ftslist" title="search letter P "><b>P </b></a> <a href="whlstf6.htm#bms_PA" target="ftslist" title="search letter PA"><b>PA</b></a> <a href="whlstf6.htm#bms_PC" target="ftslist" title="search letter PC"><b>PC</b></a> <a href="whlstf6.htm#bms_PE" target="ftslist" title="search letter PE"><b>PE</b></a> <a href="whlstf6.htm#bms_PH" target="ftslist" title="search letter PH"><b>PH</b></a> <a href="whlstf6.htm#bms_PI" target="ftslist" title="search letter PI"><b>PI</b></a> <a href="whlstf6.htm#bms_PL" target="ftslist" title="search letter PL"><b>PL</b></a> <a href="whlstf6.htm#bms_PN" target="ftslist" title="search letter PN"><b>PN</b></a> <a href="whlstf6.htm#bms_PO" target="ftslist" title="search letter PO"><b>PO</b></a> <a href="whlstf6.htm#bms_PR" target="ftslist" title="search letter PR"><b>PR</b></a> <a href="whlstf7.htm#bms_PU" target="ftslist" title="search letter PU"><b>PU</b></a> <a href="whlstf7.htm#bms_PY" target="ftslist" title="search letter PY"><b>PY</b></a>  <a href="whnvl32.htm#home" target="_self" title="back to top level"><b>^</b></a></p>\r
+<p class="ftsheader"><a name="subkey_P"></a> <a href="whnvl32.htm#home" target="_self" title="back to top level"><b>^</b></a> <a href="whlstf7.htm#bm_P" target="ftslist" title="search letter P "><b>P </b></a> <a href="whlstf7.htm#bms_PA" target="ftslist" title="search letter PA"><b>PA</b></a> <a href="whlstf7.htm#bms_PC" target="ftslist" title="search letter PC"><b>PC</b></a> <a href="whlstf7.htm#bms_PE" target="ftslist" title="search letter PE"><b>PE</b></a> <a href="whlstf7.htm#bms_PH" target="ftslist" title="search letter PH"><b>PH</b></a> <a href="whlstf7.htm#bms_PI" target="ftslist" title="search letter PI"><b>PI</b></a> <a href="whlstf7.htm#bms_PL" target="ftslist" title="search letter PL"><b>PL</b></a> <a href="whlstf7.htm#bms_PO" target="ftslist" title="search letter PO"><b>PO</b></a> <a href="whlstf7.htm#bms_PR" target="ftslist" title="search letter PR"><b>PR</b></a> <a href="whlstf7.htm#bms_PU" target="ftslist" title="search letter PU"><b>PU</b></a> <a href="whlstf8.htm#bms_PY" target="ftslist" title="search letter PY"><b>PY</b></a>  <a href="whnvl32.htm#home" target="_self" title="back to top level"><b>^</b></a></p>\r
 \r
 </body>\r
 \r
index af48e6bf2c985049cdb8e95062064088726181b8..6c199a6f0c77bb66ed186b6cb49f960c00a4b300 100755 (executable)
@@ -37,7 +37,7 @@ body {background-color:White; }
 </head>\r
 <body marginheight="0"  marginwidth="0" bgproperties="fixed">\r
 \r
-<p class="ftsheader"><a name="subkey_Q"></a> <a href="whnvl32.htm#home" target="_self" title="back to top level"><b>^</b></a> <a href="whlstf7.htm#bm_Q" target="ftslist" title="search letter QG"><b>QG</b></a> <a href="whlstf7.htm#bms_QM" target="ftslist" title="search letter QM"><b>QM</b></a> <a href="whlstf7.htm#bms_QT" target="ftslist" title="search letter QT"><b>QT</b></a> <a href="whlstf7.htm#bms_QU" target="ftslist" title="search letter QU"><b>QU</b></a> <a href="whlstf7.htm#bms_QW" target="ftslist" title="search letter QW"><b>QW</b></a>  <a href="whnvl32.htm#home" target="_self" title="back to top level"><b>^</b></a></p>\r
+<p class="ftsheader"><a name="subkey_Q"></a> <a href="whnvl32.htm#home" target="_self" title="back to top level"><b>^</b></a> <a href="whlstf8.htm#bm_Q" target="ftslist" title="search letter QG"><b>QG</b></a> <a href="whlstf8.htm#bms_QM" target="ftslist" title="search letter QM"><b>QM</b></a> <a href="whlstf8.htm#bms_QT" target="ftslist" title="search letter QT"><b>QT</b></a> <a href="whlstf8.htm#bms_QU" target="ftslist" title="search letter QU"><b>QU</b></a> <a href="whlstf8.htm#bms_QW" target="ftslist" title="search letter QW"><b>QW</b></a>  <a href="whnvl32.htm#home" target="_self" title="back to top level"><b>^</b></a></p>\r
 \r
 </body>\r
 \r
index c778328b95b5b35e8827b8997d34396f7acb61f8..4de463e4785b96d5aa4cae79f9ba35fb744f7dba 100755 (executable)
@@ -37,7 +37,7 @@ body {background-color:White; }
 </head>\r
 <body marginheight="0"  marginwidth="0" bgproperties="fixed">\r
 \r
-<p class="ftsheader"><a name="subkey_R"></a> <a href="whnvl32.htm#home" target="_self" title="back to top level"><b>^</b></a> <a href="whlstf7.htm#bm_R" target="ftslist" title="search letter RA"><b>RA</b></a> <a href="whlstf7.htm#bms_RE" target="ftslist" title="search letter RE"><b>RE</b></a> <a href="whlstf7.htm#bms_RI" target="ftslist" title="search letter RI"><b>RI</b></a> <a href="whlstf7.htm#bms_RO" target="ftslist" title="search letter RO"><b>RO</b></a> <a href="whlstf7.htm#bms_RU" target="ftslist" title="search letter RU"><b>RU</b></a>  <a href="whnvl32.htm#home" target="_self" title="back to top level"><b>^</b></a></p>\r
+<p class="ftsheader"><a name="subkey_R"></a> <a href="whnvl32.htm#home" target="_self" title="back to top level"><b>^</b></a> <a href="whlstf8.htm#bm_R" target="ftslist" title="search letter RA"><b>RA</b></a> <a href="whlstf8.htm#bms_RE" target="ftslist" title="search letter RE"><b>RE</b></a> <a href="whlstf8.htm#bms_RI" target="ftslist" title="search letter RI"><b>RI</b></a> <a href="whlstf8.htm#bms_RO" target="ftslist" title="search letter RO"><b>RO</b></a> <a href="whlstf8.htm#bms_RU" target="ftslist" title="search letter RU"><b>RU</b></a>  <a href="whnvl32.htm#home" target="_self" title="back to top level"><b>^</b></a></p>\r
 \r
 </body>\r
 \r
index 381ef0c34db7a5fc382160cf3d22f666f61f3691..36b7d8d58f9be1415c78e28b07ecff51009f0b9e 100755 (executable)
@@ -37,7 +37,7 @@ body {background-color:White; }
 </head>\r
 <body marginheight="0"  marginwidth="0" bgproperties="fixed">\r
 \r
-<p class="ftsheader"><a name="subkey_S"></a> <a href="whnvl32.htm#home" target="_self" title="back to top level"><b>^</b></a> <a href="whlstf7.htm#bm_S" target="ftslist" title="search letter S "><b>S </b></a> <a href="whlstf7.htm#bms_SA" target="ftslist" title="search letter SA"><b>SA</b></a> <a href="whlstf7.htm#bms_SC" target="ftslist" title="search letter SC"><b>SC</b></a> <a href="whlstf7.htm#bms_SE" target="ftslist" title="search letter SE"><b>SE</b></a> <a href="whlstf8.htm#bms_SH" target="ftslist" title="search letter SH"><b>SH</b></a> <a href="whlstf8.htm#bms_SI" target="ftslist" title="search letter SI"><b>SI</b></a> <a href="whlstf8.htm#bms_SK" target="ftslist" title="search letter SK"><b>SK</b></a> <a href="whlstf8.htm#bms_SL" target="ftslist" title="search letter SL"><b>SL</b></a> <a href="whlstf8.htm#bms_SM" target="ftslist" title="search letter SM"><b>SM</b></a> <a href="whlstf8.htm#bms_SO" target="ftslist" title="search letter SO"><b>SO</b></a> <a href="whlstf8.htm#bms_SP" target="ftslist" title="search letter SP"><b>SP</b></a> <a href="whlstf8.htm#bms_ST" target="ftslist" title="search letter ST"><b>ST</b></a> <a href="whlstf8.htm#bms_SU" target="ftslist" title="search letter SU"><b>SU</b></a> <a href="whlstf8.htm#bms_SW" target="ftslist" title="search letter SW"><b>SW</b></a> <a href="whlstf8.htm#bms_SY" target="ftslist" title="search letter SY"><b>SY</b></a>  <a href="whnvl32.htm#home" target="_self" title="back to top level"><b>^</b></a></p>\r
+<p class="ftsheader"><a name="subkey_S"></a> <a href="whnvl32.htm#home" target="_self" title="back to top level"><b>^</b></a> <a href="whlstf8.htm#bm_S" target="ftslist" title="search letter S "><b>S </b></a> <a href="whlstf8.htm#bms_SA" target="ftslist" title="search letter SA"><b>SA</b></a> <a href="whlstf8.htm#bms_SC" target="ftslist" title="search letter SC"><b>SC</b></a> <a href="whlstf8.htm#bms_SE" target="ftslist" title="search letter SE"><b>SE</b></a> <a href="whlstf9.htm#bms_SH" target="ftslist" title="search letter SH"><b>SH</b></a> <a href="whlstf9.htm#bms_SI" target="ftslist" title="search letter SI"><b>SI</b></a> <a href="whlstf9.htm#bms_SK" target="ftslist" title="search letter SK"><b>SK</b></a> <a href="whlstf9.htm#bms_SL" target="ftslist" title="search letter SL"><b>SL</b></a> <a href="whlstf9.htm#bms_SM" target="ftslist" title="search letter SM"><b>SM</b></a> <a href="whlstf9.htm#bms_SO" target="ftslist" title="search letter SO"><b>SO</b></a> <a href="whlstf9.htm#bms_SP" target="ftslist" title="search letter SP"><b>SP</b></a> <a href="whlstf9.htm#bms_ST" target="ftslist" title="search letter ST"><b>ST</b></a> <a href="whlstf9.htm#bms_SU" target="ftslist" title="search letter SU"><b>SU</b></a> <a href="whlstf9.htm#bms_SW" target="ftslist" title="search letter SW"><b>SW</b></a> <a href="whlstf9.htm#bms_SY" target="ftslist" title="search letter SY"><b>SY</b></a>  <a href="whnvl32.htm#home" target="_self" title="back to top level"><b>^</b></a></p>\r
 \r
 </body>\r
 \r
index c83dd9bd09aa3e99311f3983183a81bad50340ff..c26cc5c522daa8fb0b0aedb7b889b2524ec64e5d 100755 (executable)
@@ -37,7 +37,7 @@ body {background-color:White; }
 </head>\r
 <body marginheight="0"  marginwidth="0" bgproperties="fixed">\r
 \r
-<p class="ftsheader"><a name="subkey_B"></a> <a href="whnvl32.htm#home" target="_self" title="back to top level"><b>^</b></a> <a href="whlstf0.htm#bm_B" target="ftslist" title="search letter B "><b>B </b></a> <a href="whlstf0.htm#bms_BA" target="ftslist" title="search letter BA"><b>BA</b></a> <a href="whlstf0.htm#bms_BE" target="ftslist" title="search letter BE"><b>BE</b></a> <a href="whlstf0.htm#bms_BI" target="ftslist" title="search letter BI"><b>BI</b></a> <a href="whlstf0.htm#bms_BL" target="ftslist" title="search letter BL"><b>BL</b></a> <a href="whlstf0.htm#bms_BM" target="ftslist" title="search letter BM"><b>BM</b></a> <a href="whlstf0.htm#bms_BO" target="ftslist" title="search letter BO"><b>BO</b></a> <a href="whlstf0.htm#bms_BR" target="ftslist" title="search letter BR"><b>BR</b></a> <a href="whlstf0.htm#bms_BU" target="ftslist" title="search letter BU"><b>BU</b></a>  <a href="whnvl32.htm#home" target="_self" title="back to top level"><b>^</b></a></p>\r
+<p class="ftsheader"><a name="subkey_B"></a> <a href="whnvl32.htm#home" target="_self" title="back to top level"><b>^</b></a> <a href="whlstf0.htm#bm_B" target="ftslist" title="search letter B "><b>B </b></a> <a href="whlstf0.htm#bms_BA" target="ftslist" title="search letter BA"><b>BA</b></a> <a href="whlstf0.htm#bms_BE" target="ftslist" title="search letter BE"><b>BE</b></a> <a href="whlstf0.htm#bms_BI" target="ftslist" title="search letter BI"><b>BI</b></a> <a href="whlstf0.htm#bms_BL" target="ftslist" title="search letter BL"><b>BL</b></a> <a href="whlstf0.htm#bms_BO" target="ftslist" title="search letter BO"><b>BO</b></a> <a href="whlstf1.htm#bms_BR" target="ftslist" title="search letter BR"><b>BR</b></a> <a href="whlstf1.htm#bms_BU" target="ftslist" title="search letter BU"><b>BU</b></a>  <a href="whnvl32.htm#home" target="_self" title="back to top level"><b>^</b></a></p>\r
 \r
 </body>\r
 \r
index 57a4e512480d6abcb9e7260716f28f3f2ea13bb4..7c8c764d7283aadf64ef7664a0d4a23250cfaf8e 100755 (executable)
@@ -37,7 +37,7 @@ body {background-color:White; }
 </head>\r
 <body marginheight="0"  marginwidth="0" bgproperties="fixed">\r
 \r
-<p class="ftsheader"><a name="subkey_T"></a> <a href="whnvl32.htm#home" target="_self" title="back to top level"><b>^</b></a> <a href="whlstf8.htm#bm_T" target="ftslist" title="search letter T "><b>T </b></a> <a href="whlstf8.htm#bms_TA" target="ftslist" title="search letter TA"><b>TA</b></a> <a href="whlstf8.htm#bms_TC" target="ftslist" title="search letter TC"><b>TC</b></a> <a href="whlstf8.htm#bms_TE" target="ftslist" title="search letter TE"><b>TE</b></a> <a href="whlstf9.htm#bms_TH" target="ftslist" title="search letter TH"><b>TH</b></a> <a href="whlstf9.htm#bms_TI" target="ftslist" title="search letter TI"><b>TI</b></a> <a href="whlstf9.htm#bms_TK" target="ftslist" title="search letter TK"><b>TK</b></a> <a href="whlstf9.htm#bms_TM" target="ftslist" title="search letter TM"><b>TM</b></a> <a href="whlstf9.htm#bms_TO" target="ftslist" title="search letter TO"><b>TO</b></a> <a href="whlstf9.htm#bms_TR" target="ftslist" title="search letter TR"><b>TR</b></a> <a href="whlstf9.htm#bms_TW" target="ftslist" title="search letter TW"><b>TW</b></a> <a href="whlstf9.htm#bms_TY" target="ftslist" title="search letter TY"><b>TY</b></a>  <a href="whnvl32.htm#home" target="_self" title="back to top level"><b>^</b></a></p>\r
+<p class="ftsheader"><a name="subkey_T"></a> <a href="whnvl32.htm#home" target="_self" title="back to top level"><b>^</b></a> <a href="whlstf9.htm#bm_T" target="ftslist" title="search letter T "><b>T </b></a> <a href="whlstf9.htm#bms_TA" target="ftslist" title="search letter TA"><b>TA</b></a> <a href="whlstf9.htm#bms_TC" target="ftslist" title="search letter TC"><b>TC</b></a> <a href="whlstf10.htm#bms_TE" target="ftslist" title="search letter TE"><b>TE</b></a> <a href="whlstf10.htm#bms_TH" target="ftslist" title="search letter TH"><b>TH</b></a> <a href="whlstf10.htm#bms_TI" target="ftslist" title="search letter TI"><b>TI</b></a> <a href="whlstf10.htm#bms_TK" target="ftslist" title="search letter TK"><b>TK</b></a> <a href="whlstf10.htm#bms_TM" target="ftslist" title="search letter TM"><b>TM</b></a> <a href="whlstf10.htm#bms_TO" target="ftslist" title="search letter TO"><b>TO</b></a> <a href="whlstf10.htm#bms_TR" target="ftslist" title="search letter TR"><b>TR</b></a> <a href="whlstf10.htm#bms_TW" target="ftslist" title="search letter TW"><b>TW</b></a> <a href="whlstf10.htm#bms_TY" target="ftslist" title="search letter TY"><b>TY</b></a>  <a href="whnvl32.htm#home" target="_self" title="back to top level"><b>^</b></a></p>\r
 \r
 </body>\r
 \r
index 771be3cce46a920aa30976a30722f6c2f4714426..27427bb844c082aa9895797ac453dc775d05ff61 100755 (executable)
@@ -37,7 +37,7 @@ body {background-color:White; }
 </head>\r
 <body marginheight="0"  marginwidth="0" bgproperties="fixed">\r
 \r
-<p class="ftsheader"><a name="subkey_U"></a> <a href="whnvl32.htm#home" target="_self" title="back to top level"><b>^</b></a> <a href="whlstf9.htm#bm_U" target="ftslist" title="search letter U "><b>U </b></a> <a href="whlstf9.htm#bms_UL" target="ftslist" title="search letter UL"><b>UL</b></a> <a href="whlstf9.htm#bms_UN" target="ftslist" title="search letter UN"><b>UN</b></a> <a href="whlstf9.htm#bms_UP" target="ftslist" title="search letter UP"><b>UP</b></a> <a href="whlstf9.htm#bms_US" target="ftslist" title="search letter US"><b>US</b></a> <a href="whlstf9.htm#bms_UT" target="ftslist" title="search letter UT"><b>UT</b></a>  <a href="whnvl32.htm#home" target="_self" title="back to top level"><b>^</b></a></p>\r
+<p class="ftsheader"><a name="subkey_U"></a> <a href="whnvl32.htm#home" target="_self" title="back to top level"><b>^</b></a> <a href="whlstf10.htm#bm_U" target="ftslist" title="search letter U "><b>U </b></a> <a href="whlstf10.htm#bms_UL" target="ftslist" title="search letter UL"><b>UL</b></a> <a href="whlstf10.htm#bms_UN" target="ftslist" title="search letter UN"><b>UN</b></a> <a href="whlstf10.htm#bms_UP" target="ftslist" title="search letter UP"><b>UP</b></a> <a href="whlstf10.htm#bms_US" target="ftslist" title="search letter US"><b>US</b></a> <a href="whlstf10.htm#bms_UT" target="ftslist" title="search letter UT"><b>UT</b></a>  <a href="whnvl32.htm#home" target="_self" title="back to top level"><b>^</b></a></p>\r
 \r
 </body>\r
 \r
index 37c2a5abbc8d60afe98d20badf4eb929afc2e1f3..879898dd8760aa3a6e65cb37a904c83b57267f22 100755 (executable)
@@ -37,7 +37,7 @@ body {background-color:White; }
 </head>\r
 <body marginheight="0"  marginwidth="0" bgproperties="fixed">\r
 \r
-<p class="ftsheader"><a name="subkey_V"></a> <a href="whnvl32.htm#home" target="_self" title="back to top level"><b>^</b></a> <a href="whlstf9.htm#bm_V" target="ftslist" title="search letter V "><b>V </b></a> <a href="whlstf9.htm#bms_VA" target="ftslist" title="search letter VA"><b>VA</b></a> <a href="whlstf9.htm#bms_VE" target="ftslist" title="search letter VE"><b>VE</b></a> <a href="whlstf9.htm#bms_VI" target="ftslist" title="search letter VI"><b>VI</b></a> <a href="whlstf9.htm#bms_VT" target="ftslist" title="search letter VT"><b>VT</b></a>  <a href="whnvl32.htm#home" target="_self" title="back to top level"><b>^</b></a></p>\r
+<p class="ftsheader"><a name="subkey_V"></a> <a href="whnvl32.htm#home" target="_self" title="back to top level"><b>^</b></a> <a href="whlstf10.htm#bm_V" target="ftslist" title="search letter V "><b>V </b></a> <a href="whlstf10.htm#bms_VA" target="ftslist" title="search letter VA"><b>VA</b></a> <a href="whlstf10.htm#bms_VE" target="ftslist" title="search letter VE"><b>VE</b></a> <a href="whlstf10.htm#bms_VI" target="ftslist" title="search letter VI"><b>VI</b></a> <a href="whlstf11.htm#bms_VT" target="ftslist" title="search letter VT"><b>VT</b></a>  <a href="whnvl32.htm#home" target="_self" title="back to top level"><b>^</b></a></p>\r
 \r
 </body>\r
 \r
index 9b8f9ed25f166152811d6a6639fa141c720dfe2d..dbfc614245090bb12ad43562bcf317b57ea7e380 100755 (executable)
@@ -37,7 +37,7 @@ body {background-color:White; }
 </head>\r
 <body marginheight="0"  marginwidth="0" bgproperties="fixed">\r
 \r
-<p class="ftsheader"><a name="subkey_W"></a> <a href="whnvl32.htm#home" target="_self" title="back to top level"><b>^</b></a> <a href="whlstf9.htm#bm_W" target="ftslist" title="search letter WA"><b>WA</b></a> <a href="whlstf9.htm#bms_WE" target="ftslist" title="search letter WE"><b>WE</b></a> <a href="whlstf9.htm#bms_WH" target="ftslist" title="search letter WH"><b>WH</b></a> <a href="whlstf9.htm#bms_WI" target="ftslist" title="search letter WI"><b>WI</b></a> <a href="whlstf10.htm#bms_WO" target="ftslist" title="search letter WO"><b>WO</b></a> <a href="whlstf10.htm#bms_WR" target="ftslist" title="search letter WR"><b>WR</b></a> <a href="whlstf10.htm#bms_WW" target="ftslist" title="search letter WW"><b>WW</b></a>  <a href="whnvl32.htm#home" target="_self" title="back to top level"><b>^</b></a></p>\r
+<p class="ftsheader"><a name="subkey_W"></a> <a href="whnvl32.htm#home" target="_self" title="back to top level"><b>^</b></a> <a href="whlstf11.htm#bm_W" target="ftslist" title="search letter WA"><b>WA</b></a> <a href="whlstf11.htm#bms_WE" target="ftslist" title="search letter WE"><b>WE</b></a> <a href="whlstf11.htm#bms_WH" target="ftslist" title="search letter WH"><b>WH</b></a> <a href="whlstf11.htm#bms_WI" target="ftslist" title="search letter WI"><b>WI</b></a> <a href="whlstf11.htm#bms_WO" target="ftslist" title="search letter WO"><b>WO</b></a> <a href="whlstf11.htm#bms_WR" target="ftslist" title="search letter WR"><b>WR</b></a> <a href="whlstf11.htm#bms_WW" target="ftslist" title="search letter WW"><b>WW</b></a>  <a href="whnvl32.htm#home" target="_self" title="back to top level"><b>^</b></a></p>\r
 \r
 </body>\r
 \r
index 57f810f5879442ac255b021070121394e729d6cb..d94d11c3969ccf7ac7a8c14422659b71c5e05b6d 100755 (executable)
@@ -37,7 +37,7 @@ body {background-color:White; }
 </head>\r
 <body marginheight="0"  marginwidth="0" bgproperties="fixed">\r
 \r
-<p class="ftsheader"><a name="subkey_X"></a> <a href="whnvl32.htm#home" target="_self" title="back to top level"><b>^</b></a> <a href="whlstf10.htm#bm_X" target="ftslist" title="search letter X "><b>X </b></a> <a href="whlstf10.htm#bms_XM" target="ftslist" title="search letter XM"><b>XM</b></a> <a href="whlstf10.htm#bms_XT" target="ftslist" title="search letter XT"><b>XT</b></a> <a href="whlstf10.htm#bms_XX" target="ftslist" title="search letter XX"><b>XX</b></a>  <a href="whnvl32.htm#home" target="_self" title="back to top level"><b>^</b></a></p>\r
+<p class="ftsheader"><a name="subkey_X"></a> <a href="whnvl32.htm#home" target="_self" title="back to top level"><b>^</b></a> <a href="whlstf11.htm#bm_X" target="ftslist" title="search letter X "><b>X </b></a> <a href="whlstf11.htm#bms_XM" target="ftslist" title="search letter XM"><b>XM</b></a> <a href="whlstf11.htm#bms_XT" target="ftslist" title="search letter XT"><b>XT</b></a> <a href="whlstf11.htm#bms_XX" target="ftslist" title="search letter XX"><b>XX</b></a>  <a href="whnvl32.htm#home" target="_self" title="back to top level"><b>^</b></a></p>\r
 \r
 </body>\r
 \r
index 6e9da114e8330a0d3e73cd3197efdf3d46434dba..0d5021f175af69efff24a54c1dba84ad795515a0 100755 (executable)
@@ -37,7 +37,7 @@ body {background-color:White; }
 </head>\r
 <body marginheight="0"  marginwidth="0" bgproperties="fixed">\r
 \r
-<p class="ftsheader"><a name="subkey_Y"></a> <a href="whnvl32.htm#home" target="_self" title="back to top level"><b>^</b></a> <a href="whlstf10.htm#bm_Y" target="ftslist" title="search letter Y "><b>Y </b></a> <a href="whlstf10.htm#bms_YE" target="ftslist" title="search letter YE"><b>YE</b></a> <a href="whlstf10.htm#bms_YO" target="ftslist" title="search letter YO"><b>YO</b></a>  <a href="whnvl32.htm#home" target="_self" title="back to top level"><b>^</b></a></p>\r
+<p class="ftsheader"><a name="subkey_Y"></a> <a href="whnvl32.htm#home" target="_self" title="back to top level"><b>^</b></a> <a href="whlstf11.htm#bm_Y" target="ftslist" title="search letter Y "><b>Y </b></a> <a href="whlstf11.htm#bms_YE" target="ftslist" title="search letter YE"><b>YE</b></a> <a href="whlstf11.htm#bms_YO" target="ftslist" title="search letter YO"><b>YO</b></a>  <a href="whnvl32.htm#home" target="_self" title="back to top level"><b>^</b></a></p>\r
 \r
 </body>\r
 \r
index c7f49d69cff6a89d92fad52d713197145c48ca5f..63229948cf71ec6dd7375d16a5031a5192131b9d 100755 (executable)
@@ -37,7 +37,7 @@ body {background-color:White; }
 </head>\r
 <body marginheight="0"  marginwidth="0" bgproperties="fixed">\r
 \r
-<p class="ftsheader"><a name="subkey_C"></a> <a href="whnvl32.htm#home" target="_self" title="back to top level"><b>^</b></a> <a href="whlstf0.htm#bm_C" target="ftslist" title="search letter C "><b>C </b></a> <a href="whlstf0.htm#bms_CA" target="ftslist" title="search letter CA"><b>CA</b></a> <a href="whlstf1.htm#bms_CD" target="ftslist" title="search letter CD"><b>CD</b></a> <a href="whlstf1.htm#bms_CE" target="ftslist" title="search letter CE"><b>CE</b></a> <a href="whlstf1.htm#bms_CH" target="ftslist" title="search letter CH"><b>CH</b></a> <a href="whlstf1.htm#bms_CL" target="ftslist" title="search letter CL"><b>CL</b></a> <a href="whlstf1.htm#bms_CO" target="ftslist" title="search letter CO"><b>CO</b></a> <a href="whlstf1.htm#bms_CP" target="ftslist" title="search letter CP"><b>CP</b></a> <a href="whlstf1.htm#bms_CR" target="ftslist" title="search letter CR"><b>CR</b></a> <a href="whlstf1.htm#bms_CS" target="ftslist" title="search letter CS"><b>CS</b></a> <a href="whlstf1.htm#bms_CU" target="ftslist" title="search letter CU"><b>CU</b></a> <a href="whlstf1.htm#bms_CY" target="ftslist" title="search letter CY"><b>CY</b></a>  <a href="whnvl32.htm#home" target="_self" title="back to top level"><b>^</b></a></p>\r
+<p class="ftsheader"><a name="subkey_C"></a> <a href="whnvl32.htm#home" target="_self" title="back to top level"><b>^</b></a> <a href="whlstf1.htm#bm_C" target="ftslist" title="search letter C "><b>C </b></a> <a href="whlstf1.htm#bms_CA" target="ftslist" title="search letter CA"><b>CA</b></a> <a href="whlstf1.htm#bms_CD" target="ftslist" title="search letter CD"><b>CD</b></a> <a href="whlstf1.htm#bms_CE" target="ftslist" title="search letter CE"><b>CE</b></a> <a href="whlstf1.htm#bms_CH" target="ftslist" title="search letter CH"><b>CH</b></a> <a href="whlstf1.htm#bms_CL" target="ftslist" title="search letter CL"><b>CL</b></a> <a href="whlstf1.htm#bms_CO" target="ftslist" title="search letter CO"><b>CO</b></a> <a href="whlstf2.htm#bms_CP" target="ftslist" title="search letter CP"><b>CP</b></a> <a href="whlstf2.htm#bms_CR" target="ftslist" title="search letter CR"><b>CR</b></a> <a href="whlstf2.htm#bms_CS" target="ftslist" title="search letter CS"><b>CS</b></a> <a href="whlstf2.htm#bms_CT" target="ftslist" title="search letter CT"><b>CT</b></a> <a href="whlstf2.htm#bms_CU" target="ftslist" title="search letter CU"><b>CU</b></a> <a href="whlstf2.htm#bms_CY" target="ftslist" title="search letter CY"><b>CY</b></a>  <a href="whnvl32.htm#home" target="_self" title="back to top level"><b>^</b></a></p>\r
 \r
 </body>\r
 \r
index 1bafa4511ba64adfedff35434e5f8e0338132837..78a5ee3c595a5c364b7c0fdc3373f67f1e5954df 100755 (executable)
@@ -37,7 +37,7 @@ body {background-color:White; }
 </head>\r
 <body marginheight="0"  marginwidth="0" bgproperties="fixed">\r
 \r
-<p class="ftsheader"><a name="subkey_E"></a> <a href="whnvl32.htm#home" target="_self" title="back to top level"><b>^</b></a> <a href="whlstf2.htm#bm_E" target="ftslist" title="search letter E "><b>E </b></a> <a href="whlstf2.htm#bms_EA" target="ftslist" title="search letter EA"><b>EA</b></a> <a href="whlstf2.htm#bms_EC" target="ftslist" title="search letter EC"><b>EC</b></a> <a href="whlstf2.htm#bms_ED" target="ftslist" title="search letter ED"><b>ED</b></a> <a href="whlstf2.htm#bms_EF" target="ftslist" title="search letter EF"><b>EF</b></a> <a href="whlstf2.htm#bms_EG" target="ftslist" title="search letter EG"><b>EG</b></a> <a href="whlstf2.htm#bms_EI" target="ftslist" title="search letter EI"><b>EI</b></a> <a href="whlstf2.htm#bms_EL" target="ftslist" title="search letter EL"><b>EL</b></a> <a href="whlstf2.htm#bms_EM" target="ftslist" title="search letter EM"><b>EM</b></a> <a href="whlstf2.htm#bms_EN" target="ftslist" title="search letter EN"><b>EN</b></a> <a href="whlstf2.htm#bms_EQ" target="ftslist" title="search letter EQ"><b>EQ</b></a> <a href="whlstf2.htm#bms_ER" target="ftslist" title="search letter ER"><b>ER</b></a> <a href="whlstf2.htm#bms_ET" target="ftslist" title="search letter ET"><b>ET</b></a> <a href="whlstf2.htm#bms_EV" target="ftslist" title="search letter EV"><b>EV</b></a> <a href="whlstf2.htm#bms_EX" target="ftslist" title="search letter EX"><b>EX</b></a>  <a href="whnvl32.htm#home" target="_self" title="back to top level"><b>^</b></a></p>\r
+<p class="ftsheader"><a name="subkey_E"></a> <a href="whnvl32.htm#home" target="_self" title="back to top level"><b>^</b></a> <a href="whlstf2.htm#bm_E" target="ftslist" title="search letter E "><b>E </b></a> <a href="whlstf2.htm#bms_EA" target="ftslist" title="search letter EA"><b>EA</b></a> <a href="whlstf2.htm#bms_EC" target="ftslist" title="search letter EC"><b>EC</b></a> <a href="whlstf2.htm#bms_ED" target="ftslist" title="search letter ED"><b>ED</b></a> <a href="whlstf2.htm#bms_EF" target="ftslist" title="search letter EF"><b>EF</b></a> <a href="whlstf3.htm#bms_EG" target="ftslist" title="search letter EG"><b>EG</b></a> <a href="whlstf3.htm#bms_EI" target="ftslist" title="search letter EI"><b>EI</b></a> <a href="whlstf3.htm#bms_EL" target="ftslist" title="search letter EL"><b>EL</b></a> <a href="whlstf3.htm#bms_EM" target="ftslist" title="search letter EM"><b>EM</b></a> <a href="whlstf3.htm#bms_EN" target="ftslist" title="search letter EN"><b>EN</b></a> <a href="whlstf3.htm#bms_EQ" target="ftslist" title="search letter EQ"><b>EQ</b></a> <a href="whlstf3.htm#bms_ER" target="ftslist" title="search letter ER"><b>ER</b></a> <a href="whlstf3.htm#bms_ET" target="ftslist" title="search letter ET"><b>ET</b></a> <a href="whlstf3.htm#bms_EV" target="ftslist" title="search letter EV"><b>EV</b></a> <a href="whlstf3.htm#bms_EX" target="ftslist" title="search letter EX"><b>EX</b></a>  <a href="whnvl32.htm#home" target="_self" title="back to top level"><b>^</b></a></p>\r
 \r
 </body>\r
 \r
index a2b80306e4bf5566b6bce78d574e8b2fd663b717..10201d4f06a8f8970bb782bcd54e9b84d415ba4a 100755 (executable)
@@ -37,7 +37,7 @@ body {background-color:White; }
 </head>\r
 <body marginheight="0"  marginwidth="0" bgproperties="fixed">\r
 \r
-<p class="ftsheader"><a name="subkey_F"></a> <a href="whnvl32.htm#home" target="_self" title="back to top level"><b>^</b></a> <a href="whlstf3.htm#bm_F" target="ftslist" title="search letter F "><b>F </b></a> <a href="whlstf3.htm#bms_FA" target="ftslist" title="search letter FA"><b>FA</b></a> <a href="whlstf3.htm#bms_FE" target="ftslist" title="search letter FE"><b>FE</b></a> <a href="whlstf3.htm#bms_FI" target="ftslist" title="search letter FI"><b>FI</b></a> <a href="whlstf3.htm#bms_FL" target="ftslist" title="search letter FL"><b>FL</b></a> <a href="whlstf3.htm#bms_FO" target="ftslist" title="search letter FO"><b>FO</b></a> <a href="whlstf3.htm#bms_FR" target="ftslist" title="search letter FR"><b>FR</b></a> <a href="whlstf3.htm#bms_FU" target="ftslist" title="search letter FU"><b>FU</b></a>  <a href="whnvl32.htm#home" target="_self" title="back to top level"><b>^</b></a></p>\r
+<p class="ftsheader"><a name="subkey_F"></a> <a href="whnvl32.htm#home" target="_self" title="back to top level"><b>^</b></a> <a href="whlstf3.htm#bm_F" target="ftslist" title="search letter F "><b>F </b></a> <a href="whlstf3.htm#bms_FA" target="ftslist" title="search letter FA"><b>FA</b></a> <a href="whlstf3.htm#bms_FE" target="ftslist" title="search letter FE"><b>FE</b></a> <a href="whlstf3.htm#bms_FI" target="ftslist" title="search letter FI"><b>FI</b></a> <a href="whlstf3.htm#bms_FL" target="ftslist" title="search letter FL"><b>FL</b></a> <a href="whlstf3.htm#bms_FO" target="ftslist" title="search letter FO"><b>FO</b></a> <a href="whlstf3.htm#bms_FP" target="ftslist" title="search letter FP"><b>FP</b></a> <a href="whlstf3.htm#bms_FR" target="ftslist" title="search letter FR"><b>FR</b></a> <a href="whlstf3.htm#bms_FU" target="ftslist" title="search letter FU"><b>FU</b></a>  <a href="whnvl32.htm#home" target="_self" title="back to top level"><b>^</b></a></p>\r
 \r
 </body>\r
 \r
index 7f7712e432f65589cc284c0bb12538150c80ca73..7a00ab29c8a7fa33068883607ea6e0270e2acd2e 100755 (executable)
@@ -37,7 +37,7 @@ body {background-color:White; }
 </head>\r
 <body marginheight="0"  marginwidth="0" bgproperties="fixed">\r
 \r
-<p class="ftsheader"><a name="subkey_G"></a> <a href="whnvl32.htm#home" target="_self" title="back to top level"><b>^</b></a> <a href="whlstf3.htm#bm_G" target="ftslist" title="search letter G "><b>G </b></a> <a href="whlstf3.htm#bms_GC" target="ftslist" title="search letter GC"><b>GC</b></a> <a href="whlstf3.htm#bms_GE" target="ftslist" title="search letter GE"><b>GE</b></a> <a href="whlstf3.htm#bms_GI" target="ftslist" title="search letter GI"><b>GI</b></a> <a href="whlstf3.htm#bms_GL" target="ftslist" title="search letter GL"><b>GL</b></a> <a href="whlstf3.htm#bms_GO" target="ftslist" title="search letter GO"><b>GO</b></a> <a href="whlstf3.htm#bms_GR" target="ftslist" title="search letter GR"><b>GR</b></a> <a href="whlstf3.htm#bms_GU" target="ftslist" title="search letter GU"><b>GU</b></a>  <a href="whnvl32.htm#home" target="_self" title="back to top level"><b>^</b></a></p>\r
+<p class="ftsheader"><a name="subkey_G"></a> <a href="whnvl32.htm#home" target="_self" title="back to top level"><b>^</b></a> <a href="whlstf3.htm#bm_G" target="ftslist" title="search letter G "><b>G </b></a> <a href="whlstf3.htm#bms_GA" target="ftslist" title="search letter GA"><b>GA</b></a> <a href="whlstf3.htm#bms_GC" target="ftslist" title="search letter GC"><b>GC</b></a> <a href="whlstf3.htm#bms_GE" target="ftslist" title="search letter GE"><b>GE</b></a> <a href="whlstf4.htm#bms_GI" target="ftslist" title="search letter GI"><b>GI</b></a> <a href="whlstf4.htm#bms_GL" target="ftslist" title="search letter GL"><b>GL</b></a> <a href="whlstf4.htm#bms_GO" target="ftslist" title="search letter GO"><b>GO</b></a> <a href="whlstf4.htm#bms_GR" target="ftslist" title="search letter GR"><b>GR</b></a> <a href="whlstf4.htm#bms_GU" target="ftslist" title="search letter GU"><b>GU</b></a>  <a href="whnvl32.htm#home" target="_self" title="back to top level"><b>^</b></a></p>\r
 \r
 </body>\r
 \r
index e855677421fc8aab41fd637ab78a4c9581a9e5f2..92d8b978cce8a1a3d4090aec4e6d1f8b42d250ed 100755 (executable)
@@ -37,7 +37,7 @@ body {background-color:White; }
 </head>\r
 <body marginheight="0"  marginwidth="0" bgproperties="fixed">\r
 \r
-<p class="ftsheader"><a name="subkey_H"></a> <a href="whnvl32.htm#home" target="_self" title="back to top level"><b>^</b></a> <a href="whlstf3.htm#bm_H" target="ftslist" title="search letter H "><b>H </b></a> <a href="whlstf3.htm#bms_HA" target="ftslist" title="search letter HA"><b>HA</b></a> <a href="whlstf3.htm#bms_HD" target="ftslist" title="search letter HD"><b>HD</b></a> <a href="whlstf3.htm#bms_HE" target="ftslist" title="search letter HE"><b>HE</b></a> <a href="whlstf3.htm#bms_HI" target="ftslist" title="search letter HI"><b>HI</b></a> <a href="whlstf3.htm#bms_HO" target="ftslist" title="search letter HO"><b>HO</b></a> <a href="whlstf3.htm#bms_HP" target="ftslist" title="search letter HP"><b>HP</b></a> <a href="whlstf3.htm#bms_HT" target="ftslist" title="search letter HT"><b>HT</b></a> <a href="whlstf3.htm#bms_HX" target="ftslist" title="search letter HX"><b>HX</b></a>  <a href="whnvl32.htm#home" target="_self" title="back to top level"><b>^</b></a></p>\r
+<p class="ftsheader"><a name="subkey_H"></a> <a href="whnvl32.htm#home" target="_self" title="back to top level"><b>^</b></a> <a href="whlstf4.htm#bm_H" target="ftslist" title="search letter H "><b>H </b></a> <a href="whlstf4.htm#bms_HA" target="ftslist" title="search letter HA"><b>HA</b></a> <a href="whlstf4.htm#bms_HD" target="ftslist" title="search letter HD"><b>HD</b></a> <a href="whlstf4.htm#bms_HE" target="ftslist" title="search letter HE"><b>HE</b></a> <a href="whlstf4.htm#bms_HI" target="ftslist" title="search letter HI"><b>HI</b></a> <a href="whlstf4.htm#bms_HO" target="ftslist" title="search letter HO"><b>HO</b></a> <a href="whlstf4.htm#bms_HP" target="ftslist" title="search letter HP"><b>HP</b></a> <a href="whlstf4.htm#bms_HT" target="ftslist" title="search letter HT"><b>HT</b></a> <a href="whlstf4.htm#bms_HX" target="ftslist" title="search letter HX"><b>HX</b></a>  <a href="whnvl32.htm#home" target="_self" title="back to top level"><b>^</b></a></p>\r
 \r
 </body>\r
 \r
index bbac4d23576c475cabf5421c02f1c01f3e29a778..e0c21837458faa25160858caafa2abc90e97f3d6 100755 (executable)
@@ -37,7 +37,7 @@ body {background-color:White; }
 </head>\r
 <body marginheight="0"  marginwidth="0" bgproperties="fixed">\r
 \r
-<p class="ftsheader"><a name="subkey_I"></a> <a href="whnvl32.htm#home" target="_self" title="back to top level"><b>^</b></a> <a href="whlstf3.htm#bm_I" target="ftslist" title="search letter I "><b>I </b></a> <a href="whlstf3.htm#bms_IA" target="ftslist" title="search letter IA"><b>IA</b></a> <a href="whlstf3.htm#bms_IC" target="ftslist" title="search letter IC"><b>IC</b></a> <a href="whlstf3.htm#bms_ID" target="ftslist" title="search letter ID"><b>ID</b></a> <a href="whlstf3.htm#bms_IE" target="ftslist" title="search letter IE"><b>IE</b></a> <a href="whlstf4.htm#bms_IF" target="ftslist" title="search letter IF"><b>IF</b></a> <a href="whlstf4.htm#bms_IG" target="ftslist" title="search letter IG"><b>IG</b></a> <a href="whlstf4.htm#bms_IM" target="ftslist" title="search letter IM"><b>IM</b></a> <a href="whlstf4.htm#bms_IN" target="ftslist" title="search letter IN"><b>IN</b></a> <a href="whlstf4.htm#bms_IO" target="ftslist" title="search letter IO"><b>IO</b></a> <a href="whlstf4.htm#bms_IS" target="ftslist" title="search letter IS"><b>IS</b></a> <a href="whlstf4.htm#bms_IT" target="ftslist" title="search letter IT"><b>IT</b></a>  <a href="whnvl32.htm#home" target="_self" title="back to top level"><b>^</b></a></p>\r
+<p class="ftsheader"><a name="subkey_I"></a> <a href="whnvl32.htm#home" target="_self" title="back to top level"><b>^</b></a> <a href="whlstf4.htm#bm_I" target="ftslist" title="search letter I "><b>I </b></a> <a href="whlstf4.htm#bms_IC" target="ftslist" title="search letter IC"><b>IC</b></a> <a href="whlstf4.htm#bms_ID" target="ftslist" title="search letter ID"><b>ID</b></a> <a href="whlstf4.htm#bms_IE" target="ftslist" title="search letter IE"><b>IE</b></a> <a href="whlstf4.htm#bms_IF" target="ftslist" title="search letter IF"><b>IF</b></a> <a href="whlstf4.htm#bms_IG" target="ftslist" title="search letter IG"><b>IG</b></a> <a href="whlstf4.htm#bms_IM" target="ftslist" title="search letter IM"><b>IM</b></a> <a href="whlstf4.htm#bms_IN" target="ftslist" title="search letter IN"><b>IN</b></a> <a href="whlstf5.htm#bms_IO" target="ftslist" title="search letter IO"><b>IO</b></a> <a href="whlstf5.htm#bms_IS" target="ftslist" title="search letter IS"><b>IS</b></a> <a href="whlstf5.htm#bms_IT" target="ftslist" title="search letter IT"><b>IT</b></a>  <a href="whnvl32.htm#home" target="_self" title="back to top level"><b>^</b></a></p>\r
 \r
 </body>\r
 \r
index 7076ae1a327ac9b5a42740fc052a0d05685d4b49..f96fbc25cc3001235e0f598d39d22f1606dcc69a 100755 (executable)
@@ -41,11 +41,9 @@ img {vertial-align:middle;}
 <nobr><a name="1"></a><a href="whlstt1.htm#1" target="_self" title="closed book"><img src="../wht_toc1.gif" border="0" align="absmiddle"> Using this reference manual</a></nobr><br>\r
 <nobr><a name="2"></a><a href="whlstt2.htm#2" target="_self" title="closed book"><img src="../wht_toc1.gif" border="0" align="absmiddle"> About SALOME</a></nobr><br>\r
 <nobr><a name="3"></a><a href="whlstt0.htm#3" target="_self"><img src="../wht_toc2.gif" border="0" align="absmiddle"> GUI module</a></nobr><br>\r
-&nbsp;&nbsp;&nbsp;<nobr><a href="../kernel/introduction_to_iapp.htm"><img src="../wht_toc3.gif" border="0" align="absmiddle"> Introduction to GUI</a></nobr><br>\r
+&nbsp;&nbsp;&nbsp;<nobr><a href="../introduction_to_gui.htm"><img src="../wht_toc3.gif" border="0" align="absmiddle"> Introduction to GUI</a></nobr><br>\r
 &nbsp;&nbsp;&nbsp;<nobr><a href="../kernel/getting_started2.htm"><img src="../wht_toc3.gif" border="0" align="absmiddle"> Getting started</a></nobr><br>\r
 &nbsp;&nbsp;&nbsp;<nobr><a href="../kernel/salome_pro_desktop.htm"><img src="../wht_toc3.gif" border="0" align="absmiddle"> SALOME desktop</a></nobr><br>\r
-&nbsp;&nbsp;&nbsp;<nobr><a href="../viewers.htm"><img src="../wht_toc3.gif" border="0" align="absmiddle"> Viewers</a></nobr><br>\r
-&nbsp;&nbsp;&nbsp;<nobr><a href="../kernel/displaying_hiding_toolbars.htm"><img src="../wht_toc3.gif" border="0" align="absmiddle"> Displaying/hiding toolbars</a></nobr><br>\r
 &nbsp;&nbsp;&nbsp;<nobr><a name="4"></a><a href="whlstt4.htm#4" target="_self" title="closed book"><img src="../wht_toc1.gif" border="0" align="absmiddle"> Study management</a></nobr><br>\r
 &nbsp;&nbsp;&nbsp;<nobr><a href="../kernel/using_object_browser.htm"><img src="../wht_toc3.gif" border="0" align="absmiddle"> Using Object Browser</a></nobr><br>\r
 &nbsp;&nbsp;&nbsp;<nobr><a href="../kernel/using_registry.htm"><img src="../wht_toc3.gif" border="0" align="absmiddle"> Using Registry tool</a></nobr><br>\r
index 5ac2bc85c16dac5577e5ce4fa2346258fa60d2e0..8087bf265880ffd247088d31351e4d074b3c65ab 100755 (executable)
@@ -41,18 +41,17 @@ img {vertial-align:middle;}
 <nobr><a name="1"></a><a href="whlstt1.htm#1" target="_self" title="closed book"><img src="../wht_toc1.gif" border="0" align="absmiddle"> Using this reference manual</a></nobr><br>\r
 <nobr><a name="2"></a><a href="whlstt2.htm#2" target="_self" title="closed book"><img src="../wht_toc1.gif" border="0" align="absmiddle"> About SALOME</a></nobr><br>\r
 <nobr><a name="3"></a><a href="whlstt0.htm#3" target="_self"><img src="../wht_toc2.gif" border="0" align="absmiddle"> GUI module</a></nobr><br>\r
-&nbsp;&nbsp;&nbsp;<nobr><a href="../kernel/introduction_to_iapp.htm"><img src="../wht_toc3.gif" border="0" align="absmiddle"> Introduction to GUI</a></nobr><br>\r
+&nbsp;&nbsp;&nbsp;<nobr><a href="../introduction_to_gui.htm"><img src="../wht_toc3.gif" border="0" align="absmiddle"> Introduction to GUI</a></nobr><br>\r
 &nbsp;&nbsp;&nbsp;<nobr><a href="../kernel/getting_started2.htm"><img src="../wht_toc3.gif" border="0" align="absmiddle"> Getting started</a></nobr><br>\r
 &nbsp;&nbsp;&nbsp;<nobr><a href="../kernel/salome_pro_desktop.htm"><img src="../wht_toc3.gif" border="0" align="absmiddle"> SALOME desktop</a></nobr><br>\r
-&nbsp;&nbsp;&nbsp;<nobr><a href="../viewers.htm"><img src="../wht_toc3.gif" border="0" align="absmiddle"> Viewers</a></nobr><br>\r
-&nbsp;&nbsp;&nbsp;<nobr><a href="../kernel/displaying_hiding_toolbars.htm"><img src="../wht_toc3.gif" border="0" align="absmiddle"> Displaying/hiding toolbars</a></nobr><br>\r
 &nbsp;&nbsp;&nbsp;<nobr><a name="4"></a><a href="whlstt3.htm#4" target="_self"><img src="../wht_toc2.gif" border="0" align="absmiddle"> Study management</a></nobr><br>\r
 &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<nobr><a href="../kernel/creating_a_new_study.htm"><img src="../wht_toc3.gif" border="0" align="absmiddle"> Creating a new study</a></nobr><br>\r
 &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<nobr><a href="../kernel/opening_studies.htm"><img src="../wht_toc3.gif" border="0" align="absmiddle"> Opening studies</a></nobr><br>\r
 &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<nobr><a href="../kernel/saving_a_study.htm"><img src="../wht_toc3.gif" border="0" align="absmiddle"> Saving and closing studies</a></nobr><br>\r
 &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<nobr><a href="../kernel/editing_studies.htm"><img src="../wht_toc3.gif" border="0" align="absmiddle"> Editing studies</a></nobr><br>\r
 &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<nobr><a href="../kernel/displaying_studies.htm"><img src="../wht_toc3.gif" border="0" align="absmiddle"> Displaying studies</a></nobr><br>\r
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<nobr><a href="../kernel/getting_properties_of_the_study.htm"><img src="../wht_toc3.gif" border="0" align="absmiddle"> Getting and setting study properties</a></nobr><br>\r
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<nobr><a href="../dump_study.htm"><img src="../wht_toc3.gif" border="0" align="absmiddle"> Working with Python Scripts</a></nobr><br>\r
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<nobr><a href="../kernel/getting_properties_of_the_study.htm"><img src="../wht_toc3.gif" border="0" align="absmiddle"> Setting study properties</a></nobr><br>\r
 &nbsp;&nbsp;&nbsp;<nobr><a href="../kernel/using_object_browser.htm"><img src="../wht_toc3.gif" border="0" align="absmiddle"> Using Object Browser</a></nobr><br>\r
 &nbsp;&nbsp;&nbsp;<nobr><a href="../kernel/using_registry.htm"><img src="../wht_toc3.gif" border="0" align="absmiddle"> Using Registry tool</a></nobr><br>\r
 &nbsp;&nbsp;&nbsp;<nobr><a href="../kernel/using_catalog_generator.htm"><img src="../wht_toc3.gif" border="0" align="absmiddle"> Using Catalog Generator</a></nobr><br>\r
index e25c8d1c9f392f9edccffab23964bbed93b4fd4b..60594c76228b2f0168ee7558b0487d99f1de1499 100755 (executable)
@@ -41,20 +41,19 @@ img {vertial-align:middle;}
 <nobr><a name="1"></a><a href="whlstt1.htm#1" target="_self" title="closed book"><img src="../wht_toc1.gif" border="0" align="absmiddle"> Using this reference manual</a></nobr><br>\r
 <nobr><a name="2"></a><a href="whlstt2.htm#2" target="_self" title="closed book"><img src="../wht_toc1.gif" border="0" align="absmiddle"> About SALOME</a></nobr><br>\r
 <nobr><a name="3"></a><a href="whlstt0.htm#3" target="_self"><img src="../wht_toc2.gif" border="0" align="absmiddle"> GUI module</a></nobr><br>\r
-&nbsp;&nbsp;&nbsp;<nobr><a href="../kernel/introduction_to_iapp.htm"><img src="../wht_toc3.gif" border="0" align="absmiddle"> Introduction to GUI</a></nobr><br>\r
+&nbsp;&nbsp;&nbsp;<nobr><a href="../introduction_to_gui.htm"><img src="../wht_toc3.gif" border="0" align="absmiddle"> Introduction to GUI</a></nobr><br>\r
 &nbsp;&nbsp;&nbsp;<nobr><a href="../kernel/getting_started2.htm"><img src="../wht_toc3.gif" border="0" align="absmiddle"> Getting started</a></nobr><br>\r
 &nbsp;&nbsp;&nbsp;<nobr><a href="../kernel/salome_pro_desktop.htm"><img src="../wht_toc3.gif" border="0" align="absmiddle"> SALOME desktop</a></nobr><br>\r
-&nbsp;&nbsp;&nbsp;<nobr><a href="../viewers.htm"><img src="../wht_toc3.gif" border="0" align="absmiddle"> Viewers</a></nobr><br>\r
-&nbsp;&nbsp;&nbsp;<nobr><a href="../kernel/displaying_hiding_toolbars.htm"><img src="../wht_toc3.gif" border="0" align="absmiddle"> Displaying/hiding toolbars</a></nobr><br>\r
 &nbsp;&nbsp;&nbsp;<nobr><a name="4"></a><a href="whlstt4.htm#4" target="_self" title="closed book"><img src="../wht_toc1.gif" border="0" align="absmiddle"> Study management</a></nobr><br>\r
 &nbsp;&nbsp;&nbsp;<nobr><a href="../kernel/using_object_browser.htm"><img src="../wht_toc3.gif" border="0" align="absmiddle"> Using Object Browser</a></nobr><br>\r
 &nbsp;&nbsp;&nbsp;<nobr><a href="../kernel/using_registry.htm"><img src="../wht_toc3.gif" border="0" align="absmiddle"> Using Registry tool</a></nobr><br>\r
 &nbsp;&nbsp;&nbsp;<nobr><a href="../kernel/using_catalog_generator.htm"><img src="../wht_toc3.gif" border="0" align="absmiddle"> Using Catalog Generator</a></nobr><br>\r
 &nbsp;&nbsp;&nbsp;<nobr><a name="5"></a><a href="whlstt3.htm#5" target="_self"><img src="../wht_toc2.gif" border="0" align="absmiddle"> Setting Preferences</a></nobr><br>\r
 &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<nobr><a href="../setting_preferences.htm"><img src="../wht_toc3.gif" border="0" align="absmiddle"> Setting Preferences</a></nobr><br>\r
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<nobr><a href="../select_color_and_font.htm"><img src="../wht_toc3.gif" border="0" align="absmiddle"> Select Color and Font</a></nobr><br>\r
 &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<nobr><a href="../kernel/setting_preferences.htm"><img src="../wht_toc3.gif" border="0" align="absmiddle"> SALOME preferences</a></nobr><br>\r
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<nobr><a href="../geom_preferences.htm"><img src="../wht_toc3.gif" border="0" align="absmiddle"> GEOM preferences</a></nobr><br>\r
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<nobr><a href="../mesh_preferences.htm"><img src="../wht_toc3.gif" border="0" align="absmiddle"> MESH preferences</a></nobr><br>\r
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<nobr><a href="../geom_preferences.htm"><img src="../wht_toc3.gif" border="0" align="absmiddle"> Geometry preferences</a></nobr><br>\r
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<nobr><a href="../mesh_preferences.htm"><img src="../wht_toc3.gif" border="0" align="absmiddle"> Mesh preferences</a></nobr><br>\r
 &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<nobr><a href="../post-pro_preferences.htm"><img src="../wht_toc3.gif" border="0" align="absmiddle"> Post-Pro Preferences</a></nobr><br>\r
 </p>\r
 \r
index 714176de5966e7a498d65356570dc5b009d502d5..b37b8ab8b4d3276c70264e42e7fad33b2729a248 100755 (executable)
@@ -64,7 +64,7 @@ body {background-color:White; }
  <a href="whlstfl23.htm#subkey_W" target="_self"title="search letter W"><b>W</b></a> \r
  <a href="whlstfl24.htm#subkey_X" target="_self"title="search letter X"><b>X</b></a> \r
  <a href="whlstfl25.htm#subkey_Y" target="_self"title="search letter Y"><b>Y</b></a> \r
- <a href="whlstf10.htm#bm_Z" target="ftslist"title="search letter Z" ><b>Z</b></a> \r
+ <a href="whlstf11.htm#bm_Z" target="ftslist"title="search letter Z" ><b>Z</b></a> \r
 </p>\r
 \r
 <body>\r
index e4bc2c62c3c436ca204140153b5bcc42f8498456..27ebcb52a174b18fbb7439612fbed567c77b5592 100755 (executable)
@@ -9,7 +9,7 @@
 <table>\r
 <tr><td> Start Page </td><td>kernel.htm</td></tr>\r
 <tr><td> Skin Name </td><td>Default</td></tr>\r
-<tr><td> Generating Time </td><td>17:12 09/29/2005</td></tr>\r
+<tr><td> Generating Time </td><td>15:59 04/20/2006</td></tr>\r
 <tr><td> Language ID </td><td>1033</td></tr>\r
 <tr><td> Compile Script </td><td>webhelp5_compile_script.xml</td></tr>\r
 <tr><td> Compile Build Version </td><td>13.10.606</td></tr>\r
index 9ae34a3e35ae3de4727db0b2d6ef74b39dabc8b5..e5729238bd77dbf7413e5da222d8dbb2e783f509 100755 (executable)
@@ -1,16 +1,16 @@
 <?xml version='1.0' encoding='windows-1252' ?>\r
 <ftstdata>\r
+<topic name="Dump Study" url="dump_study.htm" />\r
 <topic name="GEOM preferences" url="geom_preferences.htm" />\r
+<topic name="Introduction to GUI" url="introduction_to_gui.htm" />\r
 <topic name="About SALOME architecture" url="kernel/about_salome_pro_architecture.htm" />\r
 <topic name="About SALOME help system" url="kernel/about_salome_pro_help_system.htm" />\r
 <topic name="Creating a new study" url="kernel/creating_a_new_study.htm" />\r
-<topic name="Displaying/hiding toolbars" url="kernel/displaying_hiding_toolbars.htm" />\r
 <topic name="Displaying studies" url="kernel/displaying_studies.htm" />\r
 <topic name="Editing studies" url="kernel/editing_studies.htm" />\r
 <topic name="Getting properties of the study" url="kernel/getting_properties_of_the_study.htm" />\r
 <topic name="Getting started2" url="kernel/getting_started2.htm" />\r
 <topic name="Introduction" url="kernel/introduction.htm" />\r
-<topic name="Introduction to IAPP" url="kernel/introduction_to_iapp.htm" />\r
 <topic name="Introduction to SALOME" url="kernel/introduction_to_salome_pro.htm" />\r
 <topic name="Navigating topics" url="kernel/navigating_topics.htm" />\r
 <topic name="Opening studies" url="kernel/opening_studies.htm" />\r
@@ -25,8 +25,7 @@
 <topic name="Using Registry tool" url="kernel/using_registry.htm" />\r
 <topic name="MESH preferences" url="mesh_preferences.htm" />\r
 <topic name="Post-Pro Preferences" url="post-pro_preferences.htm" />\r
+<topic name="Select Color and Font" url="select_color_and_font.htm" />\r
 <topic name="Setting Preferences" url="setting_preferences.htm" />\r
-<topic name="Supervisor Preferences" url="supervisor_preferences.htm" />\r
-<topic name="Viewers" url="viewers.htm" />\r
 \r
 </ftstdata>  \r
index e1eeb4b71844bd1fd0091c07e1367d93fe6821ab..52af9b44fd1875b0bea5d4367689885f7130b999 100755 (executable)
@@ -1,7 +1,7 @@
 <?xml version='1.0' encoding='windows-1252' ?>\r
 <fts>\r
-<chunkinfo url="whfwdata0.xml" first="__version__" last="zon"/>\r
+<chunkinfo url="whfwdata0.xml" first="__version__" last="zoom"/>\r
 \r
-<tchunkinfo first="0" last="27" url="whftdata0.xml" />\r
+<tchunkinfo first="0" last="26" url="whftdata0.xml" />\r
 \r
 </fts>\r
index 1f6b1cc3d89c6597914a46d2978584352c436639..26629a34774fdc4a8f410882c7fc28621fc3987d 100755 (executable)
 <ftswdata>\r
 <key name="__version__"> 14, </key>\r
 <key name="_omnipymodul"> 14, </key>\r
-<key name="0"> 1,5,14,10,16, </key>\r
-<key name="1"> 3,14,24,15, </key>\r
-<key name="10"> 14, </key>\r
+<key name="0"> 6,14,2,24,16, </key>\r
+<key name="001"> 24, </key>\r
+<key name="01"> 24, </key>\r
+<key name="1"> 5,14,24,15, </key>\r
+<key name="10"> 14,24, </key>\r
+<key name="100"> 24, </key>\r
 <key name="103100"> 14, </key>\r
 <key name="13"> 14, </key>\r
-<key name="2"> 3,14,24,15, </key>\r
+<key name="16"> 24, </key>\r
+<key name="16x16"> 24, </key>\r
+<key name="2"> 5,14,24,15, </key>\r
+<key name="200"> 24, </key>\r
 <key name="23"> 14, </key>\r
 <key name="24"> 14, </key>\r
-<key name="2d"> 5,9,10,27, </key>\r
-<key name="3"> 1,5,14,10,24,15,16, </key>\r
+<key name="256"> 24, </key>\r
+<key name="2d"> 6,10,2,24, </key>\r
+<key name="3"> 6,14,2,15,16, </key>\r
 <key name="31"> 14, </key>\r
-<key name="3d"> 9,10,18,27, </key>\r
+<key name="33"> 24, </key>\r
+<key name="3d"> 10,2,24,18, </key>\r
 <key name="4"> 14, </key>\r
 <key name="5"> 14, </key>\r
+<key name="50"> 24, </key>\r
+<key name="512"> 24, </key>\r
 <key name="6"> 14, </key>\r
 <key name="7"> 14, </key>\r
 <key name="8"> 14, </key>\r
 <key name="9"> 14, </key>\r
-<key name="abl"> 1,5,14,18,27, </key>\r
+<key name="abl"> 3,6,14,18, </key>\r
 <key name="abort"> 14, </key>\r
-<key name="abov"> 7,14, </key>\r
-<key name="abstraction"> 3, </key>\r
-<key name="acces"> 1,16,18,21,27, </key>\r
-<key name="accessibl"> 9,25, </key>\r
+<key name="abov"> 8,14, </key>\r
+<key name="abscissa"> 23,24, </key>\r
+<key name="absolut"> 24, </key>\r
+<key name="abstraction"> 5, </key>\r
+<key name="acceptabl"> 24, </key>\r
+<key name="acces"> 3,1,23,24,16,18,21, </key>\r
+<key name="accessibl"> 10,26, </key>\r
 <key name="accidental"> 14, </key>\r
-<key name="accord"> 14,15,16,21, </key>\r
+<key name="accord"> 14,24,15,16,21, </key>\r
 <key name="account"> 14, </key>\r
-<key name="achiev"> 1, </key>\r
-<key name="acquaint"> 2, </key>\r
-<key name="action"> 18, </key>\r
-<key name="activ"> 3,5,16,17, </key>\r
-<key name="activat"> 3,16,17, </key>\r
-<key name="actual"> 1,3,6, </key>\r
-<key name="ad"> 18,19, </key>\r
-<key name="adapt"> 1, </key>\r
-<key name="add"> 4,14,15,18,19, </key>\r
-<key name="addition"> 3,14, </key>\r
-<key name="additional"> 1,4,6,14,10,21, </key>\r
-<key name="adjust"> 18, </key>\r
-<key name="advanc"> 14,19,27, </key>\r
-<key name="affect"> 1, </key>\r
-<key name="again"> 14,12,17, </key>\r
-<key name="aim"> 27, </key>\r
-<key name="algorithm"> 1,14,11, </key>\r
-<key name="allow"> 1,6,0,14,11,15,16,17,18,19,22, </key>\r
+<key name="achiev"> 3, </key>\r
+<key name="acquaint"> 4, </key>\r
+<key name="action"> 24,18, </key>\r
+<key name="activ"> 5,6,24,16,17, </key>\r
+<key name="activat"> 5,16,17, </key>\r
+<key name="activity"> 24, </key>\r
+<key name="actual"> 5,7, </key>\r
+<key name="ad"> 0,25,19, </key>\r
+<key name="adapt"> 3, </key>\r
+<key name="add"> 14,15,16,25,18,19, </key>\r
+<key name="addition"> 5,14, </key>\r
+<key name="additional"> 3,7,14,2,24,16,21, </key>\r
+<key name="addres"> 24, </key>\r
+<key name="adjust"> 24, </key>\r
+<key name="advanc"> 14,19, </key>\r
+<key name="affect"> 3, </key>\r
+<key name="again"> 6,14,12,17, </key>\r
+<key name="algorithm"> 3,14,11, </key>\r
+<key name="allow"> 3,0,7,1,14,11,23,24,15,16,17,25,18,19,22, </key>\r
+<key name="almost"> 17, </key>\r
 <key name="along"> 11,18, </key>\r
 <key name="alongsid"> 19, </key>\r
+<key name="alpha"> 24, </key>\r
 <key name="already"> 14, </key>\r
 <key name="alway"> 11, </key>\r
 <key name="amount"> 14, </key>\r
 <key name="animation"> 24, </key>\r
 <key name="annoy"> 14, </key>\r
-<key name="anoth"> 1,17, </key>\r
+<key name="anoth"> 3,17, </key>\r
 <key name="answ"> 14, </key>\r
-<key name="any"> 1,2,5,4,7,14,11,12,15, </key>\r
+<key name="any"> 3,4,6,8,14,11,12,24,15,16,17,26, </key>\r
 <key name="anyth"> 14, </key>\r
-<key name="ap"> 25,21, </key>\r
-<key name="appear"> 7,8,14,18,19,22, </key>\r
-<key name="applet"> 2, </key>\r
-<key name="appli"> 18, </key>\r
-<key name="application"> 1,5,9,10,15,16,17,18,25,19,21, </key>\r
+<key name="ap"> 26,21, </key>\r
+<key name="api"> 0,24, </key>\r
+<key name="appear"> 0,8,9,14,18,19,22, </key>\r
+<key name="appearanc"> 23, </key>\r
+<key name="applet"> 4, </key>\r
+<key name="application"> 3,6,0,10,2,15,16,17,18,26,19,21, </key>\r
 <key name="approach"> 14,11,16, </key>\r
-<key name="appropriat"> 14,9, </key>\r
+<key name="appropriat"> 14,10, </key>\r
 <key name="approximat"> 14, </key>\r
-<key name="arabic"> 18, </key>\r
-<key name="architectur"> 1,9, </key>\r
-<key name="area"> 5,16,27, </key>\r
+<key name="arabic"> 25, </key>\r
+<key name="architectur"> 3,0,10, </key>\r
+<key name="area"> 6,16,18, </key>\r
 <key name="argument"> 14, </key>\r
+<key name="arrang"> 24, </key>\r
 <key name="arrow"> 21, </key>\r
 <key name="ascend"> 21, </key>\r
 <key name="ascii"> 17,18, </key>\r
 <key name="ask"> 14, </key>\r
-<key name="associat"> 13,21, </key>\r
-<key name="attach"> 9, </key>\r
+<key name="assign"> 24, </key>\r
+<key name="associat"> 13,24,21, </key>\r
+<key name="attach"> 10, </key>\r
 <key name="attribut"> 21, </key>\r
-<key name="author"> 7,19, </key>\r
+<key name="author"> 8,19, </key>\r
 <key name="auto"> 14,18, </key>\r
 <key name="automatic"> 23, </key>\r
-<key name="automatical"> 4,14,23,13,15,17,25, </key>\r
-<key name="availability"> 6, </key>\r
-<key name="availabl"> 1,3,6,14,9,27, </key>\r
-<key name="avoid"> 14, </key>\r
+<key name="automatical"> 0,14,23,13,24,15,16,17,26, </key>\r
+<key name="availability"> 7, </key>\r
+<key name="availabl"> 3,5,7,14,10, </key>\r
+<key name="averag"> 24, </key>\r
+<key name="avi"> 24, </key>\r
+<key name="avoid"> 0,14, </key>\r
 <key name="awar"> 14, </key>\r
 <key name="awk"> 14, </key>\r
-<key name="ax"> 18,27, </key>\r
-<key name="axi"> 18,27, </key>\r
+<key name="ax"> 18, </key>\r
+<key name="axi"> 18, </key>\r
 <key name="b"> 14, </key>\r
 <key name="back"> 14,23, </key>\r
-<key name="background"> 18, </key>\r
+<key name="background"> 24,18, </key>\r
 <key name="bar"> 23,24,21, </key>\r
-<key name="bas"> 1,9,10,17, </key>\r
+<key name="bas"> 3,10,2,17, </key>\r
 <key name="bash"> 14, </key>\r
-<key name="basi"> 1, </key>\r
-<key name="basic"> 1,14,11,16,18, </key>\r
-<key name="batch"> 1,14,15, </key>\r
+<key name="basi"> 3, </key>\r
+<key name="basic"> 3,14,11,16,25, </key>\r
+<key name="batch"> 3,0,14,15, </key>\r
 <key name="be"> 14, </key>\r
-<key name="becom"> 5, </key>\r
+<key name="becom"> 6,24, </key>\r
 <key name="befor"> 14, </key>\r
 <key name="begin"> 18,22, </key>\r
-<key name="behav"> 1, </key>\r
-<key name="behavior"> 9, </key>\r
-<key name="below"> 14,12, </key>\r
+<key name="behav"> 3, </key>\r
+<key name="behavior"> 10, </key>\r
+<key name="behaviour"> 24, </key>\r
+<key name="below"> 14,12,24, </key>\r
+<key name="bet"> 24, </key>\r
+<key name="bicolor"> 24, </key>\r
+<key name="big"> 24, </key>\r
 <key name="bin"> 14,15,19, </key>\r
 <key name="binari"> 14, </key>\r
 <key name="binary"> 14,17, </key>\r
 <key name="blu"> 14, </key>\r
-<key name="blur"> 1, </key>\r
-<key name="bmp"> 27, </key>\r
+<key name="blur"> 3, </key>\r
 <key name="bold"> 14, </key>\r
 <key name="book"> 20, </key>\r
 <key name="boost"> 14, </key>\r
 <key name="boost_version"> 14, </key>\r
 <key name="boostdir"> 14, </key>\r
-<key name="border"> 16, </key>\r
-<key name="both"> 10,23,27, </key>\r
-<key name="bottom"> 9,18, </key>\r
-<key name="box"> 0,7,14,23,13,17,18,19,22, </key>\r
+<key name="border"> 23,16, </key>\r
+<key name="both"> 2,23,24, </key>\r
+<key name="bottom"> 10,23,24,18, </key>\r
+<key name="box"> 0,1,8,14,23,13,24,17,25,18,19,22, </key>\r
 <key name="bracket"> 14, </key>\r
-<key name="brief"> 5,14,12, </key>\r
-<key name="bring"> 10, </key>\r
-<key name="brows"> 2,3,14,10,13,16,18,19,21, </key>\r
+<key name="brep"> 10, </key>\r
+<key name="brief"> 6,14,12, </key>\r
+<key name="bring"> 2, </key>\r
+<key name="brows"> 4,5,6,0,14,2,13,16,17,18,19,21, </key>\r
 <key name="bug"> 14, </key>\r
-<key name="build"> 14,19, </key>\r
-<key name="built"> 14,11,27, </key>\r
-<key name="button"> 14,10,12,13,17,18,25,19,22,27, </key>\r
-<key name="c"> 1,14,15, </key>\r
-<key name="ca"> 9, </key>\r
-<key name="cad"> 9,11, </key>\r
-<key name="cal"> 1,14,27, </key>\r
-<key name="calculation"> 8,9,11, </key>\r
+<key name="build"> 14,24,19, </key>\r
+<key name="built"> 14,11,24, </key>\r
+<key name="button"> 14,2,12,13,24,17,25,18,26,19,22, </key>\r
+<key name="c"> 3,14,15, </key>\r
+<key name="ca"> 10, </key>\r
+<key name="cad"> 10,11, </key>\r
+<key name="cal"> 3,0,14, </key>\r
+<key name="calculation"> 9,10,11, </key>\r
 <key name="call"> 14,17,19,22, </key>\r
-<key name="cam"> 1, </key>\r
+<key name="cam"> 3, </key>\r
+<key name="camera"> 24, </key>\r
 <key name="cancel"> 14, </key>\r
 <key name="capability"> 19, </key>\r
 <key name="caption"> 14, </key>\r
-<key name="car"> 14,9, </key>\r
+<key name="car"> 14,10, </key>\r
 <key name="careful"> 14, </key>\r
-<key name="carry"> 9, </key>\r
-<key name="cas"> 1,7,14,11,16,17,27, </key>\r
-<key name="cascad"> 14,27, </key>\r
+<key name="carri"> 23, </key>\r
+<key name="carry"> 10, </key>\r
+<key name="cas"> 3,8,14,11,24,16,17, </key>\r
+<key name="cascad"> 14, </key>\r
 <key name="casroot"> 14, </key>\r
 <key name="cat"> 14, </key>\r
 <key name="catalog"> 19, </key>\r
 <key name="catalogmodulegeneral"> 19, </key>\r
 <key name="catalogmodulepersonnel"> 19, </key>\r
-<key name="catalogu"> 10,15, </key>\r
+<key name="catalogu"> 2,15, </key>\r
 <key name="categori"> 20, </key>\r
 <key name="cd"> 14, </key>\r
-<key name="cel"> 18, </key>\r
-<key name="chang"> 1,5,7,14,23,16,17,18,25,27, </key>\r
-<key name="chapt"> 23, </key>\r
-<key name="chapter"> 2, </key>\r
+<key name="cel"> 24,25, </key>\r
+<key name="center"> 24, </key>\r
+<key name="centr"> 24, </key>\r
+<key name="central"> 24, </key>\r
+<key name="chang"> 3,6,8,14,23,24,16,17,18,26, </key>\r
+<key name="channel"> 24, </key>\r
+<key name="chapter"> 4, </key>\r
+<key name="character"> 25, </key>\r
 <key name="charg"> 14, </key>\r
-<key name="check"> 14, </key>\r
+<key name="check"> 0,14,24,16,18, </key>\r
 <key name="check_version"> 14, </key>\r
 <key name="checkbox"> 14,23,24, </key>\r
-<key name="choic"> 14,27, </key>\r
-<key name="choos"> 3,4,6,7,14,23,13,24,18,19,22, </key>\r
-<key name="chosen"> 24,18,19, </key>\r
+<key name="choic"> 0,14,24,25, </key>\r
+<key name="choos"> 5,7,1,8,14,23,13,24,16,25,19,22, </key>\r
+<key name="chosen"> 24,25,19, </key>\r
+<key name="clamp"> 24, </key>\r
 <key name="classic"> 16, </key>\r
 <key name="clear"> 14, </key>\r
 <key name="clearall"> 16, </key>\r
-<key name="click"> 3,6,7,14,12,13,16,17,18,25,19,20,21,22,27, </key>\r
+<key name="click"> 5,6,0,7,1,8,14,23,12,13,24,16,17,25,18,26,19,20,21,22, </key>\r
 <key name="clickabl"> 12, </key>\r
-<key name="client"> 1, </key>\r
-<key name="clon"> 27, </key>\r
-<key name="clos"> 1,14,12,17,20, </key>\r
-<key name="cluster"> 1, </key>\r
-<key name="cod"> 1,14, </key>\r
-<key name="coefficient"> 23, </key>\r
+<key name="client"> 3, </key>\r
+<key name="clip"> 24, </key>\r
+<key name="clos"> 3,14,12,24,17,26,20, </key>\r
+<key name="cluster"> 3, </key>\r
+<key name="cod"> 3,14, </key>\r
+<key name="coef"> 23, </key>\r
 <key name="coincid"> 14, </key>\r
 <key name="collect"> 14, </key>\r
-<key name="color"> 0,23,24,18,21, </key>\r
+<key name="color"> 1,23,24,25,18,21, </key>\r
 <key name="column"> 18,21,22, </key>\r
-<key name="combin"> 11, </key>\r
+<key name="combin"> 11,24, </key>\r
 <key name="comfortabl"> 16, </key>\r
 <key name="comma"> 14, </key>\r
-<key name="command"> 1,14,15, </key>\r
-<key name="common"> 14,10,11,16,17,25,27, </key>\r
-<key name="compar"> 1, </key>\r
+<key name="command"> 3,0,14,15, </key>\r
+<key name="common"> 14,2,11,16,17,26, </key>\r
+<key name="compar"> 3,23, </key>\r
 <key name="compatibl"> 14, </key>\r
 <key name="compil"> 14, </key>\r
 <key name="compilation"> 14, </key>\r
-<key name="complet"> 7,14,20,22, </key>\r
-<key name="complex"> 1,9, </key>\r
-<key name="component"> 1,2,4,6,9,10,11,12,13,24,16,17,18,19,21,22, </key>\r
+<key name="complet"> 8,14,20,22, </key>\r
+<key name="complex"> 3,10, </key>\r
+<key name="component"> 3,4,0,7,10,2,11,12,13,24,16,17,18,19,21,22, </key>\r
 <key name="compos"> 24, </key>\r
 <key name="comput"> 14,18, </key>\r
-<key name="computation"> 1,9, </key>\r
-<key name="computational"> 9, </key>\r
-<key name="concept"> 1,12, </key>\r
-<key name="concern"> 14,9, </key>\r
-<key name="conclusion"> 1, </key>\r
+<key name="computation"> 3,10, </key>\r
+<key name="computational"> 10, </key>\r
+<key name="concept"> 3,12, </key>\r
+<key name="concern"> 14,10, </key>\r
+<key name="conclusion"> 3, </key>\r
 <key name="config"> 14, </key>\r
 <key name="config_fil"> 14, </key>\r
 <key name="config_mandrake10_1"> 14, </key>\r
-<key name="configur"> 14,9, </key>\r
+<key name="configur"> 14,10, </key>\r
 <key name="configurabl"> 11, </key>\r
 <key name="configuration"> 14, </key>\r
-<key name="confirm"> 14, </key>\r
-<key name="connect"> 8,11,13,16,18, </key>\r
+<key name="confirm"> 0,14, </key>\r
+<key name="connect"> 9,11,13,16,18, </key>\r
 <key name="consist"> 16, </key>\r
-<key name="consol"> 9,15,16,17,18, </key>\r
-<key name="constant"> 1,15, </key>\r
-<key name="construction"> 9,11, </key>\r
-<key name="contain"> 1,2,3,7,14,13,15,16,19,20,21,22, </key>\r
+<key name="consol"> 6,10,15,16,17,18, </key>\r
+<key name="constant"> 3,15, </key>\r
+<key name="construction"> 10,11, </key>\r
+<key name="consum"> 0, </key>\r
+<key name="contain"> 3,4,5,0,8,14,13,15,16,19,20,21,22, </key>\r
 <key name="container"> 15, </key>\r
-<key name="content"> 14,20, </key>\r
-<key name="context"> 4,14,16,21, </key>\r
+<key name="content"> 0,14,24,20, </key>\r
+<key name="context"> 14,16,21, </key>\r
 <key name="continu"> 14, </key>\r
-<key name="control"> 3,14,23, </key>\r
-<key name="convenienc"> 16,27, </key>\r
-<key name="convert"> 14, </key>\r
+<key name="control"> 5,14,23,24, </key>\r
+<key name="convert"> 0,14, </key>\r
 <key name="cooperat"> 11, </key>\r
-<key name="coordinat"> 18,27, </key>\r
-<key name="copy"> 6,14,16,17, </key>\r
+<key name="coordinat"> 18, </key>\r
+<key name="copi"> 24, </key>\r
+<key name="copy"> 7,14,16,17, </key>\r
 <key name="copyright"> 14, </key>\r
-<key name="corba"> 1,3,10, </key>\r
-<key name="corn"> 17,18, </key>\r
+<key name="corba"> 3,5,2, </key>\r
+<key name="corn"> 24,17,25, </key>\r
 <key name="correct"> 16, </key>\r
-<key name="correspond"> 14,23,13,15,20, </key>\r
-<key name="cost"> 9, </key>\r
-<key name="coupl"> 1,9, </key>\r
+<key name="correspond"> 14,23,13,24,15,20, </key>\r
+<key name="cost"> 10, </key>\r
+<key name="coupl"> 3,10, </key>\r
 <key name="cpp"> 15, </key>\r
-<key name="creat"> 1,2,3,5,8,14,9,10,11,13,15,16,17,18,19,21, </key>\r
-<key name="creation"> 1,14,10,27, </key>\r
+<key name="creat"> 3,4,5,6,0,9,14,10,2,11,23,13,15,16,17,18,19,21, </key>\r
+<key name="creation"> 3,14,2, </key>\r
 <key name="cros"> 12,17, </key>\r
 <key name="csh"> 14,15, </key>\r
 <key name="cshell"> 15, </key>\r
-<key name="current"> 5,6,7,14,12,15,17,25,21,22, </key>\r
+<key name="ctrl"> 24, </key>\r
+<key name="current"> 6,0,8,14,12,24,15,17,18,26,21,22, </key>\r
+<key name="cursor"> 24, </key>\r
 <key name="curv"> 18, </key>\r
-<key name="custom"> 9,18,19, </key>\r
-<key name="customiz"> 27, </key>\r
-<key name="customization"> 1, </key>\r
+<key name="custom"> 10,25,18,19, </key>\r
+<key name="customization"> 3, </key>\r
 <key name="cycl"> 24, </key>\r
-<key name="cyrillic"> 18, </key>\r
+<key name="cyrillic"> 25, </key>\r
 <key name="d"> 14, </key>\r
-<key name="dat"> 7,22, </key>\r
-<key name="data"> 1,3,8,14,9,10,11,17,18,19, </key>\r
-<key name="databas"> 1, </key>\r
+<key name="dat"> 8,22, </key>\r
+<key name="data"> 3,5,0,9,14,10,2,11,17,18,19, </key>\r
+<key name="databas"> 3, </key>\r
 <key name="debug"> 21, </key>\r
-<key name="default"> 3,4,0,14,11,23,24,15,17,18,25,21,27, </key>\r
-<key name="defin"> 1,14,9,24,18,27, </key>\r
-<key name="definit"> 1,3,4,6,15,17,18,21,22, </key>\r
-<key name="definition"> 1,9,20, </key>\r
-<key name="delay"> 9, </key>\r
-<key name="demand"> 9,10, </key>\r
-<key name="depend"> 6,14,21, </key>\r
+<key name="decreas"> 24, </key>\r
+<key name="default"> 5,1,14,23,24,15,16,17,18,26,21, </key>\r
+<key name="defin"> 3,0,1,14,10,23,24,25,18, </key>\r
+<key name="definit"> 3,5,7,15,16,21,22, </key>\r
+<key name="definition"> 3,10,20, </key>\r
+<key name="delay"> 10, </key>\r
+<key name="delet"> 17, </key>\r
+<key name="demand"> 10,2,24, </key>\r
+<key name="depend"> 7,14,21, </key>\r
 <key name="dependanci"> 14, </key>\r
 <key name="dependenci"> 14, </key>\r
-<key name="deriv"> 1, </key>\r
+<key name="deriv"> 3, </key>\r
 <key name="descend"> 21, </key>\r
-<key name="describ"> 1,2,14,23,19,27, </key>\r
+<key name="describ"> 3,4,14,19, </key>\r
 <key name="description"> 14,15,19, </key>\r
-<key name="design"> 9, </key>\r
+<key name="design"> 10,24, </key>\r
 <key name="desir"> 19, </key>\r
-<key name="desktop"> 5,4,8,14,10,16,17, </key>\r
-<key name="destin"> 8,16,21,22,27, </key>\r
+<key name="desktop"> 6,9,14,2,16,17, </key>\r
+<key name="destin"> 9,16,21,22, </key>\r
 <key name="destination"> 12, </key>\r
-<key name="detail"> 0,14,23,18,27, </key>\r
+<key name="detail"> 14,18, </key>\r
 <key name="dev"> 14, </key>\r
-<key name="develop"> 1, </key>\r
-<key name="development"> 1,9, </key>\r
+<key name="develop"> 3, </key>\r
+<key name="development"> 3,10, </key>\r
+<key name="devic"> 24, </key>\r
 <key name="diagram"> 23, </key>\r
-<key name="dialog"> 0,7,14,23,13,16,17,18,19,22, </key>\r
+<key name="dialog"> 0,1,8,14,23,13,24,16,17,25,18,19,22, </key>\r
 <key name="dif"> 14, </key>\r
 <key name="differ"> 16, </key>\r
-<key name="differenc"> 1,14,16,17,27, </key>\r
-<key name="different"> 1,2,3,8,14,13,15,16,17,21,27, </key>\r
+<key name="differenc"> 3,14,16,17, </key>\r
+<key name="different"> 3,4,5,9,14,13,24,15,16,17,21, </key>\r
 <key name="digit"> 23, </key>\r
-<key name="digital"> 9, </key>\r
+<key name="digital"> 10, </key>\r
 <key name="dir"> 14, </key>\r
-<key name="direction"> 5, </key>\r
+<key name="direction"> 6,24, </key>\r
 <key name="directori"> 14,18, </key>\r
 <key name="directory"> 14,15,17,18,19, </key>\r
-<key name="disabl"> 14,18, </key>\r
+<key name="disabl"> 14,24,18, </key>\r
 <key name="disable_flag"> 14, </key>\r
 <key name="disk"> 14,15, </key>\r
-<key name="display"> 5,4,0,14,23,12,15,16,17,18,20,21,22, </key>\r
-<key name="distinction"> 1, </key>\r
-<key name="distribut"> 1,14, </key>\r
+<key name="display"> 6,1,14,23,12,24,15,16,17,18,20,21,22, </key>\r
+<key name="distanc"> 24, </key>\r
+<key name="distinction"> 3, </key>\r
+<key name="distribut"> 3,14, </key>\r
 <key name="distribution"> 14, </key>\r
-<key name="divid"> 2,22, </key>\r
-<key name="do"> 6,14, </key>\r
-<key name="dockabl"> 10,16,17, </key>\r
-<key name="document"> 3,8,14,16, </key>\r
-<key name="domain"> 1,11, </key>\r
-<key name="don"> 14,19,27, </key>\r
+<key name="divid"> 4,24,22, </key>\r
+<key name="do"> 7,14, </key>\r
+<key name="dockabl"> 6,2,16,17, </key>\r
+<key name="document"> 5,0,9,14,16, </key>\r
+<key name="domain"> 3,11, </key>\r
+<key name="dominant"> 24, </key>\r
+<key name="don"> 14,24,19, </key>\r
 <key name="dot"> 14, </key>\r
 <key name="doubl"> 22, </key>\r
-<key name="down"> 7,12,21, </key>\r
+<key name="down"> 8,12,21, </key>\r
 <key name="doxygen"> 14, </key>\r
 <key name="doxytag"> 14, </key>\r
 <key name="doxywizard"> 14, </key>\r
-<key name="drag"> 4,27, </key>\r
-<key name="dramatical"> 1, </key>\r
-<key name="draw"> 27, </key>\r
+<key name="drag"> 16, </key>\r
+<key name="dramatical"> 3, </key>\r
 <key name="driv"> 14, </key>\r
-<key name="drop"> 4,12, </key>\r
-<key name="dump"> 27, </key>\r
+<key name="drop"> 12,16, </key>\r
+<key name="dump"> 0, </key>\r
 <key name="dumpversion"> 14, </key>\r
-<key name="duplicat"> 27, </key>\r
-<key name="dynamic"> 10, </key>\r
-<key name="dynamical"> 11, </key>\r
-<key name="e"> 14,10,16,17, </key>\r
-<key name="eas"> 27, </key>\r
-<key name="easi"> 1,9, </key>\r
-<key name="easy"> 1, </key>\r
-<key name="economical"> 1, </key>\r
+<key name="dynamic"> 2, </key>\r
+<key name="dynamical"> 11,24, </key>\r
+<key name="e"> 14,2,16,17, </key>\r
+<key name="easi"> 3,10, </key>\r
+<key name="easy"> 3, </key>\r
+<key name="economical"> 3, </key>\r
 <key name="edg"> 23, </key>\r
-<key name="edit"> 6,7,14,10,15, </key>\r
-<key name="editor"> 25, </key>\r
-<key name="efficient"> 9, </key>\r
+<key name="edit"> 7,8,14,2,15, </key>\r
+<key name="editabl"> 24, </key>\r
+<key name="edition"> 24, </key>\r
+<key name="editor"> 26, </key>\r
+<key name="efficient"> 10, </key>\r
 <key name="egrep"> 14, </key>\r
-<key name="eith"> 24,18,19, </key>\r
-<key name="electrical"> 9, </key>\r
-<key name="electronic"> 9, </key>\r
-<key name="element"> 9,23, </key>\r
-<key name="empty"> 5,14, </key>\r
+<key name="eith"> 24,25,18,19, </key>\r
+<key name="electrical"> 10, </key>\r
+<key name="electronic"> 10, </key>\r
+<key name="element"> 10,23,24, </key>\r
+<key name="empty"> 6,14, </key>\r
 <key name="enabl"> 18,20, </key>\r
-<key name="encourag"> 1, </key>\r
-<key name="end"> 1,14,25, </key>\r
-<key name="enforc"> 1, </key>\r
-<key name="engin"> 1, </key>\r
+<key name="encourag"> 3, </key>\r
+<key name="end"> 3,14,24,18,26, </key>\r
+<key name="enforc"> 3, </key>\r
+<key name="engin"> 3, </key>\r
 <key name="enough"> 14, </key>\r
-<key name="ensur"> 1,9, </key>\r
-<key name="ent"> 7,14,15,17, </key>\r
+<key name="ensur"> 3,10, </key>\r
+<key name="ent"> 8,14,15,17, </key>\r
 <key name="enter"> 14, </key>\r
 <key name="entity"> 23, </key>\r
 <key name="entry"> 18,21, </key>\r
 <key name="env_for_launch"> 14, </key>\r
 <key name="env_product"> 14, </key>\r
 <key name="env_vtk"> 14, </key>\r
-<key name="environment"> 1,5,8,14,9,10,15, </key>\r
-<key name="equal"> 14, </key>\r
-<key name="equipment"> 9, </key>\r
-<key name="error"> 14, </key>\r
-<key name="etc"> 1,4,14,10,11,16, </key>\r
+<key name="environment"> 3,6,9,14,10,2,15, </key>\r
+<key name="equal"> 3,14, </key>\r
+<key name="equipment"> 10, </key>\r
+<key name="error"> 0,14, </key>\r
+<key name="etc"> 3,14,2,11,24,16, </key>\r
 <key name="ev"> 22, </key>\r
-<key name="even"> 1,16, </key>\r
-<key name="every"> 9,20, </key>\r
+<key name="even"> 3,16, </key>\r
+<key name="every"> 10,20, </key>\r
 <key name="everyth"> 14, </key>\r
-<key name="evolution"> 9, </key>\r
-<key name="evolv"> 1, </key>\r
+<key name="evolution"> 10, </key>\r
+<key name="evolv"> 3, </key>\r
 <key name="ex"> 15, </key>\r
-<key name="exact"> 14, </key>\r
+<key name="exact"> 14,24, </key>\r
 <key name="examl"> 14, </key>\r
-<key name="exampl"> 5,14,9,16,17,19, </key>\r
-<key name="exception"> 10, </key>\r
-<key name="exchang"> 1, </key>\r
-<key name="execution"> 9,11, </key>\r
-<key name="exist"> 1,14,11,13,17,25,19, </key>\r
+<key name="exampl"> 6,14,10,16,17,19, </key>\r
+<key name="exceed"> 24, </key>\r
+<key name="exception"> 2, </key>\r
+<key name="exchang"> 3, </key>\r
+<key name="execution"> 10,11, </key>\r
+<key name="exist"> 3,14,11,13,17,26,19, </key>\r
 <key name="existenc"> 14, </key>\r
 <key name="expand"> 12, </key>\r
-<key name="expandability"> 1, </key>\r
-<key name="expectation"> 9, </key>\r
-<key name="exploit"> 1, </key>\r
-<key name="explor"> 2, </key>\r
-<key name="export"> 9,27, </key>\r
-<key name="expos"> 1, </key>\r
-<key name="extend"> 18, </key>\r
+<key name="expandability"> 3, </key>\r
+<key name="expectation"> 10, </key>\r
+<key name="expert"> 0, </key>\r
+<key name="exploit"> 3, </key>\r
+<key name="explor"> 4, </key>\r
+<key name="export"> 10,23, </key>\r
+<key name="expos"> 3, </key>\r
+<key name="extend"> 25, </key>\r
 <key name="extension"> 17, </key>\r
-<key name="exterior"> 27, </key>\r
 <key name="external"> 18, </key>\r
 <key name="extract"> 14, </key>\r
-<key name="extreme"> 9, </key>\r
+<key name="extreme"> 10, </key>\r
 <key name="f"> 14, </key>\r
 <key name="fac"> 23,24,18, </key>\r
-<key name="facilitat"> 1,11, </key>\r
+<key name="facilitat"> 3,11, </key>\r
 <key name="fact"> 14,16, </key>\r
 <key name="factory"> 19, </key>\r
 <key name="fail"> 14, </key>\r
 <key name="fals"> 14, </key>\r
-<key name="fast"> 27, </key>\r
-<key name="featur"> 2,6,14, </key>\r
-<key name="field"> 7,14,9,23,24,18, </key>\r
+<key name="famili"> 24, </key>\r
+<key name="featur"> 4,7,14,24, </key>\r
+<key name="field"> 8,14,10,23,24,25, </key>\r
 <key name="fig"> 14, </key>\r
-<key name="figur"> 3,14, </key>\r
-<key name="fil"> 3,7,14,13,24,15,16,17,18,25,19, </key>\r
+<key name="figur"> 1,14, </key>\r
+<key name="fil"> 5,0,8,14,11,13,24,15,16,17,18,26,19, </key>\r
 <key name="fill"> 23, </key>\r
 <key name="find"> 14,19,20, </key>\r
 <key name="find_in_path"> 14, </key>\r
-<key name="fine"> 1, </key>\r
-<key name="finish"> 14,12, </key>\r
-<key name="finit"> 9, </key>\r
-<key name="first"> 14,21, </key>\r
-<key name="fit"> 27, </key>\r
-<key name="fiv"> 11, </key>\r
+<key name="fine"> 3, </key>\r
+<key name="finish"> 14,12,24, </key>\r
+<key name="finit"> 10, </key>\r
+<key name="first"> 0,14,24,18,21, </key>\r
+<key name="fit"> 18, </key>\r
 <key name="flag"> 14, </key>\r
-<key name="flexibility"> 1, </key>\r
-<key name="flexibl"> 14,9,10, </key>\r
+<key name="flexibility"> 3,0, </key>\r
+<key name="flexibl"> 14,10,2, </key>\r
+<key name="focal"> 24, </key>\r
 <key name="focu"> 12, </key>\r
-<key name="fold"> 14,21, </key>\r
-<key name="follow"> 1,0,7,8,14,12,13,15,16,17,18,19,20,22,27, </key>\r
-<key name="font"> 23,24,18, </key>\r
+<key name="fold"> 14,17,21, </key>\r
+<key name="follow"> 3,0,8,9,14,12,13,15,16,17,18,19,20,22, </key>\r
+<key name="font"> 23,24,25,18, </key>\r
 <key name="forget"> 19, </key>\r
-<key name="format"> 2,9,13,18,27, </key>\r
-<key name="four"> 10,27, </key>\r
-<key name="fram"> 14, </key>\r
-<key name="framework"> 10,21, </key>\r
-<key name="fre"> 9, </key>\r
-<key name="friend"> 9, </key>\r
-<key name="front"> 27, </key>\r
-<key name="full"> 23,24,20,27, </key>\r
-<key name="function"> 14,9,11,16,17,27, </key>\r
+<key name="format"> 4,10,13,18, </key>\r
+<key name="forth"> 24, </key>\r
+<key name="fp"> 24, </key>\r
+<key name="fram"> 14,24, </key>\r
+<key name="framework"> 2,21, </key>\r
+<key name="fre"> 10,24, </key>\r
+<key name="friend"> 10, </key>\r
+<key name="ful"> 24, </key>\r
+<key name="fulfill"> 0, </key>\r
+<key name="full"> 24,20, </key>\r
+<key name="function"> 0,14,10,11,16,17, </key>\r
 <key name="function_nam"> 14, </key>\r
 <key name="functional"> 16, </key>\r
-<key name="functionality"> 1,2,6,8,23,16,19,27, </key>\r
-<key name="functionnaliti"> 9, </key>\r
-<key name="fundamental"> 1, </key>\r
+<key name="functionaliti"> 10, </key>\r
+<key name="functionality"> 3,4,7,9,16,19, </key>\r
+<key name="fundamental"> 3, </key>\r
 <key name="furth"> 14, </key>\r
 <key name="g"> 14,15, </key>\r
+<key name="gap"> 23, </key>\r
+<key name="gaus"> 2,24, </key>\r
 <key name="gcc"> 14, </key>\r
-<key name="general"> 8,14,23,16,18, </key>\r
-<key name="generat"> 14,11,19, </key>\r
-<key name="generator"> 9,10,19, </key>\r
-<key name="generic"> 9,11, </key>\r
-<key name="geom"> 1,4,6,0,14,11,27, </key>\r
-<key name="geometrical"> 9,11,27, </key>\r
-<key name="geometry"> 0, </key>\r
-<key name="get"> 2,7,8,14,9,21, </key>\r
-<key name="giv"> 7,14,16,18,27, </key>\r
-<key name="given"> 14,11, </key>\r
-<key name="gl"> 27, </key>\r
+<key name="general"> 9,14,23,16,18, </key>\r
+<key name="generat"> 0,14,11,19, </key>\r
+<key name="generator"> 10,2,19, </key>\r
+<key name="generic"> 10,11, </key>\r
+<key name="geom"> 14,11, </key>\r
+<key name="geometrical"> 1,10,11,24, </key>\r
+<key name="geometry"> 3,1,11,24,16, </key>\r
+<key name="get"> 4,9,14,10,21, </key>\r
+<key name="giv"> 0,8,14,16,25, </key>\r
+<key name="given"> 14,11,24, </key>\r
+<key name="gl"> 24, </key>\r
+<key name="global"> 24, </key>\r
 <key name="glossary"> 20, </key>\r
 <key name="go"> 14,12, </key>\r
-<key name="graph"> 5,11,18,27, </key>\r
-<key name="graphical"> 10,11, </key>\r
+<key name="graph"> 6,11,18, </key>\r
+<key name="graphic"> 24, </key>\r
+<key name="graphical"> 0,2,11, </key>\r
 <key name="graphviz"> 14, </key>\r
-<key name="great"> 27, </key>\r
-<key name="greek"> 18, </key>\r
+<key name="great"> 0,24, </key>\r
+<key name="greek"> 25, </key>\r
 <key name="grep"> 14, </key>\r
-<key name="group"> 18, </key>\r
-<key name="gui"> 1,3,14,10,11,15,18,25, </key>\r
+<key name="group"> 23,24,25, </key>\r
+<key name="gui"> 3,5,0,14,2,11,15,17,18,26, </key>\r
 <key name="h"> 14,15, </key>\r
-<key name="hand"> 1,12,20, </key>\r
-<key name="handl"> 14,9,10, </key>\r
+<key name="half"> 24, </key>\r
+<key name="hand"> 3,12,20, </key>\r
+<key name="handl"> 14,10,2, </key>\r
 <key name="happydoc"> 14, </key>\r
 <key name="hard"> 14,15, </key>\r
 <key name="hasn"> 17, </key>\r
 <key name="hdf"> 14,13,17,18, </key>\r
 <key name="hdf5"> 14, </key>\r
 <key name="hdf5hom"> 14, </key>\r
-<key name="heal"> 9, </key>\r
+<key name="heal"> 10, </key>\r
+<key name="height"> 23,24, </key>\r
 <key name="hello"> 22, </key>\r
-<key name="help"> 1,2,14,9,12,13,15,18,20,21,22,27, </key>\r
+<key name="help"> 3,4,14,10,12,13,15,18,20,21, </key>\r
 <key name="helpful"> 14, </key>\r
-<key name="her"> 14,23,24,18,26, </key>\r
-<key name="heterogeneou"> 9, </key>\r
-<key name="hid"> 4,16,18,21,27, </key>\r
-<key name="high"> 14,9, </key>\r
-<key name="highlight"> 14,21, </key>\r
+<key name="her"> 14,23,24,18, </key>\r
+<key name="heterogeneou"> 10, </key>\r
+<key name="hid"> 24,16,18,21, </key>\r
+<key name="high"> 14,10, </key>\r
+<key name="highlight"> 14,23,21, </key>\r
 <key name="hint"> 14, </key>\r
 <key name="history"> 22, </key>\r
 <key name="hom"> 15, </key>\r
-<key name="horizontal"> 5,23,24,18,27, </key>\r
-<key name="host"> 1, </key>\r
+<key name="horizontal"> 6,23,24,18, </key>\r
+<key name="host"> 3, </key>\r
 <key name="hotspot"> 12, </key>\r
-<key name="how"> 1,14, </key>\r
+<key name="how"> 3,14, </key>\r
 <key name="hpp"> 14, </key>\r
-<key name="html"> 2,20, </key>\r
+<key name="html"> 4,20, </key>\r
 <key name="hxx"> 14, </key>\r
-<key name="i"> 14,10,16,17, </key>\r
-<key name="iapp"> 1, </key>\r
-<key name="icon"> 3,6,16,19, </key>\r
+<key name="i"> 14,2,16,17, </key>\r
+<key name="icon"> 5,7,16,19, </key>\r
 <key name="idea"> 14, </key>\r
 <key name="identification"> 21,22, </key>\r
 <key name="identify"> 14, </key>\r
-<key name="idl"> 1,19, </key>\r
+<key name="idl"> 3,19, </key>\r
 <key name="ie"> 18, </key>\r
-<key name="if"> 3,5,6,14,23,13,24,15,16,17,18,19,21,27, </key>\r
-<key name="ig"> 9, </key>\r
+<key name="if"> 5,6,0,7,14,23,13,24,15,16,17,18,19,21, </key>\r
+<key name="ig"> 10, </key>\r
 <key name="ignor"> 14, </key>\r
-<key name="imag"> 9,27, </key>\r
+<key name="imag"> 10,24, </key>\r
 <key name="immediate"> 12, </key>\r
-<key name="implement"> 1,14, </key>\r
-<key name="implementation"> 1,19, </key>\r
+<key name="implement"> 3,14, </key>\r
+<key name="implementation"> 3,19, </key>\r
 <key name="impli"> 14, </key>\r
-<key name="import"> 14,9,10,11,24,16, </key>\r
+<key name="import"> 0,14,10,2,11,24,16, </key>\r
 <key name="important"> 14, </key>\r
 <key name="impos"> 24, </key>\r
 <key name="impossibl"> 14, </key>\r
-<key name="improv"> 10, </key>\r
+<key name="improv"> 2, </key>\r
 <key name="inc"> 14, </key>\r
-<key name="includ"> 14,12,20, </key>\r
-<key name="inclusiv"> 1, </key>\r
-<key name="increas"> 9, </key>\r
-<key name="incremental"> 1, </key>\r
-<key name="independenc"> 1, </key>\r
-<key name="independent"> 1, </key>\r
-<key name="index"> 21, </key>\r
+<key name="includ"> 14,12,24,20, </key>\r
+<key name="inclusiv"> 3, </key>\r
+<key name="increas"> 0,10,24, </key>\r
+<key name="increment"> 1,24, </key>\r
+<key name="incremental"> 3, </key>\r
+<key name="independenc"> 3, </key>\r
+<key name="independent"> 3, </key>\r
+<key name="index"> 23,21, </key>\r
 <key name="indicat"> 16,17, </key>\r
-<key name="information"> 1,0,7,14,12,17,20,22,27, </key>\r
-<key name="initial"> 8,27, </key>\r
-<key name="input"> 9,19, </key>\r
+<key name="information"> 3,8,14,12,24,17,20,22, </key>\r
+<key name="initial"> 9, </key>\r
+<key name="input"> 10,19, </key>\r
 <key name="insert"> 14, </key>\r
-<key name="insid"> 1,5,12,19, </key>\r
-<key name="inspect"> 14, </key>\r
+<key name="insid"> 3,6,12,24,19, </key>\r
+<key name="inspect"> 14,24, </key>\r
 <key name="instal"> 14,19, </key>\r
 <key name="instalation"> 14, </key>\r
 <key name="install"> 14,15, </key>\r
 <key name="installdiskspac"> 14, </key>\r
 <key name="installwizard_root_directory"> 14, </key>\r
 <key name="installworkxxxxx"> 14, </key>\r
-<key name="instanc"> 3, </key>\r
+<key name="instanc"> 5, </key>\r
 <key name="instead"> 14, </key>\r
-<key name="instrument"> 27, </key>\r
-<key name="instrumental"> 1, </key>\r
+<key name="instrumental"> 3, </key>\r
 <key name="integ"> 14, </key>\r
 <key name="integer"> 23, </key>\r
-<key name="integrat"> 1,9,10,11, </key>\r
-<key name="integration"> 1,9,10,19, </key>\r
+<key name="integrat"> 3,10,2,11, </key>\r
+<key name="integration"> 3,10,2,19, </key>\r
 <key name="intend"> 14, </key>\r
-<key name="interaction"> 10, </key>\r
-<key name="interfac"> 1,9,10,11,16,19, </key>\r
-<key name="internal"> 1,14, </key>\r
-<key name="internet"> 2, </key>\r
-<key name="interoperability"> 9, </key>\r
+<key name="interaction"> 2, </key>\r
+<key name="interfac"> 3,0,10,2,11,16,19, </key>\r
+<key name="interior"> 23, </key>\r
+<key name="internal"> 3,14, </key>\r
+<key name="internet"> 4, </key>\r
+<key name="interoperability"> 10, </key>\r
 <key name="interoperabl"> 21, </key>\r
-<key name="interpret"> 10,16, </key>\r
-<key name="interval"> 22, </key>\r
+<key name="interpret"> 2,16, </key>\r
+<key name="interval"> 24,22, </key>\r
 <key name="introduc"> 14, </key>\r
-<key name="introduction"> 14,9,10,11, </key>\r
+<key name="introduction"> 14,10,2,11, </key>\r
 <key name="invalid"> 17, </key>\r
 <key name="invok"> 14,16, </key>\r
 <key name="ior"> 18,21, </key>\r
 <key name="isolin"> 18, </key>\r
 <key name="ispython"> 14, </key>\r
-<key name="item"> 7,9,10, </key>\r
+<key name="item"> 8,10,2, </key>\r
+<key name="iteration"> 24, </key>\r
 <key name="itself"> 14, </key>\r
-<key name="java"> 2, </key>\r
-<key name="jpeg"> 27, </key>\r
-<key name="jpg"> 27, </key>\r
+<key name="java"> 4, </key>\r
 <key name="just"> 14,18, </key>\r
 <key name="k"> 15, </key>\r
 <key name="kbyt"> 14, </key>\r
 <key name="kernel"> 14,11,15, </key>\r
-<key name="key"> 14, </key>\r
+<key name="key"> 14,24, </key>\r
+<key name="keyboard"> 24, </key>\r
 <key name="kill"> 15, </key>\r
 <key name="killall"> 15, </key>\r
-<key name="kind"> 7,12, </key>\r
+<key name="kind"> 8,12, </key>\r
 <key name="know"> 19, </key>\r
+<key name="knowledg"> 0, </key>\r
 <key name="l"> 15, </key>\r
 <key name="label"> 23,24, </key>\r
-<key name="languag"> 1, </key>\r
+<key name="languag"> 3, </key>\r
 <key name="larg"> 14, </key>\r
-<key name="last"> 17,22, </key>\r
-<key name="latin"> 18, </key>\r
-<key name="launch"> 2,14,13,15,25,19,22, </key>\r
-<key name="lay"> 3, </key>\r
-<key name="layout"> 17, </key>\r
+<key name="largest"> 24, </key>\r
+<key name="last"> 18,22, </key>\r
+<key name="latest"> 24, </key>\r
+<key name="latin"> 25, </key>\r
+<key name="launch"> 4,0,14,13,15,26,19,22, </key>\r
+<key name="lay"> 5, </key>\r
+<key name="layout"> 0,17, </key>\r
 <key name="ld_library_path"> 14, </key>\r
 <key name="lead"> 17, </key>\r
-<key name="learn"> 14,9, </key>\r
-<key name="left"> 14,18,20, </key>\r
-<key name="legend"> 18,27, </key>\r
-<key name="level"> 1,23,18, </key>\r
+<key name="learn"> 14,10, </key>\r
+<key name="left"> 14,23,24,25,18,20, </key>\r
+<key name="legend"> 18, </key>\r
+<key name="length"> 24, </key>\r
+<key name="les"> 24, </key>\r
+<key name="level"> 3,23,24,18, </key>\r
 <key name="lib"> 14, </key>\r
 <key name="libcosnotify4"> 14, </key>\r
 <key name="libhdf5"> 14, </key>\r
 <key name="libomniorb4"> 14, </key>\r
 <key name="libqwt"> 14, </key>\r
 <key name="librari"> 14, </key>\r
-<key name="library"> 14,10, </key>\r
+<key name="library"> 14,2, </key>\r
 <key name="libstdplugin"> 14, </key>\r
 <key name="libtcl8"> 14, </key>\r
 <key name="libtk8"> 14, </key>\r
 <key name="libvtkcommon"> 14, </key>\r
 <key name="licens"> 14, </key>\r
-<key name="lik"> 1,5,4,14,12,16,17,19,21, </key>\r
+<key name="lik"> 3,6,14,12,24,16,17,19,21, </key>\r
 <key name="like"> 14, </key>\r
 <key name="limit"> 24, </key>\r
-<key name="lin"> 2,14,23,15,18, </key>\r
+<key name="limitation"> 24, </key>\r
+<key name="lin"> 4,1,14,23,24,15,18, </key>\r
 <key name="linear"> 18, </key>\r
-<key name="link"> 1,0,9,12, </key>\r
-<key name="linux"> 2,14, </key>\r
-<key name="list"> 7,14,12,15,18,20,22, </key>\r
+<key name="link"> 3,10,12, </key>\r
+<key name="linux"> 4,14, </key>\r
+<key name="list"> 8,14,12,24,15,18,20,22, </key>\r
 <key name="list_of_prerequisit"> 14, </key>\r
-<key name="ll"> 18,27, </key>\r
-<key name="load"> 1,10,13,24,15,16,18,25,21, </key>\r
-<key name="locat"> 1,4,15,18,20,21, </key>\r
-<key name="location"> 19, </key>\r
-<key name="lock"> 7, </key>\r
+<key name="ll"> 18, </key>\r
+<key name="load"> 3,0,2,13,24,15,16,18,26,21, </key>\r
+<key name="local"> 24, </key>\r
+<key name="locat"> 3,24,15,16,18,20,21, </key>\r
+<key name="location"> 0,19, </key>\r
+<key name="lock"> 8,24, </key>\r
 <key name="log"> 15, </key>\r
-<key name="logarithmic"> 24,18,27, </key>\r
-<key name="long"> 1, </key>\r
+<key name="logarithmic"> 24,18, </key>\r
+<key name="long"> 3, </key>\r
 <key name="look"> 14,19,20, </key>\r
+<key name="lookout"> 23,24, </key>\r
 <key name="lost"> 17, </key>\r
 <key name="lot"> 16, </key>\r
-<key name="low"> 14,18,20, </key>\r
+<key name="low"> 14,24,25,20, </key>\r
 <key name="m"> 15, </key>\r
-<key name="machin"> 1,17,22, </key>\r
-<key name="macintosh"> 2, </key>\r
-<key name="macro"> 1, </key>\r
-<key name="main"> 3,4,6,7,14,9,13,16,17,18,19,22, </key>\r
+<key name="machin"> 3,17,22, </key>\r
+<key name="macintosh"> 4, </key>\r
+<key name="macro"> 3, </key>\r
+<key name="magnification"> 24, </key>\r
+<key name="main"> 5,0,7,8,14,10,13,24,16,17,18,19,22, </key>\r
 <key name="major"> 14, </key>\r
-<key name="mak"> 3,14,9,23,27, </key>\r
+<key name="mak"> 5,14,10,23, </key>\r
 <key name="make_dir"> 14, </key>\r
 <key name="make_env"> 14, </key>\r
-<key name="manag"> 9,18, </key>\r
-<key name="management"> 9,10,16, </key>\r
+<key name="manag"> 10,18, </key>\r
+<key name="management"> 10,2,16, </key>\r
 <key name="mandrak"> 14, </key>\r
 <key name="mandrake10"> 14, </key>\r
-<key name="manual"> 2,14,18, </key>\r
-<key name="map"> 1, </key>\r
-<key name="mark"> 4,14,18, </key>\r
+<key name="manipulat"> 24, </key>\r
+<key name="manipulator"> 24, </key>\r
+<key name="manual"> 4,0,14,18, </key>\r
+<key name="map"> 3, </key>\r
+<key name="mark"> 14,18, </key>\r
 <key name="marker"> 18, </key>\r
-<key name="market"> 9, </key>\r
-<key name="massive"> 1, </key>\r
+<key name="market"> 10, </key>\r
+<key name="massive"> 3, </key>\r
 <key name="mast"> 14, </key>\r
 <key name="match"> 20, </key>\r
+<key name="matrix"> 24, </key>\r
 <key name="max"> 24, </key>\r
-<key name="maximiz"> 3,16, </key>\r
-<key name="maximum"> 27, </key>\r
-<key name="mean"> 5,8,14,16,17, </key>\r
-<key name="mechanism"> 10, </key>\r
+<key name="maximiz"> 5, </key>\r
+<key name="maximum"> 24, </key>\r
+<key name="mean"> 6,9,14,24,16,17, </key>\r
+<key name="mechanism"> 0,2, </key>\r
 <key name="med2hom"> 14, </key>\r
-<key name="meet"> 9, </key>\r
-<key name="memoriz"> 27, </key>\r
+<key name="meet"> 10, </key>\r
+<key name="memory"> 24, </key>\r
 <key name="mention"> 14, </key>\r
-<key name="menu"> 1,3,4,6,7,10,23,12,13,24,16,17,18,19,21,22,27, </key>\r
+<key name="menu"> 3,5,0,7,8,2,23,12,13,24,16,17,25,18,26,19,21,22, </key>\r
 <key name="menubar"> 16, </key>\r
-<key name="mesh"> 0,9,11,23,27, </key>\r
-<key name="messag"> 7,14,10,15,22, </key>\r
+<key name="mesh"> 3,10,11,23,24,16, </key>\r
+<key name="messag"> 8,14,2,15, </key>\r
 <key name="middl"> 14, </key>\r
 <key name="min"> 24, </key>\r
-<key name="minimiz"> 3,16, </key>\r
+<key name="minimiz"> 5, </key>\r
+<key name="minimum"> 24, </key>\r
 <key name="minor"> 14, </key>\r
 <key name="mis"> 14, </key>\r
 <key name="mistak"> 16, </key>\r
 <key name="mix"> 16, </key>\r
-<key name="mod"> 1,0,14,23,24,15, </key>\r
-<key name="model"> 1,9,11,23,27, </key>\r
-<key name="modern"> 9, </key>\r
-<key name="modification"> 1,7, </key>\r
-<key name="modify"> 14,9, </key>\r
-<key name="modul"> 1,2,6,0,14,10,11,23,24,15,16,17,18,25,19,27, </key>\r
+<key name="mod"> 3,0,1,14,23,24,15, </key>\r
+<key name="model"> 3,10,11,23, </key>\r
+<key name="modern"> 10, </key>\r
+<key name="modification"> 3,0,8, </key>\r
+<key name="modify"> 0,14,10, </key>\r
+<key name="modul"> 3,4,7,1,14,2,11,23,24,15,16,17,18,26,19, </key>\r
 <key name="module_root_dir"> 14, </key>\r
 <key name="module_src_dir"> 14, </key>\r
 <key name="module1"> 15, </key>\r
 <key name="module2"> 15, </key>\r
 <key name="modulu"> 24, </key>\r
-<key name="moment"> 14, </key>\r
-<key name="mous"> 4,27, </key>\r
-<key name="mov"> 5, </key>\r
+<key name="moment"> 14,24, </key>\r
+<key name="momentari"> 24, </key>\r
+<key name="mous"> 23,24,16, </key>\r
+<key name="mov"> 6, </key>\r
+<key name="movement"> 24, </key>\r
 <key name="mozilla"> 18, </key>\r
 <key name="msg2qm"> 14, </key>\r
 <key name="msg2qm_root"> 14, </key>\r
 <key name="much"> 14, </key>\r
-<key name="multi"> 5,8,9,10,16,19, </key>\r
+<key name="multi"> 6,9,10,2,16,19, </key>\r
 <key name="multifil"> 17,18, </key>\r
 <key name="multipl"> 17, </key>\r
-<key name="multiti"> 1, </key>\r
-<key name="must"> 1,9,11, </key>\r
-<key name="n"> 14, </key>\r
-<key name="nam"> 1,3,7,14,17,19,21,22, </key>\r
+<key name="multipli"> 24, </key>\r
+<key name="multiti"> 3, </key>\r
+<key name="must"> 3,10,11, </key>\r
+<key name="n"> 14,24, </key>\r
+<key name="nam"> 3,5,0,8,14,17,19,21,22, </key>\r
 <key name="nativ"> 14, </key>\r
-<key name="natur"> 6, </key>\r
-<key name="natural"> 1, </key>\r
+<key name="natur"> 7, </key>\r
+<key name="natural"> 3, </key>\r
 <key name="navigat"> 14,12, </key>\r
-<key name="navigation"> 2,12, </key>\r
-<key name="navigator"> 2, </key>\r
-<key name="ne"> 5,14,12,18, </key>\r
-<key name="necessary"> 14,23,15,16,17,21, </key>\r
+<key name="navigation"> 4,12,24, </key>\r
+<key name="navigator"> 4, </key>\r
+<key name="ne"> 6,14,12,25,18, </key>\r
+<key name="necessary"> 0,14,23,15,16,17,21, </key>\r
+<key name="need"> 24, </key>\r
+<key name="negativ"> 24, </key>\r
 <key name="netgen"> 14, </key>\r
 <key name="netgenroot"> 14, </key>\r
-<key name="netscap"> 2,18, </key>\r
-<key name="new"> 1,3,7,8,14,9,17,25,19,27, </key>\r
-<key name="next"> 7,14,15,18,25,19, </key>\r
+<key name="netscap"> 4,18, </key>\r
+<key name="new"> 3,5,8,9,14,10,17,18,26,19, </key>\r
+<key name="next"> 8,14,15,26,19, </key>\r
 <key name="nf"> 14, </key>\r
 <key name="nod"> 23,19, </key>\r
-<key name="normal"> 5, </key>\r
-<key name="not"> 14,18, </key>\r
-<key name="noticeab"> 1, </key>\r
+<key name="normal"> 6, </key>\r
+<key name="not"> 14, </key>\r
+<key name="noticeab"> 3, </key>\r
 <key name="notifd"> 14, </key>\r
-<key name="notification"> 25, </key>\r
-<key name="notion"> 8, </key>\r
+<key name="notification"> 26, </key>\r
+<key name="notify"> 24, </key>\r
+<key name="notion"> 9, </key>\r
 <key name="now"> 16, </key>\r
-<key name="null"> 14, </key>\r
-<key name="numb"> 14,23,24,18,22, </key>\r
-<key name="number"> 14,23, </key>\r
-<key name="numeric"> 14,9,11,18, </key>\r
-<key name="numerical"> 1,8,9,27, </key>\r
+<key name="nth"> 24, </key>\r
+<key name="null"> 14,24, </key>\r
+<key name="numb"> 14,11,23,24,18,22, </key>\r
+<key name="number"> 14,23,24, </key>\r
+<key name="numeric"> 14,10,11,25, </key>\r
+<key name="numerical"> 3,9,10, </key>\r
 <key name="numerou"> 15, </key>\r
-<key name="object"> 1,3,6,10,23,13,16,18,25,21,27, </key>\r
-<key name="objectiv"> 1, </key>\r
+<key name="object"> 3,5,6,0,7,2,23,13,24,16,17,18,26,21, </key>\r
+<key name="objectiv"> 3, </key>\r
 <key name="obligatory"> 14, </key>\r
-<key name="obtain"> 27, </key>\r
-<key name="occ"> 3,5,10,18,27, </key>\r
+<key name="occ"> 5,6,2,18, </key>\r
 <key name="occ_version_major"> 14, </key>\r
 <key name="occ_version_minor"> 14, </key>\r
 <key name="occupi"> 14, </key>\r
 <key name="off"> 14, </key>\r
-<key name="offer"> 1, </key>\r
-<key name="often"> 9, </key>\r
-<key name="ok"> 14,13,25, </key>\r
-<key name="omg"> 1, </key>\r
+<key name="offer"> 3, </key>\r
+<key name="often"> 10, </key>\r
+<key name="ok"> 14,13,26, </key>\r
+<key name="omg"> 3, </key>\r
 <key name="omit"> 14, </key>\r
 <key name="omni"> 14, </key>\r
 <key name="omninotify"> 14, </key>\r
 <key name="omniorb"> 14, </key>\r
 <key name="omniorbdir"> 14, </key>\r
 <key name="omniorbpy"> 14, </key>\r
-<key name="on"> 1,5,6,14,10,12,13,24,15,16,17,18,19,21,27, </key>\r
+<key name="on"> 3,6,0,7,14,2,12,13,24,15,16,17,25,18,19,21, </key>\r
+<key name="onc"> 24, </key>\r
 <key name="onlin"> 20, </key>\r
-<key name="open"> 5,8,14,9,11,12,13,15,17,19,20,27, </key>\r
+<key name="opaqu"> 24, </key>\r
+<key name="open"> 6,0,9,14,10,11,12,13,24,15,17,19,20, </key>\r
 <key name="opencascad"> 14, </key>\r
-<key name="operat"> 27, </key>\r
-<key name="operation"> 6,8,17,27, </key>\r
-<key name="optimiz"> 14,9, </key>\r
+<key name="operat"> 0, </key>\r
+<key name="operation"> 7,9,23,24,17, </key>\r
+<key name="optimiz"> 14,10,24, </key>\r
 <key name="optimization"> 11, </key>\r
-<key name="option"> 6,7,14,13,24,15,16,17,18,21, </key>\r
-<key name="optional"> 14,9,11, </key>\r
+<key name="option"> 7,8,14,13,24,15,16,17,18,21, </key>\r
+<key name="optional"> 14,10,11, </key>\r
 <key name="ord"> 14, </key>\r
-<key name="org"> 1, </key>\r
+<key name="ordinat"> 23,24, </key>\r
+<key name="org"> 3, </key>\r
 <key name="orientation"> 23,24, </key>\r
 <key name="origin"> 23,24, </key>\r
+<key name="original"> 0, </key>\r
 <key name="originality"> 11, </key>\r
 <key name="os"> 14, </key>\r
 <key name="os_version"> 14, </key>\r
-<key name="other"> 2,25, </key>\r
-<key name="otherwis"> 14,17, </key>\r
-<key name="out"> 9, </key>\r
+<key name="other"> 4,0, </key>\r
+<key name="otherwis"> 0,14,24,17, </key>\r
+<key name="out"> 10,23,25, </key>\r
 <key name="outlin"> 23, </key>\r
-<key name="output"> 14,10, </key>\r
-<key name="outsid"> 16, </key>\r
+<key name="output"> 14,2, </key>\r
+<key name="outsid"> 24,16, </key>\r
 <key name="overload"> 14, </key>\r
-<key name="own"> 14,10,11,16, </key>\r
+<key name="own"> 14,2,11,16, </key>\r
 <key name="p"> 15, </key>\r
 <key name="packag"> 14,15,19, </key>\r
-<key name="pag"> 14,18,20, </key>\r
-<key name="pan"> 12,20,27, </key>\r
-<key name="parallel"> 1, </key>\r
+<key name="pag"> 14,20, </key>\r
+<key name="pan"> 12,17,20, </key>\r
+<key name="parallel"> 3, </key>\r
 <key name="paramet"> 14,19, </key>\r
-<key name="parameter"> 1,0,14,23,24,18,19, </key>\r
-<key name="part"> 5,14,16,27, </key>\r
-<key name="particular"> 9,17, </key>\r
+<key name="parameter"> 3,14,24,25,18,19, </key>\r
+<key name="parent"> 24, </key>\r
+<key name="part"> 6,14,16, </key>\r
+<key name="particular"> 10,17, </key>\r
 <key name="party"> 11, </key>\r
 <key name="pas"> 14, </key>\r
-<key name="past"> 6,16, </key>\r
-<key name="path"> 14, </key>\r
-<key name="pc"> 1, </key>\r
-<key name="perform"> 14,9, </key>\r
-<key name="performanc"> 1,8,9, </key>\r
+<key name="past"> 7,16, </key>\r
+<key name="patent"> 24, </key>\r
+<key name="path"> 14,24, </key>\r
+<key name="pc"> 3, </key>\r
+<key name="per"> 24, </key>\r
+<key name="perform"> 14,10,23,24, </key>\r
+<key name="performanc"> 3,9,10, </key>\r
 <key name="permission"> 14, </key>\r
-<key name="phenomena"> 1, </key>\r
+<key name="phenomena"> 3, </key>\r
 <key name="phras"> 20, </key>\r
-<key name="physic"> 9, </key>\r
-<key name="physical"> 1,9,11, </key>\r
-<key name="pick"> 14, </key>\r
+<key name="physic"> 10, </key>\r
+<key name="physical"> 3,10,11, </key>\r
+<key name="pick"> 14,24, </key>\r
 <key name="pickup"> 14, </key>\r
 <key name="pickup_env"> 14, </key>\r
 <key name="pickup_env_flag"> 14, </key>\r
 <key name="pickupenv"> 14, </key>\r
-<key name="pictur"> 7, </key>\r
+<key name="pictur"> 8, </key>\r
 <key name="pid"> 22, </key>\r
-<key name="piec"> 1, </key>\r
-<key name="plac"> 5,4,14,10,16,27, </key>\r
-<key name="platform"> 1,2,5,4,8,14,9,10,11,15,16,17,19,22,27, </key>\r
-<key name="pleas"> 14,18, </key>\r
-<key name="plot"> 5,10,27, </key>\r
-<key name="plot2d"> 3,18, </key>\r
-<key name="plug"> 10, </key>\r
-<key name="png"> 27, </key>\r
+<key name="piec"> 3, </key>\r
+<key name="pixel"> 24, </key>\r
+<key name="plac"> 6,14,2,16, </key>\r
+<key name="placement"> 23,24, </key>\r
+<key name="platform"> 3,4,6,0,9,14,10,2,11,15,16,17,19,22, </key>\r
+<key name="play"> 0, </key>\r
+<key name="pleas"> 14, </key>\r
+<key name="plot"> 6,2, </key>\r
+<key name="plot2d"> 5,18, </key>\r
+<key name="plug"> 2, </key>\r
 <key name="po"> 14, </key>\r
-<key name="point"> 1,14,23,18,27, </key>\r
+<key name="point"> 3,14,2,23,24,18, </key>\r
 <key name="pop"> 12,13,16,21, </key>\r
 <key name="popup"> 12, </key>\r
 <key name="port"> 15, </key>\r
 <key name="portkill"> 15, </key>\r
-<key name="position"> 16,17,18,27, </key>\r
+<key name="position"> 24,16,17,18, </key>\r
 <key name="positive"> 16, </key>\r
-<key name="possibiliti"> 27, </key>\r
-<key name="possibility"> 1,14,15,18,19,27, </key>\r
-<key name="possibl"> 1,14,23,16,17,21,27, </key>\r
-<key name="post"> 9,11,24,27, </key>\r
-<key name="powerful"> 10, </key>\r
-<key name="pr"> 9,11, </key>\r
+<key name="possibility"> 3,0,14,15,25,19, </key>\r
+<key name="possibl"> 3,0,14,16,17,25,21, </key>\r
+<key name="post"> 3,10,11,24,16,17, </key>\r
+<key name="powerful"> 2, </key>\r
+<key name="pr"> 10,11, </key>\r
 <key name="precision"> 23, </key>\r
 <key name="precompil"> 14, </key>\r
-<key name="predefin"> 1,14,18, </key>\r
+<key name="predefin"> 3,14,25, </key>\r
 <key name="preferabl"> 15, </key>\r
-<key name="preferenc"> 0,23,24,18,25,26,21,27, </key>\r
+<key name="preferenc"> 1,23,24,25,18,26,21, </key>\r
 <key name="prefix"> 14, </key>\r
 <key name="preinstal"> 14, </key>\r
 <key name="preliminary"> 14, </key>\r
 <key name="prerequisit"> 14, </key>\r
-<key name="pres"> 14,18, </key>\r
+<key name="pres"> 14,24,18, </key>\r
+<key name="preselect"> 23, </key>\r
 <key name="preselection"> 23, </key>\r
-<key name="present"> 23, </key>\r
-<key name="presentation"> 3,23,16,18, </key>\r
+<key name="present"> 23,24, </key>\r
+<key name="presentation"> 5,23,24,16,18, </key>\r
+<key name="prevent"> 24, </key>\r
+<key name="preview"> 25, </key>\r
 <key name="previou"> 14,13, </key>\r
 <key name="previous"> 14,11,13,17, </key>\r
+<key name="primitiv"> 24, </key>\r
 <key name="print"> 14,15, </key>\r
 <key name="print_env"> 14, </key>\r
-<key name="priority"> 9, </key>\r
-<key name="pro"> 24,27, </key>\r
-<key name="probab"> 3, </key>\r
-<key name="problem"> 14,9, </key>\r
-<key name="proce"> 8,14, </key>\r
-<key name="procedur"> 14,15,18, </key>\r
-<key name="proces"> 1,14,9,10,11,22, </key>\r
-<key name="processor"> 1,9, </key>\r
-<key name="product"> 14,9,15, </key>\r
+<key name="priority"> 10, </key>\r
+<key name="pro"> 3,11,24,16,17, </key>\r
+<key name="probab"> 5, </key>\r
+<key name="problem"> 0,14,10, </key>\r
+<key name="proce"> 9,14, </key>\r
+<key name="procedur"> 14,15, </key>\r
+<key name="proces"> 3,0,14,10,2,11,24,22, </key>\r
+<key name="processor"> 3,10, </key>\r
+<key name="produc"> 24, </key>\r
+<key name="product"> 14,10,15, </key>\r
 <key name="product_context"> 14, </key>\r
 <key name="product_description"> 14, </key>\r
 <key name="product_nam"> 14, </key>\r
 <key name="product_script_nam"> 14, </key>\r
 <key name="product_version"> 14, </key>\r
-<key name="productivity"> 1, </key>\r
+<key name="productivity"> 3,0, </key>\r
 <key name="products_directory"> 14, </key>\r
 <key name="profil"> 15, </key>\r
-<key name="program"> 1,14, </key>\r
-<key name="programmatic"> 9, </key>\r
-<key name="progres"> 14, </key>\r
-<key name="prompt"> 14,15,27, </key>\r
+<key name="program"> 3,14, </key>\r
+<key name="programmatic"> 10, </key>\r
+<key name="progres"> 14,24, </key>\r
+<key name="progressiv"> 24, </key>\r
+<key name="prompt"> 14,15, </key>\r
+<key name="pron"> 0, </key>\r
 <key name="prop"> 14, </key>\r
 <key name="proper"> 14, </key>\r
-<key name="properti"> 7,9,11,18, </key>\r
-<key name="propos"> 14,10, </key>\r
-<key name="provid"> 1,6,14,9,10,11,24,15,19,20,22,27, </key>\r
-<key name="pur"> 1, </key>\r
-<key name="purpos"> 8,21, </key>\r
+<key name="properti"> 8,10,11,24,18, </key>\r
+<key name="propos"> 14,2, </key>\r
+<key name="provid"> 3,7,14,10,2,11,24,15,25,19,20,22, </key>\r
+<key name="publish"> 0,17, </key>\r
+<key name="pur"> 3, </key>\r
+<key name="purpos"> 9,21, </key>\r
 <key name="py"> 15, </key>\r
 <key name="pyqt"> 14, </key>\r
 <key name="pyqtdir"> 14, </key>\r
-<key name="python"> 1,14,9,10,15,16,17,18, </key>\r
+<key name="pyramid"> 24, </key>\r
+<key name="python"> 3,6,0,14,10,2,15,16,17,18, </key>\r
 <key name="pythonhom"> 14, </key>\r
 <key name="qglobal"> 14, </key>\r
 <key name="qm"> 14, </key>\r
 <key name="qt"> 14, </key>\r
 <key name="qt_version_str"> 14, </key>\r
 <key name="qtdir"> 14, </key>\r
-<key name="quality"> 9,23, </key>\r
-<key name="quantiti"> 9, </key>\r
+<key name="quality"> 10,23,24, </key>\r
+<key name="quantiti"> 10, </key>\r
 <key name="question"> 14, </key>\r
 <key name="quick"> 14,18,21, </key>\r
-<key name="quit"> 14,17, </key>\r
+<key name="quit"> 0,14,17,26, </key>\r
 <key name="quot"> 14, </key>\r
 <key name="qwt"> 14, </key>\r
 <key name="qwthom"> 14, </key>\r
 <key name="radio"> 14, </key>\r
+<key name="rainbow"> 24, </key>\r
 <key name="rang"> 11,24, </key>\r
-<key name="rapid"> 1, </key>\r
-<key name="re"> 12, </key>\r
-<key name="reactivity"> 9, </key>\r
-<key name="read"> 14,9,12, </key>\r
+<key name="rapid"> 3, </key>\r
+<key name="rat"> 24, </key>\r
+<key name="rath"> 0, </key>\r
+<key name="ratio"> 24, </key>\r
+<key name="re"> 0,12, </key>\r
+<key name="reactivity"> 10, </key>\r
+<key name="read"> 14,10,12, </key>\r
 <key name="readm"> 14, </key>\r
-<key name="realiz"> 8, </key>\r
-<key name="receiv"> 25, </key>\r
-<key name="recommend"> 14, </key>\r
-<key name="record"> 7, </key>\r
+<key name="real"> 24, </key>\r
+<key name="realiz"> 9, </key>\r
+<key name="reassign"> 24, </key>\r
+<key name="receiv"> 26, </key>\r
+<key name="recommend"> 14,24, </key>\r
+<key name="record"> 8,24, </key>\r
 <key name="red"> 21, </key>\r
 <key name="redirection"> 15, </key>\r
-<key name="redo"> 6, </key>\r
-<key name="reduc"> 9, </key>\r
-<key name="ref"> 18,25, </key>\r
+<key name="redo"> 7, </key>\r
+<key name="reduc"> 10, </key>\r
+<key name="ref"> 18,26, </key>\r
 <key name="refer"> 14, </key>\r
-<key name="referenc"> 2,12,18,21, </key>\r
-<key name="refin"> 9, </key>\r
+<key name="referenc"> 4,12,24,18,21, </key>\r
+<key name="refin"> 10,24, </key>\r
 <key name="refresh"> 22, </key>\r
 <key name="refreshment"> 22, </key>\r
-<key name="registry"> 10,22, </key>\r
+<key name="regim"> 24, </key>\r
+<key name="registry"> 2,22, </key>\r
 <key name="reinstal"> 14, </key>\r
 <key name="reinstall"> 14, </key>\r
 <key name="reinstallation"> 14, </key>\r
 <key name="relat"> 12,20, </key>\r
-<key name="relativ"> 14, </key>\r
+<key name="relativ"> 14,23,18, </key>\r
 <key name="releas"> 14, </key>\r
 <key name="relevant"> 12, </key>\r
-<key name="reliability"> 9, </key>\r
+<key name="reliability"> 10, </key>\r
 <key name="reload"> 17, </key>\r
-<key name="relocat"> 4, </key>\r
-<key name="remain"> 1, </key>\r
-<key name="remot"> 3,27, </key>\r
+<key name="relocat"> 16, </key>\r
+<key name="remain"> 3, </key>\r
+<key name="remot"> 5, </key>\r
 <key name="remov"> 14,18, </key>\r
+<key name="renam"> 17, </key>\r
+<key name="render"> 24, </key>\r
+<key name="reopen"> 18, </key>\r
 <key name="repeat"> 24, </key>\r
-<key name="represent"> 1,8,9,11,20,27, </key>\r
-<key name="representation"> 5,11,23,24,18,27, </key>\r
-<key name="requir"> 14,9,13,17, </key>\r
-<key name="requirement"> 1,9,15, </key>\r
-<key name="reset"> 14,27, </key>\r
-<key name="resiz"> 16,27, </key>\r
-<key name="resourc"> 14,10, </key>\r
-<key name="respectiv"> 25, </key>\r
-<key name="respond"> 1, </key>\r
+<key name="represent"> 3,9,10,11,20, </key>\r
+<key name="representation"> 6,11,24,18, </key>\r
+<key name="representativ"> 24, </key>\r
+<key name="requir"> 14,10,13,24,17, </key>\r
+<key name="requirement"> 3,10,15, </key>\r
+<key name="reset"> 14, </key>\r
+<key name="resolution"> 24, </key>\r
+<key name="resolv"> 0, </key>\r
+<key name="resourc"> 14,2,24, </key>\r
+<key name="respectiv"> 24,26, </key>\r
+<key name="respective"> 24, </key>\r
+<key name="respond"> 3, </key>\r
 <key name="responsibl"> 14, </key>\r
-<key name="restor"> 9,25, </key>\r
-<key name="result"> 5,8,9,17, </key>\r
-<key name="retroactiv"> 25, </key>\r
-<key name="return"> 27, </key>\r
-<key name="reus"> 1, </key>\r
-<key name="reusabl"> 9, </key>\r
-<key name="reveal"> 27, </key>\r
-<key name="right"> 14,12,13,16,17,18,20,21, </key>\r
-<key name="risk"> 9, </key>\r
-<key name="robustnes"> 9, </key>\r
-<key name="rol"> 1, </key>\r
+<key name="rest"> 18, </key>\r
+<key name="restor"> 10,17,18,26, </key>\r
+<key name="result"> 9,10,24, </key>\r
+<key name="retroactiv"> 26, </key>\r
+<key name="reus"> 3, </key>\r
+<key name="reusabl"> 10, </key>\r
+<key name="reversib"> 0,24, </key>\r
+<key name="right"> 6,14,12,13,24,16,17,25,18,20,21, </key>\r
+<key name="risk"> 10, </key>\r
+<key name="robustnes"> 10, </key>\r
+<key name="rol"> 3, </key>\r
 <key name="root"> 14, </key>\r
-<key name="rotat"> 27, </key>\r
-<key name="rotation"> 27, </key>\r
+<key name="rotat"> 24, </key>\r
+<key name="rotation"> 24, </key>\r
 <key name="rul"> 14, </key>\r
-<key name="run"> 1,14,15,19,22, </key>\r
-<key name="runic"> 18, </key>\r
+<key name="run"> 3,14,15,19,22, </key>\r
+<key name="runic"> 25, </key>\r
 <key name="runinstall"> 14, </key>\r
 <key name="runsalom"> 15,19, </key>\r
 <key name="runsalomewithport"> 19, </key>\r
-<key name="s"> 1,14,12, </key>\r
-<key name="saf"> 10, </key>\r
-<key name="salom"> 1,2,3,5,4,6,8,14,9,10,11,12,13,15,16,17,18,25,19,20,21,22,27, </key>\r
+<key name="s"> 3,14,12, </key>\r
+<key name="saf"> 2, </key>\r
+<key name="salom"> 3,4,5,6,0,7,9,14,10,2,11,12,13,24,15,16,17,18,26,19,20,21,22, </key>\r
 <key name="salome_modulecatalog_serv"> 19, </key>\r
-<key name="sam"> 5,12,16,17,18,19,22, </key>\r
-<key name="sav"> 1,14,9,10,16,17,18,25,27, </key>\r
-<key name="scal"> 1,24,18,27, </key>\r
+<key name="salomed"> 0, </key>\r
+<key name="sam"> 6,12,24,16,17,19,22, </key>\r
+<key name="sampl"> 25, </key>\r
+<key name="sav"> 3,0,14,10,2,16,17,18,26, </key>\r
+<key name="scal"> 3,24,18, </key>\r
 <key name="scalar"> 23,24, </key>\r
-<key name="scen"> 27, </key>\r
-<key name="schem"> 1,14,9, </key>\r
-<key name="schema"> 9, </key>\r
-<key name="scientific"> 1, </key>\r
-<key name="screen"> 5, </key>\r
-<key name="script"> 1,14,15,18,19, </key>\r
-<key name="scroll"> 7, </key>\r
-<key name="se"> 3,5,0,7,14,13,17,18,19,21,27, </key>\r
-<key name="search"> 2,14,13,17,20, </key>\r
-<key name="second"> 14, </key>\r
+<key name="schem"> 3,14,10, </key>\r
+<key name="schema"> 10, </key>\r
+<key name="scientific"> 3, </key>\r
+<key name="screen"> 6, </key>\r
+<key name="script"> 3,0,14,15,25,19, </key>\r
+<key name="scroll"> 8, </key>\r
+<key name="se"> 6,8,14,13,17,18,19,21, </key>\r
+<key name="search"> 4,14,13,17,20, </key>\r
+<key name="second"> 0,14,24, </key>\r
 <key name="section"> 14,16,18, </key>\r
 <key name="sectionthi"> 14, </key>\r
 <key name="sed"> 14, </key>\r
-<key name="select"> 3,5,0,7,14,23,13,17,18,20,27, </key>\r
+<key name="seen"> 23, </key>\r
+<key name="select"> 5,6,0,1,8,14,23,13,24,17,25,18,20, </key>\r
 <key name="selectall"> 16, </key>\r
-<key name="selection"> 10,23,18, </key>\r
+<key name="selection"> 2,23,24, </key>\r
 <key name="send"> 14, </key>\r
-<key name="sensitiv"> 4,16,21, </key>\r
-<key name="separat"> 1,14,16, </key>\r
-<key name="serv"> 1,19, </key>\r
-<key name="server"> 1,15, </key>\r
-<key name="servic"> 1,14,19, </key>\r
-<key name="session"> 0,23,13,24,17,18,25,21,22, </key>\r
-<key name="set"> 2,0,7,14,9,23,24,15,16,17,18,25,21,22, </key>\r
-<key name="setting"> 0,14,23,24,16,17,18,25,27, </key>\r
-<key name="sever"> 9, </key>\r
+<key name="sensitiv"> 16,21, </key>\r
+<key name="separat"> 3,14,24,16, </key>\r
+<key name="serv"> 3,19, </key>\r
+<key name="server"> 3,15, </key>\r
+<key name="servic"> 3,14,19, </key>\r
+<key name="session"> 1,23,13,24,17,18,26,21,22, </key>\r
+<key name="set"> 4,0,1,8,14,10,23,24,15,16,17,18,26,21,22, </key>\r
+<key name="setting"> 14,24,16,17,18,26, </key>\r
+<key name="sever"> 10, </key>\r
 <key name="sh"> 14, </key>\r
-<key name="shad"> 0,23, </key>\r
-<key name="shap"> 27, </key>\r
-<key name="shell"> 14,10,11,15, </key>\r
+<key name="shad"> 1,23,24, </key>\r
+<key name="shap"> 24, </key>\r
+<key name="shell"> 14,2,11,15, </key>\r
 <key name="short"> 14,20, </key>\r
-<key name="shot"> 5, </key>\r
-<key name="should"> 8,14,17,19, </key>\r
-<key name="show"> 14,21,27, </key>\r
-<key name="shown"> 7,14, </key>\r
+<key name="shot"> 6, </key>\r
+<key name="should"> 9,14,17,19, </key>\r
+<key name="show"> 14,21, </key>\r
+<key name="shown"> 8,14, </key>\r
 <key name="shrink"> 23, </key>\r
-<key name="signal"> 14,10, </key>\r
+<key name="sid"> 23,24, </key>\r
+<key name="signal"> 14,2, </key>\r
 <key name="signatur"> 14, </key>\r
 <key name="sigterm"> 14, </key>\r
-<key name="simp"> 18, </key>\r
-<key name="simpl"> 1, </key>\r
+<key name="simpl"> 3, </key>\r
 <key name="simplify"> 14, </key>\r
-<key name="simulat"> 1, </key>\r
-<key name="simulation"> 9,11, </key>\r
-<key name="simultaneous"> 5,8,14, </key>\r
-<key name="sinc"> 14,10, </key>\r
+<key name="simulat"> 3, </key>\r
+<key name="simulation"> 10,11, </key>\r
+<key name="simultaneous"> 6,9,14, </key>\r
+<key name="sinc"> 14,2, </key>\r
 <key name="singl"> 14, </key>\r
 <key name="sip"> 14, </key>\r
 <key name="sipdir"> 14, </key>\r
-<key name="situation"> 1, </key>\r
-<key name="siz"> 5,23,24,16,17,18, </key>\r
+<key name="situation"> 3, </key>\r
+<key name="siz"> 6,23,24,16,17,25,18, </key>\r
 <key name="skip"> 14, </key>\r
 <key name="slight"> 14, </key>\r
-<key name="small"> 17, </key>\r
-<key name="smesh"> 1,4,27, </key>\r
+<key name="slow"> 24, </key>\r
+<key name="smallest"> 24, </key>\r
 <key name="smooth"> 18, </key>\r
-<key name="so"> 1,6,14,15,25,20,21, </key>\r
-<key name="softwar"> 1,9,11, </key>\r
-<key name="solution"> 9, </key>\r
-<key name="solv"> 9, </key>\r
-<key name="solver"> 9,11, </key>\r
+<key name="smoothnes"> 24, </key>\r
+<key name="so"> 3,7,14,24,15,26,20,21, </key>\r
+<key name="softwar"> 3,10,11, </key>\r
+<key name="solution"> 10, </key>\r
+<key name="solv"> 10, </key>\r
+<key name="solver"> 10,11, </key>\r
 <key name="someth"> 14, </key>\r
 <key name="sort"> 18,21, </key>\r
 <key name="sort_path"> 14, </key>\r
-<key name="sourc"> 14,9,11,15, </key>\r
-<key name="spac"> 14, </key>\r
-<key name="special"> 1,14,13,15,16,17,25, </key>\r
-<key name="specializ"> 27, </key>\r
-<key name="specifi"> 1, </key>\r
-<key name="specific"> 1,4,9,15,16,25,20, </key>\r
+<key name="sourc"> 14,10,11,15, </key>\r
+<key name="spac"> 14,23,24, </key>\r
+<key name="spacemous"> 24, </key>\r
+<key name="spe"> 24, </key>\r
+<key name="special"> 3,14,13,24,15,16,17,18,26, </key>\r
+<key name="specifi"> 3,24, </key>\r
+<key name="specific"> 3,0,10,15,16,26,20, </key>\r
 <key name="specification"> 11, </key>\r
-<key name="specify"> 17,18,19,27, </key>\r
-<key name="spin"> 0, </key>\r
+<key name="specify"> 17,18,19, </key>\r
+<key name="spher"> 24, </key>\r
+<key name="spin"> 1, </key>\r
 <key name="splin"> 18, </key>\r
-<key name="split"> 5, </key>\r
-<key name="standalon"> 10, </key>\r
-<key name="standard"> 1,3,14,10,13,16,17,19, </key>\r
+<key name="split"> 6, </key>\r
+<key name="sprit"> 24, </key>\r
+<key name="stamp"> 24, </key>\r
+<key name="standalon"> 2, </key>\r
+<key name="standard"> 3,5,14,2,13,24,16,17,19, </key>\r
 <key name="standard_version"> 14, </key>\r
-<key name="start"> 1,5,8,14,16,18,19,22, </key>\r
-<key name="stat"> 14, </key>\r
-<key name="station"> 1, </key>\r
+<key name="start"> 6,9,14,16,18,19,22, </key>\r
+<key name="stat"> 0,14,17,18, </key>\r
+<key name="station"> 3, </key>\r
 <key name="statu"> 14, </key>\r
-<key name="step"> 0,14,9,24, </key>\r
+<key name="step"> 1,14,10,24, </key>\r
 <key name="still"> 14, </key>\r
-<key name="stor"> 1,14,13,17,19, </key>\r
+<key name="stor"> 3,0,14,13,17,18,19, </key>\r
 <key name="str"> 14, </key>\r
 <key name="strict"> 14, </key>\r
 <key name="strong"> 14, </key>\r
-<key name="structur"> 1,14,9,10,13,21, </key>\r
-<key name="structural"> 9, </key>\r
-<key name="studi"> 3,5,6,8,9,10,13,16,17, </key>\r
-<key name="study"> 1,3,5,6,7,8,9,10,13,16,17,18,25,19,21,22, </key>\r
-<key name="study1"> 3, </key>\r
-<key name="styl"> 18, </key>\r
-<key name="sub"> 14,20,27, </key>\r
-<key name="submenu"> 3,4,18, </key>\r
-<key name="subset"> 18, </key>\r
+<key name="struck"> 25, </key>\r
+<key name="structur"> 3,14,10,2,13,21, </key>\r
+<key name="structural"> 10, </key>\r
+<key name="studi"> 5,6,7,9,10,2,13,16,17, </key>\r
+<key name="study"> 3,5,6,0,7,8,9,10,2,13,24,16,17,18,26,19,21,22, </key>\r
+<key name="study1"> 5, </key>\r
+<key name="styl"> 25,18, </key>\r
+<key name="sub"> 14,20, </key>\r
+<key name="submenu"> 5,16,18, </key>\r
+<key name="subset"> 25, </key>\r
+<key name="substitut"> 24, </key>\r
 <key name="successful"> 14, </key>\r
-<key name="suit"> 10, </key>\r
+<key name="suit"> 2, </key>\r
 <key name="summariz"> 14, </key>\r
+<key name="superposition"> 24, </key>\r
 <key name="superv"> 15, </key>\r
-<key name="supervision"> 10,11,15,19, </key>\r
-<key name="supervisor"> 26, </key>\r
+<key name="supervision"> 2,15,19, </key>\r
+<key name="supervisor"> 11,18,19, </key>\r
 <key name="supplementary"> 21,22, </key>\r
-<key name="support"> 14,9,19, </key>\r
+<key name="support"> 14,10,19, </key>\r
 <key name="supported_installation_mod"> 14, </key>\r
 <key name="suppos"> 14, </key>\r
 <key name="sur"> 14, </key>\r
+<key name="surfac"> 23, </key>\r
 <key name="sweep"> 24, </key>\r
 <key name="swig"> 14, </key>\r
-<key name="switch"> 5,14,10, </key>\r
-<key name="system"> 1,2,14,9,12,20, </key>\r
-<key name="t"> 6,14,15,16,17,18,19,27, </key>\r
-<key name="tab"> 5,20,22, </key>\r
-<key name="tabl"> 14,18, </key>\r
+<key name="switch"> 6,14,2,24, </key>\r
+<key name="system"> 3,4,14,10,12,24,20, </key>\r
+<key name="t"> 7,14,24,15,16,17,18,19, </key>\r
+<key name="tab"> 6,20,22, </key>\r
+<key name="tabl"> 14,25, </key>\r
 <key name="tag"> 14, </key>\r
-<key name="tailor"> 9, </key>\r
-<key name="tak"> 1,14, </key>\r
+<key name="tailor"> 10, </key>\r
+<key name="tak"> 3,14, </key>\r
 <key name="taken"> 14,15, </key>\r
 <key name="target"> 14, </key>\r
 <key name="target_directory"> 14, </key>\r
 <key name="target_platform"> 14, </key>\r
 <key name="targetdir"> 14, </key>\r
+<key name="task"> 0, </key>\r
 <key name="tcl"> 14, </key>\r
 <key name="tclhom"> 14, </key>\r
 <key name="tclsh8"> 14, </key>\r
-<key name="technologi"> 1, </key>\r
-<key name="technological"> 9, </key>\r
-<key name="technology"> 1, </key>\r
+<key name="technologi"> 3, </key>\r
+<key name="technological"> 10, </key>\r
+<key name="technology"> 3, </key>\r
 <key name="temp"> 14, </key>\r
 <key name="temp_directory"> 14, </key>\r
 <key name="temp_fold"> 14, </key>\r
 <key name="tempdir"> 14, </key>\r
 <key name="temporary"> 14, </key>\r
 <key name="temporarydiskspac"> 14, </key>\r
-<key name="term"> 9,12,20, </key>\r
+<key name="tensor"> 24, </key>\r
+<key name="term"> 10,12,20, </key>\r
 <key name="terminal"> 14,15, </key>\r
-<key name="test"> 1,14,19, </key>\r
-<key name="text"> 14,12,26,20, </key>\r
-<key name="them"> 1,5,14,9,15,16,22,27, </key>\r
+<key name="test"> 3,14,19, </key>\r
+<key name="text"> 14,12,20, </key>\r
+<key name="textur"> 24, </key>\r
+<key name="them"> 3,6,14,10,23,15,16,25,22, </key>\r
 <key name="therefor"> 14, </key>\r
 <key name="third"> 11, </key>\r
 <key name="thos"> 14,18,20, </key>\r
 <key name="thre"> 14, </key>\r
-<key name="thu"> 1, </key>\r
-<key name="tim"> 1,5,7,14,9,24,15,25,19,22, </key>\r
-<key name="titl"> 14,23,24, </key>\r
+<key name="threshold"> 24, </key>\r
+<key name="thu"> 3,0, </key>\r
+<key name="tim"> 3,6,0,8,14,10,24,15,17,26,19,22, </key>\r
+<key name="titl"> 14,23,24,18, </key>\r
 <key name="tk"> 14, </key>\r
 <key name="tmp"> 14, </key>\r
 <key name="tmp_disk_spac"> 14, </key>\r
 <key name="togeth"> 14, </key>\r
 <key name="toggl"> 23,24,21, </key>\r
-<key name="tool"> 1,14,10,11,16,19,22, </key>\r
-<key name="toolbar"> 1,3,4,6,10,13,16,17,27, </key>\r
-<key name="toolkit"> 10,27, </key>\r
-<key name="top"> 3,4,14,10,18, </key>\r
-<key name="topic"> 2,12,26,20, </key>\r
+<key name="toleranc"> 24, </key>\r
+<key name="tool"> 3,14,2,11,16,19,22, </key>\r
+<key name="toolbar"> 3,5,7,2,13,16,17, </key>\r
+<key name="toolkit"> 2, </key>\r
+<key name="top"> 5,14,2,24,16,18, </key>\r
+<key name="topic"> 4,12,20, </key>\r
 <key name="topmost"> 14, </key>\r
 <key name="total"> 14, </key>\r
-<key name="totality"> 1, </key>\r
+<key name="totality"> 3, </key>\r
+<key name="touch"> 0, </key>\r
 <key name="tr"> 14, </key>\r
-<key name="train"> 9, </key>\r
-<key name="tre"> 3,14,18,19,21, </key>\r
+<key name="train"> 10, </key>\r
+<key name="translat"> 24, </key>\r
+<key name="translation"> 24, </key>\r
+<key name="transparency"> 24, </key>\r
+<key name="transparent"> 24, </key>\r
+<key name="tre"> 5,14,18,19,21, </key>\r
 <key name="tri"> 14, </key>\r
-<key name="trihedron"> 18,27, </key>\r
+<key name="trihedron"> 18, </key>\r
 <key name="trolltech"> 14, </key>\r
 <key name="tru"> 14, </key>\r
-<key name="try"> 7,14,17,19, </key>\r
+<key name="try"> 8,14,17,19, </key>\r
 <key name="try_exist"> 14, </key>\r
 <key name="try_nativ"> 14, </key>\r
 <key name="try_preinstal"> 14, </key>\r
-<key name="two"> 5,14,12,17,19, </key>\r
-<key name="typ"> 14,23,24,18,26,19, </key>\r
+<key name="twic"> 24, </key>\r
+<key name="two"> 6,14,12,24,17,19, </key>\r
+<key name="typ"> 0,14,23,24,25,18,19, </key>\r
 <key name="typical"> 19, </key>\r
 <key name="u"> 18, </key>\r
-<key name="ultimat"> 1, </key>\r
-<key name="undo"> 6,18, </key>\r
+<key name="ultimat"> 3, </key>\r
+<key name="uncheck"> 24,16, </key>\r
+<key name="underlin"> 25, </key>\r
+<key name="undo"> 7,18, </key>\r
 <key name="undon"> 18, </key>\r
-<key name="unfortunate"> 14,27, </key>\r
-<key name="uniqu"> 14,27, </key>\r
-<key name="unix"> 2, </key>\r
+<key name="unfortunate"> 14, </key>\r
+<key name="uniqu"> 14, </key>\r
+<key name="unit"> 24, </key>\r
+<key name="unix"> 4, </key>\r
 <key name="unload"> 13,17, </key>\r
-<key name="unmark"> 4, </key>\r
 <key name="unnecessary"> 14, </key>\r
 <key name="unselect"> 14, </key>\r
-<key name="up"> 14,9,12,13,16,17,18,21, </key>\r
-<key name="updat"> 23,16,17,19, </key>\r
-<key name="upload"> 4,10,16, </key>\r
-<key name="us"> 1,6,0,7,8,14,9,10,11,23,24,15,16,17,18,25,19,20,21,22,27, </key>\r
-<key name="usability"> 10, </key>\r
-<key name="usag"> 14, </key>\r
-<key name="usecas"> 10, </key>\r
-<key name="useful"> 27, </key>\r
-<key name="user"> 7,19,27, </key>\r
+<key name="unus"> 0, </key>\r
+<key name="up"> 14,10,12,13,16,17,25,21, </key>\r
+<key name="updat"> 23,24,16,17,19, </key>\r
+<key name="upload"> 2,16, </key>\r
+<key name="us"> 3,0,1,8,9,14,10,2,11,23,24,15,16,17,25,18,26,19,20,21,22, </key>\r
+<key name="usability"> 2, </key>\r
+<key name="usag"> 14,24, </key>\r
+<key name="user"> 8,19, </key>\r
 <key name="usr"> 14, </key>\r
 <key name="usual"> 14, </key>\r
-<key name="utiliti"> 2, </key>\r
+<key name="utiliti"> 4, </key>\r
 <key name="v"> 14,18, </key>\r
 <key name="valid"> 18, </key>\r
-<key name="validation"> 1, </key>\r
-<key name="valu"> 0,14,23,18,21, </key>\r
+<key name="validation"> 3, </key>\r
+<key name="valu"> 1,14,23,24,18,21, </key>\r
 <key name="variabl"> 14,15, </key>\r
 <key name="varibl"> 14, </key>\r
-<key name="variety"> 2,12, </key>\r
+<key name="variety"> 4,12, </key>\r
 <key name="variou"> 14,11, </key>\r
 <key name="ve"> 14,18, </key>\r
+<key name="vector"> 24, </key>\r
 <key name="ver"> 14, </key>\r
 <key name="ver_major"> 14, </key>\r
 <key name="ver_minor"> 14, </key>\r
-<key name="verbal"> 27, </key>\r
-<key name="version"> 1,5,14,10,16,19, </key>\r
-<key name="vertical"> 5,23,24,18,27, </key>\r
-<key name="very"> 14,9,10,16, </key>\r
-<key name="via"> 27, </key>\r
-<key name="view"> 1,3,4,7,14,10,23,12,16,18,20,22,27, </key>\r
-<key name="viewer"> 3,5,10,11,16,18,27, </key>\r
-<key name="visibl"> 27, </key>\r
-<key name="visu"> 1,4,6,11, </key>\r
+<key name="version"> 6,14,2,16,19, </key>\r
+<key name="vertical"> 6,23,24,18, </key>\r
+<key name="very"> 14,10,2,24,16, </key>\r
+<key name="view"> 3,5,8,14,2,23,12,24,16,18,20,22, </key>\r
+<key name="viewer"> 5,6,2,11,16,17,18, </key>\r
 <key name="visual"> 11, </key>\r
-<key name="visualiz"> 9,27, </key>\r
-<key name="visualization"> 8,9,10,11,16,27, </key>\r
-<key name="vtk"> 3,5,14,10,18,27, </key>\r
+<key name="visualisation"> 1,24, </key>\r
+<key name="visualiz"> 10,24, </key>\r
+<key name="visualization"> 9,10,2,11,16, </key>\r
+<key name="vtk"> 5,6,14,2,18, </key>\r
 <key name="vtkhom"> 14, </key>\r
 <key name="wait"> 14, </key>\r
-<key name="want"> 5,14,12, </key>\r
-<key name="warn"> 7,14, </key>\r
+<key name="want"> 6,14,12, </key>\r
+<key name="warn"> 8,14,24, </key>\r
 <key name="way"> 14,11,19, </key>\r
-<key name="web"> 2, </key>\r
-<key name="welcom"> 2,9, </key>\r
-<key name="well"> 16, </key>\r
-<key name="what"> 1,14,9,12,25,21, </key>\r
-<key name="whenev"> 23, </key>\r
-<key name="wherev"> 5, </key>\r
+<key name="web"> 4, </key>\r
+<key name="welcom"> 4,10, </key>\r
+<key name="what"> 3,14,10,12,26,21, </key>\r
+<key name="whenev"> 23,18, </key>\r
+<key name="wherev"> 6, </key>\r
 <key name="wheth"> 14, </key>\r
-<key name="whil"> 1, </key>\r
-<key name="whol"> 24,16,17,18,25, </key>\r
-<key name="wid"> 2,11,27, </key>\r
+<key name="whil"> 3, </key>\r
+<key name="whol"> 24,18,26, </key>\r
+<key name="whos"> 23, </key>\r
+<key name="wid"> 4,11,25, </key>\r
 <key name="widget"> 11, </key>\r
-<key name="width"> 23, </key>\r
-<key name="will"> 2,3,4,7,14,23,13,24,15,16,17,18,25,19,21,22, </key>\r
-<key name="window"> 2,3,5,4,8,14,10,12,15,16,17,18,22, </key>\r
-<key name="wirefram"> 0,23, </key>\r
-<key name="wish"> 5,27, </key>\r
+<key name="width"> 23,24, </key>\r
+<key name="will"> 4,5,0,8,14,23,13,24,15,16,17,25,18,26,19,21,22, </key>\r
+<key name="window"> 4,5,6,9,14,2,12,24,15,16,17,25,18,22, </key>\r
+<key name="wirefram"> 1,23, </key>\r
+<key name="wish"> 6, </key>\r
 <key name="wish8"> 14, </key>\r
-<key name="within"> 1,3,6,22, </key>\r
-<key name="without"> 1,14,15, </key>\r
+<key name="within"> 3,5,7,22, </key>\r
+<key name="without"> 3,0,14,24,15,26, </key>\r
 <key name="wizard"> 14, </key>\r
-<key name="won"> 6,14,15, </key>\r
+<key name="won"> 7,14,15, </key>\r
 <key name="word"> 20, </key>\r
-<key name="work"> 1,5,8,14,16,17,27, </key>\r
-<key name="would"> 4,14,17,19, </key>\r
-<key name="writ"> 9,17, </key>\r
-<key name="written"> 1,17, </key>\r
+<key name="work"> 3,6,0,9,14,11,24,16,17, </key>\r
+<key name="would"> 14,16,17,19, </key>\r
+<key name="writ"> 10,17, </key>\r
+<key name="written"> 3,17, </key>\r
 <key name="wrong"> 14, </key>\r
-<key name="www"> 1, </key>\r
-<key name="x"> 15, </key>\r
+<key name="www"> 3, </key>\r
+<key name="x"> 23,24,15, </key>\r
 <key name="xml"> 14,15,19, </key>\r
 <key name="xterm"> 15, </key>\r
 <key name="xxxxx"> 14, </key>\r
-<key name="y"> 14, </key>\r
-<key name="year"> 9, </key>\r
-<key name="yes"> 7,14, </key>\r
+<key name="y"> 14,23,24, </key>\r
+<key name="year"> 10, </key>\r
+<key name="yes"> 8,14, </key>\r
 <key name="yet"> 14,18, </key>\r
-<key name="your"> 3,5,6,7,14,23,24,15,16,17,18,19,27, </key>\r
-<key name="yourselv"> 18, </key>\r
-<key name="zon"> 3,5, </key>\r
+<key name="your"> 5,6,0,7,8,14,23,24,15,17,18,19, </key>\r
+<key name="yourselv"> 25, </key>\r
+<key name="zon"> 5,6,24, </key>\r
+<key name="zoom"> 24,17, </key>\r
 \r
 </ftswdata>  \r
index 0e5228488a52f865482bafac48cc46069bdec71f..6b0205e6ab2fa7be712e8a5d9495879f3a6aab7c 100755 (executable)
   <item name="Running SALOME" url="kernel/running_salome_pro.htm" />\r
 </book>\r
 <book name="GUI module" >\r
-  <item name="Introduction to GUI" url="kernel/introduction_to_iapp.htm" />\r
+  <item name="Introduction to GUI" url="introduction_to_gui.htm" />\r
   <item name="Getting started" url="kernel/getting_started2.htm" />\r
   <item name="SALOME desktop" url="kernel/salome_pro_desktop.htm" />\r
-  <item name="Viewers" url="viewers.htm" />\r
-  <item name="Displaying/hiding toolbars" url="kernel/displaying_hiding_toolbars.htm" />\r
   <book name="Study management" >\r
     <item name="Creating a new study" url="kernel/creating_a_new_study.htm" />\r
     <item name="Opening studies" url="kernel/opening_studies.htm" />\r
     <item name="Saving and closing studies" url="kernel/saving_a_study.htm" />\r
     <item name="Editing studies" url="kernel/editing_studies.htm" />\r
     <item name="Displaying studies" url="kernel/displaying_studies.htm" />\r
-    <item name="Getting and setting study properties" url="kernel/getting_properties_of_the_study.htm" />\r
+    <item name="Working with Python Scripts" url="dump_study.htm" />\r
+    <item name="Setting study properties" url="kernel/getting_properties_of_the_study.htm" />\r
   </book>\r
   <item name="Using Object Browser" url="kernel/using_object_browser.htm" />\r
   <item name="Using Registry tool" url="kernel/using_registry.htm" />\r
   <item name="Using Catalog Generator" url="kernel/using_catalog_generator.htm" />\r
   <book name="Setting Preferences" >\r
     <item name="Setting Preferences" url="setting_preferences.htm" />\r
+    <item name="Select Color and Font" url="select_color_and_font.htm" />\r
     <item name="SALOME preferences" url="kernel/setting_preferences.htm" />\r
-    <item name="GEOM preferences" url="geom_preferences.htm" />\r
-    <item name="MESH preferences" url="mesh_preferences.htm" />\r
+    <item name="Geometry preferences" url="geom_preferences.htm" />\r
+    <item name="Mesh preferences" url="mesh_preferences.htm" />\r
     <item name="Post-Pro Preferences" url="post-pro_preferences.htm" />\r
   </book>\r
 </book>\r
index ec67d8086cb254d92c198fa04e9c6b7a5d20bca2..90f563c2aa3aebe695dc8fdbe264be689cb1300b 100644 (file)
@@ -16,7 +16,7 @@ VPATH=.:@srcdir@
 
 docs:
        cp -fr $(srcdir)/KERNEL ./
-       -find $(PWD) -name CVS -exec rm -rf {} \;
+       -find $(PWD) -name CVS -prune -exec rm -rf {} \;
 
 clean:
        rm -fr `ls | grep -v "Makefile"`
@@ -27,7 +27,7 @@ distclean: clean
 install:
        mkdir -p $(docdir)/gui
        cp -rf KERNEL $(docdir)/gui
-       -find $(PWD) -name CVS -exec rm -rf {} \;
+       -find $(PWD) -name CVS -prune -exec rm -rf {} \;
 
 uninstall:
        rm -rf $(docdir)/gui/KERNEL
index 0372e6a1f2e448628f6b4968c33fdeb9c4200686..e2d1123c59eff61a550eef1f52c08c8a02c8d966 100644 (file)
@@ -20,7 +20,24 @@ docs:
        cp -fr $(srcdir)/SUIT ./INPUT; \
        cd INPUT; \
        sed 's|../../../share/salome|$(root_srcdir)|' ./doxyfile > ./doxyfile1; \
+       sed 's|../../build/salome|$(top_builddir)|' ./doxyfile1 > ./doxyfile2; \
+       sed "s|version|`cut -d: -f2 $(root_srcdir)/bin/VERSION`|" ./doxyfile2 > ./doxyfile3; \
+       mv -f doxyfile3 doxyfile1; \
+       echo "DOXYGEN SUPPORT PYTHON - @DOXYGEN_WITH_PYTHON@"; \
+       if( test "x@DOXYGEN_WITH_PYTHON@" = "xyes"); then \
+         sed 's|python_extension_must_be_here|*.py|' ./doxyfile1 > ./doxyfile2; \
+         mv -f doxyfile2 doxyfile1; \
+         $(doxygen) -u ./doxyfile1; \
+       else \
+         sed 's|python_extension_must_be_here||' ./doxyfile1 > ./doxyfile2; \
+         mv -f doxyfile2 doxyfile1; \
+       fi; \
+       if( test "x@DOXYGEN_WITH_STL@" = "xyes"); then \
+         sed -e 's|BUILTIN_STL_SUPPORT    = NO|BUILTIN_STL_SUPPORT    = YES|' ./doxyfile1 > ./doxyfile2; \
+         mv -f doxyfile2 doxyfile1; \
+       fi; \
        mv -f doxyfile1 doxyfile; \
+       echo "Running doxygen in directory:"`pwd`; \
        $(doxygen) ./doxyfile; \
        cd ../; \
        cp -fr $(srcdir)/SUIT/sources/ SUIT ; \
index 8c7e659d44d5031dcc4c920434dfaf7c23967740..949d9cd76aabe35b69da30640cfc75a5316a535d 100755 (executable)
@@ -1,32 +1,35 @@
-# Doxyfile 1.3.7
+# Doxyfile 1.4.6
 
 #---------------------------------------------------------------------------
 # Project related configuration options
 #---------------------------------------------------------------------------
-PROJECT_NAME           = "SALOME v.3.2.0a2"
-PROJECT_NUMBER         = id#1.1
+PROJECT_NAME           = "SALOME - GUI - v.version"
+PROJECT_NUMBER         = 
 OUTPUT_DIRECTORY       = ../
 CREATE_SUBDIRS         = NO
 OUTPUT_LANGUAGE        = English
 USE_WINDOWS_ENCODING   = NO
 BRIEF_MEMBER_DESC      = YES
-REPEAT_BRIEF           = YES
+REPEAT_BRIEF           = NO
 ABBREVIATE_BRIEF       = 
-ALWAYS_DETAILED_SEC    = NO
-INLINE_INHERITED_MEMB  = NO
-FULL_PATH_NAMES        = NO
-STRIP_FROM_PATH        = 
+ALWAYS_DETAILED_SEC    = YES
+INLINE_INHERITED_MEMB  = YES
+FULL_PATH_NAMES        = YES
+STRIP_FROM_PATH        = ../../../share/salome \
+                        ../../../build/salome
 STRIP_FROM_INC_PATH    = 
 SHORT_NAMES            = NO
 JAVADOC_AUTOBRIEF      = YES
 MULTILINE_CPP_IS_BRIEF = NO
 DETAILS_AT_TOP         = NO
 INHERIT_DOCS           = NO
-DISTRIBUTE_GROUP_DOC   = NO
+SEPARATE_MEMBER_PAGES  = NO
 TAB_SIZE               = 5
 ALIASES                = 
 OPTIMIZE_OUTPUT_FOR_C  = YES
 OPTIMIZE_OUTPUT_JAVA   = YES
+BUILTIN_STL_SUPPORT    = NO
+DISTRIBUTE_GROUP_DOC   = NO
 SUBGROUPING            = YES
 
 #---------------------------------------------------------------------------
@@ -56,6 +59,8 @@ GENERATE_DEPRECATEDLIST= YES
 ENABLED_SECTIONS       = 
 MAX_INITIALIZER_LINES  = 25
 SHOW_USED_FILES        = NO
+SHOW_DIRECTORIES       = NO
+FILE_VERSION_FILTER    = 
 
 #---------------------------------------------------------------------------
 # configuration options related to warning and progress messages
@@ -64,6 +69,7 @@ QUIET                  = NO
 WARNINGS               = YES
 WARN_IF_UNDOCUMENTED   = YES
 WARN_IF_DOC_ERROR      = YES
+WARN_NO_PARAMDOC       = NO
 WARN_FORMAT            = "$file:$line: $text"
 WARN_LOGFILE           = log.txt
 
@@ -71,8 +77,10 @@ WARN_LOGFILE           = log.txt
 # configuration options related to the input files
 #---------------------------------------------------------------------------
 INPUT                  = ../../../share/salome/src \
-                        ../../../share/salome/idl
-FILE_PATTERNS          = *.idl *.h *.hh *.hxx *.c *.cc *.cxx *.ixx *.jxx
+                        ../../../share/salome/bin \
+                        ../../../share/salome/idl \
+                        ../../../build/salome/bin
+FILE_PATTERNS          = *.idl *.hxx *.cxx *.h *.c *.hh *.cc python_extension_must_be_here
 RECURSIVE              = YES
 EXCLUDE                = 
 EXCLUDE_SYMLINKS       = NO
@@ -82,6 +90,7 @@ EXAMPLE_PATTERNS       =
 EXAMPLE_RECURSIVE      = YES
 IMAGE_PATH             = sources/
 INPUT_FILTER           = 
+FILTER_PATTERNS        = 
 FILTER_SOURCE_FILES    = YES
 
 #---------------------------------------------------------------------------
@@ -92,13 +101,14 @@ INLINE_SOURCES         = NO
 STRIP_CODE_COMMENTS    = YES
 REFERENCED_BY_RELATION = NO
 REFERENCES_RELATION    = YES
+USE_HTAGS              = NO
 VERBATIM_HEADERS       = YES
 
 #---------------------------------------------------------------------------
 # configuration options related to the alphabetical class index
 #---------------------------------------------------------------------------
-ALPHABETICAL_INDEX     = NO
-COLS_IN_ALPHA_INDEX    = 5
+ALPHABETICAL_INDEX     = YES
+COLS_IN_ALPHA_INDEX    = 3
 IGNORE_PREFIX          = 
 
 #---------------------------------------------------------------------------
@@ -108,8 +118,8 @@ GENERATE_HTML          = YES
 HTML_OUTPUT            = SUIT
 HTML_FILE_EXTENSION    = .html
 HTML_HEADER            = sources/myheader.html
-HTML_FOOTER            = 
-HTML_STYLESHEET        = 
+HTML_FOOTER            = sources/footer.html
+HTML_STYLESHEET        = sources/doxygen.css
 HTML_ALIGN_MEMBERS     = YES
 GENERATE_HTMLHELP      = NO
 CHM_FILE               = 
@@ -117,9 +127,9 @@ HHC_LOCATION           =
 GENERATE_CHI           = NO
 BINARY_TOC             = YES
 TOC_EXPAND             = YES
-DISABLE_INDEX          = YES
+DISABLE_INDEX          = NO
 ENUM_VALUES_PER_LINE   = 4
-GENERATE_TREEVIEW      = YES
+GENERATE_TREEVIEW      = NO
 TREEVIEW_WIDTH         = 250
 
 #---------------------------------------------------------------------------
@@ -208,18 +218,22 @@ HIDE_UNDOC_RELATIONS   = NO
 HAVE_DOT               = YES
 CLASS_GRAPH            = YES
 COLLABORATION_GRAPH    = NO
+GROUP_GRAPHS           = NO
 UML_LOOK               = NO
 TEMPLATE_RELATIONS     = YES
 INCLUDE_GRAPH          = YES
 INCLUDED_BY_GRAPH      = NO
 CALL_GRAPH             = NO
 GRAPHICAL_HIERARCHY    = YES
+DIRECTORY_GRAPH        = YES
 DOT_IMAGE_FORMAT       = jpg
 DOT_PATH               = 
 DOTFILE_DIRS           = 
 MAX_DOT_GRAPH_WIDTH    = 1024
 MAX_DOT_GRAPH_HEIGHT   = 1200
 MAX_DOT_GRAPH_DEPTH    = 0
+DOT_TRANSPARENT        = NO
+DOT_MULTI_TARGETS      = NO
 GENERATE_LEGEND        = NO
 DOT_CLEANUP            = YES
 
diff --git a/doc/salome/tui/SUIT/sources/doxygen.css b/doc/salome/tui/SUIT/sources/doxygen.css
new file mode 100755 (executable)
index 0000000..bda0467
--- /dev/null
@@ -0,0 +1,149 @@
+H1 { 
+   text-align: center; 
+}
+
+CAPTION { 
+   font-weight: bold 
+}
+
+/* Link in the top navbar */
+A.qindex {}
+
+A.qindexRef {}
+
+/* Link to any cross-referenced Doxygen element */
+A.el { 
+   text-decoration: none; 
+   font-weight: bold 
+}
+
+A.elRef { 
+   font-weight: bold 
+}
+
+/* Link to any cross-referenced Doxygen element inside a code section 
+   (ex: header)
+*/
+A.code { 
+   text-decoration: none; 
+   font-weight: normal; 
+   color: #4444ee 
+}
+
+A.codeRef { 
+   font-weight: normal; 
+   color: #4444ee 
+}
+
+A:hover { 
+   text-decoration: none; 
+   background-color: lightblue 
+}
+
+DL.el { 
+   margin-left: -1cm 
+}
+
+/* A code fragment (ex: header) */
+DIV.fragment { 
+   width: 100%; 
+   border: none; 
+   background-color: #CCCCCC 
+}
+
+/* In the alpha list (coumpound index), style of an alphabetical index letter */
+DIV.ah { 
+   background-color: #CCCCCC; 
+   font-weight: bold; 
+   color: #ffffff; 
+   margin-bottom: 3px; 
+   margin-top: 3px 
+}
+
+/* Method name (+ type) */
+TD.md { 
+   background-color: lightblue; 
+   font-weight: bold; 
+}
+
+/* Method parameter (some of them) */
+TD.mdname1 { 
+   background-color: lightblue; 
+   font-weight: bold; color: #602020; 
+}
+
+/* Method parameter (some of them) */
+TD.mdname { 
+   background-color: lightblue; 
+   font-weight: bold; 
+   color: #602020; 
+   width: 600px; 
+}
+
+/* Separator between methods group (usually empty, seems not supported by IE) */
+DIV.groupHeader { 
+   margin-left: 16px; 
+   margin-top: 12px; 
+   margin-bottom: 6px; 
+   font-weight: bold 
+}
+
+DIV.groupText { 
+   margin-left: 16px; 
+   font-style: italic; 
+   font-size: smaller 
+}
+
+BODY { 
+   background: url(sources/bg_salome.gif) 
+}
+
+div.tabs { 
+  text-align: justify; 
+  font-weight: bold;
+  color: #FFFFFF;
+}
+
+DIV.div-footer { 
+  margin-left: 1em;
+  margin-right: 1em;
+  margin-bottom: 0.2em;
+  text-align: right;
+  font-size: 9pt; 
+}
+
+/* In File List, Coumpound List, etc, 1st column of the index */
+TD.indexkey { 
+   background-color: #CCCCCC; 
+   font-weight: bold; 
+   padding-right  : 10px; 
+   padding-top    : 2px; 
+   padding-left   : 10px; 
+   padding-bottom : 2px; 
+   margin-left    : 0px; 
+   margin-right   : 0px; 
+   margin-top     : 2px; 
+   margin-bottom  : 2px  
+}
+
+/* In File List, Coumpound List, etc, 2nd column of the index */
+TD.indexvalue { 
+   background-color: #CCCCCC; 
+   font-style: italic; 
+   padding-right  : 10px; 
+   padding-top    : 2px; 
+   padding-left   : 10px; 
+   padding-bottom : 2px; 
+   margin-left    : 0px; 
+   margin-right   : 0px; 
+   margin-top     : 2px; 
+   margin-bottom  : 2px  
+}
+
+span.keyword       { color: #008000 }
+span.keywordtype   { color: #604020 }
+span.keywordflow   { color: #e08000 }
+span.comment       { color: #800000 }
+span.preprocessor  { color: #806020 }
+span.stringliteral { color: #002080 }
+span.charliteral   { color: #008080 }
diff --git a/doc/salome/tui/SUIT/sources/footer.html b/doc/salome/tui/SUIT/sources/footer.html
new file mode 100755 (executable)
index 0000000..cb55f39
--- /dev/null
@@ -0,0 +1,5 @@
+</DIV>
+<DIV class="div-footer">
+Generated on $datetime for $projectname by&nbsp;<A href="http://www.doxygen.org/index.html"><img src="doxygen.png" alt="doxygen" align="middle" border="0"></A> $doxygenversion</DIV>
+</BODY>
+</HTML>
index 83ca543cda7dcf8bc623fb52b00def9617fd1c8b..1dc1ce7a4d77a3bbe1110486cf494dd474796fc0 100755 (executable)
@@ -8,17 +8,5 @@
 </head>
 <body>
 &nbsp;
-<center><table WIDTH="96%" >
-<tr>
-<td><a href="http://www.opencascade.com"><img src="sources/logocorp.gif" BORDER=0 height=46 width=122></a></td>
-
-
-<td>
-<div align=right><a href="http://www.opencascade.org/SALOME/"><img src="sources/application.gif" BORDER=0 height=46 width=108></a></div>
-</td>
-</tr>
-</table></center>
-
-
 </body>
 </html>
diff --git a/idl/Makefile.in b/idl/Makefile.in
deleted file mode 100644 (file)
index 6954d4b..0000000
+++ /dev/null
@@ -1,67 +0,0 @@
-#
-# generate dependencies for idl file :
-#
-
-# source path
-top_srcdir=@top_srcdir@
-top_builddir=..
-srcdir=@srcdir@
-VPATH=.
-
-@COMMENCE@
-
-IDL_FILES = SALOME_Session.idl
-
-PY_CLIENT_IDL = $(IDL_FILES)
-
-# we copy all idl file in $(top_builddir)/idl
-inc: $(top_builddir)/idl/salome $(IDL_FILES:%=$(top_builddir)/idl/salome/%)
-
-$(top_builddir)/idl/salome:
-       mkdir -p $@
-
-$(IDL_FILES:%=$(top_builddir)/idl/salome/%):$(IDL_FILES:%=$(top_srcdir)/idl/%)
-#      $(CP) $< $@
-       cp -f $^ $(top_builddir)/idl/salome
-
-
-lib: pyidl
-
-PYTHON_BUILD_SITE=$(top_builddir)/lib/python$(PYTHON_VERSION)/site-packages/@PACKAGE@
-
-pyidl: $(PYTHON_BUILD_SITE) $(IDL_FILES:%.idl=$(PYTHON_BUILD_SITE)/%_idl.py)
-
-$(PYTHON_BUILD_SITE):
-       $(INSTALL) -d  $@
-
-$(PYTHON_BUILD_SITE)/%_idl.py: $(top_builddir)/idl/salome/%.idl
-       $(OMNIORB_IDL) $(OMNIORB_IDLPYFLAGS) -C$(PYTHON_BUILD_SITE) $<
-
-
-# install python client (generated from idl file
-install: $(top_builddir)/idl/salome install-pyidl install-idl
-
-# create directory $(idldir) and copy idl files into it
-install-idl: $(IDL_FILES:%=$(top_builddir)/idl/salome/%)
-       $(INSTALL) -d  $(idldir)
-       cp -p -f $^ $(idldir)
-
-
-install-pyidl: $(IDL_FILES:%=$(top_builddir)/idl/salome/%)
-       $(INSTALL) -d  $(PYTHON_SITE_INSTALL)
-       @for file in $^ dummy; do \
-         if [ $$file != "dummy" ]; then \
-           $(OMNIORB_IDL) $(OMNIORB_IDLPYFLAGS) -C$(PYTHON_SITE_INSTALL) $$file ; \
-         fi ; \
-       done ;
-
-#@ CONCLUDE @
-
-cleandep:
-       -$(RM) .dep*
-
-distclean:
-       -$(RM) *.py
-       -$(RM) $(IDL_FILES:%=$(top_builddir)/idl/salome/%)
-       -$(RM) Makefile
-
diff --git a/idl/SALOME_Session.idl b/idl/SALOME_Session.idl
deleted file mode 100644 (file)
index f067b75..0000000
+++ /dev/null
@@ -1,113 +0,0 @@
-//  Copyright (C) 2003  OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN,
-//  CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS 
-// 
-//  This library is free software; you can redistribute it and/or 
-//  modify it under the terms of the GNU Lesser General Public 
-//  License as published by the Free Software Foundation; either 
-//  version 2.1 of the License. 
-// 
-//  This library is distributed in the hope that it will be useful, 
-//  but WITHOUT ANY WARRANTY; without even the implied warranty of 
-//  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU 
-//  Lesser General Public License for more details. 
-// 
-//  You should have received a copy of the GNU Lesser General Public 
-//  License along with this library; if not, write to the Free Software 
-//  Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307 USA 
-// 
-//  See http://www.opencascade.org/SALOME/ or email : webmaster.salome@opencascade.org 
-//
-//
-//
-//  File   : SALOME_Session.idl
-//  Author : Paul RASCLE, EDF
-//  $Header$
-
-#include "SALOME_Component.idl"
-
-/*!   
-  This package contains interfaces used for management of the session in %SALOME application.
-*/
-module SALOME
-{
-/*! \brief State of the session
-   
-   This enumeration contains values defining the state of the session
-  
-*/ 
-  enum SessionState {asleep, /*! Session is inactive */
-                    running /*! Session is running */
-  } ;
-
-/*! \brief %Session State and Statistics
-
-
-    This struct contains a field list with general information about the session 
-*/
-   
-  struct StatSession
-  {
-/*! \brief State of the session
-  
-   It can be:
-   *     -# asleep  : no running study
-   *     -# running : one or more running studies
-*/
-    SessionState state ; 
-/*! Number of running studies
-*/
-    short        runningStudies ;
-/*! It is True if GUI is active in the session
-*/
-    boolean      activeGUI ;
-  } ;
-/*! \brief Interface of the session
-
-    The %session Server launches and stops GUI (Graphical User Interface).
-    The %session can be active without GUI (It can contain one or more running studies)
-*/
-
-  interface Session
-  {
-/*! 
-   This exception is raised when trying to stop the %session with active GUI
-*/
-    exception GUIActive {} ;
-/*! 
-   This exception is raised when trying to stop the %session with a number of running studies.
-*/
-    exception RunningStudies {} ;  
-
-/*! 
-   Launches GUI in the session
-*/
-    void GetInterface(); 
-
-/*! 
-   Returns a standalone component
-*/
-    Engines::Component GetComponent(in string theLibraryName);
-
-/*! 
-  Stops the %Session (It must be idle)
-*/
-    void StopSession() raises(GUIActive, RunningStudies) ;
-
-/*! 
-  Gets Session State
-*/
-    StatSession GetStatSession() ;
-/*! 
-    Determines whether the server has already been loaded or not.
-*/ 
-    void ping();
-/*!
-    Get Active study ID
-*/
-    long GetActiveStudyId();
-/*!
-    Restores a state of the study at theSavePoint
-*/
-    boolean restoreVisualState(in long theSavePoint);
-  } ;
-} ;
index 823d09355ca235f1be9d4460911535d4686f7f23..7416f68decaf97c20c30621e4c2f28d09d1dcb41 100755 (executable)
@@ -45,31 +45,50 @@ extern "C" CAF_EXPORT SUIT_Application* createApplication()
   return new CAF_Application();
 }
 
+/*!
+  Default constructor
+*/
 CAF_Application::CAF_Application()
 : STD_Application()
 {
 }
 
-CAF_Application::CAF_Application( const Handle(TDocStd_Application)& app )
+/*!
+  Constructor with OCAF application
+  \param app - OCAF application
+*/
+CAF_Application::CAF_Application( const Handle( TDocStd_Application )& app )
 : STD_Application(),
 myStdApp( app )
 {
 }
 
+/*!
+  Destructor
+*/
 CAF_Application::~CAF_Application()
 {
 }
 
+/*!
+  \return application name
+*/
 QString CAF_Application::applicationName() const
 {
   return QString( "CAFApplication" );
 }
 
-Handle(TDocStd_Application) CAF_Application::stdApp() const
+/*!
+  \return OCAF application
+*/
+Handle( TDocStd_Application ) CAF_Application::stdApp() const
 {
   return myStdApp;
 }
 
+/*!
+  \return file filters for open/save document
+*/
 QString CAF_Application::getFileFilter() const
 {
   if ( stdApp().IsNull() )
@@ -118,6 +137,9 @@ QString CAF_Application::getFileFilter() const
   return filters.join( ";;" );
 }
 
+/*!
+  Creates actions of application
+*/
 void CAF_Application::createActions()
 {
   STD_Application::createActions();
@@ -255,16 +277,25 @@ void CAF_Application::updateCommandsStatus()
     redo->setEnabled( cafStudy && cafStudy->canRedo() );
 }
 
+/*!
+  SLOT: called by clicking on Help->About in main menu
+*/
 void CAF_Application::onHelpAbout()
 {
   SUIT_MessageBox::info1( desktop(), tr( "About" ), tr( "ABOUT_INFO" ), "&OK" );
 }
 
+/*!
+  Creates new study
+*/
 SUIT_Study* CAF_Application::createNewStudy()
 {
   return new CAF_Study( this );
 }
 
+/*!
+  Sets OCAF application
+*/
 void CAF_Application::setStdApp( const Handle(TDocStd_Application)& app )
 {
   myStdApp = app;
index 1ec88331d43d39bfa8541c7693cbc70d6d388d73..6777012ef3e64390de9361d5fb2e0fa4c8801e98 100755 (executable)
@@ -35,6 +35,12 @@ class CAF_Study;
 #pragma warning ( disable: 4251 )
 #endif
 
+/*!
+  \class CAF_Application
+  Defines application configuration and behaviour for application with 
+  link to standard OCC OCAF data model. Allows to use OCC OCAF serives
+  (for example, undo/redo)
+*/
 class CAF_EXPORT CAF_Application : public STD_Application
 {
   Q_OBJECT
index 24bc5ecd876154a7ccc84286e4d56c9b3372bbfe..5292a0fbb5c294a1dd71843af55bce5580cb48c5 100755 (executable)
 
 #include <TDocStd_Document.hxx>
 
-//////////////////////////////////////////////////////////////////////
-// Construction/Destruction
-//////////////////////////////////////////////////////////////////////
-
+/*!
+  Default constructor
+*/
 CAF_Operation::CAF_Operation(SUIT_Application* theApp)
 :SUIT_Operation(theApp)
 {
 }
 
+/*!
+  Destructor
+*/
 CAF_Operation::~CAF_Operation()
 {
 }
 
+/*!
+  \return OCAF document
+*/
 Handle(TDocStd_Document) CAF_Operation::stdDoc() const
 {
   Handle(TDocStd_Document) doc;
index f49e315d799076c7338e0fc324b2959b703c79c6..bc1ff81e2b44c7a4208637ac7a115a09f0e9a04c 100755 (executable)
 #include <Standard.hxx>
 
 class CAF_Study;
+//! OCC OCAF Std document
 class Handle(TDocStd_Document);
 
+/*!
+  \class CAF_Operation
+  Base operation for all operations used in CAF package
+  Operation has link to OCC OCAF std document
+*/
 class CAF_EXPORT CAF_Operation : public SUIT_Operation
 {
        Q_OBJECT
index 176023a1f03492b444a7d914c05e37295eb90384..30362443daa6d9b950957f0764ae5d4ff82419ef 100755 (executable)
 
 #include <Standard_ErrorHandler.hxx>
 
-//////////////////////////////////////////////////////////////////////
-// Construction/Destruction
-//////////////////////////////////////////////////////////////////////
-
+/*!
+  Constructor
+*/
 CAF_Study::CAF_Study(SUIT_Application* theApp)
 : SUIT_Study( theApp ),
 myModifiedCnt( 0 )
 {
 }
 
+/*!
+  Constructor
+*/
 CAF_Study::CAF_Study(SUIT_Application* theApp, Handle (TDocStd_Document)& aStdDoc)
 : SUIT_Study( theApp ),
 myStdDoc( aStdDoc ),
@@ -50,20 +52,33 @@ myModifiedCnt( 0 )
 {
 }
 
+/*!
+  Destructor
+*/
 CAF_Study::~CAF_Study()
 {
 }
 
+/*!
+  \return OCAF document
+*/
 Handle(TDocStd_Document) CAF_Study::stdDoc() const
 {
   return myStdDoc;
 }
 
+/*!
+  Sets new OCAF document
+  \param aStdDoc - new OCAF document
+*/
 void CAF_Study::setStdDoc( Handle(TDocStd_Document)& aStdDoc )
 {
   myStdDoc = aStdDoc;
 }
 
+/*!
+  Custom document initialization
+*/
 void CAF_Study::createDocument()
 {
   SUIT_Study::createDocument();
@@ -82,6 +97,9 @@ void CAF_Study::createDocument()
   }
 }
 
+/*!
+  Close document
+*/
 void CAF_Study::closeDocument( bool permanent )
 {
   Handle(TDocStd_Application) app = stdApp();
@@ -91,6 +109,10 @@ void CAF_Study::closeDocument( bool permanent )
   SUIT_Study::closeDocument( permanent );
 }
 
+/*!
+  Open document
+  \param fname - name of file
+*/
 bool CAF_Study::openDocument( const QString& fname )
 {
   Handle(TDocStd_Application) app = stdApp();
@@ -108,6 +130,10 @@ bool CAF_Study::openDocument( const QString& fname )
   return status && SUIT_Study::openDocument( fname );
 }
 
+/*!
+  Save document with other name
+  \param fname - name of file
+*/
 bool CAF_Study::saveDocumentAs( const QString& fname )
 {
   Handle(TDocStd_Application) app = stdApp();
@@ -149,9 +175,12 @@ bool CAF_Study::saveDocumentAs( const QString& fname )
   return status;
 }
 
+/*!
+  Open OCAF transaction
+*/
 bool CAF_Study::openTransaction()
 {
-       if ( myStdDoc.IsNull() )
+  if ( myStdDoc.IsNull() )
     return false;
 
   bool res = true;
@@ -168,13 +197,16 @@ bool CAF_Study::openTransaction()
   return res;
 }
 
+/*!
+  Abort OCAF transaction
+*/
 bool CAF_Study::abortTransaction()
 {
-       if ( myStdDoc.IsNull() )
+  if ( myStdDoc.IsNull() )
     return false;
 
   bool res = true;
-       try {
+  try {
     myStdDoc->AbortCommand();
                update();
   }
@@ -184,13 +216,16 @@ bool CAF_Study::abortTransaction()
   return res;
 }
 
+/*!
+  Commit OCAF transaction
+*/
 bool CAF_Study::commitTransaction( const QString& name )
 {
-       if ( myStdDoc.IsNull() )
+  if ( myStdDoc.IsNull() )
     return false;
 
   bool res = true;
-       try {
+  try {
     myStdDoc->CommitCommand();
 
     if ( canUndo() )
@@ -206,31 +241,34 @@ bool CAF_Study::commitTransaction( const QString& name )
   return res;
 }
 
+/*!
+  \return true, if there is opened OCAF transaction
+*/
 bool CAF_Study::hasTransaction() const
 {
-       if ( myStdDoc.IsNull() )
+  if ( myStdDoc.IsNull() )
     return false;
 
   return myStdDoc->HasOpenCommand();
 }
 
 /*!
-    Returns whether the document was saved in file. [ public ]
+  \return whether the document was saved in file. [ public ]
 */
 bool CAF_Study::isSaved() const
 {
-       if ( myStdDoc.IsNull() )
+  if ( myStdDoc.IsNull() )
     return false;
 
   return myStdDoc->IsSaved();
 }
 
 /*!
-    Returns whether the document is modified. [ public ]
+  \return whether the document is modified. [ public ]
 */
 bool CAF_Study::isModified() const
 {
-       if ( myStdDoc.IsNull() )
+  if ( myStdDoc.IsNull() )
     return false;
 
 //  return myStdDoc->IsModified();
@@ -311,7 +349,7 @@ bool CAF_Study::redo()
 }
 
 /*!
-    Check if possible to perform 'undo' command. [ public ]
+  \return true if possible to perform 'undo' command. [ public ]
 */
 bool CAF_Study::canUndo() const
 {
@@ -322,7 +360,7 @@ bool CAF_Study::canUndo() const
 }
 
 /*!
-    Check if possible to perform 'redo' command. [ public ]
+  \return true if possible to perform 'redo' command. [ public ]
 */
 bool CAF_Study::canRedo() const
 {
@@ -333,7 +371,7 @@ bool CAF_Study::canRedo() const
 }
 
 /*!
-    Returns the list of names of 'undo' actions available. [ public ]
+  \return the list of names of 'undo' actions available. [ public ]
 */
 QStringList CAF_Study::undoNames() const
 {
@@ -347,7 +385,7 @@ QStringList CAF_Study::undoNames() const
 }
 
 /*!
-    Returns the list of names of 'redo' actions available. [ public ]
+  \return the list of names of 'redo' actions available. [ public ]
 */
 QStringList CAF_Study::redoNames() const
 {
@@ -361,7 +399,7 @@ QStringList CAF_Study::redoNames() const
 }
 
 /*!
-    Returns the standard OCAF application from owner application. [ protected ]
+  \return the standard OCAF application from owner application. [ protected ]
 */
 Handle(TDocStd_Application) CAF_Study::stdApp() const
 {
@@ -373,7 +411,7 @@ Handle(TDocStd_Application) CAF_Study::stdApp() const
 }
 
 /*!
-    Returns the application casted to type CAF_Application. [ protected ]
+  \return the application casted to type CAF_Application. [ protected ]
 */
 CAF_Application* CAF_Study::cafApplication() const
 {
index fe47c5b0b9909b4c5538e955433c2ea9d707d38a..5fbc614e4046b6ba94b5bbb683e3e4a62f87db6f 100755 (executable)
@@ -34,6 +34,12 @@ class CAF_Application;
 #pragma warning ( disable: 4251 )
 #endif
 
+/*!
+  \class CAF_Study
+  Represents study for using in CAF, contains reference
+  to OCAF std document and allows to use OCAF services.
+  Provides necessary functionality for OCC transactions management.
+*/
 class CAF_EXPORT CAF_Study : public SUIT_Study
 {
   Q_OBJECT
index c32d4a27e75441383622a9fcafd1c54edeec6242..b73ffc7c948bb0708cab4daa0c879c030cd90d37 100755 (executable)
@@ -62,6 +62,9 @@ TCollection_ExtendedString CAF_Tools::toExtString ( const QString& src )
   return result;
 }
 
+/*!
+    Converts Qt color to OCC color
+*/
 Quantity_Color CAF_Tools::color( const QColor& c )
 {
   Quantity_Color aColor;
@@ -71,6 +74,9 @@ Quantity_Color CAF_Tools::color( const QColor& c )
   return aColor;
 }
 
+/*!
+    Converts OCC color to Qt color
+*/
 QColor CAF_Tools::color( const Quantity_Color& c )
 {
   return QColor ( int( c.Red()   * 255 ),
index e04d1c9d89f4d9f301268ab426ebd0a790537561..d305e5b3d42cc0f9297703c6eab51a0a1a66d6fb 100755 (executable)
 #include <TCollection_AsciiString.hxx>
 #include <TCollection_ExtendedString.hxx>
 
+/*!
+  \class CAF_Tools
+  Prodives set of auxiliary static methods
+*/
 class CAF_EXPORT CAF_Tools : public SUIT_Tools
 {
 public:
index 8aae89d85b19815186bb044604ddfd6a3677e670..5dc19c6ffdf3c38a1b0f8eaa84d9fab5d3fc8a90 100755 (executable)
@@ -1,3 +1,21 @@
+#  Copyright (C) 2005  CEA/DEN, EDF R&D, OPEN CASCADE, PRINCIPIA R&D
+#
+#  This library is free software; you can redistribute it and/or
+#  modify it under the terms of the GNU Lesser General Public
+#  License as published by the Free Software Foundation; either
+#  version 2.1 of the License.
+#
+#  This library is distributed in the hope that it will be useful,
+#  but WITHOUT ANY WARRANTY; without even the implied warranty of
+#  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+#  Lesser General Public License for more details.
+#
+#  You should have received a copy of the GNU Lesser General Public
+#  License along with this library; if not, write to the Free Software
+#  Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307 USA
+#
+#  See http://www.salome-platform.org/
+#
 #  File   : Makefile.in
 #  Author : Vladimir Klyachin (OCN)
 #  Module : caf
index a624b35c78590be56789110b65e5723d97c0d3c7..000117f619700bc5bdfeb2086e75a075ac7d59b9 100755 (executable)
@@ -1,3 +1,21 @@
+#  Copyright (C) 2005  CEA/DEN, EDF R&D, OPEN CASCADE, PRINCIPIA R&D
+#
+#  This library is free software; you can redistribute it and/or
+#  modify it under the terms of the GNU Lesser General Public
+#  License as published by the Free Software Foundation; either
+#  version 2.1 of the License.
+#
+#  This library is distributed in the hope that it will be useful,
+#  but WITHOUT ANY WARRANTY; without even the implied warranty of
+#  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+#  Lesser General Public License for more details.
+#
+#  You should have received a copy of the GNU Lesser General Public
+#  License along with this library; if not, write to the Free Software
+#  Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307 USA
+#
+#  See http://www.salome-platform.org/
+#
 # This is a Qt message file in .po format.  Each msgid starts with
 # a scope.  This scope should *NOT* be translated - eg. "Foo::Bar"
 # would be translated to "Pub", not "Foo::Pub".
index 59119c2410415a24c5a9c083fe57e4f18eff4ad8..2056ac109c35a19a9ff9ce9d93f11b7c3743783d 100755 (executable)
@@ -1,3 +1,21 @@
+#  Copyright (C) 2005  CEA/DEN, EDF R&D, OPEN CASCADE, PRINCIPIA R&D
+#
+#  This library is free software; you can redistribute it and/or
+#  modify it under the terms of the GNU Lesser General Public
+#  License as published by the Free Software Foundation; either
+#  version 2.1 of the License.
+#
+#  This library is distributed in the hope that it will be useful,
+#  but WITHOUT ANY WARRANTY; without even the implied warranty of
+#  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+#  Lesser General Public License for more details.
+#
+#  You should have received a copy of the GNU Lesser General Public
+#  License along with this library; if not, write to the Free Software
+#  Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307 USA
+#
+#  See http://www.salome-platform.org/
+#
 # This is a Qt message file in .po format.  Each msgid starts with
 # a scope.  This scope should *NOT* be translated - eg. "Foo::Bar"
 # would be translated to "Pub", not "Foo::Pub".
index ef7cd09e4be7c0d002e0a5878432ee1ce0569f6c..c6a8424c708e33e033da1ab0befa4fe2d881e08f 100755 (executable)
@@ -256,7 +256,7 @@ CAM_Module* CAM_Application::loadModule( const QString& modName )
   return module;
 }
 
-/**@name Activate module group.*/
+/*! @name Activate module group. */
 //@{
 /*!Activate module with name \a modName.
  *\param modName - module name.
@@ -485,7 +485,7 @@ void CAM_Application::readModuleList()
   }
 
   if ( myInfoList.isEmpty() )
-    SUIT_MessageBox::error1( 0, tr( "Error" ), tr( "Can not load modules configuration file " ), tr( "Ok" ) );
+    SUIT_MessageBox::warn1( 0, tr( "Warning" ), tr( "Modules list is empty" ), tr( "&OK" ) );
 }
 
 /*!Add common items for popup menu ( if they are exist )
@@ -503,7 +503,6 @@ void CAM_Application::contextMenuPopup( const QString& type, QPopupMenu* thePopu
 /*!Create empty study.*/
 void CAM_Application::createEmptyStudy()
 {
-  SUIT_Study* study = activeStudy();
-
+  /*SUIT_Study* study = */activeStudy();
   STD_Application::createEmptyStudy();
 }
index d19bde6450c2daf423856443aaa649f0a6c21090..b72dc3c39f63a1a143db43b389cc60f732cbf85f 100755 (executable)
@@ -31,6 +31,13 @@ class QPopupMenu;
 #pragma warning( disable:4251 )
 #endif
 
+/*!
+  \class CAM_Application
+  Defines application configuration and behaviour for application with modules.
+  Every module has own data model, necessary windows and viewers, etc.
+  Application provides all necessary functionality for module management
+  (loading of modules/activation/deactivation, etc)
+*/
 class CAM_EXPORT CAM_Application : public STD_Application  
 {
   Q_OBJECT
index 187ec63681e07b4bb996c9d5b4e8b38f8fceb8a2..36f72afd98a10378d045ce54b07f179127ab3068 100755 (executable)
@@ -33,10 +33,12 @@ CAM_DataModel::~CAM_DataModel()
 {
 }
 
+/*!
+  Default implementation, does nothing.
+  Can be used for creation of root object.
+*/
 void CAM_DataModel::initialize()
 {
-  //! Default implementation, does nothing.\n
-  //! Can be used for creation of root object.
 }
 
 /*!Get root object.
index 0724916cde1d17d4463268d07682139d0a56be97..0c4686cbc3d069a92ec2409c5fd5cb32d5410169 100755 (executable)
@@ -29,6 +29,11 @@ class CAM_DataObject;
 class CAM_Study;
 class SUIT_DataObject;
 
+/*!
+  \class CAM_DataModel
+  Base class for all data models used in CAM-based applications.
+  Represents data model of CAM module. Provides necessary interface (default implementation is empty)
+*/
 class CAM_EXPORT CAM_DataModel : public QObject
 {
   Q_OBJECT
index 1b89a8e609263c1802f8c335cf234dd83a6f2b24..70d09994ffcd7fd62f07021b9e3777f9333c503f 100755 (executable)
 class CAM_Module;
 class CAM_DataModel;
 
+/*!
+  \class CAM_DataObject
+  Provides only additional link to CAM_DataModel
+*/
 class CAM_EXPORT CAM_DataObject : public SUIT_DataObject
 {
 public:
index 264054bdf97e0f6ddb24ca7a32e3e086286f2b00..85df558d077e60f5bbaa02c72f0b1405b41d7b21 100755 (executable)
@@ -254,9 +254,8 @@ int CAM_Module::createTool( QAction* a, const QString& tBar, const int id, const
 
 /*! Create tool.
  * Insert QAction with id \a id from action map(myActionMap) to tool manager.
- *\param a - QAction
- *\param tBar - integer
  *\param id   - integer
+ *\param tBar - integer
  *\param idx  - integer
  *\retval integer id of new action in tool manager.
  *\retval Return -1 if something wrong.
@@ -272,9 +271,8 @@ int CAM_Module::createTool( const int id, const int tBar, const int idx )
 
 /*! Create tool.
  * Insert QAction with id \a id from action map(myActionMap) to tool manager.
- *\param a - QAction
- *\param tBar - QString&
  *\param id   - integer
+ *\param tBar - QString&
  *\param idx  - integer
  *\retval integer id of new action in tool manager.
  *\retval Return -1 if something wrong.
index 29106776b0a089491ae6b806f5831afc644bd47e..06544269e9918a1dfc30e46aad369baaaa746b8f 100755 (executable)
 #pragma warning( disable:4251 )
 #endif
 
+/*!
+  \class CAM_Study
+  Represents study for using in CAM, contains list of
+  data model references from all modules. Provides
+  necessary functionality for data models management.
+*/
 class CAM_EXPORT CAM_Study : public SUIT_Study
 {
   Q_OBJECT
index 4473bc99fca8667b73ddd83c52081d71d2dac895..fb1a8af5f9f7aa9bb2b3dc2be2af57a51e95b95b 100755 (executable)
@@ -1,3 +1,21 @@
+#  Copyright (C) 2005  CEA/DEN, EDF R&D, OPEN CASCADE, PRINCIPIA R&D
+#
+#  This library is free software; you can redistribute it and/or
+#  modify it under the terms of the GNU Lesser General Public
+#  License as published by the Free Software Foundation; either
+#  version 2.1 of the License.
+#
+#  This library is distributed in the hope that it will be useful,
+#  but WITHOUT ANY WARRANTY; without even the implied warranty of
+#  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+#  Lesser General Public License for more details.
+#
+#  You should have received a copy of the GNU Lesser General Public
+#  License along with this library; if not, write to the Free Software
+#  Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307 USA
+#
+#  See http://www.salome-platform.org/
+#
 #  File   : Makefile.in
 #  Author : Vladimir Klyachin (OCN)
 #  Module : CAM
index a1b9d08541796179af901497f80e32dbb131b04a..9c2b83f082f1d71eb00c1e2c59e0babfd0340d23 100755 (executable)
@@ -1,3 +1,21 @@
+#  Copyright (C) 2005  CEA/DEN, EDF R&D, OPEN CASCADE, PRINCIPIA R&D
+#
+#  This library is free software; you can redistribute it and/or
+#  modify it under the terms of the GNU Lesser General Public
+#  License as published by the Free Software Foundation; either
+#  version 2.1 of the License.
+#
+#  This library is distributed in the hope that it will be useful,
+#  but WITHOUT ANY WARRANTY; without even the implied warranty of
+#  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+#  Lesser General Public License for more details.
+#
+#  You should have received a copy of the GNU Lesser General Public
+#  License along with this library; if not, write to the Free Software
+#  Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307 USA
+#
+#  See http://www.salome-platform.org/
+#
 # This is a Qt message file in .po format.  Each msgid starts with
 # a scope.  This scope should *NOT* be translated - eg. "Foo::Bar"
 # would be translated to "Pub", not "Foo::Pub".
@@ -14,6 +32,3 @@ msgstr "Error"
 
 msgid "ERROR_ACTIVATE_MODULE_MSG"
 msgstr "Failed to activate module %1"
-
-msgid "BUT_OK"
-msgstr "Ok"
index 35c38aaf49741f187f9626d71dec8d9f501f66b6..ae0fe63b7224293a15f23f492b6e607d7d991102 100644 (file)
@@ -1,3 +1,21 @@
+// Copyright (C) 2005  CEA/DEN, EDF R&D, OPEN CASCADE, PRINCIPIA R&D
+//
+// This library is free software; you can redistribute it and/or
+// modify it under the terms of the GNU Lesser General Public
+// License as published by the Free Software Foundation; either
+// version 2.1 of the License.
+//
+// This library is distributed in the hope that it will be useful
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+// Lesser General Public License for more details.
+//
+// You should have received a copy of the GNU Lesser General Public
+// License along with this library; if not, write to the Free Software
+// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307 USA
+//
+// See http://www.salome-platform.org/
+//
 #ifndef DDS_H
 #define DDS_H
 
index 6655e4fb7fcd81005f8d058e3322fbcdb2530bb5..b6a04dac2c20510df15851973e9aba3557aeb778 100644 (file)
@@ -1,3 +1,21 @@
+// Copyright (C) 2005  CEA/DEN, EDF R&D, OPEN CASCADE, PRINCIPIA R&D
+//
+// This library is free software; you can redistribute it and/or
+// modify it under the terms of the GNU Lesser General Public
+// License as published by the Free Software Foundation; either
+// version 2.1 of the License.
+//
+// This library is distributed in the hope that it will be useful
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+// Lesser General Public License for more details.
+//
+// You should have received a copy of the GNU Lesser General Public
+// License along with this library; if not, write to the Free Software
+// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307 USA
+//
+// See http://www.salome-platform.org/
+//
 #include "DDS_DicGroup.h"
 
 #include "DDS_Dictionary.h"
index d1c633fab89fa211dc09c10b30401a04ab3e452c..77cde5ee65372cfa286ee9549588b8c48a15f5ea 100644 (file)
@@ -1,3 +1,21 @@
+// Copyright (C) 2005  CEA/DEN, EDF R&D, OPEN CASCADE, PRINCIPIA R&D
+//
+// This library is free software; you can redistribute it and/or
+// modify it under the terms of the GNU Lesser General Public
+// License as published by the Free Software Foundation; either
+// version 2.1 of the License.
+//
+// This library is distributed in the hope that it will be useful
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+// Lesser General Public License for more details.
+//
+// You should have received a copy of the GNU Lesser General Public
+// License along with this library; if not, write to the Free Software
+// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307 USA
+//
+// See http://www.salome-platform.org/
+//
 #ifndef DDS_DICGROUP_H
 #define DDS_DICGROUP_H
 
index d20408b4c998605f8719a7e01eab0ed9f71fba59..62fafb9caf04330b8877dd85bacf4fba5f18d506 100644 (file)
@@ -1,3 +1,21 @@
+// Copyright (C) 2005  CEA/DEN, EDF R&D, OPEN CASCADE, PRINCIPIA R&D
+//
+// This library is free software; you can redistribute it and/or
+// modify it under the terms of the GNU Lesser General Public
+// License as published by the Free Software Foundation; either
+// version 2.1 of the License.
+//
+// This library is distributed in the hope that it will be useful
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+// Lesser General Public License for more details.
+//
+// You should have received a copy of the GNU Lesser General Public
+// License along with this library; if not, write to the Free Software
+// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307 USA
+//
+// See http://www.salome-platform.org/
+//
 #include "DDS_DicItem.h"
 #include "DDS_Dictionary.h"
 
index dbbedc0a7c126e6386bb7694b1e8ed43be4f041a..0e94235158bfc99495e7c390efb8b3cfc8d1c730 100644 (file)
@@ -1,3 +1,21 @@
+// Copyright (C) 2005  CEA/DEN, EDF R&D, OPEN CASCADE, PRINCIPIA R&D
+//
+// This library is free software; you can redistribute it and/or
+// modify it under the terms of the GNU Lesser General Public
+// License as published by the Free Software Foundation; either
+// version 2.1 of the License.
+//
+// This library is distributed in the hope that it will be useful
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+// Lesser General Public License for more details.
+//
+// You should have received a copy of the GNU Lesser General Public
+// License along with this library; if not, write to the Free Software
+// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307 USA
+//
+// See http://www.salome-platform.org/
+//
 #ifndef DDS_DICITEM_H
 #define DDS_DICITEM_H
 
index 3656a39495036bee802e41c03069a297339b7e85..cc43bb7d099d7cc1b69ecf22b5b747e2a2950187 100644 (file)
@@ -1,3 +1,21 @@
+// Copyright (C) 2005  CEA/DEN, EDF R&D, OPEN CASCADE, PRINCIPIA R&D
+//
+// This library is free software; you can redistribute it and/or
+// modify it under the terms of the GNU Lesser General Public
+// License as published by the Free Software Foundation; either
+// version 2.1 of the License.
+//
+// This library is distributed in the hope that it will be useful
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+// Lesser General Public License for more details.
+//
+// You should have received a copy of the GNU Lesser General Public
+// License along with this library; if not, write to the Free Software
+// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307 USA
+//
+// See http://www.salome-platform.org/
+//
 #include "DDS_Dictionary.h"
 
 #include "DDS_KeyWords.h"
index d58a15f76cfcc158ff7d943acc7d3134686b5646..69e653c2838d2b38dc911ea13d2aa79aae83a283 100644 (file)
@@ -1,3 +1,21 @@
+// Copyright (C) 2005  CEA/DEN, EDF R&D, OPEN CASCADE, PRINCIPIA R&D
+//
+// This library is free software; you can redistribute it and/or
+// modify it under the terms of the GNU Lesser General Public
+// License as published by the Free Software Foundation; either
+// version 2.1 of the License.
+//
+// This library is distributed in the hope that it will be useful
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+// Lesser General Public License for more details.
+//
+// You should have received a copy of the GNU Lesser General Public
+// License along with this library; if not, write to the Free Software
+// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307 USA
+//
+// See http://www.salome-platform.org/
+//
 #ifndef DDS_DICTIONARY_H
 #define DDS_DICTIONARY_H
 
index 2f53d2a9258bf5ae3b32d98e317509b7910bd48b..42ffad97d024b2823c2518b508d8ccf092d377cb 100644 (file)
@@ -1,3 +1,21 @@
+// Copyright (C) 2005  CEA/DEN, EDF R&D, OPEN CASCADE, PRINCIPIA R&D
+//
+// This library is free software; you can redistribute it and/or
+// modify it under the terms of the GNU Lesser General Public
+// License as published by the Free Software Foundation; either
+// version 2.1 of the License.
+//
+// This library is distributed in the hope that it will be useful
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+// Lesser General Public License for more details.
+//
+// You should have received a copy of the GNU Lesser General Public
+// License along with this library; if not, write to the Free Software
+// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307 USA
+//
+// See http://www.salome-platform.org/
+//
 #include "DDS_KeyWords.h"
 
 IMPLEMENT_STANDARD_HANDLE(DDS_KeyWords, MMgt_TShared)
index 2c1faf914efb0da3f1e2a51a06ebf6870d6b9f74..53d3e17d72afbb6926833f4512cef53743731b1c 100644 (file)
@@ -1,3 +1,21 @@
+// Copyright (C) 2005  CEA/DEN, EDF R&D, OPEN CASCADE, PRINCIPIA R&D
+//
+// This library is free software; you can redistribute it and/or
+// modify it under the terms of the GNU Lesser General Public
+// License as published by the Free Software Foundation; either
+// version 2.1 of the License.
+//
+// This library is distributed in the hope that it will be useful
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+// Lesser General Public License for more details.
+//
+// You should have received a copy of the GNU Lesser General Public
+// License along with this library; if not, write to the Free Software
+// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307 USA
+//
+// See http://www.salome-platform.org/
+//
 #ifndef DDS_KEYWORDS_H
 #define DDS_KEYWORDS_H
 
index a3b9eb89f9b3135391fd555a2bb4b68881d6c135..22d6b414378c03b4a0670fedd5b4b27ea8107829 100755 (executable)
@@ -1,3 +1,21 @@
+#  Copyright (C) 2005  CEA/DEN, EDF R&D, OPEN CASCADE, PRINCIPIA R&D
+#
+#  This library is free software; you can redistribute it and/or
+#  modify it under the terms of the GNU Lesser General Public
+#  License as published by the Free Software Foundation; either
+#  version 2.1 of the License.
+#
+#  This library is distributed in the hope that it will be useful,
+#  but WITHOUT ANY WARRANTY; without even the implied warranty of
+#  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+#  Lesser General Public License for more details.
+#
+#  You should have received a copy of the GNU Lesser General Public
+#  License along with this library; if not, write to the Free Software
+#  Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307 USA
+#
+#  See http://www.salome-platform.org/
+#
 #  File   : Makefile.in
 #  Author : Alexander SOLOVYOV (OCN)
 #  Module : DDS
index b9fde9c860ec9d789e159ee8cc152f2fd79dfce8..4fb782f57abe41207872abccea5caab7b04bf194 100755 (executable)
@@ -45,7 +45,7 @@ EXPORT_PYSCRIPTS =
 LIB = libEvent.la 
 LIB_SRC = SALOME_Event.cxx 
 
-CPPFLAGS+=$(QT_INCLUDES) -I${KERNEL_ROOT_DIR}/include/salome
+CPPFLAGS+=$(QT_INCLUDES) $(KERNEL_CXXFLAGS)
 LDFLAGS+=$(QT_MT_LIBS)
 
 @CONCLUDE@
index 84928f6232cf5795667c1029dca4aa09a0ed7ab5..d34dfc01ad1a02eb9863af0bbcba259116e04ae8 100755 (executable)
@@ -51,6 +51,9 @@ static DWORD myThread;
 static pthread_t myThread;
 #endif
 
+/*!
+  \return thread id
+*/
 void SALOME_Event::GetSessionThread(){
 #ifdef WIN32
   myThread = ::GetCurrentThreadId();
@@ -59,6 +62,9 @@ void SALOME_Event::GetSessionThread(){
 #endif
 }
 
+/*!
+  \return true if it is session thread
+*/
 bool SALOME_Event::IsSessionThread(){
   bool aResult = false;
 #ifdef WIN32
@@ -71,12 +77,9 @@ bool SALOME_Event::IsSessionThread(){
 }
 
 
-//===========================================================
 /*!
- *  SALOME_Event::SALOME_Event
- *  Constructor
- */
-//===========================================================
+  Constructor
+*/
 SALOME_Event::SALOME_Event(){
 //  if(MYDEBUG) MESSAGE( "SALOME_Event::SALOME_Event(): this = "<<this );
   // Prepare the semaphore 
@@ -84,12 +87,9 @@ SALOME_Event::SALOME_Event(){
   *mySemaphore += 2;
 }
 
-//===========================================================
 /*!
- *  SALOME_Event::~SALOME_Event
- *  Destructor
- */
-//===========================================================
+  Destructor
+*/
 SALOME_Event::~SALOME_Event(){
 //  if(MYDEBUG) MESSAGE( "SALOME_Event::~SALOME_Event(): this = "<<this );
   if ( mySemaphore->available() < mySemaphore->total() )
@@ -97,12 +97,9 @@ SALOME_Event::~SALOME_Event(){
   delete mySemaphore;
 }
 
-//===========================================================
 /*!
- *  SALOME_Event::process
- *  Posts the event and optionally waits for its completion
- */
-//===========================================================
+  Posts the event and optionally waits for its completion
+*/
 void SALOME_Event::process()
 {
   QThread::postEvent( qApp, new QCustomEvent( SALOME_EVENT, (void*)this ) );
@@ -111,12 +108,9 @@ void SALOME_Event::process()
 //  if(MYDEBUG) MESSAGE( "SALOME_Event::process(): this = "<<this<<" - COMPLETED" );
 }
 
-//===========================================================
 /*!
- *  SALOME_Event::processed
- *  Signals that this event has been processed
- */
-//===========================================================
+  Signals that this event has been processed
+*/
 void SALOME_Event::processed()
 {
 //  if(MYDEBUG) MESSAGE( "SALOME_Event::processed(): this = "<<this );
index 13585c0c37987f5cc3dd4cb89913905751e9b431..9d3e410e75f552409dd36e187409542d027ef9bf 100755 (executable)
@@ -36,9 +36,8 @@
 
 class QSemaphore;
 
-//===========================================================
 /*!
- *  Class: SALOME_Event
+ *  \class SALOME_Event
  *  Description: 
  *  This class encapsulates data and functionality required for 
  *  posting component-specific events to perform arbitrary operations in main GUI thread. 
@@ -66,7 +65,6 @@ class QSemaphore;
  *  Caveats: 
  *    There is no.
  */
-//===========================================================
 
 #include <Event.h>
 
@@ -93,10 +91,11 @@ private:
 };
 
 
-// Template classes for member function
-//-------------------------------------
-template<class TObject, typename TRes>
-class EVENT_EXPORT TMemFunEvent: public SALOME_Event{
+/*!
+  \class TMemFunEvent
+  \brief Template class for member function
+*/
+template<class TObject, typename TRes> class EVENT_EXPORT TMemFunEvent: public SALOME_Event{
 public:
   typedef TRes TResult;
   TResult myResult;
@@ -116,8 +115,11 @@ private:
 };
 
 
-template<class TObject>
-class EVENT_EXPORT TVoidMemFunEvent: public SALOME_Event{
+/*!
+  \class TVoidMemFunEvent
+  \brief Template class for member function
+*/
+template<class TObject> class EVENT_EXPORT TVoidMemFunEvent: public SALOME_Event{
 public:
   typedef void (TObject::* TAction)();
   TVoidMemFunEvent(TObject* theObject, TAction theAction):
@@ -133,11 +135,12 @@ private:
 };
 
 
-// Template for member function with one argument
-//-----------------------------------------------
-template<class TObject, typename TRes, 
-        typename TArg, typename TStoreArg = TArg>
-class EVENT_EXPORT TMemFun1ArgEvent: public SALOME_Event{
+/*!
+  \class TMemFun1ArgEvent
+  \brief Template for member function with one argument
+*/
+template<class TObject, typename TRes, typename TArg, typename TStoreArg = TArg> class EVENT_EXPORT TMemFun1ArgEvent:
+public SALOME_Event{
 public:
   typedef TRes TResult;
   TResult myResult;
@@ -159,8 +162,11 @@ private:
 };
 
 
-template<class TObject, typename TArg, typename TStoreArg = TArg>
-class EVENT_EXPORT TVoidMemFun1ArgEvent: public SALOME_Event{
+/*!
+  \class TVoidMemFun1ArgEvent
+  \brief Template for member function with one argument
+*/
+template<class TObject, typename TArg, typename TStoreArg = TArg> class EVENT_EXPORT TVoidMemFun1ArgEvent: public SALOME_Event{
 public:
   typedef void (TObject::* TAction)(TArg);
   TVoidMemFun1ArgEvent(TObject* theObject, TAction theAction, TArg theArg):
@@ -178,12 +184,12 @@ private:
 };
 
 
-// Template for member function with one argument
-//-----------------------------------------------
-template<class TObject, typename TRes,
-        typename TArg, typename TArg1, 
-        typename TStoreArg = TArg, typename TStoreArg1 = TArg1>
-class EVENT_EXPORT TMemFun2ArgEvent: public SALOME_Event{
+/*!
+  \class TMemFun2ArgEvent
+  \brief Template for member function with two arguments
+*/
+template<class TObject, typename TRes, typename TArg, typename TArg1, typename TStoreArg = TArg, typename TStoreArg1 = TArg1> class
+EVENT_EXPORT TMemFun2ArgEvent: public SALOME_Event{
 public:
   typedef TRes TResult;
   TResult myResult;
@@ -208,9 +214,12 @@ private:
 };
 
 
-template<class TObject, typename TArg, typename TArg1, 
-        typename TStoreArg = TArg, typename TStoreArg1 = TArg1>
-class EVENT_EXPORT TVoidMemFun2ArgEvent: public SALOME_Event{
+/*!
+  \class TVoidMemFun2ArgEvent
+  \brief Template for member function with two arguments
+*/
+template<class TObject, typename TArg, typename TArg1, typename TStoreArg = TArg, typename TStoreArg1 = TArg1> class
+EVENT_EXPORT TVoidMemFun2ArgEvent: public SALOME_Event{
 public:
   typedef void (TObject::* TAction)(TArg,TArg1);
   TVoidMemFun2ArgEvent(TObject* theObject, TAction theAction, TArg theArg, TArg1 theArg1):
@@ -230,7 +239,10 @@ private:
 };
 
 
-// Template function for processing events with result returing
+/*!
+  \fn ProcessEvent
+  \brief Template function for processing events with result returing
+*/
 template<class TEvent> inline typename TEvent::TResult ProcessEvent(TEvent* theEvent){
   typename TEvent::TResult aResult;
   if(SALOME_Event::IsSessionThread()){
@@ -245,7 +257,10 @@ template<class TEvent> inline typename TEvent::TResult ProcessEvent(TEvent* theE
 }
 
 
-// Template function for processing events without result
+/*!
+  \fn ProcessEvent
+  \brief Template function for processing events without result
+*/
 inline void ProcessVoidEvent(SALOME_Event* theEvent){
   if(SALOME_Event::IsSessionThread()){
     theEvent->Execute();
index 4df6041b3f230a36be94918767c55f02e569f81b..a0d2185376103a98b3f64da68502cdc951822374 100644 (file)
 // File:      GLViewer_AspectLine.cxx
 // Created:   26/05/2005 3:17:00 PM
 
-//================================================================
-// Class       : GLViewer_AspectLine
-// Description : Substitution of Prs2d_AspectLine for OpenGL
-//================================================================
 #include "GLViewer_AspectLine.h"
 
-//=======================================================================
-// Function: GLViewer_AspectLine
-// Purpose :
-//=======================================================================
+/*!
+  Default constructor
+*/
 GLViewer_AspectLine::GLViewer_AspectLine()
 {
     myNColor = QColor( 255, 255, 255 );
@@ -42,10 +37,11 @@ GLViewer_AspectLine::GLViewer_AspectLine()
     myLineType = 0;
 }
 
-//=======================================================================
-// Function: GLViewer_AspectLine
-// Purpose :
-//=======================================================================
+/*!
+  Constructor
+  \param type: 0 for normal line and 1 for strip line
+  \param width - width of line
+*/
 GLViewer_AspectLine::GLViewer_AspectLine( int type, float width )
 {
     myNColor = QColor( 255, 255, 255 );
@@ -59,18 +55,19 @@ GLViewer_AspectLine::GLViewer_AspectLine( int type, float width )
         myLineType = 0;
 }
 
-//=======================================================================
-// Function: ~GLViewer_AspectLine
-// Purpose :
-//=======================================================================
+/*!
+  Destructor
+*/
 GLViewer_AspectLine::~GLViewer_AspectLine()
 {
 }
 
-//=======================================================================
-// Function: setLineColors
-// Purpose :
-//=======================================================================
+/*!
+  Sets line color
+  \param nc - normal color
+  \param hc - hilighting color
+  \param sc - selection color
+*/
 void GLViewer_AspectLine::setLineColors( QColor nc, QColor hc, QColor sc )
 {
     myNColor = nc;
@@ -78,10 +75,10 @@ void GLViewer_AspectLine::setLineColors( QColor nc, QColor hc, QColor sc )
     mySColor = sc;
 }
 
-//=======================================================================
-// Function: setLineType
-// Purpose :
-//=======================================================================
+/*!
+  Sets type of line
+  \param type: 0 for normal line and 1 for strip line
+*/
 int GLViewer_AspectLine::setLineType( const int type )
 {
     if( type == 1 || type == 0 )
@@ -92,10 +89,10 @@ int GLViewer_AspectLine::setLineType( const int type )
     return 1;
 }
 
-//=======================================================================
-// Function: setLineWidth
-// Purpose :
-//=======================================================================
+/*!
+  Sets width of line
+  \param width - new width of line
+*/
 int GLViewer_AspectLine::setLineWidth( const float width )
 {
     if( width > 0 )
@@ -106,10 +103,12 @@ int GLViewer_AspectLine::setLineWidth( const float width )
     return 1;
 }
 
-//=======================================================================
-// Function: getLineColors
-// Purpose :
-//=======================================================================
+/*!
+  \return colors of line
+  \param nc - variable for normal color
+  \param hc - variable for hilighting color
+  \param sc - variable for selection color
+*/
 void GLViewer_AspectLine::getLineColors( QColor& nc, QColor& hc, QColor& sc ) const
 {
     nc = myNColor;
@@ -117,10 +116,9 @@ void GLViewer_AspectLine::getLineColors( QColor& nc, QColor& hc, QColor& sc ) co
     sc = mySColor;
 }
 
-//=======================================================================
-// Function: getByteCopy
-// Purpose :
-//=======================================================================
+/*!
+  \return binary representation of line aspect
+*/
 QByteArray GLViewer_AspectLine::getByteCopy() const
 {
     int anISize = sizeof( int );
@@ -174,10 +172,9 @@ QByteArray GLViewer_AspectLine::getByteCopy() const
     return aResult;
 }
 
-//=======================================================================
-// Function: fromByteCopy
-// Purpose :
-//=======================================================================
+/*!
+  Sets line aspect from binary representation
+*/
 GLViewer_AspectLine* GLViewer_AspectLine::fromByteCopy( QByteArray theBytes )
 {
 
index 800b166bb13d85815413628f59eea494cfff4989..23320b46fc6977d082521ed3a7ece1077e4dad83 100644 (file)
@@ -34,9 +34,9 @@
 #endif
 
 /*! 
Class GLViewer_AspectLine
Substitution of Prs2d_AspectLine for OpenGL
- */
\Class GLViewer_AspectLine
+ Substitution of Prs2d_AspectLine for OpenGL
+*/
 
 class GLVIEWER_API GLViewer_AspectLine 
 {
index a43a5930ed7d3f8407b13c94da9d093696db128d..5a8b6030e94ee34741f80a47559baa36fa95186c 100644 (file)
 #include <GL/glx.h>
 #endif
 
-/***************************************************************************
-**  Class:   GLViewer_MarkerDrawer
-**  Descr:   Drawer for GLViewer_MarkerSet
-**  Module:  GLViewer
-**  Created: UI team, 03.10.01
-****************************************************************************/
-
 GLfloat sin_table[SEGMENTS];
 GLfloat cos_table[SEGMENTS];
 
+/*!
+  Default constructor
+*/
 GLViewer_MarkerDrawer::GLViewer_MarkerDrawer()
 : GLViewer_Drawer()
 {
@@ -56,10 +52,18 @@ GLViewer_MarkerDrawer::GLViewer_MarkerDrawer()
     myObjectType = "GLViewer_MarkerSet";
 }
 
+/*!
+  Destructor
+*/
 GLViewer_MarkerDrawer::~GLViewer_MarkerDrawer()
 {
 }
 
+/*! Draws object in GLViewer
+  \param xScale - current scale along X-direction
+  \param yScale - current scale along Y-direction
+  \param onlyUpdate - = true if only update highlight-select information
+*/
 void GLViewer_MarkerDrawer::create( float xScale, float yScale, bool onlyUpdate )
 {
     QValueList<int>::Iterator it;
@@ -134,6 +138,13 @@ void GLViewer_MarkerDrawer::create( float xScale, float yScale, bool onlyUpdate
     }
 }
 
+/*! Draws marker
+  \param theXCoord - X position
+  \param theYCoord - Y position
+  \param theRadius - radius
+  \param theColor - color
+  \param theAspectLine - line aspect
+*/
 void GLViewer_MarkerDrawer::drawMarker( float& theXCoord, float& theYCoord,
                                      float& theRadius, QColor& theColor, GLViewer_AspectLine* theAspectLine )
 {
@@ -154,23 +165,28 @@ void GLViewer_MarkerDrawer::drawMarker( float& theXCoord, float& theYCoord,
     glEnd();
 }
 
-/***************************************************************************
-**  Class:   GLViewer_PolylineDrawer
-**  Descr:   Drawer for GLViewer_Polyline
-**  Module:  GLViewer
-**  Created: UI team, 03.10.01
-****************************************************************************/
 
+/*!
+  Default constructor
+*/
 GLViewer_PolylineDrawer::GLViewer_PolylineDrawer()
 :GLViewer_Drawer()
 {
     myObjectType = "GLViewer_Polyline";
 }
 
+/*!
+  Destructor
+*/
 GLViewer_PolylineDrawer::~GLViewer_PolylineDrawer()
 {
 }
 
+/*! Draws object in GLViewer
+  \param xScale - current scale along X-direction
+  \param yScale - current scale along Y-direction
+  \param onlyUpdate - = true if only update highlight-select information
+*/
 void GLViewer_PolylineDrawer::create( float xScale, float yScale, bool onlyUpdate )
 {
     QValueList<GLViewer_Object*>::Iterator aObjectIt = myObjects.begin();
@@ -239,23 +255,27 @@ void GLViewer_PolylineDrawer::create( float xScale, float yScale, bool onlyUpdat
     }
 }
 
-/***************************************************************************
-**  Class:   GLViewer_TextDrawer
-**  Descr:   
-**  Module:  GLViewer
-**  Created: UI team, 27.02.04
-****************************************************************************/
-
+/*!
+  Default constructor
+*/
 GLViewer_TextDrawer::GLViewer_TextDrawer()
 : GLViewer_Drawer()
 {
     myObjectType = "GLViewer_TextObject";
 }
 
+/*!
+  Destructor
+*/
 GLViewer_TextDrawer::~GLViewer_TextDrawer()
 {
 }
 
+/*! Draws object in GLViewer
+  \param xScale - current scale along X-direction
+  \param yScale - current scale along Y-direction
+  \param onlyUpdate - = true if only update highlight-select information
+*/
 void GLViewer_TextDrawer::create( float xScale, float yScale, bool onlyUpdate )
 {
     QValueList<GLViewer_Object*>::Iterator aObjectIt = myObjects.begin();
@@ -297,6 +317,9 @@ void GLViewer_TextDrawer::create( float xScale, float yScale, bool onlyUpdate )
     }
 }
 
+/*!
+  Updates objects after updating font
+*/
 void GLViewer_TextDrawer::updateObjects()
 {
     QValueList<GLViewer_Object*>::Iterator aObjectIt = myObjects.begin();
index ce98aa8679a561b7264b25536058fdd8ac0ce232..2d475f47d303adb0f68d4ac52ecf4bed4ea9b72e 100644 (file)
@@ -40,9 +40,10 @@ class GLViewer_AspectLine;
 #pragma warning( disable:4251 )
 #endif
 
-/*! Class GLViewer_MarkerDrawer
-*  Drawer for GLViewer_MarkerSet
- */
+/*! 
+  \class GLViewer_MarkerDrawer
+  Drawer for GLViewer_MarkerSet
+*/
 
 class GLVIEWER_API GLViewer_MarkerDrawer : public GLViewer_Drawer  
 {
@@ -58,8 +59,9 @@ private:
   void               drawMarker( float& x, float& y, float& radius, QColor& color, GLViewer_AspectLine* aspect );
 };
 
-/*! Class  GLViewer_PolylineDrawer
-* Drawer for GLViewer_Polyline
+/*!
+  \class  GLViewer_PolylineDrawer
+  Drawer for GLViewer_Polyline
 */
 
 class GLVIEWER_API GLViewer_PolylineDrawer : public GLViewer_Drawer  
@@ -71,8 +73,9 @@ public:
   virtual void       create( float, float, bool );    
 };
 
-/* Class GLViewer_TextDrawer
-* Drawer for GLViewer_Text
+/*!
+   \class GLViewer_TextDrawer
+   Drawer for GLViewer_Text
 */
 
 class GLVIEWER_API GLViewer_TextDrawer: public GLViewer_Drawer
index 79c32e3f86a7a34049404260146f9191d13d9193..c35c664dbde1da0a1703710971e1e0ef5e53279c 100644 (file)
 //  Author : OPEN CASCADE
 //
 
-/***************************************************************************
-**  Class:   GLViewer_BaseObjects
-**  Descr:   Internal OpenGL Objects
-**  Module:  GLViewer
-**  Created: UI team, 02.09.02
-****************************************************************************/
-
 //#include <GLViewerAfx.h>
 #include "GLViewer_BaseObjects.h"
 #include "GLViewer_BaseDrawers.h"
 //#include <cmath>
 //using namespace std;
 
-/***************************************************************************
-**  Class:   GLViewer_MarkerSet
-**  Descr:   OpenGL MarkerSet
-**  Module:  GLViewer
-**  Created: UI team, 03.09.02
-****************************************************************************/
-
+/*!
+  Constructor
+*/
 GLViewer_MarkerSet::GLViewer_MarkerSet( int number, float size, const QString& toolTip ) :
   GLViewer_Object(),
   myNumber( 0 ),
@@ -67,6 +56,9 @@ GLViewer_MarkerSet::GLViewer_MarkerSet( int number, float size, const QString& t
     setNumMarkers( number );    
 }
 
+/*!
+  Destructor
+*/
 GLViewer_MarkerSet::~GLViewer_MarkerSet()
 {
     if ( myXCoord )
@@ -75,6 +67,16 @@ GLViewer_MarkerSet::~GLViewer_MarkerSet()
         delete[] myYCoord;
 }
 
+/*!
+  Adds coords to text buffer in HPGL format
+  \param buffer - text buffer
+  \param command - command to be added with coords
+  \param aViewerCS - viewer co-ordinates system
+  \param aPaperCS - paper co-ordinates system
+  \param x - x co-ordinate
+  \param y - y co-ordinate
+  \param NewLine - adds new line to buffer
+*/
 void AddCoordsToHPGL( QString& buffer, QString command, GLViewer_CoordSystem* aViewerCS, 
                       GLViewer_CoordSystem* aPaperCS, double x, double y, bool NewLine = true )
 {
@@ -87,6 +89,16 @@ void AddCoordsToHPGL( QString& buffer, QString command, GLViewer_CoordSystem* aV
         buffer += ";\n";
 }
 
+/*!
+  Adds coords to text buffer in PostScript format
+  \param buffer - text buffer
+  \param command - command to be added with coords
+  \param aViewerCS - viewer co-ordinates system
+  \param aPaperCS - paper co-ordinates system
+  \param x - x co-ordinate
+  \param y - y co-ordinate
+  \param NewLine - adds new line to buffer
+*/
 void AddCoordsToPS( QString& buffer, QString command, GLViewer_CoordSystem* aViewerCS, 
                     GLViewer_CoordSystem* aPaperCS, double x, double y, bool NewLine = true )
 {
@@ -99,6 +111,13 @@ void AddCoordsToPS( QString& buffer, QString command, GLViewer_CoordSystem* aVie
         buffer += "\n";
 }
 
+/*!
+  Adds line aspect description to text buffer in PostScript format
+  \param buffer - text buffer
+  \param anAspect - line aspect
+  \param aViewerCS - viewer co-ordinates system
+  \param aPaperCS - paper co-ordinates system
+*/
 void AddLineAspectToPS( QString& buffer, GLViewer_AspectLine* anAspect, 
                         GLViewer_CoordSystem* aViewerCS, GLViewer_CoordSystem* aPaperCS )
 {
@@ -129,6 +148,13 @@ void AddLineAspectToPS( QString& buffer, GLViewer_AspectLine* anAspect,
 }
 
 #ifdef WIN32
+/*!
+  Adds line aspect description EMF image
+  \param hDC - descriptor of EMF
+  \param anAspect - line aspect
+  \param aViewerCS - viewer co-ordinates system
+  \param aPaperCS - paper co-ordinates system
+*/
 HPEN AddLineAspectToEMF( HDC hDC, GLViewer_AspectLine* anAspect, 
                          GLViewer_CoordSystem* aViewerCS, GLViewer_CoordSystem* aPaperCS )
 {
@@ -150,6 +176,12 @@ HPEN AddLineAspectToEMF( HDC hDC, GLViewer_AspectLine* anAspect,
 }
 #endif
 
+/*!
+  Saves to file PostScript set of markers
+  \param hFile - file instance
+  \param aViewerCS - viewer co-ordinates system
+  \param aPSCS - paper co-ordinates system
+*/
 bool GLViewer_MarkerSet::translateToPS( QFile& hFile, GLViewer_CoordSystem* aViewerCS, GLViewer_CoordSystem* aPSCS )
 {   
     int noPoints = 20;
@@ -187,6 +219,12 @@ bool GLViewer_MarkerSet::translateToPS( QFile& hFile, GLViewer_CoordSystem* aVie
     return true;
 }
 
+/*!
+  Saves to file HPGL set of markers
+  \param hFile - file instance
+  \param aViewerCS - viewer co-ordinates system
+  \param aHPGLCS - paper co-ordinates system
+*/
 bool GLViewer_MarkerSet::translateToHPGL( QFile& hFile, GLViewer_CoordSystem* aViewerCS,
                                        GLViewer_CoordSystem* aHPGLCS )
 {
@@ -221,6 +259,12 @@ bool GLViewer_MarkerSet::translateToHPGL( QFile& hFile, GLViewer_CoordSystem* aV
 }
 
 #ifdef WIN32
+/*!
+  Saves to EMF image set of markers
+  \param dc - EMF image descriptor
+  \param aViewerCS - viewer co-ordinates system
+  \param aEMFCS - paper co-ordinates system
+*/
 bool GLViewer_MarkerSet::translateToEMF( HDC dc, GLViewer_CoordSystem* aViewerCS, GLViewer_CoordSystem* aEMFCS )
 {
     int noPoints = 20;
@@ -256,7 +300,9 @@ bool GLViewer_MarkerSet::translateToEMF( HDC dc, GLViewer_CoordSystem* aViewerCS
 }
 #endif
 
-
+/*! 
+  Computes all necessary information about object for presentation in drawer
+*/
 void GLViewer_MarkerSet::compute()
 {
 //  cout << "GLViewer_MarkerSet::compute" << endl;
@@ -282,13 +328,23 @@ void GLViewer_MarkerSet::compute()
   myRect->setBottom( ya - myYGap );
 }
 
+/*!
+  Creates corresponding drawer
+*/
 GLViewer_Drawer* GLViewer_MarkerSet::createDrawer()
 {
 //  cout << "GLViewer_MarkerSet::createDrawer" << endl;
   return myDrawer = new GLViewer_MarkerDrawer();
 }
 
-
+/*!
+  Computes highlight presentation
+  \param x        - x coord
+  \param y        - y coord
+  \param tol      - tolerance of detecting
+  \param isCircle - true if sensitive area of detection is round
+  \return true if highlight status is changed
+*/
 GLboolean GLViewer_MarkerSet::highlight( GLfloat x, GLfloat y, GLfloat tol, GLboolean isCircle )
 {
     if( !myIsVisible )
@@ -342,6 +398,9 @@ GLboolean GLViewer_MarkerSet::highlight( GLfloat x, GLfloat y, GLfloat tol, GLbo
   return update;
 }
 
+/*!
+  Unhilights object
+*/
 GLboolean GLViewer_MarkerSet::unhighlight()
 {
   if( !myHNumbers.isEmpty() )
@@ -356,6 +415,15 @@ GLboolean GLViewer_MarkerSet::unhighlight()
   return GL_FALSE;
 }
 
+/*!
+  Selects marker set
+  /param x, y - co-ordinates of mouse
+  /param tol - tolerance
+  /param rect - rectangle (in case of rectangular selection)
+  /param isFull - if it is true, then object may selected only if it lays whole in selection zone
+  \param isCircle - true if sensitive area of detection is round
+  \param isShift  - true if selection exec with append option
+*/
 GLboolean GLViewer_MarkerSet::select( GLfloat x, GLfloat y, GLfloat tol, GLViewer_Rect rect, GLboolean isFull,
                                       GLboolean isCircle, GLboolean isShift )
 {
@@ -480,6 +548,9 @@ GLboolean GLViewer_MarkerSet::select( GLfloat x, GLfloat y, GLfloat tol, GLViewe
   return myIsSel;
 }
 
+/*!
+  Unselects marker set
+*/
 GLboolean GLViewer_MarkerSet::unselect()
 {
   if( !mySelNumbers.isEmpty() )
@@ -493,6 +564,10 @@ GLboolean GLViewer_MarkerSet::unselect()
   return GL_FALSE;
 }
 
+/*!
+  \return update object rectangle
+  Does not equal getRect() if object have a persistence to some viewer transformations
+*/
 GLViewer_Rect* GLViewer_MarkerSet::getUpdateRect()
 {
   GLViewer_Rect* rect = new GLViewer_Rect();
@@ -510,7 +585,11 @@ GLViewer_Rect* GLViewer_MarkerSet::getUpdateRect()
   return rect;
 }
 
-
+/*!
+  Sets array of x coords of points
+  \param xCoord - array of co-ordinates
+  \param size - array size
+*/
 void GLViewer_MarkerSet::setXCoord( GLfloat* xCoord, int size )
 {
   myXCoord = new GLfloat[ size ];
@@ -518,6 +597,11 @@ void GLViewer_MarkerSet::setXCoord( GLfloat* xCoord, int size )
      myXCoord[i] = xCoord[i];
 }
 
+/*!
+  Sets array of y coords of points
+  \param yCoord - array of co-ordinates
+  \param size - array size
+*/
 void GLViewer_MarkerSet::setYCoord( GLfloat* yCoord, int size )
 {
   myYCoord = new GLfloat[ size ];
@@ -525,6 +609,10 @@ void GLViewer_MarkerSet::setYCoord( GLfloat* yCoord, int size )
      myYCoord[i] = yCoord[i];
 }
 
+/*!
+  Sets number of markers
+  \param number - new number of markers
+*/
 void GLViewer_MarkerSet::setNumMarkers( GLint number )
 {
   if ( myNumber == number )
@@ -540,22 +628,10 @@ void GLViewer_MarkerSet::setNumMarkers( GLint number )
   myXCoord = new GLfloat[ myNumber ];
   myYCoord = new GLfloat[ myNumber ];
 }
-/*
-void GLViewer_MarkerSet::onSelectionDone( bool append)
-{
-  mySelectedIndexes.Clear();
-  QValueList<int>::Iterator it;
-  //for( it = myMarkers->mySelNumbers.begin(); it != myMarkers->mySelNumbers.end(); ++it )
-  //  mySelectedIndexes.Append( *it / 2 ); //!!!
 
-  emit dvMarkersSelected( mySelectedIndexes );
-}
 
-void GLViewer_MarkerSet::onSelectionCancel()
-{
-  mySelectedIndexes.Clear();
-  emit dvMarkersSelected( mySelectedIndexes );
-}
+/*!
+  Export numbers of highlighted/selected lines
 */
 void GLViewer_MarkerSet::exportNumbers( QValueList<int>& highlight,
                      QValueList<int>& unhighlight,
@@ -570,6 +646,10 @@ void GLViewer_MarkerSet::exportNumbers( QValueList<int>& highlight,
     myUHNumbers = myHNumbers;
 }
 
+/*!
+  Adds or remove selected number
+  \param index - selected index
+*/
 bool GLViewer_MarkerSet::addOrRemoveSelected( int index )
 {
   if( index < 0 || index > myNumber )
@@ -588,6 +668,10 @@ bool GLViewer_MarkerSet::addOrRemoveSelected( int index )
   return TRUE;
 }
 
+/*!
+  Adds some selected numbers
+  \param seq - sequence of indices
+*/
 void GLViewer_MarkerSet::addSelected( const TColStd_SequenceOfInteger& seq )
 {
   for ( int i = 1; i <= seq.Length(); i++ )
@@ -595,6 +679,10 @@ void GLViewer_MarkerSet::addSelected( const TColStd_SequenceOfInteger& seq )
       mySelNumbers.append( seq.Value( i ) - 1 );
 }
 
+/*!
+  Sets some numbers as selected
+  \param seq - sequence of indices
+*/
 void GLViewer_MarkerSet::setSelected( const TColStd_SequenceOfInteger& seq )
 {
 //   for( QValueList<int>::Iterator it = mySelNumbers.begin(); it != mySelNumbers.end(); ++it )
@@ -608,6 +696,11 @@ void GLViewer_MarkerSet::setSelected( const TColStd_SequenceOfInteger& seq )
     mySelNumbers.append( seq.Value( i ) - 1 );
 }
 
+/*! Moves object by recomputing
+  \param dx        - moving along X coord
+  \param dy        - moving along Y coord
+  \param fromGroup - is true if this method called from group
+*/
 void GLViewer_MarkerSet::moveObject( float theX, float theY, bool fromGroup )
 {
     if( !fromGroup && myGroup)
@@ -623,6 +716,10 @@ void GLViewer_MarkerSet::moveObject( float theX, float theY, bool fromGroup )
     compute();    
 }
 
+/*!
+  Codes marker set as byte copy
+  \return byte array
+*/
 QByteArray GLViewer_MarkerSet::getByteCopy()
 {
     int i = 0;
@@ -655,6 +752,10 @@ QByteArray GLViewer_MarkerSet::getByteCopy()
     return aResult;
 }
 
+/*!
+  Initialize marker set by byte array
+  \param theArray - byte array
+*/
 bool GLViewer_MarkerSet::initializeFromByteCopy( QByteArray theArray )
 {
     int i = 0;
@@ -701,16 +802,20 @@ bool GLViewer_MarkerSet::initializeFromByteCopy( QByteArray theArray )
     return true;        
 }
 
-/***************************************************************************
-**  Class:   GLViewer_Polyline
-**  Descr:   OpenGL Polyline
-**  Module:  GLViewer
-**  Created: UI team, 03.09.02
-****************************************************************************/
+/*!
+  \class GLViewer_Polyline
+  OpenGL Polyline
+*/
 
 #define SECTIONS 100
 #define DISTANTION 5
 
+/*!
+  Constructor
+  \param number - number of segments
+  \param size - size of polyline
+  \param toolTip - tool tip of polyline
+*/
 GLViewer_Polyline::GLViewer_Polyline( int number, float size, const QString& toolTip ):
   GLViewer_Object(),
   myNumber( 0 ),
@@ -732,6 +837,9 @@ GLViewer_Polyline::GLViewer_Polyline( int number, float size, const QString& too
   myToolTipText = toolTip;
 }
 
+/*!
+  Destructor, destroys internal arrays of co-ordinates
+*/
 GLViewer_Polyline::~GLViewer_Polyline()
 {
   if ( myXCoord )
@@ -740,6 +848,12 @@ GLViewer_Polyline::~GLViewer_Polyline()
     delete[] myYCoord;
 }
 
+/*!
+  Saves polyline to file PostScript
+  \param hFile - file instance
+  \param aViewerCS - viewer co-ordinates system
+  \param aPSCS - paper co-ordinates system
+*/
 bool GLViewer_Polyline::translateToPS( QFile& hFile, GLViewer_CoordSystem* aViewerCS, GLViewer_CoordSystem* aPSCS )
 {
     QString aBuffer = "newpath\n";
@@ -762,6 +876,12 @@ bool GLViewer_Polyline::translateToPS( QFile& hFile, GLViewer_CoordSystem* aView
     return true;
 }
 
+/*!
+  Saves polyline to file HPGL
+  \param hFile - file instance
+  \param aViewerCS - viewer co-ordinates system
+  \param aHPGLCS - paper co-ordinates system
+*/
 bool GLViewer_Polyline::translateToHPGL( QFile& hFile, GLViewer_CoordSystem* aViewerCS, GLViewer_CoordSystem* aHPGLCS )
 {
     QString aBuffer = "";
@@ -783,6 +903,12 @@ bool GLViewer_Polyline::translateToHPGL( QFile& hFile, GLViewer_CoordSystem* aVi
 }
 
 #ifdef WIN32
+/*!
+  Saves polyline to EMF image
+  \param dc - EMF image descriptor
+  \param aViewerCS - viewer co-ordinates system
+  \param aEMFCS - paper co-ordinates system
+*/
 bool GLViewer_Polyline::translateToEMF( HDC dc, GLViewer_CoordSystem* aViewerCS, GLViewer_CoordSystem* aEMFCS )
 {
     if( !aViewerCS || !aEMFCS )
@@ -819,6 +945,9 @@ bool GLViewer_Polyline::translateToEMF( HDC dc, GLViewer_CoordSystem* aViewerCS,
 }
 #endif
 
+/*! 
+  Computes all necessary information about object for presentation in drawer
+*/
 void GLViewer_Polyline::compute()
 {
 //  cout << "GLViewer_MarkerSet::compute" << endl;
@@ -844,6 +973,10 @@ void GLViewer_Polyline::compute()
   myRect->setBottom( ya - yGap );
 }
 
+/*!
+  \return update object rectangle
+  Does not equal getRect() if object have a persistence to some viewer transformations
+*/
 GLViewer_Rect* GLViewer_Polyline::getUpdateRect()
 {
     GLViewer_Rect* rect = new GLViewer_Rect();
@@ -856,12 +989,23 @@ GLViewer_Rect* GLViewer_Polyline::getUpdateRect()
     return rect;
 }
 
+/*!
+  Creates corresponding drawer
+*/
 GLViewer_Drawer* GLViewer_Polyline::createDrawer()
 {
 //  cout << "GLViewer_MarkerSet::createDrawer" << endl;
     return myDrawer = new GLViewer_PolylineDrawer();
 }
 
+/*!
+  Computes highlight presentation
+  \param x        - x coord
+  \param y        - y coord
+  \param tol      - tolerance of detecting
+  \param isCircle - true if sensitive area of detection is round
+  \return true if highlight status is changed
+*/
 GLboolean GLViewer_Polyline::highlight( GLfloat x, GLfloat y, GLfloat tol, GLboolean isCircle )
 {
     if( !myIsVisible )
@@ -916,6 +1060,9 @@ GLboolean GLViewer_Polyline::highlight( GLfloat x, GLfloat y, GLfloat tol, GLboo
     return update;
 }
 
+/*!
+  Unhilights object
+*/
 GLboolean GLViewer_Polyline::unhighlight()
 {
 //   if( !myHNumbers.isEmpty() )
@@ -934,6 +1081,15 @@ GLboolean GLViewer_Polyline::unhighlight()
   return GL_FALSE;
 }
 
+/*!
+  Selects polyline
+  /param x, y - co-ordinates of mouse
+  /param tol - tolerance
+  /param rect - rectangle (in case of rectangular selection)
+  /param isFull - if it is true, then object may selected only if it lays whole in selection zone
+  \param isCircle - true if sensitive area of detection is round
+  \param isShift  - true if selection exec with append option
+*/
 GLboolean GLViewer_Polyline::select( GLfloat x, GLfloat y, GLfloat tol, GLViewer_Rect rect, GLboolean isFull,
                                      GLboolean isCircle, GLboolean isShift )
 {
@@ -994,6 +1150,9 @@ GLboolean GLViewer_Polyline::select( GLfloat x, GLfloat y, GLfloat tol, GLViewer
     return myIsSel;
 }
 
+/*!
+  Unselects polyline
+*/
 GLboolean GLViewer_Polyline::unselect()
 {
 //   if( !mySelNumbers.isEmpty() )
@@ -1013,6 +1172,11 @@ GLboolean GLViewer_Polyline::unselect()
   return GL_FALSE;
 }
 
+/*!
+  Sets array of abscisses for points of polyline
+  \param xCoord - array of of abscisses
+  \param size - size of array
+*/
 void GLViewer_Polyline::setXCoord( GLfloat* xCoord, int size )
 {
   myXCoord = new GLfloat[ size ];
@@ -1020,6 +1184,11 @@ void GLViewer_Polyline::setXCoord( GLfloat* xCoord, int size )
      myXCoord[i] = xCoord[i];
 }
 
+/*!
+  Sets array of ordinates for points of polyline
+  \param xCoord - array of of ordinates
+  \param size - size of array
+*/
 void GLViewer_Polyline::setYCoord( GLfloat* yCoord, int size )
 {
   myYCoord = new GLfloat[ size ];
@@ -1027,6 +1196,10 @@ void GLViewer_Polyline::setYCoord( GLfloat* yCoord, int size )
      myYCoord[i] = yCoord[i];
 }
 
+/*!
+  Sets number of points
+  \param number - new number of points
+*/
 void GLViewer_Polyline::setNumber( GLint number )
 {
   if ( myNumber == number )
@@ -1042,19 +1215,9 @@ void GLViewer_Polyline::setNumber( GLint number )
   myXCoord = new GLfloat[ myNumber ];
   myYCoord = new GLfloat[ myNumber ];
 }
-/*
-void GLViewer_Polyline::onSelectionDone( bool append)
-{
-  mySelectedIndexes.Clear();
-  QValueList<int>::Iterator it;
-  //for( it = myMarkers->mySelNumbers.begin(); it != myMarkers->mySelNumbers.end(); ++it )
-  //  mySelectedIndexes.Append( *it / 2 ); //!!!
-}
 
-void GLViewer_Polyline::onSelectionCancel()
-{
-  mySelectedIndexes.Clear();
-}
+/*!
+  Export numbers of highlighted/selected lines
 */
 void GLViewer_Polyline::exportNumbers( QValueList<int>& highlight,
                      QValueList<int>& unhighlight,
@@ -1067,6 +1230,12 @@ void GLViewer_Polyline::exportNumbers( QValueList<int>& highlight,
   unselect = myUSelNumbers;
 }
 
+/*!
+  Moves object by recomputing
+  \param dx        - moving along X coord
+  \param dy        - moving along Y coord
+  \param fromGroup - is true if this method called from group
+*/
 void GLViewer_Polyline::moveObject( float theX, float theY, bool fromGroup )
 {
   if( !fromGroup && myGroup)
@@ -1082,6 +1251,10 @@ void GLViewer_Polyline::moveObject( float theX, float theY, bool fromGroup )
   compute();    
 }
 
+/*!
+  Codes polyline as byte copy
+  \return byte array
+*/
 QByteArray GLViewer_Polyline::getByteCopy()
 {
     int i = 0;
@@ -1118,6 +1291,10 @@ QByteArray GLViewer_Polyline::getByteCopy()
 }
 
 
+/*!
+  Initialize polyline by byte array
+  \param theArray - byte array
+*/
 bool GLViewer_Polyline::initializeFromByteCopy( QByteArray theArray )
 {
     int i = 0;
@@ -1167,13 +1344,16 @@ bool GLViewer_Polyline::initializeFromByteCopy( QByteArray theArray )
     return true;        
 }
 
-/***************************************************************************
-**  Class:   GLViewer_TextObject
-**  Descr:   Text as Object for OpenGL
-**  Module:  GLViewer
-**  Created: UI team, 12.02.04
-****************************************************************************/
 
+
+/*!
+  Constructor
+  \param theStr - text string
+  \param xPos - x position
+  \param yPos - y position
+  \param color - color of text
+  \param toolTip - tooltip of text object
+*/
 GLViewer_TextObject::GLViewer_TextObject( const QString& theStr, float xPos, float yPos, 
                                     const QColor& color, const QString& toolTip )
                                     : GLViewer_Object()
@@ -1186,12 +1366,22 @@ GLViewer_TextObject::GLViewer_TextObject( const QString& theStr, float xPos, flo
 
     myToolTipText = toolTip;
 }
+
+/*!
+  Destructor
+*/
 GLViewer_TextObject::~GLViewer_TextObject()
 {
   if ( myGLText )
     delete myGLText;
 }
 
+/*!
+  Saves text object to file PostScript
+  \param hFile - file instance
+  \param aViewerCS - viewer co-ordinates system
+  \param aPSCS - paper co-ordinates system
+*/
 bool GLViewer_TextObject::translateToPS( QFile& hFile, GLViewer_CoordSystem* aViewerCS, GLViewer_CoordSystem* aPSCS )
 {
     QString aText = myGLText->getText();    
@@ -1209,6 +1399,12 @@ bool GLViewer_TextObject::translateToPS( QFile& hFile, GLViewer_CoordSystem* aVi
     return true;
 }
 
+/*!
+  Saves text object to file HPGL
+  \param hFile - file instance
+  \param aViewerCS - viewer co-ordinates system
+  \param aHPGLCS - paper co-ordinates system
+*/
 bool GLViewer_TextObject::translateToHPGL( QFile& hFile, GLViewer_CoordSystem* aViewerCS, GLViewer_CoordSystem* aHPGLCS )
 {
     QString aText = myGLText->getText();    
@@ -1226,6 +1422,12 @@ bool GLViewer_TextObject::translateToHPGL( QFile& hFile, GLViewer_CoordSystem* a
 }
 
 #ifdef WIN32
+/*!
+  Saves text object to EMF image
+  \param dc - EMF image descriptor
+  \param aViewerCS - viewer co-ordinates system
+  \param aEMFCS - paper co-ordinates system
+*/
 bool GLViewer_TextObject::translateToEMF( HDC dc, GLViewer_CoordSystem* aViewerCS, GLViewer_CoordSystem* aEMFCS )
 {
     QString aText = myGLText->getText();    
@@ -1276,6 +1478,9 @@ bool GLViewer_TextObject::translateToEMF( HDC dc, GLViewer_CoordSystem* aViewerC
 }
 #endif
 
+/*!
+  Creates corresponding drawer
+*/
 GLViewer_Drawer* GLViewer_TextObject::createDrawer()
 {
     myDrawer = new GLViewer_TextDrawer();
@@ -1283,6 +1488,9 @@ GLViewer_Drawer* GLViewer_TextObject::createDrawer()
     return myDrawer;
 }
 
+/*! 
+  Computes all necessary information about object for presentation in drawer
+*/
 void GLViewer_TextObject::compute()
 {
     float xPos, yPos;
@@ -1297,12 +1505,20 @@ void GLViewer_TextObject::compute()
     myRect->setBottom( yPos );
 }
 
+/*!
+  Installing already exist drawer with same type
+  \param theDrawer - new drawer
+*/
 void GLViewer_TextObject::setDrawer( GLViewer_Drawer* theDrawer )
 {
     myDrawer = theDrawer;
     //compute();
 }
 
+/*!
+  \return update object rectangle
+  Does not equal getRect() if object have a persistence to some viewer transformations
+*/
 GLViewer_Rect* GLViewer_TextObject::getUpdateRect()
 {    
     GLViewer_Rect* rect = new GLViewer_Rect();
@@ -1319,6 +1535,14 @@ GLViewer_Rect* GLViewer_TextObject::getUpdateRect()
     return rect;
 }
 
+/*!
+  Computes highlight presentation
+  \param x        - x coord
+  \param y        - y coord
+  \param tol      - tolerance of detecting
+  \param isCircle - true if sensitive area of detection is round
+  \return true if highlight status is changed
+*/
 GLboolean GLViewer_TextObject::highlight( GLfloat theX, GLfloat theY, GLfloat theTol, GLboolean isCircle )
 {
     if( !myIsVisible )
@@ -1366,6 +1590,9 @@ GLboolean GLViewer_TextObject::highlight( GLfloat theX, GLfloat theY, GLfloat th
     return myIsHigh;
 }
 
+/*!
+  Unhilights object
+*/
 GLboolean GLViewer_TextObject::unhighlight()
 {
     if( myIsHigh )
@@ -1377,6 +1604,15 @@ GLboolean GLViewer_TextObject::unhighlight()
     return GL_FALSE;
 }
 
+/*!
+  Selects text object
+  /param x, y - co-ordinates of mouse
+  /param tol - tolerance
+  /param rect - rectangle (in case of rectangular selection)
+  /param isFull - if it is true, then object may selected only if it lays whole in selection zone
+  \param isCircle - true if sensitive area of detection is round
+  \param isShift  - true if selection exec with append option
+*/
 GLboolean GLViewer_TextObject::select( GLfloat theX, GLfloat theY, GLfloat theTol, GLViewer_Rect rect,
                                        GLboolean isFull, GLboolean isCircle, GLboolean isShift )
 { 
@@ -1415,6 +1651,9 @@ GLboolean GLViewer_TextObject::select( GLfloat theX, GLfloat theY, GLfloat theTo
     return myIsSel;
 }
 
+/*!
+  Unselects text object
+*/
 GLboolean GLViewer_TextObject::unselect()
 {
     if( myIsSel )
@@ -1426,6 +1665,12 @@ GLboolean GLViewer_TextObject::unselect()
     return GL_FALSE;
 }
 
+/*!
+  Moves object by recomputing
+  \param dx        - moving along X coord
+  \param dy        - moving along Y coord
+  \param fromGroup - is true if this method called from group
+*/
 void GLViewer_TextObject::moveObject( float theX, float theY, bool fromGroup )
 {
   if( !fromGroup && myGroup)
@@ -1441,6 +1686,10 @@ void GLViewer_TextObject::moveObject( float theX, float theY, bool fromGroup )
   compute();
 }
 
+/*!
+  Codes text object as byte copy
+  \return byte array
+*/
 QByteArray GLViewer_TextObject::getByteCopy()
 {
     QByteArray aObject = GLViewer_Object::getByteCopy();
@@ -1448,6 +1697,10 @@ QByteArray GLViewer_TextObject::getByteCopy()
     return aObject;
 }
 
+/*!
+  Initialize text object by byte array
+  \param theArray - byte array
+*/
 bool GLViewer_TextObject::initializeFromByteCopy( QByteArray theArray )
 {
     if( !GLViewer_Object::initializeFromByteCopy( theArray ) || myType != "GLViewer_TextObject" )
index 6e464ef0451bbf976db82de177083e510b55c3f5..c5dea1285da1f50059a0a865530847fd4a179734 100644 (file)
 #endif
 
 /*! 
- * Class GLViewer_MarkerSet
- * OpenGL MarkerSet
- */
-
+ \class GLViewer_MarkerSet
+ OpenGL MarkerSet
+*/
 class GLVIEWER_API GLViewer_MarkerSet : public GLViewer_Object
 {
 public:
@@ -120,10 +119,9 @@ protected:
 };
 
 /*! 
- * Class  GLViewer_Polyline
- * OpenGL Polyline
- */
-
+ \class  GLViewer_Polyline
+ OpenGL Polyline
+*/
 class GLVIEWER_API GLViewer_Polyline: public GLViewer_Object
 {
 public:
@@ -178,7 +176,7 @@ public:
   //! Checks highlight as whole object status
   GLboolean               isHighSelAll() const { return myHighSelAll; }
   
-  //! Export numbers of heghlighted/selected lines
+  //! Export numbers of highlighted/selected lines
   void                     exportNumbers( QValueList<int>& high, QValueList<int>& unhigh,
                                           QValueList<int>& sel, QValueList<int>& unsel );
 
@@ -203,9 +201,10 @@ protected:
   GLboolean               myHighFlag;
 };
 
-// Class:   GLViewer_TextObject
-// Descr:   Text as Object for OpenGL
-
+/*!
+  \class GLViewer_TextObject
+  Text as Object for OpenGL
+*/
 class GLVIEWER_API GLViewer_TextObject : public GLViewer_Object
 {
 public:  
index 919641e7c277e0255c94638cf517357836e4cb08..99c3f463ad8428493d6b023f4cca53a23a79b3c7 100644 (file)
 // File:      GLViewer_Compass.cxx
 // Created:   November, 2004
 
-//================================================================
-// Class       : GLViewer_Compass
-// Description : Class implement representatiof of compass in one of corner in GLViewer
-//================================================================
-
 #include "GLViewer_Compass.h"
 #include "GLViewer_Drawer.h"
 
-//=======================================================================
-// Function: GLViewer_Compass
-// Purpose :
-//=======================================================================
+/*!
+  Constructor
+  \param color        - a color of compass
+  \param size         - a diameter of compass
+  \param pos          - a position
+  \param WidthTop     - width of wide part of arrow
+  \param WidthBottom  - width of base part of arrow
+  \param HeightTop    - height of arrow header
+  \param HeightBottom - height of arrow cut on bottom
+*/
 GLViewer_Compass::GLViewer_Compass ( const QColor& color, const int size, const Position pos,
                                const int WidthTop, const int WidthBottom, const int HeightTop,
                                const int HeightBottom )
@@ -52,19 +53,20 @@ GLViewer_Compass::GLViewer_Compass ( const QColor& color, const int size, const
     //myFont->generateTexture();
 }
 
-//=======================================================================
-// Function: ~GLViewer_Compass
-// Purpose :
-//=======================================================================
+/*!
+  Destructor
+*/
 GLViewer_Compass::~GLViewer_Compass()
 {
     delete myFont;
 }
 
-//=======================================================================
-// Function: setCompass
-// Purpose :
-//=======================================================================
+/*!
+  Sets parameters of compass
+  \param color        - a color of compass
+  \param size         - a diameter of compass
+  \param pos          - a position
+*/
 void GLViewer_Compass::setCompass( const QColor& color, const int size, const Position pos )
 {
   myCol = color;
@@ -72,29 +74,29 @@ void GLViewer_Compass::setCompass( const QColor& color, const int size, const Po
   myPos = pos;
 }
 
-//=======================================================================
-// Function: setVisible
-// Purpose :
-//=======================================================================
+/*!
+  Sets visibility of compass 
+  \param vis - new visibility state
+*/
 void GLViewer_Compass::setVisible( const bool vis )
 {
   myIsVisible = vis;
 }
 
-//=======================================================================
-// Function: setSize
-// Purpose :
-//=======================================================================
+/*!
+  Sets size of compass
+  \param size - new size
+*/
 void GLViewer_Compass::setSize( const int size )
 {
   if( size > 0 )
     mySize=size;
 }
 
-//=======================================================================
-// Function: setArrowWidthTop
-// Purpose :
-//=======================================================================
+/*!
+  Sets arrow width top
+  \param WidthTop - new arrow width top
+*/
 void GLViewer_Compass::setArrowWidthTop( const int WidthTop )
 {
   if( WidthTop < myArrowWidthBottom || WidthTop > mySize )
@@ -102,10 +104,10 @@ void GLViewer_Compass::setArrowWidthTop( const int WidthTop )
   myArrowWidthTop=WidthTop;
 }
 
-//=======================================================================
-// Function: setArrowWidthBottom
-// Purpose :
-//=======================================================================
+/*!
+  Sets arrow width bottom
+  \param WidthBot - new arrow width bottom
+*/
 void GLViewer_Compass::setArrowWidthBottom( const int WidthBot )
 { 
   if( WidthBot > myArrowWidthTop || WidthBot < 1 )
@@ -113,10 +115,10 @@ void GLViewer_Compass::setArrowWidthBottom( const int WidthBot )
   myArrowWidthBottom=WidthBot;
 }
 
-//=======================================================================
-// Function: setArrowHeightTop
-// Purpose :
-//=======================================================================
+/*!
+  Sets arrow height top
+  \param HeightTop - new arrow height top
+*/
 void GLViewer_Compass::setArrowHeightTop( const int HeightTop )
 {
   if( HeightTop > (2*mySize-myArrowHeightBottom ) || HeightTop < 1 )
@@ -124,10 +126,10 @@ void GLViewer_Compass::setArrowHeightTop( const int HeightTop )
   myArrowHeightTop=HeightTop;
 }
 
-//=======================================================================
-// Function: setArrowHeightBottom
-// Purpose :
-//=======================================================================
+/*!
+  Sets arrow height bottom
+  \param HeightBot - new arrow height bottom
+*/
 void GLViewer_Compass::setArrowHeightBottom( const int HeightBot )
 {
   if( HeightBot > ( 2*mySize-myArrowHeightTop ) || HeightBot < 1)
@@ -135,10 +137,9 @@ void GLViewer_Compass::setArrowHeightBottom( const int HeightBot )
   myArrowHeightBottom=HeightBot;
 }
 
-//=======================================================================
-// Function: getFont
-// Purpose :
-//=======================================================================
+/*!
+  \return font of compass
+*/
 GLViewer_TexFont* GLViewer_Compass::getFont()
 { 
     if(!isGenereted) 
@@ -149,10 +150,10 @@ GLViewer_TexFont* GLViewer_Compass::getFont()
     return myFont;
 }
 
-//=======================================================================
-// Function: setFont
-// Purpose :
-//=======================================================================
+/*!
+  Sets font of compass
+  \param theFont - new font
+*/
 void GLViewer_Compass::setFont( QFont theFont )
 {
     delete myFont;
index abdec0e01fe1682050fe4f9ebad372e0c59bb33e..bb3b98913ebeacd5e11f6decb48d65ffc6ac1467 100644 (file)
 #pragma warning( disable:4251 )
 #endif
 
+class GLViewer_TexFont;
+
 /*! Class GLViewer_Compass
  * Class implement representatiof of compass in one of corner in GLViewer.
  * Compass it's a some round visual pointer rotated with view window and 
  * located in fixed place (in one fixed corner)
  */
-
-class GLViewer_TexFont;
-
 class GLVIEWER_API GLViewer_Compass
 {
 public:
index 7fc5fcf2068da08c15e09856fbd24afdb8e9481c..9b3842a488743cf1876d3a4125c8c0c91a2398ae 100644 (file)
 // File:      GLViewer_Context.cxx
 // Created:   November, 2004
 
-//================================================================
-// Class       : GLViewer_AspectLine
-// Description : Class for manage of presentations in GLViewer
-//================================================================
+/*!
+  \class GLViewer_AspectLine
+  \brief Class for manage of presentations in GLViewer
+*/
 
 #include "GLViewer_Context.h"
 
 
 #define TOLERANCE  12
 
-//=======================================================================
-// Function: GLViewer_Context
-// Purpose :
-//=======================================================================
+/*!
+  Constructor
+*/
 GLViewer_Context::GLViewer_Context( GLViewer_Viewer2d* v ) :
        myGLViewer2d( v ),
        myHighlightColor( Quantity_NOC_CYAN1 ),
@@ -59,10 +58,9 @@ GLViewer_Context::GLViewer_Context( GLViewer_Viewer2d* v ) :
   mySelCurIndex = 0;
 }
 
-//=======================================================================
-// Function: ~GLViewer_Context
-// Purpose :
-//=======================================================================
+/*!
+  Destructor
+*/
 GLViewer_Context::~GLViewer_Context()
 {
     myActiveObjects.clear();
@@ -70,10 +68,13 @@ GLViewer_Context::~GLViewer_Context()
     mySelectedObjects.clear();
 }
 
-//=======================================================================
-// Function: MoveTo
-// Purpose :
-//=======================================================================
+/*!
+  Hiilights objects under cursor
+  \param x - X coord of mouse cursor
+  \param y - Y coord of mouse cursor
+  \param byCircle - true if needs round sensitive area around mouse cursor, else rectangle
+  function search object rectangle which intersect with sensitive area and call object highlight method
+*/
 int GLViewer_Context::MoveTo( int xi, int yi, bool byCircle )
 {
     GLfloat x = (GLfloat)xi;
@@ -180,10 +181,10 @@ int GLViewer_Context::MoveTo( int xi, int yi, bool byCircle )
     return 0;
 }
 
-//=======================================================================
-// Function: Select
-// Purpose :
-//=======================================================================
+/*! Selects already highlighting object by calling object method select
+  \param Append - true if new selection will be append to existing selection, false - another
+  \param byCircle - true if needs round selection area in complex object
+*/
 int GLViewer_Context::Select( bool Append, bool byCircle )
 {
     ObjList::Iterator it, itEnd, oit, oitEnd;
@@ -322,10 +323,11 @@ int GLViewer_Context::Select( bool Append, bool byCircle )
     return SS_NoChanged;
 }
 
-//=======================================================================
-// Function: SelectByRect
-// Purpose :
-//=======================================================================
+/*! Selects objects on scene by rectangle
+  \param theRect - rectangle of selection
+  \param Append - true if new selection will be append to existing selection, false - another
+  function search object rectangle which intersect with theRect and call object select method
+*/
 int GLViewer_Context::SelectByRect( const QRect& theRect, bool Append )
 {
     GLfloat aXScale;
@@ -384,10 +386,10 @@ int GLViewer_Context::SelectByRect( const QRect& theRect, bool Append )
     return status;
 }
 
-//=======================================================================
-// Function: SetHighlightColor
-// Purpose :
-//=======================================================================
+/*!
+  Sets color of hilighting
+  \param aCol - new color of highlighting
+*/
 void GLViewer_Context::SetHighlightColor( Quantity_NameOfColor aCol )
 {
   myHighlightColor = aCol;
@@ -407,10 +409,10 @@ void GLViewer_Context::SetHighlightColor( Quantity_NameOfColor aCol )
   myGLViewer2d->updateColors( colH, colS);
 }
 
-//=======================================================================
-// Function: SetSelectionColor
-// Purpose :
-//=======================================================================
+/*!
+  Sets color of selection
+  \param aCol - new color of selection
+*/
 void GLViewer_Context::SetSelectionColor( Quantity_NameOfColor aCol )
 {
   mySelectionColor = aCol;
@@ -430,37 +432,33 @@ void GLViewer_Context::SetSelectionColor( Quantity_NameOfColor aCol )
   myGLViewer2d->updateColors( colH, colS);
 }
 
-//=======================================================================
-// Function: NbSelected
-// Purpose :
-//=======================================================================
+/*!
+  \return number of selected objects
+*/
 int GLViewer_Context::NbSelected()
 {
   return mySelectedObjects.count();
 }
 
-//=======================================================================
-// Function: InitSelected
-// Purpose :
-//=======================================================================
+/*!
+  Inits iteration through selected objects
+*/
 void GLViewer_Context::InitSelected()
 {
   mySelCurIndex = 0;
 }
 
-//=======================================================================
-// Function: MoreSelected
-// Purpose :
-//=======================================================================
+/*!
+  Checks if iteration through selected objects may be continued
+*/
 bool GLViewer_Context::MoreSelected()
 {
   return ( mySelCurIndex < NbSelected() );
 }
 
-//=======================================================================
-// Function: NextSelected
-// Purpose :
-//=======================================================================
+/*!
+  Iterates to next selected object
+*/
 bool GLViewer_Context::NextSelected()
 {
   if ( mySelCurIndex >= 0 && mySelCurIndex < NbSelected() )
@@ -472,28 +470,28 @@ bool GLViewer_Context::NextSelected()
   return FALSE;
 }
 
-//=======================================================================
-// Function: SelectedObject
-// Purpose :
-//=======================================================================
+/*!
+  \return current selected object (must be used only in cycle as "for( InitSelected(); MoreSelected(); NextSelected() ) {...}" )
+*/
 GLViewer_Object* GLViewer_Context::SelectedObject()
 {
     return mySelectedObjects[ mySelCurIndex ];
 }
 
-//=======================================================================
-// Function: isSelected
-// Purpose :
-//=======================================================================
+/*!
+  \return true if object is selected
+  \param theObj - object to be checked
+*/
 bool  GLViewer_Context::isSelected( GLViewer_Object* theObj )
 {
     return mySelectedObjects.contains( theObj );
 }
 
-//=======================================================================
-// Function: insertObject
-// Purpose :
-//=======================================================================
+/*! Inserts new object in context
+  \param theObject - object to be inserted
+  \param display - true if needs display object immediatly after inserting, else false
+  \param isActive - true if needs inserting object in active list
+*/
 int GLViewer_Context::insertObject( GLViewer_Object* object, bool display, bool isActive )
 {
 //  cout << "GLViewer_Context::insertObject" << endl;
@@ -517,10 +515,11 @@ int GLViewer_Context::insertObject( GLViewer_Object* object, bool display, bool
     return myActiveObjects.count() + myInactiveObjects.count();
 }
 
-//=======================================================================
-// Function: replaceObject
-// Purpose :
-//=======================================================================
+/*!
+  Replaces object in context
+  \param oldObject - object to be replaced
+  \param newObject - object for replacing
+*/
 bool GLViewer_Context::replaceObject( GLViewer_Object* oldObject, GLViewer_Object* newObject )
 {
     if( !oldObject || !newObject )
@@ -543,10 +542,9 @@ bool GLViewer_Context::replaceObject( GLViewer_Object* oldObject, GLViewer_Objec
   return false;
 }
 
-//=======================================================================
-// Function: updateScales
-// Purpose :
-//=======================================================================
+/*!
+  Updates scales of all objects in context
+*/
 void GLViewer_Context::updateScales( GLfloat scX, GLfloat scY )
 {
   if( scX <= 0 || scY <= 0 )
@@ -561,10 +559,10 @@ void GLViewer_Context::updateScales( GLfloat scX, GLfloat scY )
       (*it)->setScale( scX, scY );
 }
 
-//=======================================================================
-// Function: clearHighlighted
-// Purpose :
-//=======================================================================
+/*!
+  Clears hilighting of objects
+  \param updateViewer - if it is true, viewer must be updated
+*/
 void GLViewer_Context::clearHighlighted( bool updateViewer )
 {
   if( myHFlag && myLastPicked )
@@ -577,10 +575,10 @@ void GLViewer_Context::clearHighlighted( bool updateViewer )
   }
 }
 
-//=======================================================================
-// Function: clearSelected
-// Purpose :
-//=======================================================================
+/*!
+  Clears selection of objects
+  \param updateViewer - if it is true, viewer must be updated
+*/
 void GLViewer_Context::clearSelected( bool updateViewer )
 {
   if( !mySFlag )
@@ -600,10 +598,10 @@ void GLViewer_Context::clearSelected( bool updateViewer )
   mySelectedObjects.clear();    
 }
 
-//=======================================================================
-// Function: setSelected
-// Purpose :
-//=======================================================================
+/*!
+  Selects object, other selected objects are left as selected
+  \param updateViewer - if it is true, viewer must be updated
+*/
 void GLViewer_Context::setSelected( GLViewer_Object* object, bool updateViewer )
 {
   if( !object )
@@ -619,10 +617,10 @@ void GLViewer_Context::setSelected( GLViewer_Object* object, bool updateViewer )
     myGLViewer2d->activateDrawer( object, TRUE, TRUE );
 }
 
-//=======================================================================
-// Function: remSelected
-// Purpose :
-//=======================================================================
+/*!
+  Unselects object, other selected objects are left as selected
+  \param updateViewer - if it is true, viewer must be updated
+*/
 void GLViewer_Context::remSelected( GLViewer_Object* object, bool updateViewer )
 {
   if( !object || !mySelectedObjects.contains( object ) )
@@ -635,10 +633,10 @@ void GLViewer_Context::remSelected( GLViewer_Object* object, bool updateViewer )
     myGLViewer2d->activateDrawer( object, TRUE, TRUE );
 }
 
-//=======================================================================
-// Function: eraseObject
-// Purpose :
-//=======================================================================
+/*!
+  Erases object in viewer
+  \param theUpdateViewer - if it is true, viewer must be updated
+*/
 void GLViewer_Context::eraseObject( GLViewer_Object* theObject, bool theUpdateViewer )
 {
     if( !theObject || !myActiveObjects.contains( theObject ) )
@@ -652,10 +650,10 @@ void GLViewer_Context::eraseObject( GLViewer_Object* theObject, bool theUpdateVi
         myGLViewer2d->updateAll();
 }
 
-//=======================================================================
-// Function: deleteObject
-// Purpose :
-//=======================================================================
+/*!
+  Deletes object in
+  \param updateViewer - if it is true, viewer must be updated
+*/
 void GLViewer_Context::deleteObject( GLViewer_Object* theObject, bool updateViewer )
 {
     if( !theObject ||
@@ -683,10 +681,10 @@ void GLViewer_Context::deleteObject( GLViewer_Object* theObject, bool updateView
       myGLViewer2d->updateAll();
 }
 
-//=======================================================================
-// Function: setActive
-// Purpose :
-//=======================================================================
+/*!
+  Installs active status to object
+  \param theObject
+*/
 bool GLViewer_Context::setActive( GLViewer_Object* theObject )
 {
   if( !theObject || !myInactiveObjects.contains( theObject ) )
@@ -697,10 +695,10 @@ bool GLViewer_Context::setActive( GLViewer_Object* theObject )
   return true;
 }
 
-//=======================================================================
-// Function: setInactive
-// Purpose :
-//=======================================================================
+/*!
+  Installs inactive status to object
+  \param theObject
+*/
 bool GLViewer_Context::setInactive( GLViewer_Object* theObject )
 {
   if( !theObject || !myActiveObjects.contains( theObject ) )
index f8c76eb504552915db48553910d05e29ddfef817..d339782f696934cf5c92c5da795af5322fefe6cb 100644 (file)
 // Created:   November, 2004
 
 
-/*! Class GLViewer_Context
- *  Class for manage of presentations in GLViewer
- */
-
 #ifndef GLVIEWER_CONTEXT_H
 #define GLVIEWER_CONTEXT_H
 
@@ -52,6 +48,9 @@ class GLViewer_Viewer2d;
 #pragma warning( disable:4251 )
 #endif
 
+/*! \class GLViewer_Context
+ *  Class for manage of presentations in GLViewer
+ */
 class GLVIEWER_API GLViewer_Context
 {
 public:
@@ -73,14 +72,12 @@ public:
   *function search object rectangle which intersect with sensitive area and call object highlight method
   */
   int                   MoveTo( int x, int y, bool byCircle = FALSE );
-  //! A function selecting already highlighting object by calling object method select
-  /*!
+  /*! A function selecting already highlighting object by calling object method select
   *\param Append - true if new selection will be append to existing selection, false - another
   *\param byCircle - true if needs round selection area in complex object
   */
   int                   Select( bool Append = FALSE, bool byCircle = FALSE );
-  //! A function selecting objects on scene by rectangle
-  /*!
+  /*! A function selecting objects on scene by rectangle
   *\param theRect - rectangle of selection
   *\param Append - true if new selection will be append to existing selection, false - another
   *function search object rectangle which intersect with theRect and call object select method
@@ -119,7 +116,7 @@ public:
   int                   insertObject( GLViewer_Object* theObject, bool display = false, bool isActive = true );
   //! Replacing objects in context
   /*!
-  * Function search activ and incative objects
+  * Function search active and incative objects
   */
   bool                  replaceObject( GLViewer_Object* oldObject, GLViewer_Object* newObject );
   //! A function updating scales of all objects in context
@@ -129,7 +126,7 @@ public:
 
   //! Returns list of context objects
   /*!
-  * Returns active objects if isActive = true, else inactive objects
+  * \return active objects if isActive = true, else inactive objects
   */
   const ObjList&        getObjects( bool isActive = true )
                         { return isActive ? myActiveObjects : myInactiveObjects; }
index 947ac6036e5a4aefd5539a74a3cbe4b5acd715c4..405c22b9605d100c04127cec1b2b454e2e0b6e0c 100644 (file)
 // File:      GLViewer_Context.cxx
 // Created:   November, 2004
 
-//================================================================
-// Class       : GLViewer_CoordSystem
-// Description : Class implementing mathematical model of 2D coordinate system 
-//================================================================
 #include "GLViewer_CoordSystem.h"
 #include <math.h>
 
-//=======================================================================
-// Function: GLViewer_CoordSystem
-// Purpose :
-//=======================================================================
+/*!
+  Constructor
+  \param aType - type of CS
+  \param X0 - X of origin in reference CS
+  \param Y0 - Y of origin in reference CS
+  \param XUnit - X unit in reference CS
+  \param YUnit - Y unit in reference CS
+  \param Rotation - rotation relative reference CS
+*/
 GLViewer_CoordSystem::GLViewer_CoordSystem( CSType aType, double X0, double Y0, 
                                             double XUnit, double YUnit, double Rotation )
 {
@@ -42,40 +43,36 @@ GLViewer_CoordSystem::GLViewer_CoordSystem( CSType aType, double X0, double Y0,
     setRotation( Rotation );
 }
 
-//=======================================================================
-// Function: getOrigin
-// Purpose :
-//=======================================================================
+/*!
+  \return origin in reference CS
+*/
 void GLViewer_CoordSystem::getOrigin( double& x, double& y ) const
 {
     x = myX0;
     y = myY0;
 }
 
-//=======================================================================
-// Function: setOrigin
-// Purpose :
-//=======================================================================
+/*!
+  Sets origin in reference CS
+*/
 void GLViewer_CoordSystem::setOrigin( double x, double y )
 {
     myX0 = x;
     myY0 = y;
 }
 
-//=======================================================================
-// Function: getUnits
-// Purpose :
-//=======================================================================
+/*!
+  \return units
+*/
 void GLViewer_CoordSystem::getUnits( double& x, double& y ) const
 {
     x = myXUnit;
     y = myYUnit;
 }
 
-//=======================================================================
-// Function: setUnits
-// Purpose :
-//=======================================================================
+/*!
+  Sets units
+*/
 void GLViewer_CoordSystem::setUnits( double x, double y )
 {
     if( x>0 )
@@ -88,46 +85,43 @@ void GLViewer_CoordSystem::setUnits( double x, double y )
     else
         myYUnit = 1.0;
 }
-//=======================================================================
-// Function: getRotation
-// Purpose :
-//=======================================================================
+
+/*!
+  \return rotation
+*/
 double GLViewer_CoordSystem::getRotation() const
 {
     return myRotation;
 }
 
-//=======================================================================
-// Function: setRotation
-// Purpose :
-//=======================================================================
+/*!
+  Sets rotation
+*/
 void GLViewer_CoordSystem::setRotation( double rotation )
 {
     myRotation = rotation;
 }
 
-//=======================================================================
-// Function: getType
-// Purpose :
-//=======================================================================
+/*!
+  \return type
+*/
 GLViewer_CoordSystem::CSType GLViewer_CoordSystem::getType() const
 {
     return myType;
 }
 
-//=======================================================================
-// Function: setType
-// Purpose :
-//=======================================================================
+/*!
+  Sets type
+*/
 void GLViewer_CoordSystem::setType( CSType type )
 {
     myType = type;
 }
 
-//=======================================================================
-// Function: toReference
-// Purpose :
-//=======================================================================
+/*!
+  Recalculate co-ordinates to reference co-ordinates
+  \param x, y - co-ordinates
+*/
 void GLViewer_CoordSystem::toReference( double& x, double& y )
 {
     if( myType==Cartesian )
@@ -145,10 +139,10 @@ void GLViewer_CoordSystem::toReference( double& x, double& y )
     }
 }
 
-//=======================================================================
-// Function: fromReference
-// Purpose :
-//=======================================================================
+/*!
+  Recalculate co-ordinates from reference co-ordinates
+  \param x, y - co-ordinates
+*/
 void GLViewer_CoordSystem::fromReference( double& x, double& y )
 {
     x = (x - myX0) / myXUnit;
@@ -185,20 +179,20 @@ void GLViewer_CoordSystem::fromReference( double& x, double& y )
     }
 }
 
-//=======================================================================
-// Function: transform
-// Purpose :
-//=======================================================================
+/*!
+  Recalculate co-ordinates to co-ordinates of other CS
+  \param aSystem - other CS
+  \param x, y - co-ordinates
+*/
 void GLViewer_CoordSystem::transform( GLViewer_CoordSystem& aSystem, double& x, double& y )
 {
     toReference( x, y );
     aSystem.fromReference( x, y );
 }
 
-//=======================================================================
-// Function: getStretching
-// Purpose :
-//=======================================================================
+/*!
+  \return stretching of CS along X and Y axis
+*/
 void GLViewer_CoordSystem::getStretching( GLViewer_CoordSystem& aSystem, double& theX, double& theY )
 {
     theX = myXUnit / aSystem.myXUnit;
index ca571daab8e1a08f3171082a6f5aa0b710b317d7..4ea7795b14283ce0b5ae5ea226355a35f8ce202b 100644 (file)
 #pragma warning( disable:4251 )
 #endif
 
+/*!
+  \class GLViewer_CoordSystem
+  \brief Class implementing mathematical model of 2D coordinate system 
+*/
 class GLVIEWER_API GLViewer_CoordSystem
 {
 public:
index 9a0f3ef6b02ed5faaaf168498f4ac26717b3a9ec..1b6912b8163865d00784c79ee03c66547e2f6e0c 100644 (file)
 
 GLfloat modelMatrix[16];
 
-//================================================================
-// Class       : GLViewer_TexFont
-// Description : 
-//================================================================
+
 //! code of first font symbol
 static int FirstSymbolNumber = 32;
 //! code of last font symbol
@@ -60,10 +57,9 @@ static int LastSymbolNumber = 127;
 QMap<GLViewer_TexFindId,GLViewer_TexIdStored> GLViewer_TexFont::TexFontBase;
 QMap<GLViewer_TexFindId,GLuint>               GLViewer_TexFont::BitmapFontCache; 
 
-//=======================================================================
-// Function: clearTextBases
-// Purpose :
-//=======================================================================
+/*!
+  Clears all generated fonts
+*/
 void GLViewer_TexFont::clearTextBases()
 {
   //cout << "Clear font map" << endl;
@@ -71,10 +67,9 @@ void GLViewer_TexFont::clearTextBases()
   BitmapFontCache.clear();
 }
 
-//======================================================================
-// Function: GLViewer_TexFont
-// Purpose :
-//=======================================================================
+/*!
+  Default constructor
+*/
 GLViewer_TexFont::GLViewer_TexFont()
 : myMaxRowWidth( 0 ), myFontHeight( 0 )
 {
@@ -86,10 +81,13 @@ GLViewer_TexFont::GLViewer_TexFont()
     init();
 }
 
-//======================================================================
-// Function: GLViewer_TexFont
-// Purpose :
-//=======================================================================
+/*!
+  Constructor
+  \param theFont         - a base font
+  \param theSeparator    - separator between letters
+  \param theIsResizeable - specifies whether text drawn by this object can be scaled along with the scene
+  \param theMinMagFilter - min/mag filter, affects text sharpness
+*/
 GLViewer_TexFont::GLViewer_TexFont( QFont* theFont, int theSeparator, bool theIsResizeable, GLuint theMinMagFilter )
 : myMaxRowWidth( 0 ), myFontHeight( 0 )
 {
@@ -101,20 +99,18 @@ GLViewer_TexFont::GLViewer_TexFont( QFont* theFont, int theSeparator, bool theIs
     init();
 }
 
-//======================================================================
-// Function: ~GLViewer_TexFont
-// Purpose :
-//=======================================================================
+/*!
+  Destructor
+*/
 GLViewer_TexFont::~GLViewer_TexFont()
 {
     delete[] myWidths;
     delete[] myPositions;
 } 
 
-//======================================================================
-// Function: init
-// Purpose :
-//=======================================================================
+/*!
+  Initializes font parameters
+*/
 void GLViewer_TexFont::init()
 {
     myNbSymbols = LastSymbolNumber - FirstSymbolNumber + 1;
@@ -148,10 +144,9 @@ void GLViewer_TexFont::init()
     myTexFontHeight = 0;
 }
   
-//======================================================================
-// Function: generateTexture
-// Purpose :
-//=======================================================================
+/*!
+  Generating font texture
+*/
 bool GLViewer_TexFont::generateTexture()
 {
     GLViewer_TexFindId aFindFont;
@@ -160,7 +155,7 @@ bool GLViewer_TexFont::generateTexture()
     aFindFont.myIsItal = myQFont.italic();
     aFindFont.myIsUndl = myQFont.underline();
     aFindFont.myPointSize = myQFont.pointSize();
-    aFindFont.myViewPortId = (int)QGLContext::currentContext();
+    aFindFont.myViewPortId = size_t(QGLContext::currentContext());
         
     if( TexFontBase.contains( aFindFont ) )
     {
@@ -265,10 +260,13 @@ bool GLViewer_TexFont::generateTexture()
     return true;
 }
 
-//======================================================================
-// Function: drawString
-// Purpose :
-//=======================================================================
+/*!
+  Drawing string in viewer
+  \param theStr - string to be drawn
+  \param theX - X position
+  \param theY - Y position
+  \param theScale - scale coefficient
+*/
 void GLViewer_TexFont::drawString( QString theStr, GLdouble theX , GLdouble theY, GLfloat theScale )
 {
     // Adding some pixels to have a gap between rows
@@ -334,10 +332,9 @@ void GLViewer_TexFont::drawString( QString theStr, GLdouble theX , GLdouble theY
     glPopAttrib();
 }
 
-//======================================================================
-// Function: getStringWidth
-// Purpose :
-//=======================================================================
+/*!
+  \return width of string in pixels
+*/
 int GLViewer_TexFont::getStringWidth( QString theStr )
 {
     int aWidth = 0;
@@ -351,17 +348,18 @@ int GLViewer_TexFont::getStringWidth( QString theStr )
     return aWidth;
 }
 
-//======================================================================
-// Function: getStringHeight
-// Purpose :
-//=======================================================================
+/*!
+  \return height of string in pixels
+*/
 int GLViewer_TexFont::getStringHeight()
 {
     QFontMetrics aFM( myQFont );
     return aFM.height();
 }
 
-//! function for generation list base for bitmap fonts
+/*!
+  Generates list base for bitmap fonts
+*/
 static GLuint displayListBase( QFont* theFont )
 {
   if ( !theFont )
@@ -421,7 +419,7 @@ static GLuint displayListBase( QFont* theFont )
     return aList;
   }
 
-  aFindFont.myViewPortId = (int)aCont;
+  aFindFont.myViewPortId = size_t(aCont);
 
   if ( GLViewer_TexFont::BitmapFontCache.contains( aFindFont ) )
     aList = GLViewer_TexFont::BitmapFontCache[aFindFont];
@@ -431,7 +429,7 @@ static GLuint displayListBase( QFont* theFont )
     QMap<GLViewer_TexFindId, GLuint>::iterator it = GLViewer_TexFont::BitmapFontCache.begin();
     for ( ; it != GLViewer_TexFont::BitmapFontCache.end(); ++it )
     {
-      if ( it.key().myViewPortId == (int)aCont && it.data() > listBase )
+      if ( it.key().myViewPortId == size_t(aCont) && it.data() > listBase )
         listBase = it.data();
     }
     listBase += 256;
@@ -473,16 +471,9 @@ static GLuint displayListBase( QFont* theFont )
   return aList;
 }
 
-/***************************************************************************
-**  Class:   GLViewer_Drawer
-**  Descr:   Drawer for GLViewer_Object
-**  Module:  GLViewer
-**  Created: UI team, 01.10.01
-****************************************************************************/
-//======================================================================
-// Function: GLViewer_Drawer
-// Purpose :
-//=======================================================================
+/*!
+  Default constructor
+*/
 GLViewer_Drawer::GLViewer_Drawer()
 : myFont( "Helvetica", 10, QFont::Bold )
 {
@@ -495,20 +486,18 @@ GLViewer_Drawer::GLViewer_Drawer()
   myTextScale = 0.125;
 }
 
-//======================================================================
-// Function: ~GLViewer_Drawer
-// Purpose :
-//=======================================================================
+/*!
+  Destructor
+*/
 GLViewer_Drawer::~GLViewer_Drawer()
 {
   myObjects.clear();
   glDeleteLists( myTextList, 1 );
 }
 
-//======================================================================
-// Function: destroyAllTextures
-// Purpose :
-//=======================================================================
+/*!
+  Clears all generated textures
+*/
 void GLViewer_Drawer::destroyAllTextures()
 {
     QMap<GLViewer_TexFindId,GLViewer_TexIdStored>::Iterator anIt= GLViewer_TexFont::TexFontBase.begin();
@@ -518,10 +507,10 @@ void GLViewer_Drawer::destroyAllTextures()
         glDeleteTextures( 1, &(anIt.data().myTexFontId) );
 }
 
-//=======================================================================
-// Function: setAntialiasing
-// Purpose : The function enables and disables antialiasing in Open GL (for points, lines and polygons).
-//=======================================================================
+/*!
+  Enables and disables antialiasing in Open GL (for points, lines and polygons).
+  \param on - if it is true, antialiasing is enabled
+*/
 void GLViewer_Drawer::setAntialiasing(const bool on)
 {
        if (on)
@@ -545,10 +534,12 @@ void GLViewer_Drawer::setAntialiasing(const bool on)
        }
 }
 
-//======================================================================
-// Function: loadTexture
-// Purpose :
-//=======================================================================
+/*! Loads texture from file
+  \param fileName - the name of texture file
+  \param x_size   - the horizontal size of picture ( less or equal texture horizontal size )
+  \param y_size   - the vertical size of picture ( less or equal texture vertical size )
+  \param t_size   - the size of texture ( texture vertical size equals texture horizontal size )
+*/
 GLuint GLViewer_Drawer::loadTexture( const QString& fileName,
                                      GLint* x_size,
                                      GLint* y_size,
@@ -620,10 +611,12 @@ GLuint GLViewer_Drawer::loadTexture( const QString& fileName,
     return texture;
 }
 
-//======================================================================
-// Function: drawTexture
-// Purpose :
-//=======================================================================
+/*! Draw square texture
+   \param texture - the texture ID
+   \param size    - the size of square texture
+   \param x       - x coord
+   \param y       - y coord
+*/
 void GLViewer_Drawer::drawTexture( GLuint texture, GLint size, GLfloat x, GLfloat y )
 {
     /*float xScale = myXScale;
@@ -660,10 +653,13 @@ void GLViewer_Drawer::drawTexture( GLuint texture, GLint size, GLfloat x, GLfloa
   drawTexture( texture, size, size, x, y );
 }
 
-//======================================================================
-// Function: drawTexture
-// Purpose :
-//=======================================================================
+/*! Draw texture
+   \param texture - the texture ID
+   \param x_size  - the horizontal size of texture
+   \param y_size  - the vertical size of texture
+   \param x       - x coord
+   \param y       - y coord
+*/
 void GLViewer_Drawer::drawTexture( GLuint texture, GLint x_size, GLint y_size, GLfloat x, GLfloat y )
 {
     /*float xScale = myXScale;
@@ -699,10 +695,16 @@ void GLViewer_Drawer::drawTexture( GLuint texture, GLint x_size, GLint y_size, G
   drawTexturePart( texture, 1.0, 1.0, x_size, y_size, x, y );
 }
 
-//======================================================================
-// Function: drawTexture
-// Purpose :
-//=======================================================================
+/*! Draw texture part
+   \param texture - the texture ID
+   \param x_ratio - the horizontal ratio of texture part
+   \param y_ratio - the vertical ratio of texture part
+   \param x_size  - the horizontal size of texture
+   \param y_size  - the vertical size of texture
+   \param x       - x coord
+   \param y       - y coord
+   \param scale   - common scale factor ( if = 0, use drawer scales )
+*/
 void GLViewer_Drawer::drawTexturePart( GLuint texture,
                                        GLfloat x_ratio,
                                        GLfloat y_ratio,
@@ -750,10 +752,16 @@ void GLViewer_Drawer::drawTexturePart( GLuint texture,
   glDisable( GL_TEXTURE_2D );
 }
 
-//======================================================================
-// Function: drawText
-// Purpose :
-//=======================================================================
+/*!
+  Draw text
+  \param text - text to be drawn
+  \param xPos - x position
+  \param yPos - y position
+  \param color - color of text
+  \param theFont - font of text
+  \param theSeparator - letter separator
+  \param theFormat - text format (by default DTF_BITMAP)
+*/
 void GLViewer_Drawer::drawText( const QString& text, GLfloat xPos, GLfloat yPos,
                                 const QColor& color, QFont* theFont, int theSeparator, DisplayTextFormat theFormat )
 {
@@ -781,10 +789,9 @@ void GLViewer_Drawer::drawText( const QString& text, GLfloat xPos, GLfloat yPos,
   }
 }
 
-//======================================================================
-// Function: drawText
-// Purpose :
-//=======================================================================
+/*!
+  Draws object-text
+*/
 void GLViewer_Drawer::drawText( GLViewer_Object* theObject )
 {
   if( !theObject )
@@ -801,16 +808,21 @@ void GLViewer_Drawer::drawText( GLViewer_Object* theObject )
   drawText( aText->getText(), aPosX, aPosY, aText->getColor(), &aTmpVarFont, aText->getSeparator(), aText->getDisplayTextFormat() );
 }
 
-//======================================================================
-// Function: drawGLText
-// Purpose :
-//=======================================================================
+/*! Draw text
+   \param text      - the text string
+   \param x         - x coord
+   \param y         - y coord
+   \param hPosition - horizontal alignment
+   \param vPosition - vertical alignment
+   \param color     - text color
+   \param smallFont - font format
+*/
 void GLViewer_Drawer::drawGLText( QString text, float x, float y,
                                   int hPosition, int vPosition, QColor color, bool smallFont )
 {
   QFont aFont( myFont );
   if( smallFont )
-    aFont.setPointSize( aFont.pointSize() * 0.8 );
+    aFont.setPointSize( int(aFont.pointSize() * 0.8) );
 
   GLfloat scale = textScale() > 0. ? textScale() : 1.;
 
@@ -838,10 +850,9 @@ void GLViewer_Drawer::drawGLText( QString text, float x, float y,
   drawText( text, x, y, color, &aFont, 2, myTextFormat );
 }
 
-//======================================================================
-// Function: textRect
-// Purpose :
-//=======================================================================
+/*!
+  \return a rectangle of text (without viewer scale)
+*/
 GLViewer_Rect GLViewer_Drawer::textRect( const QString& text ) const
 {
   GLfloat scale = textScale() > 0. ? textScale() : 1.;
@@ -853,10 +864,11 @@ GLViewer_Rect GLViewer_Drawer::textRect( const QString& text ) const
   return GLViewer_Rect( 0, width, height, 0 );
 }
 
-//======================================================================
-// Function: drawRectangle
-// Purpose :
-//=======================================================================
+/*!
+  Draws rectangle
+  \param rect - instance of primitive
+  \param color - color of primitive
+*/
 void GLViewer_Drawer::drawRectangle( GLViewer_Rect* rect, QColor color )
 {
   if( !rect )
@@ -880,10 +892,12 @@ void GLViewer_Drawer::drawRectangle( GLViewer_Rect* rect, QColor color )
   glEnd();
 }
 
-//======================================================================
-// Function: translateToHPGL
-// Purpose :
-//=======================================================================
+/*!
+  Saves object to file with format of HPGL
+  \param hFile - file
+  \param aViewerCS - viewer co-ordinate system
+  \param aHPGLCS - paper co-ordinate system
+*/
 bool GLViewer_Drawer::translateToHPGL( QFile& hFile, GLViewer_CoordSystem* aViewerCS, GLViewer_CoordSystem* aHPGLCS )
 {
     bool result = true;
@@ -892,10 +906,12 @@ bool GLViewer_Drawer::translateToHPGL( QFile& hFile, GLViewer_CoordSystem* aView
     return result;
 }
 
-//======================================================================
-// Function: translateToPS
-// Purpose :
-//=======================================================================
+/*!
+  Saves object to file with format of PostScript
+  \param hFile - file
+  \param aViewerCS - viewer co-ordinate system
+  \param aPSCS - paper co-ordinate system
+*/
 bool GLViewer_Drawer::translateToPS( QFile& hFile, GLViewer_CoordSystem* aViewerCS, GLViewer_CoordSystem* aPSCS )
 {
     bool result = true;
@@ -905,10 +921,12 @@ bool GLViewer_Drawer::translateToPS( QFile& hFile, GLViewer_CoordSystem* aViewer
 }
 
 #ifdef WIN32
-//======================================================================
-// Function: translateToEMF
-// Purpose :
-//=======================================================================
+/*!
+  Saves object to file with format of EMF
+  \param hFile - file
+  \param aViewerCS - viewer co-ordinate system
+  \param aEMFCS - paper co-ordinate system
+*/
 bool GLViewer_Drawer::translateToEMF( HDC hDC, GLViewer_CoordSystem* aViewerCS, GLViewer_CoordSystem* aEMFCS )
 {
     bool result = true;
@@ -918,10 +936,15 @@ bool GLViewer_Drawer::translateToEMF( HDC hDC, GLViewer_CoordSystem* aViewerCS,
 }
 #endif
 
-//======================================================================
-// Function: drawRectangle
-// Purpose :
-//=======================================================================
+/*!
+  Draws rectangle
+  \param rect - instance of primitive
+  \param lineWidth - width of line
+  \param gap - gap of rectangle
+  \param color - color of primitive
+  \param filled - if it is true, then rectangle will be drawn filled with color "fillingColor"
+  \param fillingColor - color of filling
+*/
 void GLViewer_Drawer::drawRectangle( GLViewer_Rect* rect, GLfloat lineWidth, GLfloat gap,
                                     QColor color, bool filled, QColor fillingColor )
 {
@@ -959,10 +982,12 @@ void GLViewer_Drawer::drawRectangle( GLViewer_Rect* rect, GLfloat lineWidth, GLf
   glEnd();
 }
 
-//======================================================================
-// Function: drawContour
-// Purpose :
-//=======================================================================
+/*!
+  Draws contour
+  \param pntList - list of points
+  \param color - color of contour
+  \param lineWidth - width of line
+*/
 void GLViewer_Drawer::drawContour( const GLViewer_PntList& pntList, QColor color, GLfloat lineWidth )
 {
   glColor3f( ( GLfloat )color.red() / 255,
@@ -977,10 +1002,14 @@ void GLViewer_Drawer::drawContour( const GLViewer_PntList& pntList, QColor color
   glEnd();
 }
 
-//======================================================================
-// Function: drawContour
-// Purpose :
-//=======================================================================
+/*!
+  Draws rectangular contour
+  \param rect - instance of rectangle
+  \param color - color of primitive
+  \param lineWidth - width of line
+  \param pattern - pattern of line
+  \param isStripe - enables line stipple
+*/
 void GLViewer_Drawer::drawContour( GLViewer_Rect* rect, QColor color, GLfloat lineWidth,
                                   GLushort pattern, bool isStripe )
 {
@@ -1011,10 +1040,11 @@ void GLViewer_Drawer::drawContour( GLViewer_Rect* rect, QColor color, GLfloat li
   glDisable( GL_LINE_STIPPLE );
 }
 
-//======================================================================
-// Function: drawPolygon
-// Purpose :
-//=======================================================================
+/*!
+  Draws polygon
+  \param pntList - list of points
+  \param color - color of polygon
+*/
 void GLViewer_Drawer::drawPolygon( const GLViewer_PntList& pntList, QColor color )
 {
   glColor3f( ( GLfloat )color.red() / 255,
@@ -1027,10 +1057,13 @@ void GLViewer_Drawer::drawPolygon( const GLViewer_PntList& pntList, QColor color
   glEnd();
 }
 
-//======================================================================
-// Function: drawPolygon
-// Purpose :
-//=======================================================================
+/*!
+  Draws rectangle
+  \param rect - instance of rectangle
+  \param color - color of polygon
+  \param pattern - pattern of line
+  \param isStripe - enables line stipple
+*/
 void GLViewer_Drawer::drawPolygon( GLViewer_Rect* rect, QColor color,
                                       GLushort pattern, bool isStripe )
 {
@@ -1058,11 +1091,14 @@ void GLViewer_Drawer::drawPolygon( GLViewer_Rect* rect, QColor color,
   glDisable( GL_LINE_STIPPLE );
 }
 
-//======================================================================
-// Function: drawVertex
-// Purpose :
-//=======================================================================
 GLubyte rasterVertex[5] = { 0x70, 0xf8, 0xf8, 0xf8, 0x70 };
+
+/*!
+  Draws vertex
+  \param x - x position
+  \param y - y position
+  \param color - color of vertex
+*/
 void GLViewer_Drawer::drawVertex( GLfloat x, GLfloat y, QColor color )
 {
   glColor3f( ( GLfloat )color.red() / 255, ( GLfloat )color.green() / 255, ( GLfloat )color.blue() / 255 );
@@ -1070,11 +1106,14 @@ void GLViewer_Drawer::drawVertex( GLfloat x, GLfloat y, QColor color )
   glBitmap( 5, 5, 2, 2, 0, 0, rasterVertex );
 }
 
-//======================================================================
-// Function: drawCross
-// Purpose :
-//=======================================================================
 GLubyte rasterCross[7] =  { 0x82, 0x44, 0x28, 0x10, 0x28, 0x44, 0x82 };
+
+/*!
+  Draws cross
+  \param x - x position
+  \param y - y position
+  \param color - color of cross
+*/
 void GLViewer_Drawer::drawCross( GLfloat x, GLfloat y, QColor color )
 {
   glColor3f( ( GLfloat )color.red() / 255, ( GLfloat )color.green() / 255, ( GLfloat )color.blue() / 255 );
@@ -1082,10 +1121,18 @@ void GLViewer_Drawer::drawCross( GLfloat x, GLfloat y, QColor color )
   glBitmap( 7, 7, 3, 3, 0, 0, rasterCross );
 }
 
-//======================================================================
-// Function: drawArrow
-// Purpose :
-//=======================================================================
+/*!
+  Draws arrow
+  \param red, green, blue - components of color
+  \param lineWidth - width of line
+  \param staff - 
+  \param length - length of arrow
+  \param width - width of arrow
+  \param x - x position
+  \param y - y position
+  \param angle - angle of arrow
+  \param filled - drawn as filled
+*/
 void GLViewer_Drawer::drawArrow( const GLfloat red, const GLfloat green, const GLfloat blue,
                                 GLfloat lineWidth,
                                 GLfloat staff, GLfloat length, GLfloat width,
index 4b66e7b206a8cd7de9da250ecdf8fb2aed1a259e..189560e0b3acaf10c3b473c0c675c3d50abf1598 100644 (file)
@@ -98,17 +98,11 @@ struct GLVIEWER_API GLViewer_TexFindId
   }
 };
 
-/***************************************************************************
-**  Class:   GLViewer_TexFont
-**  Descr:   Font for GLViewer_Drawer
-**  Module:  GLViewer
-**  Created: UI team, 03.10.01
-****************************************************************************/
+/*!
+  \class GLViewer_TexFont
+  Font for GLViewer_Drawer, Drawing bitmap and texture fonts in GLViewer
+*/
 
-/*! 
- * Class GLViewer_TexFont
- * Drawing bitmap and texture fonts in GLViewer
- */
 class GLVIEWER_API GLViewer_TexFont
 {
 public:
@@ -185,17 +179,11 @@ private:
   int             myMaxRowWidth;
 };
 
-/***************************************************************************
-**  Class:   GLViewer_Drawer
-**  Descr:   Drawer for GLObject
-**  Module:  GLViewer
-**  Created: UI team, 03.10.01
-****************************************************************************/
 /*! 
* Class GLViewer_Drawer
* Drawer for GLViewer_Objects.
* Drawer creates only one times per one type of object
- */
 \class GLViewer_Drawer
+  Drawer for GLViewer_Objects.
+  Drawer creates only one times per one type of object
+*/
 class GLVIEWER_API GLViewer_Drawer
 {
 public:
index cd0ef5cae9e4f4469450941fe400e8d1ca78b269..b5b1852cd42cb995f565fd9d79d04d54d3ca90fd 100644 (file)
 //  Author : OPEN CASCADE
 //
 
-/***************************************************************************
-**  Class:   GLViewer_Geom
-**  Descr:   
-**  Module:  GLViewer
-**  Created: UI team, 16.11.04
-****************************************************************************/
-
 //#include <GLViewerAfx.h>
 #include <GLViewer_Geom.h>
 
 #define FAR_POINT 1e10  // Value used as a "very distant" co-ordinate
 #define TOLERANCE 1e-3
 
-//================================================================
-// Function : GLViewer_Segment
-// Purpose  : constructs a real segment bounded by two points
-//================================================================
+/*!
+  constructs a real segment bounded by two points
+*/
 GLViewer_Segment::GLViewer_Segment( const GLViewer_Pnt& thePnt1, 
                                     const GLViewer_Pnt& thePnt2 )
 : myPnt1( thePnt1 ), 
@@ -46,11 +38,9 @@ GLViewer_Segment::GLViewer_Segment( const GLViewer_Pnt& thePnt1,
   myC = myPnt1.x() * myPnt2.y() - myPnt2.x() * myPnt1.y();
 }
 
-//================================================================
-// Function : GLViewer_Segment
-// Purpose  : constructs a ray starting at <thePnt> and directed
-//            along positive X axis direction (or Y axis if vertical )
-//================================================================
+/*!
+  constructs a ray starting at <thePnt> and directed along positive X axis direction (or Y axis if vertical )
+*/
 GLViewer_Segment::GLViewer_Segment( const GLViewer_Pnt& thePnt, 
                                     const GLfloat theA, 
                                     const GLfloat theB,
@@ -66,18 +56,16 @@ GLViewer_Segment::GLViewer_Segment( const GLViewer_Pnt& thePnt,
     myPnt2 = GLViewer_Pnt( FAR_POINT, - myA / myB * FAR_POINT - myC / myB );
 }
 
-//================================================================
-// Function : GLViewer_Segment
-// Purpose  : destructor, does nothing
-//================================================================
+/*!
+  destructor, does nothing
+*/
 GLViewer_Segment::~GLViewer_Segment()
 {
 }
 
-//================================================================
-// Function : HasIntersection
-// Purpose  : detects intersection with segment <theOther>
-//================================================================
+/*!
+  detects intersection with segment <theOther>
+*/
 bool GLViewer_Segment::HasIntersection( const GLViewer_Segment& theOther ) const
 {
   bool aRes = false;
@@ -113,27 +101,24 @@ bool GLViewer_Segment::HasIntersection( const GLViewer_Segment& theOther ) const
   return aRes;
 }
 
-//================================================================
-// Function : GLViewer_Poly
-// Purpose  : constructs a closed polygon from the given ordered list of points
-//================================================================
+/*!
+  constructs a closed polygon from the given ordered list of points
+*/
 GLViewer_Poly::GLViewer_Poly( const GLViewer_PntList* thePoints )
 : myPoints( (GLViewer_PntList*)thePoints )
 {
 }
 
-//================================================================
-// Function : ~GLViewer_Poly
-// Purpose  : destructor, <myPoints> mustn't be deleted here!
-//================================================================
+/*!
+  destructor, <myPoints> mustn't be deleted here!
+*/
 GLViewer_Poly::~GLViewer_Poly()
 {
 }
 
-//================================================================
-// Function : IsIn
-// Purpose  : returns true if <thePnt> lies within this polygon
-//================================================================
+/*!
+  \return true if <thePnt> lies within this polygon
+*/
 bool GLViewer_Poly::IsIn( const GLViewer_Pnt& thePnt ) const
 {
   if ( !myPoints )
@@ -159,11 +144,10 @@ bool GLViewer_Poly::IsIn( const GLViewer_Pnt& thePnt ) const
 
   return ( aNbInter % 2 == 1 );
 }
+/*!
+  \return true if <thePnt> lies within this polygon
+*/
 /*
-//================================================================
-// Function : IsIn
-// Purpose  : returns true if <thePnt> lies within this polygon
-//================================================================
 bool GLViewer_Poly::IsIn( const GLViewer_Pnt& thePnt, const float tolerance ) const
 {
   if ( !myPoints )
@@ -184,10 +168,9 @@ bool GLViewer_Poly::IsIn( const GLViewer_Pnt& thePnt, const float tolerance ) co
   return res;
 }
 */
-//================================================================
-// Function : IsCovers
-// Purpose  : returns true if <thePoly> covers this polygon
-//================================================================
+/*!
+  \return true if <thePoly> covers this polygon
+*/
 bool GLViewer_Poly::IsCovers( const GLViewer_Poly& thePoly ) const
 {
     if ( !myPoints || !thePoly.Count() )
@@ -204,10 +187,9 @@ bool GLViewer_Poly::IsCovers( const GLViewer_Poly& thePoly ) const
     return true;
 }
 
-//================================================================
-// Function : IsCovers
-// Purpose  : returns true if <theRect> covers this polygon
-//================================================================
+/*!
+  \return true if <theRect> covers this polygon
+*/
 bool GLViewer_Poly::IsCovers( const GLViewer_Rect& theRect ) const
 {
     if ( !myPoints ) //needs check for <theRect>
@@ -224,10 +206,10 @@ bool GLViewer_Poly::IsCovers( const GLViewer_Rect& theRect ) const
     return IsCovers( GLViewer_Poly( &aList ) );
 }
 
-//================================================================
-// Function : HasIntersection
-// Purpose  : looks for any 
-//================================================================
+/*!
+  \return true if polygon has intersection with segment or ray
+  \param theSegment - segment to check intersection
+*/
 bool GLViewer_Poly::HasIntersection( const GLViewer_Segment& theSegment ) const
 {
   if ( !myPoints )
index 85dfac4ba336e601f94300768331679abc91a6fb..cf483c965507d4c831c4bcecc0de75469d5bfc3d 100644 (file)
@@ -29,6 +29,9 @@
 #include <Precision.hxx>
 #include <qglobal.h>
 
+/*!
+  Default constructor
+*/
 GLViewer_Grid::GLViewer_Grid() :
        myGridList( 0 ), myGridHeight( (GLfloat)0.0 ), myGridWidth( (GLfloat)0.0 ),
        myWinW( (GLfloat)0.0 ), myWinH( (GLfloat)0.0 ), myXSize( (GLfloat)0.0 ), myYSize( (GLfloat)0.0 ),
@@ -44,6 +47,14 @@ GLViewer_Grid::GLViewer_Grid() :
   myAxisColor[2] = 0.75;
 }
 
+/*!
+  Constructor
+  \param  width and \param height - width and height of grid 
+  \param winW and \param winH     - width and height of window 
+  \param xSize and \param ySize   - steps along x and y direction
+  \param xPan and \param yPan     - offsets along x and y direction
+  \param xScale and \param yScal  - scale factors along x and y direction
+*/
 GLViewer_Grid::GLViewer_Grid( GLfloat width, GLfloat height,
                               GLfloat winW, GLfloat winH,
                               GLfloat xSize, GLfloat ySize,
@@ -63,10 +74,16 @@ GLViewer_Grid::GLViewer_Grid( GLfloat width, GLfloat height,
   myAxisColor[2] = 0.75;
 }
 
+/*!
+  Destructor
+*/
 GLViewer_Grid::~GLViewer_Grid()
 {
 }
 
+/*!
+  Performs OpenGL drawing
+*/
 void GLViewer_Grid::draw()
 {
   if ( myGridList == 0 || myIsUpdate )
@@ -75,6 +92,10 @@ void GLViewer_Grid::draw()
   glCallList( myGridList );
 }
 
+/*!
+  Changes color of grid
+  \param r, g, b - components of color
+*/
 void GLViewer_Grid::setGridColor( GLfloat r, GLfloat g, GLfloat b )
 {
   if( myGridColor[0] == r && myGridColor[1] == g && myGridColor[2] == b )
@@ -86,6 +107,10 @@ void GLViewer_Grid::setGridColor( GLfloat r, GLfloat g, GLfloat b )
   myIsUpdate = GL_TRUE;
 }
 
+/*!
+  Changes color of axis
+  \param r, g, b - components of color
+*/
 void GLViewer_Grid::setAxisColor( GLfloat r, GLfloat g, GLfloat b )
 {
   if( myAxisColor[0] == r && myAxisColor[1] == g && myAxisColor[2] == b )
@@ -97,6 +122,10 @@ void GLViewer_Grid::setAxisColor( GLfloat r, GLfloat g, GLfloat b )
   myIsUpdate = GL_TRUE;
 }
 
+/*!
+  Changes grid width
+  \param w - new grid width
+*/
 void GLViewer_Grid::setGridWidth( float w )
 {
   if( myGridWidth == w )
@@ -106,6 +135,10 @@ void GLViewer_Grid::setGridWidth( float w )
   myIsUpdate = GL_TRUE;
 }
 
+/*!
+  Sets Radius of center point( begin coords )
+  \param r - new radius
+*/
 void GLViewer_Grid::setCenterRadius( int r )
 {
   if( myCenterRadius == r )
@@ -115,6 +148,11 @@ void GLViewer_Grid::setCenterRadius( int r )
   myIsUpdate = GL_TRUE;
 }
 
+/*!
+  Sets grid size along X and Y axis
+  \param xSize - size along X axis
+  \param ySize - size along Y axis
+*/
 void GLViewer_Grid::setSize( float xSize, float ySize )
 {
   if( myXSize == xSize && myYSize == ySize )
@@ -125,6 +163,11 @@ void GLViewer_Grid::setSize( float xSize, float ySize )
   myIsUpdate = GL_TRUE;
 }
 
+/*!
+  Sets panning of grid
+  \param xPan - panning along X axis
+  \param yPan - panning along Y axis
+*/
 void GLViewer_Grid::setPan( float xPan, float yPan )
 {
   if( myXPan == xPan && myYPan == yPan )
@@ -135,6 +178,10 @@ void GLViewer_Grid::setPan( float xPan, float yPan )
   myIsUpdate = GL_TRUE; 
 }
 
+/*!
+  Sets zoom 
+  \param zoom - new coefficient of zooming
+*/
 bool GLViewer_Grid::setZoom( float zoom )
 {
   if( zoom == 1.0 )
@@ -160,6 +207,12 @@ bool GLViewer_Grid::setZoom( float zoom )
   return true;
 }
 
+/*!
+  Sets parameters of grid by zoom coefficient and window size
+  \param WinW - window width
+  \param WinH - window height
+  \param zoom - zoom coefficient
+*/
 void GLViewer_Grid::setResize( float WinW, float WinH, float zoom )
 {
   if( myWinW == WinW && myWinH == WinH && zoom == 1.0 )
@@ -173,24 +226,42 @@ void GLViewer_Grid::setResize( float WinW, float WinH, float zoom )
   myIsUpdate = GL_TRUE;
 }
 
+/*!
+  \return grid size along x and y axis
+  \param xSize - for size along x axis
+  \param ySize - for size along y axis
+*/
 void GLViewer_Grid::getSize( float& xSize, float& ySize ) const
 {
   xSize = myXSize;
   ySize = myYSize;
 }
 
+/*!
+  \return panning along x and y axis
+  \param xPan - for panning along x axis
+  \param yPan - for panning along y axis
+*/
 void GLViewer_Grid::getPan( float& xPan, float& yPan ) const
 {
   xPan = myXPan;
   yPan = myYPan;
 }
 
+/*!
+  \return scaling along x and y axis
+  \param xScale - for scaling along x axis
+  \param yScale - for scaling along y axis
+*/
 void GLViewer_Grid::getScale( float& xScale, float& yScale ) const
 {
   xScale = myXScale;
   yScale = myYScale;
 }
 
+/*!
+  Initialize grid display list
+*/
 bool GLViewer_Grid::initList()
 {
   myIsUpdate = GL_FALSE;
index 6377e9ecda81c079f40a8e93b1d0760f31ddb0b5..ab32135c1709931029405be1618cb26f866f90a3 100644 (file)
 #include "GLViewer_Group.h"
 #include "GLViewer_Object.h"
 
-/***************************************************************************
-**  Class:   GLViewer_Group
-**  Descr:   Group of GLViewer_Objects
-**  Module:  GLViewer
-**  Created: UI team, 25.03.05
-****************************************************************************/
-
-//--------------------------------------------------------------------------
-//Function: GLViewer_Group()
-//Description: constructor
-//--------------------------------------------------------------------------
+/*!
+  constructor
+*/
 GLViewer_Group::GLViewer_Group()
 {
   mySelObjNum = 0;
 }
 
-//--------------------------------------------------------------------------
-//Function: GLViewer_Group()
-//Description: destructor
-//--------------------------------------------------------------------------
+/*!
+  destructor
+*/
 GLViewer_Group::~GLViewer_Group()
 {  
 }
 
-//--------------------------------------------------------------------------
-//Function: isEmpty
-//Description: detection of empty group
-//--------------------------------------------------------------------------
+/*!
+  detection of empty group
+*/
 bool GLViewer_Group::isEmpty()
 {
   return myList.empty(); 
 }
 
-//--------------------------------------------------------------------------
-//Function: count
-//Description: number of elements
-//--------------------------------------------------------------------------
+/*!
+  \return number of elements
+*/
 int GLViewer_Group::count()
 {
   return myList.size();
 }
 
-//--------------------------------------------------------------------------
-//Function: contains
-//Description: return the position of object, else -1
-//--------------------------------------------------------------------------
+/*!
+  \return the position of object if group contains it, else -1
+*/
 int GLViewer_Group::contains( GLViewer_Object* theObject )
 {
   if( !theObject )
@@ -86,10 +74,9 @@ int GLViewer_Group::contains( GLViewer_Object* theObject )
   return -1;
 }
 
-//--------------------------------------------------------------------------
-//Function: addObject
-//Description: adding object to group
-//--------------------------------------------------------------------------
+/*!
+  adding object to group
+*/
 int GLViewer_Group::addObject( GLViewer_Object* theObject )
 {
   if( theObject && contains( theObject ) == -1 )
@@ -100,10 +87,9 @@ int GLViewer_Group::addObject( GLViewer_Object* theObject )
   return count();
 }
 
-//--------------------------------------------------------------------------
-//Function: removeObject
-//Description: removing object from group
-//--------------------------------------------------------------------------
+/*!
+  removing object from group
+*/
 int GLViewer_Group::removeObject( GLViewer_Object* theObject )
 {
   if( theObject )
@@ -122,10 +108,11 @@ int GLViewer_Group::removeObject( GLViewer_Object* theObject )
     return count();
 }
 
-//--------------------------------------------------------------------------
-//Function: dragingObjects
-//Description: 
-//--------------------------------------------------------------------------
+/*!
+  Dragging operation
+  \param Once is true, if this operation calls only one time for all object
+  \param x, y - dragging position
+*/
 void GLViewer_Group::dragingObjects( float x, float y, bool once )
 {
   if( !once )
@@ -154,10 +141,11 @@ void GLViewer_Group::dragingObjects( float x, float y, bool once )
     (*it)->moveObject( x, y, true );  
 }
 
-//--------------------------------------------------------------------------
-//Function: updateZoom
-//Description: 
-//--------------------------------------------------------------------------
+/*!
+  Updates zoom of object
+  \param sender - object to be updated
+  \param zoom - zoom coefficient
+*/
 void GLViewer_Group::updateZoom( GLViewer_Object* sender, float zoom )
 {
   OGIterator it = myList.begin();
index e43ee5f51fd97385f1e2c1ab26c3b327b41db468..5338ca7ddb5a81ff92f361a216a20c820c40cdcd 100644 (file)
 //  Author : OPEN CASCADE
 //
 
-/***************************************************************************
-**  Class:   GLViewer_MimeSource
-**  Descr:   Needs for a work with QClipboard
-**  Module:  GLViewer
-**  Created: UI team, 22.03.04
-****************************************************************************/
-
 //#include <GLViewerAfx.h>
 #include "GLViewer_MimeSource.h"
 #include "GLViewer_BaseObjects.h"
 //#include <cmath>
 //using namespace std;
 
+/*!
+  Destructor
+*/
 GLViewer_MimeSource::~GLViewer_MimeSource()
 {
 }
 
+/*!
+  Translate objects to byte array
+  \param theObjects - list of objects
+*/
 bool GLViewer_MimeSource::setObjects( QValueList<GLViewer_Object*> theObjects )
 {
     if( !theObjects.empty() )
@@ -109,9 +109,12 @@ bool GLViewer_MimeSource::setObjects( QValueList<GLViewer_Object*> theObjects )
 
     return false;
 }
-//!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!NOTE!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
-//If you want to use new class, following two method must be redefined
-//!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!NOTE!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
+
+/*!
+  Creates object by it's representation (byte array)
+  \param theArray - byte array
+  \param theType - type of object
+*/
 GLViewer_Object* GLViewer_MimeSource::getObject( QByteArray theArray, QString theType )
 {
     if( !theArray.isEmpty() )
@@ -139,6 +142,11 @@ GLViewer_Object* GLViewer_MimeSource::getObject( QByteArray theArray, QString th
     return NULL;
 }
 
+/*!
+  Creates list of objects by its representation (byte array)
+  \param theArray - byte array
+  \param theType - type of object
+*/
 QValueList<GLViewer_Object*> GLViewer_MimeSource::getObjects( QByteArray theArray, QString theType )
 {
     if( !theArray.isEmpty() )
@@ -210,6 +218,10 @@ QValueList<GLViewer_Object*> GLViewer_MimeSource::getObjects( QByteArray theArra
     return QValueList<GLViewer_Object*>();    
 }
 
+/*!
+  \return format by index
+  \param theIndex - index
+*/
 const char* GLViewer_MimeSource::format( int theIndex ) const
 {
     switch( theIndex )
@@ -223,6 +235,9 @@ const char* GLViewer_MimeSource::format( int theIndex ) const
 
 }
 
+/*!
+  \return internal byte array
+*/
 QByteArray GLViewer_MimeSource::encodedData( const char* theObjectType ) const
 {
     if( theObjectType == "GLViewer_Objects" )
index 4fca3c9d793252e63985c52c2904addfe80f63a9..01e59b508035ab89106aa9458ab3a16dc3a03ea7 100644 (file)
 
 class GLViewer_Object;
 
-/*! Class GLViewer_MimeSource
-* Needs for a work with QClipboard
+/*! 
+  \class GLViewer_MimeSource
+  Needs for a work with QClipboard
 */
-
 class GLVIEWER_API GLViewer_MimeSource: public QMimeSource
 {
 public:
index f5972674b8977334ea8d9e15c6b69c63432425bb..37fdca053d282f3f189691702b620d63822e2554 100644 (file)
 //  Author : OPEN CASCADE
 //
 
-/***************************************************************************
-**  Class:   GLViewer_Object
-**  Descr:   OpenGL Object
-**  Module:  GLViewer
-**  Created: UI team, 03.09.02
-****************************************************************************/
-
 //#include <GLViewerAfx.h>
 #include "GLViewer_Object.h"
 #include "GLViewer_Drawer.h"
@@ -37,6 +30,9 @@
 //#include <cmath>
 //using namespace std;
 
+/*!
+  Default constructor
+*/
 GLViewer_Object::GLViewer_Object()
 {
   myXScale = 1.0; 
@@ -65,6 +61,9 @@ GLViewer_Object::GLViewer_Object()
   myGroup = NULL;
 }
 
+/*!
+  Destructor
+*/
 GLViewer_Object::~GLViewer_Object()
 {
   if( myRect )
@@ -80,16 +79,27 @@ GLViewer_Object::~GLViewer_Object()
     delete myAspectLine;
 }
 
+/*!
+  \return priority of object
+*/
 int GLViewer_Object::getPriority() const
 {
     return myDrawer ? myDrawer->getPriority() : 0;
 }
 
+/*!
+  \return true if object is inside rectangle
+  \param theRect - rectangle
+*/
 GLboolean GLViewer_Object::isInside( GLViewer_Rect theRect )
 {
     return theRect.toQRect().contains( myRect->toQRect() );
 }
 
+/*!
+  Sets zoom factor
+  \param zoom - zoom factor
+*/
 GLboolean GLViewer_Object::setZoom( GLfloat zoom, bool, bool )
 {
     if( myZoom == zoom )
@@ -99,6 +109,10 @@ GLboolean GLViewer_Object::setZoom( GLfloat zoom, bool, bool )
     return GL_TRUE;
 }
 
+/*!
+  Performs zoom change by step
+  \param zoomIn - to increase to decrease zoom
+*/
 GLboolean GLViewer_Object::updateZoom( bool zoomIn )
 {
     float newZoom;
@@ -118,6 +132,10 @@ GLboolean GLViewer_Object::updateZoom( bool zoomIn )
     return setZoom( newZoom, true );
 }
 
+/*!
+  Codes object as byte copy
+  \return byte array
+*/
 QByteArray GLViewer_Object::getByteCopy()
 {
     int i = 0;
@@ -185,6 +203,10 @@ QByteArray GLViewer_Object::getByteCopy()
     return aResult;
 }
 
+/*!
+  Initialize object by byte array
+  \param theArray - byte array
+*/
 bool GLViewer_Object::initializeFromByteCopy( QByteArray theArray )
 {
     int i = 0;
@@ -281,6 +303,10 @@ bool GLViewer_Object::initializeFromByteCopy( QByteArray theArray )
     return true;        
 }
 
+/*!
+  Sets object's group
+  \param theGroup - group
+*/
 void GLViewer_Object::setGroup( GLViewer_Group* theGroup )
 {
   if ( myGroup == theGroup )
@@ -294,6 +320,9 @@ void GLViewer_Object::setGroup( GLViewer_Group* theGroup )
     myGroup->addObject( this );
 }
 
+/*!
+  \return object's group
+*/
 GLViewer_Group* GLViewer_Object::getGroup() const
 {
   return myGroup;
index 6cd21b29458ce6bf052ba56c1cd870b8fdfa8e03..d6abc6ea936c023de2f820340fe5f997b2e72986 100644 (file)
 #pragma warning( disable:4251 )
 #endif
 
-/*! 
- * Class GLViewer_Object
- * Base Object for GLViewer
- */
 class GLViewer_Drawer;
 class GLViewer_AspectLine;
 class GLViewer_Group;
@@ -56,6 +52,10 @@ class GLViewer_CoordSystem;
 class GLViewer_Text;
 class GLViewer_Owner;
 
+/*! 
+ * Class GLViewer_Object
+ * Base Object for all GLViewer objects
+ */
 class GLVIEWER_API GLViewer_Object
 {
 public:
index 5df29eb89cc78bc3ca6f736cb88bdbe39cefc4e4..2bf702e1878caef87992d9d80c625ce96bcffcff 100644 (file)
 // File:      GLViewer_Selector.cxx
 // Created:   November, 2004
 
-/****************************************************************************
-**  Class:   GLViewer_Selector
-**  Descr:   Base class for object selection in QAD-based application
-**  Module:  GLViewer
-**  Created: UI team, 22.09.00
-*****************************************************************************/
-
 //#include <GLViewerAfx.h>
 #include "GLViewer_Selector.h"
 
index ad40ab124905f31f8e9f485836f8b3893812b129..3458451f095beb0466b56b6e75bf5062d6cc0728 100644 (file)
 // File:      GLViewer_Selector.h
 // Created:   November, 2004
 
-/****************************************************************************
-**  Class:   GLViewer_Selector
-**  Descr:   Base class for object selection in QAD-based application
-**  Module:  GLViewer
-**  Created: UI team, 22.09.00
-*****************************************************************************/
 #ifndef GLVIEWER_SELECTOR_H
 #define GLVIEWER_SELECTOR_H
 
 
 class GLViewer_Viewer;
 
-/*! Class GLViewer_Selector
-*   Based select manager for GLViewer
+/*!
+  \Class GLViewer_Selector
+  Base class for object selection in SUIT-based application
 */
-
 class GLVIEWER_API GLViewer_Selector : public QObject
 {
     Q_OBJECT
index e8a414d464425ddd34b3a3d855d89de0d72babe2..d2037d272c3c8faed9893d2c58352c13acfe562c 100644 (file)
 // File:      GLViewer_Selector2d.cxx
 // Created:   November, 2004
 
-/****************************************************************************
-**  Class:   GLViewer_Selector2d 
-**  Descr:   OpenGL Selector 2D
-**  Module:  GLViewer
-**  Created: UI team, 20.09.02
-*****************************************************************************/
-
 //#include <GLViewerAfx.h>
 #include "GLViewer_Selector2d.h"
 #include "GLViewer_Viewer2d.h"
 #include "GLViewer_Context.h"
 #include "GLViewer_ViewPort2d.h"
 
+/*!
+  Constructor
+*/
 GLViewer_Selector2d::GLViewer_Selector2d( GLViewer_Viewer2d* v2d, GLViewer_Context* glc ) :
 GLViewer_Selector( v2d ),
 myGLContext( glc )
@@ -43,20 +39,35 @@ myGLContext( glc )
 //  myGLContext->SetSelectionColor( Quantity_NOC_RED );
 }
 
+/*!
+  Destructor
+*/
 GLViewer_Selector2d::~GLViewer_Selector2d()
 {
 }
 
+/*!
+  Changes hilight color of context
+  \param color - new hilight color
+*/
 void GLViewer_Selector2d::setHilightColor( Quantity_NameOfColor color )
 {
   myGLContext->SetHighlightColor( color );
 }
 
+/*!
+  Changes selection color of context
+  \param color - new selection color
+*/
 void GLViewer_Selector2d::setSelectColor( Quantity_NameOfColor color )
 {
   myGLContext->SetSelectionColor( color );
 }
 
+/*!
+  Detects object at point
+  \param x, y - point co-ordinates
+*/
 void GLViewer_Selector2d::detect( int x, int y )
 {
   //cout << "GLViewer_Selector2d    : detect ( " << x << " , " << y << " )" << endl;
@@ -71,6 +82,9 @@ void GLViewer_Selector2d::detect( int x, int y )
   myGLContext->MoveTo( x, y );
 }
 
+/*!
+  Undetects all objects
+*/
 void GLViewer_Selector2d::undetectAll()
 {
   if ( myLocked || !myGLContext || !myViewer || !myViewer->getActiveView() || 
@@ -84,6 +98,10 @@ void GLViewer_Selector2d::undetectAll()
   myGLContext->clearHighlighted( true );
 }
 
+/*!
+  Selects previously hilighted objects
+  \param append - append objects to selection
+*/
 void GLViewer_Selector2d::select( bool append )
 {
   //cout << "GLViewer_Selector2d    : select ( " << (int)append << " )" << endl;
@@ -104,6 +122,11 @@ void GLViewer_Selector2d::select( bool append )
   checkSelection( selBefore, append, status );
 }
 
+/*!
+  Selects objects in rectangle
+  \param selRect - selection rectangle
+  \param append - append objects to selection
+*/
 void GLViewer_Selector2d::select( const QRect& selRect, bool append )
 {
     GLViewer_Viewer::SelectionMode selMode = myViewer->getSelectionMode();
@@ -123,6 +146,9 @@ void GLViewer_Selector2d::select( const QRect& selRect, bool append )
     checkSelection( selBefore, append, aStatus );
 }
 
+/*!
+  Unselects all objects
+*/
 void GLViewer_Selector2d::unselectAll()
 {
   if ( myLocked || !myViewer ) 
@@ -137,8 +163,10 @@ void GLViewer_Selector2d::unselectAll()
   if ( hadSelection ) emit selSelectionCancel();
 }
 
-/*  Checks selection state and emits  'selSelectionDone' or 'selSelectionCancel'     
-    Should be called by after non-interactive selection. */
+/*!
+  Checks selection state and emits  'selSelectionDone' or 'selSelectionCancel'     
+  Should be called by after non-interactive selection.
+*/
 void GLViewer_Selector2d::checkSelection( int selBefore, bool append, int aStatus )
 {
     int selAfter = numSelected();
@@ -158,6 +186,9 @@ void GLViewer_Selector2d::checkSelection( int selBefore, bool append, int aStatu
     }
 }
 
+/*!
+  \return number of selected objects
+*/
 int GLViewer_Selector2d::numSelected() const
 {
   return myGLContext->NbSelected();
index cce3cc37e7038a3e56c636f49ca691738b7fd90e..2f21920ae604b6203855e6fc1fac75aa43a002c4 100644 (file)
 // File:      GLViewer_Selector2d.h
 // Created:   November, 2004
 
-/****************************************************************************
-**  Class:   GLViewer_Selector2d 
-**  Descr:   OpenGL Selector 2D
-**  Module:  GLViewer
-**  Created: UI team, 20.09.02
-*****************************************************************************/
 #ifndef GLVIEWER_SELECTOR2D_H
 #define GLVIEWER_SELECTOR2D_H
 
@@ -42,8 +36,9 @@
 class GLViewer_Viewer2d;
 class GLViewer_Context;
 
-/*! Class GLViewer_Selector2d
-*   2D select manager for GLViewer
+/*!
+  \class GLViewer_Selector2d 
+  2D select manager for GLViewer
 */
 class GLVIEWER_API GLViewer_Selector2d : public GLViewer_Selector
 {
index bafa33ec1eaea5f0893b93a6056c0fa4cb99dac7..63a00fd0071fbfc9419b5f3389e9f5ef66f16111 100644 (file)
 //  Author : OPEN CASCADE
 //
 
-/***************************************************************************
-**  Class:   GLViewer_Text
-**  Descr:   Substitution of Prs3d_Text for OpenGL
-**  Module:  GLViewer
-**  Created: UI team, 10.07.03
-****************************************************************************/
-
 //#include <GLViewerAfx.h>
 #include "GLViewer_Text.h"
 
+/*!
+  Constructor
+*/
 GLViewer_Text::GLViewer_Text( const QString& text, float xPos, float yPos, const QColor& color )
 {
   myText = text;
@@ -40,6 +36,9 @@ GLViewer_Text::GLViewer_Text( const QString& text, float xPos, float yPos, const
   myDTF = DTF_BITMAP;
 }
 
+/*!
+  Constructor
+*/
 GLViewer_Text::GLViewer_Text( const QString& text, float xPos, float yPos, const QColor& color, QFont theFont, int theSeparator )
 {
   myText = text;
@@ -51,10 +50,16 @@ GLViewer_Text::GLViewer_Text( const QString& text, float xPos, float yPos, const
   myDTF = DTF_BITMAP;
 }
 
+/*!
+  Destructor
+*/
 GLViewer_Text::~GLViewer_Text()
 {
 }
 
+/*!
+  \return width of text
+*/
 int GLViewer_Text::getWidth()
 {
     int aResult = 0;
@@ -64,12 +69,19 @@ int GLViewer_Text::getWidth()
     return aResult;
 }
 
+/*!
+  \return height of text
+*/
 int GLViewer_Text::getHeight()
 {
     QFontMetrics aFM( myQFont );
     return aFM.height();
 }
 
+/*!
+  Codes object as byte copy
+  \return byte array
+*/
 QByteArray GLViewer_Text::getByteCopy() const
 {
     int i;
@@ -121,6 +133,10 @@ QByteArray GLViewer_Text::getByteCopy() const
     return aResult;
 }
 
+/*!
+  Initialize text from binary representation
+  \param theBuf - byte array
+*/
 GLViewer_Text* GLViewer_Text::fromByteCopy( QByteArray theBuf )
 {
     int i = 0;
index ef3512ca90e1194ebe989ba0189eacd50c3a6851..41f2869c878703280e5b4cb4f23695adfd8b33bc 100644 (file)
 #pragma warning( disable:4251 )
 #endif
 
-/* Class GLViewer_Text
-* Substitution of Prs3d_Text for OpenGL */
-
+/*!
+  \class GLViewer_Text
+  Substitution of Prs3d_Text for OpenGL
+*/
 class GLVIEWER_API GLViewer_Text
 {
 public:
index 0521ff19f05e210b101ff3d16b3fbaaa5cbcfb4f..e43eede36834524eb87761216d17bea35d431573 100644 (file)
 #include <qapplication.h>
 #include <qtooltip.h>
 
-/***************************************************************************
-**  Class:   GLViewer_ToolTip
-**  Descr:   ToolTip of GLViewer_Objects
-**  Module:  GLViewer
-**  Created: UI team, 25.03.05
-****************************************************************************/
-
-//--------------------------------------------------------------------------
-//Function: GLViewer_ToolTip()
-//Description: constructor
-//--------------------------------------------------------------------------
+/*!
+  constructor
+*/
 GLViewer_ObjectTip::GLViewer_ObjectTip( GLViewer_ViewPort2d* theParent )
 :QObject(),
  myText(),
@@ -69,10 +61,9 @@ GLViewer_ObjectTip::GLViewer_ObjectTip( GLViewer_ViewPort2d* theParent )
   connect( mypTimer, SIGNAL( timeout() ), this, SLOT( showTip() ) );
 }
 
-//--------------------------------------------------------------------------
-//Function: GLViewer_ToolTip()
-//Description: destructor
-//--------------------------------------------------------------------------
+/*!
+  destructor
+*/
 GLViewer_ObjectTip::~GLViewer_ObjectTip()
 { 
 //  delete mypRect;
@@ -87,10 +78,10 @@ GLViewer_ObjectTip::~GLViewer_ObjectTip()
 }
 
 
-//--------------------------------------------------------------------------
-//Function: GLViewer_ToolTip()
-//Description: destructor
-//--------------------------------------------------------------------------
+/*!
+  It is called when there is a possibility that a tool tip should be shown
+  \param p - position of tooltip
+*/
 bool GLViewer_ObjectTip::maybeTip( const QPoint &p )
 {
 
@@ -138,6 +129,9 @@ bool GLViewer_ObjectTip::maybeTip( const QPoint &p )
   */
 }
 
+/*!
+  Custom event filter
+*/
 bool GLViewer_ObjectTip::eventFilter( QObject* theObj, QEvent* e )
 {
   hideTipAndSleep();
@@ -175,7 +169,9 @@ bool GLViewer_ObjectTip::eventFilter( QObject* theObj, QEvent* e )
   return false;
 }
 
-
+/*!
+  Hides tooltip and stops timer
+*/
 void GLViewer_ObjectTip::hideTipAndSleep()
 {
   //if( mypPoint )
@@ -191,6 +187,9 @@ void GLViewer_ObjectTip::hideTipAndSleep()
   mypTimer->stop();
 }
 
+/*!
+  Shows tooltip
+*/
 void GLViewer_ObjectTip::showTip()
 {
   if( maybeTip( myPoint ) )
@@ -218,6 +217,9 @@ void GLViewer_ObjectTip::showTip()
   }
 }
 
+/*!
+  Restarts timer
+*/
 void GLViewer_ObjectTip::wakeup( int theTime )
 {
   if( mypTimer->isActive() )
index 9dcb71f6861862a5b50c5301ff41a4af6886dd47..7700b61b1a1e5132b9ec116b7158ab079b1322ac 100644 (file)
 
 class GLViewer_ViewPort2d;
 class QLabel;
-/***************************************************************************
-**  Class:   GLViewer_ObjectTip
-**  Descr:   ToolTip of GLViewer_Objects
-**  Module:  GLViewer
-**  Created: UI team, 28.03.05
-****************************************************************************/
+/*!
+  \class GLViewer_ObjectTip
+  ToolTip of GLViewer_Objects
+*/
 class GLVIEWER_API GLViewer_ObjectTip: public QObject//QToolTip//QtxToolTip
 {
   Q_OBJECT
index a54ad837f7bfc42b90cf95eb09ac659c72a6d82e..9d8739175b860aa531e08fa0875926d297b8016d 100644 (file)
 
 #include <iostream.h>
 
-/****************************************************************************
-**  Class:   GLViewer_LineList 
-**  Descr:   Tools for distinct line
-**  Module:  GLViewer
-**  Created: UI team, 27.10.05
-*****************************************************************************/
+/*!
+  Constructor
+  \param size - size of internal array
+*/
 GLViewer_LineList::GLViewer_LineList( int size )
 {
   myRealSize = 2*size;
@@ -52,11 +50,18 @@ GLViewer_LineList::GLViewer_LineList( int size )
     memset( myArray, 0, myRealSize*sizeof(double) );
 }
 
+/*!
+  Destructor
+*/
 GLViewer_LineList::~GLViewer_LineList()
 {
   delete myArray;
 }
 
+/*!
+  Adds new line segment to list
+  \param coord1, coord2 - co-ordinates of points
+*/
 bool GLViewer_LineList::addSegment( double coord1, double coord2 )
 {
   if( coord1 > coord2 )
@@ -158,6 +163,11 @@ bool GLViewer_LineList::addSegment( double coord1, double coord2 )
   return true;
 }
 
+/*!
+  Gets info about segment
+  \param theIndex - index of segment
+  \param coord1, coord2 - co-ordinates of points
+*/
 bool GLViewer_LineList::readSegment( int theIndex, double& coord1, double& coord2 )
 {
   if( theIndex > mySegmentNumber || !myArray)
@@ -169,6 +179,10 @@ bool GLViewer_LineList::readSegment( int theIndex, double& coord1, double& coord
   return true;
 }
 
+/*!
+  \return true if line list covers point
+  \param thePoint - point co-ordinate
+*/
 int GLViewer_LineList::contains( double thePoint ) const
 {
   if( !myArray || mySegmentNumber == 0 )
@@ -182,6 +196,10 @@ int GLViewer_LineList::contains( double thePoint ) const
 
 }
 
+/*!
+  Removes segment
+  \param theIndex - segment index
+*/
 bool GLViewer_LineList::removeSegment( int theIndex )
 {
   if( theIndex > mySegmentNumber || !myArray)
@@ -198,6 +216,10 @@ bool GLViewer_LineList::removeSegment( int theIndex )
   return true;
 }
 
+/*!
+  Removes segment from line list
+  \param coord1, coord2 - co-ordinates of points
+*/
 bool GLViewer_LineList::removeSegment( double coord1, double coord2 )
 {
   if( coord1 > coord2 )
@@ -350,12 +372,18 @@ bool GLViewer_LineList::removeSegment( double coord1, double coord2 )
   return true;
 }
 
+/*!
+  Clears line list
+*/
 void GLViewer_LineList::clear()
 {
   if( myArray )
     memset( myArray, 0, myRealSize*sizeof(double) );
 }
 
+/*!
+  Prints debug info about line list
+*/
 void GLViewer_LineList::print()
 {
   cout << "MainCoord: " << myMainCoord <<" SIZE: " << myRealSize << " ENum: " << mySegmentNumber << " :::";
@@ -365,6 +393,10 @@ void GLViewer_LineList::print()
   cout << endl;
 }
 
+/*!
+  Draws line list with help of OpenGL 
+  \param theDim - dimension
+*/
 void GLViewer_LineList::show( FieldDim theDim )
 {
   if( !myArray )
@@ -393,12 +425,10 @@ void GLViewer_LineList::show( FieldDim theDim )
   }
 }
 
-/****************************************************************************
-**  Class:   GLViewer_LineField 
-**  Descr:   Tools for solving 
-**  Module:  GLViewer
-**  Created: UI team, 27.10.05
-*****************************************************************************/
+
+/*!
+  Constructor
+*/
 GLViewer_LineField::GLViewer_LineField()
 {
   myCurArrayIndex = 0;
@@ -412,6 +442,10 @@ GLViewer_LineField::GLViewer_LineField()
   myXLineArray = NULL;
   myYLineArray = NULL;
 }
+
+/*!
+  Constructor
+*/
 GLViewer_LineField::GLViewer_LineField( const int theMAXSize, const int theXN, const int theYN )
 {
   myCurArrayIndex = 0;
@@ -443,6 +477,9 @@ GLViewer_LineField::GLViewer_LineField( const int theMAXSize, const int theXN, c
   }
 }
 
+/*!
+  Destructor
+*/
 GLViewer_LineField::~GLViewer_LineField()
 {
   if( myXLineArray )
@@ -468,11 +505,21 @@ GLViewer_LineField::~GLViewer_LineField()
     delete myGraphArray2;
 }
 
+/*!
+  Adds line
+*/
 void GLViewer_LineField::addLine( FieldDim theDim, GLViewer_LineList* )
 {
   //not implemented
 }
 
+/*!
+  Adds line
+  \param theDim - dimension
+  \param theMC - main co-ordinate
+  \param theBegin - start co-ordinate
+  \param theEnd - end co-ordinate
+*/
 void GLViewer_LineField:: addLine( FieldDim theDim, double theMC, double theBegin, double theEnd )
 {
   GLViewer_LineList* aLL = new GLViewer_LineList( 1 );
@@ -481,7 +528,12 @@ void GLViewer_LineField:: addLine( FieldDim theDim, double theMC, double theBegi
   addLine( theDim, aLL );
 }
 
-
+/*!
+  Adds line
+  \param theDim - dimension
+  \param theLL - main co-ordinate
+  \param thePosition - index in list
+*/
 int GLViewer_LineField::insertLine( FieldDim theDim, GLViewer_LineList* theLL, int thePosition )
 {
   if( !myXLineArray || !myYLineArray )
@@ -533,6 +585,14 @@ int GLViewer_LineField::insertLine( FieldDim theDim, GLViewer_LineList* theLL, i
   return -1;
 }
 
+/*!
+  Adds line
+  \param theDim - dimension
+  \param theMainCoord - main co-ordinate
+  \param theBegin - start co-ordinate
+  \param theEnd - end co-ordinate
+  \param thePosition - index in list
+*/
 int GLViewer_LineField::insertLine( FieldDim theDim, double theMainCoord, double theBegin, double theEnd, int thePosition )
 {
   GLViewer_LineList* aLL = new GLViewer_LineList( 1 );
@@ -541,7 +601,9 @@ int GLViewer_LineField::insertLine( FieldDim theDim, double theMainCoord, double
   return insertLine( theDim, aLL, thePosition );
 }
 
-
+/*!
+  \return other dimension
+*/
 FieldDim GLViewer_LineField::invertDim( FieldDim theFD )
 {
   if( theFD == FD_X )
@@ -550,6 +612,11 @@ FieldDim GLViewer_LineField::invertDim( FieldDim theFD )
     return FD_X;
 }
 
+/*!
+  \return line list
+  \param theIndex - index in list
+  \param tehFD - dimension
+*/
 GLViewer_LineList* GLViewer_LineField::getLine( int theIndex, FieldDim theFD )
 {
   if( !myXLineArray || !myYLineArray )
@@ -573,6 +640,11 @@ GLViewer_LineList* GLViewer_LineField::getLine( int theIndex, FieldDim theFD )
   return NULL;
 }
 
+/*!
+  Sets borders of field
+  \param X1, X2 - minimal and maximal abscisses
+  \param Y1, Y2 - minimal and maximal ordinates
+*/
 void GLViewer_LineField::setBorders( double X1, double X2, double Y1, double Y2 )
 {
   if( !myXLineArray || !myYLineArray )
@@ -593,6 +665,11 @@ void GLViewer_LineField::setBorders( double X1, double X2, double Y1, double Y2
   }
 } 
 
+/*!
+  Adds rectangle
+  \param top, right - a corner of rectangle
+  \param bottom, left - other corner of rectangle
+*/
 void GLViewer_LineField::addRectangle( double top, double right, double bottom, double left )
 {
   if( !myXLineArray || !myYLineArray )
@@ -612,6 +689,9 @@ void GLViewer_LineField::addRectangle( double top, double right, double bottom,
   }
 }
 
+/*!
+  Prints debug info about line field
+*/
 void GLViewer_LineField::print()
 {
   cout << "My X matrix Number: " << myXSize << endl;
@@ -623,6 +703,9 @@ void GLViewer_LineField::print()
     myYLineArray[j]->print();
 }
 
+/*!
+  Draws field with help of OpenGL 
+*/
 void GLViewer_LineField::show()
 {
   for( int i = 0; i < myXSize; i++ )
@@ -644,6 +727,10 @@ void GLViewer_LineField::show()
   cout << "Show function" << endl;
 }
 
+/*!
+  \return size
+  \param theDim - dimension
+*/
 int GLViewer_LineField::getDimSize( FieldDim theDim )
 {
   if( theDim == FD_X )
@@ -654,6 +741,13 @@ int GLViewer_LineField::getDimSize( FieldDim theDim )
   return -1;
 }
 
+/*!
+  \return array of intersected indexes
+  \param theDim - dimension
+  \param theIndex - index
+  \param theLL - line with that intersection is checked
+  \param theSize - to return value of array size
+*/
 int* GLViewer_LineField::intersectIndexes( FieldDim theDim, int theIndex, const GLViewer_LineList* theLL, int& theSize )
 {
   theSize = 0;
@@ -678,7 +772,11 @@ int* GLViewer_LineField::intersectIndexes( FieldDim theDim, int theIndex, const
   return anArray;
 }
 
-
+/*!
+  Sets start/end search point
+  \param thePoint - type of point (start: FP_Start; end: FP_End )
+  \param theX, theY - point co-ordinates
+*/
 bool GLViewer_LineField::setPoint( FieldPoint thePoint, double theX, double theY )
 {
   if( !myXLineArray || !myYLineArray )
@@ -730,6 +828,9 @@ bool GLViewer_LineField::setPoint( FieldPoint thePoint, double theX, double theY
     return false;
 }
 
+/*!
+  \return number of segments
+*/
 int GLViewer_LineField::segmentNumber()
 {
   if( !(myXLineArray || myYLineArray) )
@@ -743,6 +844,9 @@ int GLViewer_LineField::segmentNumber()
   return aNumber;
 }
 
+/*!
+  Removes all multiple segments
+*/
 void GLViewer_LineField::optimize()
 {
   if( !myXLineArray || !myYLineArray )
@@ -790,6 +894,10 @@ void GLViewer_LineField::optimize()
   }
 }
 
+/*!
+  Some prepare actions
+  Needs call setPoint before
+*/
 void GLViewer_LineField::initialize()
 {
   if( !myXLineArray || !myYLineArray )
@@ -843,6 +951,9 @@ void GLViewer_LineField::initialize()
   }
 }
 
+/*!
+  One iteration of algorithm
+*/
 void GLViewer_LineField::iteration()
 {
   int aParam = myCurCount;
@@ -874,6 +985,9 @@ void GLViewer_LineField::iteration()
   delete[] aNodes;
 }
 
+/*!
+  Checks for complete status
+*/
 GLViewer_LineField::IterationStatus GLViewer_LineField::checkComplete()
 {
   if( !myXLineArray || !myYLineArray || !myGraphArray1 || !myGraphArray2 )
@@ -924,6 +1038,9 @@ GLViewer_LineField::IterationStatus GLViewer_LineField::checkComplete()
   return IS_NOT_SOLVED;
 }
 
+/*!
+  Finds LineList by counts and returns indexes
+*/
 int* GLViewer_LineField::findByCount( int& theParam )
 {
   if( !myXLineArray || !myYLineArray || !myGraphArray1 || !myGraphArray2 )
@@ -948,6 +1065,9 @@ int* GLViewer_LineField::findByCount( int& theParam )
   return anArray;
 }
 
+/*!
+  Finds LineList by segment and dimension
+*/
 int GLViewer_LineField::findBySegment( FieldDim theDim, int theLineIndex, int theSegment, bool inCurArray )
 {
   if( !myXLineArray || !myYLineArray || !myGraphArray1 || !myGraphArray2 || getDimSize( theDim ) <= theLineIndex )
@@ -969,6 +1089,9 @@ int GLViewer_LineField::findBySegment( FieldDim theDim, int theLineIndex, int th
   return -1;
 }
 
+/*!
+  Main method, performs algorithm execution
+*/
 GLViewer_LineField::EndStatus GLViewer_LineField::startAlgorithm()
 {
   if( !myXLineArray || !myYLineArray || !myGraphArray1 || !myGraphArray2 )
@@ -990,6 +1113,9 @@ GLViewer_LineField::EndStatus GLViewer_LineField::startAlgorithm()
   return ES_SOLVED;
 }
 
+/*!
+  \return solution and size of solution
+*/
 double* GLViewer_LineField::solution( int& theSize )
 {
   if( !myXLineArray || !myYLineArray || !myGraphArray1 || !myGraphArray2 )
@@ -1033,6 +1159,9 @@ double* GLViewer_LineField::solution( int& theSize )
   return anArray;
 }
 
+/*!
+  \return current solution array
+*/
 GraphNode* GLViewer_LineField::getCurArray()
 {
   if( !myGraphArray1 || !myGraphArray2 )
@@ -1044,6 +1173,9 @@ GraphNode* GLViewer_LineField::getCurArray()
     return myGraphArray2;
 }
 
+/*!
+  \return other solution array
+*/
 GraphNode* GLViewer_LineField::getSecArray()
 {
   if( !myGraphArray1 || !myGraphArray2 )
@@ -1055,6 +1187,9 @@ GraphNode* GLViewer_LineField::getSecArray()
     return myGraphArray1;
 }
 
+/*!
+  \return maximum segment number
+*/
 int GLViewer_LineField::maxSegmentNum()
 {
   if( !myXLineArray || !myYLineArray )
@@ -1074,6 +1209,10 @@ int GLViewer_LineField::maxSegmentNum()
   return max_num;
 }
 
+/*!
+  \return list of LileList by dimension
+  \param theDim - dimension
+*/
 GLViewer_LineList** GLViewer_LineField::getLLArray( FieldDim theDim )
 {
   if( theDim == FD_X )
index 3acdd879b365036efe66dd0220b036427411dce3..65a640f0ec8d3f4211ff8d6685c13a51661e9b53 100644 (file)
 
 class GLViewer_LineField;
 
-/****************************************************************************
-**  Class:   GLViewer_Tools 
-**  Descr:   Tools for Viewer
-**  Module:  GLViewer
-**  Created: UI team, 27.10.05
-*****************************************************************************/
+/*!
+  \class GLViewer_Tools 
+  Tools for Viewer
+*/
 class GLVIEWER_API GLViewer_Tools
 {
 public:
@@ -57,7 +55,7 @@ enum FieldDim
 };
 
 /*!
-  Class GLViewer_LineList 
+  \class GLViewer_LineList 
   Tools for distinct line
   This class implmented interface for segment operations:
   add, cut, remove and etc.
@@ -122,9 +120,10 @@ struct SearchPoint
   int       mySolveIndex;
 };
 
-/*! Class  GLViewer_LineField 
-* Tools for solving algorithm of finding shortest path on rare grid with minimum of 
-* line turns number
+/*! 
+  \class  GLViewer_LineField 
+  Tools for solving algorithm of finding shortest path on rare grid with minimum of 
+  line turns number
 */
 class GLViewer_LineField
 {
@@ -212,9 +211,9 @@ protected:
   //! Checks for complete status
   IterationStatus     checkComplete();  
 
-  //! Finds LileList by counts and returns indexes
+  //! Finds LineList by counts and returns indexes
   int*                findByCount( int& theParam );
-  //! Finds LileList by segment and dimension
+  //! Finds LineList by segment and dimension
   int                 findBySegment( FieldDim, int coord1, int coord2, bool inCurArray = true );
 
   //! Returns current solution array
index a466d7b2f91813081ec6390fdf196b0f1992b8f4..7cc29afba1deb63b250a540e9f6c8cd1437e0582 100644 (file)
 // File:      GLViewer_ViewFrame.cxx
 // Created:   November, 2004
 
-/***************************************************************************
-**  Class:   GLViewer_ViewFrame
-**  Descr:   Frame window for viewport in QAD-based application
-**  Module:  QAD
-**  Created: UI team, 05.09.00
-****************************************************************************/
-
 //#include <GLViewerAfx.h>
 #include "GLViewer_ViewFrame.h"
 #include "GLViewer_Viewer.h"
@@ -82,10 +75,9 @@ GLViewer_ViewFrame::~GLViewer_ViewFrame()
 {
 }
 
-//================================================================
-// Function : createActions
-// Purpose  : 
-//================================================================
+/*!
+  Creates actions of GL view frame
+*/
 void GLViewer_ViewFrame::createActions()
 {
   if (!myActionsMap.isEmpty()) return;
@@ -148,10 +140,9 @@ void GLViewer_ViewFrame::createActions()
   myActionsMap[ ResetId ] = aAction;
 }
 
-//================================================================
-// Function : createToolBar
-// Purpose  : 
-//================================================================
+/*!
+  Creates toolbar of GL view frame
+*/
 void GLViewer_ViewFrame::createToolBar()
 {
   myActionsMap[DumpId]->addTo(myToolBar);
@@ -248,7 +239,7 @@ QSize GLViewer_ViewFrame::sizeHint() const
 {
     QWidget* p = parentWidget();
     if ( p && p->inherits( "QWorkspaceChild" ) )
-        p = p->parentWidget();      /* QWorkspaceChild: internal impl class in QWorkspace */
+        p = p->parentWidget();
     if ( !p )
         return QMainWindow::sizeHint();
     return QSize( 9 * p->width() / 10 , 9 * p->height() / 10  );
@@ -263,6 +254,9 @@ void GLViewer_ViewFrame::onUpdate( int )
 
 //#include <windows.h>
 
+/*!
+  SLOT: called on dump view operation is activated, stores scene to raster file
+*/
 void GLViewer_ViewFrame::onViewDump()
 {
     GLViewer_Widget* aWidget = ((GLViewer_ViewPort2d*)myVP)->getGLWidget();
@@ -448,50 +442,73 @@ void GLViewer_ViewFrame::onViewDump()
     }
 }
 
+/*!
+  Start panning
+*/
 void GLViewer_ViewFrame::onViewPan()
 {
     myViewer->activateTransform( GLViewer_Viewer::Pan );
 }
 
+/*!
+  Start zooming
+*/
 void GLViewer_ViewFrame::onViewZoom()
 {
     myViewer->activateTransform( GLViewer_Viewer::Zoom );
 }
 
+/*!
+  Start fit all
+*/
 void GLViewer_ViewFrame::onViewFitAll()
 {
     myViewer->activateTransform( GLViewer_Viewer::FitAll );
 }
 
+/*!
+  Start fit area
+*/
 void GLViewer_ViewFrame::onViewFitArea()
 { 
     myViewer->activateTransform( GLViewer_Viewer::FitRect );
 }
 
+/*!
+  Start fit selected
+*/
 void GLViewer_ViewFrame::onViewFitSelect()
 { 
     myViewer->activateTransform( GLViewer_Viewer::FitSelect );
 }
 
+/*!
+  Start global panning
+*/
 void GLViewer_ViewFrame::onViewGlobalPan()
 { 
     myViewer->activateTransform( GLViewer_Viewer::PanGlobal );
 }
 
+/*!
+  Start rotating
+*/
 void GLViewer_ViewFrame::onViewRotate()
 { 
     //myViewer->activateTransform( GLViewer_Viewer::Rotate );
 }
 
+/*!
+  Start reset default view aspects
+*/
 void GLViewer_ViewFrame::onViewReset()
 { 
     myViewer->activateTransform( GLViewer_Viewer::Reset );
 }
-  
-//================================================================
-// Function : mouseEvent
-// Purpose  : dispatches mouse events
-//================================================================
+/*! 
+  Dispatches mouse events
+*/
 void GLViewer_ViewFrame::mouseEvent( QMouseEvent* e )
 {
   switch ( e->type() )
@@ -513,10 +530,9 @@ void GLViewer_ViewFrame::mouseEvent( QMouseEvent* e )
   }
 }
 
-//================================================================
-// Function : keyEvent
-// Purpose  : dispatches key events
-//================================================================
+/*!
+  Dispatches key events
+*/
 void GLViewer_ViewFrame::keyEvent( QKeyEvent* e )
 {
   switch ( e->type() )
@@ -532,10 +548,9 @@ void GLViewer_ViewFrame::keyEvent( QKeyEvent* e )
   }
 }
 
-//================================================================
-// Function : wheelEvent
-// Purpose  : dispatches wheel events
-//================================================================
+/*!
+  Dispatches wheel events
+*/
 void GLViewer_ViewFrame::wheelEvent( QWheelEvent* e )
 {
   switch ( e->type() )
@@ -548,8 +563,9 @@ void GLViewer_ViewFrame::wheelEvent( QWheelEvent* e )
   }
 }
 
-/*! The method returns the visual parameters of this view as a formated string
- */
+/*!
+  \return the visual parameters of this view as a formated string
+*/
 QString GLViewer_ViewFrame::getVisualParameters()
 {
   QString retStr;
@@ -563,8 +579,9 @@ QString GLViewer_ViewFrame::getVisualParameters()
   return retStr;
 }
 
-/* The method restors visual parameters of this view from a formated string
- */
+/*!
+  The method restores visual parameters of this view from a formated string
+*/
 void GLViewer_ViewFrame::setVisualParameters( const QString& parameters )
 {
   QStringList paramsLst = QStringList::split( '*', parameters, true );
index 8b9267a426f91537b5355bd8d0b9b2b655ef63e6..d2686dfc6fa186771f44986f7d2e915d93c6d1b9 100644 (file)
 // File:      GLViewer_ViewFrame.h
 // Created:   November, 2004
 
-/***************************************************************************
-**  Class:   GLViewer_ViewFrame
-**  Descr:   Frame window for viewport in QAD-based application
-**  Module:  QAD
-**  Created: UI team, 05.09.00
-****************************************************************************/
 #ifndef GLVIEWER_VIEWFRAME_H
 #define GLVIEWER_VIEWFRAME_H
 
@@ -47,8 +41,9 @@ class GLViewer_ViewPort;
 #pragma warning( disable:4251 )
 #endif
 
-/*! Class GLViewer_ViewFrame
-*   Frame window for viewport in GLViewer
+/*!
+  \class GLViewer_ViewFrame
+  Frame window for viewport in QAD-based application
 */
 
 class GLVIEWER_API GLViewer_ViewFrame: public SUIT_ViewWindow
index 91150147a42875821d96d844ca9ce30f68d53053..2083ff4d56cd81235db8a4a62568eb0ce7e8a948 100644 (file)
@@ -30,7 +30,7 @@
 
 int GLViewer_ViewManager::myMaxId = 0;
 
-//***************************************************************
+/*!Constructor.*/
 GLViewer_ViewManager::GLViewer_ViewManager( SUIT_Study* theStudy, SUIT_Desktop* theDesktop )
 : SUIT_ViewManager( theStudy, theDesktop )
 {
@@ -38,19 +38,19 @@ GLViewer_ViewManager::GLViewer_ViewManager( SUIT_Study* theStudy, SUIT_Desktop*
     setViewModel( new GLViewer_Viewer2d( "GLViewer" ) );
 }
 
-//***************************************************************
+/*!Destructor.*/
 GLViewer_ViewManager::~GLViewer_ViewManager()
 {
 }
 
-//***************************************************************
+/*!Sets view name for view window \a theView.*/
 void GLViewer_ViewManager::setViewName(SUIT_ViewWindow* theView)
 {
     int aPos = myViews.find(theView);
     theView->setCaption( QString( "GL scene:%1 - viewer:%2" ).arg(myId).arg(aPos+1));
 }
 
-//***************************************************************
+/*!Context menu popup for \a popup.*/
 void GLViewer_ViewManager::contextMenuPopup( QPopupMenu* popup )
 {
   SUIT_ViewManager::contextMenuPopup( popup );
index 78767afa14992d8fd2c8524f25c712ecb1030b12..b6416e9c6990787f53e613120184e273433ba5b9 100644 (file)
 // File:      GLViewer_ViewPort.cxx
 // Created:   November, 2004
 
-/***************************************************************************
-**  Class:   GLViewer_ViewPort
-**  Descr:   Visualisation canvas of QAD-based application
-**  Module:  QAD
-**  Created: UI team, 05.09.00
-****************************************************************************/
-
 //#include <GLViewerAfx.h>
 
 #if !(defined WNT) && !(defined QT_CLEAN_NAMESPACE)
 #include <Xw_Window.hxx>
 #include <Graphic3d_GraphicDevice.hxx>
 
+/*!
+  \struct CMapEntry
+  Map of indexed colors
+  For internal purposes
+*/
 struct CMapEntry
 {
     CMapEntry();
@@ -69,6 +67,9 @@ struct CMapEntry
     XStandardColormap scmap;
 };
 
+/*!
+  Constructor
+*/
 CMapEntry::CMapEntry()
 {
     cmap = 0;
@@ -76,6 +77,9 @@ CMapEntry::CMapEntry()
     scmap.colormap = 0;
 }
 
+/*!
+  Destructor
+*/
 CMapEntry::~CMapEntry()
 {
     if ( alloc )
@@ -587,6 +591,9 @@ void GLViewer_ViewPort::onChangeBgColor()
         setBackgroundColor( selColor );
 }
 
+/*!
+  Custom context menu event handler
+*/
 void GLViewer_ViewPort::contextMenuEvent( QContextMenuEvent* e )
 {
   //if ( e->reason() != QContextMenuEvent::Mouse )
index 02ef4edaf21a7867e8c2282f98173387d32b9f0d..3174121d15a282dbbffcf22f356fe7d5c110cd5e 100644 (file)
 // File:      GLViewer_ViewPort.h
 // Created:   November, 2004
 
-/***************************************************************************
-**  Class:   GLViewer_ViewPort
-**  Descr:   Visualisation canvas of GLViewer
-**  Created: UI team, 05.09.04
-****************************************************************************/
 #ifndef GLVIEWER_VIEWPORT_H
 #define GLVIEWER_VIEWPORT_H
 
@@ -57,10 +52,10 @@ enum BlockStatus
     BS_Dragging         = 0x0004
 };
 
-/*! 
* Class GLViewer_ViewPort
* Visualisation canvas of GLViewer
- */
+/*!
 \class GLViewer_ViewPort
+  Visualisation canvas of GLViewer
+*/
 class GLVIEWER_API GLViewer_ViewPort: public QWidget
 {
     Q_OBJECT
index 17d9d68daa868bf07098ccc402492434499ea710..a81bc07633b46d285209cb2f161fc1b80890ee4c 100644 (file)
@@ -63,6 +63,9 @@ void rotate_point( float& theX, float& theY, float theAngle )
     theY = aTempY;
 }
 
+/*!
+  Constructor
+*/
 GLViewer_ViewPort2d::GLViewer_ViewPort2d( QWidget* parent, GLViewer_ViewFrame* theViewFrame ) :
        GLViewer_ViewPort( parent ),
        myMargin( MARGIN ), myWidth( WIDTH ), myHeight( HEIGHT ),
@@ -105,6 +108,9 @@ GLViewer_ViewPort2d::GLViewer_ViewPort2d( QWidget* parent, GLViewer_ViewFrame* t
 //    myGLWidget->installEventFilter( myObjectTip );
 }
 
+/*!
+  Destructor
+*/
 GLViewer_ViewPort2d::~GLViewer_ViewPort2d()
 {
     if( myCompass )
@@ -117,6 +123,9 @@ GLViewer_ViewPort2d::~GLViewer_ViewPort2d()
     delete myGLWidget;
 }
 
+/*!
+  SLOT: initializes drag process
+*/
 void GLViewer_ViewPort2d::onStartDragObject( )
 {
     if( myIsDragProcess == noDrag )
@@ -132,6 +141,9 @@ void GLViewer_ViewPort2d::onStartDragObject( )
     } 
 }
 
+/*!
+  SLOT: cuts object to clipboard
+*/
 void GLViewer_ViewPort2d::onCutObject()
 { 
     /*GLViewer_Object* aMovingObject = ((GLViewer_Viewer2d*)getViewFrame()->getViewer())->getGLContext()->getCurrentObject();
@@ -167,6 +179,9 @@ void GLViewer_ViewPort2d::onCutObject()
     }
 }
 
+/*!
+  SLOT: copies object to clipboard
+*/
 void GLViewer_ViewPort2d::onCopyObject()
 {
     /*GLViewer_Object* aMovingObject = ((GLViewer_Viewer2d*)getViewFrame()->getViewer())->getGLContext()->getCurrentObject();
@@ -198,6 +213,9 @@ void GLViewer_ViewPort2d::onCopyObject()
     }
 }
 
+/*!
+  SLOT: pastes object from clipboard
+*/
 void GLViewer_ViewPort2d::onPasteObject()
 {
     /*QClipboard *aClipboard = QApplication::clipboard();
@@ -243,6 +261,9 @@ void GLViewer_ViewPort2d::onPasteObject()
     */
 }
 
+/*!
+  SLOT: called when object is being dragged
+*/
 void GLViewer_ViewPort2d::onDragObject( QMouseEvent* e )
 {
   //cout << "---GLViewer_ViewPort2d::onDragObject()---" << endl;
@@ -401,6 +422,9 @@ void GLViewer_ViewPort2d::mouseReleaseEvent( QMouseEvent* e )
     }
 }
 
+/*!
+  Custom mouse double click event handler
+*/
 void GLViewer_ViewPort2d::mouseDoubleClickEvent( QMouseEvent * e )
 {
   //redefined to block mouse release after mouse double click
@@ -409,6 +433,10 @@ void GLViewer_ViewPort2d::mouseDoubleClickEvent( QMouseEvent * e )
   GLViewer_ViewPort::mouseDoubleClickEvent( e );
 }
 
+/*!
+  Creates or deletes compass
+  \param on - if it is true, then to create
+*/
 void GLViewer_ViewPort2d::turnCompass( GLboolean on )
 {
     if( on )
@@ -417,6 +445,10 @@ void GLViewer_ViewPort2d::turnCompass( GLboolean on )
         delete myCompass;
 }
 
+/*!
+  Creates or deletes grid
+  \param on - if it is true, then to create
+*/
 void GLViewer_ViewPort2d::turnGrid( GLboolean on )
 {
     if( on )
@@ -431,6 +463,11 @@ void GLViewer_ViewPort2d::turnGrid( GLboolean on )
         delete myGrid;
 }
 
+/*!
+  Changes grid color
+  \param gridColor - new grid color
+  \param axisColor - new axis color
+*/
 void GLViewer_ViewPort2d::setGridColor( const QColor gridColor, const QColor axisColor )
 {
     if( myGrid )
@@ -444,6 +481,10 @@ void GLViewer_ViewPort2d::setGridColor( const QColor gridColor, const QColor axi
     }
 }
 
+/*!
+  Changes background color
+  \param color - new background color
+*/
 void GLViewer_ViewPort2d::setBackgroundColor( const QColor& color )
 {
     GLViewer_ViewPort::setBackgroundColor( color );
@@ -454,11 +495,17 @@ void GLViewer_ViewPort2d::setBackgroundColor( const QColor& color )
     myGLWidget->repaint();
 }
 
+/*!
+  \return background color
+*/
 QColor GLViewer_ViewPort2d::backgroundColor() const
 {
     return GLViewer_ViewPort::backgroundColor();
 }
 
+/*!
+  Resize view
+*/
 void GLViewer_ViewPort2d::initResize( int x, int y )
 {
     float xa, xb, ya, yb;
@@ -509,6 +556,9 @@ void GLViewer_ViewPort2d::initResize( int x, int y )
     myGLWidget->setScale( myXScale, myYScale, 1.0 );
 }
 
+/*!
+  Custom paint event handler
+*/
 void GLViewer_ViewPort2d::paintEvent( QPaintEvent* e )
 {
     //cout << "GLViewer_ViewPort2d::paintEvent" << endl;
@@ -516,12 +566,18 @@ void GLViewer_ViewPort2d::paintEvent( QPaintEvent* e )
     GLViewer_ViewPort::paintEvent( e );
 }
 
+/*!
+  Custom resize event handler
+*/
 void GLViewer_ViewPort2d::resizeEvent( QResizeEvent* e )
 {
     //cout << "GLViewer_ViewPort2d::resizeEvent" << endl;
     GLViewer_ViewPort::resizeEvent( e );
 }
 
+/*!
+  Resets view to start state
+*/
 void GLViewer_ViewPort2d::reset()
 {
     //cout << "GLViewer_ViewPort2d::reset" << endl;
@@ -557,6 +613,11 @@ void GLViewer_ViewPort2d::reset()
     myGLWidget->updateGL();
 }
 
+/*!
+  Sets offset to view
+  \param dx - X offset
+  \param dy - Y offset
+*/
 void GLViewer_ViewPort2d::pan( int dx, int dy )
 {
     //cout << "GLViewer_ViewPort2d::pan " << dx << " " << dy << endl;
@@ -588,6 +649,10 @@ void GLViewer_ViewPort2d::pan( int dx, int dy )
     myGLWidget->updateGL();
 }
 
+/*!
+  Sets view center in global coords
+  \param x, y - global co-ordinates of center
+*/
 void GLViewer_ViewPort2d::setCenter( int x, int y )
 {
     //cout << "GLViewer_ViewPort2d::setCenter" << endl;
@@ -617,6 +682,9 @@ void GLViewer_ViewPort2d::setCenter( int x, int y )
     myGLWidget->updateGL();
 }
 
+/*!
+  Process zoming transformation with mouse tracking from ( x0, y0 ) to ( x1, y1 )
+*/
 void GLViewer_ViewPort2d::zoom( int x0, int y0, int x, int y )
 {
     //cout << "GLViewer_ViewPort2d::zoom" << endl;
@@ -659,6 +727,10 @@ void GLViewer_ViewPort2d::zoom( int x0, int y0, int x, int y )
     }
 }
 
+/*!
+  Transforms view by rectangle
+  \param rect - rectangle
+*/
 void GLViewer_ViewPort2d::fitRect( const QRect& rect )
 {
     float x0, x1, y0, y1;
@@ -711,6 +783,9 @@ void GLViewer_ViewPort2d::fitRect( const QRect& rect )
     myGLWidget->updateGL();
 }
 
+/*!
+  Transforms view by selection
+*/
 void GLViewer_ViewPort2d::fitSelect()
 {
   GLViewer_Viewer2d* aViewer = (GLViewer_Viewer2d*)getViewFrame()->getViewer();
@@ -732,6 +807,10 @@ void GLViewer_ViewPort2d::fitSelect()
   }
 }
 
+/*!
+  Transform view by view borders
+  \param keepScale - if it is true, zoom does not change
+*/
 void GLViewer_ViewPort2d::fitAll( bool keepScale, bool withZ )
 {
     //cout << "GLViewer_ViewPort2d::fitAll" << endl;
@@ -820,11 +899,19 @@ void GLViewer_ViewPort2d::fitAll( bool keepScale, bool withZ )
         emit vpUpdateValues();
 }
 
+/*!
+  Begins rotation
+  \param x, y - start point
+*/
 void GLViewer_ViewPort2d::startRotation( int x, int y )
 {
     myGLWidget->setRotationStart( x, y, 1.0 );
 }
 
+/*!
+  Performs rotation
+  \param intX, intY - current point
+*/
 void GLViewer_ViewPort2d::rotate( int intX, int intY )
 {
     GLint val[4];
@@ -871,6 +958,9 @@ void GLViewer_ViewPort2d::rotate( int intX, int intY )
     myGLWidget->updateGL();
 }
 
+/*!
+  Finishes rotation
+*/
 void GLViewer_ViewPort2d::endRotation()
 {
     float ra, rx, ry, rz;
@@ -878,6 +968,9 @@ void GLViewer_ViewPort2d::endRotation()
     myGLWidget->setRotationAngle( ra );
 }
 
+/*!
+  Draws compass
+*/
 void GLViewer_ViewPort2d::drawCompass()
 {
     if( !myCompass->getVisible() )
@@ -1038,6 +1131,9 @@ void GLViewer_ViewPort2d::drawCompass()
         glCallList( aTextList );
 }
 
+/*!
+  \return blocking status for current started operations
+*/
 BlockStatus GLViewer_ViewPort2d::currentBlock()
 {
     if( myIsDragProcess == inDrag && myCurDragPosX != NULL && myCurDragPosY != NULL)
@@ -1049,6 +1145,10 @@ BlockStatus GLViewer_ViewPort2d::currentBlock()
     return BS_NoBlock;
 }
 
+/*!
+  Initializes rectangle selection
+  \param x, y - start point
+*/
 void GLViewer_ViewPort2d::startSelectByRect( int x, int y )
 {
     if( !mypFirstPoint && !mypLastPoint )
@@ -1057,6 +1157,11 @@ void GLViewer_ViewPort2d::startSelectByRect( int x, int y )
         mypLastPoint = new QPoint( x, y );
     }
 }
+
+/*!
+  Draws rectangle selection
+  \param x, y - current point
+*/
 void GLViewer_ViewPort2d::drawSelectByRect( int x, int y )
 {
     if( mypFirstPoint && mypLastPoint )
@@ -1075,6 +1180,10 @@ void GLViewer_ViewPort2d::drawSelectByRect( int x, int y )
     }
 
 }
+
+/*!
+  Finishes rectangle selection
+*/
 void GLViewer_ViewPort2d::finishSelectByRect()
 {
     if( mypFirstPoint && mypLastPoint )
@@ -1094,6 +1203,9 @@ void GLViewer_ViewPort2d::finishSelectByRect()
     }
 }
 
+/*!
+  \return rectangle selection
+*/
 QRect GLViewer_ViewPort2d::selectionRect()
 {
     QRect aRect;
@@ -1108,6 +1220,8 @@ QRect GLViewer_ViewPort2d::selectionRect()
     return aRect;
 }
 
+/*!
+*/
 bool GLViewer_ViewPort2d::startPulling( GLViewer_Pnt point )
 {
     GLViewer_Viewer2d* aViewer = (GLViewer_Viewer2d*)getViewFrame()->getViewer();
@@ -1131,6 +1245,8 @@ bool GLViewer_ViewPort2d::startPulling( GLViewer_Pnt point )
     return false;
 }
 
+/*!
+*/
 void GLViewer_ViewPort2d::drawPulling( GLViewer_Pnt point )
 {
     GLViewer_Viewer2d* aViewer = (GLViewer_Viewer2d*)getViewFrame()->getViewer();
@@ -1156,6 +1272,8 @@ void GLViewer_ViewPort2d::drawPulling( GLViewer_Pnt point )
     myPullingObject->pull( point, aLockedObject );
 }
 
+/*!
+*/
 void GLViewer_ViewPort2d::finishPulling()
 {
     myIsPulling = false;
@@ -1163,6 +1281,10 @@ void GLViewer_ViewPort2d::finishPulling()
     setCursor( *getDefaultCursor() );
 }
 
+/*!
+  Convert rectangle in window co-ordinates to GL co-ordinates
+  \return converted rectangle
+*/
 GLViewer_Rect GLViewer_ViewPort2d::win2GLV( const QRect& theRect ) const
 {
   GLViewer_Rect aRect;
@@ -1189,6 +1311,10 @@ GLViewer_Rect GLViewer_ViewPort2d::win2GLV( const QRect& theRect ) const
   return aRect;
 }
 
+/*!
+  Convert rectangle in GL co-ordinates to window co-ordinates
+  \return converted rectangle
+*/
 QRect GLViewer_ViewPort2d::GLV2win( const GLViewer_Rect& theRect ) const
 {
   QRect aRect;
@@ -1215,6 +1341,9 @@ QRect GLViewer_ViewPort2d::GLV2win( const GLViewer_Rect& theRect ) const
   return aRect;
 }
 
+/*!
+  SLOT: called when tooltip should be shown
+*/
 void GLViewer_ViewPort2d::onMaybeTip( QPoint thePoint, QString& theText, QFont& theFont, QRect& theTextReg, QRect& theRegion )
 {
   GLViewer_Context* aContext = ((GLViewer_Viewer2d*)getViewFrame()->getViewer())->getGLContext();
index 128cdbe06b176cbfda86ff3ee5e87d25ef8219e2..4c39051ce86802f93693231acdc61fa49e1c4fa4 100644 (file)
@@ -178,7 +178,7 @@ protected:
   virtual void           setCenter( int x, int y );
   //! Process zoming transformation with mouse tracking from ( x0, y0 ) to ( x1, y1 )
   virtual void           zoom( int x0, int y0, int x1, int y1 );
-  //! Transforms view by certangle
+  //! Transforms view by rectangle
   virtual void           fitRect( const QRect& );
   //! Transforms view by selection
   virtual void           fitSelect();
index 9ca9ed73e950a188acd4ca9fc70a59c2d5a38d21..78a16398fc29c9804cbe6ffa677a95ecd1aab625 100644 (file)
 // File:      GLViewer_Viewer.cxx
 // Created:   November, 2004
 
-/***************************************************************************
-**  Class:   GLViewer_Viewer
-**  Descr:   Viewer for QAD-based application
-**  Module:  QAD
-**  Created: UI team, 05.09.00
-****************************************************************************/
-
 //#include <GLViewerAfx.h>
 #include "GLViewer_Viewer.h"
 #include "GLViewer_Selector.h"
@@ -66,10 +59,10 @@ GLViewer_Viewer::~GLViewer_Viewer()
     delete mySelector;
 }
 
-//================================================================
-// Function : setViewManager
-// Purpose  : 
-//================================================================
+/*!
+  Sets new view manager
+  \param theViewManager - new view manager
+*/
 void GLViewer_Viewer::setViewManager(SUIT_ViewManager* theViewManager)
 {
   SUIT_ViewModel::setViewManager(theViewManager);
@@ -89,10 +82,9 @@ void GLViewer_Viewer::setViewManager(SUIT_ViewManager* theViewManager)
   }
 }
 
-//================================================================
-// Function : contextMenuPopup
-// Purpose  : 
-//================================================================
+/*!
+  Builds popup for GL viewer
+*/
 void GLViewer_Viewer::contextMenuPopup( QPopupMenu* thePopup )
 {
   if( thePopup->count() > 0 )
@@ -530,10 +522,6 @@ void GLViewer_Viewer::handleWheel( QWheelEvent* e )
     startOperations( e );
 }
 
-/****************************************************************
-**  Class: GLViewer_ViewTransformer
-**  Level: Public
-*****************************************************************/
 int GLViewer_ViewTransformer::panBtn = Qt::MidButton;
 int GLViewer_ViewTransformer::zoomBtn = Qt::LeftButton;
 int GLViewer_ViewTransformer::fitRectBtn = Qt::LeftButton;
@@ -758,10 +746,6 @@ int GLViewer_ViewTransformer::type() const
 }
 
 
-/****************************************************************
-**  Class: GLViewer_ViewSketcher
-**  Level: Public
-*****************************************************************/
 int GLViewer_ViewSketcher::sketchBtn = LeftButton;
 
 /*!
index dfd16c2fa247eaa1f3a4ff2fc1f038a64e428d88..fa6a36f35e9a6ac5bb287829e32d39ddbbdb8394 100644 (file)
@@ -46,9 +46,9 @@ class SUIT_ViewWindow;
 #endif
 
 /*! 
* Class GLViewer_Object
* Base Viewer for GLViewer
- */
 \class GLViewer_Object
+  Base Viewer for GLViewer
+*/
 class GLVIEWER_API GLViewer_Viewer: public SUIT_ViewModel
 {
     Q_OBJECT
@@ -128,10 +128,6 @@ protected:
     GLViewer_ViewTransformer*    myTransformer;     /* transform manipulator */
 };
 
-/****************************************************************
-**  Class: GLViewer_ViewTransformer
-**
-*****************************************************************/
 class GLVIEWER_API GLViewer_ViewTransformer : public QObject
 {
 public:
@@ -188,10 +184,6 @@ protected:
     int                          myMajorBtn;
 };
 
-/****************************************************************
-**  Class: GLViewer_ViewSketcher
-**
-*****************************************************************/
 class GLVIEWER_API GLViewer_ViewSketcher : public QObject
 {
 public:
index f98f5e2ae76818b2eb442a7073f335559ca02421..77fdf497298947c8aa3bd2e8e82401bdf3a0bb1f 100644 (file)
 // File:      GLViewer_Viewer2d.cxx
 // Created:   November, 2004
 
-/***************************************************************************
-**  Class:   GLViewer_Viewer2d
-**  Descr:   OpenGL Viewer 2D
-**  Module:  GLViewer
-**  Created: UI team, 04.09.02
-****************************************************************************/
-
 //#include <GLViewerAfx.h>
 #include "GLViewer_Viewer2d.h"
 #include "GLViewer_Object.h"
 #include <qpointarray.h>
 #include <qcolordialog.h>
 
+/*!
+  Constructor
+  \param title - viewer title
+*/
 GLViewer_Viewer2d::GLViewer_Viewer2d( const QString& title) :
 GLViewer_Viewer( title )
 {
@@ -64,6 +61,9 @@ GLViewer_Viewer( title )
     myDrawers.clear();
 }
 
+/*!
+  Destructor
+*/
 GLViewer_Viewer2d::~GLViewer_Viewer2d()
 {    
     //myGLSketcher = 0;
@@ -71,11 +71,18 @@ GLViewer_Viewer2d::~GLViewer_Viewer2d()
   GLViewer_TexFont::clearTextBases();
 }
 
+/*!Create new instance of view window on desktop \a theDesktop.
+ *\retval SUIT_ViewWindow* - created view window pointer.
+ */
 SUIT_ViewWindow* GLViewer_Viewer2d::createView( SUIT_Desktop* theDesktop )
 {
     return new GLViewer_ViewFrame( theDesktop, this );
 }
 
+/*!
+  Adds item for change background color
+  \param thePopup - menu
+*/
 void GLViewer_Viewer2d::addPopupItems( QPopupMenu* thePopup )
 {
   // CTH8434. "Change background color" menu item is available if there are no selected objects
@@ -87,6 +94,9 @@ void GLViewer_Viewer2d::addPopupItems( QPopupMenu* thePopup )
   }
 }
 
+/*!
+  Changes background color
+*/
 void GLViewer_Viewer2d::onChangeBgColor()
 {
   if( !getActiveView() )
@@ -99,6 +109,9 @@ void GLViewer_Viewer2d::onChangeBgColor()
   }
 }
 
+/*!
+  Updates colors for all drawers (does not work)
+*/
 void GLViewer_Viewer2d::updateColors( QColor colorH, QColor colorS )
 {
 //  cout << "GLViewer_Viewer2d::updateColors" << endl;
@@ -126,6 +139,10 @@ void GLViewer_Viewer2d::updateColors( QColor colorH, QColor colorS )
   activateAllDrawers( TRUE );
 }
 
+/*!
+  Updates rect of global scene by adding new rectangle
+  \param theRect - rectangle
+*/
 void GLViewer_Viewer2d::updateBorders( GLViewer_Rect* theRect )
 {
   QPtrVector<SUIT_ViewWindow> views = getViewManager()->getViews();
@@ -140,6 +157,9 @@ void GLViewer_Viewer2d::updateBorders( GLViewer_Rect* theRect )
   }
 }
 
+/*!
+  Recomputes global scene rect
+*/
 void GLViewer_Viewer2d::updateBorders()
 {
     QPtrVector<SUIT_ViewWindow> views = getViewManager()->getViews();
@@ -178,6 +198,9 @@ void GLViewer_Viewer2d::updateBorders()
     }
 }
 
+/*!
+  Redraws all active objects by updating all drawers in all views
+*/
 void GLViewer_Viewer2d::updateAll()
 {
   if ( !getActiveView() )
@@ -188,6 +211,9 @@ void GLViewer_Viewer2d::updateAll()
     ( ( GLViewer_ViewPort2d* )( ( GLViewer_ViewFrame* )views[i] )->getViewPort() )->getGLWidget()->updateGL();
 }
 
+/*!
+   \param onlyUpdate is passed to method activateAllDrawers drawers
+*/
 void GLViewer_Viewer2d::updateDrawers( GLboolean update, GLfloat scX, GLfloat scY )
 {
 //  cout << "GLViewer_Viewer2d::updateDrawers" << endl;
@@ -197,6 +223,9 @@ void GLViewer_Viewer2d::updateDrawers( GLboolean update, GLfloat scX, GLfloat sc
     activateAllDrawers( update );
 }
 
+/*!
+  Activates drawers for objects from list \param theObjects only
+*/
 void GLViewer_Viewer2d::activateDrawers( QValueList<GLViewer_Object*>& theObjects, bool onlyUpdate, GLboolean swap )
 {
     //cout << "GLViewer_Viewer2d::activateDrawers " << (int)onlyUpdate << " " << (int)swap << endl;
@@ -282,6 +311,9 @@ void GLViewer_Viewer2d::activateDrawers( QValueList<GLViewer_Object*>& theObject
     ( ( GLViewer_ViewPort2d* )getActiveView()->getViewPort() )->getGLWidget()->makeCurrent();
 }
 
+/*!
+  Activates drawer for \param theObject
+*/
 void GLViewer_Viewer2d::activateDrawer( GLViewer_Object* theObject, bool onlyUpdate, GLboolean swap )
 {
   ObjList aList;
@@ -289,6 +321,9 @@ void GLViewer_Viewer2d::activateDrawer( GLViewer_Object* theObject, bool onlyUpd
   activateDrawers( aList, onlyUpdate, swap );
 }
 
+/*!
+   \param onlyUpdate is passed to drawers
+*/
 void GLViewer_Viewer2d::activateAllDrawers( bool onlyUpdate, GLboolean swap )
 {
     if ( !getActiveView() )
@@ -306,6 +341,11 @@ void GLViewer_Viewer2d::activateAllDrawers( bool onlyUpdate, GLboolean swap )
     activateDrawers( anActiveObjs, onlyUpdate, swap );
 }
 
+/*!
+  Creates set of marker
+  \param theMarkersNum - number of markers 
+  \param theMarkersRad - radius of markers
+*/
 void GLViewer_Viewer2d::onCreateGLMarkers( int theMarkersNum, int theMarkersRad )
 {
     if ( !getActiveView() )
@@ -341,6 +381,12 @@ void GLViewer_Viewer2d::onCreateGLMarkers( int theMarkersNum, int theMarkersRad
     delete[] anYCoord;
 }
 
+/*!
+  Creates GL polyline
+  \param theAnglesNum - number of angles
+  \param theRadius - radius
+  \param thePolylineNumber - number
+*/
 void GLViewer_Viewer2d::onCreateGLPolyline( int theAnglesNum, int theRadius, int thePolylineNumber )
 {
     if ( !getActiveView() )
@@ -384,6 +430,11 @@ void GLViewer_Viewer2d::onCreateGLPolyline( int theAnglesNum, int theRadius, int
     delete[] anYCoord;
 }
 
+/*!
+  Creates text
+  \param theStr - text string
+  \param theTextNumber - number
+*/
 void GLViewer_Viewer2d::onCreateGLText( QString theStr, int theTextNumber )
 {
     if ( !getActiveView() )
@@ -414,6 +465,10 @@ void GLViewer_Viewer2d::onCreateGLText( QString theStr, int theTextNumber )
     activateAllDrawers( false );
 }
 
+/*!
+  Translates point from global CS to curreent viewer CS
+  \param x, y - co-ordinates to be translated
+*/
 void GLViewer_Viewer2d::transPoint( GLfloat& x, GLfloat& y )
 {
     if ( !getActiveView() )
@@ -442,6 +497,10 @@ void GLViewer_Viewer2d::transPoint( GLfloat& x, GLfloat& y )
     y -= yPan;
 }
 
+/*!
+  \return object rect in window CS
+  \param theObject - object
+*/
 QRect* GLViewer_Viewer2d::getWinObjectRect( GLViewer_Object* theObject )
 {
     if ( !getActiveView() )
@@ -497,6 +556,11 @@ QRect* GLViewer_Viewer2d::getWinObjectRect( GLViewer_Object* theObject )
     return newRect;
 }
 
+/*!
+  Translates rect in window CS to rect in global CS
+  \param theRect - rectangle to be translated
+  \return transformed rect
+*/
 GLViewer_Rect GLViewer_Viewer2d::getGLVRect( const QRect& theRect ) const
 {
   if ( !getActiveView() )
@@ -510,6 +574,11 @@ GLViewer_Rect GLViewer_Viewer2d::getGLVRect( const QRect& theRect ) const
   return vp->win2GLV( theRect );
 }
 
+/*!
+  Translates rect in global CS to rect in window CS
+  \param theRect - rectangle to be translated
+  \return transformed rect
+*/
 QRect GLViewer_Viewer2d::getQRect( const GLViewer_Rect& theRect ) const
 {
   if ( !getActiveView() )
@@ -523,87 +592,25 @@ QRect GLViewer_Viewer2d::getQRect( const GLViewer_Rect& theRect ) const
   return vp->GLV2win( theRect );
 }
 
+/*!
+  \return new selector
+*/
 GLViewer_Selector* GLViewer_Viewer2d::createSelector()
 {
   return new GLViewer_Selector2d( this, getGLContext() );
 }
 
+/*!
+  \return new Transformer 
+  \param type - type of new transformer
+*/
 GLViewer_ViewTransformer* GLViewer_Viewer2d::createTransformer( int type )
 {
     return new GLViewer_View2dTransformer( this, type );
 }
-/*
-GLViewer_Sketcher* GLViewer_Viewer2d::createGLSketcher( int type )
-{
-    return new GLViewer_Sketcher( this, type );
-}
 
-void GLViewer_Viewer2d::activateGLSketching( int type )
-{
-    GLViewer_ViewPort2d* vp = 0;
-    if ( !getActiveView() || !( vp = ( GLViewer_ViewPort2d* )getActiveView()->getViewPort() ) )
-        return;
-
-    // Finish current sketching
-    if ( type == None )
-    {
-        if ( myGLSketcher->getType() != None )
-        {
-            myGLSketcher->setType( None );
-            finishSketching();
-        }
-    }
-    // Activate new sketching
-    else
-    {
-        activateGLSketching( None );  // concurrency not supported
-        myGLSketcher->setType( type );
-        startSketching();
-    }
-}
-
-void GLViewer_Viewer2d::startSketching()
-{
-    GLViewer_ViewPort2d* avp = (GLViewer_ViewPort2d*)getActiveView()->getViewPort();
-    avp->setCursor( *avp->getSketchCursor() );
-    //avp->enablePopup( false );
-    myGLSketcher->startSketching();
-}
-
-void GLViewer_Viewer2d::finishSketching()
-{
-    GLViewer_ViewPort2d* avp = (GLViewer_ViewPort2d*)getActiveView()->getViewPort();
-    avp->setCursor( *avp->getDefaultCursor() );
-    //avp->enablePopup( true );
-    myGLSketcher->finishSketching();
-}
-
-bool GLViewer_Viewer2d::isSketchingActive()
-{
-    return myGLSketcher->getType() != None; 
-}
-
-int GLViewer_Viewer2d::getSketchingType()
-{
-    return myGLSketcher->getType();
-}
-
-void GLViewer_Viewer2d::onSketchDelObject()
-{
-    GLViewer_ViewPort2d* avp = (GLViewer_ViewPort2d*)getActiveView()->getViewPort();
-    avp->setCursor( *avp->getDefaultCursor() );    
-    myGLSketcher->finishSketching( true );
-}
-
-void GLViewer_Viewer2d::onSketchUndoLast()
-{
-
-}
-
-void GLViewer_Viewer2d::onSketchFinish()
-{
-    finishSketching();
-}
+/*!
+  Custom mouse event handler
 */
 void GLViewer_Viewer2d::onMouseEvent( SUIT_ViewWindow*, QMouseEvent* e )
 {
@@ -626,6 +633,9 @@ void GLViewer_Viewer2d::onMouseEvent( SUIT_ViewWindow*, QMouseEvent* e )
     GLViewer_Viewer::onMouseEvent( 0, e );
 }
 
+/*!
+  Rotation transformation
+*/
 bool GLViewer_Viewer2d::testRotation( QMouseEvent* e )
 {
     if ( ( e->button() == GLViewer_View2dTransformer::rotateButton() ) &&
@@ -638,7 +648,11 @@ bool GLViewer_Viewer2d::testRotation( QMouseEvent* e )
     return false;
 }
 
-
+/*!
+  Inserts text lines as header for file
+  \param aType - file type
+  \param hFile - file instance
+*/
 void GLViewer_Viewer2d::insertHeader( VectorFileType aType, QFile& hFile )
 {
     if( aType == POST_SCRIPT )
@@ -671,6 +685,11 @@ void GLViewer_Viewer2d::insertHeader( VectorFileType aType, QFile& hFile )
     }
 }
 
+/*!
+  Inserts text lines as ending for file
+  \param aType - file type
+  \param hFile - file instance
+*/
 void GLViewer_Viewer2d::insertEnding( VectorFileType aType, QFile& hFile )
 {
     if( aType == POST_SCRIPT )
@@ -698,6 +717,13 @@ inline void mm2custom( GLViewer_Viewer2d::VectorFileType aType, double& value )
 #endif 
 }
 
+/*!
+  Translates current view content to vector file
+  \param aType - type of file
+  \param FileName - name of file,
+  \param aPType - paper size type
+  \param mmLeft, mmRight, mmTop, mmBottom - margins
+*/
 bool GLViewer_Viewer2d::translateTo( VectorFileType aType, QString FileName, PaperType aPType, 
                                   double mmLeft, double mmRight, double mmTop, double mmBottom )
 {
@@ -821,7 +847,10 @@ bool GLViewer_Viewer2d::translateTo( VectorFileType aType, QString FileName, Pap
     return true;
 }
 
-
+/*!
+  Repaints view
+  \param theView - view to be repainted. If it is NULL then all views will be repainted
+*/
 void GLViewer_Viewer2d::repaintView( GLViewer_ViewFrame* theView, bool makeCurrent )
 {
     GLViewer_ViewFrame* aCurView;
@@ -897,6 +926,9 @@ void GLViewer_Viewer2d::repaintView( GLViewer_ViewFrame* theView, bool makeCurre
 //    ( ( GLViewer_ViewPort2d* )getActiveView()->getViewPort() )->getGLWidget()->makeCurrent();
 }
 
+/*!
+  Starts some operation on mouse event
+*/
 void GLViewer_Viewer2d::startOperations( QMouseEvent* e )
 {
     GLViewer_ViewPort2d* vp = ( GLViewer_ViewPort2d* )((GLViewer_ViewFrame*)getActiveView())->getViewPort();
@@ -913,6 +945,9 @@ void GLViewer_Viewer2d::startOperations( QMouseEvent* e )
         vp->startSelectByRect( e->x(), e->y() );
 }
 
+/*!
+  Updates started operation on mouse event
+*/
 bool GLViewer_Viewer2d::updateOperations( QMouseEvent* e )
 {
     GLViewer_ViewPort2d* vp = ( GLViewer_ViewPort2d* )((GLViewer_ViewFrame*)getActiveView())->getViewPort();
@@ -936,6 +971,9 @@ bool GLViewer_Viewer2d::updateOperations( QMouseEvent* e )
     return false;
 }
 
+/*!
+  Completes started operation on mouse event
+*/
 void GLViewer_Viewer2d::finishOperations( QMouseEvent* e )
 {
     GLViewer_ViewPort2d* vp = ( GLViewer_ViewPort2d* )((GLViewer_ViewFrame*)getActiveView())->getViewPort();
@@ -959,6 +997,9 @@ void GLViewer_Viewer2d::finishOperations( QMouseEvent* e )
     }
 }
 
+/*!
+  Starts some operation on mouse wheel event
+*/
 void GLViewer_Viewer2d::startOperations( QWheelEvent* e )
 {
     bool zoomIn = e->delta() > 0;
@@ -976,13 +1017,11 @@ void GLViewer_Viewer2d::startOperations( QWheelEvent* e )
 }
 
 
-/****************************************************************
-**  Class: GLViewer_View2dTransformer
-**
-*****************************************************************/
-
 int GLViewer_View2dTransformer::rotateBtn = RightButton;
 
+/*!
+  Constructor
+*/
 GLViewer_View2dTransformer::GLViewer_View2dTransformer( GLViewer_Viewer* viewer, int typ )
 : GLViewer_ViewTransformer( viewer, typ )
 {
@@ -990,6 +1029,9 @@ GLViewer_View2dTransformer::GLViewer_View2dTransformer( GLViewer_Viewer* viewer,
         initTransform( true );
 }
 
+/*!
+  Destructor
+*/
 GLViewer_View2dTransformer::~GLViewer_View2dTransformer()
 {
     if ( type() == GLViewer_Viewer::Rotate )
index 21840335fe29f0bdabb5ca5ccfa3120f07cdcc2a..3682633e190b1faa89a9525eea0ddb78f8d78c5d 100644 (file)
 // File:      GLViewer_Viewer2d.h
 // Created:   November, 2004
 
-/***************************************************************************
-**  Class:   GLViewer_Viewer2d
-**  Descr:   OpenGL Viewer 2D
-**  Module:  GLViewer
-**  Created: UI team, 04.09.04
-****************************************************************************/
 #ifndef GLVIEWER_VIEWER2D_H
 #define GLVIEWER_VIEWER2D_H
 
@@ -68,10 +62,11 @@ const double Sizes[2*5] = {
 #pragma warning( disable:4251 )
 #endif
 
-/*! 
- * Class GLViewer_Object
- * 2D viewer for GLViewer
- */
+/*!
+  \class GLViewer_Viewer2d
+  OpenGL Viewer 2D
+*/
+
 class GLVIEWER_API GLViewer_Viewer2d : public GLViewer_Viewer
 {
   Q_OBJECT
@@ -234,10 +229,6 @@ protected:
   //GLViewer_Sketcher*   myGLSketcher;
 };
 
-/****************************************************************
-**  Class: GLViewer_View2dTransformer
-**
-*****************************************************************/
 class GLVIEWER_API GLViewer_View2dTransformer : public GLViewer_ViewTransformer
 {
 public:
index b29a9fb5230e559be84dcc84eee62e7c6da2169d..616e57546bae805c019c230e7b9bc5db5bfbf432 100644 (file)
 // File:      GLViewer_Widget.cxx
 // Created:   November, 2004
 
-//================================================================
-// Class       : GLViewer_Widget
-// Description : OpenGL QWidget for GLViewer
-//================================================================
-
 #include "GLViewer_Widget.h"
 #include "GLViewer_ViewPort2d.h"
 #include "GLViewer_Viewer2d.h"
@@ -49,10 +44,10 @@ using namespace std;
 #include <qsize.h>
 #include <qtooltip.h>
 
-//=======================================================================
-// Function: GLViewer_Widget
-// Purpose :
-//=======================================================================
+/*!
+  A constructor
+  Parameters using for QOGLWidget as is 
+*/
 GLViewer_Widget::GLViewer_Widget( QWidget* parent, const char* name ):
 QGLWidget( parent, 0/*, WRepaintNoErase | WResizeNoErase*/ )
 {
@@ -78,18 +73,16 @@ QGLWidget( parent, 0/*, WRepaintNoErase | WResizeNoErase*/ )
   setMouseTracking( true );
 }
 
-//=======================================================================
-// Function: GLViewer_Widget
-// Purpose :
-//=======================================================================
+/*!
+  Destructor
+*/
 GLViewer_Widget::~GLViewer_Widget()
 {
 }
 
-//=======================================================================
-// Function: ~GLViewer_Widget
-// Purpose :
-//=======================================================================
+/*!
+  \return offset parameters of Window in OpenGL global scene
+*/
 void GLViewer_Widget::getPan( GLfloat& xPan, GLfloat& yPan, GLfloat& zPan )
 {
   xPan = myXPan;
@@ -97,10 +90,9 @@ void GLViewer_Widget::getPan( GLfloat& xPan, GLfloat& yPan, GLfloat& zPan )
   zPan = myZPan;
 }
 
-//=======================================================================
-// Function: setPan
-// Purpose :
-//=======================================================================
+/*!
+  A function for installing the  offset parameters of Window in OpenGL global scene
+*/
 void GLViewer_Widget::setPan( GLfloat xPan, GLfloat yPan, GLfloat zPan )
 {
   myXPan = xPan;
@@ -108,10 +100,9 @@ void GLViewer_Widget::setPan( GLfloat xPan, GLfloat yPan, GLfloat zPan )
   myZPan = zPan;
 }
 
-//=======================================================================
-// Function: getScale
-// Purpose :
-//=======================================================================
+/*!
+  \return scales on OpenGL scene along 3 directions in 2d scene zScale = 1.0
+*/
 void GLViewer_Widget::getScale( GLfloat& xScale, GLfloat& yScale, GLfloat& zScale )
 {
   xScale = myXScale;
@@ -119,10 +110,9 @@ void GLViewer_Widget::getScale( GLfloat& xScale, GLfloat& yScale, GLfloat& zScal
   zScale = myZScale;
 }
 
-//=======================================================================
-// Function: setScale
-// Purpose :
-//=======================================================================
+/*!
+  A function for installing the scales of OpenGL scene
+*/
 void GLViewer_Widget::setScale( GLfloat xScale, GLfloat yScale, GLfloat zScale )
 {
   if ( xScale > 0 && yScale > 0 && zScale > 0 )
@@ -133,10 +123,9 @@ void GLViewer_Widget::setScale( GLfloat xScale, GLfloat yScale, GLfloat zScale )
   }
 }
 
-//=======================================================================
-// Function: getRotationStart
-// Purpose :
-//=======================================================================
+/*!
+  \return start point of curren rotation of Window in OpenGL global scene
+*/
 void GLViewer_Widget::getRotationStart( GLfloat& rotationStartX,
                                        GLfloat& rotationStartY,
                                         GLfloat& rotationStartZ )
@@ -146,10 +135,9 @@ void GLViewer_Widget::getRotationStart( GLfloat& rotationStartX,
     rotationStartZ = myRotationStartZ;
 }
 
-//=======================================================================
-// Function: setRotationStart
-// Purpose :
-//=======================================================================
+/*!
+  A function for installing the rotation angle of Window in OpenGL global scene in degree (Only in 2D)
+*/
 void GLViewer_Widget::setRotationStart( GLfloat rotationStartX,
                                        GLfloat rotationStartY,
                                         GLfloat rotationStartZ )
@@ -159,10 +147,13 @@ void GLViewer_Widget::setRotationStart( GLfloat rotationStartX,
     myRotationStartZ = rotationStartZ;
 }
 
-//=======================================================================
-// Function: getRotation
-// Purpose :
-//=======================================================================
+/*!
+  \return parameters of rotation
+  \param rotationAngle - angle
+  \param rotationCenterX - center x
+  \param rotationCenterY - center y
+  \param rotationCenterZ - center z
+*/
 void GLViewer_Widget::getRotation( GLfloat& rotationAngle,
                                   GLfloat& rotationCenterX,
                                   GLfloat& rotationCenterY,
@@ -174,10 +165,13 @@ void GLViewer_Widget::getRotation( GLfloat& rotationAngle,
     rotationCenterZ = myRotationCenterZ;
 }
 
-//=======================================================================
-// Function: setRotation
-// Purpose :
-//=======================================================================
+/*!
+  Sets parameters of rotation
+  \param rotationAngle - angle
+  \param rotationCenterX - center x
+  \param rotationCenterY - center y
+  \param rotationCenterZ - center z
+*/
 void GLViewer_Widget::setRotation( GLfloat rotationAngle,
                                   GLfloat rotationCenterX,
                                   GLfloat rotationCenterY,
@@ -189,10 +183,11 @@ void GLViewer_Widget::setRotation( GLfloat rotationAngle,
     myRotationCenterZ = rotationCenterZ;
 }
 
-//=======================================================================
-// Function: setBackground
-// Purpose :
-//=======================================================================
+
+/*!
+  Sets image as background
+  \param filename - name of file
+*/
 void GLViewer_Widget::setBackground( QString filename )
 {
     
@@ -245,29 +240,28 @@ void GLViewer_Widget::setBackground( QString filename )
     }
 }
 
-//=======================================================================
-// Function: addToolTip
-// Purpose :
-//=======================================================================
+/*!
+  Adds tooltip
+  \param theString - tooltip text
+  \param theRect - tooltip rectangle
+*/
 void GLViewer_Widget::addToolTip( QString theString, QRect theRect )
 {
     myToolTipRect = theRect;
     QToolTip::add( this, myToolTipRect, theString );
 }
 
-//=======================================================================
-// Function: removeToolTip
-// Purpose :
-//=======================================================================
+/*!
+  Removes tooltip
+*/
 void GLViewer_Widget::removeToolTip()
 {
     QToolTip::remove( this, myToolTipRect );
 }
 
-//=======================================================================
-// Function: initializeGL
-// Purpose :
-//=======================================================================
+/*!
+  Initialization (redefined virtual from QGLWidget)
+*/
 void GLViewer_Widget::initializeGL()
 {
     setAutoBufferSwap( true );
@@ -289,10 +283,9 @@ void GLViewer_Widget::initializeGL()
         isLoadBackground = false;
 }
 
-//=======================================================================
-// Function: paintGL
-// Purpose :
-//=======================================================================
+/*!
+  Paints content
+*/
 void GLViewer_Widget::paintGL()
 {
     glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT);
@@ -335,10 +328,11 @@ void GLViewer_Widget::paintGL()
         v->repaintView( getViewPort()->getViewFrame() );
 }
 
-//=======================================================================
-// Function: resizeGL
-// Purpose :
-//=======================================================================
+/*!
+  Resets OpenGl parameters after resize
+  \param w - new width
+  \param h - new height
+*/
 void GLViewer_Widget::resizeGL( int w, int h )
 {
 
@@ -365,10 +359,9 @@ void GLViewer_Widget::resizeGL( int w, int h )
   glLoadIdentity(); 
 }
 
-//=======================================================================
-// Function: exportRepaint
-// Purpose :
-//=======================================================================
+/*!
+  Provides repaint in export mode
+*/
 void GLViewer_Widget::exportRepaint()
 {
     isExportMode = true;
@@ -378,65 +371,59 @@ void GLViewer_Widget::exportRepaint()
     isExportMode = false;
 }
 
-//=======================================================================
-// Function: paintEvent
-// Purpose :
-//=======================================================================
+/*!
+  Custom paint event handler
+*/
 void GLViewer_Widget::paintEvent( QPaintEvent* e )
 {
   QApplication::sendEvent( myViewPort, e );
 }
 
-//=======================================================================
-// Function: mouseMoveEvent
-// Purpose :
-//=======================================================================
+/*!
+  Custom mouse move event handler
+*/
 void GLViewer_Widget::mouseMoveEvent( QMouseEvent* e )
 {
   QApplication::sendEvent( myViewPort, e );
 }
 
-//=======================================================================
-// Function: mousePressEvent
-// Purpose :
-//=======================================================================
+/*!
+  Custom mouse press event handler
+*/
 void GLViewer_Widget::mousePressEvent( QMouseEvent* e )
 {
   QApplication::sendEvent( myViewPort, e );
 }
 
-//=======================================================================
-// Function: mouseReleaseEvent
-// Purpose :
-//=======================================================================
+/*!
+  Custom mouse release event handler
+*/
 void GLViewer_Widget::mouseReleaseEvent( QMouseEvent* e )
 {
   QApplication::sendEvent( myViewPort, e );
 }
 
-//=======================================================================
-// Function: enterEvent
-// Purpose :
-//=======================================================================
+/*!
+  Custom enter event handler
+*/
 void GLViewer_Widget::enterEvent( QEvent* e )
 {
   updateGL();
 }
 
-//=======================================================================
-// Function: leaveEvent
-// Purpose :
-//=======================================================================
+/*!
+  Custom leave event handler
+*/
 void GLViewer_Widget::leaveEvent( QEvent* e )
 {
   updateGL();
 }
 
 
-//=======================================================================
-//! Function: hex
-//! Purpose : Returns the hex code of digit < 16
-//=======================================================================
+/*!
+  \return the hex code of digit < 16
+  \param c - digit
+*/
 inline char hex( uchar c )
 {
   if( c<=9 )
@@ -447,11 +434,23 @@ inline char hex( uchar c )
   return ' ';
 }
 
-//=======================================================================
-//! Function: AddImagePart
-//! Purpose : Translates path of image to PS format
-/*! Image inside rectangle from w1 to w2 and from h2 to h1*/
-//=======================================================================
+/*!
+  Translates part of image inside rectangle from w1 to w2 and from h2 to h1 to PS format
+  \param hFile - PostScript file 
+  \param image - image to be tarnslated
+  \param w1 - x start position
+  \param w2 - x end position
+  \param h1 - y start position
+  \param h2 - y end position
+  \param aViewerCS - viewer co-ordinate system
+  \param aPSCS - paper co-ordinate system
+  \param a
+  \param b
+  \param c
+  \param d
+  \param dw
+  \param dh
+*/
 void AddImagePart( QFile& hFile, QImage& image, int w1, int w2, int h1, int h2, 
                    GLViewer_CoordSystem* aViewerCS, GLViewer_CoordSystem* aPSCS, 
                    double a, double b, double c, double d, double dw, double dh )
@@ -493,20 +492,21 @@ void AddImagePart( QFile& hFile, QImage& image, int w1, int w2, int h1, int h2,
   }
 }
 
-//=======================================================================
-// Function: getBackgroundRectInViewerCS
-// Purpose :
-//=======================================================================
+/*!
+  \return background rectangle in viewer CS
+*/
 void GLViewer_Widget::getBackgroundRectInViewerCS( double& left, double& top, double& right, double& bottom )
 {
   left = -myIW/2; right = myIW/2; 
   top = myIH/2; bottom = -myIH/2;
 }
 
-//=======================================================================
-// Function: translateBackgroundToPS
-// Purpose :
-//=======================================================================
+/*!
+  Translates background to PostScript
+  \param hFile - PostScript file 
+  \param aViewerCS - viewer co-ordinate system
+  \param aPSCS - paper co-ordinate system
+*/
 void GLViewer_Widget::translateBackgroundToPS( QFile& hFile, GLViewer_CoordSystem* aViewerCS, GLViewer_CoordSystem* aPSCS )
 {
     QImage buf; 
@@ -553,10 +553,9 @@ void GLViewer_Widget::translateBackgroundToPS( QFile& hFile, GLViewer_CoordSyste
     }
 }
 
-//=======================================================================
-//! Function: DecodeScanLine
-//! Purpose : Translate image line with one color depth to line wiht other depth
-//=======================================================================
+/*!
+  Translates image line with one color depth to line with other depth
+*/
 void DecodeScanLine( int width, uchar* dest, int dest_depth, uchar* source, int source_depth )
 {
 #ifndef WIN32
@@ -620,11 +619,13 @@ typedef unsigned int WORD;
     }
 }
 
-//=======================================================================
-// Function: translateBackgroundToEMF
-// Purpose :
-//=======================================================================
 #ifdef WIN32
+/*!
+  Translates background to EMF
+  \param dc - descriptor of EMF
+  \param aViewerCS - viewer co-ordinate system
+  \param aPSCS - paper co-ordinate system
+*/
 void GLViewer_Widget::translateBackgroundToEMF( HDC dc, GLViewer_CoordSystem* aViewerCS, GLViewer_CoordSystem* aEMFCS )
 {
     QImage buf; 
index c580a9a848e9713cbb1770998eac5fd2d9bade32..3236c186774de165c812620b9f248ef1436e3972 100644 (file)
@@ -22,9 +22,6 @@
 // File:      GLViewer_Widget.h
 // Created:   November, 2004
 
-/*! Class GLViewer_Widget
- *  Class for visualization OpenGL scene (widget) for GLViewer
- */
 #ifndef GLVIEWER_WIDGET_H
 #define GLVIEWER_WIDGET_H
 
 class GLViewer_ViewPort2d;
 class GLViewer_CoordSystem;
 
+/*!
+  \class GLViewer_Widget
+  Widget for visualization of OpenGL scene
+*/
 class GLVIEWER_API GLViewer_Widget : public QGLWidget
 {
   Q_OBJECT
index d921dd29453b57fb2c8bfff6c6f180c3655850ca..dac27c28a15bfc4dcc41b70d800114a25be39f64 100644 (file)
@@ -1,3 +1,21 @@
+#  Copyright (C) 2005  CEA/DEN, EDF R&D, OPEN CASCADE, PRINCIPIA R&D
+#
+#  This library is free software; you can redistribute it and/or
+#  modify it under the terms of the GNU Lesser General Public
+#  License as published by the Free Software Foundation; either
+#  version 2.1 of the License.
+#
+#  This library is distributed in the hope that it will be useful,
+#  but WITHOUT ANY WARRANTY; without even the implied warranty of
+#  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+#  Lesser General Public License for more details.
+#
+#  You should have received a copy of the GNU Lesser General Public
+#  License along with this library; if not, write to the Free Software
+#  Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307 USA
+#
+#  See http://www.salome-platform.org/
+#
 #  File   : Makefile.in
 #  Author : Vladimir Klyachin (OCN)
 #  Module : caf
@@ -98,6 +116,6 @@ CPPFLAGS+=$(QT_INCLUDES) $(OCC_INCLUDES)
 
 LDFLAGS+=$(QT_MT_LIBS) $(CAS_KERNEL)
 
-LIBS+= -L${GUI_ROOT_DIR}/lib/salome -lsuit -L/usr/X11R6/lib -lGLU
+LIBS+= -lsuit -L/usr/X11R6/lib@LIB_LOCATION_SUFFIX@ -lGLU
 
 @CONCLUDE@
index 32d5f88cbc9ccffd780c425b64e0aa51f95fe9c2..f4d048280f0d12ec04046c1cd0832e356125c1f3 100644 (file)
@@ -74,9 +74,6 @@ msgstr "Cannot save file"
 msgid "ERROR"
 msgstr "Error"
 
-msgid "BUT_OK"
-msgstr "Ok"
-
 msgid "CHANGE_BGCOLOR"
 msgstr "Change background..."
 
index c59cc938bd6e3d5f0915409c74fa71b5c3ff7bf4..8691515993b98e862a433445f5df711942f3ee2f 100644 (file)
 
 #include <QtxDialog.h>
 
-/*!
-  Descr: LightApp help about dialog
-*/
-
 class QLabel;
 
+/*!
+  \class LightApp_AboutDlg
+  LightApp help about dialog
+*/
 class LIGHTAPP_EXPORT LightApp_AboutDlg : public QtxDialog
 {
   Q_OBJECT
index 051b1c314cd741433f6e6d7c171c1c6a7e2af588..1c231df2a68624cefcafbbcd9e034b63b5934193 100644 (file)
   #include <VTKViewer_ViewModel.h>
 #endif
 
-#ifndef DISABLE_SUPERVGRAPHVIEWER
-  #include <SUPERVGraph_ViewModel.h>
-  #include <SUPERVGraph_ViewFrame.h>
-  #include <SUPERVGraph_ViewManager.h>
-#endif
+//#ifndef DISABLE_SUPERVGRAPHVIEWER
+//  #include <SUPERVGraph_ViewModel.h>
+//  #include <SUPERVGraph_ViewFrame.h>
+//  #include <SUPERVGraph_ViewManager.h>
+//#endif
 
 #include <QtxWorkstack.h>
 
 #include <qcombobox.h>
 #include <qinputdialog.h>
 #include <qmessagebox.h>
+#include <qfontdatabase.h>
 
 #define FIRST_HELP_ID 1000000
 
@@ -137,6 +138,9 @@ static const char* imageEmptyIcon[] = {
 
 int LightApp_Application::lastStudyId = 0;
 
+/*!
+  \return last global id of study
+*/
 int LightApp_Application::studyId()
 {
   return LightApp_Application::lastStudyId;
@@ -148,11 +152,12 @@ extern "C" LIGHTAPP_EXPORT SUIT_Application* createApplication()
   return new LightApp_Application();
 }
 
+/*! \var global preferences of LightApp */
 LightApp_Preferences* LightApp_Application::_prefs_ = 0;
 
-/*
-  Class       : LightApp_Application
-  Description : Application containing LightApp module
+/*!
+  \class LightApp_Application
+  Application containing LightApp module
 */
 
 /*!Constructor.*/
@@ -210,6 +215,30 @@ myPrefs( 0 )
 #endif
 
   connect( mySelMgr, SIGNAL( selectionChanged() ), this, SLOT( onSelection() ) );
+
+  // Set existing font for the python console in resources
+  if( !aResMgr->hasValue( "PyConsole", "font" ) )
+    return;
+  
+  QFont f = aResMgr->fontValue( "PyConsole", "font" );
+  QFontDatabase fdb;
+  QStringList famdb = fdb.families();
+  
+  if ( famdb.contains(f.family()) || !aResMgr->hasValue( "PyConsole", "additional_families" ) )
+    return;
+  
+  QStringList anAddFamilies = QStringList::split( ";", aResMgr->stringValue( "PyConsole", "additional_families" ) );
+  QString aFamily;
+  for ( QStringList::Iterator it = anAddFamilies.begin(); it != anAddFamilies.end(); ++it )
+    {
+      aFamily = *it;
+      if ( famdb.contains(aFamily) )
+       {
+         f.setFamily( aFamily );
+         aResMgr->setValue( "PyConsole", "font", f );
+         break;
+       }
+    }
 }
 
 /*!Destructor.
@@ -333,6 +362,10 @@ bool LightApp_Application::activateModule( const QString& modName )
   return true;
 }
 
+/*!
+  Opens other study into active Study. If Study is empty - creates it.
+  \param theName - name of study
+*/
 bool LightApp_Application::useStudy(const QString& theName)
 {
   createEmptyStudy();
@@ -479,7 +512,10 @@ void LightApp_Application::createActions()
   for ( it = modList.begin(); it != modList.end(); ++it )
   {
     if ( !isLibExists( *it ) )
+    {
+      qDebug( QString( "Library '%1' cannot be found" ).arg( *it ) );
       continue;
+    }
 
     QString iconName;
     if ( iconMap.contains( *it ) )
@@ -630,10 +666,9 @@ void LightApp_Application::onNewWindow()
     createViewManager( type );
 }
 
-//=======================================================================
-//  name    : onNewDoc
-/*! Purpose : SLOT. Create new document*/
-//=======================================================================
+/*!
+  SLOT: Creates new document
+*/
 void LightApp_Application::onNewDoc()
 {
   SUIT_Study* study = activeStudy();
@@ -649,10 +684,9 @@ void LightApp_Application::onNewDoc()
   }
 }
 
-//=======================================================================
-// name    : onOpenDoc
-/*! Purpose : SLOT. Open new document*/
-//=======================================================================
+/*!
+  SLOT: Opens new document
+*/
 void LightApp_Application::onOpenDoc()
 {
   SUIT_Study* study = activeStudy();
@@ -668,7 +702,11 @@ void LightApp_Application::onOpenDoc()
 }
 
 #include "SUIT_MessageBox.h"
-/*! Purpose : SLOT. Open new document with \a aName.*/
+
+/*!
+  SLOT: Opens new document.
+  \param aName - name of file
+*/
 bool LightApp_Application::onOpenDoc( const QString& aName )
 {
   bool isAlreadyOpen = false;
@@ -735,10 +773,9 @@ bool LightApp_Application::onOpenDoc( const QString& aName )
   return res;
 }
 
-//=======================================================================
-// name    : onHelpAbout
-/*! Purpose : SLOT. Display "About" message box*/
-//=======================================================================
+/*!
+  SLOT: Displays "About" message box
+*/
 void LightApp_Application::onHelpAbout()
 {
   LightApp_AboutDlg* dlg = new LightApp_AboutDlg( applicationName(), applicationVersion(), desktop() );
@@ -746,7 +783,10 @@ void LightApp_Application::onHelpAbout()
   delete dlg;
 }
 
-/*!SLOT. Load document with \a aName.*/
+/*!
+  SLOT: Loads document
+  \param aName - name of document
+*/
 bool LightApp_Application::onLoadDoc( const QString& aName )
 {
   bool res = CAM_Application::onLoadDoc( aName );
@@ -763,7 +803,10 @@ bool LightApp_Application::onLoadDoc( const QString& aName )
   return res;
 }
 
-/*!Private SLOT. Selection.*/
+/*!
+  Private SLOT: Called on selection is changed
+  Dispatchs active module that selection is changed
+*/
 void LightApp_Application::onSelection()
 {
   onSelectionChanged();
@@ -772,9 +815,10 @@ void LightApp_Application::onSelection()
     ((LightApp_Module*)activeModule())->selectionChanged();
 }
 
-/*!Set active study.
- *\param study - SUIT_Study.
- */
+/*!
+  Sets active study.
+ \param study - SUIT_Study.
+*/
 void LightApp_Application::setActiveStudy( SUIT_Study* study )
 {
   CAM_Application::setActiveStudy( study );
@@ -782,10 +826,9 @@ void LightApp_Application::setActiveStudy( SUIT_Study* study )
   activateWindows();
 }
 
-//=======================================================================
-// name    : updateCommandsStatus
-/*! Purpose : Enable/Disable menu items and toolbar buttons. Rebuild menu*/
-//=======================================================================
+/*!
+  Enables/Disables menu items and toolbar buttons. Rebuild menu
+*/
 void LightApp_Application::updateCommandsStatus()
 {
   CAM_Application::updateCommandsStatus();
@@ -816,18 +859,24 @@ void LightApp_Application::updateCommandsStatus()
 #endif
 }
 
-// Helps to execute command
+/*!
+  \class RunBrowser
+  Runs system command in separate thread
+*/
 class RunBrowser: public QThread {
 public:
 
-  RunBrowser(QString theApp, QString theParams, QString theHelpFile, QString theContext=NULL):
+  RunBrowser( LightApp_Application* app, QString theApp, QString theParams, QString theHelpFile, QString theContext=NULL):
     myApp(theApp), myParams(theParams), 
 #ifdef WIN32
       myHelpFile("file://" + theHelpFile + theContext), 
 #else
       myHelpFile("file:" + theHelpFile + theContext),
 #endif
-      myStatus(0) {};
+      myStatus(0),
+      myLApp( app )
+{
+};
 
   virtual void run()
   {
@@ -839,18 +888,12 @@ public:
        myStatus = system(aCommand);
        if(myStatus != 0)
          {
-           QCustomEvent* ce2000 = new QCustomEvent (2000);
-           postEvent (qApp, ce2000);
+           QCustomEvent* ce2000 = new QCustomEvent( 2000 );
+           QString* msg = new QString( QObject::tr("EXTERNAL_BROWSER_CANNOT_SHOW_PAGE").arg(myApp).arg(myHelpFile) );
+           ce2000->setData( msg );
+           postEvent( myLApp, ce2000 );
          }
       }
-      if( myStatus != 0)
-      {
-        qApp->lock();
-        SUIT_MessageBox::warn1(0, QObject::tr("WRN_WARNING"),
-                               QObject::tr("EXTERNAL_BROWSER_CANNOT_SHOW_PAGE").arg(myApp).arg(myHelpFile),
-                               QObject::tr("BUT_OK"));
-        qApp->unlock();
-      }
   }
 
 private:
@@ -858,13 +901,12 @@ private:
   QString myParams;
   QString myHelpFile;
   int myStatus;
-
+  LightApp_Application* myLApp;
 };
 
-//=======================================================================
-// name    : onHelpContentsModule
-/*! Purpose : SLOT. Display help contents for choosen module*/
-//=======================================================================
+/*!
+  SLOT: Displays help contents for choosen module
+*/
 void LightApp_Application::onHelpContentsModule()
 {
   const QAction* obj = (QAction*) sender();
@@ -881,26 +923,55 @@ void LightApp_Application::onHelpContentsModule()
   QString aParams = resMgr->stringValue("ExternalBrowser", "parameters");
 
   if (!anApp.isEmpty()) {
-    RunBrowser* rs = new RunBrowser(anApp, aParams, helpFile);
+    RunBrowser* rs = new RunBrowser( this, anApp, aParams, helpFile );
+    rs->start();
+  }
+  else {
+    if( SUIT_MessageBox::warn2(desktop(), tr("WRN_WARNING"),
+                           tr("DEFINE_EXTERNAL_BROWSER"),
+                           tr("BUT_OK"),tr("BUT_CANCEL"),0,1,0 )==0 )
+      onPreferences();
+  }
+}
+
+/*!
+  SLOT: Displays help contents for choosen dialog
+*/
+void LightApp_Application::onHelpContextModule(const QString& theComponentName, const QString& theFileName)
+{
+  QCString dir = getenv( theComponentName + "_ROOT_DIR");
+  QString homeDir = Qtx::addSlash(Qtx::addSlash(dir)+Qtx::addSlash("doc")+Qtx::addSlash("salome")+Qtx::addSlash("gui")+Qtx::addSlash(theComponentName));
+
+  QString helpFile = QFileInfo( homeDir + theFileName ).absFilePath();
+  SUIT_ResourceMgr* resMgr = resourceMgr();
+  QString anApp = resMgr->stringValue("ExternalBrowser", "application");
+  QString aParams = resMgr->stringValue("ExternalBrowser", "parameters");
+
+  if (!anApp.isEmpty()) {
+    RunBrowser* rs = new RunBrowser( this, anApp, aParams, helpFile );
     rs->start();
   }
   else {
-    SUIT_MessageBox::warn1(desktop(), tr("WRN_WARNING"),
+    if( SUIT_MessageBox::warn2(desktop(), tr("WRN_WARNING"),
                            tr("DEFINE_EXTERNAL_BROWSER"),
-                           tr("BUT_OK"));
+                           tr("BUT_OK"), tr("BUT_CANCEL"),0,1,0)==0 )
+      onPreferences();
   }
 }
 
-/*!Sets enable or disable some actions on selection changed.*/
+/*!
+  Sets enable or disable some actions on selection changed.
+*/
 void LightApp_Application::onSelectionChanged()
 {
 }
 
-/*!Return window.
- *\param flag - key for window
- *\param studyId - study id
- * Flag used how identificator of window in windows list.
- */
+/*!
+  \return window by key
+  \param flag - key for window
+  \param studyId - study id
+  Flag used how identificator of window in windows list.
+*/
 QWidget* LightApp_Application::window( const int flag, const int studyId ) const
 {
   QWidget* wid = 0;
@@ -920,12 +991,13 @@ QWidget* LightApp_Application::window( const int flag, const int studyId ) const
   return wid;
 }
 
-/*!Adds window to application.
- *\param wid - QWidget
- *\param flag - key wor window
- *\param studyId - study id
- * Flag used how identificator of window in windows list.
- */
+/*!
+  Adds window to application.
+  \param wid - QWidget
+  \param flag - key for window
+  \param studyId - study id
+  Flag used how identificator of window in windows list.
+*/
 void LightApp_Application::addWindow( QWidget* wid, const int flag, const int studyId )
 {
   if ( !wid )
@@ -947,6 +1019,8 @@ void LightApp_Application::addWindow( QWidget* wid, const int flag, const int st
 
     LightApp_WidgetContainer* newWC = new LightApp_WidgetContainer( flag, desktop() );
     connect( newWC, SIGNAL(  destroyed ( QObject* ) ), this, SLOT( onWCDestroyed( QObject* ) ) );
+    // asv: connecting a slot for storing visibility flag of a window 
+    connect( newWC, SIGNAL( visibilityChanged ( bool ) ), SLOT( onVisibilityChanged( bool ) ) );
     myWindows.insert( flag, newWC );
     if ( winMap.contains( flag ) )
       desktop()->moveDockWindow( myWindows[flag], (Dock)winMap[flag] );
@@ -965,10 +1039,10 @@ void LightApp_Application::addWindow( QWidget* wid, const int flag, const int st
     if( resourceMgr()->hasValue( "PyConsole", "font" ) )
       f = resourceMgr()->fontValue( "PyConsole", "font" );
     else
-    {
-      f = ( ( PythonConsole* )wid )->font();
-      resourceMgr()->setValue( "PyConsole", "font", f );
-    }
+      {
+       f = ( ( PythonConsole* )wid )->font();
+       resourceMgr()->setValue( "PyConsole", "font", f );
+      }
   }
   else
 #endif
@@ -980,11 +1054,12 @@ void LightApp_Application::addWindow( QWidget* wid, const int flag, const int st
   setWindowShown( flag, !myWindows[flag]->isEmpty() );
 }
 
-/*!Remove window from application.
- *\param flag - key wor window
- *\param studyId - study id
- * Flag used how identificator of window in windows list.
- */
+/*!
+  Removes window from application.
+  \param flag - key for window
+  \param studyId - study id
+  Flag used how identificator of window in windows list.
+*/
 void LightApp_Application::removeWindow( const int flag, const int studyId )
 {
   if ( !myWindows.contains( flag ) )
@@ -1006,11 +1081,12 @@ void LightApp_Application::removeWindow( const int flag, const int studyId )
   setWindowShown( flag, !myWindows[flag]->isEmpty() );
 }
 
-/*!Gets window.
- *\param flag - key wor window
- *\param studyId - study id
- * Flag used how identificator of window in windows list.
- */
+/*!
+  Gets window.
+  \param flag - key for window
+  \param studyId - study id
+  Flag used how identificator of window in windows list.
+*/
 QWidget* LightApp_Application::getWindow( const int flag, const int studyId )
 {
   QWidget* wid = window( flag, studyId );
@@ -1020,7 +1096,10 @@ QWidget* LightApp_Application::getWindow( const int flag, const int studyId )
   return wid;
 }
 
-/*!Check is window visible?(with identificator \a type)*/
+/*!
+  \return is window visible
+  \param type - flag of window
+*/
 bool LightApp_Application::isWindowVisible( const int type ) const
 {
   bool res = false;
@@ -1032,10 +1111,11 @@ bool LightApp_Application::isWindowVisible( const int type ) const
   return res;
 }
 
-/*!Sets window show or hide.
- *\param type - window identificator.
- *\param on   - true/false (window show/hide)
- */
+/*!
+  Sets window show or hide.
+  \param type - window identificator.
+  \param on   - true/false (window show/hide)
+*/
 void LightApp_Application::setWindowShown( const int type, const bool on )
 {
   if ( !desktop() || !myWindows.contains( type ) )
@@ -1043,10 +1123,18 @@ void LightApp_Application::setWindowShown( const int type, const bool on )
 
   QDockWindow* dw = myWindows[type];
   desktop()->setAppropriate( dw, on );
-  on ? dw->show() : dw->hide();
+  if( on )
+    dw->show();
+  else if( dw->isShown() )
+  {
+    dw->hide();
+    myWindowsVisible[ type ] = true;
+  }
 }
 
-/*!Gets "ObjectBrowser".*/
+/*!
+  \return Object Browser
+*/
 OB_Browser* LightApp_Application::objectBrowser()
 {
   OB_Browser* ob = 0;
@@ -1056,7 +1144,9 @@ OB_Browser* LightApp_Application::objectBrowser()
   return ob;
 }
 
-/*!Gets "LogWindow".*/
+/*!
+  \return Log Window
+*/
 LogWindow* LightApp_Application::logWindow()
 {
   LogWindow* lw = 0;
@@ -1067,7 +1157,9 @@ LogWindow* LightApp_Application::logWindow()
 }
 
 #ifndef DISABLE_PYCONSOLE
-/*!Get "PythonConsole"*/
+/*!
+  \return Python Console
+*/
 PythonConsole* LightApp_Application::pythonConsole()
 {
   PythonConsole* console = 0;
@@ -1078,12 +1170,19 @@ PythonConsole* LightApp_Application::pythonConsole()
 }
 #endif
 
-/*!Update obect browser*/
+/*!
+  Updates object browser and maybe data models
+  \param updateModels - if it is true, then data models are updated
+*/
 void LightApp_Application::updateObjectBrowser( const bool updateModels )
 {
   // update existing data models
   if ( updateModels ) 
   {
+    const bool isAutoUpdate = objectBrowser() ? objectBrowser()->isAutoUpdate() : true;
+    if( objectBrowser() )
+      objectBrowser()->setAutoUpdate( false );
+
     LightApp_Study* study = dynamic_cast<LightApp_Study*>(activeStudy());
     if ( study ) {
       CAM_Study::ModelList dm_list;
@@ -1094,6 +1193,9 @@ void LightApp_Application::updateObjectBrowser( const bool updateModels )
           ((LightApp_DataModel*)camDM)->update();
       }
     }
+
+    if( objectBrowser() )
+      objectBrowser()->setAutoUpdate( isAutoUpdate );
   }
   if ( objectBrowser() )
   {
@@ -1102,13 +1204,19 @@ void LightApp_Application::updateObjectBrowser( const bool updateModels )
   }
 }
 
-/*!Gets preferences.*/
+/*!
+  \return preferences
+*/
 LightApp_Preferences* LightApp_Application::preferences() const
 {
   return preferences( false );
 }
 
-/*!Gets view manager*/
+/*!
+  \return first view manager of some type
+  \param vmType - type of view manager
+  \param create - is it necessary to create view manager in case, when there is no manager of such type
+*/
 SUIT_ViewManager* LightApp_Application::getViewManager( const QString& vmType, const bool create )
 {
   SUIT_ViewManager* aVM = viewManager( vmType );
@@ -1130,7 +1238,10 @@ SUIT_ViewManager* LightApp_Application::getViewManager( const QString& vmType, c
   return aVM;
 }
 
-/*!Create view manager.*/
+/*!
+  Creates view manager of some type
+  \param vmType - type of view manager
+*/
 SUIT_ViewManager* LightApp_Application::createViewManager( const QString& vmType )
 {
   SUIT_ResourceMgr* resMgr = resourceMgr();
@@ -1162,16 +1273,12 @@ SUIT_ViewManager* LightApp_Application::createViewManager( const QString& vmType
     }
   }
 #endif
-#ifndef DISABLE_SUPERVGRAPHVIEWER
-  if( vmType == SUPERVGraph_Viewer::Type() )
-  {
-    viewMgr = new SUPERVGraph_ViewManager( activeStudy(), desktop() );
-    SUPERVGraph_Viewer* vm = new SUPERVGraph_Viewer();
-    SUPERVGraph_ViewFrame* view = dynamic_cast<SUPERVGraph_ViewFrame*>( vm->getViewManager()->getActiveView() );
-    if( view )
-      view->setBackgroundColor( resMgr->colorValue( "SUPERVGraph", "Background", view->backgroundColor() ) );
-  }
-#endif
+  //#ifndef DISABLE_SUPERVGRAPHVIEWER
+  //  if( vmType == SUPERVGraph_Viewer::Type() )
+  //  {
+  //    viewMgr = new SUPERVGraph_ViewManager( activeStudy(), desktop(), new SUPERVGraph_Viewer() );
+  //  }
+  //#endif
 #ifndef DISABLE_OCCVIEWER
   if( vmType == OCCViewer_Viewer::Type() )
   {
@@ -1228,22 +1335,21 @@ SUIT_ViewManager* LightApp_Application::createViewManager( const QString& vmType
   if ( viewWin && desktop() )
     viewWin->resize( (int)( desktop()->width() * 0.6 ), (int)( desktop()->height() * 0.6 ) );
 
-  connect( viewMgr, SIGNAL( lastViewClosed( SUIT_ViewManager* ) ),
-           this, SLOT( onCloseView( SUIT_ViewManager* ) ) );
-
   return viewMgr;
 }
 
-//=======================================================================
-// name    : onCloseView
-/*! Purpose : SLOT. Remove view manager from application*/
-//=======================================================================
+/*!
+  SLOT: Removes view manager from application
+*/
 void LightApp_Application::onCloseView( SUIT_ViewManager* theVM )
 {
   removeViewManager( theVM );
 }
 
-/*!Protected SLOT. On study created.*/
+/*!
+  Protected SLOT: On study created.
+  \param theStudy - just created study
+*/
 void LightApp_Application::onStudyCreated( SUIT_Study* theStudy )
 {
   SUIT_DataObject* aRoot = 0;
@@ -1261,7 +1367,10 @@ void LightApp_Application::onStudyCreated( SUIT_Study* theStudy )
   activateWindows();
 }
 
-/*!Protected SLOT. On study opened.*/
+/*!
+  Protected SLOT: On study opened.
+  \param theStudy - just opened  study
+*/
 void LightApp_Application::onStudyOpened( SUIT_Study* theStudy )
 {
   SUIT_DataObject* aRoot = 0;
@@ -1320,7 +1429,9 @@ QString LightApp_Application::getFileFilter() const
   return "(*.hdf)";
 }
 
-/*! Gets file name*/
+/*!
+  Shows file dialog and return user selected file name
+*/
 QString LightApp_Application::getFileName( bool open, const QString& initial, const QString& filters, 
                                            const QString& caption, QWidget* parent )
 {
@@ -1410,10 +1521,9 @@ void LightApp_Application::updateActions()
   updateCommandsStatus();
 }
 
-//=======================================================================
-// name    : createNewStudy
-/*! Purpose : Create new study*/
-//=======================================================================
+/*!
+  Creates new study
+*/
 SUIT_Study* LightApp_Application::createNewStudy()
 {
   LightApp_Application::lastStudyId++;
@@ -1429,7 +1539,10 @@ SUIT_Study* LightApp_Application::createNewStudy()
   return aStudy;
 }
 
-/*!Create window.*/
+/*!
+  Creates window by flag.
+  \param flag - identificator of window type
+*/
 QWidget* LightApp_Application::createWindow( const int flag )
 {
   QWidget* wid = 0;
@@ -1473,8 +1586,9 @@ QWidget* LightApp_Application::createWindow( const int flag )
   return wid;
 }
 
-/*!Default windows(Object Browser, Python Console).
- * Adds to map \a aMap.
+/*!
+  \return default windows( Object Browser, Python Console )
+  Adds to map \a aMap.
  */
 void LightApp_Application::defaultWindows( QMap<int, int>& aMap ) const
 {  
@@ -1485,15 +1599,16 @@ void LightApp_Application::defaultWindows( QMap<int, int>& aMap ) const
   //  aMap.insert( WT_LogWindow, Qt::DockBottom );
 }
 
-/*!Default view manager.*/
+/*!Default view managers*/
 void LightApp_Application::defaultViewManagers( QStringList& ) const
 {
   /*!Do nothing.*/
 }
 
-/*!Gets preferences.
- * Create preferences, if \a crt = true.
- */
+/*!
+  \return preferences.
+  Create preferences, if \a crt = true.
+*/
 LightApp_Preferences* LightApp_Application::preferences( const bool crt ) const
 {
   if ( myPrefs )
@@ -1550,7 +1665,9 @@ LightApp_Preferences* LightApp_Application::preferences( const bool crt ) const
   return myPrefs;
 }
 
-/*!Add new module to application.*/
+/*!
+  Adds new module to application
+*/
 void LightApp_Application::moduleAdded( CAM_Module* mod )
 {
   CAM_Application::moduleAdded( mod );
@@ -1567,7 +1684,9 @@ void LightApp_Application::moduleAdded( CAM_Module* mod )
   }
 }
 
-/*!Create preferences.*/
+/*!
+  Create preferences
+*/
 void LightApp_Application::createPreferences( LightApp_Preferences* pref )
 {
   if ( !pref )
@@ -1581,9 +1700,6 @@ void LightApp_Application::createPreferences( LightApp_Preferences* pref )
 
   pref->addPreference( tr( "PREF_MULTI_FILE" ), studyGroup, LightApp_Preferences::Bool, "Study", "multi_file" );
   pref->addPreference( tr( "PREF_ASCII_FILE" ), studyGroup, LightApp_Preferences::Bool, "Study", "ascii_file" );
-  int undoPref = pref->addPreference( tr( "PREF_UNDO_LEVEL" ), studyGroup, LightApp_Preferences::IntSpin, "Study", "undo_level" );
-  pref->setItemProperty( undoPref, "min", 1 );
-  pref->setItemProperty( undoPref, "max", 100 );
   pref->addPreference( tr( "PREF_STORE_POS" ), studyGroup, LightApp_Preferences::Bool, "Study", "store_positions" );
 
   int extgroup = pref->addPreference( tr( "PREF_GROUP_EXT_BROWSER" ), genTab );
@@ -1619,7 +1735,7 @@ void LightApp_Application::createPreferences( LightApp_Preferences* pref )
                       LightApp_Preferences::Color, "OCCViewer", "background" );
 
   pref->setItemProperty( occTS, "min", 1 );
-  pref->setItemProperty( occTS, "max", 150 );
+  pref->setItemProperty( occTS, "max", 1000 );
 
   int isoU = pref->addPreference( tr( "PREF_ISOS_U" ), occGroup,
                                  LightApp_Preferences::IntSpin, "OCCViewer", "iso_number_u" );
@@ -1726,7 +1842,11 @@ void LightApp_Application::createPreferences( LightApp_Preferences* pref )
                       "ObjectBrowser", "auto_size" );
 }
 
-/*!Changed preferences */
+/*!
+  Changes appearance of application according to changed preferences
+  \param sec - section
+  \param param - name of changed parameter
+*/
 void LightApp_Application::preferencesChanged( const QString& sec, const QString& param )
 {
   SUIT_ResourceMgr* resMgr = resourceMgr();
@@ -1805,6 +1925,10 @@ void LightApp_Application::preferencesChanged( const QString& sec, const QString
            autoSizeFirst = resMgr->booleanValue( "ObjectBrowser", "auto_size_first", true );
       ob->setWidthMode( autoSize ? QListView::Maximum : QListView::Manual );
       ob->listView()->setColumnWidthMode( 0, autoSizeFirst ? QListView::Maximum : QListView::Manual );
+      if( autoSize )
+       for( int i=1; i<ob->listView()->columns(); i++ )
+         if( ob->listView()->columnWidth( i )>0 )
+           ob->listView()->adjustColumn( i );
       updateObjectBrowser( false );
     }
   }
@@ -1825,7 +1949,9 @@ void LightApp_Application::preferencesChanged( const QString& sec, const QString
 #endif
 }
 
-/*!Save preferences */
+/*!
+  Saves preferences
+*/
 void LightApp_Application::savePreferences()
 {
   saveWindowsGeometry();
@@ -1838,7 +1964,9 @@ void LightApp_Application::savePreferences()
     }
 }
 
-/*!Update desktop title.*/
+/*!
+  Updates desktop title
+*/
 void LightApp_Application::updateDesktopTitle() {
   QString aTitle = applicationName();
   QString aVer = applicationVersion();
@@ -1853,7 +1981,9 @@ void LightApp_Application::updateDesktopTitle() {
   desktop()->setCaption( aTitle );
 }
 
-/*!Update windows after close document.*/
+/*!
+  Updates windows after close document
+*/
 void LightApp_Application::afterCloseDoc()
 {
   updateWindows();
@@ -1861,7 +1991,9 @@ void LightApp_Application::afterCloseDoc()
   CAM_Application::afterCloseDoc();
 }
 
-/*!Update module action.*/
+/*!
+  Updates actions of active module
+*/
 void LightApp_Application::updateModuleActions()
 {
   QString modName;
@@ -1872,9 +2004,10 @@ void LightApp_Application::updateModuleActions()
     myActions[modName]->setOn( true );
 }
 
-/*!Gets current windows.
- *\param winMap - output current windows map.
- */
+/*!
+  Gets current windows.
+  \param winMap - output current windows map.
+*/
 void LightApp_Application::currentWindows( QMap<int, int>& winMap ) const
 {
   winMap.clear();
@@ -1887,9 +2020,10 @@ void LightApp_Application::currentWindows( QMap<int, int>& winMap ) const
     defaultWindows( winMap );
 }
 
-/*!Gets current view managers.
- *\param lst - output current view managers list.
- */
+/*!
+  Gets current view managers.
+  \param lst - output current view managers list.
+*/
 void LightApp_Application::currentViewManagers( QStringList& lst ) const
 {
   lst.clear();
@@ -1902,7 +2036,9 @@ void LightApp_Application::currentViewManagers( QStringList& lst ) const
     defaultViewManagers( lst );
 }
 
-/*!Update windows.*/
+/*!
+  Updates windows
+*/
 void LightApp_Application::updateWindows()
 {
   QMap<int, int> winMap;
@@ -1917,11 +2053,19 @@ void LightApp_Application::updateWindows()
 
   // setWindowShown should be done even if no study is active (open). in this case all open windows
   // will be hidden, which is neccessary in this case.
-  for ( WindowMap::ConstIterator itr = myWindows.begin(); itr != myWindows.end(); ++itr )
+  for ( WindowMap::ConstIterator itr = myWindows.begin(); itr != myWindows.end(); ++itr ) {
+    
+    if ( myWindowsVisible.contains( itr.key() ) && 
+        !myWindowsVisible[ itr.key() ] )
+      continue;
+
     setWindowShown( itr.key(), !itr.data()->isEmpty() && winMap.contains( itr.key() ) );
+  }
 }
 
-/*!Update view managers.*/
+/*!
+  Updates view managers
+*/
 void LightApp_Application::updateViewManagers()
 {
   QStringList lst;
@@ -1931,7 +2075,9 @@ void LightApp_Application::updateViewManagers()
     getViewManager( *it, true );
 }
 
-/*!Load windows geometry.*/
+/*!
+  Loads windows geometry
+*/
 void LightApp_Application::loadWindowsGeometry()
 {
   bool store = resourceMgr()->booleanValue( "Study", "store_positions", true );
@@ -1959,7 +2105,9 @@ void LightApp_Application::loadWindowsGeometry()
   dockMgr->restoreGeometry();
 }
 
-/*!Save windows geometry.*/
+/*!
+  Saves windows geometry
+*/
 void LightApp_Application::saveWindowsGeometry()
 {
   bool store = resourceMgr()->booleanValue( "Study", "store_positions", true );
@@ -1987,7 +2135,9 @@ void LightApp_Application::saveWindowsGeometry()
   dockMgr->saveGeometry( resourceMgr(), section, false );
 }
 
-/*!Activate windows.*/
+/*!
+  Activates windows
+*/
 void LightApp_Application::activateWindows()
 {
   if ( activeStudy() )
@@ -1997,7 +2147,9 @@ void LightApp_Application::activateWindows()
   }
 }
 
-/*!Adds icon names for modules.*/
+/*!
+  Adds icon names for modules
+*/
 void LightApp_Application::moduleIconNames( QMap<QString, QString>& iconMap ) const
 {
   iconMap.clear();
@@ -2025,7 +2177,9 @@ void LightApp_Application::moduleIconNames( QMap<QString, QString>& iconMap ) co
   }
 }
 
-/*!Insert items in popup, which necessary for current application*/
+/*!
+  Inserts items in popup, which necessary for current application
+*/
 void LightApp_Application::contextMenuPopup( const QString& type, QPopupMenu* thePopup, QString& title )
 {
   CAM_Application::contextMenuPopup( type, thePopup, title );
@@ -2038,7 +2192,9 @@ void LightApp_Application::contextMenuPopup( const QString& type, QPopupMenu* th
   thePopup->insertItem( tr( "MEN_REFRESH" ), this, SLOT( onRefresh() ) );
 }
 
-/*!Create empty study.*/
+/*!
+  Create empty study
+*/
 void LightApp_Application::createEmptyStudy()
 {
   CAM_Application::createEmptyStudy();
@@ -2046,7 +2202,10 @@ void LightApp_Application::createEmptyStudy()
     objectBrowser()->updateTree();
 }
 
-/*!Activate module \a mod.*/
+/*!
+  Activates module
+  \param mod - module to be activated
+*/
 bool LightApp_Application::activateModule( CAM_Module* mod )
 {
   bool res = CAM_Application::activateModule( mod );
@@ -2055,13 +2214,17 @@ bool LightApp_Application::activateModule( CAM_Module* mod )
   return res;
 }
 
-/*!return keyborad accelerators manager object */
+/*!
+  \return keyborad accelerators manager object
+*/
 SUIT_Accel* LightApp_Application::accel() const
 {
   return myAccel;
 }
 
-/*! remove dead widget container from map */
+/*!
+  Removes dead widget container from map
+*/
 void LightApp_Application::onWCDestroyed( QObject* ob )
 {
   // remove destroyed widget container from windows map
@@ -2076,7 +2239,19 @@ void LightApp_Application::onWCDestroyed( QObject* ob )
   }
 }
 
-/*! redefined to remove view manager from memory */
+/*!
+  Connects just added view manager
+*/
+void LightApp_Application::addViewManager( SUIT_ViewManager* vm )
+{
+  connect( vm, SIGNAL( lastViewClosed( SUIT_ViewManager* ) ),
+           this, SLOT( onCloseView( SUIT_ViewManager* ) ) );
+  STD_Application::addViewManager( vm );
+}
+
+/*!
+  Remove view manager from memory
+*/
 void LightApp_Application::removeViewManager( SUIT_ViewManager* vm )
 {
   disconnect( vm, SIGNAL( lastViewClosed( SUIT_ViewManager* ) ),
@@ -2085,7 +2260,9 @@ void LightApp_Application::removeViewManager( SUIT_ViewManager* vm )
   delete vm;
 }
 
-/*! rename active window of desktop */
+/*!
+  Renames active window of desktop
+*/
 void LightApp_Application::onRenameWindow()
 {
   if( !desktop() )
@@ -2101,6 +2278,10 @@ void LightApp_Application::onRenameWindow()
     w->setCaption( name );
 }
 
+/*!
+  \return if the library of module exists
+  \param moduleTitle - title of module
+*/
 bool LightApp_Application::isLibExists( const QString& moduleTitle ) const
 {
   if( moduleTitle.isEmpty() )
@@ -2124,7 +2305,9 @@ bool LightApp_Application::isLibExists( const QString& moduleTitle ) const
   return false;
 }
 
-/*! default name for an active study */
+/*!
+  \return default name for an active study
+*/
 void LightApp_Application::setDefaultStudyName( const QString& theName )
 {
   QStringList anInfoList;
@@ -2138,3 +2321,36 @@ void LightApp_Application::setDefaultStudyName( const QString& theName )
     updateDesktopTitle();
   }
 }
+
+/*! slot, called on show/hide of a dock window */
+void LightApp_Application::onVisibilityChanged( bool visible )
+{
+  const QObject* win = sender();
+  for ( WindowMap::ConstIterator itr = myWindows.begin(); itr != myWindows.end(); ++itr )
+    if ( itr.data() == win ) 
+    {
+      myWindowsVisible[ itr.key() ] = visible;
+      return;
+    }
+}
+
+/*!
+  Custom event handler
+*/
+bool LightApp_Application::event( QEvent* e )
+{
+  if( e && e->type()==2000 )
+  {
+    QCustomEvent* ce = ( QCustomEvent* )e;
+    QString* d = ( QString* )ce->data();
+    if( SUIT_MessageBox::warn2(0, tr("WRN_WARNING"),
+                          d ? *d : "",
+                          tr("BUT_OK"), tr("BUT_CANCEL"), 0, 1, 0 )==0 )
+       onPreferences();
+    if( d )
+      delete d;
+    return true;
+  }
+  return CAM_Application::event( e );
+}
index c435188a4b185f3bc92f5b2c0cc97296884e744c..74725dc2a340a98fd4fa23904721d95867b6861b 100644 (file)
@@ -108,6 +108,7 @@ public:
   void                                updateActions();
 
   SUIT_ViewManager*                   getViewManager( const QString&, const bool );
+  virtual void                        addViewManager( SUIT_ViewManager* );
   virtual void                        removeViewManager( SUIT_ViewManager* );
   QWidget*                            getWindow( const int, const int = -1 );
   QWidget*                            window( const int, const int = -1 ) const;
@@ -129,6 +130,8 @@ public:
 
   static int                          studyId();
 
+  virtual bool                        event( QEvent* );
+
 signals:
   void                                studyOpened();
   void                                studySaved();
@@ -136,6 +139,7 @@ signals:
 
 public slots:
   virtual void                        onHelpContentsModule();
+  virtual void                        onHelpContextModule( const QString&, const QString& );
   virtual void                        onNewDoc();
   virtual void                        onOpenDoc();
   virtual void                        onHelpAbout();
@@ -189,6 +193,7 @@ private slots:
   void                                onMRUActivated( QString );
   void                                onPreferenceChanged( QString&, QString&, QString& );
   void                                onRenameWindow();
+  void                                onVisibilityChanged( bool );
 
 protected:
   void                                updateWindows();
@@ -212,12 +217,14 @@ protected:
 protected:
   typedef QMap<QString, QAction*>              ActionMap;
   typedef QMap<int, LightApp_WidgetContainer*> WindowMap;
+  typedef QMap<int, bool>                      WindowVisibilityMap;
 
 protected:
   LightApp_Preferences*               myPrefs;
   LightApp_SelectionMgr*              mySelMgr;
   ActionMap                           myActions;
   WindowMap                           myWindows;
+  WindowVisibilityMap                 myWindowsVisible;
 
   SUIT_Accel*                         myAccel;
 
index 6ccba618b63040647a3148a455a722642723cc78..6de670118bc3595a26d9ab3e5b0abb5e382596c4 100644 (file)
 #include "LightApp_DataModel.h"
 #include "LightApp_Study.h"
 #include "LightApp_RootObject.h"
+#include "LightApp_DataObject.h"
 #include "LightApp_Module.h"
 #include "LightApp_Application.h"
 
-#include <CAM_DataObject.h>
+#include <OB_Browser.h>
 
 #include <SUIT_Application.h>
 #include <SUIT_ResourceMgr.h>
 #include <SUIT_Session.h>
 #include <SUIT_DataObject.h>
 
-//=======================================================================
-// name    : LightApp_DataModel::LightApp_DataModel
-/*!Purpose : Constructor*/
-//=======================================================================
+/*!
+  Constructor
+*/
 LightApp_DataModel::LightApp_DataModel( CAM_Module* theModule )
 : CAM_DataModel( theModule )
 {
 }
 
-//=======================================================================
-// name    : LightApp_DataModel::~LightApp_DataModel
-/*! Purpose : Destructor*/
-//=======================================================================
+/*!
+  Destructor
+*/
 LightApp_DataModel::~LightApp_DataModel()
 {
 }
 
-//================================================================
-// Function : open
-/*! Purpose  : Emit opened()*/
-//================================================================
+/*!
+  Emit opened()
+*/
 bool LightApp_DataModel::open( const QString&, CAM_Study* study, QStringList )
 {
   emit opened(); //TODO: is it really needed? to be removed maybe...
   return true;
 }
 
-//================================================================
-// Function : save
-/*! Purpose  : Emit saved()*/
-//================================================================
+/*!
+  Emit saved()
+*/
 bool LightApp_DataModel::save( QStringList& )
 {
   emit saved();
   return true;
 }
 
-//================================================================
-// Function : saveAs
-/*! Purpose  : Emit saved()*/
-//================================================================
+/*!
+  Emit saved()
+*/
 bool LightApp_DataModel::saveAs( const QString&, CAM_Study*, QStringList& )
 {
   emit saved();
   return true;
 }
 
-//================================================================
-// Function : close
-/*! Purpose  : Emit closed()*/
-//================================================================
+/*!
+  Emit closed()
+*/
 bool LightApp_DataModel::close()
 {
   emit closed();
   return true;
 }
 
-//================================================================
-// Function : update
-/*! Purpose  : Update application (empty virtual function).*/
-//================================================================
-void LightApp_DataModel::update( LightApp_DataObject*, LightApp_Study* study )
+/*!
+  Build whole data model tree
+*/
+void LightApp_DataModel::build()
 {
 }
 
-//================================================================
-// Function : getModule
-/*! Purpose  : gets module*/
-//================================================================
+/*!
+  Updates data model presentation in some widgets (for example, in object browser
+*/
+void LightApp_DataModel::updateWidgets()
+{
+  LightApp_Application* app = dynamic_cast<LightApp_Application*>( module()->application() );
+  if( app )
+    app->objectBrowser()->updateTree( 0, false );
+}
+
+/*!
+  Default behaviour of data model update for light modules
+*/
+void LightApp_DataModel::update( LightApp_DataObject*, LightApp_Study* )
+{
+  LightApp_ModuleObject* modelRoot = dynamic_cast<LightApp_ModuleObject*>( root() );
+  DataObjectList ch;
+  if( modelRoot )
+  {
+    ch = modelRoot->children();
+    for ( DataObjectListIterator it( ch ); it.current(); ++it )
+      it.current()->setParent( 0 );
+  }
+  build();
+  updateWidgets();
+  for( DataObjectListIterator it( ch ); it.current(); ++it )
+    delete it.current();
+}
 
+/*!
+  \return corresponding module 
+*/
 LightApp_Module* LightApp_DataModel::getModule() const
 {
   return dynamic_cast<LightApp_Module*>( module() );
 }
 
-//================================================================
-// Function : getStudy
-/*! Purpose  : gets study */
-//================================================================
+/*!
+  \return corresponding  study
+*/
 LightApp_Study* LightApp_DataModel::getStudy() const
 {
   LightApp_RootObject* aRoot = dynamic_cast<LightApp_RootObject*>( root()->root() );
@@ -103,19 +123,17 @@ LightApp_Study* LightApp_DataModel::getStudy() const
   return aRoot->study();
 }
 
-//================================================================
-// Function : isModified
-/*! Purpose  : default implementation, always returns false so as not to mask study's isModified()*/
-//================================================================
+/*!
+  default implementation, always returns false so as not to mask study's isModified()
+*/
 bool LightApp_DataModel::isModified() const
 {
   return false;
 }
 
-//================================================================
-// Function : isSaved
-/*! Purpose  : default implementation, always returns true so as not to mask study's isSaved()*/
-//================================================================
+/*!
+  default implementation, always returns true so as not to mask study's isSaved()
+*/
 bool LightApp_DataModel::isSaved() const
 {
   return true;
index 7b1f92d6cbcee746f5a6ff73ecfecb0c0e1951d3..c0504a47333c94ef15381531eac03ceca9d2e12c 100644 (file)
@@ -47,7 +47,8 @@ signals:
 
 protected:
   LightApp_Study*                     getStudy() const;
-
+  virtual void                        build();
+  virtual void                        updateWidgets();
 };
 
 #endif 
index 831385908709ea9eb99aa8db86036be52e57fff7..f0e9de6a5d34631025faa87d5d28bfb17077fc7e 100644 (file)
@@ -73,10 +73,6 @@ bool LightApp_DataObject::Key::isEqual( const SUIT_DataObjectKey* other ) const
   return myEntry == that->myEntry;
 }
 
-/*
-       Class: LightApp_DataObject
-       Level: Public
-*/
 /*!Constructor. Initialize by \a parent*/
 LightApp_DataObject::LightApp_DataObject( SUIT_DataObject* parent )
 : CAM_DataObject( parent ), myCompObject( 0 ), myCompDataType( "" )
@@ -142,10 +138,7 @@ QString LightApp_DataObject::componentDataType() const
   return myCompDataType;
 }
 
-/*
-       Class: LightApp_ModuleObject
-       Level: Public
-*/
+
 
 /*!Constructor.Initialize by \a parent.*/
 LightApp_ModuleObject::LightApp_ModuleObject( SUIT_DataObject* parent )
index b77f62f01748c5ccbe5244234284086948a69c56..51d7510963991653d1423750dea857abc36e36c5 100644 (file)
 #include <qlineedit.h>
 #include <qlabel.h>
 
-/*
-  Class       : LightApp_Dialog
-  Description : Base class for all dialogs
+/*!
+  Constructor
 */
-
-//=======================================================================
-// name    : LightApp_Dialog
-// Purpose : Constructor
-//=======================================================================
 LightApp_Dialog::LightApp_Dialog( QWidget* parent, const char* name, bool modal,
                                   bool allowResize, const int f, WFlags wf )
 : QtxDialog( parent, name, modal, allowResize, f, wf ),
@@ -44,36 +38,33 @@ LightApp_Dialog::LightApp_Dialog( QWidget* parent, const char* name, bool modal,
   setObjectPixmap( "LightApp", tr( "ICON_SELECT" ) );
 }
 
-//=======================================================================
-// name    : ~LightApp_Dialog
-// Purpose : Destructor
-//=======================================================================
+/*!
+  Destructor
+*/
 LightApp_Dialog::~LightApp_Dialog()
 {
 }
 
-//=======================================================================
-// name    : show
-// Purpose : 
-//=======================================================================
+/*!
+  Show dialog
+*/
 void LightApp_Dialog::show()
 {
   QtxDialog::show();
 }
 
-//=======================================================================
-// name    : isExclusive
-// Purpose :
-//=======================================================================
+/*!
+  \return isExclusive status of selection buttons
+*/
 bool LightApp_Dialog::isExclusive() const
 {
   return myIsExclusive;
 }
 
-//=======================================================================
-// name    : updateButtons
-// Purpose :
-//=======================================================================
+/*!
+  Updates "on" state of buttons according to special button
+  \param _id - id of special button (if it is -1, then first selected button will be treated as special)
+*/
 void LightApp_Dialog::updateButtons( const int _id )
 {
   if( !myIsExclusive )
@@ -97,38 +88,39 @@ void LightApp_Dialog::updateButtons( const int _id )
   }
 }
 
-//=======================================================================
-// name    : setExclusive
-// Purpose :
-//=======================================================================
+/*!
+  Sets isExclusive status of selection buttons
+  \param ex - new value of isExclusive status
+*/
 void LightApp_Dialog::setExclusive( const bool ex )
 {
   myIsExclusive = ex;
   updateButtons();
 }
 
-//=======================================================================
-// name    : showObject
-// Purpose :
-//=======================================================================
+/*!
+  Shows object selection widget
+  \param id - identificator of object selection widget
+*/
 void LightApp_Dialog::showObject( const int id )
 {
   setObjectShown( id, true );
 }
 
-//=======================================================================
-// name    : hideObject
-// Purpose :
-//=======================================================================
+/*!
+  Hides object selection widget
+  \param id - identificator of object selection widget
+*/
 void LightApp_Dialog::hideObject( const int id )
 {
   setObjectShown( id, false );
 }
 
-//=======================================================================
-// name    : setObjectShown
-// Purpose :
-//=======================================================================
+/*!
+  Shows/hides object selection widget
+  \param id - identificator of object selection widget
+  \param shown - if it is true, widget will be shown
+*/
 void LightApp_Dialog::setObjectShown( const int id, const bool shown )
 {
   if( myObjects.contains( id ) && isObjectShown( id )!=shown )
@@ -142,19 +134,20 @@ void LightApp_Dialog::setObjectShown( const int id, const bool shown )
   }
 }
 
-//=======================================================================
-// name    : isObjectShown
-// Purpose :
-//=======================================================================
+/*!
+  \return isShown state of object selection widget
+  \param id - identificator of object selection widget
+*/
 bool LightApp_Dialog::isObjectShown( const int id ) const
 {
   return myObjects.contains( id ) && myObjects[ id ].myEdit->isShown();
 }
 
-//=======================================================================
-// name    : setObjectEnabled
-// Purpose :
-//=======================================================================
+/*!
+  Change enable state of object selection widget
+  \param id - identificator of object selection widget
+  \param en - new value of enable state
+*/
 void LightApp_Dialog::setObjectEnabled( const int id, const bool en )
 {
   if( myObjects.contains( id ) && isObjectEnabled( id )!=en )
@@ -168,19 +161,22 @@ void LightApp_Dialog::setObjectEnabled( const int id, const bool en )
   } 
 }
 
-//=======================================================================
-// name    : isObjectEnabled
-// Purpose :
-//=======================================================================
+/*!
+  \return enable state of object selection widget
+  \param id - identificator of object selection widget
+*/
 bool LightApp_Dialog::isObjectEnabled( const int id ) const
 {
   return myObjects.contains( id ) && myObjects[ id ].myEdit->isEnabled();
 }
 
-//=======================================================================
-// name    : selectObject
-// Purpose :
-//=======================================================================
+/*!
+  Passes to all active widgets name, type and id of selected object          
+  \param name - name of selected object
+  \param type - type of selected object
+  \param id - id of selected object
+  \param update - is need to update selection description string
+*/
 void LightApp_Dialog::selectObject( const QString& name, const int type, const QString& id, const bool update )
 {
   QStringList names;   names.append( name );
@@ -189,10 +185,13 @@ void LightApp_Dialog::selectObject( const QString& name, const int type, const Q
   selectObject( names, types, ids, update );
 }
 
-//=======================================================================
-// name    : selectObject
-// Purpose :
-//=======================================================================
+/*!
+  Passes to all active widgets names, types and ids of selected objects
+  \param _names - names of selected objects
+  \param _types - types of selected objects
+  \param _ids - ids of selected objects
+  \param update - is need to update selection description string
+*/
 void LightApp_Dialog::selectObject( const QStringList& _names,
                                      const TypesList& _types,
                                      const QStringList& _ids,
@@ -205,19 +204,19 @@ void LightApp_Dialog::selectObject( const QStringList& _names,
       selectObject( anIt.key(), _names, _types, _ids, update );
 }
 
-//=======================================================================
-// name    : hasSelection
-// Purpose :
-//=======================================================================
+/*!
+  \return true if widget has selection
+  \param id - identificator of object selection widget
+*/
 bool LightApp_Dialog::hasSelection( const int id ) const
 {
   return myObjects.contains( id ) && !myObjects[ id ].myIds.isEmpty();
 }
 
-//=======================================================================
-// name    : clearSelection
-// Purpose :
-//=======================================================================
+/*!
+  Clears selection of widget
+  \param id - identificator of object selection widget
+*/
 void LightApp_Dialog::clearSelection( const int id )
 {
   if( id==-1 )
@@ -239,10 +238,11 @@ void LightApp_Dialog::clearSelection( const int id )
   }
 }
 
-//=======================================================================
-// name    : objectWg
-// Purpose :
-//=======================================================================
+/*!
+  \return object selection widget 
+  \param theId - identificator of object selection widget
+  \param theWgId may be "Label", "Btn" or "Control"
+*/
 QWidget* LightApp_Dialog::objectWg( const int theId, const int theWgId ) const
 {
   QWidget* aResWg = 0;
@@ -258,39 +258,41 @@ QWidget* LightApp_Dialog::objectWg( const int theId, const int theWgId ) const
   return aResWg;
 }
 
-//=======================================================================
-// name    : objectText
-// Purpose :
-//=======================================================================
+/*!
+  \return object selection widget text
+  \param theId - identificator of object selection widget
+*/
 QString LightApp_Dialog::objectText( const int theId ) const
 {
   return myObjects.contains( theId ) ? myObjects[ theId ].myEdit->text() : "";
 }
 
-//=======================================================================
-// name    : setObjectText
-// Purpose :
-//=======================================================================
+/*!
+  Sets object selection widget text
+  \param theId - identificator of object selection widget
+  \param theText - new text
+*/
 void LightApp_Dialog::setObjectText( const int theId, const QString& theText )
 {
   if ( myObjects.contains( theId ) )
     myObjects[ theId ].myEdit->setText( theText );
 }
 
-//=======================================================================
-// name    : selectedObject
-// Purpose :
-//=======================================================================
+/*!
+  \return objects selected by widget
+  \param id - identificator of object selection widget
+  \param list - list to be filled by selected objects
+*/
 void LightApp_Dialog::selectedObject( const int id, QStringList& list ) const
 {
   if( myObjects.contains( id ) )
     list = myObjects[ id ].myIds;
 }
 
-//=======================================================================
-// name    : selectedObject
-// Purpose :
-//=======================================================================
+/*!
+  \return selected object id
+  \param id - identificator of object selection widget
+*/
 QString LightApp_Dialog::selectedObject( const int id ) const
 {
   if ( myObjects.contains( id ) && myObjects[ id ].myIds.count() > 0 )
@@ -299,10 +301,10 @@ QString LightApp_Dialog::selectedObject( const int id ) const
     return "";
 }
 
-//=======================================================================
-// name    : objectSelection
-// Purpose :
-//=======================================================================
+/*!
+  \return all selected objects
+  \param objs - map: widget id -> string id to be filled with selected objects
+*/
 void LightApp_Dialog::objectSelection( SelectedObjects& objs ) const
 {
   //objs.clear();
@@ -317,10 +319,13 @@ void LightApp_Dialog::objectSelection( SelectedObjects& objs ) const
   }
 }
 
-//=======================================================================
-// name    : createObject
-// Purpose :
-//=======================================================================
+/*!
+  Creates object selection widget
+  \return id
+  \label - label text
+  \parent - parent object
+  \id - proposed id for widget (if it is less than 0, the free id will be used)
+*/
 int LightApp_Dialog::createObject( const QString& label, QWidget* parent, const int id )
 {  
   int nid = id;
@@ -351,20 +356,22 @@ int LightApp_Dialog::createObject( const QString& label, QWidget* parent, const
   return nid;
 }
 
-//=======================================================================
-// name    : renameObject
-// Purpose :
-//=======================================================================
+/*!
+  Changes label of object selection widget
+  \param id - identificator of object selection widget
+  \param label - new text of label
+*/
 void LightApp_Dialog::renameObject( const int id, const QString& label )
 {
   if( myObjects.contains( id ) )
     myObjects[ id ].myLabel->setText( label );
 }
 
-//=======================================================================
-// name    : setObjectType
-// Purpose :
-//=======================================================================
+/*!
+  Sets possible types for widget
+  \param id - identificator of object selection widget
+  \param type1,... - type
+*/
 void LightApp_Dialog::setObjectType( const int id, const int type1, ... )
 {
   TypesList types;
@@ -379,10 +386,11 @@ void LightApp_Dialog::setObjectType( const int id, const int type1, ... )
   setObjectType( id, types );
 }
 
-//=======================================================================
-// name    : setObjectType
-// Purpose :
-//=======================================================================
+/*!
+  Sets possible types for widget
+  \param id - identificator of object selection widget
+  \param list - list of possible types
+*/
 void LightApp_Dialog::setObjectType( const int id, const TypesList& list )
 {
   if( !myObjects.contains( id ) )
@@ -406,10 +414,11 @@ void LightApp_Dialog::setObjectType( const int id, const TypesList& list )
   updateObject( id );
 }
 
-//=======================================================================
-// name    : addObjectType
-// Purpose :
-//=======================================================================
+/*!
+  Adds new possible types to object selection widget
+  \param id - identificator of object selection widget
+  \param type1, ... - new types
+*/
 void LightApp_Dialog::addObjectType( const int id, const int type1, const int, ... )
 {
   TypesList types; objectTypes( id, types );
@@ -424,20 +433,22 @@ void LightApp_Dialog::addObjectType( const int id, const int type1, const int, .
   setObjectType( id, types );  
 }
 
-//=======================================================================
-// name    : addObjectType
-// Purpose :
-//=======================================================================
+/*!
+  Adds new possible types to object selection widget
+  \param id - identificator of object selection widget
+  \param list - new types
+*/
 void LightApp_Dialog::addObjectType( const int id, const TypesList& list )
 {
   TypesList types = list; objectTypes( id, types );
   setObjectType( id, types );
 }
 
-//=======================================================================
-// name    : addObjectType
-// Purpose :
-//=======================================================================
+/*!
+  Adds new possible type to object selection widget
+  \param id - identificator of object selection widget
+  \param type - new type
+*/
 void LightApp_Dialog::addObjectType( const int id, const int type )
 {
   TypesList types; objectTypes( id, types );
@@ -445,20 +456,21 @@ void LightApp_Dialog::addObjectType( const int id, const int type )
   setObjectType( id, types );
 }
 
-//=======================================================================
-// name    : removeObjectType
-// Purpose :
-//=======================================================================
+/*!
+  Clears list of possibles types for object selection widget
+  \param id - identificator of object selection widget
+*/
 void LightApp_Dialog::removeObjectType( const int id )
 {
   TypesList types;
   setObjectType( id, types );
 }
 
-//=======================================================================
-// name    : removeObjectType
-// Purpose :
-//=======================================================================
+/*!
+  Removes types from list of possibles for object selection widget
+  \param id - identificator of object selection widget
+  \param list - list of types to be removed
+*/
 void LightApp_Dialog::removeObjectType( const int id, const TypesList& list )
 {
   if( !myObjects.contains( id ) )
@@ -485,20 +497,22 @@ void LightApp_Dialog::removeObjectType( const int id, const TypesList& list )
   updateObject( id );
 }
 
-//=======================================================================
-// name    : removeObjectType
-// Purpose :
-//=======================================================================
+/*!
+  Removes type from list of possibles for object selection widget
+  \param id - identificator of object selection widget
+  \param type - type to be removed
+*/
 void LightApp_Dialog::removeObjectType( const int id, const int type )
 {
   TypesList list; list.append( type );
   removeObjectType( id, list );
 }
 
-//=======================================================================
-// name    : hasObjectType
-// Purpose :
-//=======================================================================
+/*!
+  \return true if widget has such type
+  \param id - identificator of object selection widget
+  \param type - type to be checked
+*/
 bool LightApp_Dialog::hasObjectType( const int id, const int type ) const
 {
   if( myObjects.contains( id ) )
@@ -507,10 +521,11 @@ bool LightApp_Dialog::hasObjectType( const int id, const int type ) const
     return false;
 }
 
-//=======================================================================
-// name    : objectTypes
-// Purpose :
-//=======================================================================
+/*!
+  Returns list of possible types for widget
+  \param id - identificator of object selection widget
+  \param list - list to be filled with possible types
+*/
 void LightApp_Dialog::objectTypes( const int id, TypesList& list ) const
 {
   if( myObjects.contains( id ) )
@@ -522,10 +537,9 @@ void LightApp_Dialog::objectTypes( const int id, TypesList& list ) const
   }  
 }
 
-//=======================================================================
-// name    : onToggled
-// Purpose :
-//=======================================================================
+/*!
+  SLOT: called if selection button is clicked
+*/
 void LightApp_Dialog::onToggled( bool on )
 {
   QButton* but = ( QButton* )sender();
@@ -550,10 +564,11 @@ void LightApp_Dialog::onToggled( bool on )
       emit objectDeactivated( id );
 }
 
-//=======================================================================
-// name    : updateObject
-// Purpose :
-//=======================================================================
+/*!
+  Updates selection description of widget
+  \param id - identificator of object selection widget
+  \param emit_signal - if it is true, the signal "selection changed" is emitted
+*/
 void LightApp_Dialog::updateObject( const int id, bool emit_signal )
 {
   if( hasSelection( id ) )
@@ -566,10 +581,13 @@ void LightApp_Dialog::updateObject( const int id, bool emit_signal )
   }
 }
 
-//=======================================================================
-// name    : filterTypes
-// Purpose :
-//=======================================================================
+/*!
+  Finds in list possible types
+  \param id - identificator of object selection widget
+  \param names - list of selected objects names
+  \param types - list of selected objects types
+  \param ids - list of selected objects ids
+*/
 void LightApp_Dialog::filterTypes( const int id, QStringList& names, TypesList& types, QStringList& ids ) const
 {
   if( !myObjects.contains( id ) )
@@ -601,19 +619,18 @@ void LightApp_Dialog::filterTypes( const int id, QStringList& names, TypesList&
   ids = new_ids;
 }
 
-//=======================================================================
-// name    : resMgr
-// Purpose :
-//=======================================================================
+/*!
+  \return global resource manager
+*/
 SUIT_ResourceMgr* LightApp_Dialog::resMgr() const
 {
   return SUIT_Session::session()->resourceMgr();
 }
 
-//=======================================================================
-// name    : setObjectPixmap
-// Purpose :
-//=======================================================================
+/*!
+  Sets pixmap for all object selection button
+  \param p - image
+*/
 void LightApp_Dialog::setObjectPixmap( const QPixmap& p )
 {
   myPixmap = p;
@@ -623,10 +640,11 @@ void LightApp_Dialog::setObjectPixmap( const QPixmap& p )
     ( ( QToolButton* )anIt.data().myBtn )->setIconSet( p );
 }                        
 
-//=======================================================================
-// name    : setObjectPixmap
-// Purpose :
-//=======================================================================
+/*!
+  Sets pixmap all for object selection button
+  \param section - name of section of resource manager
+  \param file - name of file
+*/
 void LightApp_Dialog::setObjectPixmap( const QString& section, const QString& file )
 {
   SUIT_ResourceMgr* mgr = resMgr();
@@ -634,19 +652,19 @@ void LightApp_Dialog::setObjectPixmap( const QString& section, const QString& fi
     setObjectPixmap( mgr->loadPixmap( section, file ) );
 }
 
-//=======================================================================
-// name    : multipleSelection
-// Purpose :
-//=======================================================================
+/*!
+  \return true, if it is enable multiple selection
+  \param id - identificator of object selection widget
+*/
 bool LightApp_Dialog::multipleSelection( const int id ) const
 {
   return nameIndication( id )!=OneName;  
 }
 
-//=======================================================================
-// name    : nameIndication
-// Purpose :
-//=======================================================================
+/*!
+  \return type of name indication
+  \param id - identificator of object selection widget
+*/
 LightApp_Dialog::NameIndication LightApp_Dialog::nameIndication( const int id ) const
 {
   if( myObjects.contains( id ) )
@@ -655,10 +673,11 @@ LightApp_Dialog::NameIndication LightApp_Dialog::nameIndication( const int id )
     return OneNameOrCount;
 }
 
-//=======================================================================
-// name    : setNameIndication
-// Purpose :
-//=======================================================================
+/*!
+  Sets type of name indication
+  \param id - identificator of object selection widget
+  \param ni - new type of name indication
+*/
 void LightApp_Dialog::setNameIndication( const int id, const NameIndication ni )
 {
   if( id==-1 )
@@ -682,10 +701,12 @@ void LightApp_Dialog::setNameIndication( const int id, const NameIndication ni )
   }
 }
 
-//=======================================================================
-// name    : selectionDescription
-// Purpose :
-//=======================================================================
+/*!
+  \return string representation of selection by selection data
+  \param names - list of selected objects names
+  \param types - list of selected objects types
+  \param ni - type of name indication
+*/
 QString LightApp_Dialog::selectionDescription( const QStringList& names, const TypesList& types, const NameIndication ni ) const
 {
   if( names.count()!=types.count() )
@@ -718,10 +739,10 @@ QString LightApp_Dialog::selectionDescription( const QStringList& names, const T
   return QString::null;
 }
 
-//=======================================================================
-// name    : countOfTypes
-// Purpose :
-//=======================================================================
+/*!
+  \return string representation of count of types
+  \param types - list of types
+*/
 QString LightApp_Dialog::countOfTypes( const TypesList& types ) const
 {
   QMap<int, int> typesCount;
@@ -743,39 +764,38 @@ QString LightApp_Dialog::countOfTypes( const TypesList& types ) const
   return typeCount.join( ", " );
 }
 
-//=======================================================================
-// name    : typeName
-// Purpose :
-//=======================================================================
+/*!
+  \return reference to type name
+  \param type - integer id of type
+*/
 QString& LightApp_Dialog::typeName( const int type )
 {
   return myTypeNames[ type ];
 }
 
-//=======================================================================
-// name    : typeName
-// Purpose :
-//=======================================================================
+/*!
+  \return const reference to type name
+  \param type - integer id of type
+*/
 const QString& LightApp_Dialog::typeName( const int type ) const
 {
   return myTypeNames[ type ];
 }
 
 
-//=======================================================================
-// name    : activateObject
-// Purpose :
-//=======================================================================
+/*!
+  Activates object selection widget
+  \param id - identificator of object selection widget
+*/
 void LightApp_Dialog::activateObject( const int theId )
 {
   if ( myObjects.contains( theId ) && !myObjects[ theId ].myBtn->isOn() )
     myObjects[ theId ].myBtn->toggle();
 }
 
-//=======================================================================
-// name    : deactivateAll
-// Purpose :
-//=======================================================================
+/*!
+  Deactivates all object selection widgets
+*/
 void LightApp_Dialog::deactivateAll()
 {
   ObjectMap::iterator anIt = myObjects.begin(),
@@ -787,10 +807,14 @@ void LightApp_Dialog::deactivateAll()
   }
 }
 
-//=======================================================================
-// name    : selectObject
-// Purpose :
-//=======================================================================
+/*!
+  Passes to widget name, type and id of selected object
+  \param id - identificator of object selection widget
+  \param name - name of selected object
+  \param type - type of selected object
+  \param selid - id of selected object
+  \param update - is need to update selection description string
+*/
 void LightApp_Dialog::selectObject( const int id, const QString& name, const int type, const QString& selid, const bool update )
 {
   QStringList names;   names.append( name );
@@ -799,10 +823,14 @@ void LightApp_Dialog::selectObject( const int id, const QString& name, const int
   selectObject( id, names, types, ids, update );
 }
 
-//=======================================================================
-// name    : selectObject
-// Purpose :
-//=======================================================================
+/*!
+  Passes to widget names, types and ids of selected objects
+  \param id - identificator of object selection widget
+  \param _names - names of selected object
+  \param _types - types of selected object
+  \param _ids - ids of selected object
+  \param update - is need to update selection description string
+*/
 void LightApp_Dialog::selectObject( const int id, const QStringList& _names, const TypesList& _types,
                                      const QStringList& _ids, const bool update )
 {
@@ -824,20 +852,21 @@ void LightApp_Dialog::selectObject( const int id, const QStringList& _names, con
   emit selectionChanged( id );
 }
 
-//=======================================================================
-// name    : setReadOnly
-// Purpose :
-//=======================================================================
+/*!
+  Sets read only state of object selection line edit
+  \param id - identificator of object selection widget
+  \param ro - new read only state
+*/
 void LightApp_Dialog::setReadOnly( const int id, const bool ro )
 {
   if( myObjects.contains( id ) )
     myObjects[ id ].myEdit->setReadOnly( nameIndication( id )==ListOfNames || nameIndication( id )==OneName ? ro : true );
 }
 
-//=======================================================================
-// name    : isReadOnly
-// Purpose :
-//=======================================================================
+/*!
+  \return read only state of object selection line edit
+  \param id - identificator of object selection widget
+*/
 bool LightApp_Dialog::isReadOnly( const int id ) const
 {
   if( myObjects.contains( id ) )
@@ -845,11 +874,10 @@ bool LightApp_Dialog::isReadOnly( const int id ) const
   else
     return true;
 }
-  
-//=======================================================================
-// name    : onTextChanged
-// Purpose :
-//=======================================================================
+
+/*!
+  SLOT: called if text of object selection line edit is changed
+*/
 void LightApp_Dialog::onTextChanged( const QString& text )
 {
   if( myIsBusy )
index 12fd5015454bcb61d649b538c5cf164f8a25cd22..51acdc5d072505ab3743d484774a9f74996f2ba3 100644 (file)
@@ -35,9 +35,13 @@ class QLabel;
 
 class SUIT_ResourceMgr;
 
-/*
-  Class       : LightApp_Dialog
-  Description : Base class for all LightApp dialogs
+/*!
+  \class LightApp_Dialog
+  Base class for all LightApp dialogs.
+  Provides standard widget for object selection: line edit, button;
+  it is necessary to call corresponding methods on selection change.
+  Standard dialog provides filtering, selection string representation,
+  possibility to indicate necessary selection by text with list of ids.
 */
 class LIGHTAPP_EXPORT LightApp_Dialog : public QtxDialog
 {
index f06c8c10b16fa0b1df29c11da46c25d7ce82f545..49a792dc0162b0cc3bf2a686590e5136b6c485b9 100644 (file)
   #include "SALOME_InteractiveObject.hxx"
 #endif
 
+/*!
+  Default constructor
+*/
 LightApp_Displayer::LightApp_Displayer()
 {
 }
 
+/*!
+  Destructor
+*/
 LightApp_Displayer::~LightApp_Displayer()
 {
 }
 
+/*!
+  Displays object in view
+  \param entry - object entry
+  \param updateViewer - is it necessary to update viewer
+  \param theViewFrame - view
+*/
 void LightApp_Displayer::Display( const QString& entry, const bool updateViewer, SALOME_View* theViewFrame )
 {
   SALOME_View* vf = theViewFrame ? theViewFrame : GetActiveView();
@@ -63,6 +75,11 @@ void LightApp_Displayer::Display( const QString& entry, const bool updateViewer,
   }
 }
 
+/*!
+  Redisplays object in view
+  \param entry - object entry
+  \param updateViewer - is it necessary to update viewer
+*/
 void LightApp_Displayer::Redisplay( const QString& entry, const bool updateViewer )
 {
   // Remove the object permanently (<forced> == true)
@@ -93,6 +110,13 @@ void LightApp_Displayer::Redisplay( const QString& entry, const bool updateViewe
   }
 }
 
+/*!
+  Erases object in view
+  \param entry - object entry
+  \param forced - deletes object from viewer (otherwise it will be erased, but cached)
+  \param updateViewer - is it necessary to update viewer
+  \param theViewFrame - view
+*/
 void LightApp_Displayer::Erase( const QString& entry, const bool forced,
                                 const bool updateViewer, SALOME_View* theViewFrame )
 {
@@ -109,6 +133,12 @@ void LightApp_Displayer::Erase( const QString& entry, const bool forced,
   }
 }
 
+/*!
+  Erases all objects in view
+  \param forced - deletes objects from viewer
+  \param updateViewer - is it necessary to update viewer
+  \param theViewFrame - view
+*/
 void LightApp_Displayer::EraseAll( const bool forced, const bool updateViewer, SALOME_View* theViewFrame ) const
 {
   SALOME_View* vf = theViewFrame ? theViewFrame : GetActiveView();
@@ -120,6 +150,11 @@ void LightApp_Displayer::EraseAll( const bool forced, const bool updateViewer, S
   }
 }
 
+/*!
+  \return true if object is displayed in viewer
+  \param entry - object entry
+  \param theViewFrame - view
+*/
 bool LightApp_Displayer::IsDisplayed( const QString& entry, SALOME_View* theViewFrame ) const
 {
   SALOME_View* vf = theViewFrame ? theViewFrame : GetActiveView();
@@ -135,6 +170,9 @@ bool LightApp_Displayer::IsDisplayed( const QString& entry, SALOME_View* theView
   return res;
 }
 
+/*!
+  Updates active view
+*/
 void LightApp_Displayer::UpdateViewer() const
 {
   SALOME_View* vf = GetActiveView();
@@ -142,6 +180,12 @@ void LightApp_Displayer::UpdateViewer() const
     vf->Repaint();
 }
 
+/*!
+  \return presentation of object, built with help of CreatePrs method
+  \param entry - object entry
+  \param theViewFrame - view
+  \sa CreatePrs()
+*/
 SALOME_Prs* LightApp_Displayer::buildPresentation( const QString& entry, SALOME_View* theViewFrame )
 {
   SALOME_Prs* prs = 0;
@@ -154,6 +198,9 @@ SALOME_Prs* LightApp_Displayer::buildPresentation( const QString& entry, SALOME_
   return prs;
 }
 
+/*!
+  \return active view
+*/
 SALOME_View* LightApp_Displayer::GetActiveView()
 {
   SUIT_Session* session = SUIT_Session::session();
@@ -168,11 +215,20 @@ SALOME_View* LightApp_Displayer::GetActiveView()
   return 0;
 }
 
-bool LightApp_Displayer::canBeDisplayed( const QString&, const QString& ) const
+/*!
+  \return true, if object can be displayed in this type of viewer
+  \param entry - object entry
+  \param viewer_type - type of viewer
+*/
+bool LightApp_Displayer::canBeDisplayed( const QString& /*entry*/, const QString& /*viewer_type*/ ) const
 {
   return true;
 }
 
+/*!
+  \return true, if object can be displayed in any type of viewer
+  \param entry - object entry
+*/
 bool LightApp_Displayer::canBeDisplayed( const QString& entry ) const
 {
   QString viewerType;
@@ -185,6 +241,11 @@ bool LightApp_Displayer::canBeDisplayed( const QString& entry ) const
   return !viewerType.isNull() && canBeDisplayed( entry, viewerType );
 }
 
+/*!
+  \return displayer, corresponding to module
+  \param mod_name - name of module
+  \param load - is module has to be forced loaded
+*/
 LightApp_Displayer* LightApp_Displayer::FindDisplayer( const QString& mod_name, const bool load )
 {
   SUIT_Session* session = SUIT_Session::session();
index f0896eb8f180d3440a4f26b8a5b5292f2128f29f..cc1eb89d191ebe5e2cfa719e9e469661fef6804b 100644 (file)
 
 class QString;
 
+/*!
+  \class LightApp_Displayer
+  Uniform mechanism of display/erase of objects in different views.
+  Objects are specified by string entry
+*/
 class LightApp_Displayer : public SALOME_Displayer
 {
 public:
index 122890390b9f88c84a8a79bdb4f69d9bf04d7a21..087f39168574dbeb7c21bd2af02ee8b0959af05d 100644 (file)
@@ -49,10 +49,9 @@ LightApp_Driver::~LightApp_Driver()
 
 using namespace std;
 
-//================================================================
-// Function : SaveDatasInFile
-/*! Purpose  : save in file 'theFileName' datas from this driver*/
-//================================================================
+/*!
+  Save in file 'theFileName' datas from this driver
+*/
 bool LightApp_Driver::SaveDatasInFile( const char* theFileName, bool isMultiFile )
 {
   int aNbModules = 0;
@@ -133,10 +132,9 @@ bool LightApp_Driver::SaveDatasInFile( const char* theFileName, bool isMultiFile
   return true;
 }
 
-//=======================================================================
-// name    : ReaDatasFromFile
-/*! Purpose : filling current driver from file 'theFileName'*/
-//=======================================================================
+/*!
+  Filling current driver from file 'theFileName'
+*/
 bool LightApp_Driver::ReadDatasFromFile( const char* theFileName, bool isMultiFile )
 {
 #ifdef WNT
@@ -193,10 +191,9 @@ bool LightApp_Driver::ReadDatasFromFile( const char* theFileName, bool isMultiFi
   return true;
 }
 
-//================================================================
-// Function : GetTmpDir
-/*! Purpose  : returns temp directory for path 'theURL'*/
-//================================================================
+/*!
+  \return temp directory for path 'theURL'
+*/
 std::string LightApp_Driver::GetTmpDir (const char* theURL, const bool  isMultiFile)
 {
   std::string anURLDir = GetDirFromPath(theURL);
@@ -205,10 +202,9 @@ std::string LightApp_Driver::GetTmpDir (const char* theURL, const bool  isMultiF
   return aTmpDir;
 }
 
-//================================================================
-// Function : GetListOfFiles
-/*! Purpose  : returns list of files for module with name 'theModuleName'*/
-//================================================================
+/*!
+  \return list of files for module with name 'theModuleName'
+*/
 LightApp_Driver::ListOfFiles LightApp_Driver::GetListOfFiles( const char* theModuleName )
 {
   ListOfFiles aListOfFiles;
@@ -220,20 +216,18 @@ LightApp_Driver::ListOfFiles LightApp_Driver::GetListOfFiles( const char* theMod
     return aListOfFiles;
 }
 
-//================================================================
-// Function : SetListOfFiles
-/*! Purpose  : sets list of files for module with name 'theModuleName'*/
-//================================================================
+/*!
+  Sets list of files for module with name 'theModuleName'
+*/
 void LightApp_Driver::SetListOfFiles( const char* theModuleName, const ListOfFiles theListOfFiles )
 {
   std::string aName (theModuleName);
   myMap[aName] = theListOfFiles;
 }
 
-//============================================================================
-// function : PutFilesToStream
-/*! Purpose  : converts files which was created from module <theModuleName> into a byte sequence unsigned char*/
-//============================================================================
+/*!
+  Converts files which was created from module <theModuleName> into a byte sequence unsigned char
+*/
 void LightApp_Driver::PutFilesToStream( const std::string& theModuleName, unsigned char*& theBuffer,
                                         long& theBufferSize, bool theNamesOnly )
 {
@@ -342,10 +336,9 @@ void LightApp_Driver::PutFilesToStream( const std::string& theModuleName, unsign
   theBufferSize = aBufferSize;
 }
 
-//============================================================================
-// function : PutStreamToFile
-/*! Purpose  : converts a byte sequence <theBuffer> to files and return list of them*/
-//============================================================================
+/*!
+  Converts a byte sequence <theBuffer> to files and return list of them
+*/
 LightApp_Driver::ListOfFiles LightApp_Driver::PutStreamToFiles( const unsigned char* theBuffer,
                                                                 const long theBufferSize, bool theNamesOnly )
 {
@@ -406,13 +399,11 @@ LightApp_Driver::ListOfFiles LightApp_Driver::PutStreamToFiles( const unsigned c
   return aFiles;
 }
 
-//============================================================================
-// function : RemoveFiles
-/*! Purpose  : Remove files. First item in <theFiles> is a directory with slash at the end.
-               Other items are names of files. If <IsDirDeleted> is true,
-              then the directory is also deleted.
+/*!
+  Remove files. First item in <theFiles> is a directory with slash at the end.
+  Other items are names of files. If <IsDirDeleted> is true,
+  then the directory is also deleted.
 */
-//============================================================================
 void LightApp_Driver::RemoveFiles( const ListOfFiles& theFiles, const bool IsDirDeleted)
 {
   int i, aLength = theFiles.size() - 1;
@@ -449,11 +440,10 @@ void LightApp_Driver::RemoveFiles( const ListOfFiles& theFiles, const bool IsDir
   }
 }
 
-//============================================================================
-// function : RemoveTemporaryFiles
-/*! Purpose  : removes files which was created from module theModuleName if 
-               <IsDirDeleted> is true tmp directory is also deleted if it is empty*/
-//============================================================================
+/*!
+  Removes files which was created from module theModuleName if 
+  <IsDirDeleted> is true tmp directory is also deleted if it is empty
+*/
 void LightApp_Driver::RemoveTemporaryFiles( const char* theModuleName, const bool IsDirDeleted )
 {
   std::string aModuleName(theModuleName);
@@ -464,10 +454,9 @@ void LightApp_Driver::RemoveTemporaryFiles( const char* theModuleName, const boo
 
 }
 
-//============================================================================
-// function : ClearDriverContents
-/*! Purpose  : clear map of list files*/ 
-//============================================================================ 
+/*!
+  Clears map of list files
+*/ 
 void LightApp_Driver::ClearDriverContents()
 {
   std::map<std::string, ListOfFiles>::iterator it;
@@ -483,10 +472,9 @@ void LightApp_Driver::ClearDriverContents()
   SetIsTemporary( false );
 }
 
-//============================================================================
-// function : GetTempDir
-/*! Purpose  : return a temp directory to store created files like "/tmp/sub_dir/" */
-//============================================================================ 
+/*!
+  \return a temp directory to store created files like "/tmp/sub_dir/"
+*/
 std::string LightApp_Driver::GetTmpDir()
 {
   if ( myTmpDir.length() != 0 )
@@ -553,10 +541,9 @@ std::string LightApp_Driver::GetTmpDir()
   return aTmpDir.ToCString();
 }
 
-//============================================================================
-// function : GetDirFromPath
-/*! Purpose  : returns the dir by the path*/
-//============================================================================
+/*!
+  \return the dir by the path
+*/
 std::string LightApp_Driver::GetDirFromPath( const std::string& thePath ) {
   if(thePath == "")
     return "";
index c9415eb4185ab612bc03e0bb21c868b026083f29..03da41efc14c5ef28bfb86dc69fd512a0a293252 100644 (file)
@@ -115,21 +115,35 @@ void LightApp_GLSelector::setSelection( const SUIT_DataOwnerPtrList& aList )
 }
 
 
+/*!
+  Constructor
+  \param entry - entry of object
+*/
 LightApp_GLOwner::LightApp_GLOwner( const char* entry )
 : GLViewer_Owner()
 {
   setEntry( entry );
 }
 
+/*!
+  Destructor
+*/
 LightApp_GLOwner::~LightApp_GLOwner()
 {
 }
 
+/*!
+  \return entry
+*/
 const char* LightApp_GLOwner::entry() const
 {
   return myEntry.c_str();
 }
 
+/*!
+  Sets new entry
+  \param entry - entry of object
+*/
 void LightApp_GLOwner::setEntry( const char* entry )
 {
   myEntry = entry;
index f58bb761a85e402e1f56d09030efc3e2d78e6d28..7447490ee38a1f762ad36e4bb1b13984c9d059bb 100644 (file)
 #include <string>
 #include <GLViewer_Object.h>
 
+/*!
+  \class LightApp_GLSelector
+  Custom selector to get/set selection from GL viewer
+*/
 class LIGHTAPP_EXPORT LightApp_GLSelector : public SUIT_Selector
 {
   Q_OBJECT
index bf003ae44c04b131eb328e22b2ed8b570eff71cd..7ceca3a62a2e063169bdfea37885c35000448640 100644 (file)
@@ -36,10 +36,9 @@ LightApp_HDFDriver::~LightApp_HDFDriver()
 
 using namespace std;
 
-//================================================================
-//  Function : SaveDatasInFile
-/*! Purpose  : save in file 'theFileName' datas from this driver*/
-//================================================================
+/*!
+  Saves in file 'theFileName' datas from this driver
+*/
 bool LightApp_HDFDriver::SaveDatasInFile( const char* theFileName, bool isMultiFile )
 {
   bool isASCII = false;
@@ -163,10 +162,9 @@ bool LightApp_HDFDriver::SaveDatasInFile( const char* theFileName, bool isMultiF
   return !isError;
 }
 
-//=======================================================================
-//  Function : ReadDatasFromFile
-/*! Purpose  : filling current driver from file 'theFileName'*/
-//=======================================================================
+/*!
+  Filling current driver from file 'theFileName'
+*/
 bool LightApp_HDFDriver::ReadDatasFromFile( const char* theFileName, bool isMultiFile )
 {
   bool isASCII = false;
index 5a978eacf06cb7ad121e56b7581d9108f2246b42..e35987d2e2e7436b3ad6631a3e4bacb3d4a5247b 100644 (file)
@@ -1,3 +1,21 @@
+// Copyright (C) 2005  CEA/DEN, EDF R&D, OPEN CASCADE, PRINCIPIA R&D
+//
+// This library is free software; you can redistribute it and/or
+// modify it under the terms of the GNU Lesser General Public
+// License as published by the Free Software Foundation; either
+// version 2.1 of the License.
+//
+// This library is distributed in the hope that it will be useful
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+// Lesser General Public License for more details.
+//
+// You should have received a copy of the GNU Lesser General Public
+// License along with this library; if not, write to the Free Software
+// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307 USA
+//
+// See http://www.salome-platform.org/
+//
 #ifndef LIGHTAPP_HDFDRIVER_H
 #define LIGHTAPP_HDFDRIVER_H
 
index 691d68b98bd74f83193496fc50e4413824c52a31..65689deed22744f8f695f36653a67cb6610337b7 100644 (file)
@@ -117,6 +117,9 @@ void LightApp_Module::contextMenuPopup( const QString& client, QPopupMenu* menu,
 void LightApp_Module::updateObjBrowser( bool theIsUpdateDataModel, 
                                        SUIT_DataObject* theDataObject )
 {
+  bool upd = getApp()->objectBrowser()->isAutoUpdate();
+  getApp()->objectBrowser()->setAutoUpdate( false );
+
   SUIT_DataObject* aDataObject = theDataObject;
   if( theIsUpdateDataModel ){
     if( CAM_DataModel* aDataModel = dataModel() ){
@@ -134,7 +137,8 @@ void LightApp_Module::updateObjBrowser( bool theIsUpdateDataModel,
       }
     }
   }
-  getApp()->objectBrowser()->updateTree( aDataObject );
+  getApp()->objectBrowser()->setAutoUpdate( upd );
+  getApp()->objectBrowser()->updateTree( 0, false /*aDataObject*/ );
 }
 
 /*!NOT IMPLEMENTED*/
@@ -509,11 +513,18 @@ void LightApp_Module::onOperationDestroyed()
   }
 }
 
+/*!
+  Must be redefined in order to use standard displayer mechanism
+  \return displayer of module
+*/
 LightApp_Displayer* LightApp_Module::displayer()
 {
   return 0;
 }
 
+/*!
+  SLOT: called on activating of standard operations show/hide
+*/
 void LightApp_Module::onShowHide()
 {
   if( !sender()->inherits( "QAction" ) || !popupMgr() )
@@ -525,10 +536,16 @@ void LightApp_Module::onShowHide()
     startOperation( id );
 }
 
+/*!
+  virtual SLOT: called on view manager adding
+*/
 void LightApp_Module::onViewManagerAdded( SUIT_ViewManager* )
 {
 }
 
+/*!
+  virtual SLOT: called on view manager removing
+*/
 void LightApp_Module::onViewManagerRemoved( SUIT_ViewManager* )
 {
 }
index afe552d12934d95821fa5291aeb76794cbeeca7d..ca6a6d8520c7653b19fb6e62f816e8d1daed4c42 100644 (file)
@@ -28,9 +28,9 @@ class QtxPopupMgr;
 class QString;
 class QVariant;
 
-/*
-  Class : LightApp_Module
-  Description : Base class for all light modules
+/*!
+  \class LightApp_Module
+  Base class for all light modules
 */
 
 class LIGHTAPP_EXPORT LightApp_Module : public CAM_Module
index 526f16f22f2167decc44119f477c4139d636d047..135e58c40aad967bd8a6df194e147c03bb78c36e 100644 (file)
@@ -19,6 +19,11 @@ class QFrame;
 class QLabel;
 class QPushButton;
 
+/*!
+  \class LightApp_ModuleDlg
+  Dialog allows to choose action on module activation when there is no document.
+  It is possible to create new document, to open existing or to cancel module activation
+*/
 class LIGHTAPP_EXPORT LightApp_ModuleDlg : public QDialog
 {
   Q_OBJECT
index 60992730505e867abccb8600e633211ebdcf9b90..f6eb0543e0a970610f371c6260fc5aa094ad1097 100644 (file)
@@ -123,6 +123,9 @@ QString LightApp_NameDlg::name()
   return myLineEdit->text();
 }
 
+/*!
+  Accepts if name isn't empty
+*/
 void LightApp_NameDlg::accept()
 {
   if ( name().stripWhiteSpace().isEmpty() )
index c0309c0f2ee64a092618bee7b4fc8d719158fba0..6bc61b9d51dbe409fdb9cdae79c58fcf84b20e40 100644 (file)
 class QLineEdit;
 class QPushButton;
 
-//=================================================================================
-// class    : LightApp_NameDlg
-/*! purpose  : Common <Rename> dialog box class*/
-//=================================================================================
+/*!
+  \class LightApp_NameDlg
+  Common <Rename> dialog box class
+*/
 class LIGHTAPP_EXPORT LightApp_NameDlg : public QDialog
 { 
   Q_OBJECT
index 4ea2921324871a5085d677c699490aa790fe84fe..69db84c2ceb897f963bf39613d76e0f98d9b10ce 100644 (file)
 
 class LightApp_SelectionMgr;
 
+/*!
+  \class LightApp_OBFilter
+  Custom Object Browser filter, that checks correctness of object by all filters set in selection manager
+*/
 class LIGHTAPP_EXPORT LightApp_OBFilter: public OB_Filter
 {
 public:
index 22867b5f6da17dadbec74316009fd0853f27a7ca..fcd6d1dd6920e240907f1c2fd07916067c560ef4 100644 (file)
@@ -104,6 +104,7 @@ void LightApp_OBSelector::setSelection( const SUIT_DataOwnerPtrList& theList )
   }
 
   myBrowser->setSelected( objList );
+  mySelectedList.clear();
 }
 
 /*!On selection changed.*/
index e8fc44371690890a5b4cdf2491e3c215cfb4102a..a3928ccd9e7507005e2b4263dcdfe296752c72af 100644 (file)
 class OB_Browser;
 class LightApp_DataObject;
 
+/*!
+  \class LightApp_OBSelector
+  Custom selector to get/set selection from object browser
+*/
 class LIGHTAPP_EXPORT LightApp_OBSelector : public SUIT_Selector
 {
   Q_OBJECT
index 5a53992e0e492748879ec8fddb8483ddd337329c..619a4739ee9d7949c44637ed00a65797d3e8d7ab 100644 (file)
 
 class Handle_AIS_InteractiveObject;
 
+/*!
+  \class LightApp_OCCSelector
+  Custom selector to get/set selection from OCC viewer
+*/
 class LIGHTAPP_EXPORT LightApp_OCCSelector : public SUIT_Selector
 {
   Q_OBJECT
index 197eb93ee0c560c0475ae364a6ea3fba7b7eebe1..f13019d6c07b0c06fb368c4b3c8954c8b18a6bdc 100755 (executable)
@@ -121,10 +121,6 @@ void LightApp_Operation::suspendOperation()
   setDialogActive( false );
 }
 
-//=======================================================================
-// name    : abortOperation
-// Purpose : Hide dialog box (if it is exists)
-//=======================================================================
 /*!
  * \brief Performs actions needed for aborting operation
 *
index 4b07bd7b262e92d1bbc94e3ad060715771450a87..beac7042ccf6603232ea39d62e01de94dba8b958 100755 (executable)
@@ -22,15 +22,10 @@ class LightApp_SelectionMgr;
 class LightApp_Dialog;
 class SUIT_Desktop;
 
-/*
-  Class       : LightApp_Operation
-  Description : Base class for all operations
-*/
-
 /*!
- * \brief Base class for all operations
- *
 Base class for all operations (see SUIT_Operation for more description)
+  \class LightApp_Operation
+  \brief Base class for all operations
+  Base class for all operations (see SUIT_Operation for more description)
 */
 class LIGHTAPP_EXPORT LightApp_Operation : public SUIT_Operation
 {
index 96d6abcb2447a427206c5b02e2d722f4861a901d..36ba84c9606c35a92568b76a01acea5fa641c5b5 100644 (file)
@@ -61,7 +61,7 @@ int LightApp_Preferences::addPreference( const QString& mod, const QString& labe
   return id;
 }
 
-/*
+/*!
   Checks: is preferences has module with name \a mod.
 */
 bool LightApp_Preferences::hasModule( const QString& mod ) const
index 2aa97f143ad1f27e1aabe1d0d3f92bf5d3cc9061..bcd39127b360e04f331418d9c19725799dee41e8 100644 (file)
 
 class QtxResourceMgr;
 
+/*!
+  \class LightApp_Preferences
+  Custom preference container. Assign each preference category with module.
+  Emits signal on preference changing
+*/
 class LIGHTAPP_EXPORT LightApp_Preferences : public QtxListResourceEdit
 {
   Q_OBJECT
index af26451f77480b37987b1492a9bda51582ba82f1..bbd81314e5d41f6999cef0cdcbcadab22cc6cdd1 100644 (file)
@@ -20,7 +20,6 @@
 // Author:    Sergey TELKOV
 
 #include "LightApp_PreferencesDlg.h"
-
 #include "LightApp_Preferences.h"
 
 #include "QtxResourceMgr.h"
 #include <qlayout.h>
 #include <qmessagebox.h>
 #include <qvbox.h>
+#include <qfiledialog.h>
 
 /*!
   Constructor.
 */
 LightApp_PreferencesDlg::LightApp_PreferencesDlg( LightApp_Preferences* prefs, QWidget* parent )
-: QtxDialog( parent, 0, true, false, OK | Close | Apply ),
+: QtxDialog( parent, 0, true, true, OK | Close | Apply ),
 myPrefs( prefs ), mySaved ( false )
 {
   setCaption( tr( "CAPTION" ) );
@@ -58,6 +58,9 @@ myPrefs( prefs ), mySaved ( false )
   QButton* defBtn = userButton( insertButton( tr( "DEFAULT_BTN_TEXT" ) ) );
   if ( defBtn )
     connect( defBtn, SIGNAL( clicked() ), this, SLOT( onDefault() ) );
+  QButton* impBtn = userButton( insertButton( tr( "IMPORT_BTN_TEXT" ) ) );
+  if( impBtn )
+    connect( impBtn, SIGNAL( clicked() ), this, SLOT( onImportPref() ) );
 }
 
 /*!
@@ -132,3 +135,24 @@ void LightApp_PreferencesDlg::onDefault()
        }      
     }
 }
+
+/*! Import preferences from some file */
+void LightApp_PreferencesDlg::onImportPref()
+{
+  QtxResourceMgr* mgr = myPrefs->resourceMgr();
+  if( !mgr )
+    return;
+
+  QFileDialog dlg( ".", "*", this, "", tr( "IMPORT_PREFERENCES" ) );
+  dlg.setShowHiddenFiles( true );
+  dlg.exec();
+  QString fname = dlg.selectedFile();
+  if( fname.isEmpty() )
+    return;
+
+  if( mgr->import( fname ) )
+  {
+    myPrefs->retrieve();
+    myPrefs->toBackup();
+  }
+}
index 771714519db6cfd8677e06e9934395a5569a46a5..3a89ac82cb08a41ded5c5fa0dde7fff23da96afc 100644 (file)
 
 class LightApp_Preferences;
 
+/*!
+  \class LightApp_PreferencesDlg
+  Dialog for preferences edition
+*/
 class LIGHTAPP_EXPORT LightApp_PreferencesDlg : public QtxDialog
 {
   Q_OBJECT
@@ -47,6 +51,7 @@ private slots:
   void                  onHelp();
   void                  onApply();
   void                  onDefault();
+  void                  onImportPref();
 
 private:
   LightApp_Preferences* myPrefs;
index 454ee5320b787f776515aa0a3fce3e2671f7a2b4..dc592f522131340ede0780872cc2d08cf84e40be 100644 (file)
@@ -86,13 +86,13 @@ void LightApp_Selection::init( const QString& client, LightApp_SelectionMgr* mgr
       LightApp_DataOwner* sowner = dynamic_cast<LightApp_DataOwner*>( (*anIt ).get() );
       if( sowner )
       {
-       if( entries.contains( sowner->entry() ) )
+        entry = myStudy->referencedToEntry( sowner->entry() );
+       if( entries.contains( entry ) )
          continue;
 
-        entry = myStudy->referencedToEntry( sowner->entry() );
        entries.insert( entry, 0 );
         myEntries.insert( num, entry );
-       myIsReferences.insert( num, sowner->entry() == entry );
+       myIsReferences.insert( num, sowner->entry() != entry );
         processOwner( sowner );
        num++;
       }
index 79cc0fac6770e1f9f76641d90512f156a1281071..606f4c27ac0948ba56fbc51ca04d2ec837166c49 100644 (file)
@@ -37,7 +37,13 @@ class LightApp_DataOwner;
 class LightApp_Study;
 class SUIT_ViewWindow;
 
-
+/*!
+  \class LightApp_Selection 
+  Custom selection class, allowing to build popup with rules on the base
+  of owners selected in all selectors (popup client has more priority).
+  It is able to return values of standard object properties
+  (isVisible,isComponent,canBeDisplayed,isReference, etc)
+*/
 class LIGHTAPP_EXPORT LightApp_Selection : public QtxPopupMgr::Selection
 {
 public:
index 8546dadfe738a66882384653709c74f447251328..20d03efa617ccd5dcdd173a15eeac27e7e7dc31c 100644 (file)
 
 class LightApp_Application;
 
+/*!
+  Custom selection manager, allowing to work with object selection
+  (additionally to data owners) and to access to sub-selection of objects
+*/
 class LIGHTAPP_EXPORT LightApp_SelectionMgr : public SUIT_SelectionMgr
 {
   Q_OBJECT
index 76827c053703d3337941be9fb967e6f32a54ae49..0d64875f7437df5080f108471a85a8641944af87 100644 (file)
   #include <SALOME_ListIteratorOfListIO.hxx>
 #endif
 
+/*!
+  Constructor
+*/
 LightApp_ShowHideOp::LightApp_ShowHideOp( ActionType type )
 : LightApp_Operation(),
   myActionType( type )
 {
 }
 
+/*!
+  Destructor
+*/
 LightApp_ShowHideOp::~LightApp_ShowHideOp()
 {
 }
 
+/*!
+  Makes show/hide operation
+*/
 void LightApp_ShowHideOp::startOperation()
 {
   LightApp_Application* app = dynamic_cast<LightApp_Application*>( application() );
index cac7b918d966887afbf45f64f8cce19299c887a8..d84ef52c8b8771b463d4dedb678f3a83146ba298 100644 (file)
 #include "LightApp_Operation.h"
 
 class LightApp_Displayer;
+
+/*!
+  \class LightApp_ShowHideOp
+  Standard operation allowing to show/hide selected objects
+  corresponding to any module with help of module displayer
+*/
 class LIGHTAPP_EXPORT LightApp_ShowHideOp : public LightApp_Operation
 {
   Q_OBJECT
index 0b8b9005e24a3aef6d9a224b41b636b0b35479ec..09eb3c3a0cd4ae181395c440fafe7ce6cab41e90 100644 (file)
@@ -77,10 +77,9 @@ void LightApp_Study::createDocument()
   emit created( this );
 }
 
-//=======================================================================
-// name    : openDocument
-/*! Purpose : Open document*/
-//=======================================================================
+/*!
+  Opens document
+*/
 bool LightApp_Study::openDocument( const QString& theFileName )
 {
   myDriver->ClearDriverContents();
@@ -106,10 +105,9 @@ bool LightApp_Study::openDocument( const QString& theFileName )
   return res;
 }
 
-//=======================================================================
-// name    : loadDocument
-/*! Purpose : Load document */
-//=======================================================================
+/*!
+  Loads document
+*/
 bool LightApp_Study::loadDocument( const QString& theStudyName )
 {
   myDriver->ClearDriverContents();
@@ -138,10 +136,9 @@ bool LightApp_Study::loadDocument( const QString& theStudyName )
   return res;
 }
 
-//=======================================================================
-// name    : saveDocumentAs
-/*! Purpose : Save document */
-//=======================================================================
+/*!
+  Saves document
+*/
 bool LightApp_Study::saveDocumentAs( const QString& theFileName )
 {
   SUIT_ResourceMgr* resMgr = application()->resourceMgr();
@@ -201,10 +198,9 @@ bool LightApp_Study::saveDocumentAs( const QString& theFileName )
   return res;
 }
 
-//=======================================================================
-// name    : saveDocument
-/*! Purpose : Save document */
-//=======================================================================
+/*!
+  Saves document
+*/
 bool LightApp_Study::saveDocument()
 {
   ModelList list; dataModels( list );
@@ -227,10 +223,9 @@ bool LightApp_Study::saveDocument()
   return res;
 }
 
-//================================================================
-// Function : closeDocument
-/*! Purpose  : Close document */
-//================================================================
+/*!
+  Closes document
+*/
 void LightApp_Study::closeDocument(bool permanently)
 {
   // Inform everybody that this study is going to close when it's most safe to,
@@ -243,27 +238,25 @@ void LightApp_Study::closeDocument(bool permanently)
   myDriver->ClearDriverContents();
 }
 
-//================================================================
-// Function : referencedToEntry
-/*! Purpose  : Return current entry*/
-//================================================================
+/*!
+  \return real entry by entry of reference
+  \param entry - entry of reference object
+*/
 QString LightApp_Study::referencedToEntry( const QString& entry ) const
 {
   return entry;
 }
 
-//================================================================
-// Function : children
-/*! Purpose : Return entries of children of object*/
-//================================================================
+/*!
+  \return entries of object children
+*/
 void LightApp_Study::children( const QString&, QStringList& ) const
 {
 }
 
-//================================================================
-// Function : isComponent
-/*! Purpose : Return true if entry corresponds to component*/
-//================================================================
+/*!
+  \return true if entry corresponds to component
+*/
 bool LightApp_Study::isComponent( const QString& entry ) const
 {
   if( !root() )
@@ -281,10 +274,9 @@ bool LightApp_Study::isComponent( const QString& entry ) const
   return false;
 }
 
-//================================================================
-// Function : componentDataType
-/*! Purpose  : Return component data type from entry*/
-//================================================================
+/*!
+  \return component data type for entry
+*/
 QString LightApp_Study::componentDataType( const QString& entry ) const
 {
   LightApp_DataObject* aCurObj;
@@ -297,10 +289,9 @@ QString LightApp_Study::componentDataType( const QString& entry ) const
   return "";
 }
 
-//================================================================
-// Function : isModified
-// Purpose  : 
-//================================================================
+/*!
+  \return true if study is modified
+*/
 bool LightApp_Study::isModified() const
 {
   bool isAnyChanged = CAM_Study::isModified();
@@ -315,27 +306,24 @@ bool LightApp_Study::isModified() const
   return isAnyChanged; 
 }
 
-//================================================================
-// Function : isSaved
-/*! Purpose  : Check: data model is saved?*/
-//================================================================
+/*!
+  \return true if data model is saved
+*/
 bool LightApp_Study::isSaved() const
 {
   return CAM_Study::isSaved();
 }
 
-//=======================================================================
-// name    : addComponent
-/*! Purpose : Create SComponent for module, necessary for SalomeApp study */
-//=======================================================================
+/*!
+  Creates SComponent for module, necessary for SalomeApp study
+*/
 void LightApp_Study::addComponent(const CAM_DataModel* dm)
 {
 }
 
-//=======================================================================
-// name    : saveModuleData
-/*! Purpose : save list file for module 'theModuleName' */
-//=======================================================================
+/*!
+  Saves list file for module 'theModuleName'
+*/
 void LightApp_Study::saveModuleData(QString theModuleName, QStringList theListOfFiles)
 {
   int aNb = theListOfFiles.count();
@@ -353,10 +341,9 @@ void LightApp_Study::saveModuleData(QString theModuleName, QStringList theListOf
   myDriver->SetListOfFiles(theModuleName, aListOfFiles);
 }
 
-//=======================================================================
-// name    : openModuleData
-/*! Purpose : gets list of file for module 'theModuleNam' */
-//=======================================================================
+/*!
+  Gets list of file for module 'theModuleNam'
+*/
 void LightApp_Study::openModuleData(QString theModuleName, QStringList& theListOfFiles)
 {
   std::vector<std::string> aListOfFiles =  myDriver->GetListOfFiles(theModuleName);
@@ -370,10 +357,9 @@ void LightApp_Study::openModuleData(QString theModuleName, QStringList& theListO
     theListOfFiles.append(aListOfFiles[i+1].c_str());
 }
 
-//=======================================================================
-// name    : saveStudyData
-/*! Purpose : save data from study */
-//=======================================================================
+/*!
+  Saves data from study
+*/
 bool LightApp_Study::saveStudyData( const QString& theFileName )
 {
   ModelList list; dataModels( list );
@@ -386,10 +372,9 @@ bool LightApp_Study::saveStudyData( const QString& theFileName )
   return aRes;
 }
 
-//=======================================================================
-// name    : openStudyData
-/*! Purpose : open data for study */
-//=======================================================================
+/*!
+  Opens data for study
+*/
 bool LightApp_Study::openStudyData( const QString& theFileName )
 {
   SUIT_ResourceMgr* resMgr = application()->resourceMgr();
@@ -401,10 +386,9 @@ bool LightApp_Study::openStudyData( const QString& theFileName )
   return aRes;
 }
 
-//================================================================
-// Function : openDataModel
-/*! Purpose  : Open data model */
-//================================================================
+/*!
+  Opens data model
+*/
 bool LightApp_Study::openDataModel( const QString& studyName, CAM_DataModel* dm )
 {
   if (!dm)
@@ -422,20 +406,19 @@ bool LightApp_Study::openDataModel( const QString& studyName, CAM_DataModel* dm
   return false;
 }
 
-//================================================================
-// Function : GetTmpDir
-/*! Purpose  : to be used by modules*/
-//================================================================
+/*!
+  \return temporary directory for saving files of modules
+*/
 std::string LightApp_Study::GetTmpDir (const char* theURL,
                                        const bool  isMultiFile)
 {
   return myDriver->GetTmpDir(theURL, isMultiFile);
 }
 
-//================================================================
-// Function : GetListOfFiles
-/*! Purpose  : to be used by modules*/
-//================================================================
+/*!
+  \return list of files necessary for module
+  \param theModuleName - name of module
+*/
 std::vector<std::string> LightApp_Study::GetListOfFiles(const char* theModuleName) const
 {
   std::vector<std::string> aListOfFiles;
@@ -443,19 +426,19 @@ std::vector<std::string> LightApp_Study::GetListOfFiles(const char* theModuleNam
   return aListOfFiles;
 }
 
-//================================================================
-// Function : SetListOfFiles
-/*! Purpose  : to be used by modules*/
-//================================================================
+/*!
+  Sets list of files necessary for module
+  \param theModuleName - name of module
+  \param theListOfFiles - list of files
+*/
 void LightApp_Study::SetListOfFiles (const char* theModuleName, const std::vector<std::string> theListOfFiles)
 {
   myDriver->SetListOfFiles(theModuleName, theListOfFiles);
 }
 
-//================================================================
-// Function : RemoveTemporaryFiles
-/*! Purpose  : to be used by modules*/
-//================================================================
+/*!
+  Removes temporary files
+*/
 void LightApp_Study::RemoveTemporaryFiles (const char* theModuleName, const bool isMultiFile) const
 {
   if (isMultiFile)
@@ -464,10 +447,10 @@ void LightApp_Study::RemoveTemporaryFiles (const char* theModuleName, const bool
   myDriver->RemoveTemporaryFiles(theModuleName, isDirDeleted);
 }
 
-//================================================================
-// Function : components
-/*! Purpose  : to be used by modules*/
-//================================================================
+/*!
+  Fills list with components names
+  \param comp - list to be filled
+*/
 void LightApp_Study::components( QStringList& comp ) const
 {
   DataObjectList children = root()->children();
index 2e0ac32260b04ab779b93fc8e28833fd673b62fe..2b8cf30c4ce1ac0cd5489fa12aa244bf50c81635 100644 (file)
 class SUIT_Application;
 class CAM_DataModel;
 
+/*!
+  Custom study, using for open/close of documents HDF format.
+  Data of each module can be saved to different files, those 
+  after that are combined into one HDF file
+*/
 class LIGHTAPP_EXPORT LightApp_Study : public CAM_Study
 {
   Q_OBJECT
index 14feeaa6dc662f9c154f881c6460c1dba631f670..820bf1e5fe50ea3c74850cab603d71f751a19535 100755 (executable)
 //
 // See http://www.salome-platform.org/
 //
-/**
-*  LIGHT LightApp
-*
-*  Copyright (C) 2005  CEA/DEN, EDF R&D
-*
-*
-*
-*  File   : LightApp_SwitchOp.h
-*  Author : Sergey LITONIN
-*  Module : LIGHT
-*/
 
 #include "LightApp_SwitchOp.h"
 #include "LightApp_Module.h"
index dad93261d934c0dd1b45e7346a9d23d032bc073a..2fdb302e479b804b6d89f9eeb451a572df1e0d7c 100755 (executable)
 //
 // See http://www.salome-platform.org/
 //
-/**
-*  LIGHT LightApp
-*
-*  Copyright (C) 2005  CEA/DEN, EDF R&D
-*
-*
-*
-*  File   : LightApp_SwitchOp.h
-*  Author : Sergey LITONIN
-*  Module : LIGHT
-*/
-
-
 
 #ifndef LightApp_SwitchOp_H
 #define LightApp_SwitchOp_H
index 2fc7fa780427a5b32a6ef222f374dbbe63b08258..6dc90343af2c703bb579d3723bea5d247a7a65cb 100755 (executable)
 #ifndef LightApp_UpdateFlags_H
 #define LightApp_UpdateFlags_H
 
-/*
-  Enum        : UpdateFlags
-  Description : Enumeration for update flags. First byte is reserved for LightApp_Module.
-                Modules derived from this model must use other 3 bytes to define their
-                own update flags
+/*!
+  \enum UpdateFlags
+  Enumeration for update flags. First byte is reserved for LightApp_Module.
+  Modules derived from this model must use other 3 bytes to define their
+  own update flags
 */
 
 typedef enum
index a81891b590abcd06cd2638900800ce50d8200808..bed74c35747754f63ea841c77526342013df275b 100644 (file)
@@ -21,6 +21,7 @@
 
 #ifndef DISABLE_VTKVIEWER
   #include "SVTK_ViewModelBase.h"
+  #include "SVTK_ViewManager.h"
   #include "SVTK_Selector.h"
   #include "SVTK_ViewWindow.h"
   #include "SVTK_Functor.h"
 */
 LightApp_SVTKDataOwner
 ::LightApp_SVTKDataOwner( const Handle(SALOME_InteractiveObject)& theIO,
-                         const TColStd_IndexedMapOfInteger& theIds,
-                         Selection_Mode theMode,
-                         SALOME_Actor* theActor):
+                         SUIT_Desktop* theDesktop ):
   LightApp_DataOwner( theIO ),
-  mySelectionMode(theMode),
-  myActor(theActor)
-{
-  myIds = theIds; // workaround - there is no constructor copy for the container
-}
+  myDesktop( theDesktop )
+{}
 #endif
 
 /*!
@@ -61,6 +57,51 @@ LightApp_SVTKDataOwner
 {
 }
 
+/*!
+  \return active SVTK view window
+*/
+SVTK_ViewWindow* 
+LightApp_SVTKDataOwner
+::GetActiveViewWindow() const
+{
+  if(SUIT_ViewWindow* aViewWindow = myDesktop->activeWindow())
+    return dynamic_cast<SVTK_ViewWindow*>(aViewWindow);
+
+  return NULL;
+}
+
+/*!
+  Gets dataowners ids list.
+*/
+const TColStd_IndexedMapOfInteger& 
+LightApp_SVTKDataOwner
+::GetIds() const
+{
+  if(SVTK_ViewWindow* aViewWindow = GetActiveViewWindow()){
+    if(SVTK_Selector* aSelector = aViewWindow->GetSelector()){
+      aSelector->GetIndex(IO(),myIds);
+    }
+  }
+
+  return myIds;
+}
+
+/*!
+  Gets selection mode.
+*/
+Selection_Mode
+LightApp_SVTKDataOwner
+::GetMode() const
+{
+  if(SVTK_ViewWindow* aViewWindow = GetActiveViewWindow()){
+    if(SVTK_Selector* aSelector = aViewWindow->GetSelector()){
+      return aSelector->SelectionMode();
+    }
+  }
+  
+  return -1;
+}
+
 /*!
   Gets actor pointer.
 */
@@ -68,7 +109,12 @@ SALOME_Actor*
 LightApp_SVTKDataOwner
 ::GetActor() const
 {
-  return myActor.GetPointer();
+  if(SVTK_ViewWindow* aViewWindow = GetActiveViewWindow()){
+    using namespace SVTK;
+    return Find<SALOME_Actor>(aViewWindow->getRenderer()->GetActors(),TIsSameIObject<SALOME_Actor>(IO()));
+  }
+
+  return NULL;
 }
 
 #endif
@@ -137,23 +183,16 @@ LightApp_VTKSelector
 ::getSelection( SUIT_DataOwnerPtrList& aList ) const
 {
   if(myViewer){
-    if(SUIT_ViewManager* aViewMgr = myViewer->getViewManager()){
-      if(SVTK_ViewWindow* aView = dynamic_cast<SVTK_ViewWindow*>(aViewMgr->getActiveView())){
-       if(SVTK_Selector* aSelector = aView->GetSelector()){
-         Selection_Mode aMode = aSelector->SelectionMode();
-         const SALOME_ListIO& aListIO = aSelector->StoredIObjects();
-         SALOME_ListIteratorOfListIO anIter(aListIO);
-         for(; anIter.More(); anIter.Next()){
-           Handle(SALOME_InteractiveObject) anIO = anIter.Value();
-           if(anIO->hasEntry()){
-             TColStd_IndexedMapOfInteger anIds;
-             aSelector->GetIndex(anIO,anIds);
-             SALOME_Actor* anActor = aSelector->GetActor(anIO);
-             if( !anActor ){
-               using namespace SVTK;
-               anActor = Find<SALOME_Actor>(aView->getRenderer()->GetActors(),TIsSameIObject<SALOME_Actor>(anIO));
-             }
-             aList.append(new LightApp_SVTKDataOwner(anIO,anIds,aMode,anActor));
+    if(SUIT_ViewManager* aViewManager = myViewer->getViewManager()){
+      if(SVTK_ViewManager* aViewMgr = dynamic_cast<SVTK_ViewManager*>(aViewManager)){
+       if(SVTK_ViewWindow* aView = dynamic_cast<SVTK_ViewWindow*>(aViewMgr->getActiveView())){
+         if(SVTK_Selector* aSelector = aView->GetSelector()){
+           const SALOME_ListIO& aListIO = aSelector->StoredIObjects();
+           SALOME_ListIteratorOfListIO anIter(aListIO);
+           for(; anIter.More(); anIter.Next()){
+             Handle(SALOME_InteractiveObject) anIO = anIter.Value();
+             if(anIO->hasEntry())
+               aList.append(new LightApp_SVTKDataOwner(anIO,aViewMgr->getDesktop()));
            }
          }
        }
@@ -182,10 +221,7 @@ LightApp_VTKSelector
              aSelector->SetSelectionMode(anOwner->GetMode());
              Handle(SALOME_InteractiveObject) anIO = anOwner->IO();
 
-             if( anOwner->GetActor() )
-               aSelector->AddIObject( anOwner->GetActor() );
-             else
-               aSelector->AddIObject(anIO);
+             aSelector->AddIObject(anIO);
 
              anAppendList.Append(anIO);
              aSelector->AddOrRemoveIndex(anIO,anOwner->GetIds(),false);
index 7c5dca73f6fb63700994c38434bc661ce3c91ca6..96582d555df09f96080553b9be24f51d6903f15b 100644 (file)
@@ -23,6 +23,8 @@
 #include "LightApp.h"
 #include "LightApp_DataOwner.h"
 
+class SUIT_Desktop;
+
 #ifndef DISABLE_VTKVIEWER
   #include <vtkSmartPointer.h>
   #include <TColStd_IndexedMapOfInteger.hxx>
@@ -31,6 +33,7 @@
   #include "SALOME_InteractiveObject.hxx"
 #endif
   class SALOME_Actor;
+  class SVTK_ViewWindow;
   class SVTK_ViewModelBase;
 #endif
 
@@ -43,30 +46,25 @@ class LIGHTAPP_EXPORT LightApp_SVTKDataOwner : public LightApp_DataOwner
 #ifndef DISABLE_VTKVIEWER
    #ifndef DISABLE_SALOMEOBJECT
     LightApp_SVTKDataOwner( const Handle(SALOME_InteractiveObject)& theIO,
-                            const TColStd_IndexedMapOfInteger& theIds,
-                            Selection_Mode theMode = ActorSelection,
-                            SALOME_Actor* theActor = NULL);
+                           SUIT_Desktop* theDesktop );
    #endif
     virtual ~LightApp_SVTKDataOwner();
 
     /*!Gets dataowners ids list.*/
-    const TColStd_IndexedMapOfInteger& GetIds() const
-    {
-      return myIds;
-    }
+    const TColStd_IndexedMapOfInteger& GetIds() const;
 
     /*!Gets selection mode.*/
-    Selection_Mode GetMode() const 
-    { 
-      return mySelectionMode; 
-    }
+    Selection_Mode GetMode() const;
 
+    /*!Finds corresponding actor in the active viewer.*/
     SALOME_Actor* GetActor() const;
 
  protected:
-    TColStd_IndexedMapOfInteger myIds;
-    Selection_Mode mySelectionMode;
-    vtkSmartPointer<SALOME_Actor> myActor;
+    mutable TColStd_IndexedMapOfInteger myIds;
+
+    SVTK_ViewWindow* GetActiveViewWindow() const;
+    SUIT_Desktop* myDesktop;
+    
 #else
   LightApp_SVTKDataOwner( const QString& );
 #endif
@@ -74,7 +72,8 @@ class LIGHTAPP_EXPORT LightApp_SVTKDataOwner : public LightApp_DataOwner
 
 
 /*!
-  Provide vtk selection of data owners.
+  \class LightApp_VTKSelector
+  Custom selector to get/set selection from object browser
 */
 class LIGHTAPP_EXPORT LightApp_VTKSelector : public SUIT_Selector
 {
index c26adb88277cf96a7d0f07fa74787c0b083e2e06..89e3cc8d6fee0caf14dacef49040f8b86f1cf046 100755 (executable)
@@ -1,3 +1,21 @@
+#  Copyright (C) 2005  CEA/DEN, EDF R&D, OPEN CASCADE, PRINCIPIA R&D
+#
+#  This library is free software; you can redistribute it and/or
+#  modify it under the terms of the GNU Lesser General Public
+#  License as published by the Free Software Foundation; either
+#  version 2.1 of the License.
+#
+#  This library is distributed in the hope that it will be useful,
+#  but WITHOUT ANY WARRANTY; without even the implied warranty of
+#  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+#  Lesser General Public License for more details.
+#
+#  You should have received a copy of the GNU Lesser General Public
+#  License along with this library; if not, write to the Free Software
+#  Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307 USA
+#
+#  See http://www.salome-platform.org/
+#
 #  File   : Makefile.in
 #  Author : OCC team (OCN)
 #  Module : LightApp
@@ -135,7 +153,7 @@ RESOURCES_FILES = icon_about.png \
                  LightApp.xml
 
 CPPFLAGS+=$(PYTHON_INCLUDES) $(QT_INCLUDES) $(OCC_INCLUDES) \
-       $(HDF5_INCLUDES) -I${KERNEL_ROOT_DIR}/include/salome
+       $(HDF5_INCLUDES) $(KERNEL_CXXFLAGS)
 
 ifneq ($(DISABLE_VTKVIEWER),yes)
   CPPFLAGS+= $(VTK_INCLUDES)
@@ -171,7 +189,7 @@ ifneq ($(DISABLE_PYCONSOLE),yes)
 endif
 
 LIBS+= -lsuit -lstd -lCAM -lObjBrowser -lLogWindow $(CAS_KERNEL) -lSalomePrs \
-       $(HDF5_LIBS) -L$(KERNEL_ROOT_DIR)/lib/salome -lSalomeHDFPersist
+       $(HDF5_LIBS) $(KERNEL_LDFLAGS) -lSalomeHDFPersist
 
 ifneq ($(DISABLE_SALOMEOBJECT),yes)
   LIBS+= -lSalomeObject
index cab85581e6453ed0713d7e19b093e101892b60b1..2190a3cff653db7d05569e987c3633cffb01ea7d 100644 (file)
@@ -1,12 +1,6 @@
 <document>
-  <section name="desktop" >
-    <parameter name="state"  value="normal"/>
-    <parameter name="pos_x"  value="center"/>
-    <parameter name="pos_y"  value="center"/>
-    <parameter name="width"  value="800"/>
-    <parameter name="height" value="600"/>
-  </section>
   <section name="launch">
+    <!-- SALOME launching parameters -->
     <parameter name="gui"        value="yes"/>
     <parameter name="splash"     value="yes"/>
     <parameter name="file"       value="no"/>
     <parameter name="modules"    value="LIGHT"/>
   </section>
   <section name="language">
+    <!-- Language settings (resource manager)-->
     <parameter name="language"    value="en"/>
     <parameter name="translators" value="%P_msg_%L.qm|%P_icons.qm|%P_images.qm"/>
   </section>
+  <section name="splash" >
+    <!-- Splash screen settings -->
+    <parameter name="image"       value="${SUITRoot}/resources/icon_about.png" />
+    <parameter name="info"        value="%A : %V" />
+    <parameter name="text_colors" value="#F0CC6D|#7F7138" />
+  </section>
   <section name="resources">
+    <!-- Resource directories (resource manager)-->
     <parameter name="SUIT"         value="${SUITRoot}/resources"/>
     <parameter name="STD"          value="${SUITRoot}/resources"/>
     <parameter name="Plot2d"       value="${SUITRoot}/resources"/>
     <parameter name="CAM"          value="${SUITRoot}/resources"/>
     <parameter name="LightApp"     value="${SUITRoot}/resources"/>
     <parameter name="SVTK"         value="${SUITRoot}/resources"/>
-    <parameter name="LIGHT"        value="${LIGHT_ROOT_DIR}/share/salome/resources"/>
     <parameter name="ToolsGUI"     value="${SUITRoot}/resources"/>
+    <parameter name="LIGHT"        value="${LIGHT_ROOT_DIR}/share/salome/resources"/>
+  </section>
+  <section name="desktop" >
+    <!-- Default GUI desktop state, position, size -->
+    <parameter name="state"  value="normal"/>
+    <parameter name="pos_x"  value="center"/>
+    <parameter name="pos_y"  value="center"/>
+    <parameter name="width"  value="800"/>
+    <parameter name="height" value="600"/>
   </section>
   <section name="LIGHT">
+    <!-- LIGHT module settings -->
     <parameter name="name"       value="Light"/>
     <parameter name="icon"       value="LIGHT.png"/>
   </section>
-
-<!-- values below this line are just an example, they are not used  -->
-  <section name="application">
+  <section name="PyConsole">
+    <!-- Python console preferences -->
+    <parameter name="font"                value="Helvetic,12" />
+    <parameter name="additional_families" value="Helvetic;Helvetica;Helvetica[Adobe];Times;Times[Adobe];Sans Serif;Serif;Monospace;Lucida"/>
+  </section>
+  <section name="FileDlg">
+    <!-- "Open/Save File" dialog box preferences-->
     <parameter name="QuickDirList" value=""/>
-    <!-- Here go other common user preferences -->
   </section>
   <section name="Study">
-    <parameter value="true" name="store_positions" />
+    <!-- General study settings -->
+    <parameter name="store_positions" value="true" />
   </section>
   <section name="OCCViewer" >
-    <parameter value="35, 136, 145" name="background" />
-    <parameter value="1" name="iso_number_u" />
-    <parameter value="1" name="iso_number_v" />
-    <parameter value="100" name="trihedron_size" />
+    <!-- OCC viewer preferences -->
+    <parameter name="background"     value="35, 136, 145" />
+    <parameter name="iso_number_u"   value="1" />
+    <parameter name="iso_number_v"   value="1" />
+    <parameter name="trihedron_size" value="100" />
  </section>
  <section name="VTKViewer" >
-    <parameter value="0, 0, 0" name="background" />
-    <parameter value="100" name="trihedron_size" />
+    <!-- OCC viewer preferences -->
+    <parameter name="background"     value="0, 0, 0"/>
+    <parameter name="trihedron_size" value="100" />
  </section>
  <section name="Plot2d" >
-    <parameter value="255, 255, 255" name="Background" />
-    <parameter value="1" name="CurveType" />
-    <parameter value="0" name="HorScaleMode" />
-    <parameter value="1" name="LegendPos" />
-    <parameter value="9" name="MarkerSize" />
-    <parameter value="true" name="ShowLegend" />
-    <parameter value="0" name="VerScaleMode" />
+    <!-- Plot2d viewer preferences -->
+    <parameter name="Background"   value="255, 255, 255" />
+    <parameter name="CurveType"    value="1" />
+    <parameter name="HorScaleMode" value="0" />
+    <parameter name="LegendPos"    value="1" />
+    <parameter name="MarkerSize"   value="9" />
+    <parameter name="ShowLegend"   value="true" />
+    <parameter name="VerScaleMode" value="0" />
   </section>
   <section name="SUPERVGraph" >
-    <parameter value="144, 208, 211" name="Background" />
-    <parameter value="63, 213, 255" name="Title" />
-  </section>
-  <!-- Here go optional sections for other modules -->
-  <section name="resources">
-    <parameter name="salome" value="${KERNEL_ROOT_DIR}/share/salome/res"/>
-    <!-- Here go resource directories for other modules -->
+    <!-- Supervision viewer preferences -->
+    <parameter name="Background" value="144, 208, 211" />
+    <parameter name="Title"      value="63, 213, 255"  />
   </section>
 </document>
index 09f9013322051153fd4e8f49cb5fc1b0b84845f3..7971407b4497045b1cdd2b6f0f8b344814bb72fc 100644 (file)
@@ -1,3 +1,21 @@
+#  Copyright (C) 2005  CEA/DEN, EDF R&D, OPEN CASCADE, PRINCIPIA R&D
+#
+#  This library is free software; you can redistribute it and/or
+#  modify it under the terms of the GNU Lesser General Public
+#  License as published by the Free Software Foundation; either
+#  version 2.1 of the License.
+#
+#  This library is distributed in the hope that it will be useful,
+#  but WITHOUT ANY WARRANTY; without even the implied warranty of
+#  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+#  Lesser General Public License for more details.
+#
+#  You should have received a copy of the GNU Lesser General Public
+#  License along with this library; if not, write to the Free Software
+#  Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307 USA
+#
+#  See http://www.salome-platform.org/
+#
 # This is a Qt message file in .po format.  Each msgid starts with
 # a scope.  This scope should *NOT* be translated - eg. "Foo::Bar"
 # would be translated to "Pub", not "Foo::Pub".
@@ -81,10 +99,10 @@ msgid "LightApp_Application::INF_CANCELLED"
 msgstr "Module activation cancelled"
 
 msgid "EXTERNAL_BROWSER_CANNOT_SHOW_PAGE"
-msgstr "External browser \"%1\" can not show help page \"%2\""
+msgstr "External browser \"%1\" can not show help page \"%2\". Do you want to change it in preferences?"
 
 msgid "LightApp_Application::DEFINE_EXTERNAL_BROWSER"
-msgstr "Define external browser in preferences"
+msgstr "External browser is not found. Do you want to define it in preferences?"
 
 msgid "LightApp_Application::DATA_MODELS"
 msgstr "Data models"
@@ -123,9 +141,6 @@ msgstr "Multi file save"
 msgid "LightApp_Application::PREF_ASCII_FILE"
 msgstr "ASCII save"
 
-msgid "LightApp_Application::PREF_UNDO_LEVEL"
-msgstr "Undo level"
-
 msgid "LightApp_Application::PREF_STORE_POS"
 msgstr "Store positions of windows"
 
@@ -263,7 +278,13 @@ msgid "LightApp_PreferencesDlg::WARNING"
 msgstr "Warning"
 
 msgid "LightApp_PreferencesDlg::DEFAULT_QUESTION"
-msgstr "Do you want to retrieve default preferences?" 
+msgstr "Do you want to retrieve default preferences?"
+
+msgid "LightApp_PreferencesDlg::IMPORT_PREFERENCES"
+msgstr "Import preferences"
+
+msgid "LightApp_PreferencesDlg::IMPORT_BTN_TEXT"
+msgstr "Import"
 
 //=======================================================================================
 
@@ -328,3 +349,4 @@ msgstr "Rename"
 
 msgid "LightApp_NameDlg::NAME_LBL"
 msgstr "Name: "
+
index 0b846b720476a4753c4e593784557c78cd7d7bd6..e0de7b355aa366cab58a146795f9fbaa37028cc3 100755 (executable)
@@ -36,7 +36,9 @@
 
 #define DEFAULT_SEPARATOR "***"
 
-//****************************************************************
+/*!
+  Converts rich text to plain text
+*/
 static QString plainText( const QString& richText )
 {
   QString aText = richText;
@@ -53,8 +55,9 @@ static QString plainText( const QString& richText )
   return aText;
 }
 
-//****************************************************************
-
+/*!
+  Default constructor
+*/
 LogWindow::LogWindow( QWidget* parent )
 : QFrame( parent ),
 SUIT_PopupClient()
@@ -83,10 +86,16 @@ SUIT_PopupClient()
   createActions();
 }
 
+/*!
+  Destructor
+*/
 LogWindow::~LogWindow()
 {
 }
 
+/*!
+  Custom event handler
+*/
 bool LogWindow::eventFilter( QObject* o, QEvent* e )
 {
   if ( o == myView->viewport() && e->type() == QEvent::ContextMenu )
@@ -97,6 +106,10 @@ bool LogWindow::eventFilter( QObject* o, QEvent* e )
   return QFrame::eventFilter( o, e );
 }
 
+/*!
+  Sets banner (title of message log)
+  \param banner - new title
+*/
 void LogWindow::setBanner( const QString& banner )
 {
   myBanner = banner;
@@ -104,6 +117,10 @@ void LogWindow::setBanner( const QString& banner )
   clear( false );
 }
 
+/*!
+  Set separator (line printing between messages)
+  \param separator - new separator
+*/
 void LogWindow::setSeparator( const QString& separator )
 {
   mySeparator = separator;
@@ -111,6 +128,11 @@ void LogWindow::setSeparator( const QString& separator )
   clear( false );
 }
 
+/*!
+  Puts message to log window
+  \param message - text of message
+  \addSeparator - if it is true, then separator is added to tail of message log
+*/
 void LogWindow::putMessage( const QString& message, bool addSeparator )
 {
   myView->append( message );
@@ -124,6 +146,10 @@ void LogWindow::putMessage( const QString& message, bool addSeparator )
   myView->scrollToBottom();
 }
 
+/*!
+  Clears message log
+  \param clearHistory - if it is true, then also history is cleared
+*/
 void LogWindow::clear( bool clearHistory )
 {
   myView->clear();
@@ -139,6 +165,10 @@ void LogWindow::clear( bool clearHistory )
     myBannerSize = 0;
 }
 
+/*!
+  Saves log to file
+  \param fileName - name of file
+*/
 bool LogWindow::saveLog( const QString& fileName )
 {
   QFile file( fileName );
@@ -160,6 +190,9 @@ bool LogWindow::saveLog( const QString& fileName )
   return true;
 }
 
+/*!
+  Creates actions
+*/
 void LogWindow::createActions()
 {
   QAction* a = new QAction( "", tr( "&Copy" ), 0, this );
@@ -183,6 +216,9 @@ void LogWindow::createActions()
   myActions.insert( SaveToFileId, a );
 }
 
+/*!
+  Redefined virtual method for popup filling
+*/
 void LogWindow::contextMenuPopup( QPopupMenu* popup )
 {
   myActions[ CopyId ]->addTo( popup );
@@ -199,6 +235,9 @@ void LogWindow::contextMenuPopup( QPopupMenu* popup )
   updateActions();
 }
 
+/*!
+  Updates enable status of actions
+*/
 void LogWindow::updateActions()
 {
   int paraFrom, paraTo, indexFrom, indexTo;
@@ -212,6 +251,9 @@ void LogWindow::updateActions()
   myActions[ SaveToFileId ]->setEnabled( myHistory.count() > 0 );
 }
 
+/*!
+  SLOT: called if user click "Save" in popup
+*/
 void LogWindow::onSaveToFile()
 {
   SUIT_Application* app = SUIT_Session::session()->activeApplication();
@@ -233,17 +275,26 @@ void LogWindow::onSaveToFile()
     SUIT_MessageBox::error1( this, tr( "Error" ), tr( "Can't save file" ), tr( "OK" ) );
 }
 
+/*!
+  SLOT: called if user click "Select all" in popup
+*/
 void LogWindow::onSelectAll()
 {
   if ( myView )
     myView->selectAll();
 }
 
+/*!
+  SLOT: called if user click "Clear" in popup
+*/
 void LogWindow::onClear()
 {
   clear( false );
 }
 
+/*!
+  SLOT: called if user click "Copy" in popup
+*/
 void LogWindow::onCopy()
 {
   if ( myView )
index 44001e068246217534a9539234c213328a851f07..c6aeeecc6925bce9ee3da9cb47e4a5c502c73150 100755 (executable)
 class QAction;
 class QTextBrowser;
 
+/*!
+  \class LogWindow
+  Widget, showing logs message. Allows to show, to clear, to copy messages and to save then to file
+*/
 class LOGWINDOW_EXPORT LogWindow : public QFrame, public SUIT_PopupClient
 {
   Q_OBJECT
index f4590c4c698ecbdbd886e91707abba53c3643764..0d0c931f7502aad2f670f0e1c73f5a793647e91d 100755 (executable)
@@ -1,3 +1,21 @@
+#  Copyright (C) 2005  CEA/DEN, EDF R&D, OPEN CASCADE, PRINCIPIA R&D
+#
+#  This library is free software; you can redistribute it and/or
+#  modify it under the terms of the GNU Lesser General Public
+#  License as published by the Free Software Foundation; either
+#  version 2.1 of the License.
+#
+#  This library is distributed in the hope that it will be useful,
+#  but WITHOUT ANY WARRANTY; without even the implied warranty of
+#  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+#  Lesser General Public License for more details.
+#
+#  You should have received a copy of the GNU Lesser General Public
+#  License along with this library; if not, write to the Free Software
+#  Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307 USA
+#
+#  See http://www.salome-platform.org/
+#
 #  File   : Makefile.in
 #  Author : Vladimir Klyachin (OCN)
 #  Module : LogWindow
index 98dede911c8370b7e48f5428ca98825d8467d253..1fd37e08bcb41b8baa4613c48d02a12495275b9a 100755 (executable)
 
 class Standard_Transient;
 class Handle_Standard_Type;
+/*!
+  \class Handle(AIS_InteractiveObject)
+  Smart pointer (handle) to AIS_InteractiveObject
+*/
 class Handle(AIS_InteractiveObject);
 class SALOME_AISObject;
 Standard_EXPORT Handle_Standard_Type& STANDARD_TYPE(SALOME_AISObject);
 
+/*!
+  \class Handle(SALOME_AISObject)
+  Smart pointer (handle) to SALOME_AISObject
+*/
 class Handle(SALOME_AISObject) : public Handle(AIS_InteractiveObject) {
   public:
     inline void* operator new(size_t,void* anAddress) 
index 65a1bc6d931bb2a838fe7df53870cb4d1be2d3e8..525fbada57a82d514b88291e7b90c7631e70f4f7 100755 (executable)
 
 class Standard_Transient;
 class Handle_Standard_Type;
+/*!
+  \class Handle(AIS_Shape)
+  Smart pointer (handle) to AIS_Shape
+*/
 class Handle(AIS_Shape);
 class SALOME_AISShape;
 Standard_EXPORT Handle_Standard_Type& STANDARD_TYPE(SALOME_AISShape);
 
+/*!
+  \class Handle(SALOME_AISShape)
+  Smart pointer (handle) to SALOME_AISShape
+*/
 class Handle(SALOME_AISShape) : public Handle(AIS_Shape) {
   public:
     inline void* operator new(size_t,void* anAddress) 
index 49eb7b877239f5fa57a8aed861f4f1493b1e3888..dc169db53750922974346e641036f2b079d6518f 100644 (file)
 
 class Standard_Transient;
 class Handle_Standard_Type;
+/*!
+  \class Handle(MMgt_TShared)
+  Smart pointer (handle) to MMgt_TShared
+*/
 class Handle(MMgt_TShared);
 class SALOME_Filter;
 Standard_EXPORT Handle_Standard_Type& STANDARD_TYPE(SALOME_Filter);
 
+/*!
+  \class Handle(SALOME_Filter)
+  Smart pointer (handle) to SALOME_Filter
+*/
 class Handle(SALOME_Filter) : public Handle(MMgt_TShared) {
   public:
     inline void* operator new(size_t,void* anAddress) 
index 767dfec3f5f51687e3ff952fd159e5e4ffe9ee4e..e4f3622fb1483758047881870992a064ed7005de 100755 (executable)
 
 class Standard_Transient;
 class Handle_Standard_Type;
+/*!
+  \class Handle(MMgt_TShared)
+  Smart pointer (handle) to MMgt_TShared
+*/
 class Handle(MMgt_TShared);
 class SALOME_InteractiveObject;
 Standard_EXPORT Handle_Standard_Type& STANDARD_TYPE(SALOME_InteractiveObject);
 
+/*!
+  \class Handle(SALOME_InteractiveObject)
+  Smart pointer (handle) to SALOME_InteractiveObject
+*/
 class Handle(SALOME_InteractiveObject) : public Handle(MMgt_TShared) {
   public:
     void* operator new(size_t,void* anAddress) 
index 0df5e98bee064b21ce6a649d977250103cc64f34..986a4da6e7094493756cf042e0551a4aa59704eb 100644 (file)
 
 class Standard_Transient;
 class Handle_Standard_Type;
+/*!
+  \class Handle(TCollection_MapNode)
+  Smart pointer (handle) to TCollection_MapNode
+*/
 class Handle(TCollection_MapNode);
 class SALOME_ListNodeOfListIO;
 Standard_EXPORT Handle_Standard_Type& STANDARD_TYPE(SALOME_ListNodeOfListIO);
 
+/*!
+  \class Handle(SALOME_ListNodeOfListIO)
+  Smart pointer (handle) to SALOME_ListNodeOfListIO
+*/
 class Handle(SALOME_ListNodeOfListIO) : public Handle(TCollection_MapNode) {
   public:
     void* operator new(size_t,void* anAddress) 
index 4fdd91368589352074ec12ab7d7b5d57c5c2ddbf..b41dc2bacc66ef7094125389ea55f833301790d6 100644 (file)
 
 class Standard_Transient;
 class Handle_Standard_Type;
+/*!
+  \class Handle(SALOME_Filter)
+  Smart pointer (handle) to SALOME_Filter
+*/
 class Handle(SALOME_Filter);
 class SALOME_TypeFilter;
 Standard_EXPORT Handle_Standard_Type& STANDARD_TYPE(SALOME_TypeFilter);
 
+/*!
+  \class Handle(SALOME_TypeFilter)
+  Smart pointer (handle) to SALOME_TypeFilter
+*/
 class Handle(SALOME_TypeFilter) : public Handle(SALOME_Filter) {
   public:
     inline void* operator new(size_t,void* anAddress) 
index 9171c05f66be758054be58ef454f975447973569..f992a298e6573a24010e350d76bf1ec0bf5e302e 100755 (executable)
@@ -1,3 +1,21 @@
+#  Copyright (C) 2005  CEA/DEN, EDF R&D, OPEN CASCADE, PRINCIPIA R&D
+#
+#  This library is free software; you can redistribute it and/or
+#  modify it under the terms of the GNU Lesser General Public
+#  License as published by the Free Software Foundation; either
+#  version 2.1 of the License.
+#
+#  This library is distributed in the hope that it will be useful,
+#  but WITHOUT ANY WARRANTY; without even the implied warranty of
+#  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+#  Lesser General Public License for more details.
+#
+#  You should have received a copy of the GNU Lesser General Public
+#  License along with this library; if not, write to the Free Software
+#  Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307 USA
+#
+#  See http://www.salome-platform.org/
+#
 # source path
 top_srcdir=@top_srcdir@
 top_builddir=../..
index dcd76be06d3e55724c53cd3a36a2b6cd51860b8e..1bd77e3ba7c34c676b123cae1614f3af66e4e88f 100755 (executable)
 //using namespace std;
 #include "SALOME_AISShape.ixx"
 
-SALOME_AISShape::SALOME_AISShape(const TopoDS_Shape& shape): AIS_Shape(shape) {
+/*!
+  Constructor
+  \param shape - TopoDS shape 
+*/
+SALOME_AISShape::SALOME_AISShape(const TopoDS_Shape& shape)
+: AIS_Shape(shape)
+{
 }
 
index 4cab4c88e60e0bb0d01b3e088c1b2548c6ee4811..8af01576fc3d0200aed168e9156677a04ccfe4ba 100644 (file)
 #include "SALOME_DataMapIteratorOfDataMapOfIOMapOfInteger.hxx"
 #endif
 using namespace std;
+
+/*!
+  Destructor
+*/
 SALOME_DataMapNodeOfDataMapOfIOMapOfInteger::~SALOME_DataMapNodeOfDataMapOfIOMapOfInteger() {}
  
 
 
+/*!
+  \return OCC Handle Type
+*/
 Standard_EXPORT Handle_Standard_Type& SALOME_DataMapNodeOfDataMapOfIOMapOfInteger_Type_()
 {
 
@@ -72,9 +79,9 @@ Standard_EXPORT Handle_Standard_Type& SALOME_DataMapNodeOfDataMapOfIOMapOfIntege
 }
 
 
-// DownCast method
-//   allow safe downcasting
-//
+/*!
+  DownCast method: allows safe downcasting
+*/
 const Handle(SALOME_DataMapNodeOfDataMapOfIOMapOfInteger) Handle(SALOME_DataMapNodeOfDataMapOfIOMapOfInteger)::DownCast(const Handle(Standard_Transient)& AnObject) 
 {
   Handle(SALOME_DataMapNodeOfDataMapOfIOMapOfInteger) _anOtherObject;
@@ -87,14 +94,26 @@ const Handle(SALOME_DataMapNodeOfDataMapOfIOMapOfInteger) Handle(SALOME_DataMapN
 
   return _anOtherObject ;
 }
+
+/*!
+  \return OCC Handle dynamic Type
+*/
 const Handle(Standard_Type)& SALOME_DataMapNodeOfDataMapOfIOMapOfInteger::DynamicType() const 
 { 
   return STANDARD_TYPE(SALOME_DataMapNodeOfDataMapOfIOMapOfInteger) ; 
 }
+
+/*!
+  \return true if other type is the same
+  \param AType - type to be checked
+*/
 Standard_Boolean SALOME_DataMapNodeOfDataMapOfIOMapOfInteger::IsKind(const Handle(Standard_Type)& AType) const 
 { 
   return (STANDARD_TYPE(SALOME_DataMapNodeOfDataMapOfIOMapOfInteger) == AType || TCollection_MapNode::IsKind(AType)); 
 }
+/*!
+  Destructor
+*/
 Handle_SALOME_DataMapNodeOfDataMapOfIOMapOfInteger::~Handle_SALOME_DataMapNodeOfDataMapOfIOMapOfInteger() {}
 #define TheKey Handle_SALOME_InteractiveObject
 #define TheKey_hxx "SALOME_InteractiveObject.hxx"
index 7d60d59e672ebec2e6620f4e89df7e6e0deb76a8..bd7f5c4f84ef180474e6834230bca165625470ca 100755 (executable)
@@ -34,6 +34,9 @@
 
 #include "SALOME_InteractiveObject.ixx"
 
+/*!
+  Default constructor
+*/
 SALOME_InteractiveObject::SALOME_InteractiveObject()
 {
   myEntry = "";
@@ -42,6 +45,12 @@ SALOME_InteractiveObject::SALOME_InteractiveObject()
   myReference = "";
 }
 
+/*!
+  Constructor
+  \param anEntry - entry of object
+  \param aComponentDataType - component data type name
+  \param aName - name of object
+*/
 SALOME_InteractiveObject::SALOME_InteractiveObject(const char* anEntry, 
                                                   const char* aComponentDataType,
                                                   const char* aName):
@@ -51,34 +60,62 @@ SALOME_InteractiveObject::SALOME_InteractiveObject(const char* anEntry,
   myReference("")
 {}
 
+/*!
+  Sets entry
+  \param anEntry - new entry of object
+*/
 void SALOME_InteractiveObject::setEntry(const char* anEntry){
   myEntry = anEntry;
 }
 
+/*!
+  \return entry
+*/
 const char* SALOME_InteractiveObject::getEntry(){
   return myEntry.c_str();
 }
 
+/*!
+  Sets component data type
+  \param aComponentDataType - component data type name
+*/
 void SALOME_InteractiveObject::setComponentDataType(const char* aComponentDataType){
   myComponentDataType = aComponentDataType; 
 }
 
+/*!
+  \return component data type
+*/
 const char* SALOME_InteractiveObject::getComponentDataType(){
   return myComponentDataType.c_str();
 }
 
+/*!
+  Sets name
+  \param aName - new name of object
+*/
 void SALOME_InteractiveObject::setName(const char* aName){
   myName = aName;
 }
 
+/*!
+  \return name
+*/
 const char* SALOME_InteractiveObject::getName(){
   return myName.c_str();
 }
 
+/*!
+  \return true if entry isn't empty
+*/
 Standard_Boolean SALOME_InteractiveObject::hasEntry(){
   return myEntry != "";
 }
 
+/*!
+  \return true if objects have same entries
+  \param anIO - other object
+*/
 Standard_Boolean SALOME_InteractiveObject::isSame(const Handle(SALOME_InteractiveObject)& anIO ){
   if ( anIO->hasEntry() && this->hasEntry() ) {
     if ( myEntry == anIO->getEntry() )
@@ -88,6 +125,10 @@ Standard_Boolean SALOME_InteractiveObject::isSame(const Handle(SALOME_Interactiv
   return Standard_False;
 }
 
+/*!
+  \return true if component data types are same
+  \param ComponentDataType - component data type to be checked
+*/
 Standard_Boolean SALOME_InteractiveObject::isComponentType(const char* ComponentDataType){
   if ( myComponentDataType == ComponentDataType )
     return Standard_True;
@@ -95,16 +136,26 @@ Standard_Boolean SALOME_InteractiveObject::isComponentType(const char* Component
     return Standard_False;
 }
 
+/*!
+  \return true if object has reference
+*/
 Standard_Boolean SALOME_InteractiveObject::hasReference()
 {
   return myReference != "";
 }
 
+/*!
+  \return reference
+*/
 const char* SALOME_InteractiveObject::getReference()
 {
   return myReference.c_str();
 }
 
+/*!
+  Sets reference
+  \param aReference - new reference
+*/
 void SALOME_InteractiveObject::setReference(const char* aReference)
 {
   myReference = aReference;
index e028e243ffa487872790ca787572baa45fcf72d1..43cc9f8ff29e08ec651ad0397475f347517fd9d4 100644 (file)
@@ -55,6 +55,10 @@ class SALOME_ListNodeOfListIO;
 #include <Standard_Macro.hxx>
 #endif
 
+/*!
+  \class SALOME_ListIO
+  List of SALOME interactive objects
+*/
 class SALOME_ListIO  {
 
 public:
index 9aed956f8060d55a13ebb5e25225b8419b82e35d..7734399e46bff4c35db9085139a8df855926bd92 100644 (file)
@@ -47,7 +47,10 @@ class SALOME_InteractiveObject;
 class SALOME_ListIO;
 class SALOME_ListIteratorOfListIO;
 
-
+/*!
+  \class SALOME_ListNodeOfListIO
+  Auxiliary class, represents list node for SALOME_ListIO
+*/
 class SALOME_ListNodeOfListIO : public TCollection_MapNode {
 
 public:
index 35f04d576adfc8595cebca8f0ccb3a86dcace8d8..ba678a2126b122e68bd7d69cddb28699c37000b3 100644 (file)
 #include "SALOME_ListIteratorOfListIO.hxx"
 #endif
 using namespace std;
+
+/*!
+  Destructor
+*/
 SALOME_ListNodeOfListIO::~SALOME_ListNodeOfListIO() {}
  
 
-
+/*!
+  \return OCC Handle Type
+*/
 Standard_EXPORT Handle_Standard_Type& SALOME_ListNodeOfListIO_Type_()
 {
 
@@ -66,9 +72,9 @@ Standard_EXPORT Handle_Standard_Type& SALOME_ListNodeOfListIO_Type_()
 }
 
 
-// DownCast method
-//   allow safe downcasting
-//
+/*!
+  DownCast method, allows safe downcasting
+*/
 const Handle(SALOME_ListNodeOfListIO) Handle(SALOME_ListNodeOfListIO)::DownCast(const Handle(Standard_Transient)& AnObject) 
 {
   Handle(SALOME_ListNodeOfListIO) _anOtherObject;
@@ -81,14 +87,26 @@ const Handle(SALOME_ListNodeOfListIO) Handle(SALOME_ListNodeOfListIO)::DownCast(
 
   return _anOtherObject ;
 }
+
+/*!
+  \return OCC Handle dynamic Type
+*/
 const Handle(Standard_Type)& SALOME_ListNodeOfListIO::DynamicType() const 
 { 
   return STANDARD_TYPE(SALOME_ListNodeOfListIO) ; 
 }
+
+/*!
+  \return true if other type is the same
+  \param AType - type to be checked
+*/
 Standard_Boolean SALOME_ListNodeOfListIO::IsKind(const Handle(Standard_Type)& AType) const 
 { 
   return (STANDARD_TYPE(SALOME_ListNodeOfListIO) == AType || TCollection_MapNode::IsKind(AType)); 
 }
+/*!
+  Destructor
+*/
 Handle_SALOME_ListNodeOfListIO::~Handle_SALOME_ListNodeOfListIO() {}
 #define Item Handle_SALOME_InteractiveObject
 #define Item_hxx "SALOME_InteractiveObject.hxx"
index 83f1d71ec1a00ff341a886ea5fa14e5efd95fe15..65b2cf9c65da81c73b01b4089f15ec59c3cbd95f 100644 (file)
 #include "SALOME_InteractiveObject.hxx"
 using namespace std;
 
+/*!
+  Constructor
+  \param TheKind - type of filter
+*/
 SALOME_TypeFilter::SALOME_TypeFilter(const Standard_CString TheKind):
 myKind(TheKind){}
 
+/*!
+  \return true if object passes filter
+  \param anObj - object to be checked
+*/
 Standard_Boolean SALOME_TypeFilter::IsOk(const Handle(SALOME_InteractiveObject)& anObj) const 
 {
   return anObj->isComponentType( myKind );
index 6eb3077b85ba3be5b3be4ae2b7d408df0ab9e6ea..3e796c0a66416ddceba6e4be9fa3f4b0553f2c14 100755 (executable)
@@ -1,3 +1,21 @@
+#  Copyright (C) 2005  CEA/DEN, EDF R&D, OPEN CASCADE, PRINCIPIA R&D
+#
+#  This library is free software; you can redistribute it and/or
+#  modify it under the terms of the GNU Lesser General Public
+#  License as published by the Free Software Foundation; either
+#  version 2.1 of the License.
+#
+#  This library is distributed in the hope that it will be useful,
+#  but WITHOUT ANY WARRANTY; without even the implied warranty of
+#  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+#  Lesser General Public License for more details.
+#
+#  You should have received a copy of the GNU Lesser General Public
+#  License along with this library; if not, write to the Free Software
+#  Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307 USA
+#
+#  See http://www.salome-platform.org/
+#
 #  File   : Makefile.in
 #  Author : Vladimir Klyachin (OCN)
 #  Module : OCCViewer
index c17bfd33dd43a61f67e27cddd1266a6b877192d0..b8b49e67354887ee1c5632d989f082514ec0b085 100644 (file)
@@ -1,17 +1,33 @@
+// Copyright (C) 2005  CEA/DEN, EDF R&D, OPEN CASCADE, PRINCIPIA R&D
+//
+// This library is free software; you can redistribute it and/or
+// modify it under the terms of the GNU Lesser General Public
+// License as published by the Free Software Foundation; either
+// version 2.1 of the License.
+//
+// This library is distributed in the hope that it will be useful
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+// Lesser General Public License for more details.
+//
+// You should have received a copy of the GNU Lesser General Public
+// License along with this library; if not, write to the Free Software
+// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307 USA
+//
+// See http://www.salome-platform.org/
+//
 #include "OCCViewer_ClippingDlg.h"
 
 #include <QtxDblSpinBox.h>
+#include <QtxAction.h>
 
 #include "SUIT_Session.h"
 #include "SUIT_ViewWindow.h"
 #include "OCCViewer_ViewWindow.h"
 #include "OCCViewer_ViewPort3d.h"
 
-//#include "utilities.h"
-
 #include <V3d_View.hxx>
-#include <V3d.hxx>
-#include <V3d_Plane.hxx>
+//#include <V3d.hxx>
 #include <Geom_Plane.hxx>
 #include <Prs3d_Presentation.hxx>
 #include <AIS_ListIteratorOfListOfInteractive.hxx>
 #include <qcombobox.h>
 #include <qcheckbox.h>
 
-//=================================================================================
-// class    : OCCViewer_ClippingDlg()
-// purpose  : 
-//=================================================================================
+/*!
+  Constructor
+  \param view - view window
+  \param parent - parent widget
+  \param name - dialog name
+  \param modal - is this dialog modal
+  \param fl - flags
+*/
 OCCViewer_ClippingDlg::OCCViewer_ClippingDlg( OCCViewer_ViewWindow* view, QWidget* parent, const char* name, bool modal, WFlags fl )
-  : QDialog( parent, "OCCViewer_ClippingDlg", modal, WStyle_Customize | WStyle_NormalBorder | WStyle_Title | WStyle_SysMenu ), myView( view )
+: QDialog( parent, "OCCViewer_ClippingDlg", modal, WStyle_Customize | WStyle_NormalBorder | WStyle_Title | WStyle_SysMenu ),
+  myView( view )
 {
   setCaption( tr( "Clipping" ) );
   
@@ -193,42 +214,50 @@ OCCViewer_ClippingDlg::OCCViewer_ClippingDlg( OCCViewer_ViewWindow* view, QWidge
   myBusy = false;
 }
 
-//=================================================================================
-// function : ~ OCCViewer_ClippingDlg()
-// purpose  : Destroys the object and frees any allocated resources
-//=================================================================================
+/*!
+  Destructor
+  Destroys the object and frees any allocated resources
+*/
 OCCViewer_ClippingDlg::~ OCCViewer_ClippingDlg()
 {
   // no need to delete child widgets, Qt does it all for us
 }
 
 
-//=================================================================================
-// function : closeEvent
-// purpose  :
-//=================================================================================
+/*!
+  Custom handling of close event: erases preview
+*/
 void OCCViewer_ClippingDlg::closeEvent( QCloseEvent* e )
 {
   erasePreview();
+  
+  // Set the clipping plane back
+  Handle(V3d_View) aView3d = myView->getViewPort()->getView();
+  if ( !aView3d.IsNull() && !myClippingPlane.IsNull() )
+    aView3d->SetPlaneOn( myClippingPlane );
+  
+  if (!myView->isCuttingPlane())
+    myAction->setOn( false );
+  
   QDialog::closeEvent( e );
 }
 
 
-//=================================================================================
-// function : showEvent
-// purpose  :
-//=================================================================================
+/*!
+  Custom handling of show event: displays preview
+*/
 void OCCViewer_ClippingDlg::showEvent( QShowEvent* e )
 {
+  ReserveClippingPlane();
+  
   QDialog::showEvent( e );
   onPreview( PreviewChB->isChecked() );
 }
 
 
-//=================================================================================
-// function : hideEvent
-// purpose  :
-//=================================================================================
+/*!
+  Custom handling of hide event: erases preview
+*/
 void OCCViewer_ClippingDlg::hideEvent( QHideEvent* e )
 {
   erasePreview();
@@ -236,21 +265,28 @@ void OCCViewer_ClippingDlg::hideEvent( QHideEvent* e )
 }
 
 
-//=================================================================================
-// function : ClickOnClose()
-// purpose  :
-//=================================================================================
+/*!
+  SLOT on close button click: erases preview and rejects dialog
+*/
 void OCCViewer_ClippingDlg::ClickOnClose()
 {
   erasePreview();
+
+  // Set the clipping plane back
+  Handle(V3d_View) aView3d = myView->getViewPort()->getView();
+  if ( !aView3d.IsNull() && !myClippingPlane.IsNull() )
+    aView3d->SetPlaneOn( myClippingPlane );
+
+  if (!myView->isCuttingPlane())
+    myAction->setOn( false );
+  
   reject();
 }
 
 
-//=================================================================================
-// function : ClickOnApply()
-// purpose  :
-//=================================================================================
+/*!
+  SLOT on apply button click: sets cutting plane
+*/
 void OCCViewer_ClippingDlg::ClickOnApply()
 {
   qApp->processEvents();
@@ -261,15 +297,15 @@ void OCCViewer_ClippingDlg::ClickOnApply()
                                 SpinBox_Dx->value(), SpinBox_Dy->value(), SpinBox_Dz->value() );
   
   QApplication::restoreOverrideCursor(); 
-
+  
   erasePreview();
+  
+  ReserveClippingPlane();
 }
 
-
-//=================================================================================
-// function : onReset()
-// purpose  :
-//=================================================================================
+/*!
+  SLOT on reset button click: sets default values
+*/
 void OCCViewer_ClippingDlg::onReset()
 {
   myBusy = true;
@@ -285,11 +321,9 @@ void OCCViewer_ClippingDlg::onReset()
     }
 }
 
-
-//=================================================================================
-// function : onInvert()
-// purpose  :
-//=================================================================================
+/*!
+  SLOT on invert button click: inverts normal of cutting plane
+*/
 void OCCViewer_ClippingDlg::onInvert()
 {
   double Dx = SpinBox_Dx->value();
@@ -309,11 +343,9 @@ void OCCViewer_ClippingDlg::onInvert()
     }
 }
 
-
-//=================================================================================
-// function : onModeChanged()
-// purpose  :
-//=================================================================================
+/*!
+  SLOT: called on mode changed
+*/
 void OCCViewer_ClippingDlg::onModeChanged( int mode )
 {
   bool isUserMode = (mode==0);
@@ -375,10 +407,9 @@ void OCCViewer_ClippingDlg::onModeChanged( int mode )
 }
 
 
-//================================================================
-// Function : displayPreview
-// Purpose  : 
-//================================================================
+/*!
+  Displays preview of clipping plane
+*/
 void OCCViewer_ClippingDlg::displayPreview()
 {
   if ( myBusy || !isValid() )
@@ -440,6 +471,9 @@ void OCCViewer_ClippingDlg::displayPreview()
   myPreviewPlane = new AIS_Plane( new Geom_Plane( aBasePnt, aNormal ) );
   myPreviewPlane->SetSize( aSize, aSize );
   
+  // Deactivate clipping planes
+  myView->getViewPort()->getView()->SetPlaneOff();
+
   ic->Display( myPreviewPlane, 1, -1, false );
   ic->SetWidth( myPreviewPlane, 10, false );
   ic->SetMaterial( myPreviewPlane, Graphic3d_NOM_PLASTIC, false );
@@ -450,10 +484,9 @@ void OCCViewer_ClippingDlg::displayPreview()
 }
 
 
-//================================================================
-// Function : erasePreview
-// Purpose  : 
-//================================================================
+/*!
+  Erases preview of clipping plane
+*/
 void OCCViewer_ClippingDlg::erasePreview ()
 {
   OCCViewer_Viewer* anOCCViewer = (OCCViewer_Viewer*)myView->getViewManager()->getViewModel();
@@ -473,10 +506,9 @@ void OCCViewer_ClippingDlg::erasePreview ()
 }
 
 
-//================================================================
-// Function : onValueChanged
-// Purpose  : 
-//================================================================
+/*!
+  SLOT: called on value changes (co-ordinates of point or normal)
+*/
 void OCCViewer_ClippingDlg::onValueChanged()
 {
   if ( PreviewChB->isChecked() )
@@ -487,10 +519,9 @@ void OCCViewer_ClippingDlg::onValueChanged()
 }
 
 
-//================================================================
-// Function : onPreview
-// Purpose  : 
-//================================================================
+/*!
+  SLOT: called on preview check box toggled
+*/
 void OCCViewer_ClippingDlg::onPreview( bool on )
 {
   erasePreview();
@@ -499,11 +530,24 @@ void OCCViewer_ClippingDlg::onPreview( bool on )
     displayPreview();
 }
 
-//================================================================
-// Function : onPreview
-// Purpose  : 
-//================================================================
+/*!
+  \return true if plane parameters are valid
+*/
 bool OCCViewer_ClippingDlg::isValid()
 {
   return ( SpinBox_Dx->value()!=0 || SpinBox_Dy->value()!=0 || SpinBox_Dz->value()!=0 );
 }
+
+/*!
+  Remember the current clipping plane
+*/
+void OCCViewer_ClippingDlg::ReserveClippingPlane()
+{
+  Handle(V3d_View) aView3d = myView->getViewPort()->getView();
+  if ( !aView3d.IsNull() )
+    {
+      aView3d->InitActivePlanes();
+      if ( aView3d->MoreActivePlanes() )
+       myClippingPlane = aView3d->ActivePlane();
+    }
+}
index e46903a0595b007fceb8113536cfca9553c210f7..192668cdd7b148b0828e526e169349610e8d7fd8 100644 (file)
@@ -1,3 +1,21 @@
+// Copyright (C) 2005  CEA/DEN, EDF R&D, OPEN CASCADE, PRINCIPIA R&D
+//
+// This library is free software; you can redistribute it and/or
+// modify it under the terms of the GNU Lesser General Public
+// License as published by the Free Software Foundation; either
+// version 2.1 of the License.
+//
+// This library is distributed in the hope that it will be useful
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+// Lesser General Public License for more details.
+//
+// You should have received a copy of the GNU Lesser General Public
+// License along with this library; if not, write to the Free Software
+// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307 USA
+//
+// See http://www.salome-platform.org/
+//
 #ifndef OCCVIEWER_CLIPPINGDLG_H
 #define OCCVIEWER_CLIPPINGDLG_H
 
@@ -6,6 +24,7 @@
 #include <qdialog.h>
 
 #include <AIS_Plane.hxx>
+#include <V3d_Plane.hxx>
 
 class QGroupBox;
 class QLabel;
@@ -13,14 +32,15 @@ class QPushButton;
 class QComboBox;
 class QCheckBox;
 class QtxDblSpinBox;
+class QtxAction;
 
 class OCCViewer_ViewWindow;
 
 
-//=================================================================================
-// class    : OCCViewer_ClippingDlg
-// purpose  :
-//=================================================================================
+/*!
+  \class OCCViewer_ClippingDlg
+  \brief Dialog allowing to assign parameters of clipping plane
+*/
 class OCCViewer_ClippingDlg : public QDialog
 {
     Q_OBJECT
@@ -28,6 +48,8 @@ class OCCViewer_ClippingDlg : public QDialog
     public:
     OCCViewer_ClippingDlg(OCCViewer_ViewWindow* , QWidget* parent = 0, const char* name = 0, bool modal = FALSE, WFlags fl = 0);
     ~OCCViewer_ClippingDlg();
+
+    void SetAction( QtxAction* theAction ) { myAction = theAction; }
     
 private :
 
@@ -36,6 +58,7 @@ private :
     virtual void hideEvent ( QHideEvent * );
     void displayPreview();
     void erasePreview();
+    void ReserveClippingPlane();
 
     bool isValid();
      
@@ -67,8 +90,11 @@ private :
     OCCViewer_ViewWindow* myView;
 
     Handle(AIS_Plane) myPreviewPlane;
+    Handle(V3d_Plane) myClippingPlane;
     
     bool myBusy;
+
+    QtxAction* myAction;
     
 private slots:
   void ClickOnApply();
index a79d5f2c74a1f81b575165ac500b74be70003047..8092b1b6dc6c12139cfce0065a9fb8d8c476d8f2 100755 (executable)
@@ -25,6 +25,9 @@
 #include <qpainter.h>
 #include <qimage.h>
 
+/*!
+  Constructor
+*/
 OCCViewer_CreateRestoreViewDlg::OCCViewer_CreateRestoreViewDlg( QWidget* aWin, OCCViewer_Viewer* curModel )
 : QDialog( aWin )
 {
@@ -95,10 +98,17 @@ OCCViewer_CreateRestoreViewDlg::OCCViewer_CreateRestoreViewDlg( QWidget* aWin, O
   connect( theClearAll, SIGNAL( clicked() ), this, SLOT( clearList() ) );
 }
 
+/*!
+  Destructor
+*/
 OCCViewer_CreateRestoreViewDlg::~OCCViewer_CreateRestoreViewDlg()
 {
 }
 
+/*!
+  Changes image in accordance with item
+  \param curItem - item contains info about view parameters
+*/
 void OCCViewer_CreateRestoreViewDlg::changeImage( QListBoxItem* curItem )
 {
        if( curItem && myListBox->isEditEnabled() )
@@ -146,11 +156,17 @@ void OCCViewer_CreateRestoreViewDlg::changeImage( QListBoxItem* curItem )
         }
 }
 
+/*!
+  \return current view parameters (corresponding to current item)
+*/
 viewAspect OCCViewer_CreateRestoreViewDlg::currentItem() const
 {
        return myCurrentItem;
 }
 
+/*!
+  Deletes selected items from list view
+*/
 void OCCViewer_CreateRestoreViewDlg::deleteSelectedItems()
 {
        if( myListBox->count() && myListBox->isEditEnabled() )
@@ -185,6 +201,9 @@ void OCCViewer_CreateRestoreViewDlg::deleteSelectedItems()
        }
 }
 
+/*!
+  Clears list of view aspects
+*/
 void OCCViewer_CreateRestoreViewDlg::clearList()
 {
        myListBox->clear();
@@ -194,17 +213,27 @@ void OCCViewer_CreateRestoreViewDlg::clearList()
        myParametersMap.clear();
 }
 
+/*!
+  \return const reference to all view aspects
+*/
 const viewAspectList& OCCViewer_CreateRestoreViewDlg::parameters() const
 {
        return myParametersMap;
 }
 
+/*!
+  Renames key of view aspect map in accordance with item name
+  \param anItem - item
+*/
 void OCCViewer_CreateRestoreViewDlg::editItemText( QListBoxItem* anItem )
 {
        int index = anItem->listBox()->index( anItem );
        myParametersMap[ index ].name = anItem->text().latin1();
 }
 
+/*!
+  Custom event filter
+*/
 bool OCCViewer_CreateRestoreViewDlg::eventFilter( QObject* anObj, QEvent* anEv )
 {
        if( anEv->type() == QEvent::KeyPress )
@@ -234,6 +263,9 @@ bool OCCViewer_CreateRestoreViewDlg::eventFilter( QObject* anObj, QEvent* anEv )
        return QWidget::eventFilter( anObj, anEv );
 }
 
+/*!
+  SLOT: called on OK click, emits dlgOk() and closes dialog
+*/
 void OCCViewer_CreateRestoreViewDlg::OKpressed()
 {
        emit dlgOk();
index 0c3deacf24689ba88bafc450ff2e6d2d053ac5c7..299dd6bcd6d672929f5b6a91b4db919d46ae2462 100755 (executable)
 //
 // See http://www.salome-platform.org/
 //
-/***********************************************************************
-
-     FONCTION :
-     ----------
-        Classe OCCViewer_VService :
-
-     HISTORIQUE DES MODIFICATIONS   :
-     --------------------------------
-      00-09-92 : GG  ; Creation.
-      25-02-98 : FMN ; PERF.27: Optimisation de la création d'une vue Ã  partir d'une vue existante
-
-     REMARQUES :
-     -----------
-
-************************************************************************/
-
-/*----------------------------------------------------------------------*/
-/*
- * Includes
- */
-//just to load the OpenGl shared library
-//#include <OpenGl_GraphicDriver.hxx>
 
 #include "OCCViewer_VService.h"
 #include <V3d_Viewer.hxx>
index dedfc4a0db6956665e2f178f90eb0d8d34c10bdf..7db1cc8a36c6d4667ab3ae3b1244efd33c59d1e6 100755 (executable)
@@ -22,7 +22,9 @@
 
 int OCCViewer_ViewManager::myMaxId = 0;
 
-//***************************************************************/
+/*!
+  Constructor
+*/
 OCCViewer_ViewManager::OCCViewer_ViewManager( SUIT_Study* study, SUIT_Desktop* theDesktop, bool DisplayTrihedron )
 : SUIT_ViewManager( study, theDesktop )
 {
@@ -30,19 +32,27 @@ OCCViewer_ViewManager::OCCViewer_ViewManager( SUIT_Study* study, SUIT_Desktop* t
   setViewModel( new OCCViewer_Viewer( DisplayTrihedron ) );
 }
 
-//***************************************************************/
+/*!
+  Destructor
+*/
 OCCViewer_ViewManager::~OCCViewer_ViewManager()
 {
 }
 
-//***************************************************************/
+/*!
+  Sets view name
+  \param theView - view to assign name
+*/
 void OCCViewer_ViewManager::setViewName(SUIT_ViewWindow* theView)
 {
   int aPos = myViews.find(theView);
   theView->setCaption( tr( "OCC_VIEW_TITLE" ).arg( myId ).arg( aPos + 1 ) );
 }
 
-//***************************************************************/
+/*!
+  Fills popup menu with custom actions
+ \param popup - popup menu to be filled with
+*/
 void OCCViewer_ViewManager::contextMenuPopup( QPopupMenu* popup )
 {
   SUIT_ViewManager::contextMenuPopup( popup );
index 216c9ec845c0507f548621c4f58f98f1e1da2109..d40b805689d168008985c644f70f766c538ab534 100755 (executable)
 #include <Prs3d_DatumAspect.hxx>
 #include <Prs3d_LineAspect.hxx>
 
+/*!
+  Constructor
+  \param DisplayTrihedron - is trihedron displayed
+*/
 OCCViewer_Viewer::OCCViewer_Viewer( bool DisplayTrihedron )
 : SUIT_ViewModel(),
 myBgColor( Qt::black )
@@ -92,22 +96,35 @@ myBgColor( Qt::black )
   myMultiSelectionEnabled = true;
 }
 
-
+/*!
+  Destructor
+*/
 OCCViewer_Viewer::~OCCViewer_Viewer() 
 {
 }
 
+/*!
+  \return background color of viewer
+*/
 QColor OCCViewer_Viewer::backgroundColor() const
 {
   return myBgColor;
 }
 
+/*!
+  Sets background color
+  \param c - new background color
+*/
 void OCCViewer_Viewer::setBackgroundColor( const QColor& c )
 {
   if ( c.isValid() )
     myBgColor = c;
 }
 
+/*!
+  Start initialization of view window
+  \param view - view window to be initialized
+*/
 void OCCViewer_Viewer::initView( OCCViewer_ViewWindow* view )
 {
   if ( view ) {
@@ -119,7 +136,10 @@ void OCCViewer_Viewer::initView( OCCViewer_ViewWindow* view )
   }
 }
 
-
+/*!
+  Creates new view window
+  \param theDesktop - main window of application
+*/
 SUIT_ViewWindow* OCCViewer_Viewer::createView( SUIT_Desktop* theDesktop )
 {
   OCCViewer_ViewWindow* view = new OCCViewer_ViewWindow(theDesktop, this);
@@ -127,7 +147,10 @@ SUIT_ViewWindow* OCCViewer_Viewer::createView( SUIT_Desktop* theDesktop )
   return view;
 }
 
-//*********************************************************************
+/*!
+  Sets new view manager
+  \param theViewManager - new view manager
+*/
 void OCCViewer_Viewer::setViewManager(SUIT_ViewManager* theViewManager)
 {
   SUIT_ViewModel::setViewManager(theViewManager);
@@ -143,15 +166,17 @@ void OCCViewer_Viewer::setViewManager(SUIT_ViewManager* theViewManager)
   }
 }
 
-
-//*********************************************************************
+/*!
+  SLOT: called on mouse button press, stores current mouse position as start point for transformations
+*/
 void OCCViewer_Viewer::onMousePress(SUIT_ViewWindow* theWindow, QMouseEvent* theEvent)
 {
   myStartPnt.setX(theEvent->x()); myStartPnt.setY(theEvent->y());
 }
 
-
-//*********************************************************************
+/*!
+  SLOT: called on mouse move, processes transformation or hilighting
+*/
 void OCCViewer_Viewer::onMouseMove(SUIT_ViewWindow* theWindow, QMouseEvent* theEvent)
 {
   if (!mySelectionEnabled) return;
@@ -163,7 +188,9 @@ void OCCViewer_Viewer::onMouseMove(SUIT_ViewWindow* theWindow, QMouseEvent* theE
 }
 
 
-//*********************************************************************
+/*!
+  SLOT: called on mouse button release, finishes transformation or selection
+*/
 void OCCViewer_Viewer::onMouseRelease(SUIT_ViewWindow* theWindow, QMouseEvent* theEvent)
 {
   if (!mySelectionEnabled) return;
@@ -211,7 +238,10 @@ void OCCViewer_Viewer::onMouseRelease(SUIT_ViewWindow* theWindow, QMouseEvent* t
 }
 
 
-//*********************************************************************
+/*!
+  Sets selection enabled status
+  \param isEnabled - new status
+*/
 void OCCViewer_Viewer::enableSelection(bool isEnabled)
 {
   mySelectionEnabled = isEnabled;
@@ -228,7 +258,10 @@ void OCCViewer_Viewer::enableSelection(bool isEnabled)
   }
 }
 
-//*********************************************************************
+/*!
+  Sets multiselection enabled status
+  \param isEnabled - new status
+*/
 void OCCViewer_Viewer::enableMultiselection(bool isEnable)
 {
   myMultiSelectionEnabled = isEnable;
@@ -245,7 +278,9 @@ void OCCViewer_Viewer::enableMultiselection(bool isEnable)
   }
 }
 
-//*********************************************************************
+/*!
+  Builds popup for occ viewer
+*/
 void OCCViewer_Viewer::contextMenuPopup(QPopupMenu* thePopup)
 {
   thePopup->insertItem( tr( "MEN_DUMP_VIEW" ), this, SLOT( onDumpView() ) );
@@ -258,6 +293,9 @@ void OCCViewer_Viewer::contextMenuPopup(QPopupMenu* thePopup)
     thePopup->insertItem( tr( "MEN_SHOW_TOOLBAR" ), this, SLOT( onShowToolbar() ) );
 }
 
+/*!
+  SLOT: called on dump view operation is activated, stores scene to raster file
+*/
 void OCCViewer_Viewer::onDumpView()
 {
   OCCViewer_ViewWindow* aView = (OCCViewer_ViewWindow*)(myViewManager->getActiveView());
@@ -265,7 +303,9 @@ void OCCViewer_Viewer::onDumpView()
     aView->onDumpView();
 }
 
-//*********************************************************************
+/*!
+  SLOT: called if background color is to be changed changed, passes new color to view port
+*/
 void OCCViewer_Viewer::onChangeBgColor()
 {
   OCCViewer_ViewWindow* aView = (OCCViewer_ViewWindow*)(myViewManager->getActiveView());
@@ -281,21 +321,28 @@ void OCCViewer_Viewer::onChangeBgColor()
     aViewPort3d->setBackgroundColor(selColor);
 }
 
-//*********************************************************************
+/*!
+  SLOT: called when popup item "Show toolbar" is activated, shows toolbar of active view window
+*/
 void OCCViewer_Viewer::onShowToolbar() {
   OCCViewer_ViewWindow* aView = (OCCViewer_ViewWindow*)(myViewManager->getActiveView());
   if ( aView )
     aView->getToolBar()->show();    
 }
 
-//*********************************************************************
+/*!
+  Updates OCC 3D viewer
+*/
 void OCCViewer_Viewer::update()
 {
   if (!myV3dViewer.IsNull())
     myV3dViewer->Update();
 }
 
-//*********************************************************************
+/*!
+  \return objects selected in 3D viewer
+  \param theList - list to be filled with selected objects
+*/
 void OCCViewer_Viewer::getSelectedObjects(AIS_ListOfInteractive& theList)
 {
   theList.Clear();
@@ -303,7 +350,10 @@ void OCCViewer_Viewer::getSelectedObjects(AIS_ListOfInteractive& theList)
     theList.Append(myAISContext->SelectedInteractive());
 }
 
-//*********************************************************************
+/*!
+  Selects objects in 3D viewer. Other selected objects are left as selected
+  \param theList - list objects to be selected
+*/
 void OCCViewer_Viewer::setObjectsSelected(const AIS_ListOfInteractive& theList)
 {
   AIS_ListIteratorOfListOfInteractive aIt;
@@ -312,47 +362,62 @@ void OCCViewer_Viewer::setObjectsSelected(const AIS_ListOfInteractive& theList)
   myAISContext->UpdateCurrentViewer();
 }
 
-//*********************************************************************
+/*!
+  Auxiliary method to emit signal selectionChanged()
+*/
 void OCCViewer_Viewer::performSelectionChanged()
 {
     emit selectionChanged();
 }
 
-//****************************************************************
-
+/*!
+  SLOT, clears view aspects
+*/
 void OCCViewer_Viewer::onClearViewAspects()
 {
     clearViewAspects();
 }
 
-//****************************************************************
-
+/*!
+  Clears view aspects
+*/
 void OCCViewer_Viewer::clearViewAspects()
 {
        myViewAspects.clear();
 }
 
-//****************************************************************
-
+/*!
+  \return const reference to list of view aspects
+*/
 const viewAspectList& OCCViewer_Viewer::getViewAspects()
 {
        return myViewAspects;
 }
 
-//****************************************************************
-
+/*!
+  Appends new view aspect
+  \param aParams - new view aspects
+*/
 void OCCViewer_Viewer::appendViewAspect( const viewAspect& aParams )
 {
        myViewAspects.append( aParams );
 }
 
-//****************************************************************
-
+/*!
+  Replaces old view aspects by new ones
+  \param aViewList - list of new view aspects
+*/
 void OCCViewer_Viewer::updateViewAspects( const viewAspectList& aViewList )
 {
        myViewAspects = aViewList;
 }
 
+/*!
+  Hilights/unhilights object in viewer
+  \param obj - object to be updated
+  \param hilight - if it is true, object will be hilighted, otherwise it will be unhilighted
+  \param update - update current viewer
+*/
 bool OCCViewer_Viewer::highlight( const Handle(AIS_InteractiveObject)& obj,
                                   bool hilight, bool update )
 {
@@ -372,6 +437,10 @@ bool OCCViewer_Viewer::highlight( const Handle(AIS_InteractiveObject)& obj,
   return false;
 }
 
+/*!
+  Unhilights all objects in viewer
+  \param updateviewer - update current viewer
+*/
 bool OCCViewer_Viewer::unHighlightAll( bool updateviewer )
 {
   if ( myAISContext->HasOpenedContext() )
@@ -381,6 +450,11 @@ bool OCCViewer_Viewer::unHighlightAll( bool updateviewer )
   return false;
 }
 
+/*!
+  \return true if object is in viewer or in collector
+  \param obj - object to be checked
+  \param onlyInViewer - search object only in viewer (so object must be displayed)
+*/
 bool OCCViewer_Viewer::isInViewer( const Handle(AIS_InteractiveObject)& obj,
                                    bool onlyInViewer )
 {
@@ -402,11 +476,21 @@ bool OCCViewer_Viewer::isInViewer( const Handle(AIS_InteractiveObject)& obj,
   return false;
 }
 
+/*!
+  \return true if object is displayed in viewer
+  \param obj - object to be checked
+*/
 bool OCCViewer_Viewer::isVisible( const Handle(AIS_InteractiveObject)& obj )
 {
   return myAISContext->IsDisplayed( obj );
 }
 
+/*!
+  Sets color of object
+  \param obj - object to be updated
+  \param color - new color
+  \param update - update current viewer
+*/
 void OCCViewer_Viewer::setColor( const Handle(AIS_InteractiveObject)& obj,
                                  const QColor& color,
                                  bool update )
@@ -424,6 +508,12 @@ void OCCViewer_Viewer::setColor( const Handle(AIS_InteractiveObject)& obj,
     myV3dViewer->Update();
 }
 
+/*!
+  Changes display mode of object
+  \param obj - object to be processed
+  \param mode - new display mode
+  \param update - update current viewer
+*/
 void OCCViewer_Viewer::switchRepresentation( const Handle(AIS_InteractiveObject)& obj,
                                              int mode, bool update )
 {
@@ -432,6 +522,12 @@ void OCCViewer_Viewer::switchRepresentation( const Handle(AIS_InteractiveObject)
     myV3dViewer->Update();
 }
 
+/*!
+  Changes transparency of object
+  \param obj - object to be processed
+  \param trans - new transparency
+  \param update - update current viewer
+*/
 void OCCViewer_Viewer::setTransparency( const Handle(AIS_InteractiveObject)& obj,
                                         float trans, bool update )
 {
@@ -441,17 +537,27 @@ void OCCViewer_Viewer::setTransparency( const Handle(AIS_InteractiveObject)& obj
     myV3dViewer->Update();
 }
 
-//****************************************************************
+/*!
+  Changes visibility of trihedron to opposite
+*/
 void OCCViewer_Viewer::toggleTrihedron()
 {
   setTrihedronShown( !isTrihedronVisible() );
 }
 
+/*!
+  \return true if trihedron is visible
+*/
 bool OCCViewer_Viewer::isTrihedronVisible() const
 {
   return !myTrihedron.IsNull() && !myAISContext.IsNull() && myAISContext->IsDisplayed( myTrihedron );
 }
 
+/*!
+  Sets visibility state of trihedron
+  \param on - new state
+*/
+
 void OCCViewer_Viewer::setTrihedronShown( const bool on )
 {
   if ( myTrihedron.IsNull() )
@@ -463,6 +569,9 @@ void OCCViewer_Viewer::setTrihedronShown( const bool on )
     myAISContext->Erase( myTrihedron );
 }
 
+/*!
+  \return trihedron size
+*/
 int OCCViewer_Viewer::trihedronSize() const
 {
   int sz = 0;
@@ -471,12 +580,21 @@ int OCCViewer_Viewer::trihedronSize() const
   return sz;
 }
 
+/*!
+  Changes trihedron size
+  \param sz - new size
+*/
 void OCCViewer_Viewer::setTrihedronSize( const int sz )
 {
   if ( !myTrihedron.IsNull() )
     myTrihedron->SetSize( sz );
 }
 
+/*!
+  Set number of isolines
+  \param u - u-isolines (first parametric co-ordinate)
+  \param v - v-isolines (second parametric co-ordinate)
+*/
 void OCCViewer_Viewer::setIsos( const int u, const int v )
 {
   Handle(AIS_InteractiveContext) ic = getAISContext();
@@ -487,6 +605,11 @@ void OCCViewer_Viewer::setIsos( const int u, const int v )
   ic->SetIsoNumber( v, AIS_TOI_IsoV );
 }
 
+/*!
+  \return number of isolines
+  \param u - to return u-isolines (first parametric co-ordinate)
+  \param v - to return v-isolines (second parametric co-ordinate)
+*/
 void OCCViewer_Viewer::isos( int& u, int& v ) const
 {
   Handle(AIS_InteractiveContext) ic = getAISContext();
index 72f2fc5f33042f95321098f076e33c60e0387330..f3ea1e0b5c4236b05044cb8615479955cd8d0503 100755 (executable)
 //
 // See http://www.salome-platform.org/
 //
-/***************************************************************************
-**  Class:   OCCViewer_ViewPort
-**  Descr:   Visualisation canvas of SUIT-based application
-**  Module:  SUIT
-**  Created: UI team, 05.09.00
-****************************************************************************/
+
 #if !defined WNT
 #define QT_CLEAN_NAMESPACE         /* avoid definition of INT32 and INT8 */
 #endif
@@ -59,6 +54,9 @@ struct CMapEntry
        XStandardColormap scmap;
 };
 
+/*!
+  Constructor
+*/
 CMapEntry::CMapEntry()
 {
        cmap = 0;
@@ -66,6 +64,9 @@ CMapEntry::CMapEntry()
        scmap.colormap = 0;
 }
 
+/*!
+  Destructor
+*/
 CMapEntry::~CMapEntry()
 {
        if ( alloc )
index 5c60ad502c5a9a2e6ccc1a041eb53f4d09e1c9af..fb42086677490228aac4db4c95af48abe77a59e6 100755 (executable)
@@ -35,6 +35,10 @@ class QPainter;
 class OCCViewer_ViewSketcher;
 class OCCViewer_ViewTransformer;
 
+/*!
+  \class OCCViewer_ViewPort
+  Visualisation canvas of SUIT-based application
+*/
 class OCCVIEWER_EXPORT OCCViewer_ViewPort : public QWidget
 {
        Q_OBJECT
index badfe3cf301eb5465b96f03651ca25f46231e4e5..66225b69fe6c3af3591d5fe2f56c329788fe11a0 100755 (executable)
 //
 // See http://www.salome-platform.org/
 //
-/***************************************************************************
-**  Class:   OCCViewer_ViewPort3D
-**  Descr:   Visualisation canvas with CasCade 3D view
-**  Module:  OCCViewer
-**  Created: UI team, 05.09.00
-****************************************************************************/
 
 #include "OCCViewer_ViewPort3d.h"
 
@@ -259,6 +253,10 @@ void OCCViewer_ViewPort3d::setBackgroundColor( const QColor& color )
        }
 }
 
+/*!
+  Set animation mode
+  \param theDegenerated - degenerated mode
+*/
 void OCCViewer_ViewPort3d::setAnimationMode(bool theDegenerated)
 {
        if ( !activeView().IsNull() )
@@ -348,6 +346,8 @@ void OCCViewer_ViewPort3d::endRotation()
                if ( !myDegenerated )
       activeView()->SetDegenerateModeOff();
     activeView()->ZFitAll(1.);
+    activeView()->SetZSize(0.);
+    activeView()->Update();
        }
 }
 
@@ -400,6 +400,7 @@ void OCCViewer_ViewPort3d::fitAll( bool keepScale, bool withZ, bool upd )
 
   Standard_Real margin = 0.01;
   activeView()->FitAll( margin, withZ, upd );
+  activeView()->SetZSize(0.);
 }
 
 /*!
index dbd2618b68992499665918c424e6def5fc522e40..d9ca9d4275a8fea4e8d4770268f1221acac89911 100755 (executable)
@@ -17,8 +17,7 @@
 // See http://www.salome-platform.org/
 //
 // OCCViewer_ViewWindow.cxx: implementation of the OCCViewer_ViewWindow class.
-//
-//////////////////////////////////////////////////////////////////////
+
 
 #include "OCCViewer_ViewWindow.h"
 #include "OCCViewer_ViewModel.h"
@@ -162,10 +161,11 @@ const char* imageCrossCursor[] = {
   "................................"};
 
 
-//////////////////////////////////////////////////////////////////////
-// Construction/Destruction
-//////////////////////////////////////////////////////////////////////
-
+/*!
+  Constructor
+  \param theDesktop - main window of application
+  \param theModel - OCC 3D viewer
+*/
 OCCViewer_ViewWindow::OCCViewer_ViewWindow(SUIT_Desktop* theDesktop, OCCViewer_Viewer* theModel)
 : SUIT_ViewWindow(theDesktop)
 {
@@ -176,7 +176,9 @@ OCCViewer_ViewWindow::OCCViewer_ViewWindow(SUIT_Desktop* theDesktop, OCCViewer_V
   myClippingDlg = 0;
 }
 
-//****************************************************************
+/*!
+  Initialization of view window
+*/
 void OCCViewer_ViewWindow::initLayout()
 {
   myViewPort = new OCCViewer_ViewPort3d( this, myModel->getViewer3d(), V3d_ORTHOGRAPHIC );
@@ -196,7 +198,10 @@ void OCCViewer_ViewWindow::initLayout()
   createToolBar();
 }
 
-//****************************************************************
+/*!
+  \return type of operation by states of mouse and keyboard buttons
+  \param theEvent - mouse event
+*/
 OCCViewer_ViewWindow::OperationType OCCViewer_ViewWindow::getButtonState(QMouseEvent* theEvent)
 {
   OperationType aOp = NOTHING;
@@ -213,7 +218,9 @@ OCCViewer_ViewWindow::OperationType OCCViewer_ViewWindow::getButtonState(QMouseE
   return aOp;
 }
 
-//****************************************************************
+/*!
+  Custom event handler
+*/
 bool OCCViewer_ViewWindow::eventFilter(QObject* watched, QEvent* e)
 {
   if ( watched == myViewPort ) {
@@ -259,13 +266,18 @@ bool OCCViewer_ViewWindow::eventFilter(QObject* watched, QEvent* e)
   return SUIT_ViewWindow::eventFilter(watched, e);
 }
 
+/*!
+  Updates state of enable draw mode state
+*/
 void OCCViewer_ViewWindow::updateEnabledDrawMode()
 {
   if ( myModel )
     myEnableDrawMode = myModel->isSelectionEnabled() && myModel->isMultiSelectionEnabled();
 }
 
-//****************************************************************
+/*!
+  Handler of mouse press event
+*/
 void OCCViewer_ViewWindow::vpMousePressEvent(QMouseEvent* theEvent)
 {
   myStartX = theEvent->x();
@@ -324,7 +336,9 @@ void OCCViewer_ViewWindow::vpMousePressEvent(QMouseEvent* theEvent)
 }
 
 
-//****************************************************************
+/*!
+  Starts zoom operation, sets corresponding cursor
+*/
 void OCCViewer_ViewWindow::activateZoom()
 {
   if ( !transformRequested() && !myCursorIsHand )
@@ -339,9 +353,8 @@ void OCCViewer_ViewWindow::activateZoom()
 }
 
 
-//****************************************************************
 /*!
-    Activates 'panning' transformation
+  Starts panning operation, sets corresponding cursor
 */
 void OCCViewer_ViewWindow::activatePanning()
 {
@@ -355,9 +368,8 @@ void OCCViewer_ViewWindow::activatePanning()
   }
 }
 
-//****************************************************************
 /*!
-    Activates 'rotation' transformation
+  Starts rotation operation, sets corresponding cursor
 */
 void OCCViewer_ViewWindow::activateRotation()
 {
@@ -372,7 +384,9 @@ void OCCViewer_ViewWindow::activateRotation()
   }
 }
 
-//****************************************************************
+/*!
+  Starts global panning operation, sets corresponding cursor
+*/
 void OCCViewer_ViewWindow::activateGlobalPanning()
 {
   Handle(V3d_View) aView3d = myViewPort->getView();
@@ -388,9 +402,8 @@ void OCCViewer_ViewWindow::activateGlobalPanning()
   }
 }
 
-//****************************************************************
 /*!
-    Activates 'fit' transformation
+  Starts fit operation, sets corresponding cursor
 */
 void OCCViewer_ViewWindow::activateWindowFit()
 {
@@ -405,9 +418,8 @@ void OCCViewer_ViewWindow::activateWindowFit()
   }
 }
 
-//****************************************************************
 /*!
-    Sets the active operation 'op'
+  Stores which viewer operation is requesting
 */
 void OCCViewer_ViewWindow::setTransformRequested ( OperationType op )
 {    
@@ -416,7 +428,9 @@ void OCCViewer_ViewWindow::setTransformRequested ( OperationType op )
 }
 
 
-//****************************************************************/
+/*!
+  Handler of mouse move event
+*/
 void OCCViewer_ViewWindow::vpMouseMoveEvent(QMouseEvent* theEvent)
 {
   myCurrX = theEvent->x();
@@ -468,7 +482,9 @@ void OCCViewer_ViewWindow::vpMouseMoveEvent(QMouseEvent* theEvent)
   }
 }
 
-//****************************************************************/
+/*!
+  Handler of mouse release event
+*/
 void OCCViewer_ViewWindow::vpMouseReleaseEvent(QMouseEvent* theEvent)
 {
   switch ( myOperation ) {
@@ -524,10 +540,9 @@ void OCCViewer_ViewWindow::vpMouseReleaseEvent(QMouseEvent* theEvent)
   }
 }
 
-//****************************************************************
 /*!
-    Sets the viewport to its initial state
-    ( no transformations in process etc. )
+  Sets the viewport to its initial state
+  ( no transformations in process etc. )
 */
 void OCCViewer_ViewWindow::resetState()
 {
@@ -549,7 +564,9 @@ void OCCViewer_ViewWindow::resetState()
 }
 
 
-//****************************************************************/
+/*!
+  Draws rectangle by starting and current points
+*/
 void OCCViewer_ViewWindow::drawRect()
 {
   QPainter aPainter(myViewPort);
@@ -562,7 +579,9 @@ void OCCViewer_ViewWindow::drawRect()
   myRect = aRect;
 }
 
-//****************************************************************/
+/*!
+  Creates actions of OCC view window
+*/
 void OCCViewer_ViewWindow::createActions()
 {
   if (!myActionsMap.isEmpty()) return;
@@ -671,12 +690,12 @@ void OCCViewer_ViewWindow::createActions()
   connect(aAction, SIGNAL(activated()), this, SLOT(onCloneView()));
        myActionsMap[ CloneId ] = aAction;
 
-  aAction = new QtxAction(tr("MNU_CLIPPING"), aResMgr->loadPixmap( "OCCViewer", tr( "ICON_OCCVIEWER_CLIPPING" ) ),
+  myClippingAction = new QtxAction(tr("MNU_CLIPPING"), aResMgr->loadPixmap( "OCCViewer", tr( "ICON_OCCVIEWER_CLIPPING" ) ),
                            tr( "MNU_CLIPPING" ), 0, this);
-  aAction->setStatusTip(tr("DSC_CLIPPING"));
-  aAction->setToggleAction( true );
-  connect(aAction, SIGNAL(toggled( bool )), this, SLOT(onClipping( bool )));
-       myActionsMap[ ClippingId ] = aAction;
+  myClippingAction->setStatusTip(tr("DSC_CLIPPING"));
+  myClippingAction->setToggleAction( true );
+  connect(myClippingAction, SIGNAL(toggled( bool )), this, SLOT(onClipping( bool )));
+       myActionsMap[ ClippingId ] = myClippingAction;
 
   aAction = new QtxAction(tr("MNU_SHOOT_VIEW"), aResMgr->loadPixmap( "OCCViewer", tr( "ICON_OCCVIEWER_SHOOT_VIEW" ) ),
                            tr( "MNU_SHOOT_VIEW" ), 0, this);
@@ -699,7 +718,9 @@ void OCCViewer_ViewWindow::createActions()
   }
 }
 
-//****************************************************************
+/*!
+  Creates toolbar of OCC view window
+*/
 void OCCViewer_ViewWindow::createToolBar()
 {
   myActionsMap[DumpId]->addTo(myToolBar);  
@@ -738,13 +759,17 @@ void OCCViewer_ViewWindow::createToolBar()
   myActionsMap[ClippingId]->addTo(myToolBar);
 }
 
-//****************************************************************
+/*!
+  Processes operation fit all
+*/
 void OCCViewer_ViewWindow::onViewFitAll()
 {
   myViewPort->fitAll();
 }
 
-//****************************************************************
+/*!
+  Processes transformation "front view"
+*/
 void OCCViewer_ViewWindow::onFrontView()
 {
   emit vpTransformationStarted ( FRONTVIEW );
@@ -753,7 +778,9 @@ void OCCViewer_ViewWindow::onFrontView()
   onViewFitAll();
 }
 
-//****************************************************************
+/*!
+  Processes transformation "back view"
+*/
 void OCCViewer_ViewWindow::onBackView()
 {
   emit vpTransformationStarted ( BACKVIEW );
@@ -762,7 +789,9 @@ void OCCViewer_ViewWindow::onBackView()
   onViewFitAll();
 }
 
-//****************************************************************
+/*!
+  Processes transformation "top view"
+*/
 void OCCViewer_ViewWindow::onTopView()
 {
   emit vpTransformationStarted ( TOPVIEW );
@@ -771,7 +800,9 @@ void OCCViewer_ViewWindow::onTopView()
   onViewFitAll();
 }
 
-//****************************************************************
+/*!
+  Processes transformation "bottom view"
+*/
 void OCCViewer_ViewWindow::onBottomView()
 {
   emit vpTransformationStarted ( BOTTOMVIEW );
@@ -780,7 +811,9 @@ void OCCViewer_ViewWindow::onBottomView()
   onViewFitAll();
 }
 
-//****************************************************************
+/*!
+  Processes transformation "left view"
+*/
 void OCCViewer_ViewWindow::onLeftView()
 {
   emit vpTransformationStarted ( LEFTVIEW );
@@ -789,7 +822,9 @@ void OCCViewer_ViewWindow::onLeftView()
   onViewFitAll();
 }
 
-//****************************************************************
+/*!
+  Processes transformation "right view"
+*/
 void OCCViewer_ViewWindow::onRightView()
 {
   emit vpTransformationStarted ( RIGHTVIEW );
@@ -798,7 +833,9 @@ void OCCViewer_ViewWindow::onRightView()
   onViewFitAll();
 }
 
-//****************************************************************
+/*!
+  Processes transformation "reset view": sets default orientation of viewport camera
+*/
 void OCCViewer_ViewWindow::onResetView()
 {
   emit vpTransformationStarted( RESETVIEW );
@@ -809,21 +846,27 @@ void OCCViewer_ViewWindow::onResetView()
   myViewPort->getView()->Update();
 }
 
-//****************************************************************
+/*!
+  Processes transformation "fit all"
+*/
 void OCCViewer_ViewWindow::onFitAll()
 {
   emit vpTransformationStarted( FITALLVIEW );
   myViewPort->fitAll();
 }
 
-//****************************************************************
+/*!
+  Creates one more window with same content
+*/
 void OCCViewer_ViewWindow::onCloneView()
 {
   SUIT_ViewWindow* vw = myManager->createViewWindow();
   vw->show();
 }
 
-//****************************************************************
+/*!
+  SLOT: called if clipping operation is activated, enables/disables of clipping plane
+*/
 void OCCViewer_ViewWindow::onClipping( bool on )
 {
   SUIT_ResourceMgr* aResMgr = SUIT_Session::session()->resourceMgr();
@@ -835,7 +878,10 @@ void OCCViewer_ViewWindow::onClipping( bool on )
   if ( on )
     {
       if ( !myClippingDlg )
-       myClippingDlg = new OCCViewer_ClippingDlg( this, myDesktop );
+       {
+         myClippingDlg = new OCCViewer_ClippingDlg( this, myDesktop );
+         myClippingDlg->SetAction( myClippingAction );
+       }
 
       if ( !myClippingDlg->isShown() )
        myClippingDlg->show();
@@ -848,13 +894,17 @@ void OCCViewer_ViewWindow::onClipping( bool on )
     }
 }
 
-//****************************************************************
+/*!
+  Stores view parameters
+*/
 void OCCViewer_ViewWindow::onMemorizeView()
 {
   myModel->appendViewAspect( getViewParams() );
 }
 
-//****************************************************************
+/*!
+  Restores view parameters
+*/
 void OCCViewer_ViewWindow::onRestoreView()
 {
        OCCViewer_CreateRestoreViewDlg* aDlg = new OCCViewer_CreateRestoreViewDlg( centralWidget(), myModel );
@@ -865,8 +915,9 @@ void OCCViewer_ViewWindow::onRestoreView()
                performRestoring( aDlg->currentItem() );
 }
 
-//****************************************************************
-
+/*!
+  Restores view parameters from structure viewAspect
+*/
 void OCCViewer_ViewWindow::performRestoring( const viewAspect& anItem )
 {
        Handle(V3d_View) aView3d = myViewPort->getView();
@@ -883,30 +934,50 @@ void OCCViewer_ViewWindow::performRestoring( const viewAspect& anItem )
        myRestoreFlag = 0;
 }
 
+/*!
+  Sets restore flag
+*/
 void OCCViewer_ViewWindow::setRestoreFlag()
 {
        myRestoreFlag = 1;
 }
 
-//****************************************************************
+/*!
+  SLOT: called when action "show/hide" trihedron is activated
+*/
 void OCCViewer_ViewWindow::onTrihedronShow()
 {
   myModel->toggleTrihedron();
 }
 
-//****************************************************************
+/*!
+  \return QImage, containing all scene rendering in window
+*/
 QImage OCCViewer_ViewWindow::dumpView()
 {
   QPixmap px = QPixmap::grabWindow( myViewPort->winId() );
   return px.convertToImage();
 }
-                                                                              
+
+/*!
+  Sets parameters of cutting plane
+  \param on - is cutting plane enabled
+  \param x - x-position of plane point 
+  \param y - y-position of plane point 
+  \param z - z-position of plane point 
+  \param dx - x-coordinate of plane normal
+  \param dy - y-coordinate of plane normal
+  \param dz - z-coordinate of plane normal
+*/
 void  OCCViewer_ViewWindow::setCuttingPlane( bool on, const double x,  const double y,  const double z,
                                                      const double dx, const double dy, const double dz )
 {
+  Handle(V3d_View) view = myViewPort->getView();
+  if ( view.IsNull() )
+    return;
+
   if ( on ) {
     Handle(V3d_Viewer) viewer = myViewPort->getViewer();
-    Handle(V3d_View) view = myViewPort->getView();
     
     // try to use already existing plane or create a new one
     Handle(V3d_Plane) clipPlane;
@@ -922,37 +993,28 @@ void  OCCViewer_ViewWindow::setCuttingPlane( bool on, const double x,  const dou
     pln.Coefficients( a, b, c, d );
     clipPlane->SetPlane( a, b, c, d );
     
-    Handle(V3d_View) v = myViewPort->getView();
-    v->SetPlaneOn( clipPlane );
-    v->Update();
-    v->Redraw();
+    view->SetPlaneOn( clipPlane );
   } 
-  else {
-    Handle(V3d_View) view = myViewPort->getView();
+  else
+    view->SetPlaneOff();
+  
+  view->Update();
+  view->Redraw();
+}
 
-    // try to use already existing plane 
-    Handle(V3d_Plane) clipPlane;
-    view->InitActivePlanes();
-    if ( view->MoreActivePlanes() )
-      clipPlane = view->ActivePlane();
-    
-    Handle(V3d_View) v =  myViewPort->getView();
-    if ( !clipPlane.IsNull() )
-      v->SetPlaneOff( clipPlane );
-    else 
-      v->SetPlaneOff();
-    
-    v->Update();
-    v->Redraw();
-  }
-  Handle(V3d_View) v = myViewPort->getView();
-  v->Update();
-  v->Redraw();
+/*!
+  \return true if there is at least one cutting plane
+*/
+bool OCCViewer_ViewWindow::isCuttingPlane()
+{
+  Handle(V3d_View) view = myViewPort->getView();
+  view->InitActivePlanes();
+  return (view->MoreActivePlanes());
 }
 
-/*! The method returns the visual parameters of this view as a viewAspect object
- */
+/*!
+  The method returns the visual parameters of this view as a viewAspect object
+*/
 viewAspect OCCViewer_ViewWindow::getViewParams() const
 {
   double centerX, centerY, projX, projY, projZ, twist;
@@ -988,8 +1050,9 @@ viewAspect OCCViewer_ViewWindow::getViewParams() const
 }
 
 
-/*! The method returns the visual parameters of this view as a formated string
- */
+/*!
+  The method returns the visual parameters of this view as a formated string
+*/
 QString OCCViewer_ViewWindow::getVisualParameters()
 {
   viewAspect params = getViewParams();
@@ -1000,8 +1063,9 @@ QString OCCViewer_ViewWindow::getVisualParameters()
   return retStr;
 }
 
-/* The method restors visual parameters of this view from a formated string
- */
+/*!
+  The method restors visual parameters of this view from a formated string
+*/
 void OCCViewer_ViewWindow::setVisualParameters( const QString& parameters )
 {
   QStringList paramsLst = QStringList::split( '*', parameters, true );
index b6bda965a519a1d39348da8eadcb122a12a5f6fb..439b40cd683e5d22cc4bdbbcf9f0f1ac65024d15 100755 (executable)
@@ -63,6 +63,8 @@ public:
   void setCuttingPlane( bool on, const double x = 0 , const double y = 0 , const double z = 0,
                                  const double dx = 0, const double dy = 0, const double dz = 1);
 
+  bool isCuttingPlane();
+
   virtual QString   getVisualParameters();
   virtual void      setVisualParameters( const QString& parameters );
  
@@ -151,6 +153,7 @@ protected:
 
 private:
   OCCViewer_ClippingDlg* myClippingDlg;
+  QtxAction* myClippingAction;
   
 };
 
index b856572ac4e0fc09e6926be7daf25256cbb7475b..681d3d5dd69e887f9fa76fc6d4eb57809439085e 100755 (executable)
@@ -161,10 +161,6 @@ msgstr "Cannot save file"
 msgid "ERROR"
 msgstr "Error"
 
-msgid "BUT_OK"
-msgstr "Ok"
-
-
 msgid "OCCViewer_Viewer::MEN_DUMP_VIEW"
 msgstr "Dump view..."
 
index cdb715d691a636d562799e0a6b5bb79db41e33bd..b7039368b88de5e4a44e251254b89c0b870a6959 100755 (executable)
@@ -1,3 +1,21 @@
+#  Copyright (C) 2005  CEA/DEN, EDF R&D, OPEN CASCADE, PRINCIPIA R&D
+#
+#  This library is free software; you can redistribute it and/or
+#  modify it under the terms of the GNU Lesser General Public
+#  License as published by the Free Software Foundation; either
+#  version 2.1 of the License.
+#
+#  This library is distributed in the hope that it will be useful,
+#  but WITHOUT ANY WARRANTY; without even the implied warranty of
+#  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+#  Lesser General Public License for more details.
+#
+#  You should have received a copy of the GNU Lesser General Public
+#  License along with this library; if not, write to the Free Software
+#  Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307 USA
+#
+#  See http://www.salome-platform.org/
+#
 #  File   : Makefile.in
 #  Author : Vladimir Klyachin (OCN)
 #  Module : ObjectBrowser
index dd6012af07ec8e1378387d7bd8be80ece6a87721..3b408284a74c0118641a0d7437ffb2798328fc92 100755 (executable)
@@ -37,8 +37,8 @@
 #include <time.h>
 
 /*!
-    Class: OB_Browser::ToolTip
-    Descr: Tool tip for OB_Browser.
+  \class  OB_Browser::ToolTip
+  Tool tip for OB_Browser.
 */
 
 class OB_Browser::ToolTip : public QToolTip
@@ -53,16 +53,28 @@ private:
   OB_Browser* myBrowser;
 };
 
+/*!
+  Constructor
+*/
 OB_Browser::ToolTip::ToolTip( OB_Browser* b, QWidget* p )
 : QToolTip( p ),
 myBrowser( b )
 {
 }
 
+/*!
+  Destructor
+*/
 OB_Browser::ToolTip::~ToolTip()
 {
 }
 
+/*!
+  It is called when there is a possibility that a tool tip
+  should be shown and must decide whether there is a tool tip for the point
+  in the widget that this QToolTip object relates to.
+  \param pos - point co-ordinates
+*/
 void OB_Browser::ToolTip::maybeTip( const QPoint& pos )
 {
   if ( !parentWidget() || !myBrowser || !myBrowser->isShowToolTips() )
@@ -88,11 +100,11 @@ void OB_Browser::ToolTip::maybeTip( const QPoint& pos )
 
 typedef SUIT_DataObject*   ObjPtr;
 typedef OB_ListItem*       ItemPtr;
+
 /*!
-    Class: OB_BrowserSync
-    Descr: Auxiliary class for synchronizing tree of SUIT_DataObjects and list view items
+   \class  OB_BrowserSync
+   Auxiliary class for synchronizing tree of SUIT_DataObjects and list view items
 */
-
 class OB_BrowserSync
 {
 public:
@@ -112,11 +124,18 @@ private:
 };
 
 
+/*!
+  Constructor
+*/
 OB_BrowserSync::OB_BrowserSync( OB_Browser* ob )
 : myBrowser( ob )
 {
 }
 
+/*!
+  \return true if item must be updated
+  \param item - item to be checked
+*/
 bool OB_BrowserSync::needUpdate( const ItemPtr& item ) const
 {
   bool update = false;
@@ -124,7 +143,8 @@ bool OB_BrowserSync::needUpdate( const ItemPtr& item ) const
     SUIT_DataObject* obj = item->dataObject();
     if ( obj ) {
       // 1. check text
-      update = ( item->text( 0 ) != obj->name() );
+      update = ( item->text( 0 ) != obj->name() ) || myBrowser->needToUpdateTexts( item );
+
       if ( !update ) { 
        // 2. check pixmap (compare serialNumber()-s)
        QPixmap objPix = obj->icon();
@@ -147,14 +167,26 @@ bool OB_BrowserSync::needUpdate( const ItemPtr& item ) const
   return update;
 }
 
+/*!
+  Updates item
+  \param p - item
+*/
 void OB_BrowserSync::updateItem( const ItemPtr& p ) const
 {
   if ( p && needUpdate( p ) ) { 
     //    printf( "--- needUpdate for %s = true ---\n", p->text( 0 ).latin1() );
+    myBrowser->updateText( p );
     p->update();
   }
 }
 
+/*!
+  Creates item by SUIT object
+  \param src - corresponding SUIT object
+  \param parent - parent for item
+  \param after - previous sibling for item
+  \param prepend - item must be added to start of children list
+*/
 ItemPtr OB_BrowserSync::createItem( const ObjPtr& src,
                                    const ItemPtr& parent, const ItemPtr& after,
                                    const bool prepend ) const
@@ -165,6 +197,10 @@ ItemPtr OB_BrowserSync::createItem( const ObjPtr& src,
   return i;
 }
 
+/*!
+  Deletes object with all children
+  \param i - item
+*/
 void OB_BrowserSync::deleteItemWithChildren( const ItemPtr& i ) const
 {
   if( myBrowser && myBrowser->myItems.contains( i->dataObject() ) )
@@ -174,21 +210,39 @@ void OB_BrowserSync::deleteItemWithChildren( const ItemPtr& i ) const
   }
 }
 
+/*!
+  \return true if objects correspond each other at all
+  \param p - suit object
+  \param q - object browser item
+*/
 bool OB_BrowserSync::isEqual( const ObjPtr& p, const ItemPtr& q ) const
 {
-  return ( !p && !q ) || ( p && q && q->dataObject()==p );
+  bool isRoot = p==myBrowser->getRootObject() && !q,
+       isEq = p && q && q->dataObject()==p;
+  return isRoot || ( !p && !q ) || isEq;
 }
 
+/*!
+  \return null suit object
+*/
 ObjPtr OB_BrowserSync::nullSrc() const
 {
   return 0;
 }
 
+/*!
+  \return null item
+*/
 ItemPtr OB_BrowserSync::nullTrg() const
 {
   return 0;
 }
 
+/*!
+  Fills list with children of SUIT object
+  \param p - SUIT object
+  \param ch - list to be filled
+*/
 void OB_BrowserSync::children( const ObjPtr& p, QValueList<ObjPtr>& ch ) const
 {
   DataObjectList l;
@@ -201,9 +255,14 @@ void OB_BrowserSync::children( const ObjPtr& p, QValueList<ObjPtr>& ch ) const
   }
 }
 
+/*!
+  Fills list with children of item
+  \param p - item
+  \param ch - list to be filled
+*/
 void OB_BrowserSync::children( const ItemPtr& p, QValueList<ItemPtr>& ch ) const
 {
-  for( QListViewItem* item = p->firstChild(); item; item = item->nextSibling() )
+  for( QListViewItem* item = p ? p->firstChild() : myBrowser->listView()->firstChild(); item; item = item->nextSibling() )
   {
     ItemPtr p = dynamic_cast<ItemPtr>( item );
     if( p )
@@ -211,6 +270,10 @@ void OB_BrowserSync::children( const ItemPtr& p, QValueList<ItemPtr>& ch ) const
   }
 }
 
+/*!
+  \return parent of item
+  \param p - item
+*/
 ItemPtr OB_BrowserSync::parent( const ItemPtr& p ) const
 {
   return p ? dynamic_cast<ItemPtr>( p->parent() ) : 0;
@@ -218,10 +281,8 @@ ItemPtr OB_BrowserSync::parent( const ItemPtr& p ) const
 
 
 /*!
-    Class: OB_Browser
-    Descr: Hierarchical tree object browser.
+  Constructor
 */
-
 OB_Browser::OB_Browser( QWidget* parent, SUIT_DataObject* root )
 : QFrame( parent ),
 
@@ -257,17 +318,27 @@ myRootDecorated( true )
   setModified();
 }
 
+/*!
+  Destructor
+*/
 OB_Browser::~OB_Browser()
 {
   myItems.clear();
   delete myTooltip;
 }
 
+/*!
+  \return true if root is decorated by +
+*/
 bool OB_Browser::rootIsDecorated() const
 {
   return myRootDecorated;
 }
 
+/*!
+  Sets state "root is recorated"
+  \param decor - new value of state
+*/
 void OB_Browser::setRootIsDecorated( const bool decor )
 {
   if ( decor == rootIsDecorated() ) 
@@ -277,11 +348,18 @@ void OB_Browser::setRootIsDecorated( const bool decor )
   updateTree( 0, false );
 }
 
+/*!
+  \return number of levels to be auto opened on update tree
+*/
 int OB_Browser::autoOpenLevel() const
 {
   return myAutoOpenLevel;
 }
 
+/*!
+  Changes number of levels to be auto opened on update tree
+  \param level - new number of levels
+*/
 void OB_Browser::setAutoOpenLevel( const int level )
 {
   if ( myAutoOpenLevel == level )
@@ -292,41 +370,69 @@ void OB_Browser::setAutoOpenLevel( const int level )
   autoOpenBranches();
 }
 
+/*!
+  \return state "are tooltips shown"
+*/
 bool OB_Browser::isShowToolTips()
 {
   return myShowToolTips;
 }
 
+/*!
+  Sets new value of state "are tooltips shown"
+  \param theDisplay - new value
+*/
 void OB_Browser::setShowToolTips( const bool theDisplay )
 {
   myShowToolTips = theDisplay;
 }
 
+/*!
+  \return true if object browser automatically updates tree after SUIT object removing
+*/
 bool OB_Browser::isAutoUpdate() const
 {
   return myAutoUpdate;
 }
 
+/*!
+  Sets new value of "auto update": whether object browser automatically updates tree after SUIT object removing
+*/
 void OB_Browser::setAutoUpdate( const bool on )
 {
   myAutoUpdate = on;
 }
 
+/*!
+  \return true if object browser must delete old tree on setRootObject(), replaceTree()
+  \sa setRootObject(), replaceTree()
+*/
 bool OB_Browser::isAutoDeleteObjects() const
 {
   return myAutoDelObjs;
 }
 
+/*!
+  Sets whether object browser must delete old tree on setRootObject(), replaceTree()
+  \sa setRootObject(), replaceTree()
+*/
 void OB_Browser::setAutoDeleteObjects( const bool on )
 {
   myAutoDelObjs = on;
 }
 
+/*!
+  \return root SUIT object of browser
+*/
 SUIT_DataObject* OB_Browser::getRootObject() const
 {
   return myRoot;
 }
 
+/*!
+  Sets new root SUIT object of browser
+  \param theRoot - new root object
+*/
 void OB_Browser::setRootObject( SUIT_DataObject* theRoot )
 {
   DataObjectKey curKey;
@@ -365,6 +471,9 @@ void OB_Browser::setRootObject( SUIT_DataObject* theRoot )
     emit selectionChanged();
 }
 
+/*!
+  \return number of selected items
+*/
 int OB_Browser::numberOfSelected() const
 {
   int count = 0;
@@ -377,6 +486,9 @@ int OB_Browser::numberOfSelected() const
   return count;
 }
 
+/*!
+  \return list of selected objects
+*/
 DataObjectList OB_Browser::getSelected() const
 {
   DataObjectList lst;
@@ -384,6 +496,9 @@ DataObjectList OB_Browser::getSelected() const
   return lst;
 }
 
+/*!
+  Fills list with selected objects
+*/
 void OB_Browser::getSelected( DataObjectList& theObjList ) const
 {
   theObjList.clear();
@@ -402,6 +517,12 @@ void OB_Browser::getSelected( DataObjectList& theObjList ) const
   }
 }
 
+/*!
+  Sets selected object
+  \param theObject - new selected object
+  \param append - if it is true, then other selected objects are left as selected,
+  otherwise only 'theObject' will be selected
+*/
 void OB_Browser::setSelected( const SUIT_DataObject* theObject, const bool append )
 {
   DataObjectList lst;
@@ -409,6 +530,12 @@ void OB_Browser::setSelected( const SUIT_DataObject* theObject, const bool appen
   setSelected( lst, append );
 }
 
+/*!
+  Sets selected objects
+  \param theObjLst - new selected objects
+  \param append - if it is true, then other selected objects are left as selected,
+  otherwise only 'theObjLst' will be selected
+*/
 void OB_Browser::setSelected( const DataObjectList& theObjLst, const bool append )
 {
   QListView* lv = listView();
@@ -468,6 +595,10 @@ void OB_Browser::setSelected( const DataObjectList& theObjLst, const bool append
   }
 }
 
+/*!
+  \return true if item corresponding to object is opened
+  \param theObject - object to be checked
+*/
 bool OB_Browser::isOpen( SUIT_DataObject* theObject ) const
 {
   bool res = false;
@@ -476,12 +607,21 @@ bool OB_Browser::isOpen( SUIT_DataObject* theObject ) const
   return res;
 }
 
+/*!
+  Sets opened state of item
+  \param theObject - object corresponding to item
+  \param theOpen - new opened state
+*/
 void OB_Browser::setOpen( SUIT_DataObject* theObject, const bool theOpen )
 {
   if ( listView() )
     listView()->setOpen( listViewItem( theObject ), theOpen );
 }
 
+/*!
+  \return SUIT object correspondint to item at position 'pos'
+  \param pos - position
+*/
 SUIT_DataObject* OB_Browser::dataObjectAt( const QPoint& pos ) const
 {
   SUIT_DataObject* obj = 0;
@@ -493,21 +633,41 @@ SUIT_DataObject* OB_Browser::dataObjectAt( const QPoint& pos ) const
   return obj;
 }
 
+/*!
+  \return filter of list view
+*/
 OB_Filter* OB_Browser::filter() const
 {
   return myView->filter();
 }
 
+/*!
+  Changes filter of list view
+  \param f - new filter
+*/
 void OB_Browser::setFilter( OB_Filter* f )
 {
   myView->setFilter( f );
 }
 
+/*!
+  Adds new column to list view
+  \param label - title of column
+  \param id - id of column
+  \param width - width of column
+*/
 int OB_Browser::addColumn( const QString& label, const int id, const int width )
 {
   return addColumn( QIconSet(), label, id, width );
 }
 
+/*!
+  Adds new column to list view
+  \param icon - icon of column
+  \param label - title of column
+  \param id - id of column
+  \param width - width of column
+*/
 int OB_Browser::addColumn( const QIconSet& icon, const QString& label, const int id, const int width )
 {
   QListView* lv = listView();
@@ -539,6 +699,10 @@ int OB_Browser::addColumn( const QIconSet& icon, const QString& label, const int
   return theId;
 }
 
+/*!
+  Removes column
+  \param id - id of column
+*/
 void OB_Browser::removeColumn( const int id )
 {
   QListView* lv = listView();
@@ -558,11 +722,20 @@ void OB_Browser::removeColumn( const int id )
   updateText();
 }
 
+/*!
+  Sets title of first column (name column)
+  \param label - new title
+*/
 void OB_Browser::setNameTitle( const QString& label )
 {
   setNameTitle( QIconSet(), label );
 }
 
+/*!
+  Sets title and icon of first column (name column)
+  \param icon - new icon
+  \param label - new title
+*/
 void OB_Browser::setNameTitle( const QIconSet& icon, const QString& label )
 {
   QListView* lv = listView();
@@ -575,11 +748,22 @@ void OB_Browser::setNameTitle( const QIconSet& icon, const QString& label )
     lv->setColumnText( 0, icon, label );
 }
 
+/*!
+  Sets title of column
+  \param id - column id
+  \param label - new column title
+*/
 void OB_Browser::setColumnTitle( const int id, const QString& label )
 {
   setColumnTitle( id, QIconSet(), label );
 }
 
+/*!
+  Sets title and icon of column
+  \param id - column id
+  \param icon - new column icon
+  \param label - new column title
+*/
 void OB_Browser::setColumnTitle( const int id, const QIconSet& icon, const QString& label )
 {
   QListView* lv = listView();
@@ -592,11 +776,18 @@ void OB_Browser::setColumnTitle( const int id, const QIconSet& icon, const QStri
     lv->setColumnText( myColumnIds[id], icon, label );
 }
 
+/*!
+  \return title of first column (name column)
+*/
 QString OB_Browser::nameTitle() const
 {
   return myView->columnText( 0 );
 }
 
+/*!
+  \return title of first column (name column)
+  \param id - column id
+*/
 QString OB_Browser::columnTitle( const int id ) const
 {
   QString txt;
@@ -605,25 +796,44 @@ QString OB_Browser::columnTitle( const int id ) const
   return txt;
 }
 
+/*!
+  \return true if column is visible
+  \param id - column id
+*/
 bool OB_Browser::isColumnVisible( const int id ) const
 {
   return myColumnIds.contains( id ) && myView->isShown( myColumnIds[id] );
 }
 
+/*!
+  Sets visibility of column
+  \param id - column id
+  \param on - new visibility state
+*/
 void OB_Browser::setColumnShown( const int id, const bool on )
 {
   if ( !myColumnIds.contains( id ) )
     return;
 
   myView->setShown( myColumnIds[id], on );
+  if( !on )
+    myView->setColumnWidthMode( myColumnIds[id], QListView::Manual );
 }
 
+/*!
+  Sets global width mode
+  \param mode - new width mode
+*/
 void OB_Browser::setWidthMode( QListView::WidthMode mode )
 {
   for ( int i = 0, n = myView->columns(); i < n; i++ )
-    myView->setColumnWidthMode( i, mode );
+    if( mode!=QListView::Maximum || myView->columnWidth( i )>0 )
+      myView->setColumnWidthMode( i, mode );
 }
 
+/*!
+  \return list of columns ids
+*/
 QValueList<int> OB_Browser::columns() const
 {
   QValueList<int> lst;
@@ -632,6 +842,10 @@ QValueList<int> OB_Browser::columns() const
   return lst;
 }
 
+/*!
+  \return true if it is possible to show/hide column by popup
+  \param id - column id
+*/
 bool OB_Browser::appropriateColumn( const int id ) const
 {
   bool res = false;
@@ -640,6 +854,11 @@ bool OB_Browser::appropriateColumn( const int id ) const
   return res;
 }
 
+/*!
+  Sets "appropriate state": is it possible to show/hide column by popup
+  \param id - column id
+  \param on - new state
+*/
 void OB_Browser::setAppropriateColumn( const int id, const bool on )
 {
   if ( !myColumnIds.contains( id ) )
@@ -648,6 +867,12 @@ void OB_Browser::setAppropriateColumn( const int id, const bool on )
   myView->setAppropriate( myColumnIds[id], on );
 }
 
+/*!
+  Updates tree
+  \param obj - start object
+  \param autoOpen - to open automatically branches of autoOpenLevel()
+  \sa autoOpenLevel()
+*/
 void OB_Browser::updateTree( SUIT_DataObject* obj, const bool autoOpen )
 {
 //  QTime t1 = QTime::currentTime();
@@ -679,6 +904,9 @@ void OB_Browser::updateTree( SUIT_DataObject* obj, const bool autoOpen )
 //  qDebug( QString( "update tree time = %1 msecs" ).arg( t1.msecsTo( t2 ) ) );
 }
 
+/*!
+  Replaces part of tree starting at object 'src' by tree starting at object 'trg'
+*/
 void OB_Browser::replaceTree( SUIT_DataObject* src, SUIT_DataObject* trg )
 {
   if ( !src || !trg || src == trg || src->root() != getRootObject() )
@@ -719,6 +947,10 @@ void OB_Browser::replaceTree( SUIT_DataObject* src, SUIT_DataObject* trg )
     emit selectionChanged();
 }
 
+/*!
+  Updates view
+  \param startObj - start object
+*/
 void OB_Browser::updateView( SUIT_DataObject* startObj )
 {
   QListView* lv = listView();
@@ -728,39 +960,13 @@ void OB_Browser::updateView( SUIT_DataObject* startObj )
   if ( !startObj || startObj->root() != getRootObject() )
     return;
 
+  //qDebug( "updateView:" );
+  //startObj->dump();
+
   if ( startObj == myRoot )
   {
-    DataObjectList ch;
-    myRoot->children( ch );
-
-    ItemMap exist;
-    QListViewItem* st = lv->firstChild();
-    for( ; st; st =  st->nextSibling() )
-    {
-      OB_ListItem* ob_item = dynamic_cast<OB_ListItem*>( st );
-      exist.insert( ob_item->dataObject(), ob_item );
-    }
-
-    SUIT_DataObject* local_root = ch.first();
-    for( ; local_root; local_root = ch.next() )
-    {
-      OB_BrowserSync sync( this );
-      OB_ListItem* local_item = dynamic_cast<OB_ListItem*>( listViewItem( local_root ) );
-      synchronize<ObjPtr,ItemPtr,OB_BrowserSync>( local_root, local_item, sync );
-      exist[local_root] = 0;
-    }
-
-    ItemMap::const_iterator anIt = exist.begin(), aLast = exist.end();
-    for( ; anIt!=aLast; anIt++ )
-    {
-      if( anIt.data() ) // exist[local_root]==1 -> this local root was NOT in data model, should be removed
-      {
-       removeReferences( anIt.data() );
-       OB_ListItem* item = dynamic_cast<OB_ListItem*>( anIt.data() );
-       if( item && myItems.contains( item->dataObject() ) )
-         delete anIt.data();
-      }
-    }
+    OB_BrowserSync sync( this );
+    synchronize<ObjPtr,ItemPtr,OB_BrowserSync>( myRoot, 0, sync );
   }
   else
   {
@@ -770,6 +976,14 @@ void OB_Browser::updateView( SUIT_DataObject* startObj )
   }
 }
 
+/*!
+  Creates new list item
+  \return new item
+  \param o - corresponding SUIT object
+  \param parent - parent item
+  \param after - item after that new item must be added
+  \param prepend - new item must be added as first
+*/
 QListViewItem* OB_Browser::createItem( const SUIT_DataObject* o, QListViewItem* parent,
                                       QListViewItem* after, const bool prepend )
 {
@@ -855,6 +1069,9 @@ QListViewItem* OB_Browser::createItem( const SUIT_DataObject* o, QListViewItem*
   return item;
 }
 
+/*!
+  Adjusts width by root item
+*/
 void OB_Browser::adjustWidth()
 {
   if ( !listView() )
@@ -865,6 +1082,10 @@ void OB_Browser::adjustWidth()
     adjustWidth( listView()->firstChild() );
 }
 
+/*!
+  Adjusts width by item
+  \param item
+*/
 void OB_Browser::adjustWidth( QListViewItem* item )
 {
   while ( item )
@@ -876,6 +1097,10 @@ void OB_Browser::adjustWidth( QListViewItem* item )
   }
 }
 
+/*!
+  \return SUIT object corresponding to item
+  \param item
+*/
 SUIT_DataObject* OB_Browser::dataObject( const QListViewItem* item ) const
 {
   SUIT_DataObject* obj = 0;
@@ -888,6 +1113,10 @@ SUIT_DataObject* OB_Browser::dataObject( const QListViewItem* item ) const
   return obj;
 }
 
+/*!
+  \return item corresponding to SUIT object
+  \param obj - SUIT object
+*/
 QListViewItem* OB_Browser::listViewItem( const SUIT_DataObject* obj ) const
 {
   QListViewItem* item = 0;
@@ -898,11 +1127,17 @@ QListViewItem* OB_Browser::listViewItem( const SUIT_DataObject* obj ) const
   return item;
 }
 
+/*!
+  \return list view of object browser
+*/
 QListView* OB_Browser::listView() const
 {
   return myView;
 }
 
+/*!
+  \remove all items referencing current (through data objects)
+*/
 void OB_Browser::removeReferences( QListViewItem* item )
 {
   if ( !item )
@@ -920,6 +1155,9 @@ void OB_Browser::removeReferences( QListViewItem* item )
   }
 }
 
+/*!
+  Connects all children to SLOT onDestroyed
+*/
 void OB_Browser::createConnections( SUIT_DataObject* obj )
 {
   if ( !obj )
@@ -934,6 +1172,9 @@ void OB_Browser::createConnections( SUIT_DataObject* obj )
     it.current()->connect( this, SLOT( onDestroyed( SUIT_DataObject* ) ) );
 }
 
+/*!
+  Disconnects all children from SLOT onDestroyed
+*/
 void OB_Browser::removeConnections( SUIT_DataObject* obj )
 {
   if ( !obj )
@@ -948,6 +1189,13 @@ void OB_Browser::removeConnections( SUIT_DataObject* obj )
     it.current()->disconnect( this, SLOT( onDestroyed( SUIT_DataObject* ) ) );
 }
 
+/*!
+  Stores states (opened, selected) of current tree items
+  \return current item
+  \param selObjs, selKeys - maps of selected objects
+  \param openObjs, openKeys - maps of opened objects
+  \param curKey - map of current objects
+*/
 SUIT_DataObject* OB_Browser::storeState( DataObjectMap& selObjs, DataObjectMap& openObjs,
                                          DataObjectKeyMap& selKeys, DataObjectKeyMap& openKeys,
                                          DataObjectKey& curKey ) const
@@ -977,6 +1225,12 @@ SUIT_DataObject* OB_Browser::storeState( DataObjectMap& selObjs, DataObjectMap&
   return curObj;
 }
 
+/*!
+  Restores states (opened, selected) of current tree items
+  \param selObjs, selKeys - maps of selected objects
+  \param openObjs, openKeys - maps of opened objects
+  \param curKey - map of current objects
+*/
 void OB_Browser::restoreState( const DataObjectMap& selObjs, const DataObjectMap& openObjs,
                                const SUIT_DataObject* curObj, const DataObjectKeyMap& selKeys,
                                const DataObjectKeyMap& openKeys, const DataObjectKey& curKey )
@@ -1036,11 +1290,17 @@ void OB_Browser::restoreState( const DataObjectMap& selObjs, const DataObjectMap
   lv->blockSignals( block );
 }
 
+/*!
+  Creates object key by tree item
+*/
 OB_Browser::DataObjectKey OB_Browser::objectKey( QListViewItem* i ) const
 {
   return objectKey( dataObject( i ) );
 }
 
+/*!
+  Creates object key by SUIT object
+*/
 OB_Browser::DataObjectKey OB_Browser::objectKey( SUIT_DataObject* obj ) const
 {
   if ( !obj )
@@ -1049,6 +1309,9 @@ OB_Browser::DataObjectKey OB_Browser::objectKey( SUIT_DataObject* obj ) const
   return DataObjectKey( obj->key() );
 }
 
+/*!
+  Custom key press event handler, updates tree by F5
+*/
 void OB_Browser::keyPressEvent( QKeyEvent* e )
 {
   if ( e->key() == Qt::Key_F5 )
@@ -1057,6 +1320,9 @@ void OB_Browser::keyPressEvent( QKeyEvent* e )
   QFrame::keyPressEvent( e );
 }
 
+/*!
+  SLOT: called if action "Expand all" is activated
+*/
 void OB_Browser::onExpand()
 {
   DataObjectList selected;
@@ -1065,16 +1331,28 @@ void OB_Browser::onExpand()
     expand( listViewItem( itr.current() ) );
 }
 
+/*!
+  SLOT: called if action "Show/hide column" is activated by popup
+*/
 void OB_Browser::onColumnVisible( int id )
 {
   setColumnShown( id, !isColumnVisible( id ) );
 }
 
+/*!
+  SLOT: called if SUIT object is destroyed
+*/
 void OB_Browser::onDestroyed( SUIT_DataObject* obj )
 {
   removeObject( obj );
 }
 
+/*!
+  SLOT: called on finish of drag-n-drop operation
+  \param items - dragged items
+  \param item - destination (item on that they were dropped)
+  \param action - QDropEvent::Action
+*/
 void OB_Browser::onDropped( QPtrList<QListViewItem> items, QListViewItem* item, int action )
 {
   SUIT_DataObject* obj = dataObject( item );
@@ -1093,6 +1371,9 @@ void OB_Browser::onDropped( QPtrList<QListViewItem> items, QListViewItem* item,
     emit dropped( lst, obj, action );
 }
 
+/*!
+  Updates texts of items
+*/
 void OB_Browser::updateText()
 {
   if ( myColumnIds.isEmpty() )
@@ -1113,6 +1394,26 @@ void OB_Browser::updateText()
   }
 }
 
+/*!
+  \return true if item must be updated
+  \param item - item to be checked
+*/
+bool OB_Browser::needToUpdateTexts( QListViewItem* item ) const
+{
+  SUIT_DataObject* obj = dataObject( item );
+  if ( !obj )
+    return false;
+
+  for( QMap<int, int>::const_iterator it = myColumnIds.begin(); it != myColumnIds.end(); ++it )
+    if( item->text( it.data() ) != obj->text( it.key() ) )
+      return true;
+  return false;
+}
+
+/*!
+  Updates texts of item
+  \param item - item to be updated
+*/
 void OB_Browser::updateText( QListViewItem* item )
 {
   SUIT_DataObject* obj = dataObject( item );
@@ -1123,6 +1424,9 @@ void OB_Browser::updateText( QListViewItem* item )
     item->setText( it.data(), obj->text( it.key() ) );
 }
 
+/*!
+  Custom event filter
+*/
 bool OB_Browser::eventFilter( QObject* o, QEvent* e )
 {
   if ( o == myView && e->type() == QEvent::ContextMenu )
@@ -1146,6 +1450,10 @@ bool OB_Browser::eventFilter( QObject* o, QEvent* e )
   return QFrame::eventFilter( o, e );
 }
 
+/*!
+  Adds custom actions to popup
+  \param menu - popup menu
+*/
 void OB_Browser::contextMenuPopup( QPopupMenu* menu )
 {
 /*  QValueList<int> cols;
@@ -1184,6 +1492,9 @@ void OB_Browser::contextMenuPopup( QPopupMenu* menu )
   }
 }
 
+/*!
+  Expands item with all it's children
+*/
 void OB_Browser::expand( QListViewItem* item )
 {
   if ( !item )
@@ -1194,6 +1505,9 @@ void OB_Browser::expand( QListViewItem* item )
     expand( child );
 }
 
+/*!
+  \return true if item or one of it's children isn't opened
+*/
 bool OB_Browser::hasClosed( QListViewItem* item ) const
 {
   if ( !item )
@@ -1209,6 +1523,11 @@ bool OB_Browser::hasClosed( QListViewItem* item ) const
   return has;
 }
 
+/*!
+  Removes SUIT object
+  \param obj - SUIT object to be removed
+  \param autoUpd - auto tree updating
+*/
 void OB_Browser::removeObject( SUIT_DataObject* obj, const bool autoUpd )
 {
   if ( !obj )
@@ -1249,6 +1568,10 @@ void OB_Browser::removeObject( SUIT_DataObject* obj, const bool autoUpd )
   delete item;
 }
 
+/*!
+  Opens branches from 1 to autoOpenLevel()
+  \sa autoOpenLevel()
+*/
 void OB_Browser::autoOpenBranches()
 {
   int level = autoOpenLevel();
@@ -1264,6 +1587,11 @@ void OB_Browser::autoOpenBranches()
   }
 }
 
+/*!
+  Opens branch
+  \param item
+  \param level
+*/
 void OB_Browser::openBranch( QListViewItem* item, const int level )
 {
   if ( level < 1 )
@@ -1277,12 +1605,18 @@ void OB_Browser::openBranch( QListViewItem* item, const int level )
   }
 }
 
+/*!
+  SLOT: called on double click on item, emits signal
+*/
 void OB_Browser::onDoubleClicked( QListViewItem* item )
 {
   if ( item )
     emit doubleClicked( dataObject( item ) );
 }
 
+/*!
+  Stores time of last modification
+*/
 void OB_Browser::setModified()
 {
   myModifiedTime = clock();
index a6e3cd42113231860df4d79739858decf157a98c..b0c592830df8ef47c3c8b4d3419c2867a69ffa4a 100755 (executable)
@@ -39,6 +39,12 @@ class OB_Filter;
 class OB_ListView;
 class OB_ListItem;
 
+/*!
+  \class OB_Browser
+  Represents object browser. Allows to get/set selection, 
+  to drag-n-drop of objects, to determine item by SUIT object and 
+  vice versa
+*/
 class OB_EXPORT OB_Browser : public QFrame, public SUIT_PopupClient
 {
        Q_OBJECT
@@ -162,6 +168,7 @@ private:
   void              removeObject( SUIT_DataObject*, const bool = true );
 
   void              updateText( QListViewItem* );
+  bool              needToUpdateTexts( QListViewItem* ) const;
 
   DataObjectKey     objectKey( QListViewItem* ) const;
   DataObjectKey     objectKey( SUIT_DataObject* ) const;
index 1a9fda941b59c677359d4c4f0315ddd6d883c935..43517540e492e625d90b2d7ab12a8d170ce53a22 100644 (file)
 //
 #include "OB_Filter.h"
 
+/*!
+  Default constructor
+*/
 OB_Filter::OB_Filter()
 {
 }
 
+/*!
+  Destructor
+*/
 OB_Filter::~OB_Filter()
 {
 }
index 3570eb06dc9bc360fe290f137428f27bd07db01b..60ceaadff0e1fb2983f61b3e7a8d702550cc9d25 100644 (file)
 
 class SUIT_DataObject;
 
+/*!
+  \class OB_Filter
+  Base class for ObjectBrowser filter.
+  Filters selected objects by some condition.
+*/
 class OB_EXPORT OB_Filter
 {
 public:
index 49ad75741da39d1611b64a3f09737cc5a0b8f47a..1147ae5da529db8c3242f80cfe69f714059766fc 100755 (executable)
 using namespace std;
 
 /*!
-    Class: ListItem
-    Descr: base template class
+  Constructor
 */
-
 template<class T>
 ListItemF<T>::ListItemF( T* theT, SUIT_DataObject* obj ) :
 myT( theT ),
@@ -40,6 +38,9 @@ myObject( obj )
 {
 }
 
+/*!
+  Paints item
+*/
 template<class T>
 void ListItemF<T>::paintC( QPainter* p, QColorGroup& cg, int c, int w, int align )
 { 
@@ -67,6 +68,9 @@ void ListItemF<T>::paintC( QPainter* p, QColorGroup& cg, int c, int w, int align
   //myT.paintCell( p, colorGrp, c, itemW,  align );
 }
 
+/*!
+  Paints focused item
+*/
 template<class T>
 void ListItemF<T>::paintFoc( QPainter* p, QColorGroup& cg, const QRect& r )
 {
@@ -75,6 +79,10 @@ void ListItemF<T>::paintFoc( QPainter* p, QColorGroup& cg, const QRect& r )
   //myT.paintFocus( p, cg, rect );
 }
 
+/*!
+  Set selection of item
+  \param s - selected state
+*/
 template<class T>
 void ListItemF<T>::setSel( bool s )
 {
@@ -88,6 +96,9 @@ void ListItemF<T>::setSel( bool s )
   //myT.setSelected( s );
 }
 
+/*!
+  Updates name and pixmap of item
+*/
 template<class T>
 void ListItemF<T>::update()
 {
@@ -119,10 +130,8 @@ void ListItemF<T>::update()
 }
 
 /*!
-    Class: OB_ListItem
-    Descr: List view item for OB_Browser.
+  Constructor
 */
-
 OB_ListItem::OB_ListItem( SUIT_DataObject* obj, QListView* parent )
 : ListItemF<QListViewItem>( this, obj ),
  QListViewItem(parent)
@@ -130,6 +139,9 @@ OB_ListItem::OB_ListItem( SUIT_DataObject* obj, QListView* parent )
   update();
 }
 
+/*!
+  Constructor
+*/
 OB_ListItem::OB_ListItem( SUIT_DataObject* obj, QListViewItem* parent )
 : ListItemF<QListViewItem>( this, obj ),
  QListViewItem(parent)
@@ -137,6 +149,9 @@ OB_ListItem::OB_ListItem( SUIT_DataObject* obj, QListViewItem* parent )
   update();
 }
 
+/*!
+  Constructor
+*/
 OB_ListItem::OB_ListItem( SUIT_DataObject* obj, QListView* parent, QListViewItem* after )
 : ListItemF<QListViewItem>( this, obj),
 QListViewItem(parent, after )
@@ -144,6 +159,9 @@ QListViewItem(parent, after )
   update();
 }
 
+/*!
+  Constructor
+*/
 OB_ListItem::OB_ListItem( SUIT_DataObject* obj, QListViewItem* parent, QListViewItem* after )
 : ListItemF<QListViewItem>( this,obj),
 QListViewItem(parent, after )
@@ -151,16 +169,29 @@ QListViewItem(parent, after )
   update();
 }
 
+/*!
+  Destructor
+*/
 OB_ListItem::~OB_ListItem()
 {
 }
 
+/*!
+  Sets selection state of item
+  \param s - new state
+*/
 void OB_ListItem::setSelected( bool s )
 {
   setSel( s );
   QListViewItem::setSelected( s );
 }
 
+/*!
+  Paints focus
+  \param p - painter
+  \param cg - color group
+  \param r - focus rectangle 
+*/
 void OB_ListItem::paintFocus( QPainter* p, const QColorGroup& cg, const QRect& r )
 {
   QColorGroup col_group( cg );
@@ -173,6 +204,14 @@ void OB_ListItem::paintFocus( QPainter* p, const QColorGroup& cg, const QRect& r
   QListViewItem::paintFocus( p, col_group, R );
 }
 
+/*!
+  Paints item
+  \param p - painter
+  \param cg - color group
+  \param c - not used
+  \param w - width of item
+  \param align - alignment
+*/
 void OB_ListItem::paintCell( QPainter* p, const QColorGroup& cg, int c, int w, int align )
 {
   QColorGroup col_group( cg );
@@ -182,19 +221,30 @@ void OB_ListItem::paintCell( QPainter* p, const QColorGroup& cg, int c, int w, i
   if ( listView() && !listView()->allColumnsShowFocus() )
     W = width( p->fontMetrics(), listView(), c );
 
-       QListViewItem::paintCell( p, col_group, c, W, align );
+       QListViewItem::paintCell( p, col_group, c, min( W, w ), align );
 }
 
+/*!
+  \return custom RTTI info
+*/
 int OB_ListItem::RTTI()
 {
   return 1000;
 }
 
+/*!
+  \return custom RTTI info
+*/
 int OB_ListItem::rtti() const
 {
   return RTTI();
 }
 
+/*!
+  Sets item text
+  \param column - column index
+  \param text - new text
+*/
 void OB_ListItem::setText( int column, const QString& text )
 {
   QListViewItem::setText( column, text );
@@ -207,10 +257,8 @@ void OB_ListItem::setText( int column, const QString& text )
 }
 
 /*!
-    Class: OB_CheckListItem
-    Descr: Check list view item for OB_Browser.
+  Constructor
 */
-
 OB_CheckListItem::OB_CheckListItem( SUIT_DataObject* obj, QListView* parent, Type type )
 : ListItemF<QCheckListItem>( this, obj),
 QCheckListItem( parent, "", type )
@@ -218,6 +266,9 @@ QCheckListItem( parent, "", type )
   update();
 }
 
+/*!
+  Constructor
+*/
 OB_CheckListItem::OB_CheckListItem( SUIT_DataObject* obj, QListViewItem* parent, Type type )
 : ListItemF<QCheckListItem>( this, obj),
 QCheckListItem( parent, "", type )
@@ -225,6 +276,9 @@ QCheckListItem( parent, "", type )
   update();
 }
 
+/*!
+  Constructor
+*/
 OB_CheckListItem::OB_CheckListItem( SUIT_DataObject* obj, QListView* parent, QListViewItem* after, Type type )
 : ListItemF<QCheckListItem>( this, obj),
 #if defined(QT_VERSION) && QT_VERSION >= 0x030101
@@ -236,6 +290,9 @@ OB_CheckListItem::OB_CheckListItem( SUIT_DataObject* obj, QListView* parent, QLi
   update();
 }
 
+/*!
+  Constructor
+*/
 OB_CheckListItem::OB_CheckListItem( SUIT_DataObject* obj, QListViewItem* parent, QListViewItem* after, Type type )
 : ListItemF<QCheckListItem>( this, obj),
 #if defined(QT_VERSION) && QT_VERSION >= 0x030101
@@ -247,16 +304,29 @@ OB_CheckListItem::OB_CheckListItem( SUIT_DataObject* obj, QListViewItem* parent,
   update();
 }
 
+/*!
+  Destructor
+*/
 OB_CheckListItem::~OB_CheckListItem()
 {
 }
 
+/*!
+  Sets selection state of item
+  \param s - new state
+*/
 void OB_CheckListItem::setSelected( bool s )
 {
        setSel( s );
        QCheckListItem::setSelected( s );
 }
 
+/*!
+  Paints focus
+  \param p - painter
+  \param cg - color group
+  \param r - focus rectangle 
+*/
 void OB_CheckListItem::paintFocus( QPainter* p, const QColorGroup& cg, const QRect& r )
 {
   QColorGroup col_group( cg );
@@ -269,6 +339,14 @@ void OB_CheckListItem::paintFocus( QPainter* p, const QColorGroup& cg, const QRe
        QCheckListItem::paintFocus( p, col_group, R );
 }
 
+/*!
+  Paints item
+  \param p - painter
+  \param cg - color group
+  \param c - not used
+  \param w - width of item
+  \param align - alignment
+*/
 void OB_CheckListItem::paintCell( QPainter* p, const QColorGroup& cg, int c, int w, int align )
 {
   QColorGroup col_group( cg );
@@ -278,19 +356,28 @@ void OB_CheckListItem::paintCell( QPainter* p, const QColorGroup& cg, int c, int
   if ( listView() && !listView()->allColumnsShowFocus() )
     W = width( p->fontMetrics(), listView(), c );
 
-  QCheckListItem::paintCell( p, col_group, c, W, align );
+  QCheckListItem::paintCell( p, col_group, c, min( W, w ), align );
 }
 
+/*!
+  \return custom RTTI info
+*/
 int OB_CheckListItem::RTTI()
 {
   return OB_ListItem::RTTI() + 1;
 }
 
+/*!
+  \return custom RTTI info
+*/
 int OB_CheckListItem::rtti() const
 {
   return RTTI();
 }
 
+/*!
+  SLOT: called if checked state is changed, changes corresponding state of SUIT object
+*/
 void OB_CheckListItem::stateChange( bool on )
 {
   QCheckListItem::stateChange( on );
index 112c3c8c9ac0783b2abd5b73018ce4ef97591546..3960fc141019f5946b7deffdae4947095d52f7f5 100755 (executable)
 
 class SUIT_DataObject;
 
-/* 
-  base template class for ListViewItems and CheckListItems
+/*!
+  \class ListItemF
+  Base template class for ListViewItems and CheckListItems
 */
-
 template<class T> class ListItemF
 {
 public:
@@ -57,10 +57,10 @@ protected:
   T*  myT;
 };
 
-/* 
-   ListViewItem class
+/*!
+  \class OB_ListItem
+  Provides custom list item for Object Browser tree
 */
-
 class OB_EXPORT OB_ListItem : public ListItemF<QListViewItem>, public QListViewItem
 {
 public:
@@ -82,10 +82,10 @@ public:
   static int       RTTI();
 };
 
-/* 
-   CheckListItem class
+/*!
+  \class OB_CheckListItem
+  Provides custom list item with check box
 */
-
 class OB_EXPORT OB_CheckListItem : public ListItemF<QCheckListItem>, public QCheckListItem
 {
 public:
index 53d62602f15de6c4a942c31afe9fb39d5af1672c..98fb97d26c4af8abbaecbf95c7cad6e3a8bb9bed 100755 (executable)
 
 #include <qdragobject.h>
 
+/*!
+  Constructor
+*/
 OB_ListView::OB_ListView( QWidget* parent, const char* name, WFlags f )
 : QtxListView( parent, name, f ),
 myFilter( 0 )
 {
 }
 
+/*!
+  Constructor
+*/
 OB_ListView::OB_ListView( const int state, QWidget* parent, const char* name, WFlags f )
 : QtxListView( state, parent, name, f ),
 myFilter( 0 )
 {
 }
 
+/*!
+  Destructor
+*/
 OB_ListView::~OB_ListView()
 {
   delete myFilter;
 }
 
+/*!
+  \return filter
+*/
 OB_Filter* OB_ListView::filter() const
 {
   return myFilter;
 }
 
+/*!
+  Changes filter
+  \param f - new filter
+*/
 void OB_ListView::setFilter( OB_Filter* f )
 {
   if ( myFilter == f )
@@ -56,6 +72,9 @@ void OB_ListView::setFilter( OB_Filter* f )
   myFilter = f;
 }
 
+/*!
+  \return true if item passes filter
+*/
 bool OB_ListView::isOk( QListViewItem* item ) const
 {
   bool ok = true;
@@ -65,6 +84,9 @@ bool OB_ListView::isOk( QListViewItem* item ) const
   return ok;
 }
 
+/*!
+  Creates new drag object
+*/
 QDragObject* OB_ListView::dragObject()
 {
   myItems.clear();
@@ -76,11 +98,17 @@ QDragObject* OB_ListView::dragObject()
   return new QTextDrag( "", this );
 }
 
+/*!
+  Custom drag enter event filter
+*/
 void OB_ListView::dragEnterEvent( QDragEnterEvent* e )
 {
   e->accept();
 }
 
+/*!
+  Custom drag move event filter
+*/
 void OB_ListView::dragMoveEvent( QDragMoveEvent* e )
 {
   QListViewItem* item = dropItem( e );
@@ -94,6 +122,9 @@ void OB_ListView::dragMoveEvent( QDragMoveEvent* e )
     e->accept( false );
 }
 
+/*!
+  Custom drop event filter
+*/
 void OB_ListView::dropEvent( QDropEvent* e )
 {
   QListViewItem* item = dropItem( e );
@@ -105,6 +136,9 @@ void OB_ListView::dropEvent( QDropEvent* e )
   myItems.clear();
 }
 
+/*!
+  Custom key press event filter
+*/
 void OB_ListView::keyPressEvent( QKeyEvent* ke )
 {
   if ( ( ke->key() == Qt::Key_Plus || ke->key() == Qt::Key_Minus ) && ke->state() & ControlButton )
@@ -118,6 +152,10 @@ void OB_ListView::keyPressEvent( QKeyEvent* ke )
     QtxListView::keyPressEvent( ke );
 }
 
+/*!
+  Finds item, in that dragged objects are dropped by QDropEvent
+  \return tree item
+*/
 QListViewItem* OB_ListView::dropItem( QDropEvent* e ) const
 {
   QListViewItem* item = 0;
@@ -127,6 +165,10 @@ QListViewItem* OB_ListView::dropItem( QDropEvent* e ) const
   return item;
 }
 
+/*!
+  \return SUIT object by tree item
+  \param item - tree item
+*/
 SUIT_DataObject* OB_ListView::dataObject( QListViewItem* item ) const
 {
   if ( !item )
@@ -142,6 +184,10 @@ SUIT_DataObject* OB_ListView::dataObject( QListViewItem* item ) const
   return obj;
 }
 
+/*!
+  \return true if it is possible to drop into item
+  \param item - tree item to be checked
+*/
 bool OB_ListView::isDropAccepted( QListViewItem* item ) const
 {
   bool res = true;
@@ -152,6 +198,11 @@ bool OB_ListView::isDropAccepted( QListViewItem* item ) const
   return res;
 }
 
+/*!
+  \return true if it is possible to drop one item into other
+  \param drag - dragged item
+  \param drop - destination item
+*/
 bool OB_ListView::isDropAccepted( QListViewItem* drag, QListViewItem* drop ) const
 {
   SUIT_DataObject* dragObj = dataObject( drag );
@@ -163,6 +214,11 @@ bool OB_ListView::isDropAccepted( QListViewItem* drag, QListViewItem* drop ) con
   return dropObj->isDropAccepted( dragObj );
 }
 
+/*!
+  Sets column width
+  \param col - column index
+  \param width - column width
+*/ 
 void OB_ListView::setColumnWidth( int col, int width )
 {
   int max = columnMaxWidth( col );
@@ -171,6 +227,10 @@ void OB_ListView::setColumnWidth( int col, int width )
   QListView::setColumnWidth( col, width );
 }
 
+/*!
+  \return column max width
+  \param col - column index
+*/ 
 int OB_ListView::columnMaxWidth( const int col ) const
 {
   int res = -1;
@@ -181,11 +241,20 @@ int OB_ListView::columnMaxWidth( const int col ) const
   return res;
 }
 
+/*!
+  Changes column max width
+  \param col - column index
+  \param w - column max width
+*/ 
 void OB_ListView::setColumnMaxWidth( const int col, const int w )
 {
   myMaxColWidth.insert( col, w );
 }
 
+/*!
+  \return column max ratio
+  \param col - column index
+*/ 
 double OB_ListView::columnMaxRatio( const int col ) const
 {
   double res = 0.0;
@@ -194,6 +263,11 @@ double OB_ListView::columnMaxRatio( const int col ) const
   return res;
 }
 
+/*!
+  Changes column max ratio
+  \param col - column index
+  \param w - column max ratio
+*/ 
 void OB_ListView::setColumnMaxRatio( const int col, const double r )
 {
   myMaxColRatio.insert( col, r );
index 03a394c213bd1c23a2e7a986ed4f39942f86744c..d35b3320b050b9fccded448a7199f08307d7170c 100755 (executable)
@@ -34,6 +34,11 @@ class OB_Filter;
 class QListViewItem;
 class SUIT_DataObject;
 
+/*!
+  \class OB_ListView
+  Special list view for ObjectBrowser.
+  Allows drag-n-drop, filtering of selected objects, column management.
+*/
 class OB_EXPORT OB_ListView : public QtxListView
 {
   Q_OBJECT
index b570f058e21602c970289a61d2d71ac45b32704d..0f57bf3e54acd8973dff32d8ffaabda82faf62b0 100755 (executable)
@@ -1,3 +1,21 @@
+#  Copyright (C) 2005  CEA/DEN, EDF R&D, OPEN CASCADE, PRINCIPIA R&D
+#
+#  This library is free software; you can redistribute it and/or
+#  modify it under the terms of the GNU Lesser General Public
+#  License as published by the Free Software Foundation; either
+#  version 2.1 of the License.
+#
+#  This library is distributed in the hope that it will be useful,
+#  but WITHOUT ANY WARRANTY; without even the implied warranty of
+#  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+#  Lesser General Public License for more details.
+#
+#  You should have received a copy of the GNU Lesser General Public
+#  License along with this library; if not, write to the Free Software
+#  Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307 USA
+#
+#  See http://www.salome-platform.org/
+#
 # This is a Qt message file in .po format.  Each msgid starts with
 # a scope.  This scope should *NOT* be translated - eg. "Foo::Bar"
 # would be translated to "Pub", not "Foo::Pub".
index ef3d4742b7fccebeeba867254c2b087b746a80fc..b6060462ca7e799c78029a7b6cd47c74d17fcf60 100755 (executable)
@@ -1,3 +1,21 @@
+#  Copyright (C) 2005  CEA/DEN, EDF R&D, OPEN CASCADE, PRINCIPIA R&D
+#
+#  This library is free software; you can redistribute it and/or
+#  modify it under the terms of the GNU Lesser General Public
+#  License as published by the Free Software Foundation; either
+#  version 2.1 of the License.
+#
+#  This library is distributed in the hope that it will be useful,
+#  but WITHOUT ANY WARRANTY; without even the implied warranty of
+#  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+#  Lesser General Public License for more details.
+#
+#  You should have received a copy of the GNU Lesser General Public
+#  License along with this library; if not, write to the Free Software
+#  Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307 USA
+#
+#  See http://www.salome-platform.org/
+#
 #  File   : Makefile.in
 #  Author : Vladimir Klyachin (OCN)
 #  Module : Plot2d
index c0a9abbb6f2a1694e188bf2898b8c613bfd5de57..4c5d02bd19472f79b1fc503ba9eb058e4c6a78aa 100755 (executable)
@@ -72,6 +72,9 @@ Plot2d_Curve& Plot2d_Curve::operator=( const Plot2d_Curve& curve )
   return *this;
 }
 
+/*!
+  \return title of table
+*/
 QString Plot2d_Curve::getTableTitle() const
 {
   return QString();
index 6f708f6101bd942eb20fed335256c11a18c42d13..de9fc819b17bef8585d0bdf068a3c182beedf663 100755 (executable)
 #include <qwt_plot.h>
 #include "Plot2d_Prs.h"
 
-//==========================================================
 /*!
- *  Plot2d_Prs::Plot2d_Prs
- *  Default constructor
- */
-//==========================================================
+  Default constructor
+*/
 Plot2d_Prs::Plot2d_Prs( bool theDelete )
 : mySecondY( false)
 {
   setAutoDel(theDelete);
 }
 
-//==========================================================
 /*!
- *  Plot2d_Prs::Plot2d_Prs
- *  Standard constructor
- */
-//==========================================================
+  Standard constructor
+*/
 Plot2d_Prs::Plot2d_Prs( const Plot2d_Curve* obj, bool theDelete )
 : mySecondY( false)
 {
@@ -54,33 +48,24 @@ Plot2d_Prs::Plot2d_Prs( const Plot2d_Curve* obj, bool theDelete )
   AddObject( obj ); 
 }
 
-//==========================================================
 /*!
- *  Plot2d_Prs::~Plot2d_Prs
- *  Destructor
- */
-//==========================================================
+  Destructor
+*/
 Plot2d_Prs::~Plot2d_Prs()
 { 
 }
 
-//==========================================================
 /*!
- *  Plot2d_Prs::GetObjects
- *  Get curves list
- */
-//==========================================================
+  Get curves list
+*/
 curveList Plot2d_Prs::getCurves() const
 {
   return myCurves;
 }
 
-//==========================================================
 /*!
- *  Plot2d_Prs::AddObject
- *  Add curbe
- */
-//==========================================================
+  Add curve
+*/
 void Plot2d_Prs::AddObject( const Plot2d_Curve* obj )
 {
   myCurves.append((Plot2d_Curve*)obj);
@@ -89,38 +74,25 @@ void Plot2d_Prs::AddObject( const Plot2d_Curve* obj )
     mySecondY = true;
 }
 
-//==========================================================
 /*!
- *  Plot2d_Prs::IsNull
- *  Return 0 if list of the curves is empty
- *  [ Reimplemented from SALOME_Prs ]
- */
-//==========================================================
+  \return 0 if list of the curves is empty [ Reimplemented from SALOME_Prs ]
+*/
 bool Plot2d_Prs::IsNull() const 
 { 
   return myCurves.isEmpty();
 }
 
-//==========================================================
 /*!
- *  Plot2d_Prs::IsSecondY
- *  Return 1 if in the list of curves exist at least one curve
- *  with axis Qwt::yRight
- *  [ Reimplemented from SALOME_Prs ]
- */
-//==========================================================
+  \return 1 if in the list of curves exist at least one curve with axis Qwt::yRight [ Reimplemented from SALOME_Prs ]
+*/
 bool Plot2d_Prs::isSecondY() const
 {
   return mySecondY;
 }
 
-//==========================================================
 /*!
- *  Plot2d_Prs::IsNull
- *  Return 0 if list of the curves is empty
- *  [ Reimplemented from SALOME_Prs ]
- */
-//==========================================================
+  \return 0 if list of the curves is empty [ Reimplemented from SALOME_Prs ]
+*/
 void Plot2d_Prs::setAutoDel(bool theDel)
 {
   myCurves.setAutoDelete(theDel);
index c9bea3a3d9abf61be0bc63e6339f5de906080287..7193447238e9794c32a1bec5df85b80f9da0dd59 100644 (file)
 
 #include <qdialog.h>
 
-//=================================================================================
-// class    : Plot2d_SetupCurveDlg
-// purpose  : Dialog box for setup Plot2d curve
-//=================================================================================
+/*!
+  \class Plot2d_SetupCurveDlg
+  Dialog box for setup Plot2d curve
+*/
 
 class QPushButton;
 class QComboBox;
index 35f4b5888cd7f093b7c22010c49e02da74c52153..b5eccb446d3cb6a31e5d8e5f20a5666163c2c9bd 100755 (executable)
@@ -130,10 +130,6 @@ const char* imageCrossCursor[] = {
   "................................"};
   
 
-//=================================================================================
-// Plot2d_ViewFrame implementation
-//=================================================================================
-
 /*!
   Constructor
 */
@@ -1082,6 +1078,11 @@ void Plot2d_ViewFrame::setCurveType( int curveType, bool update )
   emit vpCurveChanged();
 }
 
+/*!
+  Sets curve title
+  \param curveKey - curve id
+  \param title - new title
+*/
 void Plot2d_ViewFrame::setCurveTitle( int curveKey, const QString& title ) 
 { 
   if(myPlot) myPlot->setCurveTitle(curveKey, title); 
@@ -1609,9 +1610,6 @@ bool Plot2d_ViewFrame::isYLogEnabled() const
   return allPositive;
 }
 
-//=================================================================================
-// Plot2d_Plot2d implementation
-//=================================================================================
 /*!
   Constructor
 */
@@ -1745,11 +1743,17 @@ void Plot2d_Plot2d::getNextMarker( QwtSymbol::Style& typeMarker, QColor& color,
 */
 }
 
+/*!
+  \return the default layout behavior of the widget
+*/
 QSizePolicy Plot2d_Plot2d::sizePolicy() const
 {
   return QSizePolicy( QSizePolicy::Preferred, QSizePolicy::Preferred );
 }
 
+/*!
+  \return the recommended size for the widget
+*/
 QSize Plot2d_Plot2d::sizeHint() const
 {
   return QwtPlot::minimumSizeHint();
@@ -1790,12 +1794,19 @@ bool Plot2d_Plot2d::existMarker( const QwtSymbol::Style typeMarker, const QColor
   return false;
 }
 
-// TEMPORARY SOLUTION!!!  TO BE IMPLEMENTED!!!
+/*!
+  Creates presentation of object
+  Default implementation is empty
+*/
 Plot2d_Prs* Plot2d_ViewFrame::CreatePrs( const char* /*entry*/ )
 {
   return 0;
 }
 
+/*!
+  Copies preferences from other viewframe
+  \param vf - other view frame
+*/
 void Plot2d_ViewFrame::copyPreferences( Plot2d_ViewFrame* vf )
 {
   if( !vf )
@@ -1888,6 +1899,11 @@ void Plot2d_ViewFrame::updateTitles()
   setTitle( true, aTables.join("; "), MainTitle, true );
 }
 
+/*!
+  Outputs content of viewframe to file
+  \param file - file name
+  \param format - file format
+*/
 bool Plot2d_ViewFrame::print( const QString& file, const QString& format ) const
 {
 #ifdef WIN32
@@ -1919,6 +1935,9 @@ bool Plot2d_ViewFrame::print( const QString& file, const QString& format ) const
 #endif
 }
 
+/*!
+  \return string with all visual parameters
+*/
 QString Plot2d_ViewFrame::getVisualParameters()
 {
   double xmin, xmax, ymin, ymax, y2min, y2max;
@@ -1929,6 +1948,9 @@ QString Plot2d_ViewFrame::getVisualParameters()
   return retStr; 
 }
 
+/*!
+  Restores all visual parameters from string
+*/
 void Plot2d_ViewFrame::setVisualParameters( const QString& parameters )
 {
   QStringList paramsLst = QStringList::split( '*', parameters, true );
index 704e33095f2acdae5223e3fe275fec72d2c55acc..98196ecdf09adaa6db87025d330cb5c0aa6c0f24 100755 (executable)
@@ -22,6 +22,9 @@
 
 int Plot2d_ViewManager::myMaxId = 0;
 
+/*!
+  Constructor
+*/
 Plot2d_ViewManager::Plot2d_ViewManager( SUIT_Study* study, SUIT_Desktop* desk ) 
 : SUIT_ViewManager( study, desk )
 {
@@ -30,21 +33,35 @@ Plot2d_ViewManager::Plot2d_ViewManager( SUIT_Study* study, SUIT_Desktop* desk )
   setViewModel( v );
 }
 
+/*!
+  Destructor
+*/
 Plot2d_ViewManager::~Plot2d_ViewManager()
 {
 }
 
+/*!
+  \return corresponding viewer
+*/
 Plot2d_Viewer* Plot2d_ViewManager::getPlot2dModel() const
 {
   return (Plot2d_Viewer*)myViewModel;
 }
 
+/*!
+  Sets default name of view
+  \param the View - view to be renamed
+*/
 void Plot2d_ViewManager::setViewName( SUIT_ViewWindow* theView )
 {
   int aPos = myViews.find(theView);
   theView->setCaption( QString( "Plot2d scene:%1 - viewer:%2" ).arg(myId).arg(aPos+1));
 }
 
+/*!
+  Adds new view
+  \param theView - view to be added
+*/
 bool Plot2d_ViewManager::insertView( SUIT_ViewWindow* theView )
 {
   bool res = SUIT_ViewManager::insertView( theView );
@@ -56,11 +73,17 @@ bool Plot2d_ViewManager::insertView( SUIT_ViewWindow* theView )
   return res;
 }
 
+/*!
+  Creates new view
+*/
 void Plot2d_ViewManager::createView()
 {
   createViewWindow();
 }
 
+/*!
+  SLOT: called if action "Clone view" is activated, emits signal cloneView()
+*/
 void Plot2d_ViewManager::onCloneView()
 {
   SUIT_ViewWindow* vw = createViewWindow();
index 637351c9119d566fa550f6f70aac6f79a5f8d38b..30cd483b28212eaf1f9c8c48e4484b20eb24ce30 100755 (executable)
@@ -17,8 +17,6 @@
 // See http://www.salome-platform.org/
 //
 // Plot2d_ViewModel.cxx: implementation of the Plot2d_ViewModel class.
-//
-//////////////////////////////////////////////////////////////////////
 
 #include "Plot2d_ViewModel.h"
 #include "Plot2d_ViewWindow.h"
@@ -28,6 +26,9 @@
 
 #include <qpopupmenu.h>
 
+/*!
+  Constructor
+*/
 Plot2d_Viewer::Plot2d_Viewer(bool theAutoDel)
 :SUIT_ViewModel() 
 {
@@ -35,13 +36,19 @@ Plot2d_Viewer::Plot2d_Viewer(bool theAutoDel)
   myAutoDel = theAutoDel;
 }
 
+/*!
+  Destructor
+*/
 Plot2d_Viewer::~Plot2d_Viewer()
 {
   if (myPrs)
     clearPrs();
 }
 
-//*********************************************************************
+/*!
+  Create new instance of view window on desktop \a theDesktop.
+  \retval SUIT_ViewWindow* - created view window pointer.
+*/
 SUIT_ViewWindow* Plot2d_Viewer::createView(SUIT_Desktop* theDesktop)
 {
   Plot2d_ViewWindow* aPlot2dView = new Plot2d_ViewWindow(theDesktop, this);
@@ -50,7 +57,10 @@ SUIT_ViewWindow* Plot2d_Viewer::createView(SUIT_Desktop* theDesktop)
   return aPlot2dView;
 }
 
-//*********************************************************************
+/*!
+  Adds custom items to popup menu
+  \param thePopup - popup menu
+*/
 void Plot2d_Viewer::contextMenuPopup(QPopupMenu* thePopup)
 {
   Plot2d_ViewWindow* aView = (Plot2d_ViewWindow*)(myViewManager->getActiveView());
@@ -69,8 +79,10 @@ void Plot2d_Viewer::contextMenuPopup(QPopupMenu* thePopup)
   }
 }
 
-
-//*********************************************************************
+/*!
+  Sets presentation of viewer
+  \param thePrs - new presentation
+*/
 void Plot2d_Viewer::setPrs(Plot2d_Prs* thePrs) 
 {
   if (myPrs)
@@ -79,7 +91,9 @@ void Plot2d_Viewer::setPrs(Plot2d_Prs* thePrs)
   myPrs->setAutoDel(myAutoDel);
 }
 
-//*********************************************************************
+/*!
+  Updates current viewer
+*/
 void Plot2d_Viewer::update()
 {
   SUIT_ViewManager* aMgr = getViewManager();
@@ -92,7 +106,9 @@ void Plot2d_Viewer::update()
   }
 }
 
-//*********************************************************************
+/*!
+  Clear viewer presentation
+*/
 void Plot2d_Viewer::clearPrs()
 {
   SUIT_ViewManager* aMgr = getViewManager();
@@ -109,7 +125,10 @@ void Plot2d_Viewer::clearPrs()
   myPrs = 0;
 }
 
-//*********************************************************************
+/*!
+  Sets "auto delete" state of of presentation
+  \param theDel - new state
+*/
 void Plot2d_Viewer::setAutoDel(bool theDel)
 {
   myAutoDel = theDel;
@@ -117,7 +136,9 @@ void Plot2d_Viewer::setAutoDel(bool theDel)
     myPrs->setAutoDel(theDel);
 }
 
-//*********************************************************************
+/*!
+  SLOT: called when action "Change background" is activated
+*/
 void Plot2d_Viewer::onChangeBgColor()
 {
   Plot2d_ViewWindow* aView = (Plot2d_ViewWindow*)(myViewManager->getActiveView());
@@ -127,14 +148,18 @@ void Plot2d_Viewer::onChangeBgColor()
   aViewFrame->onChangeBackground();
 }
 
-//*********************************************************************
+/*!
+  SLOT: called when action "Show toolbar" is activated
+*/
 void Plot2d_Viewer::onShowToolbar() {
   Plot2d_ViewWindow* aView = (Plot2d_ViewWindow*)(myViewManager->getActiveView());
   if ( aView )
     aView->getToolBar()->show();    
 }
 
-//*********************************************************************
+/*!
+  SLOT: called when action "Dump view" is activated
+*/
 void Plot2d_Viewer::onDumpView()
 {
   Plot2d_ViewWindow* aView = (Plot2d_ViewWindow*)(myViewManager->getActiveView());
@@ -142,11 +167,17 @@ void Plot2d_Viewer::onDumpView()
     aView->onDumpView();    
 }
 
-//*********************************************************************
+/*!
+  SLOT: called when action "Clone view" is activated
+*/
 void Plot2d_Viewer::onCloneView( Plot2d_ViewFrame*, Plot2d_ViewFrame* )
 {
 }
-//*********************************************************************
+
+/*!
+  Sets view manager
+  \param mgr - new view manager
+*/
 void Plot2d_Viewer::setViewManager( SUIT_ViewManager* mgr )
 {
   SUIT_ViewModel::setViewManager( mgr );
index 017e8fada8a5cbd7139bd0b562a58c3fa2fb4842..eda8bd6fbca6a981b90c95edc2f215a8d0889487 100755 (executable)
@@ -17,8 +17,7 @@
 // See http://www.salome-platform.org/
 //
 // Plot2d_ViewWindow.cxx: implementation of the Plot2d_ViewWindow class.
-//
-//////////////////////////////////////////////////////////////////////
+
 #include "Plot2d_ViewWindow.h"
 #include "Plot2d_ViewFrame.h"
 
 #include <qpopupmenu.h>
 #include <qimage.h>
 
-//////////////////////////////////////////////////////////////////////
-// Construction/Destruction
-//////////////////////////////////////////////////////////////////////
-
+/*!
+  Constructor
+*/
 Plot2d_ViewWindow::Plot2d_ViewWindow(SUIT_Desktop* theDesktop, Plot2d_Viewer* theModel)
 : SUIT_ViewWindow(theDesktop)
 {
@@ -62,18 +60,27 @@ Plot2d_ViewWindow::Plot2d_ViewWindow(SUIT_Desktop* theDesktop, Plot2d_Viewer* th
 
 }
 
+/*!
+  Destructor
+*/
 Plot2d_ViewWindow::~Plot2d_ViewWindow()
 {
 }
 
-//****************************************************************
+/*!
+  Puts message to status bar
+  \param theMsg - message text
+*/
 void Plot2d_ViewWindow::putInfo(QString theMsg)
 {
   QStatusBar*  aStatusBar = myDesktop->statusBar();
   aStatusBar->message(theMsg/*, 3000*/);
 }
 
-//****************************************************************
+/*!
+  Fills popup menu with custom actions
+ \param popup - popup menu to be filled with
+*/
 void Plot2d_ViewWindow::contextMenuPopup( QPopupMenu* thePopup )
 {
   // scaling
@@ -101,7 +108,9 @@ void Plot2d_ViewWindow::contextMenuPopup( QPopupMenu* thePopup )
   myActionsMap[ CurvSettingsId ]->addTo(thePopup);
 }
 
-//****************************************************************
+/*!
+  Custom event filter
+*/
 bool Plot2d_ViewWindow::eventFilter(QObject* watched, QEvent* e)
 {
   if (watched == myViewFrame) {
@@ -126,7 +135,9 @@ bool Plot2d_ViewWindow::eventFilter(QObject* watched, QEvent* e)
   return SUIT_ViewWindow::eventFilter(watched, e);
 }
 
-//****************************************************************
+/*!
+  Create actions for Plot2d view window
+*/
 void Plot2d_ViewWindow::createActions()
 {
   if ( !myActionsMap.isEmpty() )
@@ -282,7 +293,9 @@ void Plot2d_ViewWindow::createActions()
 
 }
 
-//****************************************************************
+/*!
+  Create toolbar for Plot2d view window
+*/
 void Plot2d_ViewWindow::createToolBar()
 {
   myActionsMap[DumpId]->addTo(myToolBar);
@@ -314,7 +327,9 @@ void Plot2d_ViewWindow::createToolBar()
   onChangeLegendMode();
 }
 
-//****************************************************************
+/*!
+  SLOT: called if scale mode for horizontal axis is changed
+*/
 void Plot2d_ViewWindow::onChangeHorMode()
 {
   bool aLinear = myViewFrame->isModeHorLinear();
@@ -334,7 +349,9 @@ void Plot2d_ViewWindow::onChangeHorMode()
   myActionsMap[GlobalPanId]->setEnabled( myViewFrame->isModeVerLinear() && myViewFrame->isModeHorLinear() );
 }
 
-//****************************************************************
+/*!
+  SLOT: called if scale mode for vertical axis is changed
+*/
 void Plot2d_ViewWindow::onChangeVerMode()
 {
   bool aLinear = myViewFrame->isModeVerLinear();
@@ -354,7 +371,9 @@ void Plot2d_ViewWindow::onChangeVerMode()
   myActionsMap[GlobalPanId]->setEnabled( myViewFrame->isModeVerLinear() && myViewFrame->isModeHorLinear() );
 }
 
-//****************************************************************
+/*!
+  SLOT: called if curve type is changed
+*/
 void Plot2d_ViewWindow::onChangeCurveMode()
 {
   int aCurveType = myViewFrame->getCurveType();
@@ -365,43 +384,57 @@ void Plot2d_ViewWindow::onChangeCurveMode()
   myActionsMap[CurvSplinesId]->setOn(aCurveType == 2);
 }
 
-//****************************************************************
+/*!
+  SLOT: called if legend mode is changed
+*/
 void Plot2d_ViewWindow::onChangeLegendMode()
 {
   myActionsMap[ LegendId ]->setOn(myViewFrame->isLegendShow());
 }
 
-//****************************************************************
+/*!
+  SLOT: called if action "Fit all" is activated
+*/
 void Plot2d_ViewWindow::onFitAll()
 {
   myViewFrame->onViewFitAll();
 }
 
-//****************************************************************
+/*!
+  SLOT: called if action "Fit rect" is activated
+*/
 void Plot2d_ViewWindow::onFitRect()
 {
   myViewFrame->onViewFitArea();
 }
 
-//****************************************************************
+/*!
+  SLOT: called if action "Zoom" is activated
+*/
 void Plot2d_ViewWindow::onZoom()
 {
   myViewFrame->onViewZoom();
 }
 
-//****************************************************************
+/*!
+  SLOT: called if action "Panning" is activated
+*/
 void Plot2d_ViewWindow::onPanning()
 {
   myViewFrame->onViewPan();
 }
 
-//****************************************************************
+/*!
+  SLOT: called if action "Global panning" is activated
+*/
 void Plot2d_ViewWindow::onGlobalPanning()
 {
   myViewFrame->onViewGlobalPan();
 }
 
-//****************************************************************
+/*!
+  SLOT: called if action of scale mode for horizontal axis changing is activated
+*/
 void Plot2d_ViewWindow::onViewHorMode()
 {
   if (myViewFrame->isModeHorLinear())
@@ -410,7 +443,9 @@ void Plot2d_ViewWindow::onViewHorMode()
     myViewFrame->setHorScaleMode(0);
 }
 
-//****************************************************************
+/*!
+  SLOT: called if action of scale mode for vertical axis changing is activated
+*/
 void Plot2d_ViewWindow::onViewVerMode()
 {
   if (myViewFrame->isModeVerLinear())
@@ -419,14 +454,18 @@ void Plot2d_ViewWindow::onViewVerMode()
     myViewFrame->setVerScaleMode(0);
 }
 
-//****************************************************************
+/*!
+  SLOT: called if action "Show legend" is activated
+*/
 void Plot2d_ViewWindow::onLegend()
 {
   myViewFrame->showLegend(!myViewFrame->isLegendShow());
   onChangeLegendMode();
 }
 
-//****************************************************************
+/*!
+  SLOT: called if action "Change curve type" is activated
+*/
 void Plot2d_ViewWindow::onCurves()
 {
   QtxAction* aSender = (QtxAction*) sender();
@@ -438,20 +477,29 @@ void Plot2d_ViewWindow::onCurves()
     myViewFrame->setCurveType(2);
 }
  
-//****************************************************************
+/*!
+  SLOT: called if action "Dump view" is activated
+*/
 void Plot2d_ViewWindow::onDumpView()
 {
   qApp->postEvent( myViewFrame, new QPaintEvent( QRect( 0, 0, myViewFrame->width(), myViewFrame->height() ), TRUE ) );
   SUIT_ViewWindow::onDumpView();
 }
 
-//****************************************************************
+/*!
+  \return QImage, containing all scene rendering in window
+*/
 QImage Plot2d_ViewWindow::dumpView()
 {
   QPixmap px = QPixmap::grabWindow( myViewFrame->winId() );
   return px.convertToImage();
 }
 
+/*!
+  Saves scene rendering in window to file
+  \param fileName - name of file
+  \param format - string contains name of format (for example, "BMP"(default) or "JPEG", "JPG")
+*/
 bool Plot2d_ViewWindow::dumpViewToFormat( const QString& fileName, const QString& format )
 {
   bool res = myViewFrame ? myViewFrame->print( fileName, format ) : false;
@@ -461,20 +509,25 @@ bool Plot2d_ViewWindow::dumpViewToFormat( const QString& fileName, const QString
   return res;
 }
 
+/*!
+  \return filter of image files
+*/
 QString Plot2d_ViewWindow::filter() const
 {
   return SUIT_ViewWindow::filter() + ";;" + tr( "POSTSCRIPT_FILES" );
 }
 
-/*! The method returns the visual parameters of this view as a formated string
+/*!
+  \return the visual parameters of this view as a formated string
  */
 QString Plot2d_ViewWindow::getVisualParameters()
 {
   return myViewFrame->getVisualParameters();
 }
 
-/* The method restors visual parameters of this view from a formated string
- */
+/*!
+  The method restors visual parameters of this view from a formated string
+*/
 void Plot2d_ViewWindow::setVisualParameters( const QString& parameters )
 {
   myViewFrame->setVisualParameters( parameters );
index 9c7bfacdc1114bc1dc340b8987aa02da1911be0e..365f067a4cfa27c0611238ba01ed765b336988d7 100755 (executable)
@@ -1,3 +1,21 @@
+#  Copyright (C) 2005  CEA/DEN, EDF R&D, OPEN CASCADE, PRINCIPIA R&D
+#
+#  This library is free software; you can redistribute it and/or
+#  modify it under the terms of the GNU Lesser General Public
+#  License as published by the Free Software Foundation; either
+#  version 2.1 of the License.
+#
+#  This library is distributed in the hope that it will be useful,
+#  but WITHOUT ANY WARRANTY; without even the implied warranty of
+#  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+#  Lesser General Public License for more details.
+#
+#  You should have received a copy of the GNU Lesser General Public
+#  License along with this library; if not, write to the Free Software
+#  Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307 USA
+#
+#  See http://www.salome-platform.org/
+#
 # This is a Qt message file in .po format.  Each msgid starts with
 # a scope.  This scope should *NOT* be translated - eg. "Foo::Bar"
 # would be translated to "Pub", not "Foo::Pub".
index aeb44afb715eead87b16761f03471c590953edd3..85af54da7f1909e66a8ee1a476dc4c174407e629 100755 (executable)
@@ -1,3 +1,21 @@
+#  Copyright (C) 2005  CEA/DEN, EDF R&D, OPEN CASCADE, PRINCIPIA R&D
+#
+#  This library is free software; you can redistribute it and/or
+#  modify it under the terms of the GNU Lesser General Public
+#  License as published by the Free Software Foundation; either
+#  version 2.1 of the License.
+#
+#  This library is distributed in the hope that it will be useful,
+#  but WITHOUT ANY WARRANTY; without even the implied warranty of
+#  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+#  Lesser General Public License for more details.
+#
+#  You should have received a copy of the GNU Lesser General Public
+#  License along with this library; if not, write to the Free Software
+#  Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307 USA
+#
+#  See http://www.salome-platform.org/
+#
 # This is a Qt message file in .po format.  Each msgid starts with
 # a scope.  This scope should *NOT* be translated - eg. "Foo::Bar"
 # would be translated to "Pub", not "Foo::Pub".
@@ -147,9 +165,6 @@ msgstr "Cannot save file"
 msgid "ERROR"
 msgstr "Error"
 
-msgid "BUT_OK"
-msgstr "Ok"
-
 #-------------------------------------
 # Plot2d_SetupViewDlg
 # ------------------------------------
index 73133a3e61d6122bc7ed1238d9c27851b5ca0c80..599c5619437f802d96e62b528f5d5160f7325b28 100755 (executable)
@@ -1,3 +1,21 @@
+#  Copyright (C) 2005  CEA/DEN, EDF R&D, OPEN CASCADE, PRINCIPIA R&D
+#
+#  This library is free software; you can redistribute it and/or
+#  modify it under the terms of the GNU Lesser General Public
+#  License as published by the Free Software Foundation; either
+#  version 2.1 of the License.
+#
+#  This library is distributed in the hope that it will be useful,
+#  but WITHOUT ANY WARRANTY; without even the implied warranty of
+#  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+#  Lesser General Public License for more details.
+#
+#  You should have received a copy of the GNU Lesser General Public
+#  License along with this library; if not, write to the Free Software
+#  Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307 USA
+#
+#  See http://www.salome-platform.org/
+#
 # source path
 top_srcdir=@top_srcdir@
 top_builddir=../..
index cb35bb80bbe2a4307a1169beec61b6878bcc5cf2..e23180d19b807d728693bee48d0d77a9ee487103 100755 (executable)
 
 //using namespace std;
 
-//===========================================================
 /*!
- *  Function: SALOME_OCCPrs::DisplayIn \n
- *  Purpose:  Dispatches display operation to proper Display() \n
- *            method of SALOME_View
- */
-//===========================================================
+  Dispatches display operation to proper Display() method of SALOME_View
+*/
 void SALOME_OCCPrs::DisplayIn( SALOME_View* v ) const
 {
   if ( v ) v->Display( this );
 }
 
-//===========================================================
 /*!
- *  Function: SALOME_OCCPrs::EraseIn \n
- *  Purpose:  Dispatches display operation to proper Erase() \n
- *            method of SALOME_View
- */
-//===========================================================
+  Dispatches display operation to proper Erase() method of SALOME_View
+*/
 void SALOME_OCCPrs::EraseIn( SALOME_View* v, const bool forced ) const
 {
   if ( v ) v->Erase( this, forced );
 }
 
-//===========================================================
 /*!
- *  Function: SALOME_OCCPrs::LocalSelectionIn \n
- *  Purpose:  Dispatches operation to proper LocalSelectionIn() \n
- *            method of SALOME_View
- */
-//===========================================================
+  Dispatches operation to proper LocalSelectionIn() method of SALOME_View
+*/
 void SALOME_OCCPrs::LocalSelectionIn( SALOME_View* v, const int mode ) const
 {
   if ( v ) v->LocalSelection( this, mode );
 }
 
-//===========================================================
 /*!
- *  Function: SALOME_OCCPrs::Update \n
- *  Purpose:  Dispatches update operation to proper Update() \n
- *            method of SALOME_Displayer
- */
-//===========================================================
+   Dispatches update operation to proper Update() method of SALOME_Displayer
+*/
 void SALOME_OCCPrs::Update( SALOME_Displayer* d )
 {
   if ( d ) d->Update( this );
 }
 
-//===========================================================
 /*!
- *  Function: SALOME_VTKPrs::DisplayIn \n
- *  Purpose:  Dispatches display operation to proper Display() \n
- *            method of SALOME_View
- */
-//===========================================================
+  Dispatches display operation to proper Display() method of SALOME_View
+*/
 void SALOME_VTKPrs::DisplayIn( SALOME_View* v ) const
 {
   if ( v ) v->Display( this );
 }
 
-//===========================================================
 /*!
- *  Function: SALOME_VTKPrs::EraseIn \n
- *  Purpose:  Dispatches display operation to proper Erase() \n
- *            method of SALOME_View
- */
-//===========================================================
+  Dispatches display operation to proper Erase() method of SALOME_View
+*/
 void SALOME_VTKPrs::EraseIn( SALOME_View* v, const bool forced ) const
 {
   if ( v ) v->Erase( this, forced );
 }
 
-//===========================================================
 /*!
- *  Function: SALOME_VTKPrs::LocalSelectionIn \n
- *  Purpose:  Dispatches operation to proper LocalSelectionIn() \n
- *            method of SALOME_View
- */
-//===========================================================
+  Dispatches operation to proper LocalSelectionIn() method of SALOME_View
+*/
 void SALOME_VTKPrs::LocalSelectionIn( SALOME_View* v, const int mode ) const
 {
   if ( v ) v->LocalSelection( this, mode );
 }
 
-//===========================================================
 /*!
- *  Function: SALOME_VTKPrs::Update \n
- *  Purpose:  Dispatches update operation to proper Update() \n
- *            method of SALOME_Displayer
- */
-//===========================================================
+  Dispatches update operation to proper Update() method of SALOME_Displayer
+*/
 void SALOME_VTKPrs::Update( SALOME_Displayer* d )
 {
   if ( d ) d->Update( this );
 }
 
-//===========================================================
 /*!
- *  Function: SALOME_Prs2d::DisplayIn \n
- *  Purpose:  Dispatches display operation to proper Display() \n
- *            method of SALOME_View
- */
-//===========================================================
+  Dispatches display operation to proper Display() method of SALOME_View
+*/
 void SALOME_Prs2d::DisplayIn( SALOME_View* v ) const
 {
   if ( v ) v->Display( this );
 }
 
-//===========================================================
 /*!
- *  Function: SALOME_Prs2d::EraseIn \n
- *  Purpose:  Dispatches display operation to proper Erase() \n
- *            method of SALOME_View
- */
-//===========================================================
+  Dispatches display operation to proper Erase() method of SALOME_View
+*/
 void SALOME_Prs2d::EraseIn( SALOME_View* v, const bool forced ) const
 {
   if ( v ) v->Erase( this, forced );
 }
 
-//===========================================================
 /*!
- *  Function: SALOME_Prs2d::LocalSelectionIn \n
- *  Purpose:  Dispatches operation to proper LocalSelectionIn() \n
- *            method of SALOME_View
- */
-//===========================================================
+  Dispatches operation to proper LocalSelectionIn() method of SALOME_View
+*/
 void SALOME_Prs2d::LocalSelectionIn( SALOME_View* v, const int mode ) const
 {
   if ( v ) v->LocalSelection( this, mode );
 }
 
-//===========================================================
 /*!
- *  Function: SALOME_Prs2d::Update \n
- *  Purpose:  Dispatches update operation to proper Update() \n
- *            method of SALOME_Displayer
- */
-//===========================================================
+  Dispatches update operation to proper Update() method of SALOME_Displayer
+*/
 void SALOME_Prs2d::Update( SALOME_Displayer* d )
 {
   if ( d ) d->Update( this );
 }
 
-//===========================================================
 /*!
- *  Function: SALOME_View::Display \n
- *  Purpose:  Gives control to SALOME_Prs object, so that \n
- *            it could perform double dispatch
- */
-//===========================================================
+  Gives control to SALOME_Prs object, so that it could perform double dispatch
+*/
 void SALOME_View::Display( const SALOME_Prs* prs )
 {
   prs->DisplayIn( this );
 }
 
-//===========================================================
 /*!
- *  Function: SALOME_View::Erase \n
- *  Purpose:  Gives control to SALOME_Prs object, so that \n
- *            it could perform double dispatch
- */
-//===========================================================
+  Gives control to SALOME_Prs object, so that it could perform double dispatch
+*/
 void SALOME_View::Erase( const SALOME_Prs* prs, const bool forced )
 {
   prs->EraseIn( this, forced );
 }
 
-//===========================================================
 /*!
- *  Function: SALOME_View::LocalSelection \n
- *  Purpose:  Gives control to SALOME_Prs object, so that \n
- *            it could perform double dispatch
- */
-//===========================================================
+  Gives control to SALOME_Prs object, so that it could perform double dispatch
+*/
 void SALOME_View::LocalSelection( const SALOME_Prs* prs, const int mode )
 {
   prs->LocalSelectionIn( this, mode );
 }
 
-//===========================================================
 /*!
- *  Function: SALOME_View::Display \n
- *  Purpose:  Virtual method, should be reimplemented in successors, \n
- *            by default issues a warning and does nothing.
- */
-//===========================================================
+  Virtual method, should be reimplemented in successors, by default issues a warning and does nothing.
+*/
 void SALOME_View::Display( const SALOME_OCCPrs* )
 {
 //  MESSAGE( "SALOME_View::Display( const SALOME_OCCPrs& ) called! Probably, presentation is being displayed in uncompatible viewframe." );
 }
 
-//===========================================================
 /*!
- *  Function: SALOME_View::Display \n
- *  Purpose:  Virtual method, should be reimplemented in successors, \n
- *            by default issues a warning and does nothing.
- */
-//===========================================================
+  Virtual method, should be reimplemented in successors, by default issues a warning and does nothing.
+*/
 void SALOME_View::Display( const SALOME_VTKPrs* )
 {
 //  MESSAGE( "SALOME_View::Display( const SALOME_VTKPrs& ) called! Probably, presentation is being displayed in uncompatible viewframe." );
 }
 
-//===========================================================
 /*!
- *  Function: SALOME_View::Display \n
- *  Purpose:  Virtual method, should be reimplemented in successors, \n
- *            by default issues a warning and does nothing.
- */
-//===========================================================
+  Virtual method, should be reimplemented in successors, by default issues a warning and does nothing.
+*/
 void SALOME_View::Display( const SALOME_Prs2d* )
 {
 //  MESSAGE( "SALOME_View::Display( const SALOME_Prs2d& ) called! Probably, presentation is being displayed in uncompatible viewframe." );
 }
 
-//===========================================================
 /*!
- *  Function: SALOME_View::Erase \n
- *  Purpose:  Virtual method, should be reimplemented in successors, \n
- *            by default issues a warning and does nothing.
- */
-//===========================================================
+  Virtual method, should be reimplemented in successors, by default issues a warning and does nothing.
+*/
 void SALOME_View::Erase( const SALOME_OCCPrs*, const bool )
 {
 //  MESSAGE( "SALOME_View::Erase( const SALOME_OCCPrs& ) called! Probably, presentation is being erased in uncompatible viewframe." );
 }
 
-//===========================================================
 /*!
- *  Function: SALOME_View::Erase \n
- *  Purpose:  Virtual method, should be reimplemented in successors, \n
- *            by default issues a warning and does nothing.
- */
-//===========================================================
+  Virtual method, should be reimplemented in successors, by default issues a warning and does nothing.
+*/
 void SALOME_View::Erase( const SALOME_VTKPrs*, const bool )
 {
 //  MESSAGE( "SALOME_View::Erase( const SALOME_VTKPrs& ) called! Probably, presentation is being erased in uncompatible viewframe." );
 }
 
-//===========================================================
 /*!
- *  Function: SALOME_View::Erase \n
- *  Purpose:  Virtual method, should be reimplemented in successors, \n
- *            by default issues a warning and does nothing.
- */
-//===========================================================
+  Virtual method, should be reimplemented in successors, by default issues a warning and does nothing.
+*/
 void SALOME_View::Erase( const SALOME_Prs2d*, const bool )
 {
 //  MESSAGE( "SALOME_View::Erase( const SALOME_Prs2d& ) called! Probably, presentation is being erased in uncompatible viewframe." );
 }
 
-//===========================================================
 /*!
- *  Function: SALOME_View::EraseAll \n
- *  Purpose:  Virtual method, should be reimplemented in successors, \n
- *            by default issues a warning and does nothing.
- */
-//===========================================================
+  Virtual method, should be reimplemented in successors, by default issues a warning and does nothing.
+*/
 void SALOME_View::EraseAll( const bool )
 {
 //  MESSAGE( "SALOME_View::EraseAll() called!" );
 }
 
-//===========================================================
 /*!
- *  Function: SALOME_View::LocalSelection \n
- *  Purpose:  Virtual method, should be reimplemented in successors, \n
- *            by default issues a warning and does nothing.
- */
-//===========================================================
+  Virtual method, should be reimplemented in successors, by default issues a warning and does nothing.
+*/
 void SALOME_View::LocalSelection( const SALOME_OCCPrs*, const int )
 {
 //  MESSAGE( "SALOME_View::LocalSelection( const SALOME_OCCPrs* ) called! \
 //   Probably, selection is being activated in uncompatible viewframe." );
 }
 
-//===========================================================
 /*!
- *  Function: SALOME_View::LocalSelection \n
- *  Purpose:  Virtual method, should be reimplemented in successors, \n
- *            by default issues a warning and does nothing.
- */
-//===========================================================
+  Virtual method, should be reimplemented in successors, by default issues a warning and does nothing.
+*/
 void SALOME_View::LocalSelection( const SALOME_VTKPrs*, const int )
 {
 //  MESSAGE( "SALOME_View::LocalSelection( const SALOME_VTKPrs* ) called! \
 //   Probably, selection is being activated in uncompatible viewframe." );
 }
 
-//===========================================================
 /*!
- *  Function: SALOME_View::LocalSelection \n
- *  Purpose:  Virtual method, should be reimplemented in successors, \n
- *            by default issues a warning and does nothing.
- */
-//===========================================================
+  Virtual method, should be reimplemented in successors, by default issues a warning and does nothing.
+*/
 void SALOME_View::LocalSelection( const SALOME_Prs2d*, const int )
 {
 //  MESSAGE( "SALOME_View::LocalSelection( const SALOME_Prs2d* ) called! \
 //   Probably, selection is being activated in uncompatible viewframe." );
 }
 
-//===========================================================
 /*!
- *  Function: SALOME_View::GlobalSelection \n
- *  Purpose:  Virtual method, should be reimplemented in successors, \n
- *            by default issues a warning and does nothing.
- */
-//===========================================================
+  Virtual method, should be reimplemented in successors, by default issues a warning and does nothing.
+*/
 void SALOME_View::GlobalSelection( const bool ) const
 {
 //  MESSAGE( "SALOME_View::GlobalSelection() called! \
 //   Probably, selection is being activated in uncompatible viewframe." );
 }
 
-//===========================================================
 /*!
- *  Function: SALOME_Displayer::UpdatePrs \n
- *  Purpose:  Gives control to SALOME_Prs object, so that \n
- *            it could perform double dispatch
- */
-//===========================================================
+  Gives control to SALOME_Prs object, so that it could perform double dispatch
+*/
 void SALOME_Displayer::UpdatePrs( SALOME_Prs* prs )
 {
   prs->Update( this );
 }
 
-//===========================================================
 /*!
- *  Function: SALOME_Displayer::Update \n
- *  Purpose:  Virtual method, should be reimplemented in successors, \n
- *            by default issues a warning and does nothing.
- */
-//===========================================================
+  Virtual method, should be reimplemented in successors, by default issues a warning and does nothing.
+*/
 void SALOME_Displayer::Update( SALOME_OCCPrs* )
 {
 //  MESSAGE( "SALOME_Displayer::Update( SALOME_OCCPrs* ) called! Probably, presentation is being updated in uncompatible viewframe." );
 }
 
-//===========================================================
 /*!
- *  Function: SALOME_Displayer::Update \n
- *  Purpose:  Virtual method, should be reimplemented in successors, \n
- *            by default issues a warning and does nothing.
- */
-//===========================================================
+  Virtual method, should be reimplemented in successors, by default issues a warning and does nothing.
+*/
 void SALOME_Displayer::Update( SALOME_VTKPrs* )
 {
 //  MESSAGE( "SALOME_Displayer::Update( SALOME_VTKPrs* ) called! Probably, presentation is being updated in uncompatible viewframe." );
 }
 
-//===========================================================
 /*!
- *  Function: SALOME_Displayer::Update \n
- *  Purpose:  Virtual method, should be reimplemented in successors, \n
- *            by default issues a warning and does nothing.
- */
-//===========================================================
+  Virtual method, should be reimplemented in successors, by default issues a warning and does nothing.
+*/
 void SALOME_Displayer::Update( SALOME_Prs2d* )
 {
 //  MESSAGE( "SALOME_Displayer::Update( SALOME_Prs2d* ) called! Probably, presentation is being updated in uncompatible viewframe." );
index eec2a605581471df4da4292741f1bce65c8a731a..6d21c79f9180cadb4a504c6b2cc14ac8570c3072 100755 (executable)
@@ -33,13 +33,11 @@ class SALOME_View;
 class SALOME_Displayer;
 class Handle_SALOME_InteractiveObject;
 
-//===========================================================
 /*!
- *  Class:       SALOME_Prs \n
- *  Description: Base class for SALOME graphic object wrappers - presentations.\n
- *  Presentations are temporary objects, so they can be created on the stack.
- */
-//===========================================================
+ \class SALOME_Prs
+ Base class for SALOME graphic object wrappers - presentations.
+ Presentations are temporary objects, so they can be created on the stack.
+*/
 
 class PRS_EXPORT SALOME_Prs
 {
@@ -63,13 +61,11 @@ public:
   virtual void LocalSelectionIn( SALOME_View*, const int ) const = 0;
 };
 
-//===========================================================
 /*!
- *  Class: SALOME_OCCPrs \n
- *  Description: Base class for OpenCASCADE graphic object (AIS_InteractiveObject) wrappers.\n
- *  This intermediate class is necessary to avoid dependencies from OCC libs.
- */
-//===========================================================
+ \class SALOME_OCCPrs
+ Base class for OpenCASCADE graphic object (AIS_InteractiveObject) wrappers.
+ This intermediate class is necessary to avoid dependencies from OCC libs.
+*/
 
 class PRS_EXPORT SALOME_OCCPrs : public SALOME_Prs
 {
@@ -90,13 +86,11 @@ public:
   virtual void LocalSelectionIn( SALOME_View*, const int ) const;
 };
 
-//===========================================================
 /*!
- *  Class:       SALOME_VTKPrs \n
- *  Description: Base class for VTK graphic object (vtkActor) wrappers \n
- *               This intermediate class is necessary to avoid dependencies from VTK libs.
- */
-//===========================================================
+ \class SALOME_VTKPrs
+ Base class for VTK graphic object (vtkActor) wrappers.
+ This intermediate class is necessary to avoid dependencies from VTK libs.
+*/
 class PRS_EXPORT SALOME_VTKPrs : public SALOME_Prs
 {
 public:
@@ -116,13 +110,10 @@ public:
   virtual void LocalSelectionIn( SALOME_View*, const int ) const;
 };
 
-//===========================================================
 /*!
- *  Class:       SALOME_Prs2d \n
- *  Description: Base class for Plot2d graphic object (Plot2d_Curve) wrappers.
- */
-//===========================================================
-
+ \class SALOME_Prs2d
+ Base class for Plot2d graphic object (Plot2d_Curve) wrappers.
+*/
 class PRS_EXPORT SALOME_Prs2d : public SALOME_Prs
 {
 public:
@@ -142,18 +133,13 @@ public:
   virtual void LocalSelectionIn( SALOME_View*, const int ) const;
 };
 
-/////////////////////////////////////////////////////////////////////////
-// Base classes for object wrappers for any other visualization libraries
-// should be added here!
-/////////////////////////////////////////////////////////////////////////
-
-//===========================================================
 /*!
- *  Class:       SALOME_View \n
- *  Description: Base class for SALOME views (or view frames)
- */
-//===========================================================
-
+  Base classes for object wrappers for any other visualization libraries should be added here!
+*/
+/*!
+ \class SALOME_View
+ Base class for SALOME views (or view frames)
+*/
 class PRS_EXPORT SALOME_View
 {
 public:
@@ -211,24 +197,18 @@ public:
   virtual void Repaint() {} //!< Null body here.
 };
 
-//===========================================================
-/*
- *  Classes:     SALOME_Displayer
- *  Description: These classes are used to specify type of view
- *               VTK, OCC or Plot2d
- */
-//===========================================================
+/*!
+ \class SALOME_Displayer
+ These classes are used to specify type of view VTK, OCC or Plot2d
+*/
 class PRS_EXPORT SALOME_OCCViewType    {};
 class PRS_EXPORT SALOME_VTKViewType    {};
 class PRS_EXPORT SALOME_Plot2dViewType {};
 
-//===========================================================
 /*!
- *  Class:       SALOME_Displayer \n
- *  Description: Base class for SALOME displayers
- */
-//===========================================================
-
+ \class SALOME_Displayer
+ Base class for SALOME displayers
+*/
 class PRS_EXPORT SALOME_Displayer
 {
 public:
index 3d5067dba7ee01a31cd1993b4d10715c9a4317d0..d772c34a2a502ec3f8666c14d8f0ff74f4a0e048 100755 (executable)
@@ -22,10 +22,6 @@ using namespace std;
 
 PyInterp_Dispatcher* PyInterp_Dispatcher::myInstance = 0;
 
-//////////////////////////////////////////////////////////
-// class : PyInterp_Request
-//////////////////////////////////////////////////////////
-
 void PyInterp_Request::process()
 {
   safeExecute();
@@ -89,20 +85,12 @@ void PyInterp_LockRequest::safeExecute()
   }
 }
 
-//////////////////////////////////////////////////////////
-// class : PyInterp_Event
-//////////////////////////////////////////////////////////
-
 PyInterp_Event::~PyInterp_Event()
 {
   PyInterp_Request::Destroy( myRequest );
   myRequest = 0;
 }
 
-//////////////////////////////////////////////////////////
-// class : PyInterp_Dispatcher
-//////////////////////////////////////////////////////////
-
 PyInterp_Dispatcher* PyInterp_Dispatcher::Get()
 {
   if ( !myInstance )
index a7a4ae72f1d05ed65657f461a83cde6f4d391e3c..412c97194b17f3c893ea68ed7d2f4c6607c79c50 100755 (executable)
@@ -25,9 +25,6 @@ class PyInterp_base;
 class PyInterp_Watcher;
 class PyInterp_Dispatcher;
 
-//////////////////////////////////////////////////////////
-// class : PyInterp_Request
-//////////////////////////////////////////////////////////
 class PYINTERP_EXPORT PyInterp_Request
 {
   friend class PyInterp_Dispatcher;
@@ -88,9 +85,6 @@ private:
   PyInterp_base*  myInterp;
 };
 
-//////////////////////////////////////////////////////////
-// class : PyInterp_Event
-//////////////////////////////////////////////////////////
 class PYINTERP_EXPORT PyInterp_Event : public QCustomEvent
 {
   PyInterp_Event();
@@ -111,9 +105,6 @@ private:
   PyInterp_Request* myRequest;
 };
 
-//////////////////////////////////////////////////////////
-// class : PyInterp_Dispatcher
-//////////////////////////////////////////////////////////
 class PYINTERP_EXPORT PyInterp_Dispatcher : protected QThread
 {
   PyInterp_Dispatcher(); // private constructor
index 0e0a5622c3677b48b93d52572ad1c332f59bad29..1afac6ac28dfc35c0f55d8fb5364cc0f2c000f2a 100644 (file)
@@ -224,7 +224,7 @@ int PyInterp_base::run(const char *command)
       _atFirst = false;
       return ret;
     }
-    ret = simpleRun("salome.salome_init()");
+    ret = simpleRun("salome.salome_init(0,1)");
     if (ret) { 
       _atFirst = false;
       return ret;
index b1b1713ea202343a58a436724dbd8f237cd0a7f6..a770ad86ab4f1684548ab088ef9bbe18d78b889d 100755 (executable)
@@ -1,3 +1,21 @@
+#  Copyright (C) 2005  CEA/DEN, EDF R&D, OPEN CASCADE, PRINCIPIA R&D
+#
+#  This library is free software; you can redistribute it and/or
+#  modify it under the terms of the GNU Lesser General Public
+#  License as published by the Free Software Foundation; either
+#  version 2.1 of the License.
+#
+#  This library is distributed in the hope that it will be useful,
+#  but WITHOUT ANY WARRANTY; without even the implied warranty of
+#  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+#  Lesser General Public License for more details.
+#
+#  You should have received a copy of the GNU Lesser General Public
+#  License along with this library; if not, write to the Free Software
+#  Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307 USA
+#
+#  See http://www.salome-platform.org/
+#
 #  File   : Makefile.in
 #  Author : Vladimir Klyachin (OCN)
 #  Module : PythonConsole
index c7f8f1c7c6bbb00477fea5c938678e3960b14e93..7dd044d6077e65afb459ea4e621c7bb6ddc7e0c3 100755 (executable)
@@ -26,7 +26,9 @@
 
 using namespace std;
 
-//****************************************************************
+/*!
+  Constructor
+*/
 PythonConsole::PythonConsole(QWidget* parent, PyInterp_base* interp)
 : QWidget(parent), myEditor( 0 )
 {
@@ -44,26 +46,36 @@ PythonConsole::PythonConsole(QWidget* parent, PyInterp_base* interp)
   lay->addWidget( myEditor );
 }
 
-//****************************************************************
+/*!
+  Destructor
+*/
 PythonConsole::~PythonConsole()
 {
 }
 
-//****************************************************************
+/*!
+  Executes command
+  \param command - string with command and arguments
+*/
 void PythonConsole::exec( const QString& command )
 {
   if ( myEditor )
     myEditor->exec( command );
 }
 
-//****************************************************************
+/*!
+  Changes font of python console
+  \param f - new font
+*/
 void PythonConsole::setFont( const QFont& f )
 {
   if( myEditor )
     myEditor->setFont( f );
 }
 
-//****************************************************************
+/*!
+  \return font of python console
+*/
 QFont PythonConsole::font() const
 {
   QFont res;
index 5bb4aed68f933ca15844601a6bc04e82ec320065..afb6c053764f8bd59f5d1ec83dd3649916a4f1b4 100755 (executable)
@@ -173,7 +173,7 @@ void PythonConsole_PyEditor::handleReturn()
   PyInterp_Dispatcher::Get()->Exec( new ExecCommand( myInterp, _buf.latin1(), this ) );
 }
 
-/*
+/*!
    Processes drop event: paste dragged text
 */
 void PythonConsole_PyEditor::contentsDropEvent( QDropEvent* event )
@@ -197,7 +197,7 @@ void PythonConsole_PyEditor::contentsDropEvent( QDropEvent* event )
   }
 }
 
-/*
+/*!
    Processes middle button release event - paste clipboard's contents
 */
 void PythonConsole_PyEditor::contentsMouseReleaseEvent( QMouseEvent* event )
@@ -703,6 +703,9 @@ void PythonConsole_PyEditor::onPyInterpChanged( PyInterp_base* interp )
   }
 }
 
+/*!
+  Creates popup menu
+*/
 QPopupMenu* PythonConsole_PyEditor::createPopupMenu( const QPoint& pos )
 {
   QPopupMenu* popup = QTextEdit::createPopupMenu( pos );
index 5b7d3e579b602e39940c7cd77eb2d4c0efbd6cff..81ff117c49c70e5a7260e1621da07d233d346bcd 100755 (executable)
@@ -48,6 +48,9 @@ PythonConsole_PyInterp::PythonConsole_PyInterp(): PyInterp_base()
 {
 }
 
+/*!
+  Destructor
+*/
 PythonConsole_PyInterp::~PythonConsole_PyInterp()
 {
 }
@@ -96,14 +99,13 @@ bool PythonConsole_PyInterp::initState()
   return true;
 }
 
-
+/*!
+   The GIL is assumed to be held
+   It is the caller responsability caller to acquire the GIL
+   It will still be held on initContext output
+*/
 bool PythonConsole_PyInterp::initContext()
 {
-  /*
-   * The GIL is assumed to be held
-   * It is the caller responsability caller to acquire the GIL
-   * It will still be held on initContext output
-   */
   PyObject *m = PyImport_AddModule("__main__");  // interpreter main module (module context)
   if(!m){
 //    if(MYDEBUG) MESSAGE("problem...");
index 97b4ae3f7d5ec1e0d596f73719855b7682cec59c..5f0de87b3a8138c06a74c75a5877c3540c80399c 100755 (executable)
@@ -1,3 +1,21 @@
+#  Copyright (C) 2005  CEA/DEN, EDF R&D, OPEN CASCADE, PRINCIPIA R&D
+#
+#  This library is free software; you can redistribute it and/or
+#  modify it under the terms of the GNU Lesser General Public
+#  License as published by the Free Software Foundation; either
+#  version 2.1 of the License.
+#
+#  This library is distributed in the hope that it will be useful,
+#  but WITHOUT ANY WARRANTY; without even the implied warranty of
+#  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+#  Lesser General Public License for more details.
+#
+#  You should have received a copy of the GNU Lesser General Public
+#  License along with this library; if not, write to the Free Software
+#  Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307 USA
+#
+#  See http://www.salome-platform.org/
+#
 #  File   : Makefile.in
 #  Author : Alexander SOLOVYOV (OCN)
 #  Module : QDS
index e6bdd56c877bc219e0e6c9853824afc14953e5a0..df0e762c80f0d4efe31c3ba3de2cb13d987284f5 100644 (file)
@@ -1,3 +1,21 @@
+// Copyright (C) 2005  CEA/DEN, EDF R&D, OPEN CASCADE, PRINCIPIA R&D
+//
+// This library is free software; you can redistribute it and/or
+// modify it under the terms of the GNU Lesser General Public
+// License as published by the Free Software Foundation; either
+// version 2.1 of the License.
+//
+// This library is distributed in the hope that it will be useful
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+// Lesser General Public License for more details.
+//
+// You should have received a copy of the GNU Lesser General Public
+// License along with this library; if not, write to the Free Software
+// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307 USA
+//
+// See http://www.salome-platform.org/
+//
 #include "QDS.h"
 
 #include "QDS_Datum.h"
index c9ff5edd01bf819cd53e12305d5a24ef9a998a44..70c3feed8379f4d39ba23deec9c0685d9df5a4d0 100644 (file)
@@ -1,3 +1,21 @@
+// Copyright (C) 2005  CEA/DEN, EDF R&D, OPEN CASCADE, PRINCIPIA R&D
+//
+// This library is free software; you can redistribute it and/or
+// modify it under the terms of the GNU Lesser General Public
+// License as published by the Free Software Foundation; either
+// version 2.1 of the License.
+//
+// This library is distributed in the hope that it will be useful
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+// Lesser General Public License for more details.
+//
+// You should have received a copy of the GNU Lesser General Public
+// License along with this library; if not, write to the Free Software
+// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307 USA
+//
+// See http://www.salome-platform.org/
+//
 #ifndef QDS_H
 #define QDS_H
 
index ded537716607d10732aa166dbad42ff169a0dac0..471a9522f32b4903590af8645b6a78d459e3169d 100644 (file)
@@ -1,3 +1,21 @@
+// Copyright (C) 2005  CEA/DEN, EDF R&D, OPEN CASCADE, PRINCIPIA R&D
+//
+// This library is free software; you can redistribute it and/or
+// modify it under the terms of the GNU Lesser General Public
+// License as published by the Free Software Foundation; either
+// version 2.1 of the License.
+//
+// This library is distributed in the hope that it will be useful
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+// Lesser General Public License for more details.
+//
+// You should have received a copy of the GNU Lesser General Public
+// License along with this library; if not, write to the Free Software
+// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307 USA
+//
+// See http://www.salome-platform.org/
+//
 #include "QDS_CheckBox.h"
 
 #include <qcheckbox.h>
index 8b1344b930ddd8c553bcc6696d8a0ec830cf5244..8ced09f308986e0f9d3dc8df8a5cb9ad9db761ea 100644 (file)
@@ -1,3 +1,21 @@
+// Copyright (C) 2005  CEA/DEN, EDF R&D, OPEN CASCADE, PRINCIPIA R&D
+//
+// This library is free software; you can redistribute it and/or
+// modify it under the terms of the GNU Lesser General Public
+// License as published by the Free Software Foundation; either
+// version 2.1 of the License.
+//
+// This library is distributed in the hope that it will be useful
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+// Lesser General Public License for more details.
+//
+// You should have received a copy of the GNU Lesser General Public
+// License along with this library; if not, write to the Free Software
+// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307 USA
+//
+// See http://www.salome-platform.org/
+//
 #ifndef QDS_CHECKBOX_H
 #define QDS_CHECKBOX_H
 
index fac69b6b408ca9a8a7614a75bd81a23289c6001f..a3e7a3af34d2e1930300dffa8eeaa48e0d0d6b31 100644 (file)
@@ -1,3 +1,21 @@
+// Copyright (C) 2005  CEA/DEN, EDF R&D, OPEN CASCADE, PRINCIPIA R&D
+//
+// This library is free software; you can redistribute it and/or
+// modify it under the terms of the GNU Lesser General Public
+// License as published by the Free Software Foundation; either
+// version 2.1 of the License.
+//
+// This library is distributed in the hope that it will be useful
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+// Lesser General Public License for more details.
+//
+// You should have received a copy of the GNU Lesser General Public
+// License along with this library; if not, write to the Free Software
+// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307 USA
+//
+// See http://www.salome-platform.org/
+//
 #include "QDS_ComboBox.h"
 
 #include <DDS_Dictionary.h>
index 9650f4c5819ac131003a74a0fc445fe7466339dd..4355332e09b745a7664eb2ff47adbdf63410d6f0 100644 (file)
@@ -1,3 +1,21 @@
+// Copyright (C) 2005  CEA/DEN, EDF R&D, OPEN CASCADE, PRINCIPIA R&D
+//
+// This library is free software; you can redistribute it and/or
+// modify it under the terms of the GNU Lesser General Public
+// License as published by the Free Software Foundation; either
+// version 2.1 of the License.
+//
+// This library is distributed in the hope that it will be useful
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+// Lesser General Public License for more details.
+//
+// You should have received a copy of the GNU Lesser General Public
+// License along with this library; if not, write to the Free Software
+// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307 USA
+//
+// See http://www.salome-platform.org/
+//
 #ifndef QDS_COMBOBOX_H
 #define QDS_COMBOBOX_H
 
index f7a76b6491c4354b46c5ec815054f461163695b8..ae2e26026c1e02aa7a5a8cf9929b85c215993b5a 100644 (file)
@@ -1,3 +1,21 @@
+// Copyright (C) 2005  CEA/DEN, EDF R&D, OPEN CASCADE, PRINCIPIA R&D
+//
+// This library is free software; you can redistribute it and/or
+// modify it under the terms of the GNU Lesser General Public
+// License as published by the Free Software Foundation; either
+// version 2.1 of the License.
+//
+// This library is distributed in the hope that it will be useful
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+// Lesser General Public License for more details.
+//
+// You should have received a copy of the GNU Lesser General Public
+// License along with this library; if not, write to the Free Software
+// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307 USA
+//
+// See http://www.salome-platform.org/
+//
 #include "QDS_Datum.h"
 
 #include "QDS_Validator.h"
index 3a1a92985ac6df4b57a5e9eb7ac57d350417e1d7..9e3052ee3f6026b450358f7a77af50a5f20dcca5 100644 (file)
@@ -1,3 +1,21 @@
+// Copyright (C) 2005  CEA/DEN, EDF R&D, OPEN CASCADE, PRINCIPIA R&D
+//
+// This library is free software; you can redistribute it and/or
+// modify it under the terms of the GNU Lesser General Public
+// License as published by the Free Software Foundation; either
+// version 2.1 of the License.
+//
+// This library is distributed in the hope that it will be useful
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+// Lesser General Public License for more details.
+//
+// You should have received a copy of the GNU Lesser General Public
+// License along with this library; if not, write to the Free Software
+// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307 USA
+//
+// See http://www.salome-platform.org/
+//
 #ifndef QDS_DATUM_H
 #define QDS_DATUM_H
 
index 15cc3f0570e5aa74494c18a4373e670bc53f03a2..9ad83744a83ebc1a2e8d6cb18aa5b5c84620d144 100644 (file)
@@ -1,3 +1,21 @@
+// Copyright (C) 2005  CEA/DEN, EDF R&D, OPEN CASCADE, PRINCIPIA R&D
+//
+// This library is free software; you can redistribute it and/or
+// modify it under the terms of the GNU Lesser General Public
+// License as published by the Free Software Foundation; either
+// version 2.1 of the License.
+//
+// This library is distributed in the hope that it will be useful
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+// Lesser General Public License for more details.
+//
+// You should have received a copy of the GNU Lesser General Public
+// License along with this library; if not, write to the Free Software
+// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307 USA
+//
+// See http://www.salome-platform.org/
+//
 #include "QDS_LineEdit.h"
 
 #include <qlineedit.h>
index ec9ad48a2bb1831e8f107a4b08561984dcecba4c..e3466c5efe023665caeb4a7adbff3f2c13cead27 100644 (file)
@@ -1,3 +1,21 @@
+// Copyright (C) 2005  CEA/DEN, EDF R&D, OPEN CASCADE, PRINCIPIA R&D
+//
+// This library is free software; you can redistribute it and/or
+// modify it under the terms of the GNU Lesser General Public
+// License as published by the Free Software Foundation; either
+// version 2.1 of the License.
+//
+// This library is distributed in the hope that it will be useful
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+// Lesser General Public License for more details.
+//
+// You should have received a copy of the GNU Lesser General Public
+// License along with this library; if not, write to the Free Software
+// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307 USA
+//
+// See http://www.salome-platform.org/
+//
 #ifndef QDS_LINEEDIT_H
 #define QDS_LINEEDIT_H
 
index 1b3350fb3df482a1536540742e31dd827a710c25..07271a4ada11c4288016a5f96e2a04d6e68df3e0 100644 (file)
@@ -1,3 +1,21 @@
+// Copyright (C) 2005  CEA/DEN, EDF R&D, OPEN CASCADE, PRINCIPIA R&D
+//
+// This library is free software; you can redistribute it and/or
+// modify it under the terms of the GNU Lesser General Public
+// License as published by the Free Software Foundation; either
+// version 2.1 of the License.
+//
+// This library is distributed in the hope that it will be useful
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+// Lesser General Public License for more details.
+//
+// You should have received a copy of the GNU Lesser General Public
+// License along with this library; if not, write to the Free Software
+// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307 USA
+//
+// See http://www.salome-platform.org/
+//
 #include "QDS_RadioBox.h"
 
 #include <DDS_Dictionary.h>
index 769a537ed4bd69ec4d7e8edf3eb86540803c2c3c..6d70c7f4ee80ad72ca4b457543319cba6f2cbaa2 100644 (file)
@@ -1,3 +1,21 @@
+// Copyright (C) 2005  CEA/DEN, EDF R&D, OPEN CASCADE, PRINCIPIA R&D
+//
+// This library is free software; you can redistribute it and/or
+// modify it under the terms of the GNU Lesser General Public
+// License as published by the Free Software Foundation; either
+// version 2.1 of the License.
+//
+// This library is distributed in the hope that it will be useful
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+// Lesser General Public License for more details.
+//
+// You should have received a copy of the GNU Lesser General Public
+// License along with this library; if not, write to the Free Software
+// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307 USA
+//
+// See http://www.salome-platform.org/
+//
 #ifndef QDS_RADIOBOX_H
 #define QDS_RADIOBOX_H
 
index b77aa8ba0759b8f0e85ad3dcd1d622b05a782ae8..0fb13ccc1beddaf314310c1a8cd75cc8a3ebaf26 100644 (file)
@@ -1,3 +1,21 @@
+// Copyright (C) 2005  CEA/DEN, EDF R&D, OPEN CASCADE, PRINCIPIA R&D
+//
+// This library is free software; you can redistribute it and/or
+// modify it under the terms of the GNU Lesser General Public
+// License as published by the Free Software Foundation; either
+// version 2.1 of the License.
+//
+// This library is distributed in the hope that it will be useful
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+// Lesser General Public License for more details.
+//
+// You should have received a copy of the GNU Lesser General Public
+// License along with this library; if not, write to the Free Software
+// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307 USA
+//
+// See http://www.salome-platform.org/
+//
 #include "QDS_SpinBox.h"
 
 #include <QtxIntSpinBox.h>
index f018ddfb80ae797a416123681e3e0e6d68a11482..d1c1d0e234998376d316974e96537b0722eb813d 100644 (file)
@@ -1,3 +1,21 @@
+// Copyright (C) 2005  CEA/DEN, EDF R&D, OPEN CASCADE, PRINCIPIA R&D
+//
+// This library is free software; you can redistribute it and/or
+// modify it under the terms of the GNU Lesser General Public
+// License as published by the Free Software Foundation; either
+// version 2.1 of the License.
+//
+// This library is distributed in the hope that it will be useful
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+// Lesser General Public License for more details.
+//
+// You should have received a copy of the GNU Lesser General Public
+// License along with this library; if not, write to the Free Software
+// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307 USA
+//
+// See http://www.salome-platform.org/
+//
 #ifndef QDS_SPINBOX_H
 #define QDS_SPINBOX_H
 
index 8a4160e70108a7fd0192315498af426f2556fd8f..b4091a176d0fbb10a7d2c2c5d0cb11fb79cbf186 100644 (file)
@@ -1,3 +1,21 @@
+// Copyright (C) 2005  CEA/DEN, EDF R&D, OPEN CASCADE, PRINCIPIA R&D
+//
+// This library is free software; you can redistribute it and/or
+// modify it under the terms of the GNU Lesser General Public
+// License as published by the Free Software Foundation; either
+// version 2.1 of the License.
+//
+// This library is distributed in the hope that it will be useful
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+// Lesser General Public License for more details.
+//
+// You should have received a copy of the GNU Lesser General Public
+// License along with this library; if not, write to the Free Software
+// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307 USA
+//
+// See http://www.salome-platform.org/
+//
 #include "QDS_SpinBoxDbl.h"
 
 #include <DDS_Dictionary.h>
index a0c5e30969e6fae0ad7fabc2774608a283964a01..cabd8584eed6e158bc7af7dbba56530c611933b5 100644 (file)
@@ -1,3 +1,21 @@
+// Copyright (C) 2005  CEA/DEN, EDF R&D, OPEN CASCADE, PRINCIPIA R&D
+//
+// This library is free software; you can redistribute it and/or
+// modify it under the terms of the GNU Lesser General Public
+// License as published by the Free Software Foundation; either
+// version 2.1 of the License.
+//
+// This library is distributed in the hope that it will be useful
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+// Lesser General Public License for more details.
+//
+// You should have received a copy of the GNU Lesser General Public
+// License along with this library; if not, write to the Free Software
+// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307 USA
+//
+// See http://www.salome-platform.org/
+//
 #ifndef QDS_PINBOXDBL_H
 #define QDS_PINBOXDBL_H
 
index 65fbcb28ec926a0a7a56303c3c717913bcee9819..b3c50c56ce16ec09610180ef399a61c56ab6cbb5 100644 (file)
@@ -1,3 +1,21 @@
+// Copyright (C) 2005  CEA/DEN, EDF R&D, OPEN CASCADE, PRINCIPIA R&D
+//
+// This library is free software; you can redistribute it and/or
+// modify it under the terms of the GNU Lesser General Public
+// License as published by the Free Software Foundation; either
+// version 2.1 of the License.
+//
+// This library is distributed in the hope that it will be useful
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+// Lesser General Public License for more details.
+//
+// You should have received a copy of the GNU Lesser General Public
+// License along with this library; if not, write to the Free Software
+// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307 USA
+//
+// See http://www.salome-platform.org/
+//
 #include "QDS_TextEdit.h"
 
 #include <qtextedit.h>
index 917ff13e49f5586921f711fe65598ba9af95605a..0f37fb23845039dc5182e632d777f43b89ec0407 100644 (file)
@@ -1,3 +1,21 @@
+// Copyright (C) 2005  CEA/DEN, EDF R&D, OPEN CASCADE, PRINCIPIA R&D
+//
+// This library is free software; you can redistribute it and/or
+// modify it under the terms of the GNU Lesser General Public
+// License as published by the Free Software Foundation; either
+// version 2.1 of the License.
+//
+// This library is distributed in the hope that it will be useful
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+// Lesser General Public License for more details.
+//
+// You should have received a copy of the GNU Lesser General Public
+// License along with this library; if not, write to the Free Software
+// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307 USA
+//
+// See http://www.salome-platform.org/
+//
 #ifndef QDS_TEXTEEDIT_H
 #define QDS_TEXTEEDIT_H
 
index d83463eae32d22f51ad2b28965348dbeed9dd2da..120af3afc36004a527a66c6245a12d2ded0a1884 100644 (file)
@@ -1,3 +1,21 @@
+// Copyright (C) 2005  CEA/DEN, EDF R&D, OPEN CASCADE, PRINCIPIA R&D
+//
+// This library is free software; you can redistribute it and/or
+// modify it under the terms of the GNU Lesser General Public
+// License as published by the Free Software Foundation; either
+// version 2.1 of the License.
+//
+// This library is distributed in the hope that it will be useful
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+// Lesser General Public License for more details.
+//
+// You should have received a copy of the GNU Lesser General Public
+// License along with this library; if not, write to the Free Software
+// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307 USA
+//
+// See http://www.salome-platform.org/
+//
 #include "QDS_Validator.h"
 
 /*!
index bc966c03ca7050c51499244e1a3fb030f29e99d1..9b4b0b7b9ec4b734276ad45f62247b3d444fca03 100644 (file)
@@ -1,3 +1,21 @@
+// Copyright (C) 2005  CEA/DEN, EDF R&D, OPEN CASCADE, PRINCIPIA R&D
+//
+// This library is free software; you can redistribute it and/or
+// modify it under the terms of the GNU Lesser General Public
+// License as published by the Free Software Foundation; either
+// version 2.1 of the License.
+//
+// This library is distributed in the hope that it will be useful
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+// Lesser General Public License for more details.
+//
+// You should have received a copy of the GNU Lesser General Public
+// License along with this library; if not, write to the Free Software
+// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307 USA
+//
+// See http://www.salome-platform.org/
+//
 #ifndef QDS_VALIDATOR_H
 #define QDS_VALIDATOR_H
 
index e42b0191ba9862e19168bbf51e265e308adbcefc..e73b3e81fc20d3b3f2dd82ae5282ef56a9853d2c 100644 (file)
@@ -1,3 +1,21 @@
+#  Copyright (C) 2005  CEA/DEN, EDF R&D, OPEN CASCADE, PRINCIPIA R&D
+#
+#  This library is free software; you can redistribute it and/or
+#  modify it under the terms of the GNU Lesser General Public
+#  License as published by the Free Software Foundation; either
+#  version 2.1 of the License.
+#
+#  This library is distributed in the hope that it will be useful,
+#  but WITHOUT ANY WARRANTY; without even the implied warranty of
+#  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+#  Lesser General Public License for more details.
+#
+#  You should have received a copy of the GNU Lesser General Public
+#  License along with this library; if not, write to the Free Software
+#  Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307 USA
+#
+#  See http://www.salome-platform.org/
+#
 # This is a Qt message file in .po format.  Each msgid starts with
 # a scope.  This scope should *NOT* be translated - eg. "Foo::Bar"
 # would be translated to "Pub", not "Foo::Pub".
index 02f58984b5ba1dfb5c938a33d34c0c8fd9033bf1..e8b9151393b6a72371ec620289c0c1cc83ca640b 100755 (executable)
@@ -1,3 +1,21 @@
+#  Copyright (C) 2005  CEA/DEN, EDF R&D, OPEN CASCADE, PRINCIPIA R&D
+#
+#  This library is free software; you can redistribute it and/or
+#  modify it under the terms of the GNU Lesser General Public
+#  License as published by the Free Software Foundation; either
+#  version 2.1 of the License.
+#
+#  This library is distributed in the hope that it will be useful,
+#  but WITHOUT ANY WARRANTY; without even the implied warranty of
+#  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+#  Lesser General Public License for more details.
+#
+#  You should have received a copy of the GNU Lesser General Public
+#  License along with this library; if not, write to the Free Software
+#  Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307 USA
+#
+#  See http://www.salome-platform.org/
+#
 #  File   : Makefile.in
 #  Author : Vladimir Klyachin (OCN)
 #  Module : suit
@@ -50,7 +68,8 @@ EXPORT_HEADERS= Qtx.h \
                QtxResourceEdit.h \
                QtxListView.h \
                QtxDirListEditor.h \
-               QtxDblValidator.h
+               QtxDblValidator.h \
+               QtxSplash.h
 
 # .po files to transform in .qm
 
@@ -98,7 +117,8 @@ LIB_SRC= \
        QtxWorkstack.cxx \
        QtxListView.cxx \
        QtxDirListEditor.cxx \
-       QtxDblValidator.cxx
+       QtxDblValidator.cxx \
+       QtxSplash.cxx
 
 LIB_MOC = \
        QtxAction.h \
@@ -131,7 +151,8 @@ LIB_MOC = \
        QtxListView.h \
        QtxListResourceEdit.h \
        QtxDirListEditor.h \
-       QtxDblValidator.h
+       QtxDblValidator.h \
+       QtxSplash.h
 
 RESOURCES_FILES = \
 
index c16bd7b231b907cf30755369a484099ed4a906bc..cbfc63b99a5f36d18ce00dac932daa9eb1ad3e86 100755 (executable)
@@ -87,6 +87,10 @@ typedef QValueList<int>    QIntList;
 typedef QValueList<short>  QShortList;
 typedef QValueList<double> QDoubleList;
 
+/*!
+  \class Qtx
+  \brief Set of auxiliary static methods
+*/
 class QTX_EXPORT Qtx : public Qt
 {
 public:
index 9fafdb7ac1c0a48a741ce859435264fca581e37c..ea84464306e067fdbb20c1d566b5c47227bf3531 100755 (executable)
@@ -22,6 +22,7 @@
 #include "QtxAction.h"
 
 #include <qpopupmenu.h>
+#include <qmenubar.h>
 
 /*!
        Name: QtxAction [public]
@@ -30,7 +31,7 @@
 */
 
 QtxAction::QtxAction( QObject* parent, const char* name, bool toggle )
-: QAction( parent, name, toggle )
+  : QAction( parent, name, toggle )
 {
 }
 
@@ -46,7 +47,7 @@ QtxAction::QtxAction( QObject* parent, const char* name, bool toggle )
 QtxAction::QtxAction( const QString& text, const QIconSet& icon,
                       const QString& menuText, int accel,
                       QObject* parent, const char* name, bool toggle )
-: QAction( text, icon, menuText, accel, parent, name, toggle )
+  : QAction( text, icon, menuText, accel, parent, name, toggle )
 {
 }
 
@@ -60,7 +61,7 @@ QtxAction::QtxAction( const QString& text, const QIconSet& icon,
 
 QtxAction::QtxAction( const QString& text, const QString& menuText, int accel,
                       QObject* parent, const char* name, bool toggle )
-: QAction( text, menuText, accel, parent, name, toggle )
+  : QAction( text, menuText, accel, parent, name, toggle )
 {
 }
 
@@ -81,6 +82,26 @@ QtxAction::~QtxAction()
 
 bool QtxAction::addTo( QWidget* w )
 {
+  if ( w->inherits( "QMenuBar" ) ) {
+    // --- Add action to the QMenuBar ---
+    // n.b. currently for the actions inserted to the menu bar 
+    // the following properties are not supported:
+    // * tooltips
+    // * what's this info
+    // * toggle mode
+    QMenuBar* mb = (QMenuBar*)w;
+    if ( myMenuIds.find( w ) != myMenuIds.end() )
+      return false;                        // already added
+    if ( name() == "qt_separator_action" ) // separator
+      myMenuIds[ w ] = mb->insertSeparator();
+    else if ( iconSet().isNull() )         // has no icon
+      myMenuIds[ w ] = mb->insertItem( menuText(), this, SIGNAL( activated() ), accel() );
+    else                                   // has icon
+      myMenuIds[ w ] = mb->insertItem( iconSet(), menuText(), this, SIGNAL( activated() ), accel() );
+    mb->setItemEnabled( myMenuIds[ w ], isEnabled() );
+    mb->setItemVisible( myMenuIds[ w ], isVisible() );
+    return true;
+  }
   return QAction::addTo( w );
 }
 
@@ -96,91 +117,185 @@ bool QtxAction::addTo( QWidget* w, int index )
   if ( !addTo( w ) )
     return false;
 
-  if ( w->inherits( "QPopupMenu" ) )
-  {
+  if ( w->inherits( "QPopupMenu" ) ) {
+    // --- Add action to the QPopupMenu ---
     QPopupMenu* popup = (QPopupMenu*)w;
-    if ( index < (int)popup->count() - 1 )
-    {
+    if ( index >= 0 && index < (int)popup->count() - 1 ) {
       int id = popup->idAt( popup->count() - 1 );
-      if ( id != -1 )
-      {
-                         QMenuItem* item = popup->findItem( id );
-                               if ( item && item->isSeparator() )
-                               {
-                                       popup->removeItem( id );
-          popup->insertSeparator( index );
-                               }
-                               else
-                               {
-                                       QPopupMenu* p = item ? item->popup() : 0;
-                                       int accel = popup->accel( id );
-                                       bool isOn = popup->isItemEnabled( id );
-                                       QString text = popup->text( id );
-                                       QIconSet icon;
-                                       if ( popup->iconSet( id ) )
-                                               icon = *popup->iconSet( id );
-                                       popup->removeItem( id );
-                                       int pos;
-                                       if ( icon.isNull() )
-                                               if ( p )
-                                                       pos = popup->indexOf( popup->insertItem( text, p, id, index ) );
-                                               else
-                                                       pos = popup->indexOf( popup->insertItem( text, id, index ) );
-                                       else
-                                               if ( p )
-                                                       pos = popup->indexOf( popup->insertItem( icon, text, p, id, index ) );
-                                               else
-                                                       pos = popup->indexOf( popup->insertItem( icon, text, p, id, index ) );
-                                       popup->setId( pos, id );
-                                       popup->setAccel( accel, id );
-                                       popup->setItemEnabled( id, isOn );
-                                       if ( !p )
-                                               popup->connectItem( id, this, SLOT( internalActivation() ) );
-                               }
+      if ( id != -1 ) {
+       QMenuItem* item = popup->findItem( id );
+       if ( item && item->isSeparator() ) {
+         popup->removeItem( id );
+         popup->insertSeparator( index );
+       }
+       else {
+         QPopupMenu* p = item ? item->popup() : 0;
+         int accel = popup->accel( id );
+         bool isOn = popup->isItemEnabled( id );
+         bool isVisible = popup->isItemVisible( id );
+         bool isChecked = popup->isItemChecked( id );
+         QString text = popup->text( id );
+         QIconSet icon;
+         if ( popup->iconSet( id ) )
+           icon = *popup->iconSet( id );
+         popup->removeItem( id );
+         int pos;
+         if ( icon.isNull() )
+           if ( p )
+             pos = popup->indexOf( popup->insertItem( text, p, id, index ) );
+           else
+             pos = popup->indexOf( popup->insertItem( text, id, index ) );
+         else
+           if ( p )
+             pos = popup->indexOf( popup->insertItem( icon, text, p, id, index ) );
+           else
+             pos = popup->indexOf( popup->insertItem( icon, text, p, id, index ) );
+         popup->setId( pos, id );
+         popup->setAccel( accel, id );
+         popup->setItemEnabled( id, isOn );
+         popup->setItemVisible( id, isVisible );
+         popup->setItemChecked( id, isChecked );
+         if ( !whatsThis().isEmpty() )
+           popup->setWhatsThis( id, whatsThis() );
+         if ( !p )
+           popup->connectItem( id, this, SLOT( internalActivation() ) );
+       }
+      }
+    }
+  }
+  else if ( w->inherits( "QMenuBar" ) ) {
+    // --- Add action to the QMenuBar ---
+    QMenuBar* mb = (QMenuBar*)w;
+    if ( index >= 0 && index < (int)mb->count() - 1 ) {
+      int id = mb->idAt( mb->count() - 1 );
+      if ( id != -1 ) {
+       QMenuItem* item = mb->findItem( id );
+       if ( item && item->isSeparator() ) {
+         mb->removeItem( id );
+         mb->insertSeparator( index );
+       }
+       else {
+         QPopupMenu* p = item ? item->popup() : 0;
+         int accel = mb->accel( id );
+         bool isOn = mb->isItemEnabled( id );
+         bool isVisible = mb->isItemVisible( id );
+         QString text = mb->text( id );
+         QIconSet icon;
+         if ( mb->iconSet( id ) )
+           icon = *mb->iconSet( id );
+         mb->removeItem( id );
+         int pos;
+         if ( icon.isNull() )
+           if ( p )
+             pos = mb->indexOf( mb->insertItem( text, p, id, index ) );
+           else
+             pos = mb->indexOf( mb->insertItem( text, id, index ) );
+         else
+           if ( p )
+             pos = mb->indexOf( mb->insertItem( icon, text, p, id, index ) );
+           else
+             pos = mb->indexOf( mb->insertItem( icon, text, p, id, index ) );
+         mb->setId( pos, id );
+         mb->setAccel( accel, id );
+         mb->setItemEnabled( id, isOn );
+         mb->setItemVisible( id, isVisible );
+         if ( !p )
+           mb->connectItem( id, this, SIGNAL( activated() ) );
+       }
       }
     }
   }
-
   return true;
 }
 
+/*!
+       Name: removeFrom [virtual public]
+       Desc: Removes this action from widget. Returns true if the action was removed
+                 successfully and false otherwise.
+*/
+
+bool QtxAction::removeFrom( QWidget* w )
+{
+  // check if widget is QMenuBar
+  if ( w->inherits( "QMenuBar" ) ) {
+    QMenuBar* mb = (QMenuBar*)w;
+    if ( myMenuIds.find( w ) == myMenuIds.end() )
+      return false;  // not yet added
+    mb->removeItem( myMenuIds[ w ] );
+    myMenuIds.remove( w );
+    return true;
+  }
+  return QAction::removeFrom( w );
+}
+
 /*!
        Name: setPopup [virtual public]
        Desc: Set or unset the sub popup menu for item with specified id in the given popup.
 */
 
-void QtxAction::setPopup( QPopupMenu* popup, const int id, QPopupMenu* subPopup ) const
+void QtxAction::setPopup( QWidget* w, const int id, QPopupMenu* subPopup ) const
 {
-  if ( !popup )
+  if ( !w )
     return;
 
+  if ( !w->inherits( "QPopupMenu" ) && !w->inherits( "QMenuBar" ) )
+    return;  // unsupported widget type
+
   QMenuData* md = 0;
-  const QMenuData* pmd = popup;
-  QMenuItem* item = popup->findItem( id, &md );
+  QMenuData* pmd = dynamic_cast<QMenuData*>( w );
+  if ( !pmd )
+    return;  // bad widget
+  
+  QMenuItem* item = pmd->findItem( id, &md );
   if ( !item || md != pmd )
-    return;
+    return;  // item is not found
 
   QPopupMenu* oldPopup = item->popup();
   if ( oldPopup == subPopup )
-    return;
+    return;  // popup is not changed
 
-  int accel = popup->accel( id );
-  bool isOn = popup->isItemEnabled( id );
-  QString text = popup->text( id );
+  // get properties
+  int accel = pmd->accel( id );
+  bool isOn = pmd->isItemEnabled( id );
+  bool isVisible = pmd->isItemVisible( id );
+  int pos = pmd->indexOf( id );
+  QString text = pmd->text( id );
   QIconSet icon;
-       if ( popup->iconSet( id ) )
-    icon = *popup->iconSet( id );
-  popup->removeItem( id );
+  if ( pmd->iconSet( id ) )
+    icon = *pmd->iconSet( id );
 
-  int pos;
-  if ( icon.isNull() )
-    pos = popup->indexOf( subPopup ? popup->insertItem( text, subPopup ) : popup->insertItem( text ) );
-  else
-    pos = popup->indexOf( subPopup ? popup->insertItem( icon, text, subPopup ) : popup->insertItem( icon, text ) );
+  // remove previous item
+  pmd->removeItem( id );
 
-  popup->setId( pos, id );
-  popup->setAccel( accel, id );
-  popup->setItemEnabled( id, isOn );
+  // add new item
+  if ( w->inherits( "QPopupMenu" ) ) {
+    // --- QPopupMenu ---
+    QPopupMenu* popup = (QPopupMenu*)w;
+    if ( icon.isNull() )
+      pos = popup->indexOf( subPopup ? popup->insertItem( text, subPopup, id, pos ) :
+                                      popup->insertItem( text, id, pos ) );
+    else
+      pos = popup->indexOf( subPopup ? popup->insertItem( icon, text, subPopup, id, pos ) : 
+                                      popup->insertItem( icon, text, id, pos ) );
+  }
+  else {
+    // --- QMenuBar ---
+    QMenuBar* mb = (QMenuBar*)w;
+    if ( icon.isNull() )
+      pos = mb->indexOf( subPopup ? mb->insertItem( text, subPopup, id, pos ) : 
+                                   mb->insertItem( text, id, pos ) );
+    else
+      pos = mb->indexOf( subPopup ? mb->insertItem( icon, text, subPopup, id, pos ) : 
+                                   mb->insertItem( icon, text, id, pos ) );
+  }
 
+  // restore properties
+  pmd->setId( pos, id ); // for sure (if id < 0)
+  pmd->setAccel( accel, id );
+  pmd->setItemEnabled( id, isOn );
+  pmd->setItemVisible( id, isVisible );
+
+  // delete old popup
   delete oldPopup;
 }
+
index ffffcc4d8594cae01b49f63a02bfdd3a94bc388d..5251ad50f348e86ccc811c8ff785895b6df793e3 100755 (executable)
@@ -25,6 +25,7 @@
 #include "Qtx.h"
 
 #include <qaction.h>
+#include <qmap.h>
 
 class QTX_EXPORT QtxAction : public QAction
 {
@@ -38,9 +39,13 @@ public:
 
     virtual bool addTo( QWidget* );
     virtual bool addTo( QWidget*, int );
+    virtual bool removeFrom( QWidget* );
 
 protected:
-    void         setPopup( QPopupMenu*, const int, QPopupMenu* ) const;
+    void         setPopup( QWidget*, const int, QPopupMenu* ) const;
+
+private:
+    QMap<QWidget*,int> myMenuIds;
 };
 
 #endif
index 2d09b2d0989777498eb2b0d3400dc93f11fc4dcb..50c1147bbb23790abdea2616589d41d87e2fc438 100644 (file)
 #include <qmainwindow.h>
 #include <qfile.h>
 #include <qdom.h>
+#include <qvaluelist.h>
+
+// VSR: Uncomment this #define in order to allow dynamic menus support
+// (emit signals when popup menu is pre-activated)
+// Currently this support is disabled.
+//#define ENABLE_DYNAMIC_MENU
+/*!
+       Service functions
+       Level: Internal
+*/
+namespace {
+  QValueList<int> prepareIds( const QWidget* w )
+  {
+    QValueList<int> l;
+    const QMenuData* md = 0;
+    if ( w->inherits( "QMenuBar" ) )
+      md = dynamic_cast<const QMenuData*>( w );
+    else if ( w->inherits( "QPopupMenu" ) )
+      md = dynamic_cast<const QMenuData*>( w );
+    if ( md ) {
+      for ( int i=0; i < md->count(); i++ )
+       l.append( md->idAt( i ) );
+    }
+    return l;
+  }
+
+  int getNewId( const QWidget* w, const QValueList<int>& l, bool retId = true )
+  {
+    const QMenuData* md = 0;
+    if ( w->inherits( "QMenuBar" ) )
+      md = dynamic_cast<const QMenuData*>( w );
+    else if ( w->inherits( "QPopupMenu" ) )
+      md = dynamic_cast<const QMenuData*>( w );
+    if ( md ) {
+      for ( int i=0, j=0; i < md->count() && j < l.count(); i++, j++ )
+       if ( md->idAt( i ) != l[ j ] ) return retId ? md->idAt( i ) : i;
+      if ( md->count() > l.count() ) return retId ? md->idAt( md->count()-1 ) : md->count()-1;
+    }
+    return -1;
+  }
+
+  void dumpMenu( QWidget* w, bool before )
+  {
+    QMenuData* md = dynamic_cast<QMenuData*>( w );
+    if ( !w ) return;
+    printf(">>> start dump menu (%s) >>>\n", before ? "before" : "after" );
+    for( int i = 0; i < md->count(); i++ )
+      printf("%d: %d: %s\n",i,md->idAt(i),md->text(md->idAt(i)).latin1() );
+    printf("<<< end dump menu (%s) <<<\n", before ? "before" : "after" );
+  }
+};
 
 /*!
        Class: QtxActionMenuMgr::MenuAction
@@ -40,7 +92,7 @@
 class QtxActionMenuMgr::MenuAction : public QtxAction
 {
 public:
-  MenuAction( const QString&, const QString&, QObject*, const bool = false );
+  MenuAction( const QString&, const QString&, QObject*, const int = -1, const bool = false );
   virtual ~MenuAction();
 
   virtual bool addTo( QWidget* );
@@ -50,54 +102,84 @@ public:
   QPopupMenu*  popup() const;
 
 private:
-  int          myId;
-  QPopupMenu*  myPopup;
-  bool         myEmptyEnabled;
+  int                myId;
+  QPopupMenu*        myPopup;
+  bool               myEmptyEnabled;
+  QMap<QWidget*,int> myIds;
 };
 
+
+/*!
+  Constructor for menu action
+  \param text - description text
+  \param menutext - menu text
+  \param parent - parent object
+  \param id - integer identificator of action
+  \param allowEmpty - if it is true, it makes possible to add this action with empty popup to menu
+*/
+
 QtxActionMenuMgr::MenuAction::MenuAction( const QString& text,
                                          const QString& menuText,
                                          QObject*       parent,
+                                         const int      id,
                                          const bool     allowEmpty )
 : QtxAction( text, menuText, 0, parent ),
-  myId( -1 ),
+  myId( id ),
   myPopup( 0 ),
   myEmptyEnabled( allowEmpty )
 {
   myPopup = new QPopupMenu();
 }
 
+/*!
+  Destructor: deletes internal popup
+*/
 QtxActionMenuMgr::MenuAction::~MenuAction()
 {
   delete myPopup;
 }
 
+/*!
+  Adds action to widget, for example, to popup menu or menu bar
+*/
 bool QtxActionMenuMgr::MenuAction::addTo( QWidget* w )
 {
-  if ( myId != -1 || !w )
-    return false;
+  if ( !w ) 
+    return false;  // bad widget
 
   if ( !w->inherits( "QPopupMenu" ) && !w->inherits( "QMenuBar" ) )
-    return false;
+    return false;  // not allowed widget type
+
+  if ( myIds.find( w ) != myIds.end() )
+    return false;  // already added
 
   if ( !myPopup )
-    return false;
+    return false;  // bad own popup menu
 
   if ( !myEmptyEnabled && !myPopup->count() )
-    return false;
-
-  if ( w->inherits( "QPopupMenu" ) && QAction::addTo( w ) )
-  {
-    QPopupMenu* pm = (QPopupMenu*)w;
-    myId = pm->idAt( pm->count() - 1 );
-    setPopup( pm, myId, myPopup );
+    return false;  // not allowed empty menu
+
+  if ( w->inherits( "QPopupMenu" )  ) {
+    QValueList<int> l = prepareIds( w );
+    int idx;
+    if ( QtxAction::addTo( w ) && ( idx = getNewId( w, l, false ) ) != -1 ) {
+      QPopupMenu* pm = (QPopupMenu*)w;
+      myIds[ w ] = pm->idAt( idx );
+      if ( myId != -1 ) 
+       pm->setId( idx, myId );
+      setPopup( pm, myId != -1 ? myId : myIds[ w ], myPopup );
+    }
   }
-  else if ( w->inherits( "QMenuBar" ) )
-  {
-    QMenuBar* mb = (QMenuBar*)w;
-    myId = iconSet().isNull() ? mb->insertItem( menuText(), myPopup ) :
-                                mb->insertItem( iconSet(), menuText(), myPopup );
-    mb->setItemEnabled( myId, isEnabled() );
+  else if ( w->inherits( "QMenuBar" ) ) {
+    QValueList<int> l = prepareIds( w );
+    int idx;
+    if ( QtxAction::addTo( w ) && ( idx = getNewId( w, l, false ) ) != -1 ) {
+      QMenuBar* mb = (QMenuBar*)w;
+      myIds[ w ] = mb->idAt( idx );
+      if ( myId != -1 ) 
+       mb->setId( idx, myId );
+      setPopup( mb, myId != -1 ? myId : myIds[ w ], myPopup );
+    }
   }
   else
     return false;
@@ -105,20 +187,45 @@ bool QtxActionMenuMgr::MenuAction::addTo( QWidget* w )
   return true;
 }
 
+/*!
+  Removes action from widget, for example, from popup menu or menu bar
+*/
 bool QtxActionMenuMgr::MenuAction::removeFrom( QWidget* w )
 {
-  if ( w->inherits( "QPopupMenu" ) && QAction::removeFrom( w ) )
-    myId = -1;
+  if ( !w ) 
+    return false;  // bad widget
+
+  if ( !w->inherits( "QPopupMenu" ) && !w->inherits( "QMenuBar" ) )
+    return false;  // not allowed widget type
+
+  if ( myIds.find( w ) == myIds.end() )
+    return false;  // not yet added
+
+  if ( w->inherits( "QPopupMenu" ) ) {
+    if ( myId != -1 ) {
+      QPopupMenu* pm = (QPopupMenu*)w;
+      int idx = pm->indexOf( myId );
+      if ( idx != -1 ) pm->setId( idx, myIds[ w ] );
+    }
+    myIds.remove( w );
+    return QtxAction::removeFrom( w );;
+  }
   else if ( w->inherits( "QMenuBar" ) )
   {
-    QMenuBar* mb = (QMenuBar*)w;
-    mb->removeItem( myId );
-    myId = -1;
+    if ( myId != -1 ) {
+      QMenuBar* mb = (QMenuBar*)w;
+      int idx = mb->indexOf( myId );
+      if ( idx != -1 ) mb->setId( idx, myIds[ w ] );
+    }
+    myIds.remove( w );
+    return QtxAction::removeFrom( w );
   }
-
-  return myId == -1;
+  return false;
 }
 
+/*!
+  \return internal popup of action
+*/
 QPopupMenu* QtxActionMenuMgr::MenuAction::popup() const
 {
   return myPopup;
@@ -128,25 +235,28 @@ QPopupMenu* QtxActionMenuMgr::MenuAction::popup() const
        Class: QtxActionMenuMgr
        Level: Public
 */
-
-
 QtxActionMenuMgr::QtxActionMenuMgr( QMainWindow* p )
 : QtxActionMgr( p ),
-myMenu( p ? p->menuBar() : 0 )
+  myMenu( p ? p->menuBar() : 0 )
 {
   myRoot.id = -1;
   myRoot.group = -1;
 
   if ( myMenu ) {
     connect( myMenu, SIGNAL( destroyed( QObject* ) ), this, SLOT( onDestroyed( QObject* ) ) );
+#ifdef ENABLE_DYNAMIC_MENU
     if ( myMenu->inherits( "QMenuBar" ) )
       connect( myMenu, SIGNAL( highlighted( int ) ), this, SLOT( onHighlighted( int ) ) );
+#endif
   }
 }
 
+/*!
+  Constructor
+*/
 QtxActionMenuMgr::QtxActionMenuMgr( QWidget* mw, QObject* p )
 : QtxActionMgr( p ),
-myMenu( mw )
+  myMenu( mw )
 {
   myRoot.id = -1;
   myRoot.group = -1;
@@ -155,6 +265,9 @@ myMenu( mw )
     connect( myMenu, SIGNAL( destroyed( QObject* ) ), this, SLOT( onDestroyed( QObject* ) ) );
 }
 
+/*!
+  Destructor
+*/
 QtxActionMenuMgr::~QtxActionMenuMgr()
 {
   for ( NodeListIterator it( myRoot.children ); it.current() && myMenu; ++it )
@@ -171,12 +284,23 @@ QtxActionMenuMgr::~QtxActionMenuMgr()
     delete itr.data();
 }
 
+/*!
+  \return whether menu item corresponding to action is visible
+  \param actId - identificator of action
+  \param place - identificator of some parent action
+*/
 bool QtxActionMenuMgr::isVisible( const int actId, const int place ) const
 {
   MenuNode* node = find( actId, place );
   return node && node->visible;
 }
 
+/*!
+  Sets visible state of action
+  \param actId - identificator of action
+  \param place - identificator of some parent action
+  \param v - visibility state
+*/
 void QtxActionMenuMgr::setVisible( const int actId, const int place, const bool v )
 {
   MenuNode* node = find( actId, place );
@@ -184,16 +308,40 @@ void QtxActionMenuMgr::setVisible( const int actId, const int place, const bool
     node->visible = v;
 }
 
+/*!
+  Insert action as children menu item 
+  \param id - identificator of action
+  \param menus - few names of parent menu items, separated by '|'. It means sequence of menu items,
+  for example "File|Edit" means File->Edit submenu. If submenu doesn't exist, it will be created.
+  \param group - group identificator
+  \param idx - index inside Qt menu
+*/
 int QtxActionMenuMgr::insert( const int id, const QString& menus, const int group, const int idx )
 {
   return insert( id, QStringList::split( "|", menus ), group, idx );
 }
 
+/*!
+  Insert action as children menu item 
+  \param a - action
+  \param menus - few names of parent menu items, separated by '|'. It means sequence of menu items,
+  for example "File|Edit" means File->Edit submenu. If submenu doesn't exist, it will be created.
+  \param group - group identificator
+  \param idx - index inside Qt menu
+*/
 int QtxActionMenuMgr::insert( QAction* a, const QString& menus, const int group, const int idx )
 {
   return insert( a, QStringList::split( "|", menus ), group, idx );
 }
 
+/*!
+  Insert action as children menu item 
+  \param id - identificator of action
+  \param menus - list of names of parent menu items, separated by |. It means sequence of menu items,
+  for example "File|Edit" means File->Edit submenu. If submenu doesn't exist, it will be created.
+  \param group - group identificator
+  \param idx - index inside Qt menu
+*/
 int QtxActionMenuMgr::insert( const int id, const QStringList& menus, const int group, const int idx )
 {
   int pId = createMenu( menus, -1 );
@@ -203,6 +351,14 @@ int QtxActionMenuMgr::insert( const int id, const QStringList& menus, const int
   return insert( id, pId, group, idx );
 }
 
+/*!
+  Insert action as children menu item 
+  \param a - action
+  \param menus - list of names of parent menu items. It means sequence of menu items,
+  for example "File|Edit" means File->Edit submenu. If submenu doesn't exist, it will be created.
+  \param group - group identificator
+  \param idx - index inside Qt menu
+*/
 int QtxActionMenuMgr::insert( QAction* a, const QStringList& menus, const int group, const int idx )
 {
   int pId = createMenu( menus, -1 );
@@ -212,6 +368,13 @@ int QtxActionMenuMgr::insert( QAction* a, const QStringList& menus, const int gr
   return insert( a, pId, group, idx );
 }
 
+/*!
+  Insert action as children menu item 
+  \param id - identificator of action
+  \param pId - identificator of action corresponding to parent menu item
+  \param group - group identificator
+  \param idx - index inside Qt menu
+*/
 int QtxActionMenuMgr::insert( const int id, const int pId, const int group, const int idx )
 {
   if ( id == -1 )
@@ -233,11 +396,28 @@ int QtxActionMenuMgr::insert( const int id, const int pId, const int group, cons
   return node->id;
 }
 
+/*!
+  Insert action as children menu item 
+  \param a - action
+  \param pId - identificator of action corresponding to parent menu item
+  \param group - group identificator
+  \param idx - index inside Qt menu
+*/
 int QtxActionMenuMgr::insert( QAction* a, const int pId, const int group, const int idx )
 {
   return insert( registerAction( a ), pId, group, idx );
 }
 
+/*!
+  Create and insert action as children menu item 
+  \return identificator of inserted action
+  \param title - menu text of action
+  \param pId - identificator of action corresponding to parent menu item
+  \param group - group identificator
+  \param id - identificator of new action
+  \param idx - index inside Qt menu
+  \param allowEmpty - indicates, that it is possible to add this action with empty popup menu to other menu
+*/
 int QtxActionMenuMgr::insert( const QString& title, const int pId, const int group, const int id, const int idx, const bool allowEmpty )
 {
   MenuNode* pNode = pId == -1 ? &myRoot : find( pId );
@@ -257,13 +437,17 @@ int QtxActionMenuMgr::insert( const QString& title, const int pId, const int gro
   if ( fid != -1 )
     return fid;
 
-  MenuAction* ma = new MenuAction( clearTitle( title ), title, this, allowEmpty );
+  int gid = (id == -1 || eNode ) ? generateId() : id;
+
+  MenuAction* ma = new MenuAction( clearTitle( title ), title, this, gid, allowEmpty );
+#ifdef ENABLE_DYNAMIC_MENU
   connect( ma->popup(), SIGNAL( highlighted( int ) ), this, SLOT( onHighlighted( int ) ) );
+#endif
 
   MenuNode* node = new MenuNode( pNode );
   node->group = group;
   node->idx = idx;
-  node->id = myMenus.insert( (id == -1 || eNode ) ? generateId() : id, ma ).key();
+  node->id = myMenus.insert( gid, ma ).key();
 
   pNode->children.append( node );
 
@@ -272,53 +456,129 @@ int QtxActionMenuMgr::insert( const QString& title, const int pId, const int gro
   return node->id;
 }
 
+/*!
+  Create and insert action as children menu item 
+  \return identificator of inserted action
+  \param title - menu text of action
+  \param menus - string list of parents' menu texts, separated by |
+  \param group - group identificator
+  \param id - identificator of new action
+  \param idx - index inside Qt menu
+  \param allowEmpty - indicates, that it is possible to add this action with empty popup menu to other menu
+*/
 int QtxActionMenuMgr::insert( const QString& title, const QString& menus, const int group, const int id, const int idx, const bool allowEmpty )
 {
   return insert( title, QStringList::split( "|", menus ), group, id, idx, allowEmpty );
 }
 
+/*!
+  Create and insert action as children menu item 
+  \return identificator of inserted action
+  \param title - menu text of action
+  \param menus - list of parents menu items
+  \param group - group identificator
+  \param id - identificator of new action
+  \param idx - index inside Qt menu
+  \param allowEmpty - indicates, that it is possible to add this action with empty popup menu to other menu
+*/
 int QtxActionMenuMgr::insert( const QString& title, const QStringList& menus, const int group, const int id, const int idx, const bool allowEmpty )
 {
   int pId = createMenu( menus, -1 );
   return insert( title, pId, group, id, idx, allowEmpty );
 }
 
+/*!
+  Create and append action as last children
+  \return identificator of inserted action
+  \param title - menu text of action
+  \param pId - id of action corresponding to parent menu item
+  \param group - group identificator
+  \param id - identificator of new action
+  \param allowEmpty - indicates, that it is possible to add this action with empty popup menu to other menu
+*/
 int QtxActionMenuMgr::append( const QString& title, const int pId, const int group, const int id, const bool allowEmpty )
 {
   return insert( title, pId, group, id, allowEmpty );
 }
 
+/*!
+  Create and append action as last children
+  \return identificator of inserted action
+  \param id - identificator of existing action
+  \param pId - id of action corresponding to parent menu item
+  \param group - group identificator
+*/
 int QtxActionMenuMgr::append( const int id, const int pId, const int group )
 {
   return insert( id, pId, group );
 }
 
+/*!
+  Create and append action as last children
+  \return identificator of inserted action
+  \param a - action
+  \param pId - id of action corresponding to parent menu item
+  \param group - group identificator
+*/
 int QtxActionMenuMgr::append( QAction* a, const int pId, const int group )
 {
   return insert( a, pId, group );
 }
 
+/*!
+  Create and insert action as first children
+  \return identificator of inserted action
+  \param title - menu text of action
+  \param pId - id of action corresponding to parent menu item
+  \param group - group identificator
+  \param id - identificator of new action
+  \param allowEmpty - indicates, that it is possible to add this action with empty popup menu to other menu
+*/
 int QtxActionMenuMgr::prepend( const QString& title, const int pId, const int group, const int id, const bool allowEmpty )
 {
   return insert( title, pId, group, id, 0, allowEmpty );
 }
 
+/*!
+  Create and insert action as last children
+  \return identificator of inserted action
+  \param id - identificator of existing action
+  \param pId - id of action corresponding to parent menu item
+  \param group - group identificator
+*/
 int QtxActionMenuMgr::prepend( const int id, const int pId, const int group )
 {
   return insert( id, pId, group, 0 );
 }
 
+/*!
+  Create and insert action as last children
+  \return identificator of inserted action
+  \param a - action
+  \param pId - id of action corresponding to parent menu item
+  \param group - group identificator
+*/
 int QtxActionMenuMgr::prepend( QAction* a, const int pId, const int group )
 {
   return insert( a, pId, group, 0 );
 }
 
+/*!
+  Removes menu item corresponding to action
+  \param id - identificator of action
+*/
 void QtxActionMenuMgr::remove( const int id )
 {
   removeMenu( id, 0 );
   update();
 }
 
+/*!
+  Removes menu item
+  \param id - identificator of action
+  \param pId - identificator of action corresponding to parent menu item
+  \param group - group identificator
+*/
 void QtxActionMenuMgr::remove( const int id, const int pId, const int group )
 {
   MenuNode* pNode = pId == -1 ? &myRoot : find( pId );
@@ -338,16 +598,28 @@ void QtxActionMenuMgr::remove( const int id, const int pId, const int group )
   updateMenu( pNode, false );
 }
 
+/*!
+  Shows menu item corresponding to action
+  \param id - identificator of action
+*/
 void QtxActionMenuMgr::show( const int id )
 {
   setShown( id, true );
 }
 
+/*!
+  Hides menu item corresponding to action
+  \param id - identificator of action
+*/
 void QtxActionMenuMgr::hide( const int id )
 {
   setShown( id, false );
 }
 
+/*!
+  \return shown status of menu item corresponding to action
+  \param id - identificator of action
+*/
 bool QtxActionMenuMgr::isShown( const int id ) const
 {
   bool res = false;
@@ -357,6 +629,11 @@ bool QtxActionMenuMgr::isShown( const int id ) const
   return res;
 }
 
+/*!
+  Sets shown status of menu item corresponding to action
+  \param id - identificator of action
+  \param on - new shown status
+*/
 void QtxActionMenuMgr::setShown( const int id, const bool on )
 {
   NodeList aNodes;
@@ -376,12 +653,18 @@ void QtxActionMenuMgr::setShown( const int id, const bool on )
     updateMenu( itr.key(), false );
 }
 
+/*!
+  SLOT: called when corresponding menu is destroyed, clears internal pointer to menu
+*/
 void QtxActionMenuMgr::onDestroyed( QObject* obj )
 {
   if ( myMenu == obj )
     myMenu = 0;
 }
 
+/*!
+  SLOT: called when menu item is highlighted
+*/
 void QtxActionMenuMgr::onHighlighted( int id )
 {
   const QObject* snd = sender();
@@ -406,6 +689,10 @@ void QtxActionMenuMgr::onHighlighted( int id )
   }
 }
 
+/*!
+  Assignes new menu with manager
+  \param mw - new menu
+*/
 void QtxActionMenuMgr::setWidget( QWidget* mw )
 {
   if ( myMenu == mw )
@@ -420,11 +707,23 @@ void QtxActionMenuMgr::setWidget( QWidget* mw )
     connect( myMenu, SIGNAL( destroyed( QObject* ) ), this, SLOT( onDestroyed( QObject* ) ) );
 }
 
+/*!
+  \return menu node by it's place description
+  \param actId - identificator of action
+  \param pId - identificator of action corresponding to start menu item
+  \param rec - recursive search
+*/
 QtxActionMenuMgr::MenuNode* QtxActionMenuMgr::find( const int actId, const int pId, const bool rec ) const
 {
   return find( actId, find( pId ), rec );
 }
 
+/*!
+  \return menu node by it's place description
+  \param actId - identificator of action
+  \param startNode - start menu item
+  \param rec - recursive search
+*/
 QtxActionMenuMgr::MenuNode* QtxActionMenuMgr::find( const int id, MenuNode* startNode, const bool rec ) const
 {
   MenuNode* node = 0;
@@ -439,6 +738,13 @@ QtxActionMenuMgr::MenuNode* QtxActionMenuMgr::find( const int id, MenuNode* star
   return node;
 }
 
+/*!
+  Finds menu node
+  \return true if at least one node is found
+  \param id - identificator of action
+  \param lst - list to be filled with found nodes
+  \param startNode - start menu item
+*/
 bool QtxActionMenuMgr::find( const int id, NodeList& lst, MenuNode* startNode ) const
 {
   MenuNode* start = startNode ? startNode : (MenuNode*)&myRoot;
@@ -452,11 +758,25 @@ bool QtxActionMenuMgr::find( const int id, NodeList& lst, MenuNode* startNode )
   return !lst.isEmpty();
 }
 
+/*!
+  Finds menu node
+  \return menu node
+  \param title - menu text of searched node
+  \param pId - id of action corresponding to start menu item
+  \param rec - recursive searching
+*/
 QtxActionMenuMgr::MenuNode* QtxActionMenuMgr::find( const QString& title, const int pId, const bool rec ) const
 {
   return find( title, find( pId ), rec );
 }
 
+/*!
+  Finds menu node
+  \return true if at least one node is found
+  \param title - menu text of node
+  \param lst - list to be filled with found nodes
+  \param startNode - start menu item
+*/
 bool QtxActionMenuMgr::find( const QString& title, NodeList& lst, MenuNode* startNode ) const
 {
   MenuNode* start = startNode ? startNode : (MenuNode*)&myRoot;
@@ -473,6 +793,13 @@ bool QtxActionMenuMgr::find( const QString& title, NodeList& lst, MenuNode* star
   return !lst.isEmpty();
 }
 
+/*!
+  Finds menu node
+  \return menu node
+  \param title - menu text of searched node
+  \param startNode - start menu item
+  \param rec - recursive searching
+*/
 QtxActionMenuMgr::MenuNode* QtxActionMenuMgr::find( const QString& title, MenuNode* startNode, const bool rec ) const
 {
   MenuNode* node = 0;
@@ -490,6 +817,12 @@ QtxActionMenuMgr::MenuNode* QtxActionMenuMgr::find( const QString& title, MenuNo
   return node;
 }
 
+/*!
+  Find id among children
+  \return id (>0) if on success or -1 on fail
+  \param id - id to be searched
+  \param pid - id of parent, among children of that 'id' must be searched
+*/
 int QtxActionMenuMgr::findId( const int id, const int pid ) const
 {
   MenuNode* start = pid != -1 ? find( pid ) : (MenuNode*)&myRoot;
@@ -501,6 +834,11 @@ int QtxActionMenuMgr::findId( const int id, const int pid ) const
   return -1;
 }
 
+/*!
+  Removes child
+  \param id - id of child to be removed
+  \param startNode - parent menu item
+*/
 void QtxActionMenuMgr::removeMenu( const int id, MenuNode* startNode )
 {
   MenuNode* start = startNode ? startNode : &myRoot;
@@ -513,11 +851,19 @@ void QtxActionMenuMgr::removeMenu( const int id, MenuNode* startNode )
   }
 }
 
+/*!
+  \return menu item action by id
+  \param id - id of action
+*/
 QAction* QtxActionMenuMgr::itemAction( const int id ) const
 {
   return action( id );
 }
 
+/*!
+  \return menu action by id
+  \param id - id of action
+*/
 QtxActionMenuMgr::MenuAction* QtxActionMenuMgr::menuAction( const int id ) const
 {
   MenuAction* a = 0;
@@ -528,6 +874,13 @@ QtxActionMenuMgr::MenuAction* QtxActionMenuMgr::menuAction( const int id ) const
   return a;
 }
 
+/*!
+  Updates menu ( isUpdatesEnabled() must return true )
+  \param startNode - first menu item to be updated
+  \param rec - recursive update
+  \param updParent - update also parent item (without recursion)
+  \sa isUpdatesEnabled()
+*/
 void QtxActionMenuMgr::updateMenu( MenuNode* startNode, const bool rec, const bool updParent )
 {
   if ( !isUpdatesEnabled() )
@@ -550,12 +903,12 @@ void QtxActionMenuMgr::updateMenu( MenuNode* startNode, const bool rec, const bo
     if ( a )
       a->removeFrom( mw );
   }
-
+  /* VSR: commented to allow direct creating of menus by calling insertItem() methods
   if ( mw->inherits( "QMenuBar" ) )
     ((QMenuBar*)mw)->clear();
   else if ( mw->inherits( "QPopupMenu" ) )
     ((QPopupMenu*)mw)->clear();
-
+  */
   QMap<int, NodeList> idMap;
   for ( NodeListIterator it2( node->children ); it2.current(); ++it2 )
   {
@@ -591,18 +944,8 @@ void QtxActionMenuMgr::updateMenu( MenuNode* startNode, const bool rec, const bo
       QAction* a = itemAction( iter.current()->id );
       if ( !a )
         a = menuAction( iter.current()->id );
-      if ( a ) {
-       QMenuData* md = dynamic_cast<QMenuData*>( mw );
-       int cnt = 0;
-       if ( md ) cnt = md->count();
+      if ( a )
        a->addTo( mw );
-       if ( md && md->count() - cnt == 1 ) { //&& iter.current()->id > 0
-         int lid = md->idAt( cnt ); 
-         QMenuItem* mi = md->findItem( lid );
-         if ( mi && !mi->isSeparator() )
-           md->setId( cnt, iter.current()->id );
-       }
-      }
     }
   }
 
@@ -612,12 +955,19 @@ void QtxActionMenuMgr::updateMenu( MenuNode* startNode, const bool rec, const bo
     updateMenu( node->parent, false );
 }
 
+/*!
+  Updates menu (virtual variant). To be redefined for custom activity on menu updating
+*/
 void QtxActionMenuMgr::internalUpdate()
 {
   if ( isUpdatesEnabled() )
     updateMenu();
 }
 
+/*!
+  \return true if widget is non-empty menu
+  \param wid - widget to be checked
+*/
 bool QtxActionMenuMgr::checkWidget( QWidget* wid ) const
 {
   if ( !wid )
@@ -629,9 +979,13 @@ bool QtxActionMenuMgr::checkWidget( QWidget* wid ) const
   else if ( wid->inherits( "QMenuBar" ) )
     md = (QMenuBar*)wid;
 
-  return md->count();
+  return md ? md->count() : false;
 }
 
+/*!
+  \return popup of menu item
+  \param node - menu item
+*/
 QWidget* QtxActionMenuMgr::menuWidget( MenuNode* node) const
 {
   if ( !node || node == &myRoot )
@@ -643,12 +997,21 @@ QWidget* QtxActionMenuMgr::menuWidget( MenuNode* node) const
   return myMenus[node->id]->popup();
 }
 
+/*!
+  Removes excess separators of menu 
+  \param wid - menu to be processed
+*/
 void QtxActionMenuMgr::simplifySeparators( QWidget* wid )
 {
   if ( wid && wid->inherits( "QPopupMenu" ) )
     Qtx::simplifySeparators( (QPopupMenu*)wid, false );
 }
 
+/*!
+  Removes special symbols (&) from string
+  \param txt - string to be processed
+  \return clear variant of string
+*/
 QString QtxActionMenuMgr::clearTitle( const QString& txt ) const
 {
   QString res = txt;
@@ -662,6 +1025,11 @@ QString QtxActionMenuMgr::clearTitle( const QString& txt ) const
   return res;
 }
 
+/*!
+  Creates and inserts many menu items 
+  \param lst - list of menu texts
+  \param pId - id of action corresponding to parent menu item
+*/
 int QtxActionMenuMgr::createMenu( const QStringList& lst, const int pId )
 {
   if ( lst.isEmpty() )
@@ -677,27 +1045,44 @@ int QtxActionMenuMgr::createMenu( const QStringList& lst, const int pId )
   return insert( title, parentId, -1 );
 }
 
+/*!
+  Loads actions description from file
+  \param fname - name of file
+  \param r - reader of file
+  \return true on success
+*/
 bool QtxActionMenuMgr::load( const QString& fname, QtxActionMgr::Reader& r )
 {
   MenuCreator cr( &r, this );
   return r.read( fname, cr );
 }
 
+/*!
+  \return true if item has such child
+  \param title - menu text of child
+  \param pid - id of action corresponding to item
+*/
 bool QtxActionMenuMgr::containsMenu( const QString& title, const int pid ) const
 {
   return (bool)find( title, pid, false );
 }
 
+/*!
+  \return true if item has such child
+  \param id - id of action corresponding to child
+  \param pid - id of action corresponding to item
+*/
 bool QtxActionMenuMgr::containsMenu( const int id, const int pid ) const
 {
   return (bool)find( id, pid, false );
 }
 
+
 /*!
-       Class: QtxActionMenuMgr::MenuCreator
-       Level: Public
+  Constructor
+  \param r - menu reader
+  \param mgr - menu manager
 */
-
 QtxActionMenuMgr::MenuCreator::MenuCreator( QtxActionMgr::Reader* r,
                                             QtxActionMenuMgr* mgr )
 : QtxActionMgr::Creator( r ),
@@ -705,10 +1090,20 @@ QtxActionMenuMgr::MenuCreator::MenuCreator( QtxActionMgr::Reader* r,
 {
 }
 
+/*!
+  Destructor
+*/
 QtxActionMenuMgr::MenuCreator::~MenuCreator()
 {
 }
 
+/*!
+  Appends new menu items
+  \param tag - tag of item
+  \param subMenu - it has submenu
+  \param attr - list of attributes
+  \param pId - id of action corresponding to parent item
+*/
 int QtxActionMenuMgr::MenuCreator::append( const QString& tag, const bool subMenu,
                                            const ItemAttributes& attr, const int pId )
 {
index f06ff9d3b6c4a6526954a2e0b7c29a7f9544eb97..252ef42abdd370016d6283a7ebbf82bfe038ba35 100644 (file)
@@ -35,6 +35,18 @@ class QMainWindow;
 #pragma warning( disable:4251 )
 #endif
 
+/*!
+  \class QtxActionMenuMgr
+  Allows to use set of action to automatically build main menu.
+  With help of methods insert/append/remove it is possible to 
+  describe whole structure of menu. Method hide allows
+  to temporary remove some items from menu, method show allows to 
+  recreate them.
+  Actions can be grouped with help of group identifictor.
+  Inside popup or menu bar items have order by increasing group id.
+  This manager is able to attune menu: to remove excess separators,
+  to remove empty popup menu etc.
+*/
 class QTX_EXPORT QtxActionMenuMgr : public QtxActionMgr
 {
   Q_OBJECT
@@ -44,6 +56,11 @@ class QTX_EXPORT QtxActionMenuMgr : public QtxActionMgr
   typedef QPtrList<MenuNode>         NodeList;
   typedef QPtrListIterator<MenuNode> NodeListIterator;
 
+  /*!
+    \class MenuNode
+    Represents a menu item inside main menu structure.
+    For internal purposes only
+  */
   class MenuNode
   {
   public:
@@ -148,6 +165,10 @@ private:
   MenuMap      myMenus;
 };
 
+/*!
+  \class QtxActionMenuMgr::MenuCreator
+  Allows to create automatically main menu by data read from file
+*/
 class QtxActionMenuMgr::MenuCreator : public QtxActionMgr::Creator
 {
 public:
index 16ec7b5b1916cb71863ab55c566e8f6d38bcd35c..40823f61af9fea698cf1571d14b63ac6ce65fb02 100644 (file)
@@ -58,15 +58,25 @@ private:
   QMap<QToolBar*, QWidgetList> myTools;
 };
 
+/*!
+  Constructor
+*/
 QtxActionMgr::SeparatorAction::SeparatorAction( QObject* parent )
 : QtxAction( parent )
 {
 }
 
+/*!
+  Destructor
+*/
 QtxActionMgr::SeparatorAction::~SeparatorAction()
 {
 }
 
+/*!
+  Adds action to widget
+  \param wid - widget
+*/
 bool QtxActionMgr::SeparatorAction::addTo( QWidget* wid )
 {
   if ( !wid )
@@ -90,6 +100,10 @@ bool QtxActionMgr::SeparatorAction::addTo( QWidget* wid )
   return res;
 }
 
+/*!
+  Removes action from widget
+  \param wid - widget
+*/
 bool QtxActionMgr::SeparatorAction::removeFrom( QWidget* wid )
 {
   if ( !wid )
@@ -140,16 +154,28 @@ bool QtxActionMgr::SeparatorAction::removeFrom( QWidget* wid )
        Level: Public
 */
 
+/*!
+  Constructor
+*/
 QtxActionMgr::QtxActionMgr( QObject* parent )
 : QObject( parent ),
 myUpdate( true )
 {
 }
 
+/*!
+  Destructor
+*/
 QtxActionMgr::~QtxActionMgr()
 {
 }
 
+/*!
+  Stores action in internal map
+  If action with such id is registered already, then it will be unregistered
+  \param a - action to be registered
+  \param userId - proposed id (if it is less than 0, then id will be generated automatically)
+*/
 int QtxActionMgr::registerAction( QAction* a, const int userId )
 {
   if ( !a )
@@ -174,12 +200,20 @@ int QtxActionMgr::registerAction( QAction* a, const int userId )
   return theId;
 }
 
+/*!
+  Removes action from internal map
+  \param id - action id
+*/
 void QtxActionMgr::unRegisterAction( const int id )
 {
   if( contains( id ) )
     myActions.remove( id );
 }
 
+/*!
+  \return action by id
+  \param id - action id
+*/
 QAction* QtxActionMgr::action( const int id ) const
 {
   if ( contains( id ) )
@@ -188,6 +222,10 @@ QAction* QtxActionMgr::action( const int id ) const
     return 0;
 }
 
+/*!
+  \return id by action
+  \param a - action
+*/
 int QtxActionMgr::actionId( const QAction* a ) const
 {
   if ( !a )
@@ -203,61 +241,101 @@ int QtxActionMgr::actionId( const QAction* a ) const
   return theId;
 }
 
+/*!
+  \return true if internal map contains such id
+  \param id - action id
+*/
 bool QtxActionMgr::contains( const int id ) const
 {
   return myActions.contains( id );
 }
 
+/*!
+  \return count of actions in internal map
+*/
 int QtxActionMgr::count() const
 {
   return myActions.count();
 }
 
+/*!
+  \return true if internal map is empty
+*/
 bool QtxActionMgr::isEmpty() const
 {
   return myActions.isEmpty();
 }
 
+/*!
+  Fills list with ids of registered actions
+*/
 void QtxActionMgr::idList( QIntList& lst ) const
 {
   lst = myActions.keys();
 }
 
+/*!
+  \return true if updates are enabled
+*/
 bool QtxActionMgr::isUpdatesEnabled() const
 {
   return myUpdate;
 }
 
+/*!
+  Enables/disables updates
+  \param upd - new state
+*/
 void QtxActionMgr::setUpdatesEnabled( const bool upd )
 {
   myUpdate = upd;
 }
 
+/*!
+  \return true if action is visible (by default \return always true)
+*/
 bool QtxActionMgr::isVisible( const int, const int ) const
 {
   return true;
 }
 
+/*!
+  Sets visibility of action (by default, empty implementation)
+*/
 void QtxActionMgr::setVisible( const int, const int, const bool )
 {
 }
 
+/*!
+  Updates actions, check isUpdatesEnabled() and call internalUpdate()
+  \sa isUpdatesEnabled(), internalUpdate()
+*/
 void QtxActionMgr::update()
 {
   if ( isUpdatesEnabled() )
     internalUpdate();
 }
 
+/*!
+  Real update (to be redefined in successors)
+*/
 void QtxActionMgr::internalUpdate()
 {
 }
 
+/*!
+  \return global free id
+*/
 int QtxActionMgr::generateId() const
 {
   static int id = -1;
   return --id;
 }
 
+/*!
+  \return true if action is enabled
+  \param id - action id
+*/
 bool QtxActionMgr::isEnabled( const int id ) const
 {
   QAction* a = action( id );
@@ -267,6 +345,11 @@ bool QtxActionMgr::isEnabled( const int id ) const
     return false;
 }
 
+/*!
+  Enables/disables action
+  \param id - action id
+  \param en - new state
+*/
 void QtxActionMgr::setEnabled( const int id, const bool en )
 {
   QAction* a = action( id );
@@ -274,6 +357,11 @@ void QtxActionMgr::setEnabled( const int id, const bool en )
     a->setEnabled( en );
 }
 
+/*!
+  \return action for separator
+  If this action doesn't exist, then it will be created
+  \param individual - if it is false, then action will be shared, otherwise it will be created on every call
+*/
 QAction* QtxActionMgr::separator( const bool individual )
 {
   if ( individual )
@@ -292,19 +380,33 @@ QAction* QtxActionMgr::separator( const bool individual )
        Level: Public
 */
 
+/*!
+  Constructor
+*/
 QtxActionMgr::Reader::Reader()
 {
 }
 
+/*!
+  Destructor
+*/
 QtxActionMgr::Reader::~Reader()
 {
 }
 
+/*!
+  \return list of options
+*/
 QStringList QtxActionMgr::Reader::options() const
 {
   return myOptions.keys();
 }
 
+/*!
+  \return value of option
+  \param name - option name
+  \param def - default option value (is returned, if there is no such option)
+*/
 QString QtxActionMgr::Reader::option( const QString& name, const QString& def ) const
 {
   if( myOptions.contains( name ) )
@@ -313,6 +415,11 @@ QString QtxActionMgr::Reader::option( const QString& name, const QString& def )
     return def;
 }
 
+/*!
+  Sets value of option
+  \param name - option name
+  \param value - option value
+*/
 void QtxActionMgr::Reader::setOption( const QString& name, const QString& value )
 {
   myOptions[ name ] = value;
@@ -320,8 +427,7 @@ void QtxActionMgr::Reader::setOption( const QString& name, const QString& value
 
 
 /*!
-       Class: QtxActionMgr::XMLReader
-       Level: Public
+  Constructor
 */
 QtxActionMgr::XMLReader::XMLReader( const QString& root,
                                     const QString& item,
@@ -342,10 +448,18 @@ QtxActionMgr::XMLReader::XMLReader( const QString& root,
   setOption( QString( "toggle" ),    QString( "toggle-id" ) );
 }
 
+/*!
+  Destructor
+*/
 QtxActionMgr::XMLReader::~XMLReader()
 {
 }
 
+/*!
+  Reads file and fills action manager with help of creator
+  \param fname - file name
+  \param cr - creator
+*/
 bool QtxActionMgr::XMLReader::read( const QString& fname, Creator& cr ) const
 {
   bool res = false;  
@@ -386,6 +500,12 @@ bool QtxActionMgr::XMLReader::read( const QString& fname, Creator& cr ) const
   return res;
 }
 
+/*!
+  Create item by xml node
+  \param parent_node - parent node
+  \param parent_id - parent id
+  \param cr - creator
+*/
 void QtxActionMgr::XMLReader::read( const QDomNode& parent_node,
                                     const int parent_id,
                                     Creator& cr ) const
@@ -420,6 +540,9 @@ void QtxActionMgr::XMLReader::read( const QDomNode& parent_node,
   }
 }
 
+/*!
+  \return true if node satisfies pattern
+*/
 bool QtxActionMgr::XMLReader::isNodeSimilar( const QDomNode& node,
                                              const QString& pattern ) const
 {
@@ -445,8 +568,10 @@ bool QtxActionMgr::XMLReader::isNodeSimilar( const QDomNode& node,
 
 
 /*!
-       Class: QtxActionMgr::Creator
-       Level: Public
+  \return integer value by attributes
+  \param attrs - attributes
+  \param name - name of attribute
+  \param def - default value (is returned on fail)
 */
 int QtxActionMgr::Creator::intValue( const ItemAttributes& attrs,
                                      const QString& name, int def )
@@ -461,6 +586,12 @@ int QtxActionMgr::Creator::intValue( const ItemAttributes& attrs,
   return def;
 }
 
+/*!
+  \return string value by attributes
+  \param attrs - attributes
+  \param name - name of attribute
+  \param def - default value (is returned on fail)
+*/
 QString QtxActionMgr::Creator::strValue( const ItemAttributes& attrs,
                                          const QString& name,
                                          const QString& def  )
@@ -471,24 +602,41 @@ QString QtxActionMgr::Creator::strValue( const ItemAttributes& attrs,
     return def;
 }
 
+/*!
+   Constructor
+*/
 QtxActionMgr::Creator::Creator( QtxActionMgr::Reader* r )
 : myReader( r )
 {
 }
 
+/*!
+   Destructor
+*/
 QtxActionMgr::Creator::~Creator()
 {
 }
 
+/*!
+  \return corresponding reader
+*/
 QtxActionMgr::Reader* QtxActionMgr::Creator::reader() const
 {
   return myReader;
 }
 
+/*!
+  Connects action to some slots (default implementation is empty)
+*/
 void QtxActionMgr::Creator::connect( QAction* ) const
 {
 }
 
+/*!
+  Loads pixmap 
+  \param fname - file name
+  \param pix - to return loaded pixmap
+*/
 bool QtxActionMgr::Creator::loadPixmap( const QString& fname, QPixmap& pix ) const
 {
   if( !reader() )
index 60fc342c04f3828b4bab0ab2d5715c31fe21e78e..8a82362f079342e054c7442df986aceca61a3a2f 100644 (file)
@@ -36,6 +36,12 @@ class QDomNode;
 #pragma warning( disable:4251 )
 #endif
 
+
+/*!
+  \class QtxActionMgr
+  Contains set of actions accessible by id.
+  Base class for menu, popup creators and other action containers.
+*/
 class QTX_EXPORT QtxActionMgr : public QObject
 {
   Q_OBJECT 
@@ -93,6 +99,10 @@ private:
 
 QTX_EXPORT typedef QMap<QString, QString> ItemAttributes;
 
+/*!
+  \class QtxActionMgr::Creator
+  Allows to fill automatically action manager with actions created by data from file
+*/
 class QtxActionMgr::Creator
 {
 public:
@@ -115,6 +125,11 @@ private:
   QtxActionMgr::Reader*  myReader;
 };
 
+/*!
+  \class QtxActionMgr::Reader
+  This class is used to read files of some format
+  to create actions and to fill action manager automatically
+*/
 class QtxActionMgr::Reader
 {
 public:
@@ -131,6 +146,11 @@ private:
   QMap< QString, QString > myOptions;
 };
 
+/*!
+  \class QtxActionMgr::Reader
+  This class is used to read files of XML format
+  to create actions and to fill action manager automatically
+*/
 class QtxActionMgr::XMLReader : public Reader
 {
 public:
index b9ff56c8f74e9e2fbdb9c4d9c579e19a5d37eef6..7529fe25035bc27d6f05dd161320ce70b367b640 100644 (file)
 #include <qmainwindow.h>
 #include <qobjectlist.h>
 
+/*!
+  Constructor
+*/
 QtxActionToolMgr::QtxActionToolMgr( QMainWindow* p )
 : QtxActionMgr( p ),
 myMainWindow( p )
 {
 }
 
+/*!
+  Destructor
+*/
 QtxActionToolMgr::~QtxActionToolMgr()
 {
 }
 
+/*!
+  \return desktop
+*/
 QMainWindow* QtxActionToolMgr::mainWindow() const
 {
   return myMainWindow;
 }
 
+/*!
+  Creates toolbar 
+  \return id of just created toolbar
+  \param name - name of toolbar
+  \param tid - proposed id (if such id is used already, then it will be returned without creation)
+*/
 int QtxActionToolMgr::createToolBar( const QString& name, const int tid )
 {
   static int _toolBarId = -1;
@@ -75,6 +90,11 @@ int QtxActionToolMgr::createToolBar( const QString& name, const int tid )
   return tbId;
 }
 
+/*!
+  \return toolbar by title
+  \param label - toolbar title
+  \param mw - desktop
+*/
 QToolBar* QtxActionToolMgr::find( const QString& label, QMainWindow* mw ) const
 {
   if ( !mw )
@@ -96,6 +116,10 @@ QToolBar* QtxActionToolMgr::find( const QString& label, QMainWindow* mw ) const
   return res;
 }
 
+/*!
+  Removes toolbar
+  \param tid - toolbar id
+*/
 void QtxActionToolMgr::removeToolBar( const int tid )
 {
   if ( !myToolBars.contains( tid ) )
@@ -105,16 +129,29 @@ void QtxActionToolMgr::removeToolBar( const int tid )
   myToolBars.remove( tid );
 }
 
+/*!
+  Removes toolbar
+  \param tname - toolbar name
+*/
 void QtxActionToolMgr::removeToolBar( const QString& tname )
 {
   removeToolBar( find( tname ) );
 }
 
+/*!
+  Insert action into toolbar
+  \param id - identificator of action
+  \param tId - identificator of toolbar
+  \param idx - position inside toolbar
+*/
 int QtxActionToolMgr::insert( const int id, const int tid, const int idx )
 {
   if ( !contains( id ) || !hasToolBar( tid ) )
     return -1;
 
+  if ( containsAction( id, tid ) )
+    remove( id, tid );
+
   ToolNode node;
   node.id = id;
 
@@ -126,61 +163,124 @@ int QtxActionToolMgr::insert( const int id, const int tid, const int idx )
   return id;
 }
 
+/*!
+  Insert action into toolbar
+  \param act - action
+  \param tId - identificator of toolbar
+  \param pos - position inside toolbar
+*/
 int QtxActionToolMgr::insert( QAction* act, const int tid, const int pos )
 {
   return insert( registerAction( act ), tid, pos );
 }
 
+/*!
+  Insert action into toolbar
+  \param id - identificator of action
+  \param tname - name of toolbar
+  \param pos - position inside toolbar
+*/
 int QtxActionToolMgr::insert( const int id, const QString& tname, const int pos )
 {
   return insert( id, createToolBar( tname ), pos );
 }
 
+/*!
+  Insert action into toolbar
+  \param act - action
+  \param tname - name of toolbar
+  \param pos - position inside toolbar
+*/
 int QtxActionToolMgr::insert( QAction* act, const QString& tname, const int pos )
 {
   return insert( registerAction( act ), createToolBar( tname ), pos );
 }
 
+/*!
+  Append action into toolbar as last toolbutton
+  \param id - identificator of action
+  \param tId - identificator of toolbar
+*/
 int QtxActionToolMgr::append( const int id, const int tid )
 {
   return insert( id, tid );
 }
 
+/*!
+  Append action into toolbar as last toolbutton
+  \param act - action
+  \param tId - identificator of toolbar
+*/
 int QtxActionToolMgr::append( QAction* act, const int tid )
 {
   return insert( act, tid );
 }
 
+/*!
+  Append action into toolbar as last toolbutton
+  \param id - identificator of action
+  \param tname - toolbar name
+*/
 int QtxActionToolMgr::append( const int id, const QString& tname )
 {
   return insert( id, tname );
 }
 
+/*!
+  Append action into toolbar as last toolbutton
+  \param act - action
+  \param tname - toolbar name
+*/
 int QtxActionToolMgr::append( QAction* act, const QString& tname )
 {
   return insert( act, tname );
 }
 
+/*!
+  Append action into toolbar as first toolbutton
+  \param id - identificator of action
+  \param tId - identificator of toolbar
+*/
 int QtxActionToolMgr::prepend( const int id, const int tid )
 {
   return insert( id, tid, 0 );
 }
 
+/*!
+  Append action into toolbar as first toolbutton
+  \param act - action
+  \param tId - identificator of toolbar
+*/
 int QtxActionToolMgr::prepend( QAction* act, const int tid )
 {
   return insert( act, tid, 0 );
 }
 
+/*!
+  Append action into toolbar as first toolbutton
+  \param id - identificator of action
+  \param tname - toolbar name
+*/
 int QtxActionToolMgr::prepend( const int id, const QString& tname )
 {
   return insert( id, tname, 0 );
 }
 
+/*!
+  Append action into toolbar as first toolbutton
+  \param act - action
+  \param tname - toolbar name
+*/
 int QtxActionToolMgr::prepend( QAction* act, const QString& tname )
 {
   return insert( act, tname, 0 );
 }
 
+/*!
+  Remove action from toolbar
+  \param id - identificator of action
+  \param tId - identificator of toolbar
+*/
 void QtxActionToolMgr::remove( const int id, const int tid )
 {
   if ( !myToolBars.contains( tid ) )
@@ -199,11 +299,20 @@ void QtxActionToolMgr::remove( const int id, const int tid )
   updateToolBar( tid );
 }
 
+/*!
+  Remove action from toolbar
+  \param id - identificator of action
+  \param tname - name of toolbar
+*/
 void QtxActionToolMgr::remove( const int id, const QString& tname )
 {
   remove( id, find( tname ) );
 }
 
+/*!
+  \return toolbar by it's id
+  \param tId - identificator of toolbar
+*/
 QToolBar* QtxActionToolMgr::toolBar( const int tid ) const
 {
   QToolBar* tb = 0;
@@ -212,21 +321,38 @@ QToolBar* QtxActionToolMgr::toolBar( const int tid ) const
   return tb;
 }
 
+/*!
+  \return toolbar by it's name
+  \param tname - name of toolbar
+*/
 QToolBar* QtxActionToolMgr::toolBar( const QString& tname ) const
 {
   return toolBar( find( tname ) );
 }
 
+/*!
+  \return true if manager contains toolbar with such id
+  \param tId - identificator of toolbar
+*/
 bool QtxActionToolMgr::hasToolBar( const int tid ) const
 {
   return myToolBars.contains( tid );
 }
 
+/*!
+  \return true if manager contains toolbar with such name
+  \param tname - name of toolbar
+*/
 bool QtxActionToolMgr::hasToolBar( const QString& tname ) const
 {
   return find( tname ) != -1;
 }
 
+/*!
+  \return true if toolbar contains action
+  \param id - identificator of action
+  \param tId - identificator of toolbar
+*/
 bool QtxActionToolMgr::containsAction( const int id, const int tid ) const
 {
   for ( ToolBarMap::ConstIterator it = myToolBars.begin(); it != myToolBars.end(); ++it )
@@ -241,11 +367,18 @@ bool QtxActionToolMgr::containsAction( const int id, const int tid ) const
   return false;
 }
 
+/*!
+  SLOT: called when toolbar is destroyed, removes just destroyed toolbar from map
+*/
 void QtxActionToolMgr::onToolBarDestroyed()
 {
   myToolBars.remove( find( (QToolBar*)sender() ) );
 }
 
+/*!
+  \return id of toolbar by it's name
+  \param tname - name of toolbar
+*/
 int QtxActionToolMgr::find( const QString& tname ) const
 {
   int id = -1;
@@ -257,6 +390,10 @@ int QtxActionToolMgr::find( const QString& tname ) const
   return id;
 }
 
+/*!
+  \return id of toolbar
+  \param t - toolbar
+*/
 int QtxActionToolMgr::find( QToolBar* t ) const
 {
   int id = -1;
@@ -268,6 +405,10 @@ int QtxActionToolMgr::find( QToolBar* t ) const
   return id;
 }
 
+/*!
+  Updates toolbar
+  \param tId - toolbar id
+*/
 void QtxActionToolMgr::updateToolBar( const int tId )
 {
   if ( !isUpdatesEnabled() )
@@ -301,34 +442,57 @@ void QtxActionToolMgr::updateToolBar( const int tId )
   simplifySeparators( tb );
 }
 
+/*!
+  Updates all toolbars
+*/
 void QtxActionToolMgr::internalUpdate()
 {
   for ( ToolBarMap::ConstIterator it1 = myToolBars.begin(); it1 != myToolBars.end(); ++it1 )
     updateToolBar( it1.key() );
 }
 
+/*!
+  Removes excess separators from toolbar
+*/
 void QtxActionToolMgr::simplifySeparators( QToolBar* t )
 {
   if ( t )
     Qtx::simplifySeparators( t );
 }
 
+/*!
+  Shows action in all toolbars
+  \param actId - action id
+*/
 void QtxActionToolMgr::show( const int actId )
 {
   setShown( actId, true );
 }
 
+/*!
+  Hides action in all toolbars
+  \param actId - action id
+*/
 void QtxActionToolMgr::hide( const int actId )
 {
   setShown( actId, false );
 }
 
+/*!
+  Changes shown status of action in all toolbars
+  \param id - action id
+  \param on - new shown status
+*/
 void QtxActionToolMgr::setShown( const int id, const bool on )
 {
   for ( ToolBarMap::Iterator it = myToolBars.begin(); it != myToolBars.end(); ++it )
     setVisible( id, it.key(), on );
 }
 
+/*!
+  \return true if action is shown in all toolbars
+  \param id - action id
+*/
 bool QtxActionToolMgr::isShown( const int id ) const
 {
   QPtrList<ToolNode> nodes;
@@ -353,6 +517,11 @@ bool QtxActionToolMgr::isShown( const int id ) const
   return vis;
 }
 
+/*!
+  \return shown status of action in toolbar
+  \param id - action id
+  \param tId - toolbar id
+*/
 bool QtxActionToolMgr::isVisible( const int id, const int tId ) const
 {
   if ( !myToolBars.contains( tId ) )
@@ -369,6 +538,12 @@ bool QtxActionToolMgr::isVisible( const int id, const int tId ) const
   return vis;
 }
 
+/*!
+  Changes action shown status in certain toolbar
+  \param id - action id
+  \param tId - toolbar id
+  \param on - new shown status
+*/
 void QtxActionToolMgr::setVisible( const int id, const int tId, const bool on )
 {
   if ( !myToolBars.contains( tId ) )
@@ -390,6 +565,11 @@ void QtxActionToolMgr::setVisible( const int id, const int tId, const bool on )
     updateToolBar( tId );
 }
 
+/*!
+  Loads toolbar content from file
+  \param fname - file name
+  \param r - reader
+*/
 bool QtxActionToolMgr::load( const QString& fname, QtxActionMgr::Reader& r )
 {
   ToolCreator cr( &r, this );
@@ -398,8 +578,7 @@ bool QtxActionToolMgr::load( const QString& fname, QtxActionMgr::Reader& r )
 
 
 /*!
-       Class: QtxActionToolMgr::ToolCreator
-       Level: Public
+  Constructor
 */
 QtxActionToolMgr::ToolCreator::ToolCreator( QtxActionMgr::Reader* r,
                                             QtxActionToolMgr* mgr )
@@ -408,10 +587,20 @@ QtxActionToolMgr::ToolCreator::ToolCreator( QtxActionMgr::Reader* r,
 {
 }
 
+/*!
+  Destructor
+*/
 QtxActionToolMgr::ToolCreator::~ToolCreator()
 {
 }
 
+/*!
+  Appends new tool buttons
+  \param tag - tag of toolmenu
+  \param subMenu - it has submenu (not used here)
+  \param attr - list of attributes
+  \param pId - id of action corresponding to parent item
+*/
 int QtxActionToolMgr::ToolCreator::append( const QString& tag, const bool subMenu,
                                            const ItemAttributes& attr, const int tId )
 {  
index 48a7227859a079109d8c7c8fac0d484fd19843c7..b86c53f41ba27f27936c4b9f9a507e227f90306d 100644 (file)
@@ -35,10 +35,22 @@ class QMainWindow;
 #pragma warning( disable:4251 )
 #endif
 
+/*!
+  \class QtxActionToolMgr
+  Allows to use set of action to automatically build set of toolbars.
+  With help of methods insert/append/remove it is possible to 
+  describe toolbars and its internal structure.
+  This manager is able to attune toolbar by removing excess separators
+*/
 class QTX_EXPORT QtxActionToolMgr : public QtxActionMgr
 {
   Q_OBJECT
 
+  /*!
+    \class ToolNode
+    Represents a toolbutton inside toolbar
+    For internal purposes only
+  */
   class ToolNode
   {
   public:
@@ -122,6 +134,10 @@ private:
   QMainWindow*    myMainWindow;
 };
 
+/*!
+  \class QtxActionToolMgr::ToolCreator
+  Allows to create automatically toolbar by data read from file
+*/
 class QtxActionToolMgr::ToolCreator : public QtxActionMgr::Creator
 {
 public:
index 7be7ba48d1931e6acb7d4ae81cbb32e1502aa380..1c703dad07b53baff1f4b040d1b38e5358618e5d 100755 (executable)
 
 #include <math.h>
 
-/*********************************************************************
-**  Class:  QtxColorScale
-**  Descr:  Color Scale widget.
-**  Level:  Public
-*********************************************************************/
-
+/*!
+  Constructor
+*/
 QtxColorScale::QtxColorScale( QWidget* parent, const char* name, WFlags f )
 : QFrame( parent, name, f | WResizeNoErase | WRepaintNoErase ),
 myDock( 0 ),
@@ -59,6 +56,9 @@ myFlags( AtBorder | WrapTitle )
        setCaption( tr ( "Color scale" ) );
 }
 
+/*!
+  Constructor
+*/
 QtxColorScale::QtxColorScale( const int num, QWidget* parent, const char* name, WFlags f )
 : QFrame( parent, name, f | WResizeNoErase | WRepaintNoErase ),
 myDock( 0 ),
@@ -80,6 +80,9 @@ myFlags( AtBorder | WrapTitle )
 
 #if QT_VER == 3
 
+/*!
+  Constructor
+*/
 QtxColorScale::QtxColorScale( Dock* dock, const char* name, WFlags f )
 : QFrame( dock, name, f | WResizeNoErase | WRepaintNoErase ),
 myMin( 0.0 ),
@@ -101,107 +104,89 @@ myFlags( AtBorder | WrapTitle )
 
 #endif
 
+/*!
+  Destructor
+*/
 QtxColorScale::~QtxColorScale()
 {
 }
 
-//================================================================
-// Function : minimum
-// Purpose  : Returns minimal limit of scale.
-//================================================================
-
+/*!
+  \returns minimal limit of scale.
+*/
 double QtxColorScale::minimum() const
 {
        return myMin;
 }
 
-//================================================================
-// Function : maximum
-// Purpose  : Returns maximal limit of scale.
-//================================================================
-
+/*!
+  \return maximal limit of scale.
+*/
 double QtxColorScale::maximum() const
 {
        return myMax;
 }
 
-//================================================================
-// Function : range
-// Purpose  : Returns range (minimal and maximal limits) of scale.
-//================================================================
-
+/*!
+  \return range (minimal and maximal limits) of scale.
+*/
 void QtxColorScale::range( double& min, double& max ) const
 {
        min = myMin;
        max = myMax;
 }
 
-//================================================================
-// Function : title
-// Purpose  : Returns the current title string.
-//================================================================
-
+/*!
+  \return the current title string.
+*/
 QString QtxColorScale::title() const
 {
        return myTitle;
 }
 
-//================================================================
-// Function : format
-// Purpose  : Returns the current format of number presentation in
-//            labels for Auto label mode (sprintf specification).
-//================================================================
-
+/*!
+  \returns the current format of number presentation in labels for Auto label mode (sprintf specification).
+*/
 QString QtxColorScale::format() const
 {
        return myFormat;
 }
 
-//================================================================
-// Function : dumpMode
-// Purpose  : Returns dump mode.
-//================================================================
-
+/*!
+  \return dump mode.
+*/
 int QtxColorScale::dumpMode() const
 {
        return myDumpMode;
 }
 
-//================================================================
-// Function : labelMode
-// Purpose  : Returns label mode.
-//================================================================
-
+/*!
+  \return label mode.
+*/
 int QtxColorScale::labelMode() const
 {
        return myLabelMode;
 }
 
-//================================================================
-// Function : colorMode
-// Purpose  : Returns color mode.
-//================================================================
-
+/*!
+  \return color mode.
+*/
 int QtxColorScale::colorMode() const
 {
        return myColorMode;
 }
 
-//================================================================
-// Function : intervalsNumber
-// Purpose  : Returns intervals number of color scale.
-//================================================================
-
+/*!
+  \return intervals number of color scale.
+*/
 int QtxColorScale::intervalsNumber() const
 {
        return myInterval;
 }
 
-//================================================================
-// Function : label
-// Purpose  : Returns the user label of specified interval.
-//================================================================
-
+/*!
+  \return the user label of specified interval.
+*/
 QString QtxColorScale::label( const int idx ) const
 {
        QString res;
@@ -210,11 +195,9 @@ QString QtxColorScale::label( const int idx ) const
        return res;
 }
 
-//================================================================
-// Function : color
-// Purpose  : Returns the user color of specified interval.
-//================================================================
-
+/*!
+  \return the user color of specified interval.
+*/
 QColor QtxColorScale::color( const int idx ) const
 {
        QColor res;
@@ -223,71 +206,57 @@ QColor QtxColorScale::color( const int idx ) const
        return res;
 }
 
-//================================================================
-// Function : labels
-// Purpose  : Returns the user labels.
-//================================================================
-
+/*!
+  \return the user labels.
+*/
 void QtxColorScale::labels( QStringList& list ) const
 {
        list = myLabels;
 }
 
-//================================================================
-// Function : colors
-// Purpose  : Returns the user color.
-//================================================================
-
+/*!
+  \return the user color.
+*/
 void QtxColorScale::colors( QValueList<QColor>& list ) const
 {
        list = myColors;
 }
 
-//================================================================
-// Function : labelPosition
-// Purpose  : Returns the label position.
-//================================================================
-
+/*!
+  \return the label position.
+*/
 int QtxColorScale::labelPosition() const
 {
        return myLabelPos;
 }
 
-//================================================================
-// Function : titlePosition
-// Purpose  : Returns the title position.
-//================================================================
-
+/*!
+  \return the title position.
+*/
 int QtxColorScale::titlePosition() const
 {
        return myTitlePos;
 }
 
-//================================================================
-// Function : setMinimum
-// Purpose  : Sets the minimum limit.
-//================================================================
-
+/*!
+  Sets the minimum limit.
+*/
 void QtxColorScale::setMinimum( const double val )
 {
        setRange( val, maximum() );
 }
 
-//================================================================
-// Function : setMaximum
-// Purpose  : Sets the maximum limit.
-//================================================================
-
+/*!
+  Sets the maximum limit.
+*/
 void QtxColorScale::setMaximum( const double val )
 {
        setRange( minimum(), val );
 }
 
-//================================================================
-// Function : setRange
-// Purpose  : Sets the minimum and maximum limits.
-//================================================================
-
+/*!
+  Sets the minimum and maximum limits.
+*/
 void QtxColorScale::setRange( const double min, const double max )
 {
        if ( myMin == min && myMax == max )
@@ -302,11 +271,9 @@ void QtxColorScale::setRange( const double min, const double max )
                updateScale();
 }
 
-//================================================================
-// Function : setTitle
-// Purpose  : Sets the title string.
-//================================================================
-
+/*!
+  Sets the title string.
+*/
 void QtxColorScale::setTitle( const QString& str )
 {
        if ( myTitle == str )
@@ -316,12 +283,10 @@ void QtxColorScale::setTitle( const QString& str )
        updateScale();
 }
 
-//================================================================
-// Function : setFormat
-// Purpose  : Sets the format of number presentation in labels for
-//            Auto label mode (sprintf specification).
-//================================================================
-
+/*!
+  Sets the format of number presentation in labels for
+  Auto label mode (sprintf specification).
+*/
 void QtxColorScale::setFormat( const QString& format )
 {
        if ( myFormat == format )
@@ -333,11 +298,9 @@ void QtxColorScale::setFormat( const QString& format )
                updateScale();
 }
 
-//================================================================
-// Function : setIntervalsNumber
-// Purpose  : Sets the number of intervals.
-//================================================================
-
+/*!
+  Sets the number of intervals.
+*/
 void QtxColorScale::setIntervalsNumber( const int num )
 {
        if ( myInterval == num || num < 1 )
@@ -349,13 +312,11 @@ void QtxColorScale::setIntervalsNumber( const int num )
        updateScale();
 }
 
-//================================================================
-// Function : setLabel
-// Purpose  : Sets the user label for specified interval. If number
-//            of interval is negative then user label will be added
-//            as new at the end of list.
-//================================================================
-
+/*!
+  Sets the user label for specified interval. If number
+  of interval is negative then user label will be added
+  as new at the end of list.
+*/
 void QtxColorScale::setLabel( const QString& txt, const int idx )
 {
        bool changed = false;
@@ -376,13 +337,11 @@ void QtxColorScale::setLabel( const QString& txt, const int idx )
                updateScale();
 }
 
-//================================================================
-// Function : setColor
-// Purpose  : Sets the user color for specified interval. If number
-//            of interval is negative then user color will be added
-//            as new at the end of list.
-//================================================================
-
+/*!
+  Sets the user color for specified interval. If number
+  of interval is negative then user color will be added
+  as new at the end of list.
+*/
 void QtxColorScale::setColor( const QColor& clr, const int idx )
 {
        bool changed = false;
@@ -403,11 +362,9 @@ void QtxColorScale::setColor( const QColor& clr, const int idx )
                updateScale();
 }
 
-//================================================================
-// Function : setLabels
-// Purpose  : Replace the all user label with specified list.
-//================================================================
-
+/*!
+  Replace the all user label with specified list.
+*/
 void QtxColorScale::setLabels( const QStringList& list )
 {
        if ( list.isEmpty() )
@@ -417,11 +374,9 @@ void QtxColorScale::setLabels( const QStringList& list )
        updateScale();
 }
 
-//================================================================
-// Function : setColors
-// Purpose  : Replace the all user colors with specified list.
-//================================================================
-
+/*!
+  Replace the all user colors with specified list.
+*/
 void QtxColorScale::setColors( const QValueList<QColor>& list )
 {
        if ( list.isEmpty() )
@@ -431,11 +386,9 @@ void QtxColorScale::setColors( const QValueList<QColor>& list )
        updateScale();
 }
 
-//================================================================
-// Function : setColorMode
-// Purpose  : Sets the color mode (Auto or User).
-//================================================================
-
+/*!
+  Sets the color mode (Auto or User).
+*/
 void QtxColorScale::setColorMode( const int mode )
 {
        if ( myColorMode == mode )
@@ -445,21 +398,17 @@ void QtxColorScale::setColorMode( const int mode )
        updateScale();
 }
 
-//================================================================
-// Function : setDumpMode
-// Purpose  : Sets the dump mode.
-//================================================================
-
+/*!
+  Sets the dump mode.
+*/
 void QtxColorScale::setDumpMode( const int mode )
 {
        myDumpMode = mode;
 }
 
-//================================================================
-// Function : setLabelMode
-// Purpose  : Sets the label mode (Auto or User).
-//================================================================
-
+/*!
+  Sets the label mode (Auto or User).
+*/
 void QtxColorScale::setLabelMode( const int mode )
 {
        if ( myLabelMode != mode )
@@ -469,11 +418,9 @@ void QtxColorScale::setLabelMode( const int mode )
        }
 }
 
-//================================================================
-// Function : setLabelPosition
-// Purpose  : Sets the label position.
-//================================================================
-
+/*!
+  Sets the label position.
+*/
 void QtxColorScale::setLabelPosition( const int pos )
 {
        if ( myLabelPos != pos && pos >= None && pos <= Center )
@@ -483,11 +430,9 @@ void QtxColorScale::setLabelPosition( const int pos )
        }
 }
 
-//================================================================
-// Function : setTitlePosition
-// Purpose  : Sets the title position.
-//================================================================
-
+/*!
+  Sets the title position.
+*/
 void QtxColorScale::setTitlePosition( const int pos )
 {
        if ( myTitlePos != pos && pos >= None && pos <= Center )
@@ -497,11 +442,9 @@ void QtxColorScale::setTitlePosition( const int pos )
        }
 }
 
-//================================================================
-// Function : setFlags
-// Purpose  : Set the specified flags.
-//================================================================
-
+/*!
+  Set the specified flags.
+*/
 void QtxColorScale::setFlags( const int flags )
 {
        int prev = myFlags;
@@ -510,21 +453,17 @@ void QtxColorScale::setFlags( const int flags )
                updateScale();
 }
 
-//================================================================
-// Function : testFlags
-// Purpose  : Returns true if specified flags are setted.
-//================================================================
-
+/*!
+  \return true if specified flags are setted.
+*/
 bool QtxColorScale::testFlags( const int flags ) const
 {
        return ( myFlags & flags ) == flags;
 }
 
-//================================================================
-// Function : clearFlags
-// Purpose  : Clear (reset) the specified flags.
-//================================================================
-
+/*!
+  Clear (reset) the specified flags.
+*/
 void QtxColorScale::clearFlags( const int flags )
 {
        int prev = myFlags;
@@ -533,33 +472,27 @@ void QtxColorScale::clearFlags( const int flags )
                updateScale();
 }
 
-//================================================================
-// Function : minimumSizeHint
-// Purpose  : 
-//================================================================
-
+/*!
+  \return minimum size hint
+*/
 QSize QtxColorScale::minimumSizeHint() const
 {
   QSize sz = calculateSize( true, myFlags, titlePosition() != None, labelPosition() != None, true );
        return sz + QSize( frameWidth(), frameWidth() );
 }
 
-//================================================================
-// Function : sizeHint
-// Purpose  : 
-//================================================================
-
+/*!
+  \return size hint
+*/
 QSize QtxColorScale::sizeHint() const
 {
   QSize sz = calculateSize( false, myFlags, titlePosition() != None, labelPosition() != None, true );
        return sz + QSize( frameWidth(), frameWidth() );
 }
 
-//================================================================
-// Function : calculateSize
-// Purpose  : Dump color scale into pixmap with current size.
-//================================================================
-
+/*!
+  Dump color scale into pixmap with current size.
+*/
 QSize QtxColorScale::calculateSize( const bool min, const int flags, const bool title,
                                                                                    const bool labels, const bool colors ) const
 {
@@ -631,11 +564,9 @@ QSize QtxColorScale::calculateSize( const bool min, const int flags, const bool
        return QSize( W, H );
 }
 
-//================================================================
-// Function : dump
-// Purpose  : Dump color scale into pixmap with current size.
-//================================================================
-
+/*!
+  Dump color scale into pixmap with current size.
+*/
 QPixmap QtxColorScale::dump() const
 {
        QPixmap aPix;
@@ -667,11 +598,9 @@ QPixmap QtxColorScale::dump() const
        return aPix;
 }
 
-//================================================================
-// Function : dump
-// Purpose  : Dump color scale into pixmap with specified size.
-//================================================================
-
+/*!
+  Dump color scale into pixmap with specified size.
+*/
 QPixmap QtxColorScale::dump( const int w, const int h ) const
 {
 #if QT_VER < 3
@@ -681,12 +610,9 @@ QPixmap QtxColorScale::dump( const int w, const int h ) const
 #endif
 }
 
-//================================================================
-// Function : dump
-// Purpose  : Dump color scale into pixmap with specified size
-//            and background color.
-//================================================================
-
+/*!
+  Dump color scale into pixmap with specified size and background color.
+*/
 QPixmap QtxColorScale::dump( const QColor& bg, const int w, const int h ) const
 {
        QPixmap aPix;
@@ -724,11 +650,9 @@ QPixmap QtxColorScale::dump( const QColor& bg, const int w, const int h ) const
        return aPix;
 }
 
-//================================================================
-// Function : show
-// Purpose  : Show the color scale. [Reimplemented]
-//================================================================
-
+/*!
+  Show the color scale. [Reimplemented]
+*/
 void QtxColorScale::show()
 {
 #if QT_VER == 3
@@ -739,11 +663,9 @@ void QtxColorScale::show()
        QFrame::show();
 }
 
-//================================================================
-// Function : hide
-// Purpose  : Hides the color scale. [Reimplemented]
-//================================================================
-
+/*!
+  Hides the color scale. [Reimplemented]
+*/
 void QtxColorScale::hide()
 {
 #if QT_VER == 3
@@ -754,11 +676,9 @@ void QtxColorScale::hide()
        QFrame::hide();
 }
 
-//================================================================
-// Function : drawContents
-// Purpose  : Draw color scale contents. [Reimplemented]
-//================================================================
-
+/*!
+  Draw color scale contents. [Reimplemented]
+*/
 void QtxColorScale::drawContents( QPainter* p )
 {
        if ( !isUpdatesEnabled() )
@@ -771,11 +691,9 @@ void QtxColorScale::drawContents( QPainter* p )
                           titlePosition() != None, labelPosition() != None, true );
 }
 
-//================================================================
-// Function : drawScale
-// Purpose  : Draw color scale contents.
-//================================================================
-
+/*!
+  Draw color scale contents.
+*/
 void QtxColorScale::drawScale( QPainter* p, const bool transp, const int X, const int Y,
                                const int W, const int H, const bool title,
                                const bool label, const bool scale ) const
@@ -793,11 +711,9 @@ void QtxColorScale::drawScale( QPainter* p, const bool transp, const int X, cons
        p->drawPixmap( X, Y, cache );
 }
 
-//================================================================
-// Function : drawScale
-// Purpose  : Draw color scale contents.
-//================================================================
-
+/*!
+  Draw color scale contents.
+*/
 void QtxColorScale::drawScale( QPainter* p, const QColor& bg, const bool transp,
                                const int X, const int Y, const int W, const int H,
                                const bool drawTitle, const bool drawLabel, const bool drawColors ) const
@@ -964,11 +880,9 @@ void QtxColorScale::drawScale( QPainter* p, const QColor& bg, const bool transp,
        }
 }
 
-//================================================================
-// Function : getFormat
-// Purpose  : Returns the format for number labels.
-//================================================================
-
+/*!
+  \return the format for number labels.
+*/
 QString QtxColorScale::getFormat() const
 {
        QString aFormat = format();
@@ -1029,11 +943,9 @@ QString QtxColorScale::getFormat() const
        return aFormat;
 }
 
-//================================================================
-// Function : getNumber
-// Purpose  : Returns the number for specified interval.
-//================================================================
-
+/*!
+  \return the number for specified interval.
+*/
 double QtxColorScale::getNumber( const int idx ) const
 {
        double val = 0;
@@ -1042,12 +954,9 @@ double QtxColorScale::getNumber( const int idx ) const
        return val;
 }
 
-//================================================================
-// Function : getLabel
-// Purpose  : Returns the label for specified interval according
-//            to the current label mode.
-//================================================================
-
+/*!
+  \return the label for specified interval according to the current label mode.
+*/
 QString QtxColorScale::getLabel( const int idx ) const
 {
        QString res;
@@ -1061,12 +970,9 @@ QString QtxColorScale::getLabel( const int idx ) const
        return res;
 }
 
-//================================================================
-// Function : getColor
-// Purpose  : Returns the color for specified interval according
-//            to the current color mode.
-//================================================================
-
+/*!
+  \return the color for specified interval according to the current color mode.
+*/
 QColor QtxColorScale::getColor( const int idx ) const
 {
        QColor res;
@@ -1077,24 +983,20 @@ QColor QtxColorScale::getColor( const int idx ) const
        return res;
 }
 
-//================================================================
-// Function : updateScale
-// Purpose  : Update color scale if it required.
-//================================================================
-
+/*!
+  Update color scale if it required.
+*/
 void QtxColorScale::updateScale()
 {
   update();
        updateGeometry();
 }
 
-//================================================================
-// Function : simpleRichText
-// Purpose  : Return QSimpleRichText object for title. If title
-//            not defined (empty string) then return null pointer.
-//            Object should be deleted by caller function.
-//================================================================
-
+/*!
+  \return QSimpleRichText object for title. If title
+  not defined (empty string) then return null pointer.
+  Object should be deleted by caller function.
+*/
 QSimpleRichText* QtxColorScale::simpleRichText( const int flags ) const
 {
        QSimpleRichText* srt = 0;
@@ -1141,17 +1043,14 @@ QSimpleRichText* QtxColorScale::simpleRichText( const int flags ) const
 
 #if QT_VER == 3
 
-/*********************************************************************
-**  Class:  QtxColorScale::Dock
-**  Descr:  Dockable window contains the color scale.
-**  Level:  Public
-*********************************************************************/
-
-//================================================================
-// Function : Dock
-// Purpose  : Constructor.
-//================================================================
+/*!
+  \class QtxColorScale::Dock
+  Dockable window contains the color scale.
+*/
 
+/*!
+  Constructor
+*/
 QtxColorScale::Dock::Dock( Place p, QWidget* parent, const char* name, WFlags f )
 : QDockWindow( p, parent, name, f ),
 myBlockShow( false ),
@@ -1169,30 +1068,24 @@ myBlockResize( false )
        setCaption( tr ( "Color scale" ) );
 }
 
-//================================================================
-// Function : ~Dock
-// Purpose  : Destructor.
-//================================================================
-
+/*!
+  Destructor.
+*/
 QtxColorScale::Dock::~Dock()
 {
 }
 
-//================================================================
-// Function : colorScale
-// Purpose  : Returns color scale widget.
-//================================================================
-
+/*!
+  \return color scale widget.
+*/
 QtxColorScale* QtxColorScale::Dock::colorScale() const
 {
        return myScale;
 }
 
-//================================================================
-// Function : activate
-// Purpose  : Set the dockable window is visible for main window.
-//================================================================
-
+/*!
+  Set the dockable window is visible for main window.
+*/
 void QtxColorScale::Dock::activate()
 {
        if ( myBlockShow )
@@ -1210,11 +1103,9 @@ void QtxColorScale::Dock::activate()
                mw->setAppropriate( this, true );
 }
 
-//================================================================
-// Function : deactivate
-// Purpose  : Set the dockable window is hidden for main window.
-//================================================================
-
+/*!
+  Set the dockable window is hidden for main window.
+*/
 void QtxColorScale::Dock::deactivate()
 {
        if ( myBlockShow )
@@ -1232,11 +1123,9 @@ void QtxColorScale::Dock::deactivate()
                mw->setAppropriate( this, false );
 }
 
-//================================================================
-// Function : isActive
-// Purpose  : Returns true if the dockable window is visible.
-//================================================================
-
+/*!
+  \return true if the dockable window is visible.
+*/
 bool QtxColorScale::Dock::isActive() const
 {
        QMainWindow* mw = 0;
@@ -1253,11 +1142,9 @@ bool QtxColorScale::Dock::isActive() const
                return false;
 }
 
-//================================================================
-// Function : show
-// Purpose  : Reimplemented for internal reasons.
-//================================================================
-
+/*!
+  Redefined show
+*/
 void QtxColorScale::Dock::show()
 {
        bool f = myBlockShow;
@@ -1266,11 +1153,9 @@ void QtxColorScale::Dock::show()
        myBlockShow = f;
 }
 
-//================================================================
-// Function : hide
-// Purpose  : Reimplemented for internal reasons.
-//================================================================
-
+/*!
+  Redefined hide
+*/
 void QtxColorScale::Dock::hide()
 {
        bool f = myBlockShow;
@@ -1279,11 +1164,9 @@ void QtxColorScale::Dock::hide()
        myBlockShow = f;
 }
 
-//================================================================
-// Function : resize
-// Purpose  : Make extent width as maximum value of widget width.
-//================================================================
-
+/*!
+  Make extent width as maximum value of widget width.
+*/
 void QtxColorScale::Dock::resize( int w, int h )
 {
        QDockWindow::resize( w, h );
@@ -1297,11 +1180,10 @@ void QtxColorScale::Dock::resize( int w, int h )
                setFixedExtentHeight( QMAX( fixedExtent().height(), h ) );
 }
 
-//================================================================
-// Function : setOrientation
-// Purpose  : 
-//================================================================
-
+/*!
+  Set orientation
+  \param o - new orientation
+*/
 void QtxColorScale::Dock::setOrientation( Orientation o )
 {
        bool b = myBlockResize;
index fa81c0d1a4fa67f7605a3b1309584f3d2b3e4fb8..164ea91be81ead39b970e6d24b788506cb78b623 100755 (executable)
@@ -38,6 +38,10 @@ class QSimpleRichText;
 #pragma warning( disable:4251 )
 #endif
 
+/*!
+  \class QtxColorScale
+  Color Scale widget.
+*/
 class QTX_EXPORT QtxColorScale : public QFrame
 {
          Q_OBJECT
index 4e7c3b5cb9f17e48266cb8f37399fd6681990ebd..1f4325efdf9b29584de00d6d28f3e79e959ff4f8 100755 (executable)
@@ -25,6 +25,9 @@
 #include <qlineedit.h>
 #include <qvaluelist.h>
 
+/*!
+  Constructor
+*/
 QtxComboBox::QtxComboBox( QWidget* parent, const char* name )
 : QComboBox( parent, name ),
 myCleared( false )
@@ -33,6 +36,9 @@ myCleared( false )
     connect( this, SIGNAL( activated( const QString& ) ), this, SLOT( onActivated( const QString& ) ) );
 }
 
+/*!
+  Constructor
+*/
 QtxComboBox::QtxComboBox( bool rw, QWidget* parent, const char* name )
 : QComboBox( rw, parent, name ),
 myCleared( false )
@@ -41,15 +47,25 @@ myCleared( false )
     connect( this, SIGNAL( activated( const QString& ) ), this, SLOT( onActivated( const QString& ) ) );
 }
 
+/*!
+  Destructor
+*/
 QtxComboBox::~QtxComboBox()
 {
 }
 
+/*!
+  \return true if combobox is cleared
+*/
 bool QtxComboBox::isCleared() const
 {
     return myCleared;
 }
 
+/*!
+  Sets cleared status
+  \param isClear - new status
+*/
 void QtxComboBox::setCleared( const bool isClear )
 {
     if ( myCleared == isClear )
@@ -68,6 +84,10 @@ void QtxComboBox::setCleared( const bool isClear )
     update();
 }
 
+/*!
+  Sets currently selected item
+  \param idx - index of item
+*/
 void QtxComboBox::setCurrentItem( int idx )
 {
     if ( idx < 0 || idx >= count() )
@@ -77,6 +97,10 @@ void QtxComboBox::setCurrentItem( int idx )
     QComboBox::setCurrentItem( idx );
 }
 
+/*!
+  Sets current text
+  \param txt - new current text
+*/
 void QtxComboBox::setCurrentText( const QString& txt )
 {
     myCleared = false;
@@ -96,16 +120,25 @@ void QtxComboBox::setCurrentText( const QString& txt )
 #endif
 }
 
+/*!
+  \return current selected id
+*/
 int QtxComboBox::currentId() const
 {
     return id( currentItem() );
 }
 
+/*!
+  Sets current selected id
+*/
 void QtxComboBox::setCurrentId( int num )
 {
     setCurrentItem( index( num ) );
 }
 
+/*!
+  Custom paint event handler
+*/
 void QtxComboBox::paintEvent( QPaintEvent* e )
 {
     if ( !count() || !myCleared || editable() )
@@ -114,6 +147,10 @@ void QtxComboBox::paintEvent( QPaintEvent* e )
         paintClear( e );
 }
 
+/*!
+  SLOT: called if some item is activated
+  \param idx - index of activated item
+*/
 void QtxComboBox::onActivated( int idx )
 {
     resetClear();
@@ -122,11 +159,16 @@ void QtxComboBox::onActivated( int idx )
         emit activatedId( myIndexId[idx] );
 }
 
-void QtxComboBox::onActivated( const QString& )
+/*!
+  SLOT: called if some item is activated
+*/void QtxComboBox::onActivated( const QString& )
 {
     resetClear();
 }
 
+/*!
+  Strips "cleared" state and updates
+*/
 void QtxComboBox::resetClear()
 {
     if ( !myCleared )
@@ -136,6 +178,9 @@ void QtxComboBox::resetClear()
     update();
 }
 
+/*!
+  Draws combobox when it is cleared or isn't editable
+*/
 void QtxComboBox::paintClear( QPaintEvent* e )
 {
     int curIndex = currentItem();
@@ -159,6 +204,9 @@ void QtxComboBox::paintClear( QPaintEvent* e )
     setUpdatesEnabled( upd );
 }
 
+/*!
+  \return id by index
+*/
 int QtxComboBox::id( const int idx ) const
 {
     int id = -1;
@@ -167,6 +215,9 @@ int QtxComboBox::id( const int idx ) const
     return id;
 }
 
+/*!
+  \return index by id
+*/
 int QtxComboBox::index( const int id ) const
 {
     int idx = -1;
index b10c28bd60a50f80c43cf296da104ecf37aac0e4..6c3655240cd0f028138c9ed2b12943bb4cb4f046 100755 (executable)
 
 #include <float.h>
 
-/*
-       Class: QtxDblSpinBox::Validator [internal]
-       Descr: Validator for QtxDblSpinBox (getted from Trolltech Qt - SpinBoxValidator)
+/*!
+  \class  QtxDblSpinBox::Validator [internal]
+  Validator for QtxDblSpinBox (getted from Trolltech Qt - SpinBoxValidator)
 */
-
 class QtxDblSpinBox::Validator : public QDoubleValidator
 {
 public:
@@ -44,6 +43,10 @@ private:
     QtxDblSpinBox* spinBox;
 };
 
+
+/*!
+  Checks string and \return QValidator::State
+*/
 QValidator::State QtxDblSpinBox::Validator::validate( QString& str, int& pos ) const
 {
   QString pref = spinBox->prefix();
@@ -84,11 +87,9 @@ QValidator::State QtxDblSpinBox::Validator::validate( QString& str, int& pos ) c
   return state;
 }
 
-/*
-       Class: QtxDblSpinBox
-       Descr: Spin box for real numbers.
+/*!
+  Constructor
 */
-
 QtxDblSpinBox::QtxDblSpinBox( QWidget* parent, const char* name )
 : QSpinBox( parent, name ),
 myCleared( false ),
@@ -106,6 +107,9 @@ myPrecision( 0 )
   connect( editor(), SIGNAL( textChanged( const QString& ) ), this, SLOT( onTextChanged( const QString& ) ) );
 }
 
+/*!
+  Constructor
+*/
 QtxDblSpinBox::QtxDblSpinBox( double min, double max, double step, QWidget* parent, const char* name )
 : QSpinBox( parent, name ),
 myMin( min ),
@@ -123,25 +127,42 @@ myPrecision( 0 )
   connect( editor(), SIGNAL( textChanged( const QString& ) ), this, SLOT( onTextChanged( const QString& ) ) );
 }
 
+/*!
+  Destructor
+*/
 QtxDblSpinBox::~QtxDblSpinBox()
 {
 }
 
+/*!
+  \return min value of spin box
+*/
 double QtxDblSpinBox::minValue() const
 {
   return myMin;
 }
 
+/*!
+  \return max value of spin box
+*/
 double QtxDblSpinBox::maxValue() const
 {
   return myMax;
 }
 
+/*!
+  Changes min value of spin box
+  \param min - new min value
+*/
 void QtxDblSpinBox::setMinValue( int min )
 {
        setMinValue( (double)min );
 }
 
+/*!
+  Changes min value of spin box
+  \param min - new min value
+*/
 void QtxDblSpinBox::setMinValue( double min )
 {
   if ( myMin != min )
@@ -151,11 +172,19 @@ void QtxDblSpinBox::setMinValue( double min )
   }
 }
 
+/*!
+  Changes max value of spin box
+  \param max - new max value
+*/
 void QtxDblSpinBox::setMaxValue( int max )
 {
        setMaxValue( (double)max );
 }
 
+/*!
+  Changes max value of spin box
+  \param max - new max value
+*/
 void QtxDblSpinBox::setMaxValue( double max )
 {
   if ( myMax != max )
@@ -165,11 +194,21 @@ void QtxDblSpinBox::setMaxValue( double max )
   }
 }
 
+/*!
+  Changes min and max value of spin box
+  \param min - new min value
+  \param max - new max value
+*/
 void QtxDblSpinBox::setRange( int min, int max )
 {
        setRange( (double)min, (double)max );
 }
 
+/*!
+  Changes min and max value of spin box
+  \param min - new min value
+  \param max - new max value
+*/
 void QtxDblSpinBox::setRange( double min, double max )
 {
   if ( myMin != min || myMax != max )
@@ -180,21 +219,35 @@ void QtxDblSpinBox::setRange( double min, double max )
   }
 }
 
+/*!
+  \return step of spin box
+*/
 double QtxDblSpinBox::lineStep() const
 {
   return myStep;
 }
 
+/*!
+  Changes step of spin box
+  \param step - new step
+*/
 void QtxDblSpinBox::setLineStep( int step )
 {
   setLineStep( (double)step );
 }
 
+/*!
+  Changes step of spin box
+  \param step - new step
+*/
 void QtxDblSpinBox::setLineStep( double step )
 {
   myStep = step;
 }
 
+/*!
+  \return value of spin box
+*/
 double QtxDblSpinBox::value() const
 {
   QSpinBox::value();
@@ -202,11 +255,19 @@ double QtxDblSpinBox::value() const
   return myValue;
 }
 
+/*!
+  Changes value of spin box
+  \param val - new value of spin box
+*/
 void QtxDblSpinBox::setValue( int val )
 {
        setValue( (double)val );
 }
 
+/*!
+  Changes value of spin box
+  \param val - new value of spin box
+*/
 void QtxDblSpinBox::setValue( double val )
 {
        myCleared = false;
@@ -216,6 +277,9 @@ void QtxDblSpinBox::setValue( double val )
     valueChange();
 }
 
+/*!
+  Adds step to value
+*/
 void QtxDblSpinBox::stepUp()
 {
        interpretText();
@@ -225,6 +289,9 @@ void QtxDblSpinBox::stepUp()
                setValue( myValue + myStep );
 }
 
+/*!
+  Subtracks step from value
+*/
 void QtxDblSpinBox::stepDown()
 {
        interpretText();
@@ -234,11 +301,18 @@ void QtxDblSpinBox::stepDown()
                setValue( myValue - myStep );
 }
 
+/*!
+  \return number of digit after comma
+*/
 int QtxDblSpinBox::precision() const
 {
        return myPrecision;
 }
 
+/*!
+  Changes number of digit after comma
+  \param prec - new digit number
+*/
 void QtxDblSpinBox::setPrecision( const int prec )
 {
        int newPrec = QMAX( prec, 0 );
@@ -248,11 +322,18 @@ void QtxDblSpinBox::setPrecision( const int prec )
                updateDisplay();
 }
 
+/*!
+  \return true if spin box is cleared
+*/
 bool QtxDblSpinBox::isCleared() const
 {
        return myCleared;
 }
 
+/*!
+  Changes cleared status of spin box
+  \param on - new status
+*/
 void QtxDblSpinBox::setCleared( const bool on )
 {
        if ( myCleared == on )
@@ -262,6 +343,9 @@ void QtxDblSpinBox::setCleared( const bool on )
        updateDisplay();
 }
 
+/*!
+  Selects all content of spin box editor
+*/
 void QtxDblSpinBox::selectAll()
 {
 #if QT_VER >= 3
@@ -271,6 +355,9 @@ void QtxDblSpinBox::selectAll()
 #endif
 }
 
+/*!
+  Custom event filter, updates text of spin box editor
+*/
 bool QtxDblSpinBox::eventFilter( QObject* o, QEvent* e )
 {
   if ( !myCleared || o != editor() || !editor()->text().stripWhiteSpace().isEmpty() )
@@ -294,6 +381,9 @@ bool QtxDblSpinBox::eventFilter( QObject* o, QEvent* e )
   return QSpinBox::eventFilter( o, e );
 }
 
+/*!
+  Updates text of editor
+*/
 void QtxDblSpinBox::updateDisplay()
 {
   if ( myBlocked )
@@ -332,6 +422,9 @@ void QtxDblSpinBox::updateDisplay()
   myBlocked = isBlock;
 }
 
+/*!
+  Sets double value by text in editor
+*/
 void QtxDblSpinBox::interpretText()
 {
   myCleared = false;
@@ -356,6 +449,9 @@ void QtxDblSpinBox::interpretText()
   updateDisplay();
 }
 
+/*!
+  Emits signal "valueChanged"
+*/
 void QtxDblSpinBox::valueChange()
 {
   updateDisplay();
@@ -363,6 +459,9 @@ void QtxDblSpinBox::valueChange()
   emit valueChanged( currentValueText() );
 }
 
+/*!
+  Attune parameters on range changing
+*/
 void QtxDblSpinBox::rangeChange()
 {
   double min = QMIN( myMin, myMax );
@@ -382,6 +481,9 @@ void QtxDblSpinBox::rangeChange()
   updateDisplay();
 }
 
+/*!
+  \return text of editor
+*/
 QString QtxDblSpinBox::currentValueText()
 {
   QString s;
@@ -396,6 +498,10 @@ QString QtxDblSpinBox::currentValueText()
   return s;
 }
 
+/*!
+  Converts number to string
+  \param v - number to be converted
+*/
 QString QtxDblSpinBox::mapValueToText( double v )
 {
        QString s;
@@ -403,6 +509,9 @@ QString QtxDblSpinBox::mapValueToText( double v )
   return removeTrailingZeroes( s );
 }
 
+/*!
+  Converts value to string
+*/
 QString QtxDblSpinBox::mapValueToText( int )
 {
   QString s;
@@ -410,6 +519,9 @@ QString QtxDblSpinBox::mapValueToText( int )
   return removeTrailingZeroes( s );
 }
 
+/*!
+  Converts current text of editor to double
+*/
 double QtxDblSpinBox::mapTextToDoubleValue( bool* ok )
 {
   QString s = text();
@@ -422,6 +534,10 @@ double QtxDblSpinBox::mapTextToDoubleValue( bool* ok )
   return newVal;
 }
 
+/*!
+  \return value corrected in accordance with borders
+  \param val - value to be corrected
+*/
 double QtxDblSpinBox::bound( double val )
 {
   double newVal = val;
@@ -432,12 +548,18 @@ double QtxDblSpinBox::bound( double val )
   return newVal;
 }
 
+/*!
+  Custom handler for leave event
+*/
 void QtxDblSpinBox::leaveEvent( QEvent* e )
 {
        if ( !myCleared )
                QSpinBox::leaveEvent( e );
 }
 
+/*!
+  Custom handler for wheel event
+*/
 void QtxDblSpinBox::wheelEvent( QWheelEvent* e )
 {
   if ( !isEnabled() )
@@ -447,12 +569,18 @@ void QtxDblSpinBox::wheelEvent( QWheelEvent* e )
   updateDisplay();
 }
 
+/*!
+  SLOT: called if text is changed
+*/
 void QtxDblSpinBox::onTextChanged( const QString& str )
 {
   if ( !myBlocked )
     myCleared = false;
 }
 
+/*!
+  \return string without excess zeros in start and in end
+*/
 QString QtxDblSpinBox::removeTrailingZeroes( const QString& src ) const
 {
   QString delim( "." );
index e59fe4f3d2863021cce4016e8c611465eb6c3fae..d145390e00ae187ac41afd3c53b7713ca5007eb6 100755 (executable)
 
 #include <qspinbox.h>
 
+/*!
+  \class  QtxDblSpinBox
+  Spin box for real numbers.
+*/
 class QTX_EXPORT QtxDblSpinBox : public QSpinBox
 {
   Q_OBJECT
index 2769fd4060bd6f46b765f62c022d4da74d7c8b0d..4b204f8db9f6d29f6157d345b8da2d04bf1f6105 100644 (file)
 
 #include "QtxDblValidator.h"
 
+/*!
+  Constructor
+  \param bot - minimal possible value
+  \param top - maximal possible value
+  \param dec - number of digits
+  \param o - parent object
+  \param name - name of validator
+*/
 QtxDblValidator::QtxDblValidator( const double bot, const double top, const int dec,
                                  QObject* o, const char* name )
 : QDoubleValidator( bot, top, dec, o, name )
 {
 }
 
+/*!
+  Destructor
+*/
 QtxDblValidator::~QtxDblValidator()
 {
 }
 
+/*!
+  Corrects string: if it represent double value less then bottom, it becomes equal to bottom,
+  if it is more then top, it becomes equal to top, if it isn't number is becomes '0'
+*/
 void QtxDblValidator::fixup( QString& str ) const
 {
   bool ok = false;
index 347479e55e750abf86f45059958bee56275ad4c3..5bbc1f79b2f47ca47bcbf1f74ce33749be37d08c 100755 (executable)
@@ -33,7 +33,6 @@
        Class: QtxDialog::Area
        Level: Internal
 */
-
 class QtxDialog::Area : public QFrame
 {
 public:
@@ -68,6 +67,9 @@ private:
        Orientation              myOrientation;
 };
 
+/*!
+  Contructor
+*/
 QtxDialog::Area::Area( Orientation o, QtxDialog* dlg, QWidget* parent )
 : QFrame( parent ),
 myDlg( dlg ),
@@ -84,10 +86,17 @@ myOrientation( o )
        hide();
 }
 
+/*!
+  Destructor
+*/
 QtxDialog::Area::~Area()
 {
 }
 
+/*!
+  Inserts button to area
+  \param b - button
+*/
 void QtxDialog::Area::insertButton( QButton* b )
 {
        if ( !b || myButtons.findRef( b ) != -1 )
@@ -108,6 +117,10 @@ void QtxDialog::Area::insertButton( QButton* b )
        updateBorder();
 }
 
+/*!
+  Removes button from area
+  \param b - button
+*/
 void QtxDialog::Area::removeButton( QButton* b )
 {
        if ( !b )
@@ -126,16 +139,27 @@ void QtxDialog::Area::removeButton( QButton* b )
        layoutButtons();
 }
 
+/*!
+  \return true if area contains button
+  \param b - button
+*/
 bool QtxDialog::Area::contains( QButton* b ) const
 {
        return myButtons.containsRef( b );
 }
 
+/*!
+  \return policy of button layouting.
+*/
 int QtxDialog::Area::policy() const
 {
        return myPolicy;
 }
 
+/*!
+  Changes policy of button layouting.
+  \param p - new policy
+*/
 void QtxDialog::Area::setPolicy( const int p )
 {
        if ( myPolicy == p )
@@ -145,11 +169,18 @@ void QtxDialog::Area::setPolicy( const int p )
        layoutButtons();
 }
 
+/*!
+  \return true if border enabled
+*/
 bool QtxDialog::Area::isBorderEnabled() const
 {
        return myLine && myBorder;
 }
 
+/*!
+  Enables/disable separator between main frame and button frame
+  \param on - new state
+*/
 void QtxDialog::Area::setBorderEnabled( const bool on )
 {
        if ( !myLine || myBorder == on )
@@ -159,6 +190,10 @@ void QtxDialog::Area::setBorderEnabled( const bool on )
        updateBorder();
 }
 
+/*!
+  Sets label as separator between main frame and button frame
+  \param line - new separator
+*/
 void QtxDialog::Area::setBorderWidget( QLabel* line )
 {
        if ( myLine == line )
@@ -169,11 +204,17 @@ void QtxDialog::Area::setBorderWidget( QLabel* line )
        updateBorder();
 }
 
+/*!
+  \return const reference to list of buttons
+*/
 const QPtrList<QButton>& QtxDialog::Area::buttons() const
 {
        return myButtons;
 }
 
+/*!
+  Updates visibility of border
+*/
 void QtxDialog::Area::updateBorder()
 {
        if ( !myLine )
@@ -192,6 +233,9 @@ void QtxDialog::Area::updateBorder()
        myLine->setLineWidth( myBorder ? 1 : 0 );
 }
 
+/*!
+  Installs buttons into layout
+*/
 void QtxDialog::Area::layoutButtons()
 {
        int aPolicy = policy();
@@ -285,11 +329,12 @@ void QtxDialog::Area::layoutButtons()
   Qtx::setTabOrder( wids );
 }
 
+
 /*!
-       Class: QtxDialog::Border
-       Level: Internal
-*/
+  \class QtxDialog::Border
 
+  Special label used as separator between main frame and button frame
+*/
 class QtxDialog::Border : public QLabel
 {
 public:
@@ -302,16 +347,26 @@ public:
        virtual QSize minimumSizeHint() const;
 };
 
+/*!
+  Constructor
+*/
 QtxDialog::Border::Border( QWidget* parent )
 : QLabel( parent )
 {
     setAlignment( Qt::AlignCenter );
 }
 
+/*!
+  Destructor
+*/
 QtxDialog::Border::~Border()
 {
 }
 
+/*!
+  Set line width of separator
+  \param lw - new line width
+*/
 void QtxDialog::Border::setLineWidth( int lw )
 {
   bool isOn = lineWidth() > 0;
@@ -322,6 +377,9 @@ void QtxDialog::Border::setLineWidth( int lw )
     updateGeometry();
 }
 
+/*!
+  \return the recommended size for the widget
+*/
 QSize QtxDialog::Border::sizeHint() const
 {
   QSize sz( 5, 5 );
@@ -339,26 +397,22 @@ QSize QtxDialog::Border::sizeHint() const
   return sz;
 }
 
+/*!
+  \return the recommended minimum size for the widget
+*/
 QSize QtxDialog::Border::minimumSizeHint() const
 {
        return sizeHint();
 }
 
 /*!
-       Class: QtxDialog
-       Level: Public
+  Constructor
+  Construct a dialog with specified parent and name.
+  \param modal define modal status of dialog (default non modal dialog created).
+  \param allowResize - if it is true then dialog can be resize by user (default non resizable dialog created).
+  \param Button flags specified control buttons for dialog (default buttons is OK, Cancel and Help).
+  \param Widget flags used as in any widget.
 */
-
-/*!
-       Name: QtxDialog [public]
-       Desc: Construct a dialog with specified parent and name.
-          Parameter 'modal' define modal status of dialog (default non modal
-                 dialog created). If parameter 'allowResize' is true then dialog
-                 can be resize by user (default non resizable dialog created).
-                 Button flags specified control buttons for dialog (default buttons
-                 is OK, Cancel and Help). Widget flags used as in any widget.
-*/
-
 QtxDialog::QtxDialog( QWidget* parent, const char* name,
                                          bool modal, bool allowResize, const int f, WFlags wf )
 : QDialog( parent, name, modal,
index 0a02955594b27611f7a77b21dc2d4d145405e22b..a8b7ddf7cf5c46a14c3a92399190ee8260723701 100755 (executable)
@@ -255,6 +255,10 @@ bool QtxDockAction::removeFrom( QWidget* wid )
   return QtxAction::removeFrom( wid );
 }
 
+/*!
+  Sets menu text of action
+  \param txt - new menu text
+*/
 void QtxDockAction::setMenuText( const QString& txt )
 {
   if ( menuText() == txt )
@@ -721,6 +725,11 @@ void QtxDockAction::dockWindows( QPtrList<QDockWindow>& lst, QMainWindow* main )
   delete objs;
 }
 
+/*!
+  \return true if main window is parent of object
+  \param mw - main window
+  \param win - object
+*/
 bool QtxDockAction::dockMainWindow( QMainWindow* mw, QObject* win ) const
 {
   if ( !mw || !win )
@@ -1251,6 +1260,9 @@ void QtxDockAction::collectNames( const int place, QStringList& lst ) const
   }
 }
 
+/*!
+  Updates menu of action
+*/
 void QtxDockAction::updateMenus()
 {
   for ( MenuMap::Iterator it = myMenu.begin(); it != myMenu.end(); ++it )
index 9872d850582570bdc35511f2b5f71899678f32ca..df05b42dc4417137f1ec2f53e5128f834df4d1e1 100644 (file)
 #include <qapplication.h>
 
 /*!
-    Class: QtxDockWindow::Watcher [Internal]
-    Descr: Internal object with event filter.
+  \class QtxDockWindow::Watcher [Internal]
+  Internal object with event filter.
 */
-
 class QtxDockWindow::Watcher : public QObject
 {
 public:
@@ -62,6 +61,9 @@ private:
   bool           myVisible;
 };
 
+/*!
+  Constructor
+*/
 QtxDockWindow::Watcher::Watcher( QtxDockWindow* cont )
 : QObject( cont ), myCont( cont ),
 myState( true ),
@@ -76,6 +78,9 @@ myEmpty( true )
   installFilters();
 }
 
+/*!
+  Custom event filter
+*/
 bool QtxDockWindow::Watcher::eventFilter( QObject* o, QEvent* e )
 {
   if ( o == myCont &&
@@ -98,6 +103,9 @@ bool QtxDockWindow::Watcher::eventFilter( QObject* o, QEvent* e )
   return false;
 }
 
+/*!
+  Sets internal status to shown
+*/
 void QtxDockWindow::Watcher::shown( QtxDockWindow* dw )
 {
   if ( dw != myCont )
@@ -106,6 +114,9 @@ void QtxDockWindow::Watcher::shown( QtxDockWindow* dw )
   myVisible = true;
 }
 
+/*!
+  Sets internal status to hidden
+*/
 void QtxDockWindow::Watcher::hided( QtxDockWindow* dw )
 {
   if ( dw != myCont )
@@ -114,6 +125,9 @@ void QtxDockWindow::Watcher::hided( QtxDockWindow* dw )
   myVisible = false;
 }
 
+/*!
+  Shows corresponding dock window
+*/
 void QtxDockWindow::Watcher::showContainer()
 {
   if ( !myCont )
@@ -125,6 +139,9 @@ void QtxDockWindow::Watcher::showContainer()
   myCont = cont;
 }
 
+/*!
+  Hides corresponding dock window
+*/
 void QtxDockWindow::Watcher::hideContainer()
 {
   if ( !myCont )
@@ -136,6 +153,9 @@ void QtxDockWindow::Watcher::hideContainer()
   myCont = cont;
 }
 
+/*!
+  Event filter of custom events
+*/
 void QtxDockWindow::Watcher::customEvent( QCustomEvent* e )
 {
   installFilters();
@@ -145,6 +165,9 @@ void QtxDockWindow::Watcher::customEvent( QCustomEvent* e )
   updateVisibility();
 }
 
+/*!
+  Installs this object as event filter to all widgets inside corresponding main window
+*/
 void QtxDockWindow::Watcher::installFilters()
 {
   if ( !myCont )
@@ -161,6 +184,9 @@ void QtxDockWindow::Watcher::installFilters()
   }
 }
 
+/*!
+  Updates visibility of all widgets inside corresponding main window
+*/
 void QtxDockWindow::Watcher::updateVisibility()
 {
   if ( !myCont )
@@ -192,6 +218,9 @@ void QtxDockWindow::Watcher::updateVisibility()
     vis ? showContainer() : hideContainer();
 }
 
+/*!
+  Updates icon of corresponding main window
+*/
 void QtxDockWindow::Watcher::updateIcon()
 {
   if ( !myCont || !myCont->widget() )
@@ -201,6 +230,9 @@ void QtxDockWindow::Watcher::updateIcon()
   myCont->setIcon( ico ? *ico : QPixmap() );
 }
 
+/*!
+  Updates caption of corresponding main window
+*/
 void QtxDockWindow::Watcher::updateCaption()
 {
   if ( myCont && myCont->widget() && !myCont->widget()->caption().isNull() )
@@ -208,10 +240,8 @@ void QtxDockWindow::Watcher::updateCaption()
 }
 
 /*!
-    Class: QtxDockWindow [Public]
-    Descr: 
+  Constructor
 */
-
 QtxDockWindow::QtxDockWindow( Place p, QWidget* parent, const char* name, WFlags f )
 : QDockWindow( p, parent, name, f ),
 myWatcher( 0 ),
@@ -219,6 +249,9 @@ myStretch( false )
 {
 }
 
+/*!
+  Constructor
+*/
 QtxDockWindow::QtxDockWindow( const bool watch, QWidget* parent, const char* name, WFlags f )
 : QDockWindow( InDock, parent, name, f ),
 myWatcher( 0 ),
@@ -228,6 +261,9 @@ myStretch( false )
     myWatcher = new Watcher( this );
 }
 
+/*!
+  Constructor
+*/
 QtxDockWindow::QtxDockWindow( QWidget* parent, const char* name, WFlags f )
 : QDockWindow( InDock, parent, name, f ),
 myWatcher( 0 ),
@@ -235,10 +271,17 @@ myStretch( false )
 {
 }
 
+/*!
+  Destructor
+*/
 QtxDockWindow::~QtxDockWindow()
 {
 }
 
+/*!
+  Sets the dock window's main widget
+  \param wid - new main widget
+*/
 void QtxDockWindow::setWidget( QWidget* wid )
 {
   if ( wid )
@@ -247,11 +290,18 @@ void QtxDockWindow::setWidget( QWidget* wid )
   QDockWindow::setWidget( wid );
 }
 
+/*!
+  \return true if the dock window is stretchable
+*/
 bool QtxDockWindow::isStretchable() const
 {
   return myStretch;
 }
 
+/*!
+  Sets the dock window "stretchable" state
+  \param on - new state
+*/
 void QtxDockWindow::setStretchable( const bool on )
 {
   if ( myStretch == on )
@@ -271,6 +321,9 @@ void QtxDockWindow::setStretchable( const bool on )
   }
 }
 
+/*!
+  \return the recommended size for the widget
+*/
 QSize QtxDockWindow::sizeHint() const
 {
   QSize sz = QDockWindow::sizeHint();
@@ -286,6 +339,9 @@ QSize QtxDockWindow::sizeHint() const
   return sz;
 }
 
+/*!
+  \return the recommended minimum size for the widget
+*/
 QSize QtxDockWindow::minimumSizeHint() const
 {
   QSize sz = QDockWindow::minimumSizeHint();
@@ -306,6 +362,9 @@ QSize QtxDockWindow::minimumSizeHint() const
   return sz;
 }
 
+/*!
+  \return corresponding main window
+*/
 QMainWindow* QtxDockWindow::mainWindow() const
 {
   QMainWindow* mw = 0;
@@ -321,6 +380,9 @@ QMainWindow* QtxDockWindow::mainWindow() const
   return mw;
 }
 
+/*!
+  Shows window
+*/
 void QtxDockWindow::show()
 {
   if ( myWatcher )
@@ -329,6 +391,9 @@ void QtxDockWindow::show()
   QDockWindow::show();
 }
 
+/*!
+  Hides window
+*/
 void QtxDockWindow::hide()
 {
   if ( myWatcher )
index 51732dc7509de50b70bb58161ff593c477041538..801c3a599e2d605867252568839c4ea36e4d2614 100644 (file)
 #include <qapplication.h>
 #include <qobjectlist.h>
 
+/*!
+  Constructor
+*/
 QtxGroupBox::QtxGroupBox( QWidget* parent, const char* name )
 : QGroupBox( parent, name ),
 myContainer( 0 )
 {
 }
 
+/*!
+  Constructor
+*/
 QtxGroupBox::QtxGroupBox( const QString& title, QWidget* parent, const char* name )
 : QGroupBox( title, parent, name ),
 myContainer( 0 )
@@ -40,6 +46,9 @@ myContainer( 0 )
   initialize();
 }
 
+/*!
+  Constructor
+*/
 QtxGroupBox::QtxGroupBox( int strips, Orientation o, QWidget* parent, const char* name )
 : QGroupBox( strips, o, parent, name ),
 myContainer( 0 )
@@ -47,6 +56,9 @@ myContainer( 0 )
   initialize();
 }
 
+/*!
+  Constructor
+*/
 QtxGroupBox::QtxGroupBox( int strips, Orientation o, const QString& title,
                                           QWidget* parent, const char* name )
 : QGroupBox( strips, o, title, parent, name ),
@@ -55,11 +67,17 @@ myContainer( 0 )
   initialize();
 }
 
+/*!
+  Destructor
+*/
 QtxGroupBox::~QtxGroupBox()
 {
   delete myContainer;
 }
 
+/*!
+  Creates horizontal box as container
+*/
 void QtxGroupBox::initialize()
 {
   myContainer = new QHBox( this, 0, WStyle_Customize | WStyle_NoBorderEx | WStyle_Tool );
@@ -69,6 +87,9 @@ void QtxGroupBox::initialize()
 
 #if QT_VER < 3
 
+/*!
+  \return the width of the empty space between the items in the group and the frame of the group
+*/
 int QtxGroupBox::insideMargin() const
 {
   int m = 0;
@@ -77,6 +98,9 @@ int QtxGroupBox::insideMargin() const
   return m;
 }
 
+/*!
+  \return the width of the empty space between each of the items in the group
+*/
 int QtxGroupBox::insideSpacing() const
 {
   int s = 0;
@@ -85,12 +109,18 @@ int QtxGroupBox::insideSpacing() const
   return s;
 }
 
+/*!
+  Sets the width of the empty space between the items in the group and the frame of the group
+*/
 void QtxGroupBox::setInsideMargin( int m )
 {
   if ( layout() )
     layout()->setMargin( m );
 }
 
+/*!
+  Sets the width of the empty space between each of the items in the group
+*/
 void QtxGroupBox::setInsideSpacing( int s )
 {
   if ( layout() )
@@ -99,6 +129,10 @@ void QtxGroupBox::setInsideSpacing( int s )
 
 #endif
 
+/*!
+  Inserts title widget
+  \param wid - new title widget
+*/
 void QtxGroupBox::insertTitleWidget( QWidget* wid )
 {
   if ( !myContainer )
@@ -110,6 +144,10 @@ void QtxGroupBox::insertTitleWidget( QWidget* wid )
   updateTitle();
 }
 
+/*!
+  Removes title widget
+  \param wid - title widget
+*/
 void QtxGroupBox::removeTitleWidget( QWidget* wid )
 {
   if ( !myContainer || wid->parentWidget() != myContainer )
@@ -121,6 +159,9 @@ void QtxGroupBox::removeTitleWidget( QWidget* wid )
   updateTitle();
 }
 
+/*!
+  Calculates margin
+*/
 void QtxGroupBox::adjustInsideMargin()
 {
   QApplication::sendPostedEvents( myContainer, QEvent::ChildInserted );
@@ -130,6 +171,9 @@ void QtxGroupBox::adjustInsideMargin()
   setInsideMargin( myContainer->height() );
 }
 
+/*!
+  Sets the alignment of the group box title
+*/
 void QtxGroupBox::setAlignment( int align )
 {
   QGroupBox::setAlignment( align );
@@ -137,6 +181,9 @@ void QtxGroupBox::setAlignment( int align )
   updateTitle();
 }
 
+/*!
+  Sets title of groop box
+*/
 void QtxGroupBox::setTitle( const QString& title )
 {
   QGroupBox::setTitle( title );
@@ -144,6 +191,11 @@ void QtxGroupBox::setTitle( const QString& title )
   updateTitle();
 }
 
+/*!
+  Changes the layout of the group box
+  \param strips - number of column/rows
+  \param o - orientation
+*/
 void QtxGroupBox::setColumnLayout( int strips, Orientation o )
 {
   if ( myContainer )
@@ -157,6 +209,9 @@ void QtxGroupBox::setColumnLayout( int strips, Orientation o )
   updateTitle();
 }
 
+/*!
+  Shows group box
+*/
 void QtxGroupBox::show()
 {
   QGroupBox::show();
@@ -164,6 +219,9 @@ void QtxGroupBox::show()
   updateTitle();
 }
 
+/*!
+  Updates group box
+*/
 void QtxGroupBox::update()
 {
   QGroupBox::update();
@@ -171,6 +229,9 @@ void QtxGroupBox::update()
   updateTitle();
 }
 
+/*!
+  \return the recommended size for the widget
+*/
 QSize QtxGroupBox::sizeHint() const
 {
   QSize sz = QGroupBox::sizeHint();
@@ -190,6 +251,9 @@ QSize QtxGroupBox::sizeHint() const
   return QSize( QMAX( sz.width(), sw ), sz.height() );
 }
 
+/*!
+  \return the recommended minimum size for the widget
+*/
 QSize QtxGroupBox::minimumSizeHint() const
 {
   QSize sz = QGroupBox::minimumSizeHint();
@@ -209,6 +273,9 @@ QSize QtxGroupBox::minimumSizeHint() const
   return QSize( QMAX( sz.width(), sw ), sz.height() );
 }
 
+/*!
+  Custom event filter
+*/
 bool QtxGroupBox::eventFilter( QObject* obj, QEvent* e )
 {
   QEvent::Type type = e->type();
@@ -220,6 +287,9 @@ bool QtxGroupBox::eventFilter( QObject* obj, QEvent* e )
   return QGroupBox::eventFilter( obj, e );
 }
 
+/*!
+  Custom resize event filter
+*/
 void QtxGroupBox::resizeEvent( QResizeEvent* e )
 {
   QGroupBox::resizeEvent( e );
@@ -227,6 +297,9 @@ void QtxGroupBox::resizeEvent( QResizeEvent* e )
   updateTitle();
 }
 
+/*!
+  Custom child event filter
+*/
 void QtxGroupBox::childEvent( QChildEvent* e )
 {
   if ( e->type() == QEvent::ChildInserted && e->child() == myContainer )
@@ -235,16 +308,25 @@ void QtxGroupBox::childEvent( QChildEvent* e )
   QGroupBox::childEvent( e );
 }
 
+/*!
+  Event filter of custom items
+*/
 void QtxGroupBox::customEvent( QCustomEvent* )
 {
   updateTitle();
 }
 
+/*!
+  On frame changed
+*/
 void QtxGroupBox::frameChanged()
 {
   updateTitle();
 }
 
+/*!
+  \return size of title
+*/
 QSize QtxGroupBox::titleSize() const
 {
   QSize sz( 0, 0 );
@@ -264,6 +346,9 @@ QSize QtxGroupBox::titleSize() const
   return QSize( w, h );
 }
 
+/*!
+  Updates title
+*/
 void QtxGroupBox::updateTitle()
 {
   if ( !myContainer )
index 35672e5ee330cec7365b1ef38b5d841358b77e46..2e694cd1803824fca1bfdbdc0818572c4202ce1c 100755 (executable)
@@ -24,6 +24,9 @@
 #include <qlineedit.h>
 #include <qapplication.h>
 
+/*!
+  Constructor
+*/
 QtxIntSpinBox::QtxIntSpinBox( QWidget* parent, const char* name )
 : QSpinBox( parent, name ),
 myCleared( false ),
@@ -32,6 +35,9 @@ myBlocked( false )
   connect( editor(), SIGNAL( textChanged( const QString& ) ), this, SLOT( onTextChanged( const QString& ) ) );
 }
 
+/*!
+  Constructor
+*/
 QtxIntSpinBox::QtxIntSpinBox( int min, int max, int step, QWidget* parent, const char* name )
 : QSpinBox( min, max, step, parent, name ),
 myCleared( false ),
@@ -40,15 +46,25 @@ myBlocked( false )
   connect( editor(), SIGNAL( textChanged( const QString& ) ), this, SLOT( onTextChanged( const QString& ) ) );
 }
 
+/*!
+  Destructor
+*/
 QtxIntSpinBox::~QtxIntSpinBox()
 {
 }
 
+/*!
+  \return true if spin box is cleared
+*/
 bool QtxIntSpinBox::isCleared() const
 {
   return myCleared;
 }
 
+/*!
+  Changes cleared status of spin box
+  \param on - new status
+*/
 void QtxIntSpinBox::setCleared( const bool on )
 {
   if ( myCleared == on )
@@ -58,6 +74,10 @@ void QtxIntSpinBox::setCleared( const bool on )
   updateDisplay();
 }
 
+/*!
+  Changes value of spin box
+  \param val - new value of spin box
+*/
 void QtxIntSpinBox::setValue( int value )
 {
   myCleared = false;
@@ -65,6 +85,9 @@ void QtxIntSpinBox::setValue( int value )
   QSpinBox::setValue( value );
 }
 
+/*!
+  Custom event filter
+*/
 bool QtxIntSpinBox::eventFilter( QObject* o, QEvent* e )
 {
   if ( !myCleared || o != editor() || !editor()->text().stripWhiteSpace().isEmpty() )
@@ -83,6 +106,9 @@ bool QtxIntSpinBox::eventFilter( QObject* o, QEvent* e )
   return QSpinBox::eventFilter( o, e );
 }
 
+/*!
+  Sets integer value by text in editor
+*/
 void QtxIntSpinBox::interpretText()
 {
   myCleared = false;
@@ -90,6 +116,9 @@ void QtxIntSpinBox::interpretText()
   QSpinBox::interpretText();
 }
 
+/*!
+  Updates text of editor
+*/
 void QtxIntSpinBox::updateDisplay()
 {
   if ( myBlocked )
@@ -113,12 +142,18 @@ void QtxIntSpinBox::updateDisplay()
   myBlocked = block;
 }
 
+/*!
+  Custom handler for leave event
+*/
 void QtxIntSpinBox::leaveEvent( QEvent* e )
 {
   if ( !myCleared )
     QSpinBox::leaveEvent( e );
 }
 
+/*!
+  Custom handler for wheel event
+*/
 void QtxIntSpinBox::wheelEvent( QWheelEvent* e )
 {
   if ( !isEnabled() )
@@ -128,6 +163,9 @@ void QtxIntSpinBox::wheelEvent( QWheelEvent* e )
   updateDisplay();
 }
 
+/*!
+  SLOT: called if text is changed
+*/
 void QtxIntSpinBox::onTextChanged( const QString& )
 {
   if ( !myBlocked )
index 725120238d8f119a630181bcd22efff402d7ffdf..84fbed93b90c360b90d052b4aac588f37d7a2bd2 100755 (executable)
@@ -46,10 +46,9 @@ static const char* list_arrow_icon[] = {
 };
 
 /*!
-       Class: QtxListAction::ToolButton
-       Level: Internal
+  \class QtxListAction::ToolButton
+  Custom tool button
 */
-
 class QtxListAction::ToolButton : public QToolButton
 {
 public:
@@ -62,6 +61,9 @@ private:
   QtxListAction* myAction;
 };
 
+/*!
+  Constructor
+*/
 QtxListAction::ToolButton::ToolButton( QtxListAction* a, QWidget* parent, const char* name )
 : QToolButton( parent, name ),
 myAction( a )
@@ -69,12 +71,18 @@ myAction( a )
   setIconSet( QPixmap( list_arrow_icon ) );
 }
 
+/*!
+  Destructor
+*/
 QtxListAction::ToolButton::~ToolButton()
 {
   if ( myAction )
     myAction->controlDeleted( this );
 }
 
+/*!
+  \return the recommended size for the widget
+*/
 QSize QtxListAction::ToolButton::sizeHint() const
 {
   QSize sz = iconSet().pixmap().size();
@@ -82,16 +90,9 @@ QSize QtxListAction::ToolButton::sizeHint() const
 }
 
 /*!
-       Class: QtxListAction
-       Level: Public
+  Constructs an list action with given parent and name. If toggle is true the
+  action will be a toggle action, otherwise it will be a command action.
 */
-
-/*!
-       Name: QtxListAction [public]
-       Desc: Constructs an list action with given parent and name. If toggle is true the
-                   action will be a toggle action, otherwise it will be a command action.
-*/
-
 QtxListAction::QtxListAction( QObject* parent, const char* name, bool toggle )
 : QtxAction( parent, name, toggle ),
 myFrame( 0 ),
@@ -102,12 +103,11 @@ myRaise( false )
 }
 
 /*!
-       Name: QtxListAction [public]
-       Desc: This constructor creates an action with the following properties: the
-                   description text, the icon or iconset icon, the menu text and keyboard
-                   accelerator. It is a child of given parent and named specified name.
-                   If toggle is true the action will be a toggle action, otherwise it will
-                   be a command action.
+  This constructor creates an action with the following properties: the
+  description text, the icon or iconset icon, the menu text and keyboard
+  accelerator. It is a child of given parent and named specified name.
+  If toggle is true the action will be a toggle action, otherwise it will
+  be a command action.
 */
 
 QtxListAction::QtxListAction( const QString& text, const QIconSet& icon,
@@ -122,11 +122,10 @@ myRaise( false )
 }
 
 /*!
-       Name: QtxListAction [public]
-       Desc: This constructor creates an action with the following properties: the
-                 description text, the menu text and keyboard accelerator. It is a child
-                 of given parent and named specified name. If toggle is true the action
-                 will be a toggle action, otherwise it will be a command action.
+  This constructor creates an action with the following properties: the
+  description text, the menu text and keyboard accelerator. It is a child
+  of given parent and named specified name. If toggle is true the action
+  will be a toggle action, otherwise it will be a command action.
 */
 
 QtxListAction::QtxListAction( const QString& text, const QString& menuText,
@@ -140,8 +139,7 @@ myRaise( false )
 }
 
 /*!
-       Name: ~QtxListAction [virtual public]
-       Desc: Destructor.
+  Destructor.
 */
 
 QtxListAction::~QtxListAction()
@@ -173,6 +171,9 @@ void QtxListAction::setPopupMode( const int mode )
   myMode = mode;
 }
 
+/*!
+  \return list of names
+*/
 QStringList QtxListAction::names() const
 {
   QStringList lst;
@@ -505,6 +506,9 @@ void QtxListAction::onExpand( bool on )
     myFrame->hide();
 }
 
+/*!
+  SLOT: called when frame is hidden
+*/
 void QtxListAction::onHided()
 {
   for ( ButtonsMap::Iterator bit = myButtons.begin(); bit != myButtons.end(); ++bit )
@@ -624,12 +628,10 @@ void QtxListAction::controlDeleted( QWidget* wid )
   }
 }
 
-/**********************************************************************
-**  Class:  QtxListFrame
-**  Descr:  Frame for the list of actions
-**  Level:  Internal
-***********************************************************************/
-
+/*!
+  \class QtxListFrame
+  Frame for the list of actions
+*/
 class QtxListFrame::ScrollEvent : public QCustomEvent
 {
 public:
@@ -693,6 +695,9 @@ myScrollBlock( false )
   setFrameStyle( Panel | Raised );
 }
 
+/*!
+  Destructor
+*/
 QtxListFrame::~QtxListFrame()
 {
   if ( myAction )
@@ -709,6 +714,11 @@ void QtxListFrame::clear()
        setNames( myNames );
 }
 
+/*!
+    Adds a names to the list. Truncates the name to fit to the frame width.
+    Use QtxListAction::setMaxLineChar( int ) to set the width in characters. [ public ]
+*/
+  
 void QtxListFrame::addNames( const QStringList& names )
 {
        for ( QStringList::ConstIterator it = names.begin(); it != names.end(); ++it )
@@ -754,6 +764,9 @@ void QtxListFrame::setNames( const QStringList& names )
   }
 }
 
+/*!
+  \return list of names
+*/
 const QStringList QtxListFrame::names() const
 {
        return myNames;
@@ -822,6 +835,10 @@ void QtxListFrame::updateComment()
   myComment->setText( com );
 }
 
+/*!
+  Sets owner
+  \param wo - new owner
+*/
 void QtxListFrame::setOwner( QWidget* wo )
 {
   myOwner = wo;
@@ -1005,6 +1022,9 @@ bool QtxListFrame::handleMouseEvent( QObject* o, QMouseEvent* e )
   return true;
 }
 
+/*!
+  Custom event filter
+*/
 bool QtxListFrame::event( QEvent* e )
 {
   if ( e->type() != (int)ScrollEvent::Scroll )
@@ -1089,6 +1109,9 @@ void QtxListFrame::setSelected( const int lastSel )
   updateComment();
 }
 
+/*!
+  return number of selected items
+*/
 int QtxListFrame::selected() const
 {
        uint sel = 0;
index 30c85acc0ef144c5424efffed146a4ed58f9bcf4..d285d7ab2586af2c98ddd8bab89260e77854d69c 100755 (executable)
@@ -118,11 +118,9 @@ private:
     friend class QtxListFrame;
 };
 
-/*************************************
-**  Class: QtxListFrame
-**  Level: Internal
-*************************************/
-
+/*!
+  \class QtxListFrame
+*/
 class QtxListFrame : public QFrame
 {
     Q_OBJECT
index 6d2ce0cd97e05ceeca0c76bfd5e12c505da2ea19..47cff9d1df3f28b6afcdae177e5319668995a540 100755 (executable)
@@ -24,6 +24,9 @@
 #include <qpixmap.h>
 #include <qlineedit.h>
 
+/*!
+  Constructor
+*/
 QtxListBox::QtxListBox( QWidget* parent, const char* name, WFlags f )
 : QListBox( parent, name, f ),
 myEditor( 0 ),
@@ -36,15 +39,25 @@ myModifEnabled( true )
            this, SLOT( onContentsMoving( int, int ) ) );
 }
 
+/*!
+  Destructor
+*/
 QtxListBox::~QtxListBox()
 {
 }
 
+/*!
+  \return true if editing is enabled
+*/
 bool QtxListBox::isEditEnabled() const
 {
   return myEditState;
 }
 
+/*!
+  Enables/disables editing
+  \param on - new state
+*/
 void QtxListBox::setEditEnabled( bool on )
 {
   if ( isEditEnabled() == on )
@@ -56,36 +69,66 @@ void QtxListBox::setEditEnabled( bool on )
     endEdition( defaultEditAction() );
 }
 
+/*!
+  \return default edit action
+  \sa setDefaultEditAction()
+*/
 bool QtxListBox::defaultEditAction() const
 {
   return myEditDefault;
 }
 
+/*!
+  Changes default edit action. 
+  Pressing of ENTER button always accepts new value of edited item.
+  But other ways, such as focus out or edition of other item accepts
+  new value of edited item only if "default edit action" is true
+  \param def - new value
+*/
 void QtxListBox::setDefaultEditAction( bool def )
 {
   myEditDefault = def;
 }
 
+/*!
+  \return modification enabled state
+  \sa setModificationEnabled()
+*/
 bool QtxListBox::isModificationEnabled() const
 {
   return myModifEnabled;
 }
 
+/*!
+  Changes "modification enabled" state
+  If it is true, then pressing of CTRL + { Up, Down, Home, End } allows move items in list
+  \param on - new state
+*/
 void QtxListBox::setModificationEnabled( bool on )
 {
   myModifEnabled = on;
 }
 
+/*!
+  \return current edited item
+*/
 QListBoxItem* QtxListBox::editedItem() const
 {
   return item( editedIndex() );
 }
 
+/*!
+  \return current edited index
+*/
 int QtxListBox::editedIndex() const
 {
   return myEditIndex;
 }
 
+/*!
+  Starts edition of item
+  \param idx - index of item
+*/
 void QtxListBox::startEdition( const int idx )
 {
   if ( idx < 0 || editedIndex() == idx || !isEditEnabled() )
@@ -108,11 +151,19 @@ void QtxListBox::startEdition( const int idx )
   ed->setFocus();
 }
 
+/*!
+  Starts edition of item
+  \param item - item to be edited
+*/
 void QtxListBox::startEdition( const QListBoxItem* item )
 {
   startEdition( index( item ) );
 }
 
+/*!
+  Finishes edition of item
+  \param action - if it is true, then new values must be accepted
+*/
 void QtxListBox::endEdition( const bool action )
 {
   int idx = editedIndex();
@@ -141,6 +192,10 @@ void QtxListBox::endEdition( const bool action )
   }
 }
 
+/*!
+  Ensures that the item is visible.
+  \param idx - index of item
+*/
 void QtxListBox::ensureItemVisible( const int idx )
 {
   if ( idx < 0 )
@@ -152,11 +207,18 @@ void QtxListBox::ensureItemVisible( const int idx )
   setTopItem( idx );
 }
 
+/*!
+  Ensures that the item is visible.
+  \param item - item to be made visible
+*/
 void QtxListBox::ensureItemVisible( const QListBoxItem* item )
 {
   ensureItemVisible( index( item ) );
 }
 
+/*!
+  \return validator of item editor
+*/
 const QValidator* QtxListBox::validator() const
 {
   const QValidator* v = 0;
@@ -165,28 +227,48 @@ const QValidator* QtxListBox::validator() const
   return v;
 }
 
+/*!
+  Removes validator of item editor
+*/
 void QtxListBox::clearValidator()
 {
   if ( editor() )
     editor()->clearValidator();
 }
 
+/*!
+  Changes validator of item editor
+  \param v - new validator
+*/
 void QtxListBox::setValidator( const QValidator* v )
 {
   if ( editor() )
     editor()->setValidator( v );
 }
 
+/*!
+  Moves item to top
+  \param idx - index of item
+*/
 void QtxListBox::moveItemToTop( const int idx )
 {
   moveItem( idx, -idx );
 }
 
+/*!
+  Moves item to bottom
+  \param idx - index of item
+*/
 void QtxListBox::moveItemToBottom( const int idx )
 {
   moveItem( idx, count() - idx );
 }
 
+/*!
+  Moves item
+  \param idx - index of item
+  \param step - changing of position
+*/
 void QtxListBox::moveItem( const int idx, const int step )
 {
   QListBoxItem* i = item( idx );
@@ -210,6 +292,10 @@ void QtxListBox::moveItem( const int idx, const int step )
     emit itemMoved( idx, pos );
 }
 
+/*!
+  Inserts empty item
+  \param i - position of item (if it is less than 0, then current position is used)
+*/
 void QtxListBox::createItem( const int i )
 {
   if ( !isEditEnabled() )
@@ -224,6 +310,10 @@ void QtxListBox::createItem( const int i )
   startEdition( idx );
 }
 
+/*!
+  Removes item
+  \param i - position of item (if it is less than 0, then current position is used)
+*/
 void QtxListBox::deleteItem( const int i )
 {
   if ( !isEditEnabled() )
@@ -240,6 +330,10 @@ void QtxListBox::deleteItem( const int i )
   updateEditor();
 }
 
+/*!
+  Scrolls the content so that the point is in the top-left corner.
+  \param x, y - point co-ordinates
+*/
 void QtxListBox::setContentsPos( int x, int y )
 {
   QListBox::setContentsPos( x, y );
@@ -247,6 +341,9 @@ void QtxListBox::setContentsPos( int x, int y )
   updateEditor();
 }
 
+/*!
+  Custom event filter, performs finish of edition on focus out, escape/return/enter pressing
+*/
 bool QtxListBox::eventFilter( QObject* o, QEvent* e )
 {
   if ( editor() == o )
@@ -267,6 +364,10 @@ bool QtxListBox::eventFilter( QObject* o, QEvent* e )
   return QListBox::eventFilter( o, e );
 }
 
+/*!
+  Custom key press event handler
+  Allows to move items by CTRL + { Up, Down, Home, End }
+*/
 void QtxListBox::keyPressEvent( QKeyEvent* e )
 {
   if ( e->key() == Key_Up && e->state() & ControlButton && isModificationEnabled() )
@@ -285,6 +386,9 @@ void QtxListBox::keyPressEvent( QKeyEvent* e )
     QListBox::keyPressEvent( e );
 }
 
+/*!
+  Custom resize event handler
+*/
 void QtxListBox::viewportResizeEvent( QResizeEvent* e )
 {
   QListBox::viewportResizeEvent( e );
@@ -292,6 +396,9 @@ void QtxListBox::viewportResizeEvent( QResizeEvent* e )
   updateEditor();
 }
 
+/*!
+  Custom mouse double click event handler
+*/
 void QtxListBox::mouseDoubleClickEvent( QMouseEvent* e )
 {
   if ( isEditEnabled() )
@@ -300,11 +407,17 @@ void QtxListBox::mouseDoubleClickEvent( QMouseEvent* e )
     QListBox::mouseDoubleClickEvent( e );
 }
 
+/*!
+  Updates editor on contents moving
+*/
 void QtxListBox::onContentsMoving( int, int )
 {
   updateEditor();
 }
 
+/*!
+  \return item editor
+*/
 QLineEdit* QtxListBox::editor() const
 {
   if ( !myEditor )
@@ -315,6 +428,9 @@ QLineEdit* QtxListBox::editor() const
   return myEditor;
 }
 
+/*!
+  Creates item editor
+*/
 void QtxListBox::createEditor()
 {
   if ( myEditor )
@@ -332,6 +448,9 @@ void QtxListBox::createEditor()
   addChild( myEditor );
 }
 
+/*!
+  Updates item editor
+*/
 void QtxListBox::updateEditor()
 {
   if ( !editedItem() || !editor() )
index 1be04a75df1be348387ea71b83992aa6bc196990..39eb5f1a2a7c7c4ae317c64960cddcd476f7b10e 100644 (file)
 #include "QtxListOfOperations.h"
 #include <stdarg.h>
 
-//================================================================
-// Function : 
-// Purpose  : 
-//================================================================
+/*!
+  Constructor
+*/
 QtxListOfOperations::QtxListOfOperations()
 {
 }
 
-//================================================================
-// Function : 
-// Purpose  : 
-//================================================================
+/*!
+  Destructor
+*/
 QtxListOfOperations::~QtxListOfOperations()
 {
 }
 
-//================================================================
-// Function : 
-// Purpose  : 
-//================================================================
+/*!
+  \return fills list with brackets symbols
+  \param list - list to be filled
+  \param open - if it is true, it is necessary to fill with open brackets otherwise with close
+*/
 void QtxListOfOperations::bracketsList( QStringList& list, bool open ) const
 {
     OperationSetsIterator anIt = mySets.begin(),
@@ -57,10 +56,9 @@ void QtxListOfOperations::bracketsList( QStringList& list, bool open ) const
     }
 }
 
-//================================================================
-// Function : 
-// Purpose  : 
-//================================================================
+/*!
+  Fills list with operation names
+*/
 void QtxListOfOperations::opersList( QStringList& list ) const
 {
     OperationSetsIterator anIt = mySets.begin(),
@@ -78,10 +76,9 @@ void QtxListOfOperations::opersList( QStringList& list ) const
     }
 }
 
-//================================================================
-// Function : 
-// Purpose  : 
-//================================================================
+/*!
+  Create some value by it's string representation
+*/
 bool QtxListOfOperations::createValue( const QString& str, QtxValue& val ) const
 {
     bool ok;
@@ -96,10 +93,9 @@ bool QtxListOfOperations::createValue( const QString& str, QtxValue& val ) const
     return ok;
 }
 
-//================================================================
-// Function : 
-// Purpose  : 
-//================================================================
+/*!
+  \return priority of operation
+*/
 int QtxListOfOperations::prior( const QString& op, bool isBin ) const
 {
     OperationSetsIterator anIt = mySets.begin(),
@@ -117,10 +113,12 @@ int QtxListOfOperations::prior( const QString& op, bool isBin ) const
     return prior>0 ? prior : 0;
 }
 
-//================================================================
-// Function : 
-// Purpose  : 
-//================================================================
+/*!
+   \return whether values with passed types are valid for arguments of operation
+   \param op - name of operation
+   \param t1 - type of first argument
+   \param t2 - type of second argument
+*/
 QtxParser::Error QtxListOfOperations::isValid( const QString& op,
                                                const QVariant::Type t1,
                                                const QVariant::Type t2 ) const
@@ -137,10 +135,13 @@ QtxParser::Error QtxListOfOperations::isValid( const QString& op,
     return err;
 }
 
-//================================================================
-// Function : 
-// Purpose  : 
-//================================================================
+/*!
+    Calculates result of operation
+    \return one of error states
+    \param op - name of operation
+    \param v1 - first operation argument (must be used also to store result)
+    \param v2 - second operation argument
+*/
 QtxParser::Error QtxListOfOperations::calculate( const QString& op,
                                                  QtxValue& v1,
                                                  QtxValue& v2 ) const
@@ -169,19 +170,18 @@ QtxParser::Error QtxListOfOperations::calculate( const QString& op,
     return QtxParser::InvalidOperation;
 }
 
-//================================================================
-// Function : 
-// Purpose  : 
-//================================================================
+/*!
+  Clears list of operations
+*/
 void QtxListOfOperations::clear()
 {
     mySets.clear();
 }
 
-//================================================================
-// Function : 
-// Purpose  : 
-//================================================================
+/*!
+  \return true if list contains operations
+  \param name - name of operation
+*/
 bool QtxListOfOperations::has( const QString& name ) const
 {
     OperationSetsIterator anIt = mySets.begin(),
@@ -192,30 +192,37 @@ bool QtxListOfOperations::has( const QString& name ) const
     return false;
 }
 
-//================================================================
-// Function : 
-// Purpose  : 
-//================================================================
+/*!
+  Appends operations to list
+  \param name - name of operations
+  \param oper - operations
+  \param prior - additional prior
+*/
 void QtxListOfOperations::append( const QString& name, QtxOperations* oper,
                                   int prior )
 {
     insert( name, oper, prior );
 }
 
-//================================================================
-// Function : 
-// Purpose  : 
-//================================================================
+/*!
+  Prepends operations to list
+  \param name - name of operations
+  \param oper - operations
+  \param prior - additional prior
+*/
 void QtxListOfOperations::prepend( const QString& name, QtxOperations* oper,
                                    int prior )
 {
     insert( name, oper, prior, 0 );
 }
 
-//================================================================
-// Function : 
-// Purpose  : 
-//================================================================
+/*!
+  Inserts operations to list
+  \param name - name of operations
+  \param oper - operations
+  \param prior - additional prior
+  \param pos - insert position 
+*/
 void QtxListOfOperations::insert( const QString& name, QtxOperations* oper,
                                   int prior, int pos )
 {
@@ -232,10 +239,10 @@ void QtxListOfOperations::insert( const QString& name, QtxOperations* oper,
         mySets.insert( mySets.at( pos ), op );
 }
 
-//================================================================
-// Function : 
-// Purpose  : 
-//================================================================
+/*!
+  Removes operations from list
+  \param name - name of operations
+*/
 void QtxListOfOperations::remove( const QString& name )
 {
     OperationSets::iterator anIt = mySets.begin(),
@@ -248,19 +255,18 @@ void QtxListOfOperations::remove( const QString& name )
         }
 }
 
-//================================================================
-// Function : 
-// Purpose  : 
-//================================================================
+/*!
+  \return count of operations in list
+*/
 int QtxListOfOperations::count() const
 {
     return mySets.count();
 }
 
-//================================================================
-// Function : 
-// Purpose  : 
-//================================================================
+/*!
+  \return operations by name
+  \name - name of operations
+*/
 QtxOperations* QtxListOfOperations::operations( const QString& name ) const
 {
     OperationSetsIterator anIt = mySets.begin(),
index 3e1a711f14aa91bce2fc95f4a2c6293c299cf300..05a737389e1a2e700179a46c41b173283a5b550a 100644 (file)
 #endif
 
 
-//================================================================
-// Class    : 
-// Purpose  : 
-//================================================================
+/*!
+  Class: QtxListOfOperations
+
+  This class provides special variant of QtxOperations. It contains list of QtxOperations* with 
+  fixed order. When it is necessary to calculate operation or get it's priority, this operation is
+  being found starting from first item. It makes possible to create unions of operations. Every QtxOperations*
+  has priority, which is added to priority of operation, so that it makes possible to increase priority of
+  whole group of operations
+*/
 class QTX_EXPORT QtxListOfOperations : public QtxOperations
 {
 public:
index 038e189b7c22b8bbda709caf09db6cfb1d8e4529..bc3bcccb614f955c60ea2bd00d905c621f9ae130 100644 (file)
 #include "QtxComboBox.h"
 #include "QtxDirListEditor.h"
 
-/*
-  Class: QtxListResourceEdit
-  Descr: GUI implementation of QtxResourceEdit - manager of resources
+/*!
+  Constructor
 */
-
 QtxListResourceEdit::QtxListResourceEdit( QtxResourceMgr* mgr, QWidget* parent )
 : QFrame( parent ),
 QtxResourceEdit( mgr )
@@ -76,10 +74,19 @@ QtxResourceEdit( mgr )
   updateState();
 }
 
+/*!
+  Destructor
+*/
 QtxListResourceEdit::~QtxListResourceEdit()
 {
 }
 
+/*!
+  Sets value to widget
+  \param id - id of widget
+  \param prop - name of resource
+  \param val - value of resource
+*/
 void QtxListResourceEdit::setItemProperty( const int id, const QString& prop, const QVariant& val )
 {
   Item* i = item( id );
@@ -96,6 +103,9 @@ void QtxListResourceEdit::setItemProperty( const int id, const QString& prop, co
     updateVisible();
 }
 
+/*!
+  SLOT: called if main list selection changed, raises resource group widgets
+*/
 void QtxListResourceEdit::onSelectionChanged()
 {
   QString title = myList->text( myList->index( myList->selectedItem() ) );
@@ -115,6 +125,10 @@ void QtxListResourceEdit::onSelectionChanged()
     myStack->raiseWidget( i->id() );
 }
 
+/*!
+  Custom activity after item addition
+  \param i - added item
+*/
 void QtxListResourceEdit::itemAdded( QtxResourceEdit::Item* i )
 {
   if ( !i )
@@ -127,6 +141,10 @@ void QtxListResourceEdit::itemAdded( QtxResourceEdit::Item* i )
     updateVisible();
 }
 
+/*!
+  Creates and \return category
+  \param title - category title
+*/
 QtxResourceEdit::Item* QtxListResourceEdit::createItem( const QString& title, const int )
 {
   Item* i = item( title, -1 );
@@ -146,6 +164,10 @@ QtxResourceEdit::Item* QtxListResourceEdit::createItem( const QString& title, co
   return category;
 }
 
+/*!
+  Emits signal about resource changing
+  \param map - map of changed resources
+*/
 void QtxListResourceEdit::changedResources( const QMap<Item*, QString>& map )
 {
   QMap<int, QString> idMap;
@@ -163,6 +185,9 @@ void QtxListResourceEdit::changedResources( const QMap<Item*, QString>& map )
   emit resourcesChanged( idMap );
 }
 
+/*!
+  Updates widgets with accordance with main list selection
+*/
 void QtxListResourceEdit::updateState()
 {
   if ( myList->selectedItem() &&  myStack->visibleWidget() )
@@ -173,6 +198,9 @@ void QtxListResourceEdit::updateState()
   myList->setShown( myList->count() > 1 );
 }
 
+/*!
+  Updates visibility state
+*/
 void QtxListResourceEdit::updateVisible()
 {
   QPtrList<Item> items;
@@ -201,11 +229,9 @@ void QtxListResourceEdit::updateVisible()
   updateState();
 }
 
-/*
-  Class: QtxListResourceEdit::Category
-  Descr: GUI implementation of preferences category.
+/*!
+  Constructor
 */
-
 QtxListResourceEdit::Category::Category( QtxListResourceEdit* edit, QWidget* parent )
 : QFrame( parent ),
 Item( edit )
@@ -226,28 +252,47 @@ Item( edit )
   updateState();
 }
 
+/*!
+  Destructor
+*/
 QtxListResourceEdit::Category::~Category()
 {
 }
 
+/*!
+  \return true if it is empty
+*/
 bool QtxListResourceEdit::Category::isEmpty() const
 {
   return Item::isEmpty() && myInfo->text().isEmpty();
 }
 
+/*!
+  \return category type
+*/
 int QtxListResourceEdit::Category::type() const
 {
   return -1;
 }
 
+/*!
+  Default empty implementation of resources storing
+*/
 void QtxListResourceEdit::Category::store()
 {
 }
 
+/*!
+  Default empty implementation of resources retrieving
+*/
 void QtxListResourceEdit::Category::retrieve()
 {
 }
 
+/*!
+  \return value of property
+  \param prop - property name
+*/
 QVariant QtxListResourceEdit::Category::property( const QString& prop ) const
 {
   QVariant var;
@@ -256,6 +301,11 @@ QVariant QtxListResourceEdit::Category::property( const QString& prop ) const
   return var;
 }
 
+/*!
+  Sets property value
+  \param name - name of property
+  \param var - value of property
+*/
 void QtxListResourceEdit::Category::setProperty( const QString& name, const QVariant& var )
 {
   QVariant prop = var;
@@ -268,6 +318,10 @@ void QtxListResourceEdit::Category::setProperty( const QString& name, const QVar
   updateState();
 }
 
+/*!
+  Creates new tab
+  \param title - name of tab
+*/
 QtxResourceEdit::Item* QtxListResourceEdit::Category::createItem( const QString& title, const int )
 {
   Item* i = item( title, id() );
@@ -282,6 +336,9 @@ QtxResourceEdit::Item* QtxListResourceEdit::Category::createItem( const QString&
   return tab;
 }
 
+/*!
+  Updates category
+*/
 void QtxListResourceEdit::Category::updateState()
 {
   if ( myTabs->count() )
@@ -295,11 +352,10 @@ void QtxListResourceEdit::Category::updateState()
     myInfo->hide();
 }
 
-/*
-  Class: QtxListResourceEdit::Tab
-  Descr: GUI implementation of resources tab.
-*/
 
+/*!
+  Constructor
+*/
 QtxListResourceEdit::Tab::Tab( QtxResourceEdit* edit, Item* pItem, QWidget* parent )
 : QFrame( parent ),
 Item( edit, pItem )
@@ -312,23 +368,38 @@ Item( edit, pItem )
   main->addStretch( 1 );
 }
 
+/*!
+  Destructor
+*/
 QtxListResourceEdit::Tab::~Tab()
 {
 }
 
+/*!
+  \return tab type
+*/
 int QtxListResourceEdit::Tab::type() const
 {
   return -1;
 }
 
+/*!
+  Default empty implementation of resources storing
+*/
 void QtxListResourceEdit::Tab::store()
 {
 }
 
+/*!
+  Default empty implementation of resources retrieving
+*/
 void QtxListResourceEdit::Tab::retrieve()
 {
 }
 
+/*!
+  Delayed initialization of a widget
+*/
 void QtxListResourceEdit::Tab::polish()
 {
   QFrame::polish();
@@ -336,6 +407,10 @@ void QtxListResourceEdit::Tab::polish()
   adjustLabels();
 }
 
+/*!
+  Creates new group
+  \param title - name of group
+*/
 QtxResourceEdit::Item* QtxListResourceEdit::Tab::createItem( const QString& title, const int )
 {
   Item* i = item( title, id() );
@@ -347,6 +422,9 @@ QtxResourceEdit::Item* QtxListResourceEdit::Tab::createItem( const QString& titl
   return group;
 }
 
+/*!
+  Adjusts sizes of labels
+*/
 void QtxListResourceEdit::Tab::adjustLabels()
 {
   QObjectList* labels = queryList( "QLabel" );
@@ -373,34 +451,48 @@ void QtxListResourceEdit::Tab::adjustLabels()
   }
 }
 
-/*
-  Class: QtxListResourceEdit::Group
-  Descr: GUI implementation of resources group.
+/*!
+  Constructor
 */
-
 QtxListResourceEdit::Group::Group( const QString& title, QtxResourceEdit* edit, Item* pItem, QWidget* parent )
 : QGroupBox( 2, Qt::Horizontal, title, parent ),
 Item( edit, pItem )
 {
 }
 
+/*!
+  Destructor
+*/
 QtxListResourceEdit::Group::~Group()
 {
 }
 
+/*!
+  \return group type
+*/
 int QtxListResourceEdit::Group::type() const
 {
   return -1;
 }
 
+/*!
+  Default empty implementation of resources storing
+*/
 void QtxListResourceEdit::Group::store()
 {
 }
 
+/*!
+  Default empty implementation of resources retrieving
+*/
 void QtxListResourceEdit::Group::retrieve()
 {
 }
 
+/*!
+  \return value of property
+  \param prop - property name
+*/
 QVariant QtxListResourceEdit::Group::property( const QString& prop ) const
 {
   QVariant var;
@@ -413,6 +505,11 @@ QVariant QtxListResourceEdit::Group::property( const QString& prop ) const
   return var;
 }
 
+/*!
+  Sets property value
+  \param name - name of property
+  \param var - value of property
+*/
 void QtxListResourceEdit::Group::setProperty( const QString& name, const QVariant& var )
 {
   QVariant prop = var;
@@ -435,12 +532,21 @@ void QtxListResourceEdit::Group::setProperty( const QString& name, const QVarian
   }
 }
 
+/*!
+  Sets title of group
+  \param title - new title of group
+*/
 void QtxListResourceEdit::Group::setTitle( const QString& title )
 {
   Item::setTitle( title );
   QGroupBox::setTitle( title );
 }
 
+/*!
+  Creates new item
+  \param title - title of new item
+  \type - type of new item
+*/
 QtxResourceEdit::Item* QtxListResourceEdit::Group::createItem( const QString& title, const int type )
 {
   Item* item = 0;
@@ -491,11 +597,9 @@ QtxResourceEdit::Item* QtxListResourceEdit::Group::createItem( const QString& ti
   return item;
 }
 
-/*
-  Class: QtxListResourceEdit::PrefItem
-  Descr: Base class for preferences items.
+/*!
+  Constructor
 */
-
 QtxListResourceEdit::PrefItem::PrefItem( const int type, QtxResourceEdit* edit, Item* pi, QWidget* parent )
 : QHBox( parent ),
 Item( edit, pi ),
@@ -504,48 +608,62 @@ myType( type )
   setSpacing( 5 );
 }
 
+/*!
+  Destructor
+*/
 QtxListResourceEdit::PrefItem::~PrefItem()
 {
 }
 
+/*!
+  \return preference item type
+*/
 int QtxListResourceEdit::PrefItem::type() const
 {
   return myType;
 }
 
+/*!
+  Doesn't create item, \return 0 by default
+*/
 QtxResourceEdit::Item* QtxListResourceEdit::PrefItem::createItem( const QString&, const int )
 {
   return 0;
 }
 
-/*
-  Class: QtxListResourceEdit::Spacer
-  Descr: GUI implementation of resources spacer.
+/*!
+  Constructor
 */
-
 QtxListResourceEdit::Spacer::Spacer( QtxResourceEdit* edit, Item* pItem, QWidget* parent )
 : PrefItem( Space, edit, pItem, parent )
 {
   setSizePolicy( QSizePolicy( QSizePolicy::Expanding, QSizePolicy::Fixed ) );
 }
 
+/*!
+  Destructor
+*/
 QtxListResourceEdit::Spacer::~Spacer()
 {
 }
 
+/*!
+  Default empty implementation of resources storing
+*/
 void QtxListResourceEdit::Spacer::store()
 {
 }
 
+/*!
+  Default empty implementation of resources retrieving
+*/
 void QtxListResourceEdit::Spacer::retrieve()
 {
 }
 
-/*
-  Class: QtxListResourceEdit::SelectItem
-  Descr: GUI implementation of resources list item.
+/*!
+  Constructor
 */
-
 QtxListResourceEdit::SelectItem::SelectItem( const QString& title, QtxResourceEdit* edit,
                                             Item* pItem, QWidget* parent )
 : PrefItem( Selector, edit, pItem, parent )
@@ -555,10 +673,16 @@ QtxListResourceEdit::SelectItem::SelectItem( const QString& title, QtxResourceEd
   myList->setSizePolicy( QSizePolicy( QSizePolicy::Expanding, QSizePolicy::Fixed ) );
 }
 
+/*!
+  Destructor
+*/
 QtxListResourceEdit::SelectItem::~SelectItem()
 {
 }
 
+/*!
+  Stores value to resource manager
+*/
 void QtxListResourceEdit::SelectItem::store()
 {
   int idx = myList->currentItem();
@@ -566,6 +690,9 @@ void QtxListResourceEdit::SelectItem::store()
     setInteger( myIndex[idx] );
 }
 
+/*!
+  Retrieve value to resource manager
+*/
 void QtxListResourceEdit::SelectItem::retrieve()
 {
   int id = getInteger( -1 );
@@ -580,6 +707,10 @@ void QtxListResourceEdit::SelectItem::retrieve()
   myList->setCurrentItem( idx );
 }
 
+/*!
+  \return value of property
+  \param prop - property name
+*/
 QVariant QtxListResourceEdit::SelectItem::property( const QString& name ) const
 {
   QVariant val;
@@ -600,6 +731,11 @@ QVariant QtxListResourceEdit::SelectItem::property( const QString& name ) const
   return val;
 }
 
+/*!
+  Sets property value
+  \param name - name of property
+  \param var - value of property
+*/
 void QtxListResourceEdit::SelectItem::setProperty( const QString& name, const QVariant& val )
 {
   if ( name == QString( "strings" ) )
@@ -608,6 +744,10 @@ void QtxListResourceEdit::SelectItem::setProperty( const QString& name, const QV
     setIndexes( val );
 }
 
+/*!
+  Sets property "strings" - items for selection in combo box
+  \param var - must be string list: list of items
+*/
 void QtxListResourceEdit::SelectItem::setStrings( const QVariant& var )
 {
   if ( var.type() != QVariant::StringList )
@@ -616,6 +756,10 @@ void QtxListResourceEdit::SelectItem::setStrings( const QVariant& var )
   setStrings( var.toStringList() );
 }
 
+/*!
+  Sets property "indexes" - corresponding indices of items in combo box
+  \param var - must be list of integer variants: list of indices
+*/
 void QtxListResourceEdit::SelectItem::setIndexes( const QVariant& var )
 {
   if ( var.type() != QVariant::List )
@@ -631,12 +775,20 @@ void QtxListResourceEdit::SelectItem::setIndexes( const QVariant& var )
   setIndexes( lst );
 }
 
+/*!
+  Sets property "strings" - items for selection in combo box
+  \param lst - list of items
+*/
 void QtxListResourceEdit::SelectItem::setStrings( const QStringList& lst )
 {
   myList->clear();
   myList->insertStringList( lst );
 }
 
+/*!
+  Sets property "indexes" - corresponding indices of items in combo box
+  \param var - list of indices
+*/
 void QtxListResourceEdit::SelectItem::setIndexes( const QValueList<int>& lst )
 {
   myIndex.clear();
@@ -646,11 +798,9 @@ void QtxListResourceEdit::SelectItem::setIndexes( const QValueList<int>& lst )
     myIndex.insert( idx, *it );
 }
 
-/*
-  Class: QtxListResourceEdit::StateItem
-  Descr: GUI implementation of resources bool item.
+/*!
+  Constructor
 */
-
 QtxListResourceEdit::StateItem::StateItem( const QString& title, QtxResourceEdit* edit,
                                            Item* pItem, QWidget* parent )
 : PrefItem( Bool, edit, pItem, parent )
@@ -659,25 +809,32 @@ QtxListResourceEdit::StateItem::StateItem( const QString& title, QtxResourceEdit
   myState->setSizePolicy( QSizePolicy( QSizePolicy::Expanding, QSizePolicy::Fixed ) );
 }
 
+/*!
+  Destructor
+*/
 QtxListResourceEdit::StateItem::~StateItem()
 {
 }
 
+/*!
+  Stores value to resource manager
+*/
 void QtxListResourceEdit::StateItem::store()
 {
   setBoolean( myState->isChecked() );
 }
 
+/*!
+  Retrieve value to resource manager
+*/
 void QtxListResourceEdit::StateItem::retrieve()
 {
   myState->setChecked( getBoolean() );
 }
 
-/*
-  Class: QtxListResourceEdit::StringItem
-  Descr: GUI implementation of resources string item.
+/*!
+  Constructor
 */
-
 QtxListResourceEdit::StringItem::StringItem( const QString& title, QtxResourceEdit* edit,
                                              Item* pItem, QWidget* parent )
 : PrefItem( String, edit, pItem, parent )
@@ -687,25 +844,32 @@ QtxListResourceEdit::StringItem::StringItem( const QString& title, QtxResourceEd
   myString->setSizePolicy( QSizePolicy( QSizePolicy::Expanding, QSizePolicy::Fixed ) );
 }
 
+/*!
+  Destructor
+*/
 QtxListResourceEdit::StringItem::~StringItem()
 {
 }
 
+/*!
+  Stores value to resource manager
+*/
 void QtxListResourceEdit::StringItem::store()
 {
   setString( myString->text() );
 }
 
+/*!
+  Retrieve value to resource manager
+*/
 void QtxListResourceEdit::StringItem::retrieve()
 {
   myString->setText( getString() );
 }
 
-/*
-  Class: QtxListResourceEdit::IntegerEditItem
-  Descr: GUI implementation of resources integer item.
+/*!
+  Constructor
 */
-
 QtxListResourceEdit::IntegerEditItem::IntegerEditItem( const QString& title, QtxResourceEdit* edit, Item* pItem, QWidget* parent )
 : PrefItem( Integer, edit, pItem, parent )
 {
@@ -715,25 +879,32 @@ QtxListResourceEdit::IntegerEditItem::IntegerEditItem( const QString& title, Qtx
   myInteger->setSizePolicy( QSizePolicy( QSizePolicy::Expanding, QSizePolicy::Fixed ) );
 }
 
+/*!
+  Destructor
+*/
 QtxListResourceEdit::IntegerEditItem::~IntegerEditItem()
 {
 }
 
+/*!
+  Stores value to resource manager
+*/
 void QtxListResourceEdit::IntegerEditItem::store()
 {
   setString( myInteger->text() );
 }
 
+/*!
+  Retrieve value to resource manager
+*/
 void QtxListResourceEdit::IntegerEditItem::retrieve()
 {
   myInteger->setText( getString() );
 }
 
-/*
-  Class: QtxListResourceEdit::IntegerSpinItem
-  Descr: GUI implementation of resources integer item.
+/*!
+  Constructor
 */
-
 QtxListResourceEdit::IntegerSpinItem::IntegerSpinItem( const QString& title, QtxResourceEdit* edit, Item* pItem, QWidget* parent )
 : PrefItem( IntSpin, edit, pItem, parent )
 {
@@ -742,20 +913,33 @@ QtxListResourceEdit::IntegerSpinItem::IntegerSpinItem( const QString& title, Qtx
   myInteger->setSizePolicy( QSizePolicy( QSizePolicy::Expanding, QSizePolicy::Fixed ) );
 }
 
+/*!
+  Destructor
+*/
 QtxListResourceEdit::IntegerSpinItem::~IntegerSpinItem()
 {
 }
 
+/*!
+  Stores value to resource manager
+*/
 void QtxListResourceEdit::IntegerSpinItem::store()
 {
   setInteger( myInteger->value() );
 }
 
+/*!
+  Retrieve value to resource manager
+*/
 void QtxListResourceEdit::IntegerSpinItem::retrieve()
 {
   myInteger->setValue( getInteger() );
 }
 
+/*!
+  \return value of property
+  \param prop - property name
+*/
 QVariant QtxListResourceEdit::IntegerSpinItem::property( const QString& name ) const
 {
   QVariant var;
@@ -774,6 +958,11 @@ QVariant QtxListResourceEdit::IntegerSpinItem::property( const QString& name ) c
   return var;
 }
 
+/*!
+  Sets property value
+  \param name - name of property
+  \param var - value of property
+*/
 void QtxListResourceEdit::IntegerSpinItem::setProperty( const QString& name, const QVariant& var )
 {
   QVariant prop = var;
@@ -792,11 +981,9 @@ void QtxListResourceEdit::IntegerSpinItem::setProperty( const QString& name, con
     myInteger->setSuffix( prop.toString() );
 }
 
-/*
-  Class: QtxListResourceEdit::DoubleEditItem
-  Descr: GUI implementation of resources string item.
+/*!
+  Constructor
 */
-
 QtxListResourceEdit::DoubleEditItem::DoubleEditItem( const QString& title, QtxResourceEdit* edit,
                                                      Item* pItem, QWidget* parent )
 : PrefItem( Double, edit, pItem, parent )
@@ -807,25 +994,32 @@ QtxListResourceEdit::DoubleEditItem::DoubleEditItem( const QString& title, QtxRe
   myDouble->setSizePolicy( QSizePolicy( QSizePolicy::Expanding, QSizePolicy::Fixed ) );
 }
 
+/*!
+  Destructor
+*/
 QtxListResourceEdit::DoubleEditItem::~DoubleEditItem()
 {
 }
 
+/*!
+  Stores value to resource manager
+*/
 void QtxListResourceEdit::DoubleEditItem::store()
 {
   setString( myDouble->text() );
 }
 
+/*!
+  Retrieve value to resource manager
+*/
 void QtxListResourceEdit::DoubleEditItem::retrieve()
 {
   myDouble->setText( getString() );
 }
 
-/*
-  Class: QtxListResourceEdit::DoubleSpinItem
-  Descr: GUI implementation of resources double item.
+/*!
+  Constructor
 */
-
 QtxListResourceEdit::DoubleSpinItem::DoubleSpinItem( const QString& title, QtxResourceEdit* edit,
                                                      Item* pItem, QWidget* parent )
 : PrefItem( DblSpin, edit, pItem, parent )
@@ -835,20 +1029,33 @@ QtxListResourceEdit::DoubleSpinItem::DoubleSpinItem( const QString& title, QtxRe
   myDouble->setSizePolicy( QSizePolicy( QSizePolicy::Expanding, QSizePolicy::Fixed ) );
 }
 
+/*!
+  Destructor
+*/
 QtxListResourceEdit::DoubleSpinItem::~DoubleSpinItem()
 {
 }
 
+/*!
+  Stores value to resource manager
+*/
 void QtxListResourceEdit::DoubleSpinItem::store()
 {
   setDouble( myDouble->value() );
 }
 
+/*!
+  Retrieve value to resource manager
+*/
 void QtxListResourceEdit::DoubleSpinItem::retrieve()
 {
   myDouble->setValue( getDouble() );
 }
 
+/*!
+  \return value of property
+  \param prop - property name
+*/
 QVariant QtxListResourceEdit::DoubleSpinItem::property( const QString& name ) const
 {
   QVariant var;
@@ -869,6 +1076,11 @@ QVariant QtxListResourceEdit::DoubleSpinItem::property( const QString& name ) co
   return var;
 }
 
+/*!
+  Sets property value
+  \param name - name of property
+  \param var - value of property
+*/
 void QtxListResourceEdit::DoubleSpinItem::setProperty( const QString& name, const QVariant& var )
 {
   QVariant prop = var;
@@ -889,15 +1101,17 @@ void QtxListResourceEdit::DoubleSpinItem::setProperty( const QString& name, cons
     myDouble->setSuffix( prop.toString() );
 }
 
-/*
-  Class: QtxListResourceEdit::ColorItem
-  Descr: GUI implementation of resources color item.
+/*!
+  Constructor
 */
-
 QtxListResourceEdit::ColorItem::ColorItem( const QString& title, QtxResourceEdit* edit,
                                            Item* pItem, QWidget* parent )
 : PrefItem( Color, edit, pItem, parent )
 {
+  /*!
+    \class QtxListResourceEdit::ColorItem::ColorSelector
+    \brief Label, showing color and allowing to pick color with help of standard color dialog
+  */
   class ColorSelector : public QLabel
   {
   public:
@@ -931,24 +1145,32 @@ QtxListResourceEdit::ColorItem::ColorItem( const QString& title, QtxResourceEdit
   myColor->setSizePolicy( QSizePolicy( QSizePolicy::Expanding, QSizePolicy::Fixed ) );
 }
 
+/*!
+  Destructor
+*/
 QtxListResourceEdit::ColorItem::~ColorItem()
 {
 }
 
+/*!
+  Stores value to resource manager
+*/
 void QtxListResourceEdit::ColorItem::store()
 {
   setColor( myColor->paletteBackgroundColor() );
 }
 
+/*!
+  Retrieve value to resource manager
+*/
 void QtxListResourceEdit::ColorItem::retrieve()
 {
   myColor->setPaletteBackgroundColor( getColor() );
 }
 
 
-/*
-  Class: QtxListResourceEdit::FontItem
-  Descr: GUI implementation of resources font item.
+/*!
+  Constructor
 */
 QtxListResourceEdit::FontItem::FontItem( const QString& title, QtxResourceEdit* edit,
                                          Item* pItem, QWidget* parent )
@@ -974,10 +1196,16 @@ QtxListResourceEdit::FontItem::FontItem( const QString& title, QtxResourceEdit*
   setProperty( "widget_flags", ( int )All );
 }
 
+/*!
+  Destructor
+*/
 QtxListResourceEdit::FontItem::~FontItem()
 {
 }
 
+/*!
+  Stores value to resource manager
+*/
 void QtxListResourceEdit::FontItem::store()
 {
   QFont f( family(), size() );
@@ -989,6 +1217,9 @@ void QtxListResourceEdit::FontItem::store()
   Item::setFont( f );
 }
 
+/*!
+  Retrieve value to resource manager
+*/
 void QtxListResourceEdit::FontItem::retrieve()
 {
   QFont f = getFont();
@@ -997,6 +1228,10 @@ void QtxListResourceEdit::FontItem::retrieve()
   setParams( f.bold(), f.italic(), f.underline() );
 }
 
+/*!
+  \return value of property
+  \param prop - property name
+*/
 QVariant QtxListResourceEdit::FontItem::property( const QString& name ) const
 {
   if( name=="system" )
@@ -1066,6 +1301,11 @@ QVariant QtxListResourceEdit::FontItem::property( const QString& name ) const
   return QVariant();
 }
 
+/*!
+  Sets property value
+  \param name - name of property
+  \param var - value of property
+*/
 void QtxListResourceEdit::FontItem::setProperty( const QString& name, const QVariant& value )
 {
   if( name=="system" )
@@ -1117,6 +1357,10 @@ void QtxListResourceEdit::FontItem::setProperty( const QString& name, const QVar
     myProperties[ name ] = value;
 }
 
+/*!
+  Sets family of font
+  \param f - new family
+*/
 void QtxListResourceEdit::FontItem::setFamily( const QString& f )
 {
   QString curtext;
@@ -1148,11 +1392,18 @@ void QtxListResourceEdit::FontItem::setFamily( const QString& f )
   onActivateFamily( idx );  
 }
 
+/*!
+  \return family of font
+*/
 QString QtxListResourceEdit::FontItem::family() const
 {
   return myFamilies->currentText();
 }
 
+/*!
+  Sets size of font
+  \param s - new size of font
+*/
 void QtxListResourceEdit::FontItem::setSize( const int s )
 {
   int cursize = -1;
@@ -1171,6 +1422,9 @@ void QtxListResourceEdit::FontItem::setSize( const int s )
   mySizes->setCurrentText( cursize>0 ? QString( "%1" ).arg( cursize ) : "" );
 }
 
+/*!
+  \return size of font
+*/
 int QtxListResourceEdit::FontItem::size() const
 {
   QString s = mySizes->currentText();
@@ -1179,6 +1433,12 @@ int QtxListResourceEdit::FontItem::size() const
   return ( ok ? pSize : 0 );
 }
 
+/*!
+  Sets font parameters
+  \param bold - is font bold
+  \param italic - is font italic
+  \param underline - is font underlined
+*/
 void QtxListResourceEdit::FontItem::setParams( const bool bold, const bool italic, const bool underline )
 {
   bool curbold = false, curitalic = false, curunderline = false;
@@ -1211,6 +1471,12 @@ void QtxListResourceEdit::FontItem::setParams( const bool bold, const bool itali
   myUnderline->setChecked( curunderline );
 }
 
+/*!
+  \return font parameters
+  \param bold - is font bold
+  \param italic - is font italic
+  \param underline - is font underlined
+*/
 void QtxListResourceEdit::FontItem::params( bool& bold, bool& italic, bool& underline )
 {
   bold = myBold->isChecked();
@@ -1218,9 +1484,11 @@ void QtxListResourceEdit::FontItem::params( bool& bold, bool& italic, bool& unde
   underline = myUnderline->isChecked();
 }
 
+/*!
+  Updates internal selection of font properties
+*/
 void QtxListResourceEdit::FontItem::internalUpdate()
 {
-  //update internal selection of font properties
   setFamily( family() );
   setSize( size() );
   bool b1, b2, b3;
@@ -1228,6 +1496,9 @@ void QtxListResourceEdit::FontItem::internalUpdate()
   setParams( b1, b2, b3 );
 }
 
+/*!
+  SLOT: called if family is activated, updates list of possible sizes
+*/
 void QtxListResourceEdit::FontItem::onActivateFamily( int )
 {
   QVariant sizes = property( QString( "%1:sizes" ).arg( family() ) );
@@ -1248,6 +1519,9 @@ void QtxListResourceEdit::FontItem::onActivateFamily( int )
   setSize( s );
 }
 
+/*!
+  SLOT: called if it is necessary to show font preview
+*/
 void QtxListResourceEdit::FontItem::onPreview()
 {
   QFont f( family(), size() );
@@ -1270,11 +1544,8 @@ void QtxListResourceEdit::FontItem::onPreview()
 
 
 
-
-
-/*
-  Class: QtxListResourceEdit::DirListItem
-  Descr: 
+/*!
+  Constructor
 */
 QtxListResourceEdit::DirListItem::DirListItem( const QString& title, QtxResourceEdit* edit, Item* pItem, QWidget* parent )
 : PrefItem( Font, edit, pItem, parent )
@@ -1282,10 +1553,16 @@ QtxListResourceEdit::DirListItem::DirListItem( const QString& title, QtxResource
   myDirListEditor = new QtxDirListEditor( this ); 
 }
 
+/*!
+  Destructor
+*/
 QtxListResourceEdit::DirListItem::~DirListItem()
 {
 }
 
+/*!
+  Stores value to resource manager
+*/
 void QtxListResourceEdit::DirListItem::store()
 {
   QStringList list;
@@ -1293,6 +1570,9 @@ void QtxListResourceEdit::DirListItem::store()
   setString( QString(list.join(";")) );
 }
 
+/*!
+  Retrieve value to resource manager
+*/
 void QtxListResourceEdit::DirListItem::retrieve()
 {
   myDirListEditor->setPathList(QStringList::split(";", getString()));
@@ -1300,9 +1580,8 @@ void QtxListResourceEdit::DirListItem::retrieve()
 
 
 
-/*
-  Class: QtxListResourceEdit::FileItem
-  Descr: GUI implementation of resources file item.
+/*!
+  Constructor
 */
 QtxListResourceEdit::FileItem::FileItem( const QString& title, QtxResourceEdit* edit,
                                          Item* pItem, QWidget* parent )
@@ -1321,22 +1600,35 @@ QtxListResourceEdit::FileItem::FileItem( const QString& title, QtxResourceEdit*
   connect( myOpenFile, SIGNAL( clicked() ), this, SLOT( onOpenFile() ) );
 }
 
+/*!
+  Destructor
+*/
 QtxListResourceEdit::FileItem::~FileItem()
 {
   if( myFileDlg ) 
     delete myFileDlg;
 }
 
+/*!
+  Stores value to resource manager
+*/
 void QtxListResourceEdit::FileItem::store()
 {
   setString( myFile->text() );
 }
 
+/*!
+  Retrieve value to resource manager
+*/
 void QtxListResourceEdit::FileItem::retrieve()
 {
   myFile->setText( getString() );
 }
 
+/*!
+  \return value of property
+  \param prop - property name
+*/
 QVariant QtxListResourceEdit::FileItem::property( const QString& name ) const
 {
   if( name=="filter" )
@@ -1351,6 +1643,11 @@ QVariant QtxListResourceEdit::FileItem::property( const QString& name ) const
   return QVariant();
 }
 
+/*!
+  Sets property value
+  \param name - name of property
+  \param var - value of property
+*/
 void QtxListResourceEdit::FileItem::setProperty( const QString& name, const QVariant& value )
 {
   if( name=="filter" )
@@ -1375,6 +1672,9 @@ void QtxListResourceEdit::FileItem::setProperty( const QString& name, const QVar
   }
 }
 
+/*!
+  SLOT: called if user click "Open File" button, shows dialog 
+*/
 void QtxListResourceEdit::FileItem::onOpenFile()
 {
   if( !myFileDlg )
@@ -1393,6 +1693,10 @@ void QtxListResourceEdit::FileItem::onOpenFile()
   }
 }
 
+/*!
+  \return true if file satisfies permissions
+  \param f - file name
+*/
 bool QtxListResourceEdit::FileItem::isFileCorrect( const QString& f ) const
 {
   bool res = false;
@@ -1403,6 +1707,10 @@ bool QtxListResourceEdit::FileItem::isFileCorrect( const QString& f ) const
   return res;
 }
 
+/*!
+  SLOT: called if user has selected file in file dialog, checks file permissions and passes it's name to widget
+  \param f - file name
+*/
 void QtxListResourceEdit::FileItem::onFileSelected( const QString& f )
 {
   if( myFileDlg && !isFileCorrect( f ) )
@@ -1410,17 +1718,26 @@ void QtxListResourceEdit::FileItem::onFileSelected( const QString& f )
 }
 
 
-
+/*!
+  Constructor
+*/
 QtxListResourceEdit::FileItem::FileValidator::FileValidator( FileItem* item, QObject* parent )
 : QValidator( parent ),
   myItem( item )
 {
 }
 
+/*!
+  Destructor
+*/
 QtxListResourceEdit::FileItem::FileValidator::~FileValidator()
 {
 }
 
+/*!
+  Check file permissions
+  \param f - file name
+*/
 QValidator::State QtxListResourceEdit::FileItem::FileValidator::validate( QString& f, int& ) const
 {
   if( myItem && myItem->isFileCorrect( f ) )
index 19713ca08f66bad43047e78ca4f28dfd9bc25930..7b3aa7ea7d96564a16c26450630bfc0e0b5a6d34 100644 (file)
@@ -43,9 +43,9 @@ class QtxDblSpinBox;
 
 class QtxDirListEditor;
 
-/*
-  Class: QtxListResourceEdit
-  Descr: GUI implementation of QtxResourceEdit - manager of resources
+/*!
+  \class QtxListResourceEdit
+  GUI implementation of QtxResourceEdit - manager of resources
 */
 
 class QTX_EXPORT QtxListResourceEdit : public QFrame, public QtxResourceEdit
@@ -101,9 +101,9 @@ private:
   QWidgetStack* myStack;
 };
 
-/*
-  Class: QtxListResourceEdit::Category
-  Descr: GUI implementation of 'Category' frame
+/*!
+  \class QtxListResourceEdit::Category
+  GUI implementation of 'Category' frame
 */
 
 class QtxListResourceEdit::Category : public QFrame, public Item
@@ -132,9 +132,9 @@ private:
   QTabWidget*      myTabs;
 };
 
-/*
-  Class: QtxListResourceEdit::Tab
-  Descr: GUI implementation of resources tab.
+/*!
+  \class QtxListResourceEdit::Tab
+  GUI implementation of resources tab.
 */
 
 class QtxListResourceEdit::Tab : public QFrame, public Item
@@ -160,9 +160,9 @@ private:
   QWidget*      myMainFrame;
 };
 
-/*
-  Class: QtxListResourceEdit::Group
-  Descr: GUI implementation of resources group.
+/*!
+  \class QtxListResourceEdit::Group
+  GUI implementation of resources group.
 */
 
 class QtxListResourceEdit::Group : public QGroupBox, public Item
@@ -184,9 +184,9 @@ protected:
   virtual Item*    createItem( const QString&, const int );
 };
 
-/*
-  Class: QtxListResourceEdit::PrefItem
-  Descr: Base class for preferences items.
+/*!
+  \class QtxListResourceEdit::PrefItem
+  Base class for preferences items.
 */
 
 class QtxListResourceEdit::PrefItem : public QHBox, public Item
@@ -204,9 +204,9 @@ private:
   int           myType;
 };
 
-/*
-  Class: QtxListResourceEdit::Spacer
-  Descr: GUI implementation of resources spacer.
+/*!
+  \class QtxListResourceEdit::Spacer
+  GUI implementation of resources spacer.
 */
 
 class QtxListResourceEdit::Spacer : public PrefItem
@@ -219,9 +219,9 @@ public:
   virtual void retrieve();
 };
 
-/*
-  Class: QtxListResourceEdit::SelectItem
-  Descr: GUI implementation of resources selector item.
+/*!
+  \class QtxListResourceEdit::SelectItem
+  GUI implementation of resources selector item.
 */
 
 class QtxListResourceEdit::SelectItem : public PrefItem
@@ -248,11 +248,10 @@ private:
   QMap<int, int>   myIndex;
 };
 
-/*
-  Class: QtxListResourceEdit::StateItem
-  Descr: GUI implementation of resources bool item.
+/*!
+  \class  QtxListResourceEdit::StateItem
+  GUI implementation of resources bool item.
 */
-
 class QtxListResourceEdit::StateItem : public PrefItem
 {
 public:
@@ -266,9 +265,9 @@ private:
   QCheckBox*       myState;
 };
 
-/*
-  Class: QtxListResourceEdit::StringItem
-  Descr: GUI implementation of resources string item.
+/*!
+  \class  QtxListResourceEdit::StringItem
+  GUI implementation of resources string item.
 */
 
 class QtxListResourceEdit::StringItem : public PrefItem
@@ -284,9 +283,9 @@ private:
   QLineEdit*       myString;
 };
 
-/*
-  Class: QtxListResourceEdit::IntegerEditItem
-  Descr: GUI implementation of resources integer item.
+/*!
+  \class  QtxListResourceEdit::IntegerEditItem
+  GUI implementation of resources integer item.
 */
 
 class QtxListResourceEdit::IntegerEditItem : public PrefItem
@@ -302,9 +301,9 @@ private:
   QLineEdit*       myInteger;
 };
 
-/*
-  Class: QtxListResourceEdit::IntegerSpinItem
-  Descr: GUI implementation of resources integer item.
+/*!
+  \class  QtxListResourceEdit::IntegerSpinItem
+  GUI implementation of resources integer item.
 */
 
 class QtxListResourceEdit::IntegerSpinItem : public PrefItem
@@ -323,9 +322,9 @@ private:
   QtxIntSpinBox*  myInteger;
 };
 
-/*
-  Class: QtxListResourceEdit::DoubleEditItem
-  Descr: GUI implementation of resources double item.
+/*!
+  \class  QtxListResourceEdit::DoubleEditItem
+  GUI implementation of resources double item.
 */
 
 class QtxListResourceEdit::DoubleEditItem : public PrefItem
@@ -341,9 +340,9 @@ private:
   QLineEdit*       myDouble;
 };
 
-/*
-  Class: QtxListResourceEdit::DoubleSpinItem
-  Descr: GUI implementation of resources double item.
+/*!
+  \class  QtxListResourceEdit::DoubleSpinItem
+  GUI implementation of resources double item.
 */
 
 class QtxListResourceEdit::DoubleSpinItem : public PrefItem
@@ -362,9 +361,9 @@ private:
   QtxDblSpinBox*   myDouble;
 };
 
-/*
-  Class: QtxListResourceEdit::ColorItem
-  Descr: GUI implementation of resources color item.
+/*!
+  \class  QtxListResourceEdit::ColorItem
+  GUI implementation of resources color item.
 */
 
 class QtxListResourceEdit::ColorItem : public PrefItem
@@ -380,14 +379,13 @@ private:
   QWidget*         myColor;
 };
 
-/*
-  Class: QtxListResourceEdit::FontItem
-  Descr: GUI implementation of resources font item.
-*/
-
 class QtxComboBox;
 class QToolButton;
 
+/*!
+  \class  QtxListResourceEdit::FontItem
+  GUI implementation of resources font item.
+*/
 class QtxListResourceEdit::FontItem : public PrefItem
 {
   Q_OBJECT
@@ -441,10 +439,9 @@ private:
 
 
 /*!
- * \brief GUI implementation of resources directory list item.
- *
- * 
- */
+  \class QtxListResourceEdit
+  \brief GUI implementation of resources directory list item.
+*/
 class QtxListResourceEdit::DirListItem : public PrefItem
 {
   Q_OBJECT
@@ -474,20 +471,25 @@ private:
   QtxDirListEditor* myDirListEditor; //!< The widget wich implements in GUI the list of directories
 };
 
-/*
-  Class: QtxListResourceEdit::FontItem
-  Descr: GUI implementation of resources font item.
-*/
-
 class QtxComboBox;
 class QToolButton;
 class QFileDialog;
 
+/*!
+  \class QtxListResourceEdit::FontItem
+  GUI implementation of resources font item.
+*/
+
 class QtxListResourceEdit::FileItem : public PrefItem
 {
   Q_OBJECT
 
 private:
+  /*!
+    \class QtxListResourceEdit::FileItem::FileValidator
+    custom file validator: checks files on some rights
+  */
+
   class FileValidator : public QValidator
   {
   public:
index e0ccd4991ece5202a081f67f5519c6d14981771e..83e74d95d6236a4e25b82bd6c7ecb1a5be1ca792 100755 (executable)
@@ -48,6 +48,9 @@ static const char* list_xpm[] = {
 "................",
 "................" };
 
+/*!
+  Constructor
+*/
 QtxListView::QtxListView( const int state, QWidget* parent, const char* name, WFlags f )
 : QListView( parent, name, f ),
 myButton( 0 ),
@@ -56,6 +59,9 @@ myHeaderState( state )
   initialize();
 }
 
+/*!
+  Constructor
+*/
 QtxListView::QtxListView( QWidget* parent, const char* name, WFlags f )
 : QListView( parent, name, f ),
 myButton( 0 ),
@@ -64,6 +70,9 @@ myHeaderState( HeaderAuto )
   initialize();
 }
 
+/*!
+  Initialization
+*/
 void QtxListView::initialize()
 {
   if ( myHeaderState == HeaderButton )
@@ -91,10 +100,18 @@ void QtxListView::initialize()
   connect( header(), SIGNAL( sizeChange( int, int, int ) ), this, SLOT( onHeaderResized() ) );
 }
 
+/*!
+  Destructor
+*/
 QtxListView::~QtxListView()
 {
 }
 
+/*!
+  Add new column
+  \param label - column title
+  \param width - column width
+*/
 int QtxListView::addColumn( const QString& label, int width )
 {
   int res = QListView::addColumn( label, width );
@@ -104,6 +121,12 @@ int QtxListView::addColumn( const QString& label, int width )
   return res;
 }
 
+/*!
+  Add new column
+  \param iconset - column icon
+  \param label - column title
+  \param width - column width
+*/
 int QtxListView::addColumn( const QIconSet& iconset, const QString& label, int width ) 
 {
   int res = QListView::addColumn( iconset, label, width );
@@ -113,6 +136,10 @@ int QtxListView::addColumn( const QIconSet& iconset, const QString& label, int w
   return res;
 }
 
+/*!
+  Removes column
+  \param index - column index
+*/
 void QtxListView::removeColumn( int index ) 
 {
   QListView::removeColumn( index );
@@ -121,11 +148,19 @@ void QtxListView::removeColumn( int index )
   onHeaderResized();
 }
 
+/*!
+  \return true if column is situated in popup for show/hide columns
+*/
 bool QtxListView::appropriate( const int index ) const
 {
   return index >= 0 && index < (int)myAppropriate.count() && myAppropriate[index];
 }
 
+/*!
+  Sets appropriate state: whether column is situated in popup for show/hide columns
+  \param index - column index
+  \param on - new state
+*/
 void QtxListView::setAppropriate( const int index, const bool on )
 {
   if ( index < 0 || index >= (int)myAppropriate.count() )
@@ -134,18 +169,27 @@ void QtxListView::setAppropriate( const int index, const bool on )
   myAppropriate[index] = on ? 1 : 0;
 }
 
+/*!
+  Resizes list view and header
+*/
 void QtxListView::resize( int w, int h )
 {
   QListView::resize( w, h );
   onHeaderResized();
 }
 
+/*!
+  Shows list view
+*/
 void QtxListView::show()
 {
   QListView::show();
   onHeaderResized();
 }
 
+/*!
+  Update on resize contents
+*/
 void QtxListView::resizeContents( int w, int h )
 {
 /*
@@ -162,16 +206,28 @@ void QtxListView::resizeContents( int w, int h )
   onHeaderResized();
 }
 
+/*!
+  Shows column
+  \param ind - column index
+*/
 void QtxListView::show( int ind )
 {
   setShown( ind, true );
 }
 
+/*!
+  Hides column
+  \param ind - column index
+*/
 void QtxListView::hide( int ind )
 {
   setShown( ind, false );
 }
 
+/*!
+  \return true if column is shown
+  \param ind - column index
+*/
 bool QtxListView::isShown( int ind ) const
 {
   if ( ind>=0 && ind<header()->count() )
@@ -180,6 +236,11 @@ bool QtxListView::isShown( int ind ) const
     return false;
 }
 
+/*!
+  Shows/hides column
+  \param ind - column index
+  \param sh - new is shown state
+*/
 void QtxListView::setShown( int ind, bool sh )
 {
   if( ind<0 || ind>=header()->count() || isShown( ind )==sh )
@@ -207,6 +268,11 @@ void QtxListView::setShown( int ind, bool sh )
   updateContents();
 }
 
+/*!
+  Changes column width
+  \param c - column index
+  \param w - new width
+*/
 void QtxListView::setColumnWidth( int c, int w )
 {
   if ( myColumns.contains( c ) )
@@ -215,6 +281,9 @@ void QtxListView::setColumnWidth( int c, int w )
   QListView::setColumnWidth( c, !myColumns.contains( c ) ? w : 0 );
 }
 
+/*!
+  \return the recommended size for the widget
+*/
 QSize QtxListView::sizeHint() const
 {
   QSize sz = QListView::sizeHint();
@@ -225,6 +294,9 @@ QSize QtxListView::sizeHint() const
   return sz;
 }
 
+/*!
+  \return the recommended minimum size for the widget
+*/
 QSize QtxListView::minimumSizeHint() const
 {
   QSize sz = QListView::minimumSizeHint();
@@ -235,6 +307,9 @@ QSize QtxListView::minimumSizeHint() const
   return sz;
 }
 
+/*!
+  SLOT: called if header is resized
+*/
 void QtxListView::onHeaderResized()
 {
   if ( myHeaderState == HeaderAuto )
@@ -273,6 +348,10 @@ void QtxListView::onHeaderResized()
   }
 }
 
+/*!
+  Shows popup filled with column names to show/hide column
+  \param x, y - position of popup
+*/
 void QtxListView::showPopup( const int x, const int y )
 {
   myPopup->clear();
@@ -289,6 +368,9 @@ void QtxListView::showPopup( const int x, const int y )
     myPopup->exec( mapToGlobal( QPoint( x, y ) ) );
 }
 
+/*!
+  SLOT: shows popup on button ".." click
+*/
 void QtxListView::onButtonClicked()
 {
   if ( myHeaderState != HeaderButton )
@@ -300,6 +382,10 @@ void QtxListView::onButtonClicked()
   showPopup( x, y );
 }
 
+/*!
+  SLOT: called on popup action is activated, toggles shown state of column
+  \param id - column index
+*/
 void QtxListView::onShowHide( int id )
 {
   //if ( myHeaderState != HeaderButton )
@@ -308,12 +394,18 @@ void QtxListView::onShowHide( int id )
   setShown( id, !isShown( id ) );
 }
 
+/*!
+  Receives all resize events sent to the viewport
+*/
 void QtxListView::viewportResizeEvent( QResizeEvent* e )
 {
   QListView::viewportResizeEvent( e );
   onHeaderResized();
 }
 
+/*!
+  Custom event filter, shows popup on right button click
+*/
 bool QtxListView::eventFilter( QObject* o, QEvent* e )
 {
   if( o==header() && e->type()==QEvent::MouseButtonPress )
index 68811c5f3ec727cdcb7de047a9cdd6bf68207341..5156bc7952271138d2262051b5d95ace1f9baf83 100644 (file)
@@ -27,6 +27,9 @@
 #include <qmenubar.h>
 #include <qapplication.h>
 
+/*!
+  Constructor
+*/
 QtxLogoMgr::QtxLogoMgr( QMenuBar* mb )
 : QObject( mb ),
 myMenus( mb ),
@@ -34,6 +37,9 @@ myId( 0 )
 {
 }
 
+/*!
+  Destructor
+*/
 QtxLogoMgr::~QtxLogoMgr()
 {
 }
@@ -106,6 +112,9 @@ void QtxLogoMgr::clear()
   generate();
 }
 
+/*!
+  Inserts logo to menu bar
+*/
 void QtxLogoMgr::generate()
 {
   if ( !menuBar() )
@@ -175,6 +184,10 @@ void QtxLogoMgr::generate()
   QApplication::postEvent( menuBar()->parentWidget(), new QEvent( QEvent::LayoutHint ) );
 }
 
+/*!
+  \return index of found logo
+  \param id - logo id
+*/
 int QtxLogoMgr::find( const QString& id ) const
 {
   int idx = -1;
index b8968ef8c025d5d2c3f1cd8c1493f475b0c24936..39b385fea9ac449678443aadefe7caab8db49298 100644 (file)
@@ -47,6 +47,9 @@ private:
   QWidget*     myWidget;
 };
 
+/*!
+  Constructor
+*/
 QtxMainWindow::Filter::Filter( QWidget* wid, QtxMainWindow* mw, QObject* parent )
 : QObject( parent ),
 myMain( mw ),
@@ -55,10 +58,16 @@ myWidget( wid )
   myMain->installEventFilter( this );
 };
 
+/*!
+  Destructor
+*/
 QtxMainWindow::Filter::~Filter()
 {
 }
 
+/*!
+  Custom event filter
+*/
 bool QtxMainWindow::Filter::eventFilter( QObject* o, QEvent* e )
 {
   if ( myMain == o && e->type() == QEvent::ChildRemoved &&
@@ -73,7 +82,6 @@ bool QtxMainWindow::Filter::eventFilter( QObject* o, QEvent* e )
     Descr: Main window with support of dockable menubar/status bar
            and geometry store/retrieve.
 */
-
 QtxMainWindow::QtxMainWindow( QWidget* parent, const char* name, WFlags f )
 : QMainWindow( parent, name, f ),
 myMode( -1 ),
@@ -82,17 +90,27 @@ myStatusBar( NULL )
 {
 }
 
+/*!
+  Destructor
+*/
 QtxMainWindow::~QtxMainWindow()
 {
   setDockableMenuBar( false );
   setDockableStatusBar( false );
 }
 
+/*!
+  \return true if menu bar exists
+*/
 bool QtxMainWindow::isDockableMenuBar() const
 {
   return myMenuBar;
 }
 
+/*!
+  Creates or deletes menu bar
+  \param on - if it is true, then to create, otherwise - to delete
+*/
 void QtxMainWindow::setDockableMenuBar( const bool on )
 {
   if ( isDockableMenuBar() == on )
@@ -134,11 +152,18 @@ void QtxMainWindow::setDockableMenuBar( const bool on )
   setUpLayout();
 }
 
+/*!
+  \return true if status bar exists
+*/
 bool QtxMainWindow::isDockableStatusBar() const
 {
   return myStatusBar;
 }
 
+/*!
+  Creates or deletes status bar
+  \param on - if it is true, then to create, otherwise - to delete
+*/
 void QtxMainWindow::setDockableStatusBar( const bool on )
 {
   if ( isDockableStatusBar() == on )
@@ -185,6 +210,11 @@ void QtxMainWindow::setDockableStatusBar( const bool on )
   setUpLayout();
 }
 
+/*!
+  Retrieve the geometry information from the specified resource manager section.
+  \param resMgr - instance of ersource manager
+  \param section - section name
+*/
 void QtxMainWindow::loadGeometry( QtxResourceMgr* resMgr, const QString& section )
 {
   QString sec = section.stripWhiteSpace();
@@ -232,6 +262,9 @@ void QtxMainWindow::loadGeometry( QtxResourceMgr* resMgr, const QString& section
     myMode = winState;
 }
 
+/*!
+  Shows main window
+*/
 void QtxMainWindow::show()
 {
   if ( myMode != -1 )
@@ -242,11 +275,14 @@ void QtxMainWindow::show()
   QMainWindow::show();
 }
 
+/*!
+  Handler of custom events
+*/
 void QtxMainWindow::customEvent( QCustomEvent* e )
 {
   QMainWindow::customEvent( e );
 
-  int mode = (int)e->data();
+  size_t mode = size_t(e->data());
   switch ( mode )
   {
   case WS_Normal:
@@ -261,6 +297,12 @@ void QtxMainWindow::customEvent( QCustomEvent* e )
   }
 }
 
+/*!
+  \return relative co-ordinate by two points
+  \param type - type of result: WP_Center (center), WP_Left (left), WP_Right (right)
+  \param wh - left point
+  \param WH - right point
+*/
 int QtxMainWindow::relativeCoordinate( const int type, const int WH, const int wh ) const
 {
   int res = 0;
@@ -279,6 +321,11 @@ int QtxMainWindow::relativeCoordinate( const int type, const int WH, const int w
   return res;
 }
 
+/*!
+  Store the geometry information into the specified resource manager section.
+  \param resMgr - instance of ersource manager
+  \param section - section name
+*/
 void QtxMainWindow::saveGeometry( QtxResourceMgr* resMgr, const QString& section ) const
 {
   QString sec = section.stripWhiteSpace();
@@ -299,16 +346,28 @@ void QtxMainWindow::saveGeometry( QtxResourceMgr* resMgr, const QString& section
   resMgr->setValue( sec, "state", winState );
 }
 
+/*!
+  Custom event filter
+*/
 bool QtxMainWindow::eventFilter( QObject* o, QEvent* e )
 {
   return QMainWindow::eventFilter( o, e );
 }
 
+/*!
+  Controls whether or not the dw dock window's caption should appear
+  as a menu item on the dock window menu that lists the dock windows.
+  \param dw - window
+  \param a - if it is true, then it appears in menu
+*/
 void QtxMainWindow::setAppropriate( QDockWindow* dw, bool a )
 {
   QMainWindow::setAppropriate( dw, myStatusBar != dw && myMenuBar != dw && a );
 }
 
+/*!
+  Sets up layout
+*/
 void QtxMainWindow::setUpLayout()
 {
   QMainWindow::setUpLayout();
@@ -317,6 +376,9 @@ void QtxMainWindow::setUpLayout()
     layout()->setMenuBar( 0 );
 }
 
+/*!
+  SLOT: called on object destroyed, clears internal fields in case of deletion of menu bar or status bar
+*/
 void QtxMainWindow::onDestroyed( QObject* obj )
 {
   QObject* o = 0;
@@ -338,6 +400,10 @@ void QtxMainWindow::onDestroyed( QObject* obj )
   }
 }
 
+/*!
+  \return flag of window state by it's name
+  \param str - name of flag
+*/
 int QtxMainWindow::windowState( const QString& str ) const
 {
   static QMap<QString, int> winStateMap;
@@ -363,6 +429,10 @@ int QtxMainWindow::windowState( const QString& str ) const
   return res;
 }
 
+/*!
+  \return flag of position by it's name
+  \param str - name of position
+*/
 int QtxMainWindow::windowPosition( const QString& str ) const
 {
   static QMap<QString, int> winPosMap;
index 88bfc1061fdcf23d63ab4523fed8bfb533c649a9..ef4ac52538c26ef2ad414e9b4e553066fdff27b1 100755 (executable)
@@ -39,6 +39,11 @@ private:
     QtxMenuButton* myMenuButton;
 };
 
+/*!
+  Sets the widget's minimum size
+  \param w - width
+  \param h - height
+*/
 void QtxMenuButton::PopupMenu::setMinimumSize( int w, int h )
 {
     if ( myMenuButton->isAlignWidth() &&
@@ -49,6 +54,12 @@ void QtxMenuButton::PopupMenu::setMinimumSize( int w, int h )
 }
 
 
+/*!
+  Constructor
+  \param pos - position
+  \param parent - parent widget
+  \param name - name
+*/
 QtxMenuButton::QtxMenuButton( int pos, QWidget* parent, const char* name )
 : QPushButton( parent, name ),
 myPos( pos )
@@ -56,6 +67,12 @@ myPos( pos )
        initialize();
 }
 
+/*!
+  Constructor
+  \param text - button text
+  \param parent - parent widget
+  \param name - name
+*/
 QtxMenuButton::QtxMenuButton( const QString& text, QWidget* parent, const char* name )
 : QPushButton( parent, name ),
 myPos( Bottom )
@@ -64,6 +81,13 @@ myPos( Bottom )
        initialize();
 }
 
+/*!
+  Constructor
+  \param pos - position
+  \param text - button text
+  \param parent - parent widget
+  \param name - name
+*/
 QtxMenuButton::QtxMenuButton( int pos, const QString& text, QWidget* parent, const char* name )
 : QPushButton( parent, name ),
 myPos( pos )
@@ -72,6 +96,11 @@ myPos( pos )
        initialize();
 }
 
+/*!
+  Constructor
+  \param parent - parent widget
+  \param name - name
+*/
 QtxMenuButton::QtxMenuButton( QWidget* parent, const char* name )
 : QPushButton( parent, name ),
 myPos( Bottom )
@@ -79,10 +108,16 @@ myPos( Bottom )
        initialize();
 }
 
+/*!
+  Destructor
+*/
 QtxMenuButton::~QtxMenuButton()
 {
 }
 
+/*!
+  Initialization
+*/
 void QtxMenuButton::initialize()
 {
        myArrow = true;
@@ -96,21 +131,34 @@ void QtxMenuButton::initialize()
        connect( this, SIGNAL( clicked() ), this, SLOT( onShowPopup() ) );
 }
 
+/*!
+  \return position
+*/
 int QtxMenuButton::position() const
 {
        return myPos;
 }
 
+/*!
+  \return true if align is enabled
+*/
 bool QtxMenuButton::isAlignWidth() const
 {
     return myAlign;
 }
 
+/*!
+  \return true if arrow is shown
+*/
 bool QtxMenuButton::isArrowEnabled() const
 {
        return myArrow;
 }
 
+/*!
+  Changes position
+  \param pos - new position
+*/
 void QtxMenuButton::setPosition( const int pos )
 {
        if ( myPos == pos )
@@ -121,6 +169,10 @@ void QtxMenuButton::setPosition( const int pos )
         onShowPopup();
 }
 
+/*!
+  Changes align state
+  \param on - new align state
+*/
 void QtxMenuButton::setAlignWidth( const bool on )
 {
     if ( myAlign == on )
@@ -130,6 +182,10 @@ void QtxMenuButton::setAlignWidth( const bool on )
     updateGeometry();
 }
 
+/*!
+  Enables/disable arrow
+  \param on - new enabled state
+*/
 void QtxMenuButton::setArrowEnabled( const bool on )
 {
        if ( myArrow == on )
@@ -139,6 +195,9 @@ void QtxMenuButton::setArrowEnabled( const bool on )
     repaint();
 }
 
+/*!
+  Clears popup
+*/
 void QtxMenuButton::clear()
 {
        if ( myPopup )
@@ -147,13 +206,21 @@ void QtxMenuButton::clear()
        updateGeometry();
 }
 
+/*!
+  Removes item from popup
+  \param id - item id
+*/
 void QtxMenuButton::removeItem( int id )
 {
        if ( myPopup )
-               removeItem( id );
+               myPopup->removeItem( id );
        updateGeometry();
 }
 
+/*!
+  Inserts separator into popup
+  \param id - position
+*/
 int QtxMenuButton::insertSeparator( int id )
 {
        int res = -1;
@@ -162,6 +229,12 @@ int QtxMenuButton::insertSeparator( int id )
     return res;
 }
 
+/*!
+  Inserts item into popup
+  \param t - menu text
+  \param id - item id
+  \param index - position
+*/
 int QtxMenuButton::insertItem( const QString& t, int id, int index )
 {
        int resId = -1;
@@ -174,6 +247,13 @@ int QtxMenuButton::insertItem( const QString& t, int id, int index )
        return resId;
 }
 
+/*!
+  Inserts item into popup
+  \param is - icons
+  \param t - menu text
+  \param id - item id
+  \param index - position
+*/
 int QtxMenuButton::insertItem( const QIconSet& is, const QString& t, int id, int index )
 {
        int resId = -1;
@@ -186,6 +266,9 @@ int QtxMenuButton::insertItem( const QIconSet& is, const QString& t, int id, int
        return resId;
 }
 
+/*!
+  SLOT: calls when button is clicked, shows popup
+*/
 void QtxMenuButton::onShowPopup()
 {
        if ( !myPopup || !myPopup->count() )
@@ -224,6 +307,9 @@ void QtxMenuButton::onShowPopup()
        myPopup->exec( QPoint( x, y ) );
 }
 
+/*!
+  Custom event handler
+*/
 bool QtxMenuButton::event( QEvent* e )
 {
        if ( e->type() == QEvent::MouseButtonPress ||
@@ -237,6 +323,9 @@ bool QtxMenuButton::event( QEvent* e )
        return QPushButton::event( e );
 }
 
+/*!
+  \return the recommended size for the widget
+*/
 QSize QtxMenuButton::sizeHint() const
 {
        QSize sz = QPushButton::sizeHint();
@@ -246,6 +335,9 @@ QSize QtxMenuButton::sizeHint() const
        return sz;
 }
 
+/*!
+  \return the recommended minimum size for the widget
+*/
 QSize QtxMenuButton::minimumSizeHint() const
 {
        QSize sz = QPushButton::minimumSizeHint();
@@ -255,6 +347,9 @@ QSize QtxMenuButton::minimumSizeHint() const
        return sz;
 }
 
+/*!
+  Custom resize event handler
+*/
 void QtxMenuButton::resizeEvent( QResizeEvent* re )
 {
        if ( re )
@@ -264,11 +359,17 @@ void QtxMenuButton::resizeEvent( QResizeEvent* re )
         myPopup->setMinimumWidth( re ? re->size().width() : width() );
 }
 
+/*!
+  \return corresponding popup
+*/
 QPopupMenu* QtxMenuButton::popup() const
 {
     return myPopup;
 }
 
+/*!
+  Draws label
+*/
 void QtxMenuButton::drawButtonLabel( QPainter* p )
 {
     QPushButton::drawButtonLabel( p );
index 0034d41e4c602e4937aff4c1c4f54856b454b412..5e45174288acb9c9fa06d956fd45712328249220 100644 (file)
 
 #include "QtxOperations.h"
 
-//================================================================
-// Function : 
-// Purpose  : 
-//================================================================
+/*!
+    Default constructor
+*/
 QtxOperations::QtxOperations()
 {
 }
 
-//================================================================
-// Function : 
-// Purpose  : 
-//================================================================
+/*!
+    Destructor
+*/
 QtxOperations::~QtxOperations()
 {
 }
 
-//================================================================
-// Function : 
-// Purpose  : 
-//================================================================
+/*!
+    Creates QtxValue by it's string representation
+*/
 bool QtxOperations::createValue( const QString& str, QtxValue& v ) const
 {
     v = str;
index 9dae0b3362136bf1e8ce432acb6cc0628d461459..a4a8524a910c99645520c807a599a26d5a86ec53 100644 (file)
 #include "Qtx.h"
 #include "QtxParser.h"
 
-//================================================================
-// Class    : 
-// Purpose  : 
-//================================================================
 class QTX_EXPORT QtxOperations
 {
 public:
index 105ddb7a508dfc8729c3862d572a401574e37e59..b71f26bede1c3874a489810de99d6c567da4dc06 100644 (file)
 #include "QtxParser.h"
 #include "QtxOperations.h"
 
-//================================================================
-// Function : 
-// Purpose  : 
-//================================================================
-QtxParser::QtxParser( QtxOperations* operations,
-                      const QString& expr )
+/*!
+  Constructor
+*/
+QtxParser::QtxParser( QtxOperations* operations, const QString& expr )
 : myOperations( operations )
 {
     if( myOperations )
@@ -37,18 +35,22 @@ QtxParser::QtxParser( QtxOperations* operations,
         setLastError( OperationsNull );
 }
 
-//================================================================
-// Function : 
-// Purpose  : 
-//================================================================
+/*!
+  Destructor
+*/
 QtxParser::~QtxParser()
 {
 }
 
-//================================================================
-// Function : 
-// Purpose  : 
-//================================================================
+/*!
+  Search elements of list as substrings starting on 'offset'
+  \returns the least position of substrings inside string
+  \param list - list of substrings
+  \param str - string where search
+  \param offset - starting index for search
+  \param matchLen - the length of appropriate substring
+  \param listind - list index of appropriate substring
+*/
 int QtxParser::search( const QStringList& list, const QString& str, int offset,
                        int& matchLen, int& listind )
 {
@@ -71,19 +73,22 @@ int QtxParser::search( const QStringList& list, const QString& str, int offset,
     return min;
 }
 
-//================================================================
-// Function : 
-// Purpose  : 
-//================================================================
+/*!
+  \return substring
+  \param str - string
+  \param pos - start position of substring
+  \param len - length of substring
+*/
 QString QtxParser::note( const QString& str, int pos, int len )
 {
     return str.mid( pos, len ).stripWhiteSpace();
 }
 
-//================================================================
-// Function : 
-// Purpose  : 
-//================================================================
+/*!
+  First step of parsing: finding tokens, determining its types and creating of unsorted pseudo-postfix (with brackets)
+  \param expr - string expression
+  \param post - postfix to be created
+*/
 bool QtxParser::prepare( const QString& expr, Postfix& post )
 {
     int pos = 0, len = expr.length();
@@ -225,10 +230,10 @@ bool QtxParser::prepare( const QString& expr, Postfix& post )
     return lastError()==OK;
 }
 
-//================================================================
-// Function : 
-// Purpose  : 
-//================================================================
+/*!
+  Second step of parsing: determining types of operations
+  \param post - unsorted postfix
+*/
 bool QtxParser::setOperationTypes( Postfix& post )
 {
     Postfix::iterator aStart = post.begin(),
@@ -279,10 +284,12 @@ bool QtxParser::setOperationTypes( Postfix& post )
     return lastError()==OK;
 }
 
-//================================================================
-// Function : 
-// Purpose  : 
-//================================================================
+/*!
+  \return how many global brackets there is (for example '((2+3))' has 2 global brackets)
+  \param post - postfix to be checked
+  \param f - start index to search
+  \param l - last index to search
+*/
 int QtxParser::globalBrackets( const QtxParser::Postfix& post, int f, int l )
 {
     int i,
@@ -317,10 +324,15 @@ int QtxParser::globalBrackets( const QtxParser::Postfix& post, int f, int l )
     return br+min_br_num;
 }
 
-//================================================================
-// Function : 
-// Purpose  : 
-//================================================================
+/*!
+  Third step of parsing: sorting of postfix in order to convert it to real postfix
+  \param post - source postfix
+  \param res - destination postfix
+  \param anOpen - list of open brackets
+  \param aClose - list of close brackets
+  \param f - start index of postfix to sorting
+  \param l - last index of postfix to sorting
+*/
 bool QtxParser::sort( const Postfix& post, Postfix& res,
                       const QStringList& anOpen,
                       const QStringList& aClose,
@@ -478,10 +490,10 @@ bool QtxParser::sort( const Postfix& post, Postfix& res,
     return lastError()==OK;
 }
 
-//================================================================
-// Function : 
-// Purpose  : 
-//================================================================
+/*!
+  Build posfix by expression
+  \param expr - string expression
+*/
 bool QtxParser::parse( const QString& expr )
 {
     myPost.clear();
@@ -506,10 +518,12 @@ bool QtxParser::parse( const QString& expr )
            sort( p, myPost, opens, closes );
 }
 
-//================================================================
-// Function : 
-// Purpose  : 
-//================================================================
+/*!
+  Calculate operation
+  \param op - operation name
+  \param v1 - first argument (it is not valid for unary prefix operations and it is used to store result)
+  \param v2 - second argument (it is not valid for unary postfix operations)
+*/
 bool QtxParser::calculate( const QString& op, QtxValue& v1, QtxValue& v2 )
 {
     Error err = myOperations->isValid( op, v1.type(), v2.type() );
@@ -521,10 +535,10 @@ bool QtxParser::calculate( const QString& op, QtxValue& v1, QtxValue& v2 )
     return lastError()==OK;
 }
 
-//================================================================
-// Function : 
-// Purpose  : 
-//================================================================
+/*!
+  Calculates expression without postfix rebuilding
+  \return QtxValue as result (it is invalid if there were errors during calculation)
+*/
 QtxValue QtxParser::calculate()
 {
     setLastError( OK );
@@ -639,47 +653,47 @@ QtxValue QtxParser::calculate()
     return res;
 }
 
-//================================================================
-// Function : 
-// Purpose  : 
-//================================================================
+/*!
+  Change expression, rebuild postfix and calculate it
+  \return QtxValue as result (it is invalid if there were errors during calculation)
+*/
 QtxValue QtxParser::calculate( const QString& expr )
 {
     setExpr( expr );
     return calculate();
 }
 
-//================================================================
-// Function : 
-// Purpose  : 
-//================================================================
+/*!
+  Change expression and rebuild postfix
+*/
 bool QtxParser::setExpr( const QString& expr )
 {
     return parse( expr );
 }
 
-//================================================================
-// Function : 
-// Purpose  : 
-//================================================================
+/*!
+  \return true, if parser contain parameter
+  \param name - name of parameter
+*/
 bool QtxParser::has( const QString& name ) const
 {
     return myParameters.contains( name.stripWhiteSpace() );
 }
 
-//================================================================
-// Function : 
-// Purpose  : 
-//================================================================
+/*!
+  Sets parameter value
+  \param name - name of parameter
+  \param value - value of parameter
+*/
 void QtxParser::set( const QString& name, const QtxValue& value )
 {
     myParameters[ name.stripWhiteSpace() ] = value;
 }
 
-//================================================================
-// Function : 
-// Purpose  : 
-//================================================================
+/*!
+  Removes parameter
+  \param name - name of parameter
+*/
 bool QtxParser::remove( const QString& name )
 {
     QString sname = name.stripWhiteSpace();
@@ -689,10 +703,10 @@ bool QtxParser::remove( const QString& name )
     return res;
 }
 
-//================================================================
-// Function : 
-// Purpose  : 
-//================================================================
+/*!
+  \return value of parameter (result is invalid if there is no such parameter)
+  \param name - name of parameter
+*/
 QtxValue QtxParser::value( const QString& name ) const
 {
     QString sname = name.stripWhiteSpace();
@@ -702,10 +716,11 @@ QtxValue QtxParser::value( const QString& name ) const
         return QtxValue();
 }
 
-//================================================================
-// Function : 
-// Purpose  : 
-//================================================================
+/*!
+  Searches first parameter with assigned invalid QtxValue
+  \return true if it is found
+  \param name - variable to return name of parameter
+*/
 bool QtxParser::firstInvalid( QString& name ) const
 {
     QMap< QString, QtxValue >::const_iterator anIt = myParameters.begin(),
@@ -719,10 +734,9 @@ bool QtxParser::firstInvalid( QString& name ) const
     return false;
 }
 
-//================================================================
-// Function : 
-// Purpose  : 
-//================================================================
+/*!
+  Removes all parameters with assigned invalid QtxValues
+*/
 void QtxParser::removeInvalids()
 {
     QStringList toDelete;
@@ -738,37 +752,34 @@ void QtxParser::removeInvalids()
         myParameters.remove( *aLIt );
 }
 
-//================================================================
-// Function : 
-// Purpose  : 
-//================================================================
+/*!
+  \return last error occured during parsing
+*/
 QtxParser::Error QtxParser::lastError() const
 {
     return myLastError;
 }
 
-//================================================================
-// Function : 
-// Purpose  : 
-//================================================================
+/*!
+  Sets last error occured during parsing (for internal using only)
+*/
 void QtxParser::setLastError( QtxParser::Error err )
 {
     myLastError = err;
 }
 
-//================================================================
-// Function : 
-// Purpose  : 
-//================================================================
+/*!
+  \return string dump of internal parser postfix
+*/
 QString QtxParser::dump() const
 {
     return dump( myPost );
 }
 
-//================================================================
-// Function : 
-// Purpose  : 
-//================================================================
+/*!
+  \return string dump of postfix
+  \param post - postfix to be dumped
+*/
 QString QtxParser::dump( const Postfix& post ) const
 {
     QString res;
@@ -798,10 +809,10 @@ QString QtxParser::dump( const Postfix& post ) const
     return res;
 }
 
-//================================================================
-// Function : 
-// Purpose  : 
-//================================================================
+/*!
+  Fills list with names of parameters
+  \param list - list to be filled
+*/
 void QtxParser::paramsList( QStringList& list )
 {
     PostfixIterator anIt = myPost.begin(),
@@ -815,19 +826,18 @@ void QtxParser::paramsList( QStringList& list )
         }
 }
 
-//================================================================
-// Function : 
-// Purpose  : 
-//================================================================
+/*!
+  Removes all parameters
+*/
 void QtxParser::clear()
 {
     myParameters.clear();
 }
 
-//================================================================
-// Function : 
-// Purpose  : 
-//================================================================
+/*!
+  \return string representation for list of QtxValues
+  \param list - list to be converted
+*/
 QString QtxParser::toString( const QValueList< QtxValue >& list )
 {
     QValueList< QtxValue >::const_iterator anIt = list.begin(),
index 737fc96ceb401cabec0381e3d28a59fad8244cfd..25b5f551191f28cb88138101831ae0a3b7569a71 100644 (file)
 
 class QtxOperations;
 
+/*! \var QtxValue
+    \brief Alias for QVariant
+*/
 typedef QVariant QtxValue;
 
 
-//================================================================
-// Class    : 
-// Purpose  : 
-//================================================================
+/*!
+  \class QtxParser
+
+  This class allows to calculate values of expressions using different set of operations.
+  It is provided some of standard set of operations (arithmetics, logic, strings, etc - in QtxStdOperations.h).
+  This parser allows to use parameters with help of methods has(), set(), remove(), value(). It uses
+  postfix representation of expressions and uses class QtxOperations in order to make certain operation
+  Every instance of parser contains only one postfix, so that if expression has been changed, then postfix
+  must be rebuilt. In order to increase performance of frequent calculation for many of expressions it is 
+  recommended to use different instances of parser for expressions
+
+*/
 class QTX_EXPORT QtxParser
 {
 public:
+    /*!
+      \enum Error
+      \brief Errors during parsing
+    */
     typedef enum
     {
-        OK, OperandsNotMatch, InvalidResult, InvalidOperation,
-        OperationsNull, InvalidToken, CloseExpected, ExcessClose,
-        BracketsNotMatch, StackUnderflow, ExcessData
+        OK,               /*! \var All right */
+       OperandsNotMatch, /*! \var Types of arguments are invalid for this operation */
+       InvalidResult,    /*! \var Operation cannot find result (for example, division by zero) */
+       InvalidOperation, /*! \var Name of operation is unknown */
+        OperationsNull,   /*! \var Internal operations pointer of parser is null */
+       InvalidToken,     /*! \var It isn't operation, parameter of value  */
+       CloseExpected,    /*! \var Close bracket is expected */
+       ExcessClose,      /*! \var The one of close bracket is excess */
+        BracketsNotMatch, /*! \var Last open and this close bracket are different, for example [) */
+       StackUnderflow,   /*! \var There is no arguments in stack for operation */
+       ExcessData        /*! \var The parsing is finished, but there is more then one value in stack */
 
     } Error;
 
@@ -74,8 +97,23 @@ public:
     static QString toString( const QValueList< QtxValue >& );
 
 protected:
-    typedef enum { Value, Param, Open, Close, Pre, Post, Binary } PostfixItemType;
+    /*!
+      \enum PostfixItemType
+      \brief Types of postfix representation elements
+    */  
+    typedef enum
+    {
+      Value, /*! \var Value (number, string, etc.)*/
+      Param, /*! \var Parameter */
+      Open,  /*! \var Open bracket */
+      Close, /*! \var Close bracket */
+      Pre,   /*! \var Unary prefix operation */
+      Post,  /*! \var Unary postfix operation */
+      Binary /*! \var Binary operation */
+
+    } PostfixItemType;
 
+    /*! \var postfix representation element */
     typedef struct
     {
         QtxValue          myValue;
@@ -83,7 +121,10 @@ protected:
 
     } PostfixItem;
 
+    /*! \var postfix representation */
     typedef QValueList< PostfixItem > Postfix;
+
+    /*! \var postfix representation iterator */
     typedef Postfix::const_iterator PostfixIterator;
 
 protected:
@@ -105,6 +146,7 @@ protected:
     static int       globalBrackets( const Postfix&, int, int );
 
 private:
+    /*! \var stack of QtxValues */
     typedef QValueStack < QtxValue >  QtxValueStack;
 
 private:
index 55df5d7812f3961b874d5561840046533599d773..260c1d0906fea72aa7ab4262a8611619de6d51e1 100755 (executable)
@@ -60,11 +60,9 @@ static const char* open_icon[] = {
 "                "
 };
 
-//================================================================
-// Function : QtxPathDialog
-// Purpose  : Constructor.
-//================================================================
-
+/*!
+  Constructor.
+*/
 QtxPathDialog::QtxPathDialog( const bool import, QWidget* parent, const bool modal, const bool resize, const int buttons, WFlags f )
 : QtxDialog( parent, 0, modal, resize, buttons, f ),
 myDefault( -1 ),
@@ -85,11 +83,9 @@ myOptionsFrame( 0 )
        setFocusProxy( le );
 }
 
-//================================================================
-// Function : QtxPathDialog
-// Purpose  : Constructor.
-//================================================================
-
+/*!
+  Constructor.
+*/
 QtxPathDialog::QtxPathDialog( QWidget* parent, const bool modal, const bool resize, const int buttons, WFlags f )
 : QtxDialog( parent, 0, modal, resize, buttons, f ),
 myDefault( -1 ),
@@ -99,60 +95,51 @@ myOptionsFrame( 0 )
        initialize();
 }
 
-//================================================================
-// Function : ~QtxPathDialog
-// Purpose  : Destructor.
-//================================================================
-
+/*!
+  Destructor.
+*/
 QtxPathDialog::~QtxPathDialog()
 {
 }
 
-//================================================================
-// Function : fileName
-// Purpose  : 
-//================================================================
-
+/*!
+  \return file name
+*/
 QString QtxPathDialog::fileName() const
 {
        return fileName( defaultEntry() );
 }
 
-//================================================================
-// Function : setFileName
-// Purpose  : 
-//================================================================
-
+/*!
+  Sets file name
+  \param txt - new file name
+  \param autoExtension - auto extension determination by file
+*/
 void QtxPathDialog::setFileName( const QString& txt, const bool autoExtension )
 {
        setFileName( defaultEntry(), txt, autoExtension );
 }
 
-//================================================================
-// Function : filter
-// Purpose  : 
-//================================================================
-
+/*!
+  \return filter
+*/
 QString QtxPathDialog::filter() const
 {
        return myFilter;
 }
 
-//================================================================
-// Function : setFilter
-// Purpose  : 
-//================================================================
-
+/*!
+  Changes filter (filter is a list of masks, separated by ';;')
+  \param fltr - new filter
+*/
 void QtxPathDialog::setFilter( const QString& fltr )
 {
        myFilter = fltr;
 }
 
-//================================================================
-// Function : show
-// Purpose  : 
-//================================================================
-
+/*!
+  Shows path dialog
+*/
 void QtxPathDialog::show()
 {
        if ( hasVisibleChildren( myEntriesFrame ) )
@@ -168,11 +155,9 @@ void QtxPathDialog::show()
        QtxDialog::show();
 }
 
-//================================================================
-// Function : onBrowse
-// Purpose  : 
-//================================================================
-
+/*!
+  SLOT: called if user click button to show standard file dialog
+*/
 void QtxPathDialog::onBrowse()
 {
        const QObject* obj = sender();
@@ -247,11 +232,9 @@ void QtxPathDialog::onBrowse()
                emit fileNameChanged( fName );
 }
 
-//================================================================
-// Function : onReturnPressed
-// Purpose  : 
-//================================================================
-
+/*!
+  SLOT: called if user presses RETURN in line edit
+*/
 void QtxPathDialog::onReturnPressed()
 {
        const QObject* obj = sender();
@@ -270,31 +253,25 @@ void QtxPathDialog::onReturnPressed()
                emit fileNameChanged( fileName() );
 }
 
-//================================================================
-// Function : onTextChanged
-// Purpose  : 
-//================================================================
-
+/*!
+  SLOT: called if text in line edit is changed
+*/
 void QtxPathDialog::onTextChanged( const QString& )
 {
        validate();
 }
 
-//================================================================
-// Function : validate
-// Purpose  : 
-//================================================================
-
+/*!
+  Checks validity of text and according to it enables/disables OK, Yes buttons
+*/
 void QtxPathDialog::validate()
 {
        setButtonEnabled( isValid(), OK | Yes );
 }
 
-//================================================================
-// Function : isValid
-// Purpose  : 
-//================================================================
-
+/*!
+  \return true if selected file is valid
+*/
 bool QtxPathDialog::isValid()
 {
        bool ok = true;
@@ -305,11 +282,9 @@ bool QtxPathDialog::isValid()
        return ok;
 }
 
-//================================================================
-// Function : acceptData
-// Purpose  : 
-//================================================================
-
+/*!
+  \return true entered data is accepted
+*/
 bool QtxPathDialog::acceptData() const
 {
        bool ok = true;
@@ -383,30 +358,25 @@ bool QtxPathDialog::acceptData() const
        return ok;
 }
 
-//================================================================
-// Function : fileNameChanged
-// Purpose  : 
-//================================================================
-
+/*!
+  Some custom activity on file name changing (must be redefined, default implementation is empty
+*/
 void QtxPathDialog::fileNameChanged( int, QString )
 {
 }
 
-//================================================================
-// Function : optionsFrame
-// Purpose  : 
-//================================================================
-
+/*!
+  \return frame with options
+*/
 QFrame* QtxPathDialog::optionsFrame()
 {
        return myOptionsFrame;
 }
 
-//================================================================
-// Function : getFileName
-// Purpose  : 
-//================================================================
-
+/*!
+  \return file name
+  \param id - id of file entry
+*/
 QString QtxPathDialog::fileName( const int id ) const
 {
        QString res;
@@ -416,11 +386,12 @@ QString QtxPathDialog::fileName( const int id ) const
        return res;
 }
 
-//================================================================
-// Function : setFileName
-// Purpose  : 
-//================================================================
-
+/*!
+  Change file name of file entry
+  \param id - id of file entry
+  \param txt - new file name
+  \param autoExt - assign extension automatically
+*/
 void QtxPathDialog::setFileName( const int id, const QString& txt, const bool autoExt )
 {
        int mode;
@@ -435,11 +406,10 @@ void QtxPathDialog::setFileName( const int id, const QString& txt, const bool au
        }
 }
 
-//================================================================
-// Function : fileEntry
-// Purpose  : 
-//================================================================
-
+/*!
+  \return line edit of file entry
+  \param id - id of file entry
+*/
 QLineEdit* QtxPathDialog::fileEntry( const int id ) const
 {
        QLineEdit* le = 0;
@@ -449,11 +419,11 @@ QLineEdit* QtxPathDialog::fileEntry( const int id ) const
        return le;
 }
 
-//================================================================
-// Function : fileEntry
-// Purpose  : 
-//================================================================
-
+/*!
+  \return line edit and mode of file entry
+  \param id - id of file entry
+  \param theMode - for return mode of file entry
+*/
 QLineEdit* QtxPathDialog::fileEntry( const int theId, int& theMode ) const
 {
        QLineEdit* le = 0;
@@ -466,11 +436,13 @@ QLineEdit* QtxPathDialog::fileEntry( const int theId, int& theMode ) const
        return le;
 }
 
-//================================================================
-// Function : createFileEntry
-// Purpose  : 
-//================================================================
-
+/*!
+  Creates file entry
+  \return id of just created file entry
+  \param lab - title of entry
+  \param mode - mode of entry
+  \param id - proposed id (if it is -1, then id will be chosen automatically)
+*/
 int QtxPathDialog::createFileEntry( const QString& lab, const int mode, const int id )
 {
        int num = id;
@@ -500,31 +472,26 @@ int QtxPathDialog::createFileEntry( const QString& lab, const int mode, const in
        return num;
 }
 
-//================================================================
-// Function : defaultEntry
-// Purpose  : 
-//================================================================
-
+/*!
+  \return id of default entry
+*/
 int QtxPathDialog::defaultEntry() const
 {
        return myDefault;
 }
 
-//================================================================
-// Function : setDefaultEntry
-// Purpose  : 
-//================================================================
-
+/*!
+  Change default entry id
+  \param id - new default entry id
+*/
 void QtxPathDialog::setDefaultEntry( const int id )
 {
        myDefault = id;
 }
 
-//================================================================
-// Function : initialize
-// Purpose  : 
-//================================================================
-
+/*!
+  Initialize dialog layout
+*/
 void QtxPathDialog::initialize()
 {
        setCaption( tr( "File dialog" ) );
@@ -539,11 +506,9 @@ void QtxPathDialog::initialize()
        myOptionsFrame = new QFrame( mainGroup );
 }
 
-//================================================================
-// Function : prepareFilters
-// Purpose  : 
-//================================================================
-
+/*!
+  \return list of filters
+*/
 QStringList QtxPathDialog::prepareFilters() const
 {
        QStringList res;
@@ -564,11 +529,9 @@ QStringList QtxPathDialog::prepareFilters() const
        return res;
 }
 
-//================================================================
-// Function : filterWildCards
-// Purpose  : 
-//================================================================
-
+/*!
+  \return list of filters with filtered wild cards
+*/
 QStringList QtxPathDialog::filterWildCards( const QString& theFilter ) const
 {
        QStringList res;
@@ -586,11 +549,11 @@ QStringList QtxPathDialog::filterWildCards( const QString& theFilter ) const
        return res;
 }
 
-//================================================================
-// Function : autoExtension
-// Purpose  : 
-//================================================================
-
+/*!
+  \return file name with assigned extension
+  \param theFileName - source file name
+  \param theFilter - list of filters
+*/
 QString QtxPathDialog::autoExtension( const QString& theFileName, const QString& theFilter ) const
 {
        QString fName = theFileName;
@@ -620,11 +583,10 @@ QString QtxPathDialog::autoExtension( const QString& theFileName, const QString&
        return fName;
 }
 
-//================================================================
-// Function : hasVisibleChildren
-// Purpose  : 
-//================================================================
-
+/*!
+  \return true if widget has visible children
+  \param wid - widget
+*/
 bool QtxPathDialog::hasVisibleChildren( QWidget* wid ) const
 {
        bool res = false;
index 5da53d034f352bb953d196f81ccf114012de1329..f46537eac523725a1063cb6c1a08e7f37b02d857 100644 (file)
@@ -45,6 +45,9 @@ private:
   int           myAlign;
 };
 
+/*!
+  Constructor
+*/
 QtxPopupMenu::TitleMenuItem::TitleMenuItem( const QString& txt, const QIconSet& ico, const int align )
 : QCustomMenuItem(),
 myText( txt ),
@@ -53,26 +56,42 @@ myAlign( align )
 {
 }
 
+/*!
+  Destructor
+*/
 QtxPopupMenu::TitleMenuItem::~TitleMenuItem()
 {
 }
 
+/*!
+  \return  TRUE if this item wants to span the entire popup menu width  
+*/
 bool QtxPopupMenu::TitleMenuItem::fullSpan() const
 {
   return true;
 }
 
+/*!
+  \return TRUE if this item is just a separator
+*/
 bool QtxPopupMenu::TitleMenuItem::isSeparator() const
 {
   return false;
 }
 
+/*!
+  Changes font of item
+  \param font - new font
+*/
 void QtxPopupMenu::TitleMenuItem::setFont( const QFont& font )
 {
   myFont = font;
   myFont.setBold( true );
 }
 
+/*!
+  Draws item
+*/
 void QtxPopupMenu::TitleMenuItem::paint( QPainter* p, const QColorGroup& cg,
                                          bool act, bool enabled, int x, int y, int w, int h )
 {
@@ -119,6 +138,9 @@ void QtxPopupMenu::TitleMenuItem::paint( QPainter* p, const QColorGroup& cg,
   p->setFont( f );
 }
 
+/*!
+  \return the recommended size for item
+*/
 QSize QtxPopupMenu::TitleMenuItem::sizeHint()
 {
   QFontMetrics fM( myFont );
@@ -132,10 +154,8 @@ QSize QtxPopupMenu::TitleMenuItem::sizeHint()
 }
 
 /*!
-    Class: QtxPopupMenu [Public]
-    Descr: Popup menu item with title.
+  Constructor
 */
-
 QtxPopupMenu::QtxPopupMenu( QWidget* parent, const char* name )
 : QPopupMenu( parent, name ),
 myId( -1 ),
@@ -144,30 +164,49 @@ myAlign( AlignCenter )
 {
 }
 
+/*!
+  Destructor
+*/
 QtxPopupMenu::~QtxPopupMenu()
 {
 }
 
+/*!
+  \return popup menu title
+*/
 QString QtxPopupMenu::titleText() const
 {
   return myText;
 }
 
+/*!
+  \return popup menu icon
+*/
 QIconSet QtxPopupMenu::titleIcon() const
 {
   return myIcon;
 }
 
+/*!
+  \return popup menu title policy
+*/
 int QtxPopupMenu::titlePolicy() const
 {
   return myPolicy;
 }
 
+/*!
+  \return popup menu title alignment
+*/
 int QtxPopupMenu::titleAlignment() const
 {
   return myAlign;
 }
 
+/*!
+  Changes title text
+  \param txt - new text
+*/
 void QtxPopupMenu::setTitleText( const QString& txt )
 {
   if ( myText == txt )
@@ -178,6 +217,10 @@ void QtxPopupMenu::setTitleText( const QString& txt )
   updateTitle();
 }
 
+/*!
+  Changes title icon
+  \param icon - new icon
+*/
 void QtxPopupMenu::setTitleIcon( const QIconSet& ico )
 {
   myIcon = ico;
@@ -185,6 +228,10 @@ void QtxPopupMenu::setTitleIcon( const QIconSet& ico )
   updateTitle();
 }
 
+/*!
+  Changes title policy
+  \param p - new policy
+*/
 void QtxPopupMenu::setTitlePolicy( const int p )
 {
   if ( myPolicy == p )
@@ -195,6 +242,10 @@ void QtxPopupMenu::setTitlePolicy( const int p )
   updateTitle();
 }
 
+/*!
+  Changes title alignment
+  \param a - new alignment
+*/
 void QtxPopupMenu::setTitleAlignment( const int a )
 {
   if ( myAlign == a )
@@ -205,6 +256,9 @@ void QtxPopupMenu::setTitleAlignment( const int a )
   updateTitle();
 }
 
+/*!
+  Shows menu
+*/
 void QtxPopupMenu::show()
 {
   insertTitle();
@@ -212,6 +266,9 @@ void QtxPopupMenu::show()
   QPopupMenu::show();
 }
 
+/*!
+  Hides menu
+*/
 void QtxPopupMenu::hide()
 {
   QPopupMenu::hide();
@@ -219,12 +276,21 @@ void QtxPopupMenu::hide()
   removeTitle();
 }
 
+/*!
+  Creates title item
+  \param txt - item text
+  \param icon - item icon
+  \param align - item alignment
+*/
 QtxPopupMenu::TitleMenuItem* QtxPopupMenu::createTitleItem( const QString& txt, const QIconSet& ico,
                                                             const int align ) const
 {
   return new TitleMenuItem( txt, ico, align );
 }
 
+/*!
+  Inserts title item to popup menu
+*/
 void QtxPopupMenu::insertTitle()
 {
   if ( myId != -1 || titlePolicy() == TitleOff ||
@@ -237,6 +303,9 @@ void QtxPopupMenu::insertTitle()
   setItemEnabled( myId, false );
 }
 
+/*!
+  Removes title item from popup menu
+*/
 void QtxPopupMenu::removeTitle()
 {
   if ( myId == -1 )
@@ -246,6 +315,9 @@ void QtxPopupMenu::removeTitle()
   myId = -1;
 }
 
+/*!
+  Updates title item
+*/
 void QtxPopupMenu::updateTitle()
 {
   if ( myId != -1 )
index f01716c165350c93755c30802de8718e746d4f84..37d0cbbc1421fcd2484c899a7dcd0ecb7d5b7909 100644 (file)
 #include <qpopupmenu.h>
 #include <qdatetime.h>
 
-//================================================================
-// Function : 
-// Purpose  : 
-//================================================================
+
+/*!
+  \return value of global parameter (depending on whole selection, but not dependending on one object of selection)
+  \param str - name of parameter
+
+  By default, it returns count of selected objects ("selcount") and list of parameters ("$<name>")
+*/
 QtxValue QtxPopupMgr::Selection::globalParam( const QString& str ) const
 {
   if( str==selCountParam() )
@@ -54,37 +57,33 @@ QtxValue QtxPopupMgr::Selection::globalParam( const QString& str ) const
     return QtxValue();
 }
 
-//================================================================
-// Function : 
-// Purpose  : 
-//================================================================
+/*!
+  \return symbole to detect name of parameter list
+*/
 QChar QtxPopupMgr::Selection::equality() const
 {
   return defEquality();
 }
 
-//================================================================
-// Function : 
-// Purpose  : 
-//================================================================
+/*!
+  \return name of parameter for count of selected objects
+*/
 QString QtxPopupMgr::Selection::selCountParam() const
 {
   return defSelCountParam();
 }
 
-//================================================================
-// Function : 
-// Purpose  : 
-//================================================================
+/*!
+  \return default symbole to detect name of parameter list
+*/
 QChar QtxPopupMgr::Selection::defEquality()
 {
     return '$';
 }
 
-//================================================================
-// Function : 
-// Purpose  : 
-//================================================================
+/*!
+  \return default name of parameter for count of selected objects
+*/
 QString QtxPopupMgr::Selection::defSelCountParam()
 {
     return "selcount";
@@ -92,12 +91,15 @@ QString QtxPopupMgr::Selection::defSelCountParam()
 
 
 
+/*!
+  \class QtxCacheSelection
 
+  Special selection class, that caches parameter values.
+  Every parameter during popup building is calculated only one time,
+  although it may be included to many rules. After calculation
+  it is stored in internal map
+*/
 
-//================================================================
-// Class : 
-// Purpose  : 
-//================================================================
 class QtxCacheSelection : public QtxPopupMgr::Selection
 {
 public:
@@ -115,36 +117,37 @@ private:
   CacheMap                   myParamCache;
 };
 
-//================================================================
-// Function : 
-// Purpose  : 
-//================================================================
+/*!
+  Constructor
+  \param sel - base selection used for parameter calculation
+*/
 QtxCacheSelection::QtxCacheSelection( QtxPopupMgr::Selection* sel )
 : mySel( sel )
 {
 }
 
-//================================================================
-// Function : 
-// Purpose  : 
-//================================================================
+/*!
+  Destructor
+*/
 QtxCacheSelection::~QtxCacheSelection()
 {
 }
 
-//================================================================
-// Function : 
-// Purpose  : 
-//================================================================
+/*!
+  \return count of selected objects
+*/
 int QtxCacheSelection::count() const
 {
   return mySel ? mySel->count() : 0;
 }
 
-//================================================================
-// Function : 
-// Purpose  : 
-//================================================================
+/*!
+  Calculates and caches parameters.
+  Already calculated parameters are returned without calculation
+  \return parameter value
+  \param i - index of selected object
+  \param name - name of parameter
+*/
 QtxValue QtxCacheSelection::param( const int i, const QString& name ) const
 {
   QString param_name = name + "#####" + QString::number( i );
@@ -161,10 +164,12 @@ QtxValue QtxCacheSelection::param( const int i, const QString& name ) const
   }
 }
 
-//================================================================
-// Function : 
-// Purpose  : 
-//================================================================
+/*!
+  Calculates and caches global parameters.
+  Already calculated parameters are returned without calculation
+  \return parameter value
+  \param name - name of parameter
+*/
 QtxValue QtxCacheSelection::globalParam( const QString& name ) const
 {
   if( myParamCache.contains( name ) )
@@ -183,11 +188,10 @@ QtxValue QtxCacheSelection::globalParam( const QString& name ) const
 
 
 
-
-//================================================================
-// Function : 
-// Purpose  : 
-//================================================================
+/*!
+  Constructor
+  \param mgr - popup manager
+*/
 QtxPopupMgr::Operations::Operations( QtxPopupMgr* mgr )
 : QtxStrings(),
   myPopupMgr( mgr )
@@ -201,19 +205,19 @@ QtxPopupMgr::Operations::Operations( QtxPopupMgr* mgr )
     myParser = new QtxParser( mgr->myOperations );
 }
 
-//================================================================
-// Function : 
-// Purpose  : 
-//================================================================
+/*!
+  Destructor
+  Deletes internal parser
+*/
 QtxPopupMgr::Operations::~Operations()
 {
     delete myParser;
 }
 
-//================================================================
-// Function : 
-// Purpose  : 
-//================================================================
+/*!
+    \return priority of popup operation 'op'.
+    \param isBin indicate whether the operation is binary
+*/
 int QtxPopupMgr::Operations::prior( const QString& op, bool isBin ) const
 {
     if( !isBin && ( op=="every" || op=="any" || op=="onlyone" ) )
@@ -223,10 +227,13 @@ int QtxPopupMgr::Operations::prior( const QString& op, bool isBin ) const
 
 }
 
-//================================================================
-// Function : 
-// Purpose  : 
-//================================================================
+/*!
+    Calculates result of operation
+    \return one of error states
+    \param op - name of operation
+    \param v1 - first operation argument (must be used also to store result)
+    \param v2 - second operation argument
+*/
 QtxParser::Error QtxPopupMgr::Operations::calculate
     ( const QString& op, QtxValue& v1, QtxValue& v2 ) const
 {
@@ -299,10 +306,9 @@ QtxParser::Error QtxPopupMgr::Operations::calculate
         return QtxStrings::calculate( op, v1, v2 );
 }
 
-//================================================================
-// Function : 
-// Purpose  : 
-//================================================================
+/*!
+  Clears internal map of values
+*/
 void QtxPopupMgr::Operations::clear()
 {
     myValues.clear();
@@ -315,11 +321,9 @@ void QtxPopupMgr::Operations::clear()
 
 
 
-
-//================================================================
-// Function : 
-// Purpose  : 
-//================================================================
+/*!
+  Constructor
+*/
 QtxPopupMgr::QtxPopupMgr( QPopupMenu* popup, QObject* parent )
 : QtxActionMenuMgr( popup, parent ),
   myCurrentSelection( 0 )
@@ -327,18 +331,16 @@ QtxPopupMgr::QtxPopupMgr( QPopupMenu* popup, QObject* parent )
     createOperations();
 }
 
-//================================================================
-// Function : 
-// Purpose  : 
-//================================================================
+/*!
+  Destructor
+*/
 QtxPopupMgr::~QtxPopupMgr()
 {
 }
 
-//================================================================
-// Function : 
-// Purpose  : 
-//================================================================
+/*!
+  Creates popup operations instance
+*/
 void QtxPopupMgr::createOperations()
 {
     myOperations = new QtxListOfOperations;
@@ -349,10 +351,13 @@ void QtxPopupMgr::createOperations()
     myOperations->append( "custom",  new Operations( this ), 200 );
 }
 
-//================================================================
-// Function : 
-// Purpose  : 
-//================================================================
+/*!
+  Additional version of registerAction
+  \param act - action to be registered
+  \param visible - rule for visibility state
+  \param toggle - rule for toggle on state
+  \param id - proposed id (if it is less than 0, then id will be generated automatically)
+*/
 int QtxPopupMgr::registerAction( QAction* act,
                                  const QString& visible,
                                  const QString& toggle,
@@ -364,10 +369,10 @@ int QtxPopupMgr::registerAction( QAction* act,
     return _id;
 }
 
-//================================================================
-// Function : 
-// Purpose  : 
-//================================================================
+/*!
+  Removes action from internal map
+  \param id - action id
+*/
 void QtxPopupMgr::unRegisterAction( const int id )
 {
     QAction* act = action( id );
@@ -379,28 +384,32 @@ void QtxPopupMgr::unRegisterAction( const int id )
     //QtxActionMenuMgr::unRegisterAction( id );
 }
 
-//================================================================
-// Function : 
-// Purpose  : 
-//================================================================
+/*!
+  \return true if manager has rule for action
+  \param act - action
+  \param visibility - if it is true, then rule for "visibility" is checked, otherwise - for "toggle"
+*/
 bool QtxPopupMgr::hasRule( QAction* act, bool visibility ) const
 {
     return map( visibility ).contains( act );
 }
 
-//================================================================
-// Function : 
-// Purpose  : 
-//================================================================
+/*!
+  \return true if manager has rule for action
+  \param id - action id
+  \param visibility - if it is true, then rule for "visibility" is checked, otherwise - for "toggle"
+*/
 bool QtxPopupMgr::hasRule( const int id, bool visibility ) const
 {
     return hasRule( action( id ), visibility );
 }
 
-//================================================================
-// Function : 
-// Purpose  : 
-//================================================================
+/*!
+  Sets new rule for action
+  \param act - action
+  \param rule - string expression of rule
+  \param visibility - if it is true, then rule for "visibility" will be set, otherwise - for "toggle"
+*/
 void QtxPopupMgr::setRule( QAction* act, const QString& rule, bool visibility )
 {
     if( !act || rule.isEmpty() )
@@ -423,19 +432,21 @@ void QtxPopupMgr::setRule( QAction* act, const QString& rule, bool visibility )
     }
 }
 
-//================================================================
-// Function : 
-// Purpose  : 
-//================================================================
+/*!
+  Sets new rule for action
+  \param id - action id
+  \param rule - string expression of rule
+  \param visibility - if it is true, then rule for "visibility" will be set, otherwise - for "toggle"
+*/
 void QtxPopupMgr::setRule( const int id, const QString& rule, bool visibility )
 {
     setRule( action( id ), rule, visibility );
 }
 
-//================================================================
-// Function : 
-// Purpose  : 
-//================================================================
+/*!
+  \return true if parser has finished work without errors
+  \param p - parser
+*/
 bool result( QtxParser* p )
 {
     bool res = false;
@@ -449,10 +460,11 @@ bool result( QtxParser* p )
     return res;
 }
 
-//================================================================
-// Function : 
-// Purpose  : 
-//================================================================
+/*!
+  Fills parser parameters with help of Selection::globalParam() method
+  \param p - parser
+  \param specific - list will be filled with names of parameters depending on selection objects (not global)
+*/
 void QtxPopupMgr::setParams( QtxParser* p, QStringList& specific ) const
 {
     if( !p || !myCurrentSelection )
@@ -473,6 +485,10 @@ void QtxPopupMgr::setParams( QtxParser* p, QStringList& specific ) const
     }
 }
 
+/*!
+  \return true if 'v1'<'v2'
+  This function can work with many types of values
+*/
 bool operator<( const QtxValue& v1, const QtxValue& v2 )
 {
   QVariant::Type t1 = v1.type(), t2 = v2.type();
@@ -512,10 +528,11 @@ bool operator<( const QtxValue& v1, const QtxValue& v2 )
     return t1<t2;
 }
 
-//================================================================
-// Function : 
-// Purpose  : 
-//================================================================
+/*!
+  \return true if rule of action is satisfied on current selection
+  \param act - action
+  \param visibility - what rule is checked: for visibility(true) or for toggle(false)
+*/
 bool QtxPopupMgr::isSatisfied( QAction* act, bool visibility ) const
 {
   QString menu = act->menuText();
@@ -580,10 +597,11 @@ bool QtxPopupMgr::isSatisfied( QAction* act, bool visibility ) const
   return res;
 }
 
-//================================================================
-// Function : 
-// Purpose  : 
-//================================================================
+/*!
+  \return true if item corresponding to action is visible
+  \param actId - action id
+  \param place - index of place
+*/
 bool QtxPopupMgr::isVisible( const int actId, const int place ) const
 {
     bool res = QtxActionMenuMgr::isVisible( actId, place );
@@ -593,10 +611,11 @@ bool QtxPopupMgr::isVisible( const int actId, const int place ) const
     return res;
 }
 
-//================================================================
-// Function : 
-// Purpose  : 
-//================================================================
+/*!
+  Updates popup according to selection
+  \param p - popup menu
+  \param sel - selection
+*/
 void QtxPopupMgr::updatePopup( QPopupMenu* p, Selection* sel )
 {
   QTime t1 = QTime::currentTime();
@@ -620,19 +639,21 @@ void QtxPopupMgr::updatePopup( QPopupMenu* p, Selection* sel )
   delete myCurrentSelection;
 }
 
-//================================================================
-// Function : 
-// Purpose  : 
-//================================================================
+/*!
+  \return reference to map of rules
+  \param visibility - type of map: visibility of toggle
+*/
 QtxPopupMgr::RulesMap& QtxPopupMgr::map( bool visibility ) const
 {
     return ( RulesMap& )( visibility ? myVisibility : myToggle );
 }
 
-//================================================================
-// Function : 
-// Purpose  : 
-//================================================================
+/*!
+  Loads actions description from file
+  \param fname - name of file
+  \param r - reader of file
+  \return true on success
+*/
 bool QtxPopupMgr::load( const QString& fname, QtxActionMgr::Reader& r )
 {
   PopupCreator cr( &r, this );
@@ -642,10 +663,11 @@ bool QtxPopupMgr::load( const QString& fname, QtxActionMgr::Reader& r )
 
 
 
-//================================================================
-// Function : 
-// Purpose  : 
-//================================================================
+/*!
+  Constructor
+  \param r - menu reader
+  \param mgr - menu manager
+*/
 QtxPopupMgr::PopupCreator::PopupCreator( QtxActionMgr::Reader* r,
                                          QtxPopupMgr* mgr )
 : QtxActionMgr::Creator( r ),
@@ -653,18 +675,20 @@ QtxPopupMgr::PopupCreator::PopupCreator( QtxActionMgr::Reader* r,
 {
 }
 
-//================================================================
-// Function : 
-// Purpose  : 
-//================================================================
-QtxPopupMgr::PopupCreator::~PopupCreator()
+/*!
+  Destructor
+*/QtxPopupMgr::PopupCreator::~PopupCreator()
 {
 }
 
-//================================================================
-// Function : 
-// Purpose  : 
-//================================================================
+
+/*!
+  Appends new menu items
+  \param tag - tag of item
+  \param subMenu - it has submenu
+  \param attr - list of attributes
+  \param pId - id of action corresponding to parent item
+*/
 int QtxPopupMgr::PopupCreator::append( const QString& tag, const bool subMenu,
                                        const ItemAttributes& attr, const int pId )
 {
@@ -716,19 +740,19 @@ int QtxPopupMgr::PopupCreator::append( const QString& tag, const bool subMenu,
   return res;
 }
 
-//================================================================
-// Function : 
-// Purpose  : 
-//================================================================
+/*!
+  \return visibility rule by attributes
+  Default implementation is empty
+*/
 QString QtxPopupMgr::PopupCreator::visibleRule( const ItemAttributes& ) const
 {
   return QString::null;
 }
 
-//================================================================
-// Function : 
-// Purpose  : 
-//================================================================
+/*!
+  \return toggle rule by attributes
+  Default implementation is empty
+*/
 QString QtxPopupMgr::PopupCreator::toggleRule( const ItemAttributes& ) const
 {
   return QString::null;
index a75a7dcedba63de4751788afd1357481b0533305..7e8d2ff134cc48c2ba04580df3b284c22912a1ba 100644 (file)
 
 class QtxListOfOperations;
 
-//================================================================
-// Class    : 
-// Purpose  : 
-//================================================================
 class QTX_EXPORT QtxPopupMgr : public QtxActionMenuMgr
 {
     Q_OBJECT
index e499236ff9fa1af7dc748fc0aca2c358ea1e1ee0..d4398e2adae7048f9ea85544c1090d07f51c81ec 100644 (file)
 
 #include "QtxResourceMgr.h"
 
-/*
-  Class: QtxResourceEdit
-  Descr: Class for managing preferences items
-*/
 
+/*!
+  Constructor
+*/
 QtxResourceEdit::QtxResourceEdit( QtxResourceMgr* mgr )
 : myResMgr( mgr )
 {
 }
 
+/*!
+  Destructor
+*/
 QtxResourceEdit::~QtxResourceEdit()
 {
   ItemMap items;
@@ -44,11 +46,22 @@ QtxResourceEdit::~QtxResourceEdit()
       delete itr.data();
 }
 
+/*!
+  \return assigned resource manager
+*/
 QtxResourceMgr* QtxResourceEdit::resourceMgr() const
 {
   return myResMgr;
 }
 
+/*!
+  Adds new item
+  \param label - label of widget to edit preference
+  \param pId - parent item id
+  \param type - type of item
+  \param section - section of resource assigned with item
+  \param param - name of resource assigned with item
+*/
 int QtxResourceEdit::addItem( const QString& label, const int pId, const int type,
                               const QString& section, const QString& param )
 {
@@ -72,6 +85,11 @@ int QtxResourceEdit::addItem( const QString& label, const int pId, const int typ
   return i->id();
 }
 
+/*!
+  \return value of item property
+  \param id - item id
+  \propName - propertyName
+*/
 QVariant QtxResourceEdit::itemProperty( const int id, const QString& propName ) const
 {
   QVariant propValue;
@@ -81,6 +99,12 @@ QVariant QtxResourceEdit::itemProperty( const int id, const QString& propName )
   return propValue;
 }
 
+/*!
+  Sets value of item property
+  \param id - item id
+  \propName - propertyName
+  \propValue - new value of property
+*/
 void QtxResourceEdit::setItemProperty( const int id, const QString& propName, const QVariant& propValue )
 {
   Item* i = item( id );
@@ -88,6 +112,12 @@ void QtxResourceEdit::setItemProperty( const int id, const QString& propName, co
     i->setProperty( propName, propValue );
 }
 
+/*!
+  \return resource assigned with item
+  \param id - item id
+  \param section - to return section of resource
+  \param param - to return name of resource
+*/
 void QtxResourceEdit::resource( const int id, QString& sec, QString& param ) const
 {
   Item* i = item( id );
@@ -95,6 +125,9 @@ void QtxResourceEdit::resource( const int id, QString& sec, QString& param ) con
     i->resource( sec, param );
 }
 
+/*!
+  Stores all values to resource manager
+*/
 void QtxResourceEdit::store()
 {
   QMap<Item*, QString> before;
@@ -112,18 +145,27 @@ void QtxResourceEdit::store()
   changedResources( changed );
 }
 
+/*!
+  Retrieve all values from resource manager
+*/
 void QtxResourceEdit::retrieve()
 {
   for ( ItemMap::ConstIterator it = myItems.begin(); it != myItems.end(); ++it )
     it.data()->retrieve();
 }
 
+/*!
+  Stores all values to backup container
+*/
 void QtxResourceEdit::toBackup()
 {
   myBackup.clear();
   resourceValues( myBackup );
 }
 
+/*!
+  Retrieve all values from backup container
+*/
 void QtxResourceEdit::fromBackup()
 {
   QMap<Item*, QString> before;
@@ -140,10 +182,17 @@ void QtxResourceEdit::fromBackup()
   changedResources( changed );
 }
 
+/*!
+  Updates resource edit (default implementation is empty)
+*/
 void QtxResourceEdit::update()
 {
 }
 
+/*!
+  \return item by it's id
+  \param id - item id 
+*/
 QtxResourceEdit::Item* QtxResourceEdit::item( const int id ) const
 {
   Item* i = 0;
@@ -152,6 +201,10 @@ QtxResourceEdit::Item* QtxResourceEdit::item( const int id ) const
   return i;
 }
 
+/*!
+  \return item by it's title (finds first item)
+  \param title - item title 
+*/
 QtxResourceEdit::Item* QtxResourceEdit::item( const QString& title ) const
 {
   Item* i = 0;
@@ -163,6 +216,11 @@ QtxResourceEdit::Item* QtxResourceEdit::item( const QString& title ) const
   return i;
 }
 
+/*!
+  \return item by it's title and parent id
+  \param title - item title 
+  \param pId - parent id
+*/
 QtxResourceEdit::Item* QtxResourceEdit::item( const QString& title, const int pId ) const
 {
   Item* i = 0;
@@ -175,6 +233,13 @@ QtxResourceEdit::Item* QtxResourceEdit::item( const QString& title, const int pI
   return i;
 }
 
+/*!
+  Creates item
+  \return new item
+  \param label - text of label for new item
+  \param type - type of new item
+  \param pId - parent id
+*/
 QtxResourceEdit::Item* QtxResourceEdit::createItem( const QString& label, const int type, const int pId )
 {
   Item* i = 0;
@@ -193,6 +258,10 @@ QtxResourceEdit::Item* QtxResourceEdit::createItem( const QString& label, const
   return i;
 }
 
+/*!
+  Removes item
+  \param item - item to be removed
+*/
 void QtxResourceEdit::removeItem( Item* item )
 {
   if ( !item )
@@ -204,6 +273,10 @@ void QtxResourceEdit::removeItem( Item* item )
   itemRemoved( item );
 }
 
+/*!
+  \return children items of resource edit
+  \param lst - list of items to be filled with children
+*/
 void QtxResourceEdit::childItems( QPtrList<Item>& lst ) const
 {
   lst.clear();
@@ -211,6 +284,10 @@ void QtxResourceEdit::childItems( QPtrList<Item>& lst ) const
     lst.append( it.current() );
 }
 
+/*!
+  \return all resources values from widgets
+  \param map - map to be filled by resources values
+*/
 void QtxResourceEdit::resourceValues( QMap<int, QString>& map ) const
 {
   QString sect, name;
@@ -222,6 +299,10 @@ void QtxResourceEdit::resourceValues( QMap<int, QString>& map ) const
   }
 }
 
+/*!
+  \return all resources values from widgets
+  \param map - map to be filled by resources values
+*/
 void QtxResourceEdit::resourceValues( QMap<Item*, QString>& map ) const
 {
   QString sect, name;
@@ -233,6 +314,10 @@ void QtxResourceEdit::resourceValues( QMap<Item*, QString>& map ) const
   }
 }
 
+/*!
+  Sets to widgets all resources values from map
+  \param map - map with resources values
+*/
 void QtxResourceEdit::setResourceValues( QMap<int, QString>& map ) const
 {
   for ( QMap<int, QString>::ConstIterator it = map.begin(); it != map.end(); ++it )
@@ -243,13 +328,23 @@ void QtxResourceEdit::setResourceValues( QMap<int, QString>& map ) const
   }
 }
 
+/*!
+  Sets to widgets all resources values from map
+  \param map - map with resources values
+*/
 void QtxResourceEdit::setResourceValues( QMap<Item*, QString>& map ) const
 {
   for ( QMap<Item*, QString>::ConstIterator it = map.begin(); it != map.end(); ++it )
     it.key()->setResourceValue( it.data() );
 }
 
-
+/*!
+   Compares two map of resources values and finds different ones
+   \param map1 - first map
+   \param map2 - second map
+   \param resMap - map to be filled with different values
+   \param fromFirst - if it is true, then resMap will be filled with values from first map, otherwise - from second
+*/
 void QtxResourceEdit::differentValues( const QMap<int, QString>& map1, const QMap<int, QString>& map2,
                                        QMap<int, QString>& resMap, const bool fromFirst ) const
 {
@@ -264,6 +359,13 @@ void QtxResourceEdit::differentValues( const QMap<int, QString>& map1, const QMa
   }
 }
 
+/*!
+   Compares two map of resources values and finds different ones
+   \param map1 - first map
+   \param map2 - second map
+   \param resMap - map to be filled with different values
+   \param fromFirst - if it is true, then resMap will be filled with values from first map, otherwise - from second
+*/
 void QtxResourceEdit::differentValues( const QMap<Item*, QString>& map1, const QMap<Item*, QString>& map2,
                                        QMap<Item*, QString>& resMap, const bool fromFirst ) const
 {
@@ -278,23 +380,31 @@ void QtxResourceEdit::differentValues( const QMap<Item*, QString>& map1, const Q
   }
 }
 
+/*!
+  Makes some activity on resource changing (called from store() method)
+  \sa store()
+*/
 void QtxResourceEdit::changedResources( const QMap<Item*, QString>& )
 {
 }
 
+/*!
+  Some activity on item addition (default implementation is empty)
+*/
 void QtxResourceEdit::itemAdded( Item* )
 {
 }
 
+/*!
+  Some activity on item removing (default implementation is empty)
+*/
 void QtxResourceEdit::itemRemoved( Item* )
 {
 }
 
-/*
-  Class: QtxResourceEdit::Item
-  Descr: Class for incapsulation of one preference item
+/*!
+  Constructor
 */
-
 QtxResourceEdit::Item::Item( QtxResourceEdit* edit, Item* parent )
 : myEdit( edit ),
 myParent( 0 )
@@ -305,22 +415,35 @@ myParent( 0 )
     parent->insertChild( this );
 }
 
+/*!
+  Destructor
+*/
 QtxResourceEdit::Item::~Item()
 {
   if ( resourceEdit() )
     resourceEdit()->removeItem( this );
 }
 
+/*!
+  \return id of item
+*/
 int QtxResourceEdit::Item::id() const
 {
   return myId;
 }
 
+/*!
+  \return parent item 
+*/
 QtxResourceEdit::Item* QtxResourceEdit::Item::parentItem() const
 {
   return myParent;
 }
 
+/*!
+  Appends child and (if necessary) removes item from old parent
+  \param item - item to be added
+*/
 void QtxResourceEdit::Item::insertChild( Item* item )
 {
   if ( !item || myChildren.contains( item ) )
@@ -333,6 +456,10 @@ void QtxResourceEdit::Item::insertChild( Item* item )
   myChildren.append( item );
 }
 
+/*!
+  Removes child
+  \param item - item to be removed
+*/
 void QtxResourceEdit::Item::removeChild( Item* item )
 {
   if ( !item || !myChildren.contains( item ) )
@@ -342,62 +469,105 @@ void QtxResourceEdit::Item::removeChild( Item* item )
   item->myParent = 0;
 }
 
+/*!
+  Fills list with children items
+  \param lst - list to be filled with
+*/
 void QtxResourceEdit::Item::childItems( QPtrList<Item>& lst ) const
 {
   for ( ItemListIterator it( myChildren ); it.current(); ++it )
     lst.append( it.current() );
 }
 
+/*!
+  \return true if there is no children of this item
+*/
 bool QtxResourceEdit::Item::isEmpty() const
 {
   return myChildren.isEmpty();
 }
 
+/*!
+  \return title of item
+*/
 QString QtxResourceEdit::Item::title() const
 {
   return myTitle;
 }
 
+/*!
+  \return assigned resource placement
+  \param sec - to return section
+  \param param - to return param name
+*/
 void QtxResourceEdit::Item::resource( QString& sec, QString& param ) const
 {
   sec = myResSection;
   param = myResParameter;
 }
 
+/*!
+  Sets item title 
+  \param title - new item title
+*/
 void QtxResourceEdit::Item::setTitle( const QString& title )
 {
   myTitle = title;
 }
 
+/*!
+  Assigns new resource to item
+  \param sec - section
+  \param sec - param name
+*/
 void QtxResourceEdit::Item::setResource( const QString& sec, const QString& param )
 {
   myResSection = sec;
   myResParameter = param;
 }
 
+/*!
+  Updates item (default implementation is empty)
+*/
 void QtxResourceEdit::Item::update()
 {
 }
 
+/*!
+  \return property value
+*/
 QVariant QtxResourceEdit::Item::property( const QString& ) const
 {
   return QVariant();
 }
 
+/*!
+  Sets property value
+*/
 void QtxResourceEdit::Item::setProperty( const QString&, const QVariant& )
 {
 }
 
+/*!
+  \return value of assigned resource
+*/
 QString QtxResourceEdit::Item::resourceValue() const
 {
   return getString();
 }
 
+/*!
+  Sets value of assigned resource
+  \param val - new value
+*/
 void QtxResourceEdit::Item::setResourceValue( const QString& val )
 {
   setString( val );
 }
 
+/*!
+  \return corresponding resource manager
+*/
 QtxResourceMgr* QtxResourceEdit::Item::resourceMgr() const
 {
   QtxResourceMgr* resMgr = 0;
@@ -406,47 +576,78 @@ QtxResourceMgr* QtxResourceEdit::Item::resourceMgr() const
   return resMgr;
 }
 
+/*!
+  \return corresponding resource edit
+*/
 QtxResourceEdit* QtxResourceEdit::Item::resourceEdit() const
 {
   return myEdit;
 }
 
+/*!
+  \return integer value of resource corresponding to item
+  \param val - default value (it is returned if there is no such resource)
+*/
 int QtxResourceEdit::Item::getInteger( const int val ) const
 {
   QtxResourceMgr* resMgr = resourceMgr();
   return resMgr ? resMgr->integerValue( myResSection, myResParameter, val ) : val;
 }
 
+/*!
+  \return double value of resource corresponding to item
+  \param val - default value (it is returned if there is no such resource)
+*/
 double QtxResourceEdit::Item::getDouble( const double val ) const
 {
   QtxResourceMgr* resMgr = resourceMgr();
   return resMgr ? resMgr->doubleValue( myResSection, myResParameter, val ) : val;
 }
 
+/*!
+  \return boolean value of resource corresponding to item
+  \param val - default value (it is returned if there is no such resource)
+*/
 bool QtxResourceEdit::Item::getBoolean( const bool val ) const
 {
   QtxResourceMgr* resMgr = resourceMgr();
   return resMgr ? resMgr->booleanValue( myResSection, myResParameter, val ) : val;
 }
 
+/*!
+  \return string value of resource corresponding to item
+  \param val - default value (it is returned if there is no such resource)
+*/
 QString QtxResourceEdit::Item::getString( const QString& val ) const
 {
   QtxResourceMgr* resMgr = resourceMgr();
   return resMgr ? resMgr->stringValue( myResSection, myResParameter, val ) : val;
 }
 
+/*!
+  \return color value of resource corresponding to item
+  \param val - default value (it is returned if there is no such resource)
+*/
 QColor QtxResourceEdit::Item::getColor( const QColor& val ) const
 {
   QtxResourceMgr* resMgr = resourceMgr();
   return resMgr ? resMgr->colorValue( myResSection, myResParameter, val ) : val;
 }
 
+/*!
+  \return font value of resource corresponding to item
+  \param val - default value (it is returned if there is no such resource)
+*/
 QFont QtxResourceEdit::Item::getFont( const QFont& val ) const
 {
   QtxResourceMgr* resMgr = resourceMgr();
   return resMgr ? resMgr->fontValue( myResSection, myResParameter, val ) : val;
 }
 
+/*!
+  Sets value of resource
+  \param val - value
+*/
 void QtxResourceEdit::Item::setInteger( const int val )
 {
   QtxResourceMgr* resMgr = resourceMgr();
@@ -454,6 +655,10 @@ void QtxResourceEdit::Item::setInteger( const int val )
     resMgr->setValue( myResSection, myResParameter, val );
 }
 
+/*!
+  Sets value of resource
+  \param val - value
+*/
 void QtxResourceEdit::Item::setDouble( const double val )
 {
   QtxResourceMgr* resMgr = resourceMgr();
@@ -461,6 +666,10 @@ void QtxResourceEdit::Item::setDouble( const double val )
     resMgr->setValue( myResSection, myResParameter, val );
 }
 
+/*!
+  Sets value of resource
+  \param val - value
+*/
 void QtxResourceEdit::Item::setBoolean( const bool val )
 {
   QtxResourceMgr* resMgr = resourceMgr();
@@ -468,6 +677,10 @@ void QtxResourceEdit::Item::setBoolean( const bool val )
     resMgr->setValue( myResSection, myResParameter, val );
 }
 
+/*!
+  Sets value of resource
+  \param val - value
+*/
 void QtxResourceEdit::Item::setString( const QString& val )
 {
   QtxResourceMgr* resMgr = resourceMgr();
@@ -475,6 +688,10 @@ void QtxResourceEdit::Item::setString( const QString& val )
     resMgr->setValue( myResSection, myResParameter, val );
 }
 
+/*!
+  Sets value of resource
+  \param val - value
+*/
 void QtxResourceEdit::Item::setColor( const QColor& val )
 {
   QtxResourceMgr* resMgr = resourceMgr();
@@ -482,6 +699,10 @@ void QtxResourceEdit::Item::setColor( const QColor& val )
     resMgr->setValue( myResSection, myResParameter, val );
 }
 
+/*!
+  Sets value of resource
+  \param val - value
+*/
 void QtxResourceEdit::Item::setFont( const QFont& val )
 {
   QtxResourceMgr* resMgr = resourceMgr();
@@ -489,21 +710,37 @@ void QtxResourceEdit::Item::setFont( const QFont& val )
     resMgr->setValue( myResSection, myResParameter, val );
 }
 
+/*!
+  \return other item
+  \param id - other item id
+*/
 QtxResourceEdit::Item* QtxResourceEdit::Item::item( const int id ) const
 {
   return resourceEdit() ? resourceEdit()->item( id ) : 0;
 }
 
+/*!
+  \return other item
+  \param title - other item title
+*/
 QtxResourceEdit::Item* QtxResourceEdit::Item::item( const QString& title ) const
 {
   return resourceEdit() ? resourceEdit()->item( title ) : 0;
 }
 
+/*!
+  \return other item
+  \param title - other item title
+  \param id - parent item id
+*/
 QtxResourceEdit::Item* QtxResourceEdit::Item::item( const QString& title, const int id ) const
 {
   return resourceEdit() ? resourceEdit()->item( title, id ) : 0;
 }
 
+/*!
+  \return free item id
+*/
 int QtxResourceEdit::Item::generateId()
 {
   static int _id = 0;
index 7c55abc7bb43898df9c15c7289b4ec53e5b16bab..15dd6ceef83a26c73ae949611fd14c8552fd1020 100644 (file)
@@ -35,6 +35,10 @@ class QtxResourceMgr;
 #include <qvariant.h>
 #include <qfont.h>
 
+/*!
+  \class QtxResourceEdit
+  Class for managing preferences items
+*/
 class QTX_EXPORT QtxResourceEdit
 {
 public:
@@ -104,9 +108,9 @@ private:
   friend class QtxResourceEdit::Item;
 };
 
-/*
-  Class: QtxResourceEditor::Item
-  Descr: Class for incapsulation of one preference item
+/*!
+  \class QtxResourceEditor::Item
+  Class for incapsulation of one preference item
 */
 
 class QTX_EXPORT QtxResourceEdit::Item
index d5376b7e067c2a1d173452961afcbaaa33e9d2b0..9824aff30b8f3b9bb4296783dc6875210b58d89d 100644 (file)
@@ -42,20 +42,41 @@ QtxResourceMgr::Resources::Resources( const QtxResourceMgr* mgr, const QString&
 {
 }
 
+/*!
+  Destructor
+*/
 QtxResourceMgr::Resources::~Resources()
 {
 }
 
+/*!
+  Returns name of resource file
+  This file is used to load/save operations
+*/
 QString QtxResourceMgr::Resources::file() const
 {
   return myFileName;
 }
 
+/*!
+  Sets name of resource file
+  \param fn - name of file
+*/
 void QtxResourceMgr::Resources::setFile( const QString& fn )
 {
   myFileName = fn;
 }
 
+/*!
+  Returns string representation of parameter value
+  Returns QString::null if there is no such parameter
+
+  \param sect - name of section
+  \param name - name of parameter
+  \param subst - if it is true, then the substitution of variables
+  will be done with help of makeSubstitution method
+  \sa makeSubstitution()
+*/
 QString QtxResourceMgr::Resources::value( const QString& sect, const QString& name, const bool subst ) const
 {
   QString val;
@@ -69,27 +90,52 @@ QString QtxResourceMgr::Resources::value( const QString& sect, const QString& na
   return val;
 }
 
+/*!
+  Sets value by it's string representation
+
+  \param sect - name of section
+  \param name - name of parameter
+  \param val - string value
+*/
 void QtxResourceMgr::Resources::setValue( const QString& sect, const QString& name, const QString& val )
 {
   Section& s = section( sect );
   s.insert( name, val );
 }
 
+/*!
+  \return true if section exists
+  \param sect - name of section
+*/
 bool QtxResourceMgr::Resources::hasSection( const QString& sect ) const
 {
   return mySections.contains( sect );
 }
 
+/*!
+  \return true if parameter exists in section
+  \param sect - name of section
+  \param name - name of parameter
+*/
 bool QtxResourceMgr::Resources::hasValue( const QString& sect, const QString& name ) const
 {
   return hasSection( sect ) && section( sect ).contains( name );
 }
 
+/*!
+  Removes section from resources
+  \param sect - name of section
+*/
 void QtxResourceMgr::Resources::removeSection( const QString& sect )
 {
   mySections.remove( sect );
 }
 
+/*!
+  Removes parameter from section
+  \param sect - name of section
+  \param name - name of parameter
+*/
 void QtxResourceMgr::Resources::removeValue( const QString& sect, const QString& name )
 {
   if ( !hasSection( sect ) )
@@ -102,16 +148,26 @@ void QtxResourceMgr::Resources::removeValue( const QString& sect, const QString&
     mySections.remove( sect );
 }
 
+/*!
+  Removes all sections
+*/
 void QtxResourceMgr::Resources::clear()
 {
   mySections.clear();
 }
 
+/*!
+  \return list of section names
+*/
 QStringList QtxResourceMgr::Resources::sections() const
 {
   return mySections.keys();
 }
 
+/*!
+  \return list of parameter names from section
+  \param sec - name of section
+*/
 QStringList QtxResourceMgr::Resources::parameters( const QString& sec ) const
 {
   if ( !hasSection( sec ) )
@@ -120,6 +176,13 @@ QStringList QtxResourceMgr::Resources::parameters( const QString& sec ) const
   return section( sec ).keys();
 }
 
+/*!
+  \return path of file from directory built by parameter
+  \return QString::null if built path doesn't exist
+  \param sec - name of section
+  \param prefix - name of parameter containing some path
+  \param name - name of file
+*/
 QString QtxResourceMgr::Resources::path( const QString& sec, const QString& prefix, const QString& name ) const
 {
   QString filePath = fileName( sec, prefix, name );
@@ -131,11 +194,17 @@ QString QtxResourceMgr::Resources::path( const QString& sec, const QString& pref
   return filePath;
 }
 
+/*!
+  \return corresponding resource manager
+*/
 QtxResourceMgr* QtxResourceMgr::Resources::resMgr() const
 {
   return myMgr;
 }
 
+/*!
+  \return instance of section by it's name. Section will be created if it doesn't exist
+*/
 QtxResourceMgr::Section& QtxResourceMgr::Resources::section( const QString& sn )
 {
   if ( !mySections.contains( sn ) )
@@ -144,11 +213,20 @@ QtxResourceMgr::Section& QtxResourceMgr::Resources::section( const QString& sn )
   return mySections[sn];
 }
 
+/*!
+  \return instance of section by it's name. Section will be created if it doesn't exist
+*/
 const QtxResourceMgr::Section& QtxResourceMgr::Resources::section( const QString& sn ) const
 {
   return mySections[sn];
 }
 
+/*!
+  \return full path of file
+  \param sect - name of section
+  \param prefix - name of parameter containing some path
+  \param name - name of file
+*/
 QString QtxResourceMgr::Resources::fileName( const QString& sect, const QString& prefix, const QString& name ) const
 {
   QString path;
@@ -173,6 +251,12 @@ QString QtxResourceMgr::Resources::fileName( const QString& sect, const QString&
   return QString();
 }
 
+/*!
+  \return QPixmap loaded from file
+  \param sect - name of section
+  \param prefix - name of parameter containing some path
+  \param name - name of picture file
+*/
 QPixmap QtxResourceMgr::Resources::loadPixmap( const QString& sect, const QString& prefix, const QString& name ) const
 {
   QString fname = fileName( sect, prefix, name );
@@ -189,6 +273,12 @@ QPixmap QtxResourceMgr::Resources::loadPixmap( const QString& sect, const QStrin
   return p;
 }
 
+/*!
+  \return just created and loaded translator
+  \param sect - name of section
+  \param prefix - name of parameter containing some path
+  \param name - name of file
+*/
 QTranslator* QtxResourceMgr::Resources::loadTranslator( const QString& sect, const QString& prefix, const QString& name ) const
 {
   QTranslator* trans = new QTranslator( 0 );
@@ -200,6 +290,13 @@ QTranslator* QtxResourceMgr::Resources::loadTranslator( const QString& sect, con
   return trans;
 }
 
+/*!
+  Finds in string variables by patterns: ${name} or $(name) or %name%
+  \return first found name or QString::null if there is no ones
+  \param str - string where the search is processed
+  \param start - integer value for returning start position of variable
+  \param len - integer value for returning length of variable
+*/
 QString QtxResourceMgr::Resources::environmentVariable( const QString& str, int& start, int& len ) const
 {
   QString varName = QString::null;
@@ -219,6 +316,15 @@ QString QtxResourceMgr::Resources::environmentVariable( const QString& str, int&
   return varName;
 }
 
+/*!
+  Substitutes variables by its' values. If variable is from enviroment,
+  it will be replaced by environment value. If it isn't, method tries to
+  find it's value among resources
+  \return new variant of string 'str'
+  \param str - string to process substitution
+  \param sect - section, in which the variables will be finding
+  \param name - name of variable which must be ignored during substitution
+*/
 QString QtxResourceMgr::Resources::makeSubstitution( const QString& str, const QString& sect, const QString& name ) const
 {
   QString res = str;
@@ -259,7 +365,6 @@ QString QtxResourceMgr::Resources::makeSubstitution( const QString& str, const Q
        Class: QtxResourceMgr::IniFormat
        Level: Internal
 */
-
 class QtxResourceMgr::IniFormat : public Format
 {
 public:
@@ -271,15 +376,26 @@ protected:
   virtual bool save( const QString&, const QMap<QString, Section>& );
 };
 
+/*!
+  Default constructor
+*/
 QtxResourceMgr::IniFormat::IniFormat()
 : Format( "ini" )
 {
 }
 
+/*!
+  Destructor
+*/
 QtxResourceMgr::IniFormat::~IniFormat()
 {
 }
 
+/*!
+  Loads resources from ini-file to map of sections
+  \param fname - name of resource file
+  \param secMap - map of sections
+*/
 bool QtxResourceMgr::IniFormat::load( const QString& fname, QMap<QString, Section>& secMap )
 {
   QFile file( fname );
@@ -346,6 +462,11 @@ bool QtxResourceMgr::IniFormat::load( const QString& fname, QMap<QString, Sectio
   return res;
 }
 
+/*!
+  Saves map of sections to resource ini-file
+  \param fname - name of resource file
+  \param secMap - map of sections
+*/
 bool QtxResourceMgr::IniFormat::save( const QString& fname, const QMap<QString, Section>& secMap )
 {
   QFile file( fname );
@@ -391,15 +512,26 @@ private:
   QString      valueAttribute() const;
 };
 
+/*!
+  Default constructor
+*/
 QtxResourceMgr::XmlFormat::XmlFormat()
 : Format( "xml" )
 {
 }
 
+/*!
+  Destructor
+*/
 QtxResourceMgr::XmlFormat::~XmlFormat()
 {
 }
 
+/*!
+  Loads resources from xml-file to map of sections
+  \param fname - name of resource file
+  \param secMap - map of sections
+*/
 bool QtxResourceMgr::XmlFormat::load( const QString& fname, QMap<QString, Section>& secMap )
 {
   bool res = false;
@@ -408,7 +540,10 @@ bool QtxResourceMgr::XmlFormat::load( const QString& fname, QMap<QString, Sectio
 
   QFile file( fname );
   if ( !file.open( IO_ReadOnly ) )
+  {
+    qDebug( "File cannot be opened" );
     return false;
+  }
 
   QDomDocument doc;
 
@@ -416,11 +551,17 @@ bool QtxResourceMgr::XmlFormat::load( const QString& fname, QMap<QString, Sectio
   file.close();
 
   if ( !res )
+  {
+    qDebug( "File is empty" );
     return false;
+  }
 
   QDomElement root = doc.documentElement();
   if ( root.isNull() || root.tagName() != docTag() )
+  {
+    qDebug( "Invalid root" );
     return false;
+  }
 
   QDomNode sectNode = root.firstChild();
   while ( res && !sectNode.isNull() )
@@ -448,28 +589,49 @@ bool QtxResourceMgr::XmlFormat::load( const QString& fname, QMap<QString, Sectio
               secMap[section].insert( paramName, paramValue );
             }
             else
+           {
+             qDebug( "Invalid parameter element" );
               res = false;
+           }
           }
          else
+         {
            res = paramNode.isComment();
+           if( !res )
+             qDebug( "Node isn't element nor comment" );
+         }
 
           paramNode = paramNode.nextSibling();
         }
       }
       else
+      {
+       qDebug( "Invalid section" );
         res = false;
+      }
     }
     else
+    {
       res = sectNode.isComment(); // if it's a comment -- let it be, pass it..
+      if( !res )
+       qDebug( "Node isn't element nor comment" );
+    }
 
     sectNode = sectNode.nextSibling();
   }
 
 #endif
 
+  if( res )
+    qDebug( QString( "File '%1' is loaded successfully" ).arg( fname ) );
   return res;
 }
 
+/*!
+  Saves map of sections to resource xml-file
+  \param fname - name of resource file
+  \param secMap - map of sections
+*/
 bool QtxResourceMgr::XmlFormat::save( const QString& fname, const QMap<QString, Section>& secMap )
 {
   bool res = false;
@@ -507,6 +669,9 @@ bool QtxResourceMgr::XmlFormat::save( const QString& fname, const QMap<QString,
   return res;
 }
 
+/*!
+  \return XML tag of document
+*/
 QString QtxResourceMgr::XmlFormat::docTag() const
 {
   QString tag = option( "doc_tag" );
@@ -515,6 +680,9 @@ QString QtxResourceMgr::XmlFormat::docTag() const
   return tag;
 }
 
+/*!
+  \return XML tag of section
+*/
 QString QtxResourceMgr::XmlFormat::sectionTag() const
 {
   QString tag = option( "section_tag" );
@@ -523,6 +691,9 @@ QString QtxResourceMgr::XmlFormat::sectionTag() const
   return tag;
 }
 
+/*!
+  \return XML tag of parameter
+*/
 QString QtxResourceMgr::XmlFormat::parameterTag() const
 {
   QString tag = option( "parameter_tag" );
@@ -531,6 +702,9 @@ QString QtxResourceMgr::XmlFormat::parameterTag() const
   return tag;
 }
 
+/*!
+  \return XML attribute of parameter name
+*/
 QString QtxResourceMgr::XmlFormat::nameAttribute() const
 {
   QString str = option( "name_attribute" );
@@ -539,6 +713,9 @@ QString QtxResourceMgr::XmlFormat::nameAttribute() const
   return str;
 }
 
+/*!
+  \return XML attribute of parameter value
+*/
 QString QtxResourceMgr::XmlFormat::valueAttribute() const
 {
   QString str = option( "value_attribute" );
@@ -637,7 +814,9 @@ bool QtxResourceMgr::Format::save( Resources* res )
 
   Qtx::mkDir( Qtx::dir( res->myFileName ) );
 
-  return save( res->myFileName, res->mySections );
+  QtxResourceMgr* mgr = res->resMgr();
+  QString name = mgr ? mgr->userFileName( mgr->appName(), false ) : res->myFileName;
+  return save( name, res->mySections );
 }
 
 /*!
@@ -787,11 +966,18 @@ void QtxResourceMgr::clear()
     it.current()->clear();
 }
 
+/*!
+  Set state 'ignore user values'.
+  If it is true, then all resources loaded from user home directory is ignored
+*/
 void QtxResourceMgr::setIgnoreUserValues( const bool val )
 {
   myIsIgnoreUserValues = val;
 }
 
+/*!
+  \return state 'ignore user values'
+*/
 bool QtxResourceMgr::ignoreUserValues() const
 {
   return myIsIgnoreUserValues;
@@ -1343,6 +1529,26 @@ bool QtxResourceMgr::load()
   return res;
 }
 
+/*!
+  \brief Import some file with resources
+*/
+bool QtxResourceMgr::import( const QString& fname )
+{
+  Format* fmt = format( currentFormat() );
+  if ( !fmt )
+    return false;
+
+  Resources* r = myResources.getFirst();
+  if( !r )
+    return false;
+
+  QString old = r->file();
+  r->setFile( fname );
+  bool res = fmt->load( r );
+  r->setFile( old );
+  return res;
+}
+
 /*!
   \brief Save the changed resources in to the user resource file.
 */
@@ -1411,6 +1617,13 @@ QStringList QtxResourceMgr::parameters( const QString& sec ) const
   return res;
 }
 
+/*!
+  \return path of file from directory built by parameter
+  \return QString::null if built path doesn't exist
+  \param sec - name of section
+  \param prefix - name of parameter containing some path
+  \param name - name of file
+*/
 QString QtxResourceMgr::path( const QString& sect, const QString& prefix, const QString& name ) const
 {
   QString res;
@@ -1419,6 +1632,9 @@ QString QtxResourceMgr::path( const QString& sect, const QString& prefix, const
   return res;
 }
 
+/*!
+  \return section corresponding to resources paths
+*/
 QString QtxResourceMgr::resSection() const
 {
   QString res = option( "res_section_name" );
@@ -1427,6 +1643,9 @@ QString QtxResourceMgr::resSection() const
   return res;
 }
 
+/*!
+  \return section corresponding to language settings
+*/
 QString QtxResourceMgr::langSection() const
 {
   QString res = option( "lang_section_name" );
@@ -1435,26 +1654,55 @@ QString QtxResourceMgr::langSection() const
   return res;
 }
 
+/*!
+  \return default image used when during loading the image file doesn't exist
+*/
 QPixmap QtxResourceMgr::defaultPixmap() const
 {
   return myDefaultPix;
 }
 
+/*!
+  Set image as default image used when during loading the image file doesn't exist
+  \param pix - image
+*/
 void QtxResourceMgr::setDefaultPixmap( const QPixmap& pix )
 {
   myDefaultPix = pix;
 }
 
+/*!
+  \return image loaded from file 
+  \param prefix - name of parameter containing some path
+  \param name - name of file
+*/
 QPixmap QtxResourceMgr::loadPixmap( const QString& prefix, const QString& name ) const
 {
   return loadPixmap( prefix, name, true );
 }
 
+/*!
+  \return image loaded from file 
+  \param prefix - name of parameter containing some path
+  \param name - name of file
+  \param useDef - indicates if it is possible to use default image returning by defaultPixmap() method.
+  If it is false, the empty pixmap will be used as default
+  \sa defaultPixmap()
+*/
 QPixmap QtxResourceMgr::loadPixmap( const QString& prefix, const QString& name, const bool useDef ) const
 {
   return loadPixmap( prefix, name, useDef ? defaultPixmap() : QPixmap() );
 }
 
+/*!
+  Finds in all sections an existing path corresponding to 'prefix' parameter
+  and load image with name 'name' from this folder
+
+  \return image loaded from file 
+  \param prefix - name of parameter containing some path
+  \param name - name of file
+  \param defPix - default image used when file doesn't exist
+*/
 QPixmap QtxResourceMgr::loadPixmap( const QString& prefix, const QString& name, const QPixmap& defPix ) const
 {
   initialize();
@@ -1467,6 +1715,22 @@ QPixmap QtxResourceMgr::loadPixmap( const QString& prefix, const QString& name,
   return pix;
 }
 
+/*!
+  Loads translator for language
+  Name of translator file is constructed by list returning by option "translators" or,
+  if it is empty, by predefined pattern "%P_msg_%L.qm". It is recommended to used in translators
+  name the strings %A, %P, %L whose will be replaced by application name, prefix and language name correspondingly
+
+  \param pref - name of parameter containing path to translator's file.
+  If it is empty, the list of parameters from resource section ( resSection() )
+  is used.
+
+  \param l - name of language. If it is empty, then value of parameter "language"
+  from language section ( langSection() ) is used. If it is also empty, then
+  predefined name "en" is used
+
+  \sa resSection(), langSection()
+*/
 void QtxResourceMgr::loadLanguage( const QString& pref, const QString& l )
 {
   initialize();
@@ -1523,6 +1787,12 @@ void QtxResourceMgr::loadLanguage( const QString& pref, const QString& l )
   }
 }
 
+/*!
+  Loads translators by path and list of files
+
+  \param prefix - value of this parameter must contain path
+  \param translators - list of translators' files 
+*/
 void QtxResourceMgr::loadTranslators( const QString& prefix, const QStringList& translators )
 {
   initialize();
@@ -1545,6 +1815,12 @@ void QtxResourceMgr::loadTranslators( const QString& prefix, const QStringList&
   }
 }
 
+/*!
+  Loads translator by path and file name
+
+  \param prefix - value of this parameter must contain path
+  \param name - name of translator file
+*/
 void QtxResourceMgr::loadTranslator( const QString& prefix, const QString& name )
 {
   initialize();
@@ -1564,6 +1840,11 @@ void QtxResourceMgr::loadTranslator( const QString& prefix, const QString& name
   }
 }
 
+/*!
+  Remove all translators corresponding to prefix
+
+  \param prefix - parameter containing path
+*/
 void QtxResourceMgr::removeTranslators( const QString& prefix )
 {
   if ( !myTranslator.contains( prefix ) )
@@ -1578,6 +1859,11 @@ void QtxResourceMgr::removeTranslators( const QString& prefix )
   myTranslator.remove( prefix );
 }
 
+/*!
+  Moves translators corresponding to prefix to the top of translator stack 
+
+  \param prefix - parameter containing path
+*/
 void QtxResourceMgr::raiseTranslators( const QString& prefix )
 {
   if ( !myTranslator.contains( prefix ) )
@@ -1590,6 +1876,9 @@ void QtxResourceMgr::raiseTranslators( const QString& prefix )
   }
 }
 
+/*!
+  Copies all resources to user resources, so that they will be saved in user home folder
+*/
 void QtxResourceMgr::refresh()
 {
   QStringList sl = sections();
@@ -1601,6 +1890,9 @@ void QtxResourceMgr::refresh()
   }
 }
 
+/*!
+  \brief Sets the resource directories list except user home directory and clear resources
+*/
 void QtxResourceMgr::setDirList( const QStringList& dl )
 {
   myDirList = dl;
@@ -1610,6 +1902,12 @@ void QtxResourceMgr::setDirList( const QStringList& dl )
   myResources.clear();
 }
 
+/*!
+  Sets resource value
+  \param sect - name of section
+  \param name - name of parameter
+  \param val - string representation of value
+*/
 void QtxResourceMgr::setResource( const QString& sect, const QString& name, const QString& val )
 {
   initialize();
@@ -1618,7 +1916,13 @@ void QtxResourceMgr::setResource( const QString& sect, const QString& name, cons
     myResources.first()->setValue( sect, name, val );
 }
 
-QString QtxResourceMgr::userFileName( const QString& appName ) const
+/*!
+  \return name of resource file, which is being found in user home directory
+  \param appName - name of application
+  \param for_load - flag indicating that file will be used for loading (true) or for saving(false)
+  It makes possible to use different resource files for loading and saving
+*/
+QString QtxResourceMgr::userFileName( const QString& appName, const bool /*for_load*/ ) const
 {
   QString fileName;
   QString pathName = QDir::homeDirPath();
@@ -1635,11 +1939,20 @@ QString QtxResourceMgr::userFileName( const QString& appName ) const
   return pathName;
 }
 
+/*!
+  \return name of resource file, which is being found in all resource directories, except user home
+*/
 QString QtxResourceMgr::globalFileName( const QString& appName ) const
 {
   return QString( "%1.%2" ).arg( appName ).arg( currentFormat() );
 }
 
+/*!
+  Replaced substrings by pattern %A, %B, etc by values from map
+
+  \param src - string to be processed
+  \param substMap - map of values for replacing
+*/
 QString QtxResourceMgr::substMacro( const QString& src, const QMap<QChar, QString>& substMap ) const
 {
   QString trg = src;
index f753454253cb30ef8490434a89c8d26eb1f697d7..bcaa4ebf564ade0318fd15e1a757b6c46646aa00 100644 (file)
@@ -133,6 +133,7 @@ public:
   QString         path( const QString&, const QString&, const QString& ) const;
 
   bool            load();
+  bool            import( const QString& );
   bool            save();
 
   QStringList     sections() const;
@@ -144,7 +145,7 @@ protected:
   virtual void    setDirList( const QStringList& );
   virtual void    setResource( const QString&, const QString&, const QString& );
 
-  virtual QString userFileName( const QString& ) const;
+  virtual QString userFileName( const QString&, const bool = true ) const;
   virtual QString globalFileName( const QString& ) const;
 
 private:
diff --git a/src/Qtx/QtxSplash.cxx b/src/Qtx/QtxSplash.cxx
new file mode 100644 (file)
index 0000000..3b87373
--- /dev/null
@@ -0,0 +1,507 @@
+// Copyright (C) 2005  OPEN CASCADE, CEA/DEN, EDF R&D, PRINCIPIA R&D
+//
+// This library is free software; you can redistribute it and/or
+// modify it under the terms of the GNU Lesser General Public
+// License as published by the Free Software Foundation; either
+// version 2.1 of the License.
+//
+// This library is distributed in the hope that it will be useful
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+// Lesser General Public License for more details.
+//
+// You should have received a copy of the GNU Lesser General Public
+// License along with this library; if not, write to the Free Software
+// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307 USA
+//
+// See http://www.salome-platform.org/
+//
+// File:      QtxSplash.cxx
+// Author:    Vadim SANDLER
+
+#include "QtxSplash.h"
+
+#include <qapplication.h>
+#include <qpainter.h>
+#include <qpixmap.h>
+#include <qmessagebox.h>
+
+const int _PROGRESS_EVENT = QEvent::User + 10;
+const int _PROGRESS_WIDTH = 10;
+
+/*!
+  Class ProgressEvent [ internal ].
+*/
+class ProgressEvent: public QCustomEvent
+{
+public:
+  ProgressEvent( const QString& msg, const int progress = 0 )
+    : QCustomEvent( id() ),
+      myMessage( msg ),
+      myProgress( progress )
+  {}
+  QString    message()  const { return myMessage;       } 
+  int        progress() const { return myProgress;      }
+  static int id()             { return _PROGRESS_EVENT; }
+
+private:
+  QString myMessage;
+  int     myProgress;
+};
+
+// Only one instance of splash screen is allowed
+QtxSplash* QtxSplash::mySplash = 0;
+
+/*!
+  Construct a splash screen that will display the \a pixmap.
+*/
+QtxSplash::QtxSplash( const QPixmap& pixmap )
+  : QWidget( 0, 0, WStyle_Customize | WStyle_StaysOnTop | WX11BypassWM | WStyle_NoBorder )
+{
+  myAlignment    = AlignBottom | AlignRight;
+  myColor        = white;
+  myHideOnClick  = false;
+  myProgress     = 0;
+  myTotal        = 0;
+  myGradientType = Vertical;
+  myError        = 0;
+  myStartColor   = red;
+
+  setPixmap( pixmap );
+}
+
+/*!
+  Destructor.
+*/
+QtxSplash::~QtxSplash()
+{
+  mySplash = 0;
+}
+
+/*!
+  Returns an only instance of splash screen.
+  If \a px is valid sets this pixmap to the splash screen.
+*/
+QtxSplash* QtxSplash::splash( const QPixmap& px )
+{
+  if ( !mySplash )
+    mySplash = new QtxSplash( px );
+  else if ( !px.isNull() )
+    mySplash->setPixmap( px );
+  return mySplash;
+}
+
+/*!
+  Sends the status message and (optionally) progress to the splash screen.
+  Can be used, for example, from the progress thread.
+*/
+void QtxSplash::setStatus( const QString& msg, 
+                          const int      progress )
+{
+  if ( mySplash ) {
+    QApplication::postEvent( mySplash, new ProgressEvent( msg, progress ) );
+    qApp->processEvents();
+  }
+}
+
+/*!
+  Sets error status and shows error message box to the user.
+*/
+void QtxSplash::error( const QString& error, const QString& title, const int code )
+{
+  printf("QtxSplash::error: %s\n",error.latin1());
+  if ( mySplash ) {
+    mySplash->setError( code );
+    QMessageBox::critical( mySplash, 
+                          title.isEmpty() ? tr( "Error" ) : title,
+                          error,
+                          tr( "&OK" ) );
+  }
+}
+
+/*!
+  Sets the pixmap that will be used as the splash screen's image to
+  \a pixmap.
+*/
+void QtxSplash::setPixmap( const QPixmap& pixmap )
+{
+  myPixmap = pixmap;
+  QRect r( 0, 0, myPixmap.size().width(), myPixmap.size().height() );
+  resize( myPixmap.size() );
+  move( QApplication::desktop()->screenGeometry().center() - r.center() );
+  repaint();
+}
+
+/*!
+  Returns the pixmap that is used in the splash screen.
+*/
+QPixmap QtxSplash::pixmap() const
+{
+  return myPixmap;
+}
+
+/*!
+  Sets/clear the 'hide on mouse click' flag.
+  Default is FALSE.
+  When this flag is set, user can hide the splash screen window
+  by clicking on it with mouse.
+  But for this to work it is necessary to call periodically
+  QApplication::processEvents() in order to allow event loop to process
+  events because usually main application loop is not yet started
+  at that moment.
+*/
+void QtxSplash::setHideOnClick( const bool on )
+{
+  myHideOnClick = on;
+}
+
+/*!
+  Returns the 'hide on mouse click' flag.
+*/
+bool QtxSplash::hideOnClick() const
+{
+  return myHideOnClick;
+}
+
+/*!
+  Sets total progress steps to \a total.
+*/
+void QtxSplash::setTotalSteps( const int total )
+{
+  myTotal = total;
+  repaint();
+}
+
+/*!
+  Return total progress steps number.
+  \sa setTotalSteps(), setProgress()
+*/
+int QtxSplash::totalSteps() const
+{
+  return myTotal;
+}
+    
+/*!
+  Sets progress to \a progress.
+*/
+void QtxSplash::setProgress( const int progress )
+{
+  myProgress = progress;
+  repaint();
+}
+
+/*!
+  Return current progress.
+  \sa setProgress(), setTotalSteps()
+*/
+int QtxSplash::progress() const
+{
+  return myProgress;
+}
+
+/*!
+  Sets progress to \a progress and total progress steps to \a total.
+*/
+void QtxSplash::setProgress( const int progress, const int total )
+{
+  myTotal    = total;
+  myProgress = progress;
+  repaint();
+}
+
+/*!
+  Sets progress bar colors to \a startColor and \a endColor.
+  If the colors differ the gradient color bar is drawed.
+  If the \a endColor is not valid, \a startColor is used instead.
+  \a gradientType sets the type of gradient to be used for progress
+  bar - horizontal or vertical. Default is vertical.
+*/
+void QtxSplash::setProgressColors( const QColor& startColor, 
+                                  const QColor& endColor,
+                                  const int     gradientType )
+{
+  myStartColor   = startColor;
+  myEndColor     = endColor;
+  myGradientType = gradientType;
+  repaint();
+}
+
+/*!
+  Return progress colors and gradient type (horizontal or vertical).
+  \sa setProgressColors()
+*/
+int QtxSplash::progressColors( QColor& startColor, QColor& endColor )
+{
+  startColor = myStartColor;
+  endColor   = myEndColor;
+  return myGradientType;
+}
+
+/*!
+  Sets message text alignment flags to \a alignment.
+  Default is AlignBottom | AlignRight.
+*/
+void QtxSplash::setTextAlignment( const int alignment )
+{
+  myAlignment = alignment;
+  repaint();
+}
+
+/*!
+  Return message text alignment flags.
+  \sa setTextAlignment()
+*/
+int QtxSplash::textAlignment() const
+{
+  return myAlignment;
+}
+
+/*!
+  Sets message text color to \a color.
+  Default is white.
+  \sa setTextColors()
+*/
+void QtxSplash::setTextColor( const QColor& color )
+{
+  myColor = color;
+  myShadowColor = QColor();
+  repaint();
+}
+
+/*!
+  Return message text color.
+  \sa setTextColor()
+*/
+QColor QtxSplash::textColor() const
+{
+  return myColor;
+}
+
+/*!
+  Sets message text color to \a color and text shadow color to \a shadow.
+  \sa setTextColor()
+*/
+void QtxSplash::setTextColors( const QColor& color, const QColor& shadow )
+{
+  myColor       = color;
+  myShadowColor = shadow;
+  repaint();
+}
+
+/*!
+  Return message text color and text shadow color.
+  \sa setTextColors()
+*/
+void QtxSplash::textColors( QColor& color, QColor& shadow ) const
+{
+  color  = myColor;
+  shadow = myShadowColor;
+}
+
+/*!
+  Returns current status message.
+*/
+QString QtxSplash::message() const
+{
+  return myMessage;
+}
+
+/*!
+  Return error code. If no errors were occured returns 0.
+  Error code can be set by error( QString&, QString, int ).
+*/
+int QtxSplash::error() const
+{
+  return myError;
+}
+
+/*!
+    Makes the splash screen wait until the widget \a mainWin is displayed
+    before calling close() on itself.
+*/
+void QtxSplash::finish( QWidget* mainWin )
+{
+  if ( mainWin ) {
+#if defined(Q_WS_X11)
+    extern void qt_wait_for_window_manager( QWidget* w );
+    qt_wait_for_window_manager( mainWin );
+#endif
+  }
+  close();
+}
+
+/*!
+  Repaint the splash screen.
+*/
+void QtxSplash::repaint()
+{
+  drawContents();
+  QWidget::repaint();
+  QApplication::flush();
+}
+
+/*!
+  Draws the \a message text onto the splash screen with color \a
+  color and aligns the text according to the flags in \a alignment.
+*/
+void QtxSplash::message( const QString& msg, 
+                        int            alignment,
+                        const QColor&  color )
+{
+  myMessage   = msg;
+  myAlignment = alignment;
+  myColor     = color;
+  repaint();
+}
+
+/*!
+  This is an overloaded member function, provided for convenience. 
+  It behaves essentially like the above function.
+  Draws the \a message text onto the splash screen with default color
+  and aligns the text according to the default alignment flags.
+*/
+void QtxSplash::message( const QString& msg )
+{
+  myMessage = msg;
+  repaint();
+}
+
+/*!
+  Removes the message being displayed on the splash screen.
+  \sa message()
+*/
+void QtxSplash::clear()
+{
+  myMessage = QString::null;
+  repaint();
+}
+
+/*!
+  Draw the contents of the splash screen using painter \a painter.
+*/
+void QtxSplash::drawContents( QPainter* painter )
+{
+  QRect r = rect();
+  if ( myTotal > 0 ) {
+    // draw progress bar outline rectangle
+    painter->setPen( palette().active().dark() );
+    painter->drawLine( r.x()+5, 
+                      r.height()-5-_PROGRESS_WIDTH,
+                      r.width()-5,
+                      r.height()-5-_PROGRESS_WIDTH );
+    painter->drawLine( r.x()+5,
+                      r.height()-5-_PROGRESS_WIDTH,
+                      r.x()+5,
+                      r.height()-5 );
+    painter->setPen( palette().active().light() );
+    painter->drawLine( r.x()+5,
+                      r.height()-5,
+                      r.width()-5,
+                      r.height()-5 );
+    painter->drawLine( r.width()-5,
+                      r.height()-5-_PROGRESS_WIDTH,
+                      r.width()-5,
+                      r.height()-5 );
+    // draw progress bar
+    if ( myGradientType == Horizontal ) {
+      int tng = r.width() - r.x() - 11;
+      int ng = (int) ( 1.0 * tng * ( myProgress > 0 ? myProgress : 0 ) / myTotal ); 
+      int h1, h2, s1, s2, v1, v2;
+      myStartColor.hsv( &h1, &s1, &v1 );
+      myEndColor.isValid() ? myEndColor.hsv( &h2, &s2, &v2 ) :
+                            myStartColor.hsv( &h2, &s2, &v2 );
+      for ( int i = 0; i < ng; i++ ) {
+       painter->setPen( QColor( h1 + ((h2-h1)*i)/(tng-1),
+                                s1 + ((s2-s1)*i)/(tng-1),
+                                v1 + ((v2-v1)*i)/(tng-1), 
+                                QColor::Hsv ) );
+       painter->drawLine( r.x()+6+i,
+                          r.height()-5-_PROGRESS_WIDTH+1,
+                          r.x()+6+i,
+                          r.height()-6 );
+      }
+    }
+    else {
+      int ng = (int) ( 1.0 * (r.width() - r.x() - 11) * ( myProgress > 0 ? myProgress : 0 ) / myTotal ); 
+      int h1, h2, s1, s2, v1, v2;
+      myStartColor.hsv( &h1, &s1, &v1 );
+      myEndColor.isValid() ? myEndColor.hsv( &h2, &s2, &v2 ) :
+                            myStartColor.hsv( &h2, &s2, &v2 );
+      for ( int i = 0; i < _PROGRESS_WIDTH-1; i++ ) {
+       painter->setPen( QColor( h1 + ((h2-h1)*i)/(_PROGRESS_WIDTH-2),
+                                s1 + ((s2-s1)*i)/(_PROGRESS_WIDTH-2),
+                                v1 + ((v2-v1)*i)/(_PROGRESS_WIDTH-2), 
+                                QColor::Hsv ) );
+       painter->drawLine( r.x()+6,
+                          r.height()-5-_PROGRESS_WIDTH+1+i,
+                          r.x()+6+ng-1,
+                          r.height()-5-_PROGRESS_WIDTH+1+i );
+      }
+    }
+  }
+  // draw status
+  if ( !myMessage.isEmpty() ) {
+    QFontMetrics f( font() );
+    int spacing = f.lineSpacing();
+    int shift = myTotal > 0 ? _PROGRESS_WIDTH : _PROGRESS_WIDTH; // : 0
+    int i = myMessage.length() - 1;
+    while( i >= 0 && myMessage[ i-- ] == '\n' )
+      shift += spacing;
+    QRect r1( r.x() + 5, r.y() + 5, r.width() - 10, r.height() - 10 - shift );
+    QRect r2 = r1;
+    if ( myAlignment & Qt::AlignLeft   ) r2.setLeft  ( r2.left()   + 1 );
+    if ( myAlignment & Qt::AlignTop    ) r2.setTop   ( r2.top()    + 1 );
+    if ( myAlignment & Qt::AlignRight  ) r2.setRight ( r2.right()  + 1 );
+    if ( myAlignment & Qt::AlignBottom ) r2.setBottom( r2.bottom() + 1 );
+    if ( myShadowColor.isValid() ) {
+      painter->setPen( myShadowColor );
+      painter->drawText( r2, myAlignment, myMessage );
+    }
+    painter->setPen( myColor );
+    painter->drawText( r1, myAlignment, myMessage );
+  }
+}
+
+/*!
+  Mouse press event.
+  Hides splash screen if the 'hide on mouse click' flag is set.
+  \sa setHideOnClick()
+*/
+void QtxSplash::mousePressEvent( QMouseEvent* )
+{
+  if ( myHideOnClick )
+    hide();
+}
+
+/*!
+  Processes custom event sent by setStatus() method.
+  \sa setStatus().
+*/
+void QtxSplash::customEvent( QCustomEvent* ce )
+{
+  if ( ce->type() == ProgressEvent::id() ) {
+    ProgressEvent* pe = (ProgressEvent*)ce;
+    pe->message().isEmpty() ? clear() : message( pe->message() );
+    setProgress( pe->progress() );
+    qApp->processEvents();
+  }
+}
+
+/*!
+  Draws the splash screen window [ internal ].
+*/
+void QtxSplash::drawContents()
+{
+  QPixmap textPix = myPixmap;
+  QPainter painter( &textPix, this );
+  drawContents( &painter );
+  setErasePixmap( textPix );
+}
+
+/*!
+  Sets error code [ internal ].
+*/
+void QtxSplash::setError( const int code )
+{
+  myError = code;
+}
diff --git a/src/Qtx/QtxSplash.h b/src/Qtx/QtxSplash.h
new file mode 100644 (file)
index 0000000..cc24f7f
--- /dev/null
@@ -0,0 +1,114 @@
+// Copyright (C) 2005  OPEN CASCADE, CEA/DEN, EDF R&D, PRINCIPIA R&D
+//
+// This library is free software; you can redistribute it and/or
+// modify it under the terms of the GNU Lesser General Public
+// License as published by the Free Software Foundation; either
+// version 2.1 of the License.
+//
+// This library is distributed in the hope that it will be useful
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+// Lesser General Public License for more details.
+//
+// You should have received a copy of the GNU Lesser General Public
+// License along with this library; if not, write to the Free Software
+// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307 USA
+//
+// See http://www.salome-platform.org/
+//
+// File:      QtxSplash.h
+// Author:    Vadim SANDLER
+
+#ifndef QTXSPLASH_H
+#define QTXSPLASH_H
+
+#include "Qtx.h"
+
+#include <qpixmap.h>
+#include <qwidget.h>
+
+#ifdef WIN32
+#pragma warning( disable:4251 )
+#endif
+
+class QTX_EXPORT QtxSplash : public QWidget
+{
+    Q_OBJECT
+
+private:
+    QtxSplash( const QPixmap& = QPixmap() );
+
+public:
+    enum { Horizontal, Vertical };
+
+    virtual ~QtxSplash();
+
+    static QtxSplash* splash( const QPixmap& = QPixmap() );
+    static void       setStatus( const QString&, const int = 0 );
+    static void       error( const QString&, const QString& = QString::null, const int = -1 );
+
+    void              setPixmap( const QPixmap& );
+    QPixmap           pixmap() const;
+
+    void              setHideOnClick( const bool );
+    bool              hideOnClick() const;
+
+    void              setTotalSteps( const int );
+    int               totalSteps() const;
+    void              setProgress( const int );
+    int               progress() const;
+    void              setProgress( const int, const int );
+    void              setProgressColors( const QColor&, 
+                                        const QColor& = QColor(),
+                                        const int     = Vertical );
+    int               progressColors( QColor&, QColor& );
+
+    void              setTextAlignment( const int );
+    int               textAlignment() const;
+
+    void              setTextColor( const QColor& );
+    QColor            textColor() const;
+    void              setTextColors( const QColor&, const QColor& = QColor() );
+    void              textColors( QColor&, QColor& ) const;
+    
+    QString           message() const;
+
+    int               error() const;
+
+    void              finish( QWidget* );
+    void              repaint();
+
+public slots:
+    void              message( const QString&, 
+                              const int,
+                              const QColor& = white );
+    void              message( const QString& );
+    void              clear();
+
+protected:
+    virtual void      mousePressEvent( QMouseEvent* );
+    virtual void      customEvent( QCustomEvent* );
+    virtual void      drawContents( QPainter* );
+
+private:
+    void              drawContents();
+    void              setError( const int );
+
+private:
+    static QtxSplash* mySplash;
+
+    QPixmap           myPixmap;
+    QString           myMessage;
+    int               myAlignment;
+    QColor            myColor;
+    QColor            myShadowColor;
+    bool              myHideOnClick;
+    int               myProgress;
+    int               myTotal;
+    QColor            myStartColor;
+    QColor            myEndColor;
+    int               myGradientType;
+    int               myError;
+};
+
+#endif
index 6d612b2998645ea1a24a7dad4c5cdbaf76ba6240..0e4bacb81a0177bb60245425f2c237429693f070 100644 (file)
 #include <math.h>
 #include <stdlib.h>
 
-//================================================================
-// Function : 
-// Purpose  : 
-//================================================================
+/*!
+   Default constructor
+*/
 QtxStdOperations::QtxStdOperations()
 {
 }
 
-//================================================================
-// Function : 
-// Purpose  : 
-//================================================================
+/*!
+   Destructor
+*/
 QtxStdOperations::~QtxStdOperations()
 {
 }
 
-//================================================================
-// Function : 
-// Purpose  : 
-//================================================================
+/*!
+   Fills list of brackets treated as open (when 'open' is 'true') or close ('open' is 'false')
+*/
 void QtxStdOperations::bracketsList( QStringList& list, bool open ) const
 {
     if( open )
@@ -49,19 +46,17 @@ void QtxStdOperations::bracketsList( QStringList& list, bool open ) const
         list.append( ")" );
 }
 
-//================================================================
-// Function : 
-// Purpose  : 
-//================================================================
+/*!
+   Fills list with operation names by copying of internal list of operations
+*/
 void QtxStdOperations::opersList( QStringList& list ) const
 {
-    list += myOpers;
+  list += myOpers;
 }
 
-//================================================================
-// Function : 
-// Purpose  : 
-//================================================================
+/*!
+   Add operation names from list to internal list of operations
+*/
 void QtxStdOperations::addOperations( const QStringList& list )
 {
     QStringList::const_iterator anIt = list.begin(),
@@ -71,10 +66,9 @@ void QtxStdOperations::addOperations( const QStringList& list )
             myOpers.append( *anIt );
 }
 
-//================================================================
-// Function : 
-// Purpose  : 
-//================================================================
+/*!
+   Append operation names from 'list' to internal list of operations
+*/
 void QtxStdOperations::addTypes( const ListOfTypes& list )
 {
     ListOfTypes::const_iterator anIt = list.begin(),
@@ -84,10 +78,12 @@ void QtxStdOperations::addTypes( const ListOfTypes& list )
             myTypes.append( *anIt );
 }
 
-//================================================================
-// Function : 
-// Purpose  : 
-//================================================================
+/*!
+   \return whether values with passed types are valid for arguments of operation
+   \param op - name of operation
+   \param t1 - type of first argument
+   \param t2 - type of second argument
+*/
 QtxParser::Error QtxStdOperations::isValid( const QString& op,
                                             const QVariant::Type t1,
                                             const QVariant::Type t2 ) const
@@ -110,10 +106,9 @@ QtxParser::Error QtxStdOperations::isValid( const QString& op,
 
 
 
-//================================================================
-// Function : 
-// Purpose  : 
-//================================================================
+/*!
+   Default constructor
+*/
 QtxArithmetics::QtxArithmetics()
 : QtxStdOperations()
 {
@@ -138,18 +133,16 @@ QtxArithmetics::QtxArithmetics()
     addTypes( aTypes );
 }
 
-//================================================================
-// Function : 
-// Purpose  : 
-//================================================================
+/*!
+   Destructor
+*/
 QtxArithmetics::~QtxArithmetics()
 {
 }
 
-//================================================================
-// Function : 
-// Purpose  : 
-//================================================================
+/*!
+    Creates numbers by it's string representation [redefined virtual]
+*/
 bool QtxArithmetics::createValue( const QString& str, QtxValue& v ) const
 {
     bool ok = false;
@@ -164,10 +157,10 @@ bool QtxArithmetics::createValue( const QString& str, QtxValue& v ) const
     return ok;
 }
 
-//================================================================
-// Function : 
-// Purpose  : 
-//================================================================
+/*!
+    \return priority of arithmetic operation 'op'.
+    \param isBin indicate whether the operation is binary
+*/
 int QtxArithmetics::prior( const QString& op, bool isBin ) const
 {
     if( isBin )
@@ -191,10 +184,13 @@ void set( QVariant& v1, bool v2 )
     v1 = QVariant( v2, 0 );
 }
 
-//================================================================
-// Function : 
-// Purpose  : 
-//================================================================
+/*!
+    Calculates result of operation
+    \return one of error states
+    \param op - name of operation
+    \param v1 - first operation argument (must be used also to store result)
+    \param v2 - second operation argument
+*/
 QtxParser::Error QtxArithmetics::calculate( const QString& op, 
                                                 QtxValue& v1, QtxValue& v2 ) const
 {
@@ -286,10 +282,9 @@ QtxParser::Error QtxArithmetics::calculate( const QString& op,
 
 
 
-//================================================================
-// Function : 
-// Purpose  : 
-//================================================================
+/*!
+   Default constructor
+*/
 QtxLogic::QtxLogic()
 : QtxStdOperations()
 {
@@ -312,18 +307,16 @@ QtxLogic::QtxLogic()
     addTypes( aTypes );
 }
 
-//================================================================
-// Function : 
-// Purpose  : 
-//================================================================
+/*!
+   Destructor
+*/
 QtxLogic::~QtxLogic()
 {
 }
 
-//================================================================
-// Function : 
-// Purpose  : 
-//================================================================
+/*!
+    Creates value 'true' or 'false' it's string representation [redefined virtual]
+*/
 bool QtxLogic::createValue( const QString& str, QtxValue& v ) const
 {
     bool ok = true;
@@ -337,10 +330,10 @@ bool QtxLogic::createValue( const QString& str, QtxValue& v ) const
     return ok;
 }
 
-//================================================================
-// Function : 
-// Purpose  : 
-//================================================================
+/*!
+    \return priority of arithmetic operation 'op'.
+    \param isBin indicate whether the operation is binary
+*/
 int QtxLogic::prior( const QString& op, bool isBin ) const
 {
     if( isBin )
@@ -370,10 +363,13 @@ bool boolean_value( const QtxValue& v )
     return false;
 }
 
-//================================================================
-// Function : 
-// Purpose  : 
-//================================================================
+/*!
+    Calculates result of operation
+    \return one of error states
+    \param op - name of operation
+    \param v1 - first operation argument (must be used also to store result)
+    \param v2 - second operation argument
+*/
 QtxParser::Error QtxLogic::calculate( const QString& op,
                                           QtxValue& v1, QtxValue& v2 ) const
 {
@@ -405,10 +401,9 @@ QtxParser::Error QtxLogic::calculate( const QString& op,
 
 
 
-//================================================================
-// Function : 
-// Purpose  : 
-//================================================================
+/*!
+   Default constructor
+*/
 QtxFunctions::QtxFunctions()
 : QtxStdOperations()
 {
@@ -427,18 +422,16 @@ QtxFunctions::QtxFunctions()
     addTypes( aTypes );
 }
 
-//================================================================
-// Function : 
-// Purpose  : 
-//================================================================
+/*!
+   Destructor
+*/
 QtxFunctions::~QtxFunctions()
 {
 }
 
-//================================================================
-// Function : 
-// Purpose  : 
-//================================================================
+/*!
+    Creates numbers by it's string representation [redefined virtual]
+*/
 bool QtxFunctions::createValue( const QString& str, QtxValue& v ) const
 {
     bool ok = false;
@@ -453,10 +446,10 @@ bool QtxFunctions::createValue( const QString& str, QtxValue& v ) const
     return ok;
 }
 
-//================================================================
-// Function : 
-// Purpose  : 
-//================================================================
+/*!
+    \return priority of arithmetic operation 'op'.
+    \param isBin indicate whether the operation is binary
+*/
 int QtxFunctions::prior( const QString& op, bool isBin ) const
 {
     if( isBin )
@@ -468,10 +461,13 @@ int QtxFunctions::prior( const QString& op, bool isBin ) const
         return 0;
 }
 
-//================================================================
-// Function : 
-// Purpose  : 
-//================================================================
+/*!
+    Calculates result of operation
+    \return one of error states
+    \param op - name of operation
+    \param v1 - first operation argument (must be used also to store result)
+    \param v2 - second operation argument
+*/
 QtxParser::Error QtxFunctions::calculate( const QString& op,
                                           QtxValue& v1, QtxValue& v2 ) const
 {
@@ -506,10 +502,9 @@ QtxParser::Error QtxFunctions::calculate( const QString& op,
 
 
 
-//================================================================
-// Function : 
-// Purpose  : 
-//================================================================
+/*!
+   Default constructor
+*/
 QtxStrings::QtxStrings()
 : QtxStdOperations()
 {
@@ -536,18 +531,16 @@ QtxStrings::QtxStrings()
 }
 
 
-//================================================================
-// Function : 
-// Purpose  : 
-//================================================================
+/*!
+   Destructor
+*/
 QtxStrings::~QtxStrings()
 {
 }
 
-//================================================================
-// Function : 
-// Purpose  : 
-//================================================================
+/*!
+    Creates string QtxValue by it's Qt string representation [redefined virtual]
+*/
 bool QtxStrings::createValue( const QString& str, QtxValue& v ) const
 {
     QChar st = str[0],
@@ -561,10 +554,10 @@ bool QtxStrings::createValue( const QString& str, QtxValue& v ) const
         return QtxStdOperations::createValue( str, v );
 }
 
-//================================================================
-// Function : 
-// Purpose  : 
-//================================================================
+/*!
+    \return priority of arithmetic operation 'op'.
+    \param isBin indicate whether the operation is binary
+*/
 int QtxStrings::prior( const QString& op, bool isBin ) const
 {
     if( isBin )
@@ -582,10 +575,13 @@ int QtxStrings::prior( const QString& op, bool isBin ) const
             return 0;
 }
 
-//================================================================
-// Function : 
-// Purpose  : 
-//================================================================
+/*!
+    Calculates result of operation
+    \return one of error states
+    \param op - name of operation
+    \param v1 - first operation argument (must be used also to store result)
+    \param v2 - second operation argument
+*/
 QtxParser::Error QtxStrings::calculate( const QString& op,
                                             QtxValue& v1, QtxValue& v2 ) const
 {
@@ -628,10 +624,9 @@ QtxParser::Error QtxStrings::calculate( const QString& op,
 
 
 
-//================================================================
-// Function : 
-// Purpose  : 
-//================================================================
+/*!
+   Default constructor
+*/
 QtxSets::QtxSets()
 {
     QStringList aList;
@@ -652,18 +647,16 @@ QtxSets::QtxSets()
     addTypes( aTypes );
 }
 
-//================================================================
-// Function : 
-// Purpose  : 
-//================================================================
+/*!
+   Destructor
+*/
 QtxSets::~QtxSets()
 {
 }
 
-//================================================================
-// Function : 
-// Purpose  : 
-//================================================================
+/*!
+   Fills list of brackets treated as open (when 'open' is 'true') or close ('open' is 'false')
+*/
 void QtxSets::bracketsList( QStringList& list, bool open ) const
 {
     if( open )
@@ -673,19 +666,18 @@ void QtxSets::bracketsList( QStringList& list, bool open ) const
     QtxStdOperations::bracketsList( list, open );
 }
 
-//================================================================
-// Function : 
-// Purpose  : 
-//================================================================
+/*!
+    Creates set of QtxValues by their string representation [redefined virtual]
+*/
 bool QtxSets::createValue( const QString& str, QtxValue& val ) const
 {
     return QtxStdOperations::createValue( str, val );
 }
 
-//================================================================
-// Function : 
-// Purpose  : 
-//================================================================
+/*!
+    \return priority of arithmetic operation 'op'.
+    \param isBin indicate whether the operation is binary
+*/
 int QtxSets::prior( const QString& op, bool isBin ) const
 {
     if( isBin )
@@ -707,10 +699,12 @@ int QtxSets::prior( const QString& op, bool isBin ) const
             return 0;
 }
 
-//================================================================
-// Function : 
-// Purpose  : 
-//================================================================
+/*!
+   \return whether values with passed types are valid for arguments of operation
+   \param op - name of operation
+   \param t1 - type of first argument
+   \param t2 - type of second argument
+*/
 QtxParser::Error QtxSets::isValid( const QString& op,
                                    const QVariant::Type t1,
                                    const QVariant::Type t2 ) const
@@ -726,20 +720,18 @@ QtxParser::Error QtxSets::isValid( const QString& op,
         return QtxStdOperations::isValid( op, t1, t2 );
 }
 
-//================================================================
-// Function : 
-// Purpose  : 
-//================================================================
+/*!
+   Adds new value 'v' to set 'set' [static]
+*/
 void QtxSets::add( ValueSet& set, const QtxValue& v )
 {
     if( v.isValid() && set.contains( v )==0 )
         set.append( v );
 }
 
-//================================================================
-// Function : 
-// Purpose  : 
-//================================================================
+/*!
+   Adds values from set 's2' to set 's1'
+*/
 void QtxSets::add( ValueSet& s1, const ValueSet& s2 )
 {
     ValueSet::const_iterator anIt = s2.begin(),
@@ -748,19 +740,17 @@ void QtxSets::add( ValueSet& s1, const ValueSet& s2 )
         add( s1, *anIt );
 }
 
-//================================================================
-// Function : 
-// Purpose  : 
-//================================================================
+/*!
+   Removes value 'v' from set 'set'
+*/
 void QtxSets::remove( ValueSet& set, const QtxValue& v )
 {
     set.remove( v );
 }
 
-//================================================================
-// Function : 
-// Purpose  : 
-//================================================================
+/*!
+   Removes values of set 's2' from set 's1'
+*/
 void QtxSets::remove( ValueSet& s1, const ValueSet& s2 )
 {
     ValueSet::const_iterator anIt = s2.begin(),
@@ -769,10 +759,13 @@ void QtxSets::remove( ValueSet& s1, const ValueSet& s2 )
         s1.remove( *anIt );
 }
 
-//================================================================
-// Function : 
-// Purpose  : 
-//================================================================
+/*!
+    Calculates result of operation
+    \return one of error states
+    \param op - name of operation
+    \param v1 - first operation argument (must be used also to store result)
+    \param v2 - second operation argument
+*/
 QtxParser::Error QtxSets::calculate( const QString& op, QtxValue& v1, QtxValue& v2 ) const
 {
     QtxParser::Error err = QtxParser::OK;
index 5a8cfd48e434e38b3efd5dd83841c9ada018ad76..27245e95d98bde69c616c3c734824624971a7d17 100644 (file)
 #include "Qtx.h"
 #include "QtxOperations.h"
 
-//================================================================
-// Class    : 
-// Purpose  : 
-//================================================================
+/*!
+  \class QtxStdOperations
+  Provides simplified interface for standard operations.
+  Conatins list of operation names, priority and possible types
+*/
 class QTX_EXPORT QtxStdOperations : public QtxOperations
 {
 public:
@@ -52,10 +53,10 @@ private:
     ListOfTypes myTypes;
 };
 
-//================================================================
-// Class    : 
-// Purpose  : 
-//================================================================
+/*!
+  \class QtxArithmetics
+  Provides set of arithmetic operations for parser
+*/
 class QTX_EXPORT QtxArithmetics : public QtxStdOperations
 {
 public:
@@ -67,10 +68,10 @@ public:
     virtual QtxParser::Error calculate( const QString&, QtxValue&, QtxValue& ) const;
 };
 
-//================================================================
-// Class    : 
-// Purpose  : 
-//================================================================
+/*!
+  \class QtxLogic
+  Provides set of logic operations for parser
+*/
 class QTX_EXPORT QtxLogic : public QtxStdOperations
 {
 public:
@@ -82,10 +83,10 @@ public:
     virtual QtxParser::Error calculate( const QString&, QtxValue&, QtxValue& ) const;
 };
 
-//================================================================
-// Class    : 
-// Purpose  : 
-//================================================================
+/*!
+  \class QtxFunctions
+  Provides set of more complex operations for parser (sqrt, sin, cos, etc)
+*/
 class QTX_EXPORT QtxFunctions : public QtxStdOperations
 {
 public:
@@ -97,10 +98,10 @@ public:
     virtual QtxParser::Error calculate( const QString&, QtxValue&, QtxValue& ) const;
 };
 
-//================================================================
-// Class    : 
-// Purpose  : 
-//================================================================
+/*!
+  \class QtxStrings
+  Provides set of string operations for parser
+*/
 class QTX_EXPORT QtxStrings : public QtxStdOperations
 {
 public:
@@ -112,10 +113,10 @@ public:
     virtual QtxParser::Error calculate( const QString&, QtxValue&, QtxValue& ) const;
 };
 
-//================================================================
-// Class    : 
-// Purpose  : 
-//================================================================
+/*!
+  \class QtxSets
+  Provides set of operations with sets for parser
+*/
 class QTX_EXPORT QtxSets : public QtxStdOperations
 {
 public:
index eac69ea6008fa9117c3f0f132062f402405e3a66..4c0f1971fd58cbbaa9d6dd3db9784ddad437dfe0 100644 (file)
@@ -25,6 +25,9 @@
 
 #include <qlineedit.h>
 
+/*!
+  Constructor
+*/
 QtxTable::QtxTable( QWidget* parent, const char* name )
 : QTable( parent, name ),
 myHeaderEditor( 0 ),
@@ -39,6 +42,9 @@ myEditedSection( -1 )
   connect( horizontalScrollBar(), SIGNAL( valueChanged( int ) ), this, SLOT( onScrollBarMoved( int ) ) );
 }
 
+/*!
+  Constructor
+*/
 QtxTable::QtxTable( int numRows, int numCols, QWidget* parent, const char* name )
 : QTable( numRows, numCols, parent, name ),
 myHeaderEditor( 0 ),
@@ -53,15 +59,27 @@ myEditedSection( -1 )
   connect( horizontalScrollBar(), SIGNAL( valueChanged( int ) ), this, SLOT( onScrollBarMoved( int ) ) );
 }
 
+/*!
+  Destructor
+*/
 QtxTable::~QtxTable()
 {
 }
 
+/*!
+  \return true if header is editable
+  \param o - header orientation
+*/
 bool QtxTable::headerEditable( Orientation o ) const
 {
   return myHeaderEditable.contains( o ) ? myHeaderEditable[o] : false;
 }
 
+/*!
+  Changes editable state of header
+  \param o - header orientation
+  \param on - new state
+*/
 void QtxTable::setHeaderEditable( Orientation o, const bool on )
 {
   if ( headerEditable( o ) == on )
@@ -80,16 +98,28 @@ void QtxTable::setHeaderEditable( Orientation o, const bool on )
     hdr->removeEventFilter( this );
 }
 
+/*!
+  Starts edition of header
+  \param o - header orientation
+  \param sec - column/row
+*/
 bool QtxTable::editHeader( Orientation o, const int sec )
 {
   return beginHeaderEdit( o, sec );
 }
 
+/*!
+  Finishes edition of header
+  \param accept - whether new value must be accepted
+*/
 void QtxTable::endEditHeader( const bool accept )
 {
   endHeaderEdit( accept );
 }
 
+/*!
+  Finishes edition and hides table
+*/
 void QtxTable::hide()
 {
   endHeaderEdit();
@@ -97,6 +127,11 @@ void QtxTable::hide()
   QTable::hide();
 }
 
+/*!
+  Custom event filter
+  Starts edition of header by double click
+  Finishes edition by escape/return/enter pressing
+*/
 bool QtxTable::eventFilter( QObject* o, QEvent* e )
 {
   if ( e->type() == QEvent::MouseButtonDblClick )
@@ -145,17 +180,26 @@ bool QtxTable::eventFilter( QObject* o, QEvent* e )
   return QTable::eventFilter( o, e );
 }
 
+/*!
+  SLOT: called on scroll
+*/
 void QtxTable::onScrollBarMoved( int )
 {
   updateHeaderEditor();
 }
 
+/*!
+  SLOT: called on header size changing
+*/
 void QtxTable::onHeaderSizeChange( int, int, int )
 {
   if ( sender() == myEditedHeader )
     updateHeaderEditor();
 }
 
+/*!
+  Custom resize event handler
+*/
 void QtxTable::resizeEvent( QResizeEvent* e )
 {
   QTable::resizeEvent( e );
@@ -163,6 +207,11 @@ void QtxTable::resizeEvent( QResizeEvent* e )
   updateHeaderEditor();
 }
 
+/*!
+  Starts edition of header
+  \param o - header orientation
+  \param sec - column/row
+*/
 bool QtxTable::beginHeaderEdit( Orientation o, const int section )
 {
   if ( !headerEditable( o ) || !header( o ) || !header( o )->isVisibleTo( this ) )
@@ -202,6 +251,10 @@ bool QtxTable::beginHeaderEdit( Orientation o, const int section )
   return true;
 }
 
+/*!
+  Finishes edition of header
+  \param accept - whether new value must be accepted
+*/
 void QtxTable::endHeaderEdit( const bool accept )
 {
   if ( !isHeaderEditing() )
@@ -231,11 +284,20 @@ void QtxTable::endHeaderEdit( const bool accept )
   }
 }
 
+/*!
+  \return true if header is being edited
+*/
 bool QtxTable::isHeaderEditing() const
 {
   return myHeaderEditor && myEditedHeader && myEditedSection != -1;
 }
 
+/*!
+  Creates and \return header editor
+  \param hdr - header
+  \param sec - column/row
+  \param init - init editor with value
+*/
 QWidget* QtxTable::createHeaderEditor( QHeader* hdr, const int sec, const bool init )
 {
   QLineEdit* ed = new QLineEdit( 0 );
@@ -246,6 +308,12 @@ QWidget* QtxTable::createHeaderEditor( QHeader* hdr, const int sec, const bool i
   return ed;
 }
 
+/*!
+  Initialize editor with value
+  \param hdr - header
+  \param sec - column/row
+  \param editor - editor
+*/
 void QtxTable::setHeaderContentFromEditor( QHeader* hdr, const int sec, QWidget* editor )
 {
   if ( !hdr || !editor )
@@ -255,11 +323,20 @@ void QtxTable::setHeaderContentFromEditor( QHeader* hdr, const int sec, QWidget*
     hdr->setLabel( sec, ((QLineEdit*)editor)->text() );
 }
 
+/*!
+  \return header
+  \param o - orientation
+*/
 QHeader* QtxTable::header( Orientation o ) const
 {
   return o == Horizontal ? horizontalHeader() : verticalHeader();
 }
 
+/*!
+  Starts edition of header
+  \param o - header orientation
+  \param p - point
+*/
 void QtxTable::beginHeaderEdit( Orientation o, const QPoint& p )
 {
   QHeader* hdr = header( o );
@@ -272,6 +349,11 @@ void QtxTable::beginHeaderEdit( Orientation o, const QPoint& p )
   beginHeaderEdit( o, sec );
 }
 
+/*!
+  \return rectangle of header section
+  \param hdr - header
+  \param sec - column/row
+*/
 QRect QtxTable::headerSectionRect( QHeader* hdr, const int sec ) const
 {
   QRect r( -1, -1, -1, -1 );
@@ -286,6 +368,9 @@ QRect QtxTable::headerSectionRect( QHeader* hdr, const int sec ) const
   return r;
 }
 
+/*!
+  Updates header editor
+*/
 void QtxTable::updateHeaderEditor()
 {
   if ( !myHeaderEditor || !myEditedHeader || myEditedSection < 0 )
index b5f32845e3416a2475624223f7c5eeceff772bc2..3ffb6975060088feb3612559a58303783f4ef7a7 100644 (file)
@@ -66,6 +66,9 @@ private:
   bool         myVisible;
 };
 
+/*!
+  Constructor
+*/
 QtxToolBar::Watcher::Watcher( QtxToolBar* cont )
 : QObject( cont ),
 myCont( cont ),
@@ -81,6 +84,9 @@ myEmpty( true )
   installFilters();
 }
 
+/*!
+  Custom event filter
+*/
 bool QtxToolBar::Watcher::eventFilter( QObject* o, QEvent* e )
 {
   if ( o == myCont && e->type() == QEvent::ChildInserted )
@@ -108,6 +114,9 @@ bool QtxToolBar::Watcher::eventFilter( QObject* o, QEvent* e )
   return false;
 }
 
+/*!
+  Sets internal visibility state to true
+*/
 void QtxToolBar::Watcher::shown( QtxToolBar* tb )
 {
   if ( tb != myCont )
@@ -116,6 +125,9 @@ void QtxToolBar::Watcher::shown( QtxToolBar* tb )
   myVisible = true;
 }
 
+/*!
+  Sets internal visibility state to false
+*/
 void QtxToolBar::Watcher::hided( QtxToolBar* tb )
 {
   if ( tb != myCont )
@@ -124,6 +136,9 @@ void QtxToolBar::Watcher::hided( QtxToolBar* tb )
   myVisible = false;
 }
 
+/*!
+  Shows corresponding QtxToolBar
+*/
 void QtxToolBar::Watcher::showContainer()
 {
   if ( !myCont )
@@ -135,6 +150,9 @@ void QtxToolBar::Watcher::showContainer()
   myCont = cont;
 }
 
+/*!
+  Hides corresponding QtxToolBar
+*/
 void QtxToolBar::Watcher::hideContainer()
 {
   if ( !myCont )
@@ -146,6 +164,9 @@ void QtxToolBar::Watcher::hideContainer()
   myCont = cont;
 }
 
+/*!
+  Event handler of custom events
+*/
 void QtxToolBar::Watcher::customEvent( QCustomEvent* e )
 {
   switch ( e->type() )
@@ -159,6 +180,9 @@ void QtxToolBar::Watcher::customEvent( QCustomEvent* e )
   }
 }
 
+/*!
+  Installs event filters
+*/
 void QtxToolBar::Watcher::installFilters()
 {
   if ( !myCont )
@@ -176,6 +200,9 @@ void QtxToolBar::Watcher::installFilters()
   }
 }
 
+/*!
+  Update visibility state
+*/
 void QtxToolBar::Watcher::updateVisibility()
 {
   if ( !myCont )
@@ -215,6 +242,9 @@ void QtxToolBar::Watcher::updateVisibility()
     vis ? showContainer() : hideContainer();
 }
 
+/*!
+  Updates icon
+*/
 void QtxToolBar::Watcher::updateIcon()
 {
   if ( !myCont || !myCont->widget() )
@@ -224,6 +254,9 @@ void QtxToolBar::Watcher::updateIcon()
   myCont->setIcon( ico ? *ico : QPixmap() );
 }
 
+/*!
+  Updates caption
+*/
 void QtxToolBar::Watcher::updateCaption()
 {
   if ( myCont && myCont->widget() && !myCont->widget()->caption().isNull() )
@@ -231,10 +264,8 @@ void QtxToolBar::Watcher::updateCaption()
 }
 
 /*!
-    Class: QtxToolBar [Public]
-    Descr: 
+  Constructor
 */
-
 QtxToolBar::QtxToolBar( const bool watch, const QString& label, QMainWindow* main,
                         QWidget* parent, bool newLine, const char* name, WFlags f )
 : QToolBar( label, main, parent, newLine, name, f ),
@@ -245,6 +276,9 @@ myStretch( false )
     myWatcher = new Watcher( this );
 }
 
+/*!
+  Constructor
+*/
 QtxToolBar::QtxToolBar( const QString& label, QMainWindow* main,
                         QWidget* parent, bool newLine, const char* name, WFlags f )
 : QToolBar( label, main, parent, newLine, name, f ),
@@ -253,6 +287,9 @@ myStretch( false )
 {
 }
 
+/*!
+  Constructor
+*/
 QtxToolBar::QtxToolBar( const bool watch, QMainWindow* main, const char* name )
 : QToolBar( main, name ),
 myWatcher( 0 ),
@@ -262,6 +299,9 @@ myStretch( false )
     myWatcher = new Watcher( this );
 }
 
+/*!
+  Constructor
+*/
 QtxToolBar::QtxToolBar( QMainWindow* main, const char* name )
 : QToolBar( main, name ),
 myWatcher( 0 ),
@@ -269,10 +309,17 @@ myStretch( false )
 {
 }
 
+/*!
+  Destructor
+*/
 QtxToolBar::~QtxToolBar()
 {
 }
 
+/*!
+  Change the toolbar's main widget
+  \param wid - new main widget
+*/
 void QtxToolBar::setWidget( QWidget* wid )
 {
   if ( wid )
@@ -293,11 +340,18 @@ void QtxToolBar::setWidget( QWidget* wid )
   }
 }
 
+/*!
+  \return true if toolbar is stretchable
+*/
 bool QtxToolBar::isStretchable() const
 {
   return myStretch;
 }
 
+/*!
+  Sets stretchable state of toolbar
+  \param on - new state
+*/
 void QtxToolBar::setStretchable( const bool on )
 {
   if ( myStretch == on )
@@ -317,6 +371,9 @@ void QtxToolBar::setStretchable( const bool on )
   }
 }
 
+/*!
+  \return the recommended size for the widget
+*/
 QSize QtxToolBar::sizeHint() const
 {
   QSize sz = QToolBar::sizeHint();
@@ -332,6 +389,9 @@ QSize QtxToolBar::sizeHint() const
   return sz;
 }
 
+/*!
+  \return the recommended minimum size for the widget
+*/
 QSize QtxToolBar::minimumSizeHint() const
 {
   QSize sz = QToolBar::minimumSizeHint();
@@ -347,6 +407,9 @@ QSize QtxToolBar::minimumSizeHint() const
   return sz;
 }
 
+/*!
+  Shows toolbar
+*/
 void QtxToolBar::show()
 {
   if ( myWatcher )
@@ -355,6 +418,9 @@ void QtxToolBar::show()
   QToolBar::show();
 }
 
+/*!
+  Hides toolbar
+*/
 void QtxToolBar::hide()
 {
   if ( myWatcher )
index 5141e127dda713ab37f1e6ea248238d595b2ac13..ff00db58ec1dcdfbba6d6539741db54b0c953ab8 100755 (executable)
@@ -30,6 +30,9 @@
 #define TOOLTIP_SHOW_DELAY 0500
 #define TOOLTIP_HIDE_DELAY 7000
 
+/*!
+  Constructor
+*/
 QtxToolTip::QtxToolTip( QWidget* parent )
 : QLabel( parent, "", WStyle_Customize | WStyle_NoBorder | WX11BypassWM | WStyle_Tool | WStyle_StaysOnTop | WType_TopLevel )
 {
@@ -55,10 +58,16 @@ QtxToolTip::QtxToolTip( QWidget* parent )
   myShowDelayTime = 5000;
 }
 
+/*!
+  Destructor
+*/
 QtxToolTip::~QtxToolTip()
 {
 }
 
+/*!
+  Custom event filter
+*/
 bool QtxToolTip::eventFilter( QObject* o, QEvent* e )
 {
        if ( ( e->type() == QEvent::Destroy ) || ( e->type() == QEvent::Close ) || ( e->type() == QEvent::Hide ) )
@@ -106,6 +115,12 @@ bool QtxToolTip::eventFilter( QObject* o, QEvent* e )
        return false;
 }
 
+/*!
+  Shows tool tip
+  \param aPos - position
+  \param text - tooltip text
+  \param aWidgetRegion - rectangle
+*/
 void QtxToolTip::showTip( const QPoint& aPos, const QString& text, const QRect& aWidgetRegion )
 {
        QFontMetrics theFM = fontMetrics();
@@ -114,6 +129,12 @@ void QtxToolTip::showTip( const QPoint& aPos, const QString& text, const QRect&
        showTip( QRect( QPoint( aPos.x(), aPos.y() + 10 ), QSize( theWidth, theHeight ) ), text, aWidgetRegion );
 }
 
+/*!
+  Shows tool tip
+  \param aRegion - tooltip region
+  \param text - tooltip text
+  \param aWidgetRegion - widget rectangle
+*/
 void QtxToolTip::showTip( const QRect& aRegion, const QString& text, const QRect& aWidgetRegion )
 {
        setText( text );
@@ -124,6 +145,9 @@ void QtxToolTip::showTip( const QRect& aRegion, const QString& text, const QRect
        show();
 }
 
+/*!
+  Hides tooltip
+*/
 void QtxToolTip::hideTip()
 {
        hide();
@@ -131,6 +155,11 @@ void QtxToolTip::hideTip()
        mySleepTimer->stop();
 }
 
+/*!
+  It is called when there is a possibility that a tool tip should be shown and
+  must decide whether there is a tool tip for the point p in the widget that this QToolTip object relates to
+  \param pos - position
+*/
 void QtxToolTip::maybeTip( const QPoint& pos )
 {
        QString text;
@@ -152,12 +181,18 @@ void QtxToolTip::maybeTip( const QPoint& pos )
        }
 }
 
+/*!
+  SLOT: called when sleep time is out
+*/
 void QtxToolTip::onSleepTimeOut()
 {
        mySleepTimer->stop();
        hideTip();
 }
 
+/*!
+  SLOT: called when wake time is out
+*/
 void QtxToolTip::onWakeUpTimeOut()
 {
        myWakeUpTimer->stop();
@@ -167,6 +202,9 @@ void QtxToolTip::onWakeUpTimeOut()
   maybeTip( pos );
 }
 
+/*!
+  Custom mouse press event handler
+*/
 void QtxToolTip::mousePressEvent( QMouseEvent* e )
 {
        hideTip();
@@ -177,6 +215,9 @@ void QtxToolTip::mousePressEvent( QMouseEvent* e )
        QApplication::sendEvent( reciever, me );
 }
 
+/*!
+  Custom mouse double click event handler
+*/
 void QtxToolTip::mouseDoubleClickEvent( QMouseEvent* e )
 {
        hideTip();
@@ -187,23 +228,37 @@ void QtxToolTip::mouseDoubleClickEvent( QMouseEvent* e )
        QApplication::sendEvent( reciever, me );
 }
 
+/*!
+  Sets wake delay time
+  \param theTime
+*/
 void QtxToolTip::setWakeUpDelayTime( int theTime )
 {
   if( !(theTime < 0) )
     myWakeUpDelayTime = theTime;
 }
 
+/*!
+  Sets show delay time
+  \param theTime
+*/
 void QtxToolTip::setShowDelayTime( int theTime )
 {
   if( !(theTime < 0) )
     myShowDelayTime = theTime;
 }
 
+/*!
+  \return timer measuring time of sleeping
+*/
 QTimer* QtxToolTip::sleepTimer() const
 {
   return mySleepTimer;
 }
 
+/*!
+  \return timer measuring time of waking up
+*/
 QTimer* QtxToolTip::wakeUpTimer() const
 {
   return myWakeUpTimer;
index c630ff47d099c2d85769408f497475d4af2f883a..9b6d98ae66e99b69321f46489cde0f9734817312 100644 (file)
@@ -25,6 +25,9 @@
 #include <qworkspace.h>
 #include <qwidgetlist.h>
 
+/*!
+  Constructor
+*/
 QtxWorkspaceAction::QtxWorkspaceAction( QWorkspace* ws, QObject* parent, const char* name )
 : QtxAction( tr( "Controls windows into workspace" ), tr( "Workspace management" ), 0, parent, name ),
 myFlags( Standard ),
@@ -45,20 +48,33 @@ myWorkspace( ws )
   connect( myItem[VTile], SIGNAL( activated() ), this, SLOT( tileHorizontal() ) );
 }
 
+/*!
+  Destructor
+*/
 QtxWorkspaceAction::~QtxWorkspaceAction()
 {
 }
 
+/*!
+  \return corresponding workspace
+*/
 QWorkspace* QtxWorkspaceAction::workspace() const
 {
   return myWorkspace;
 }
 
+/*!
+  \return set of action flags
+*/
 int QtxWorkspaceAction::items() const
 {
   return myFlags;
 }
 
+/*!
+  Sets action flags
+  \param flags - new set of flags
+*/
 void QtxWorkspaceAction::setItems( const int flags )
 {
   if ( !flags || flags == myFlags || !( flags & Operations ) )
@@ -67,11 +83,19 @@ void QtxWorkspaceAction::setItems( const int flags )
   myFlags = flags;
 }
 
+/*!
+  \return true if action contains all flags
+  \param flags - new set of flags
+*/
 bool QtxWorkspaceAction::hasItems( const int flags ) const
 {
   return ( myFlags & flags ) == flags;
 }
 
+/*!
+  \return accelerator of item
+  \param id - item id
+*/
 int QtxWorkspaceAction::accel( const int id ) const
 {
   int a = 0;
@@ -80,6 +104,10 @@ int QtxWorkspaceAction::accel( const int id ) const
   return a;
 }
 
+/*!
+  \return icons of item
+  \param id - item id
+*/
 QIconSet QtxWorkspaceAction::iconSet( const int id ) const
 {
   QIconSet ico;
@@ -88,6 +116,10 @@ QIconSet QtxWorkspaceAction::iconSet( const int id ) const
   return ico;
 }
 
+/*!
+  \return menu text of item
+  \param id - item id
+*/
 QString QtxWorkspaceAction::menuText( const int id ) const
 {
   QString txt;
@@ -96,6 +128,10 @@ QString QtxWorkspaceAction::menuText( const int id ) const
   return txt;
 }
 
+/*!
+  \return status tip of item
+  \param id - item id
+*/
 QString QtxWorkspaceAction::statusTip( const int id ) const
 {
   QString txt;
@@ -104,35 +140,64 @@ QString QtxWorkspaceAction::statusTip( const int id ) const
   return txt;
 }
 
+/*!
+  Changes accelerator of item
+  \param id - item id
+  \param a - new accelerator
+*/
 void QtxWorkspaceAction::setAccel( const int id, const int a )
 {
   if ( myItem.contains( id ) )
     myItem[id]->setAccel( a );
 }
 
+/*!
+  Changes icons of item
+  \param id - item id
+  \param ico - new icons
+*/
 void QtxWorkspaceAction::setIconSet( const int id, const QIconSet& ico )
 {
   if ( myItem.contains( id ) )
     myItem[id]->setIconSet( ico );
 }
 
+/*!
+  Changes menu text of item
+  \param id - item id
+  \param txt - new menu text
+*/
 void QtxWorkspaceAction::setMenuText( const int id, const QString& txt )
 {
   if ( myItem.contains( id ) )
     myItem[id]->setMenuText( txt );
 }
 
+/*!
+  Changes status tip of item
+  \param id - item id
+  \param txt - new status tip
+*/
 void QtxWorkspaceAction::setStatusTip( const int id, const QString& txt )
 {
   if ( myItem.contains( id ) )
     myItem[id]->setStatusTip( txt );
 }
 
+/*!
+  Adds action to widget
+  \param wid - widget
+*/
 bool QtxWorkspaceAction::addTo( QWidget* wid )
 {
   return addTo( wid, -1 );
 }
 
+/*!
+  Adds action to widget
+  \param wid - widget
+  \param idx - position
+*/
 bool QtxWorkspaceAction::addTo( QWidget* wid, const int idx )
 {
   if ( !wid || !wid->inherits( "QPopupMenu" ) )
@@ -153,6 +218,10 @@ bool QtxWorkspaceAction::addTo( QWidget* wid, const int idx )
   return true;
 }
 
+/*!
+  Removes action from widget
+  \param wid - widget
+*/
 bool QtxWorkspaceAction::removeFrom( QWidget* wid )
 {
   if ( !wid || !wid->inherits( "QPopupMenu" ) )
@@ -172,6 +241,10 @@ bool QtxWorkspaceAction::removeFrom( QWidget* wid )
   return true;
 }
 
+/*!
+  Performs action
+  \param type - action type
+*/
 void QtxWorkspaceAction::perform( const int type )
 {
   switch ( type )
@@ -191,6 +264,9 @@ void QtxWorkspaceAction::perform( const int type )
   }
 }
 
+/*!
+  Performs tile action
+*/
 void QtxWorkspaceAction::tile()
 {
   QWorkspace* ws = workspace();
@@ -200,6 +276,9 @@ void QtxWorkspaceAction::tile()
   ws->tile();
 }
 
+/*!
+  Performs cascade action
+*/
 void QtxWorkspaceAction::cascade()
 {
   QWorkspace* ws = workspace();
@@ -216,6 +295,9 @@ void QtxWorkspaceAction::cascade()
                it.current()->resize( int( w * 0.8 ), int( h * 0.8 ) );
 }
 
+/*!
+  Performs tile vertical action
+*/
 void QtxWorkspaceAction::tileVertical()
 {
   QWorkspace* wrkSpace = workspace();
@@ -256,6 +338,9 @@ void QtxWorkspaceAction::tileVertical()
        }
 }
 
+/*!
+  Performs tile horizontal action
+*/
 void QtxWorkspaceAction::tileHorizontal()
 {
   QWorkspace* wrkSpace = workspace();
@@ -295,6 +380,9 @@ void QtxWorkspaceAction::tileHorizontal()
        }
 }
 
+/*!
+  SLOT: called just before the popup menu is displayed, updates popup
+*/
 void QtxWorkspaceAction::onAboutToShow()
 {
   const QObject* obj = sender();
@@ -304,11 +392,18 @@ void QtxWorkspaceAction::onAboutToShow()
   updatePopup( (QPopupMenu*)obj );
 }
 
+/*!
+  SLOT: called when popup menu is destroyed, removes it from menu
+*/
 void QtxWorkspaceAction::onPopupDestroyed( QObject* obj )
 {
   myMenu.remove( (QPopupMenu*)obj );
 }
 
+/*!
+  Updates popup
+  \param pm - popup menu
+*/
 void QtxWorkspaceAction::checkPopup( QPopupMenu* pm )
 {
   if ( !myMenu.contains( pm ) )
@@ -332,6 +427,10 @@ void QtxWorkspaceAction::checkPopup( QPopupMenu* pm )
   }
 }
 
+/*!
+  Clears and refills popup and updates state of actions
+  \param pm - popup menu
+*/
 void QtxWorkspaceAction::updatePopup( QPopupMenu* pm )
 {
   if ( !myMenu.contains( pm ) )
@@ -346,6 +445,10 @@ void QtxWorkspaceAction::updatePopup( QPopupMenu* pm )
   myItem[VTile]->setEnabled( count );
 }
 
+/*!
+  Clears popup
+  \param pm - popup menu
+*/
 int QtxWorkspaceAction::clearPopup( QPopupMenu* pm )
 {
   if ( !myMenu.contains( pm ) )
@@ -365,6 +468,11 @@ int QtxWorkspaceAction::clearPopup( QPopupMenu* pm )
   return idx;
 }
 
+/*!
+  Fills popup with items
+  \param pm - popup menu
+  \param idx - position
+*/
 void QtxWorkspaceAction::fillPopup( QPopupMenu* pm, const int idx )
 {
   if ( !pm )
@@ -405,6 +513,9 @@ void QtxWorkspaceAction::fillPopup( QPopupMenu* pm, const int idx )
   }
 }
 
+/*!
+  SLOT: called when popup item corresponding to window is activated, activates window
+*/
 void QtxWorkspaceAction::onItemActivated( int idx )
 {
   QWorkspace* ws = workspace();
index 5e01f08e865c4bb8194885c733e66833a05dfc25..c540606311edcd76748123abc2902165d27d642b 100644 (file)
 #define DARK_COLOR_LIGHT      250
 
 /*!
-    Class: QtxWorkstack [Public]
-    Descr:
+  Constructor
 */
-
 QtxWorkstack::QtxWorkstack( QWidget* parent )
 : QWidget( parent ),
 myWin( 0 ),
@@ -68,10 +66,16 @@ myWorkArea( 0 )
   base->addWidget( mySplit );
 }
 
+/*!
+  Destructor
+*/
 QtxWorkstack::~QtxWorkstack()
 {
 }
 
+/*!
+  \return list of all widgets in all areas
+*/
 QWidgetList QtxWorkstack::windowList() const
 {
   QPtrList<QtxWorkstackArea> lst;
@@ -88,16 +92,26 @@ QWidgetList QtxWorkstack::windowList() const
   return widList;
 }
 
+/*!
+  \return list of all widgets in active area
+*/
 QWidgetList QtxWorkstack::splitWindowList() const
 {
   return myArea ? myArea->widgetList() : QWidgetList();
 }
 
+/*!
+  \return active widget
+*/
 QWidget* QtxWorkstack::activeWindow() const
 {
   return myWin;
 }
 
+/*!
+  Splits widgets
+  \param o - orientation (Qt::Orientation)
+*/
 void QtxWorkstack::split( const int o )
 {
   QtxWorkstackArea* area = myWorkArea;
@@ -145,10 +159,10 @@ void QtxWorkstack::split( const int o )
 }
 
 /*!
-* \brief Split workarea of the given widget on two parts.
-* \param wid  - widget, belonging to this workstack
-* \param o    - orientation of splitting (Qt::Horizontal or Qt::Vertical)
-* \param type - type of splitting, see <VAR>SplitType</VAR> enumeration
+ \brief Split workarea of the given widget on two parts.
+ \param wid  - widget, belonging to this workstack
+ \param o    - orientation of splitting (Qt::Horizontal or Qt::Vertical)
+ \param type - type of splitting, see <VAR>SplitType</VAR> enumeration
 */
 void QtxWorkstack::Split (QWidget* wid, const Qt::Orientation o, const SplitType type)
 {
@@ -224,8 +238,8 @@ void QtxWorkstack::Split (QWidget* wid, const Qt::Orientation o, const SplitType
 }
 
 /*!
-* \brief Put given widget on top of its workarea
-* \param wid - widget, belonging to this workstack
+ \brief Put given widget on top of its workarea
+ \param wid - widget, belonging to this workstack
 */
 /*
 void QtxWorkstack::OnTop (QWidget* wid)
@@ -249,17 +263,17 @@ void QtxWorkstack::OnTop (QWidget* wid)
 */
 
 /*!
-* \brief Move widget(s) from source workarea into target workarea
-*        or just reorder widgets inside one workarea.
-* \param wid1 - widget from target workarea
-* \param wid2 - widget from source workarea
-* \param all  - if this parameter is TRUE, all widgets from source workarea will
-*               be moved into the target one, else only the \a wid2 will be moved
-*
-* Move \a wid2 in target workarea. Put it right after \a wid1.
-* If value of boolean argument is TRUE, all widgets from source workarea
-* will be moved together with \a wid2, source workarea will be deleted.
-* If \a wid1 and \a wid2 belongs to one workarea, simple reordering will take place.
+ \brief Move widget(s) from source workarea into target workarea
+        or just reorder widgets inside one workarea.
+ \param wid1 - widget from target workarea
+ \param wid2 - widget from source workarea
+ \param all  - if this parameter is TRUE, all widgets from source workarea will
+               be moved into the target one, else only the \a wid2 will be moved
+
+ Move \a wid2 in target workarea. Put it right after \a wid1.
+ If value of boolean argument is TRUE, all widgets from source workarea
+ will be moved together with \a wid2, source workarea will be deleted.
+ If \a wid1 and \a wid2 belongs to one workarea, simple reordering will take place.
 */
 void QtxWorkstack::Attract ( QWidget* wid1, QWidget* wid2, const bool all )
 {
@@ -711,6 +725,9 @@ int QtxWorkstack::setPosition( QWidget* wid, QSplitter* split, const Qt::Orienta
   return 0;
 }
 
+/*!
+  Redistributes space among widgets equally
+*/
 void QtxWorkstack::distributeSpace( QSplitter* split ) const
 {
   if ( !split )
@@ -724,16 +741,25 @@ void QtxWorkstack::distributeSpace( QSplitter* split ) const
   split->setSizes( szList );
 }
 
+/*!
+  Splits widgets vertically
+*/
 void QtxWorkstack::splitVertical()
 {
   split( Qt::Horizontal );
 }
 
+/*!
+  Splits widgets horizontally
+*/
 void QtxWorkstack::splitHorizontal()
 {
   split( Qt::Vertical );
 }
 
+/*!
+  SLOT: called if action "Rename" is activated, changes caption of widget
+*/
 void QtxWorkstack::onRename()
 {
   if ( !myWorkWin )
@@ -746,6 +772,10 @@ void QtxWorkstack::onRename()
     myWorkWin->setCaption( newName );
 }
 
+/*!
+  Wraps area into new splitter
+  \return new splitter
+*/
 QSplitter* QtxWorkstack::wrapSplitter( QtxWorkstackArea* area )
 {
   if ( !area )
@@ -774,6 +804,12 @@ QSplitter* QtxWorkstack::wrapSplitter( QtxWorkstackArea* area )
   return wrap;
 }
 
+/*!
+  Reparenst and adds widget
+  \param wid - widget
+  \param pWid - parent widget
+  \param after - after widget
+*/
 void QtxWorkstack::insertWidget( QWidget* wid, QWidget* pWid, QWidget* after )
 {
   if ( !wid || !pWid )
@@ -818,6 +854,10 @@ void QtxWorkstack::onCloseWindow()
     activeWindow()->close();
 }
 
+/*!
+  SLOT: called on area is destroyed
+  Sets focus to neighbour area
+*/
 void QtxWorkstack::onDestroyed( QObject* obj )
 {
   QtxWorkstackArea* area = (QtxWorkstackArea*)obj;
@@ -835,6 +875,9 @@ void QtxWorkstack::onDestroyed( QObject* obj )
   QApplication::postEvent( this, new QCustomEvent( QEvent::User ) );
 }
 
+/*!
+  SLOT: called on window activating
+*/
 void QtxWorkstack::onWindowActivated( QWidget* wid )
 {
   const QObject* obj = sender();
@@ -844,6 +887,9 @@ void QtxWorkstack::onWindowActivated( QWidget* wid )
   setActiveArea( (QtxWorkstackArea*)obj );
 }
 
+/*!
+  SLOT: called on window deactivating
+*/
 void QtxWorkstack::onDeactivated( QtxWorkstackArea* area )
 {
   if ( myArea != area )
@@ -866,6 +912,11 @@ void QtxWorkstack::onDeactivated( QtxWorkstackArea* area )
   QApplication::postEvent( this, new QCustomEvent( QEvent::User ) );
 }
 
+/*!
+  Creates and shows popup menu for area
+  \param w - area
+  \param p - popup position
+*/
 void QtxWorkstack::onContextMenuRequested( QWidget* w, QPoint p )
 {
   QtxWorkstackArea* anArea = dynamic_cast<QtxWorkstackArea*>( (QObject*)sender()  );
@@ -906,6 +957,9 @@ void QtxWorkstack::onContextMenuRequested( QWidget* w, QPoint p )
   myWorkArea = 0;
 }
 
+/*!
+  Custom child event handler, inserts widget to active or current area
+*/
 void QtxWorkstack::childEvent( QChildEvent* e )
 {
   if ( e->inserted() && e->child()->isWidgetType() )
@@ -920,11 +974,18 @@ void QtxWorkstack::childEvent( QChildEvent* e )
   QWidget::childEvent( e );
 }
 
+/*!
+  Handler of custom events
+*/
 void QtxWorkstack::customEvent( QCustomEvent* e )
 {
   updateState();
 }
 
+/*!
+  \return splitter corresponding to area
+  \param area
+*/
 QSplitter* QtxWorkstack::splitter( QtxWorkstackArea* area ) const
 {
   if ( !area )
@@ -939,6 +1000,12 @@ QSplitter* QtxWorkstack::splitter( QtxWorkstackArea* area ) const
   return split;
 }
 
+/*!
+  Fills list with children splitters
+  \param split - parent splitter
+  \param splitList - list to be filled with
+  \param rec - recursive search of children
+*/
 void QtxWorkstack::splitters( QSplitter* split, QPtrList<QSplitter>& splitList, const bool rec ) const
 {
   if ( !split )
@@ -957,6 +1024,12 @@ void QtxWorkstack::splitters( QSplitter* split, QPtrList<QSplitter>& splitList,
   }
 }
 
+/*!
+  Fills list with children areas
+  \param split - parent splitter
+  \param areaList - list to be filled with
+  \param rec - recursive search of children
+*/
 void QtxWorkstack::areas( QSplitter* split, QPtrList<QtxWorkstackArea>& areaList, const bool rec ) const
 {
   if ( !split )
@@ -975,11 +1048,17 @@ void QtxWorkstack::areas( QSplitter* split, QPtrList<QtxWorkstackArea>& areaList
   }
 }
 
+/*!
+  \return active area
+*/
 QtxWorkstackArea* QtxWorkstack::activeArea() const
 {
   return myArea;
 }
 
+/*!
+  \return active area or current area or create new area of there is no one
+*/
 QtxWorkstackArea* QtxWorkstack::targetArea()
 {
   QtxWorkstackArea* area = activeArea();
@@ -999,6 +1078,9 @@ QtxWorkstackArea* QtxWorkstack::targetArea()
   return area;
 }
 
+/*!
+  \return current area (that has focus)
+*/
 QtxWorkstackArea* QtxWorkstack::currentArea() const
 {
   QtxWorkstackArea* area = 0;
@@ -1013,6 +1095,9 @@ QtxWorkstackArea* QtxWorkstack::currentArea() const
   return area;
 }
 
+/*!
+  Creates new area
+*/
 QtxWorkstackArea* QtxWorkstack::createArea( QWidget* parent ) const
 {
   QtxWorkstackArea* area = new QtxWorkstackArea( parent );
@@ -1026,6 +1111,10 @@ QtxWorkstackArea* QtxWorkstack::createArea( QWidget* parent ) const
   return area;
 }
 
+/*!
+  Sets area as active
+  \param area
+*/
 void QtxWorkstack::setActiveArea( QtxWorkstackArea* area )
 {
   QWidget* oldCur = myWin;
@@ -1049,6 +1138,10 @@ void QtxWorkstack::setActiveArea( QtxWorkstackArea* area )
     emit windowActivated( myWin );
 }
 
+/*!
+  \return neighbour area
+  \param area - area to search neighbour
+*/
 QtxWorkstackArea* QtxWorkstack::neighbourArea( QtxWorkstackArea* area ) const
 {
   QPtrList<QtxWorkstackArea> lst;
@@ -1072,6 +1165,10 @@ QtxWorkstackArea* QtxWorkstack::neighbourArea( QtxWorkstackArea* area ) const
   return na;
 }
 
+/*!
+  \return area covering point
+  \param p - point
+*/
 QtxWorkstackArea* QtxWorkstack::areaAt( const QPoint& p ) const
 {
   QtxWorkstackArea* area = 0;
@@ -1089,11 +1186,17 @@ QtxWorkstackArea* QtxWorkstack::areaAt( const QPoint& p ) const
   return area;
 }
 
+/*!
+  Update
+*/
 void QtxWorkstack::updateState()
 {
   updateState( mySplit );
 }
 
+/*!
+  Update splitters
+*/
 void QtxWorkstack::updateState( QSplitter* split )
 {
   QPtrList<QSplitter> recList;
@@ -1133,6 +1236,11 @@ void QtxWorkstack::updateState( QSplitter* split )
     split->hide();
 }
 
+/*!
+  Gets splitter info for debug
+  \param split - splitter
+  \param info - string to be filled with info
+*/
 void QtxWorkstack::splitterInfo( QSplitter* split, QString& info ) const
 {
   if ( !split )
@@ -1183,16 +1291,18 @@ void QtxWorkstack::splitterInfo( QSplitter* split, QString& info ) const
 }
 
 
-// cuts starting '(' symbol and ending '(' symbol
+//Cuts starting '(' symbol and ending '(' symbol
 void cutBrackets( QString& parameters )
 {
   if ( !parameters.isEmpty() && parameters[0] == '(' && parameters[parameters.length()-1] == ')' )
     parameters = parameters.mid( 1, parameters.length()-2 );
 }
 
-// for strings like "(splitter orientation=0 children=2 sizes=332:478" returns values of
-// parameters.  For example, getValue( example, "children" ) returns "2"
-// getValue( example, "sizes" ) returns "332:478"
+/*
+  for strings like "(splitter orientation=0 children=2 sizes=332:478" returns values of
+  parameters.  For example, getValue( example, "children" ) returns "2"
+  getValue( example, "sizes" ) returns "332:478"
+*/
 QString getValue( const QString& str, const QString& valName )
 {
   int i = str.find( valName );
@@ -1207,7 +1317,9 @@ QString getValue( const QString& str, const QString& valName )
   return QString( "" );
 }
 
-// checks format of splitter parameters string
+/*
+  checks format of splitter parameters string
+*/
 bool checkFormat( const QString& parameters )
 {
   QString params( parameters );
@@ -1234,7 +1346,9 @@ bool checkFormat( const QString& parameters )
   return ok;
 }
 
-// returns children of splitter in a list.  Children are separated by '(' and ')' symbols
+/*
+  Returns children of splitter in a list.  Children are separated by '(' and ')' symbols
+*/
 QStringList getChildren( const QString& str )
 {
   QStringList lst;
@@ -1290,7 +1404,9 @@ QWidget* getView( const QWidget* parent, const QString& aName )
   return view;
 }
 
-// installs a splitter described by given parameters string
+/*!
+  Installs a splitter described by given parameters string
+*/
 void QtxWorkstack::setSplitter( QSplitter* splitter, const QString& parameters, QMap< QSplitter*, QValueList<int> >& sMap )
 {
   if ( !::checkFormat( parameters ) ) {
@@ -1348,7 +1464,9 @@ void QtxWorkstack::setSplitter( QSplitter* splitter, const QString& parameters,
   }
 }
 
-// Restore workstack's configuration stored in 'parameters' string
+/*!
+  Restore workstack's configuration stored in 'parameters' string
+*/
 QtxWorkstack& QtxWorkstack::operator<<( const QString& parameters )
 {
   // clear the main splitter - remove all child splitters and empty areas from it
@@ -1383,9 +1501,11 @@ QtxWorkstack& QtxWorkstack::operator<<( const QString& parameters )
   return (*this);
 }
 
-// Example of string produced by operator>> :
-// "(splitter orientation=0 sizes=186:624 (views active='OCCViewer_0_0' 'OCCViewer_0_0')
-// (views active='VTKViewer_0_0' 'VTKViewer_0_0'))"
+/*!
+  Example of string produced by operator>> :
+  "(splitter orientation=0 sizes=186:624 (views active='OCCViewer_0_0' 'OCCViewer_0_0')
+/ (views active='VTKViewer_0_0' 'VTKViewer_0_0'))"
+*/
 QtxWorkstack& QtxWorkstack::operator>>( QString& outParameters )
 {
   splitterInfo( mySplit, outParameters );
@@ -1394,10 +1514,8 @@ QtxWorkstack& QtxWorkstack::operator>>( QString& outParameters )
 
 
 /*!
-    Class: QtxWorkstackArea [Internal]
-    Descr:
+  Constructor
 */
-
 QtxWorkstackArea::QtxWorkstackArea( QWidget* parent )
 : QWidget( parent )
 {
@@ -1432,11 +1550,17 @@ QtxWorkstackArea::QtxWorkstackArea( QWidget* parent )
   qApp->installEventFilter( this );
 }
 
+/*!
+  Destructor
+*/
 QtxWorkstackArea::~QtxWorkstackArea()
 {
   qApp->removeEventFilter( this );
 }
 
+/*!
+  \return true if area is empty
+*/
 bool QtxWorkstackArea::isEmpty() const
 {
   bool res = false;
@@ -1445,6 +1569,11 @@ bool QtxWorkstackArea::isEmpty() const
   return !res;
 }
 
+/*!
+  Adds widget to area
+  \param wid - widget
+  \param idx - index
+*/
 void QtxWorkstackArea::insertWidget( QWidget* wid, const int idx )
 {
   if ( !wid )
@@ -1479,6 +1608,10 @@ void QtxWorkstackArea::insertWidget( QWidget* wid, const int idx )
   wid->setFocus();
 }
 
+/*!
+  Creates and shows popup menu for area
+  \param p - popup position
+*/
 void QtxWorkstackArea::onContextMenuRequested( QPoint p )
 {
   const QtxWorkstackTabBar* bar = ::qt_cast<const QtxWorkstackTabBar*>( sender() );
@@ -1493,12 +1626,20 @@ void QtxWorkstackArea::onContextMenuRequested( QPoint p )
   emit contextMenuRequested( wid, p );
 }
 
+/*!
+  SLOT: called when widget added to area is destroyed, removes widget from area
+*/
 void QtxWorkstackArea::onWidgetDestroyed()
 {
   if ( sender() )
     removeWidget( (QWidget*)sender(), false );
 }
 
+/*!
+  Removes widget from area
+  \param wid - widget
+  \param del - auto deleting
+*/
 void QtxWorkstackArea::removeWidget( QWidget* wid, const bool del )
 {
   if ( !myList.contains( wid ) )
@@ -1524,6 +1665,9 @@ void QtxWorkstackArea::removeWidget( QWidget* wid, const bool del )
     updateState();
 }
 
+/*!
+  \return list of visible widgets
+*/
 QWidgetList QtxWorkstackArea::widgetList() const
 {
   QWidgetList lst;
@@ -1535,21 +1679,35 @@ QWidgetList QtxWorkstackArea::widgetList() const
   return lst;
 }
 
+/*!
+  \return active widget
+*/
 QWidget* QtxWorkstackArea::activeWidget() const
 {
   return widget( myBar->currentTab() );
 }
 
+/*!
+  Sets widget as active
+  \param wid - widget
+*/
 void QtxWorkstackArea::setActiveWidget( QWidget* wid )
 {
   myBar->setCurrentTab( widgetId( wid ) );
 }
 
+/*!
+  \return true if area contains widget
+  \param wid - widget
+*/
 bool QtxWorkstackArea::contains( QWidget* wid ) const
 {
   return myList.contains( wid );
 }
 
+/*!
+  Shows area
+*/
 void QtxWorkstackArea::show()
 {
   QMap<QWidget*, bool> map;
@@ -1565,6 +1723,9 @@ void QtxWorkstackArea::show()
     setBlocked( itr.current(), map.contains( itr.current() ) ? map[itr.current()] : false );
 }
 
+/*!
+  Hides area
+*/
 void QtxWorkstackArea::hide()
 {
   QMap<QWidget*, bool> map;
@@ -1580,6 +1741,9 @@ void QtxWorkstackArea::hide()
     setBlocked( itr.current(), map.contains( itr.current() ) ? map[itr.current()] : false );
 }
 
+/*!
+  \return true if area is active
+*/
 bool QtxWorkstackArea::isActive() const
 {
   QtxWorkstack* ws = workstack();
@@ -1589,11 +1753,17 @@ bool QtxWorkstackArea::isActive() const
   return ws->activeArea() == this;
 }
 
+/*!
+  Update active state of tab bar
+*/
 void QtxWorkstackArea::updateActiveState()
 {
   myBar->setActive( isActive() );
 }
 
+/*!
+  \return corresponding workstack
+*/
 QtxWorkstack* QtxWorkstackArea::workstack() const
 {
   QtxWorkstack* ws = 0;
@@ -1607,6 +1777,9 @@ QtxWorkstack* QtxWorkstackArea::workstack() const
   return ws;
 }
 
+/*!
+  Custom event filter
+*/
 bool QtxWorkstackArea::eventFilter( QObject* o, QEvent* e )
 {
   if ( o->isWidgetType() )
@@ -1627,17 +1800,28 @@ bool QtxWorkstackArea::eventFilter( QObject* o, QEvent* e )
   return false;
 }
 
+/*!
+  \return rectangle of area in order to draw drop rectangle on area
+*/
 QRect QtxWorkstackArea::floatRect() const
 {
   QRect r = myStack->geometry();
   return QRect( mapToGlobal( r.topLeft() ), mapToGlobal( r.bottomRight() ) );
 }
 
+/*!
+  \return rectangle of tab in order to draw drop rectangle on tab
+  \param idx - tab index
+*/
 QRect QtxWorkstackArea::floatTab( const int idx ) const
 {
   return myBar->tabRect( idx );
 }
 
+/*!
+  \return tab covering point 
+  \param p - point
+*/
 int QtxWorkstackArea::tabAt( const QPoint& p ) const
 {
   int idx = -1;
@@ -1650,6 +1834,9 @@ int QtxWorkstackArea::tabAt( const QPoint& p ) const
   return idx;
 }
 
+/*!
+  Event handler for custom events
+*/
 void QtxWorkstackArea::customEvent( QCustomEvent* e )
 {
   switch ( e->type() )
@@ -1678,6 +1865,9 @@ void QtxWorkstackArea::customEvent( QCustomEvent* e )
   }
 }
 
+/*!
+  Custom focus in event handler
+*/
 void QtxWorkstackArea::focusInEvent( QFocusEvent* e )
 {
   QWidget::focusInEvent( e );
@@ -1685,6 +1875,9 @@ void QtxWorkstackArea::focusInEvent( QFocusEvent* e )
   emit activated( activeWidget() );
 }
 
+/*!
+  Custom mouse press event handler
+*/
 void QtxWorkstackArea::mousePressEvent( QMouseEvent* e )
 {
   QWidget::mousePressEvent( e );
@@ -1692,6 +1885,9 @@ void QtxWorkstackArea::mousePressEvent( QMouseEvent* e )
   emit activated( activeWidget() );
 }
 
+/*!
+  SLOT: called if button close is pressed
+*/
 void QtxWorkstackArea::onClose()
 {
   QWidget* wid = activeWidget();
@@ -1699,6 +1895,9 @@ void QtxWorkstackArea::onClose()
     wid->close();
 }
 
+/*!
+  SLOT: called if tab page is selected
+*/
 void QtxWorkstackArea::onSelected( int id )
 {
   updateCurrent();
@@ -1706,6 +1905,9 @@ void QtxWorkstackArea::onSelected( int id )
   emit activated( activeWidget() );
 }
 
+/*!
+  SLOT: called if active tab page is dragged
+*/
 void QtxWorkstackArea::onDragActiveTab()
 {
   QtxWorkstackChild* c = child( activeWidget() );
@@ -1715,6 +1917,9 @@ void QtxWorkstackArea::onDragActiveTab()
   new QtxWorkstackDrag( workstack(), c );
 }
 
+/*!
+  SLOT: called on child is destroyed, removes from area
+*/
 void QtxWorkstackArea::onChildDestroyed( QObject* obj )
 {
   QtxWorkstackChild* child = (QtxWorkstackChild*)obj;
@@ -1732,26 +1937,41 @@ void QtxWorkstackArea::onChildDestroyed( QObject* obj )
   QApplication::postEvent( this, new QCustomEvent( (QEvent::Type)RemoveWidget, wid ) );
 }
 
+/*!
+  SLOT: called on child is shown
+*/
 void QtxWorkstackArea::onChildShown( QtxWorkstackChild* c )
 {
   setWidgetShown( c->widget(), true );
 }
 
+/*!
+  SLOT: called on child is hidden
+*/
 void QtxWorkstackArea::onChildHided( QtxWorkstackChild* c )
 {
   setWidgetShown( c->widget(), false );
 }
 
+/*!
+  SLOT: called on child is activated
+*/
 void QtxWorkstackArea::onChildActivated( QtxWorkstackChild* c )
 {
   setWidgetActive( c->widget() );
 }
 
+/*!
+  SLOT: called on child caption is changed
+*/
 void QtxWorkstackArea::onChildCaptionChanged( QtxWorkstackChild* c )
 {
   updateTab( c->widget() );
 }
 
+/*!
+  Raises widget when active tab is changed
+*/
 void QtxWorkstackArea::updateCurrent()
 {
   QMap<QWidget*, bool> map;
@@ -1767,6 +1987,10 @@ void QtxWorkstackArea::updateCurrent()
     setBlocked( itr.current(), map.contains( itr.current() ) ? map[itr.current()] : false );
 }
 
+/*!
+  Updates tab
+  \param wid - tab widget
+*/
 void QtxWorkstackArea::updateTab( QWidget* wid )
 {
   QTab* tab = myBar->tab( widgetId( wid ) );
@@ -1785,6 +2009,10 @@ void QtxWorkstackArea::updateTab( QWidget* wid )
   tab->setText( wid->caption() );
 }
 
+/*!
+  \return widget
+  \param id - widget id
+*/
 QWidget* QtxWorkstackArea::widget( const int id ) const
 {
   QWidget* wid = 0;
@@ -1796,6 +2024,10 @@ QWidget* QtxWorkstackArea::widget( const int id ) const
   return wid;
 }
 
+/*!
+  \return widget id
+  \param wid - widget
+*/
 int QtxWorkstackArea::widgetId( QWidget* wid ) const
 {
   int id = -1;
@@ -1804,6 +2036,10 @@ int QtxWorkstackArea::widgetId( QWidget* wid ) const
   return id;
 }
 
+/*!
+  \return true if widget is visible
+  \param wid - widget
+*/
 bool QtxWorkstackArea::widgetVisibility( QWidget* wid ) const
 {
   bool res = false;
@@ -1812,6 +2048,10 @@ bool QtxWorkstackArea::widgetVisibility( QWidget* wid ) const
   return res;
 }
 
+/*!
+  Sets widget as active
+  \param wid - widget
+*/
 void QtxWorkstackArea::setWidgetActive( QWidget* wid )
 {
   int id = widgetId( wid );
@@ -1821,6 +2061,11 @@ void QtxWorkstackArea::setWidgetActive( QWidget* wid )
   myBar->setCurrentTab( id );
 }
 
+/*!
+  Shows/hides widget
+  \param wid - widget
+  \param on - new shown state
+*/
 void QtxWorkstackArea::setWidgetShown( QWidget* wid, const bool on )
 {
   if ( isBlocked( wid ) || !myInfo.contains( wid ) || myInfo[wid].vis == on )
@@ -1830,6 +2075,9 @@ void QtxWorkstackArea::setWidgetShown( QWidget* wid, const bool on )
   updateState();
 }
 
+/*!
+  Update
+*/
 void QtxWorkstackArea::updateState()
 {
   bool updBar = myBar->isUpdatesEnabled();
@@ -1931,6 +2179,9 @@ void QtxWorkstackArea::updateState()
   }
 }
 
+/*!
+  \return first unshared widget id
+*/
 int QtxWorkstackArea::generateId() const
 {
   QMap<int, int> map;
@@ -1945,11 +2196,20 @@ int QtxWorkstackArea::generateId() const
   return id;
 }
 
+/*!
+  \return true if widget is blocked
+  \param wid - widget
+*/
 bool QtxWorkstackArea::isBlocked( QWidget* wid ) const
 {
   return myBlock.contains( wid );
 }
 
+/*!
+  Blocks widget
+  \param wid - widget
+  \param on - new blocked state
+*/
 void QtxWorkstackArea::setBlocked( QWidget* wid, const bool on )
 {
   if ( on )
@@ -1958,6 +2218,10 @@ void QtxWorkstackArea::setBlocked( QWidget* wid, const bool on )
     myBlock.remove( wid );
 }
 
+/*!
+  \return child corresponding to widget
+  \param wid - widget
+*/
 QtxWorkstackChild* QtxWorkstackArea::child( QWidget* wid ) const
 {
   QtxWorkstackChild* res = 0;
@@ -1967,10 +2231,8 @@ QtxWorkstackChild* QtxWorkstackArea::child( QWidget* wid ) const
 }
 
 /*!
-    Class: QtxWorkstackChild [Internal]
-    Descr:
+  Constructor
 */
-
 QtxWorkstackChild::QtxWorkstackChild( QWidget* wid, QWidget* parent )
 : QHBox( parent ),
 myWidget( wid )
@@ -1981,6 +2243,9 @@ myWidget( wid )
   connect( myWidget, SIGNAL( destroyed( QObject* ) ), this, SLOT( onDestroyed( QObject* ) ) );
 }
 
+/*!
+  Destructor
+*/
 QtxWorkstackChild::~QtxWorkstackChild()
 {
   qApp->removeEventFilter( this );
@@ -1993,11 +2258,17 @@ QtxWorkstackChild::~QtxWorkstackChild()
   disconnect( widget(), SIGNAL( destroyed( QObject* ) ), this, SLOT( onDestroyed( QObject* ) ) );
 }
 
+/*!
+  \return corresponding widget
+*/
 QWidget* QtxWorkstackChild::widget() const
 {
   return myWidget;
 }
 
+/*!
+  Custom event filter
+*/
 bool QtxWorkstackChild::eventFilter( QObject* o, QEvent* e )
 {
   if ( o->isWidgetType() )
@@ -2017,6 +2288,9 @@ bool QtxWorkstackChild::eventFilter( QObject* o, QEvent* e )
   return QHBox::eventFilter( o, e );
 }
 
+/*!
+  SLOT: called on object is destroyed
+*/
 void QtxWorkstackChild::onDestroyed( QObject* obj )
 {
   if ( obj != widget() )
@@ -2026,6 +2300,9 @@ void QtxWorkstackChild::onDestroyed( QObject* obj )
   deleteLater();
 }
 
+/*!
+  Custom child event handler
+*/
 void QtxWorkstackChild::childEvent( QChildEvent* e )
 {
   if ( e->type() == QEvent::ChildRemoved && e->child() == widget() )
@@ -2037,20 +2314,25 @@ void QtxWorkstackChild::childEvent( QChildEvent* e )
 }
 
 /*!
-    Class: QtxWorkstackTabBar [Internal]
-    Descr:
+  Constructor
 */
-
 QtxWorkstackTabBar::QtxWorkstackTabBar( QWidget* parent )
 : QTabBar( parent ),
 myId( -1 )
 {
 }
 
+/*!
+  Destructor
+*/
 QtxWorkstackTabBar::~QtxWorkstackTabBar()
 {
 }
 
+/*!
+  Sets tab bar as active or inactive
+  \param on - new active state
+*/
 void QtxWorkstackTabBar::setActive( const bool on )
 {
   QFont aFont = font();
@@ -2072,6 +2354,10 @@ void QtxWorkstackTabBar::setActive( const bool on )
   update();
 }
 
+/*!
+  \return tab rectangle
+  \param idx - tab index
+*/
 QRect QtxWorkstackTabBar::tabRect( const int idx ) const
 {
   QRect r;
@@ -2100,6 +2386,9 @@ QRect QtxWorkstackTabBar::tabRect( const int idx ) const
   return r;
 }
 
+/*!
+  Custom mouse move event handler
+*/
 void QtxWorkstackTabBar::mouseMoveEvent( QMouseEvent* e )
 {
   if ( myId != -1 && !tab( myId )->rect().contains( e->pos() ) )
@@ -2111,6 +2400,9 @@ void QtxWorkstackTabBar::mouseMoveEvent( QMouseEvent* e )
   QTabBar::mouseMoveEvent( e );
 }
 
+/*!
+  Custom mouse press event handler
+*/
 void QtxWorkstackTabBar::mousePressEvent( QMouseEvent* e )
 {
   QTabBar::mousePressEvent( e );
@@ -2119,6 +2411,9 @@ void QtxWorkstackTabBar::mousePressEvent( QMouseEvent* e )
     myId = currentTab();
 }
 
+/*!
+  Custom mouse release event handler
+*/
 void QtxWorkstackTabBar::mouseReleaseEvent( QMouseEvent* e )
 {
   QTabBar::mouseReleaseEvent( e );
@@ -2129,12 +2424,18 @@ void QtxWorkstackTabBar::mouseReleaseEvent( QMouseEvent* e )
     emit contextMenuRequested( e->globalPos() );
 }
 
+/*!
+  Custom context menu event handler
+*/
 void QtxWorkstackTabBar::contextMenuEvent( QContextMenuEvent* e )
 {
   if ( e->reason() != QContextMenuEvent::Mouse )
     emit contextMenuRequested( e->globalPos() );
 }
 
+/*!
+  Draws label of tab bar
+*/
 void QtxWorkstackTabBar::paintLabel( QPainter* p, const QRect& br, QTab* t, bool has_focus ) const
 {
   if ( currentTab() != t->identifier() )
@@ -2147,10 +2448,8 @@ void QtxWorkstackTabBar::paintLabel( QPainter* p, const QRect& br, QTab* t, bool
 }
 
 /*!
-    Class: QtxWorkstackDrag [Internal]
-    Descr:
+  Constructor
 */
-
 QtxWorkstackDrag::QtxWorkstackDrag( QtxWorkstack* ws, QtxWorkstackChild* child )
 : QObject( 0 ),
 myWS( ws ),
@@ -2162,6 +2461,9 @@ myChild( child )
   qApp->installEventFilter( this );
 }
 
+/*!
+  Destructor
+*/
 QtxWorkstackDrag::~QtxWorkstackDrag()
 {
   qApp->removeEventFilter( this );
@@ -2169,6 +2471,9 @@ QtxWorkstackDrag::~QtxWorkstackDrag()
   endDrawRect();
 }
 
+/*!
+  Custom event filter
+*/
 bool QtxWorkstackDrag::eventFilter( QObject*, QEvent* e )
 {
   switch ( e->type() )
@@ -2188,6 +2493,10 @@ bool QtxWorkstackDrag::eventFilter( QObject*, QEvent* e )
   return true;
 }
 
+/*!
+  Updates internal field with widget-target for dropping
+  \param p - current point of dragging
+*/
 void QtxWorkstackDrag::updateTarget( const QPoint& p )
 {
   int tab = -1;
@@ -2195,6 +2504,11 @@ void QtxWorkstackDrag::updateTarget( const QPoint& p )
   setTarget( area, tab );
 }
 
+/*!
+  \return target area for dropping by point
+  \param p - current point of dragging
+  \param tab - index of tab to dropping
+*/
 QtxWorkstackArea* QtxWorkstackDrag::detectTarget( const QPoint& p, int& tab ) const
 {
   if ( p.isNull() )
@@ -2206,6 +2520,11 @@ QtxWorkstackArea* QtxWorkstackDrag::detectTarget( const QPoint& p, int& tab ) co
   return area;
 }
 
+/*!
+  Changes target area for dropping
+  \param area - new target area
+  \param tab - tab index
+*/
 void QtxWorkstackDrag::setTarget( QtxWorkstackArea* area, const int tab )
 {
   if ( !area || ( myArea == area && tab == myTab ) )
@@ -2223,12 +2542,18 @@ void QtxWorkstackDrag::setTarget( QtxWorkstackArea* area, const int tab )
     drawRect();
 }
 
+/*!
+  Called on widget drop, inserts dropped widget to area
+*/
 void QtxWorkstackDrag::dropWidget()
 {
   if ( myArea )
     myArea->insertWidget( myChild->widget(), myTab );
 }
 
+/*!
+  Draws float rect
+*/
 void QtxWorkstackDrag::drawRect()
 {
   if ( !myPainter || !myArea )
@@ -2253,12 +2578,18 @@ void QtxWorkstackDrag::drawRect()
   myPainter->drawRect( tr );
 }
 
+/*!
+  Deletes internal painter
+*/
 void QtxWorkstackDrag::endDrawRect()
 {
   delete myPainter;
   myPainter = 0;
 }
 
+/*!
+  Initialize internal painter
+*/
 void QtxWorkstackDrag::startDrawRect()
 {
   if ( myPainter )
index c26a9b0aa45e3ae1efe253b56208194cb1d07cfd..3bc06761a33849f9d7b0c9521e9392a65f186806 100644 (file)
@@ -26,6 +26,9 @@
 #include <qpopupmenu.h>
 #include <qwidgetlist.h>
 
+/*!
+  Constructor
+*/
 QtxWorkstackAction::QtxWorkstackAction( QtxWorkstack* ws, QObject* parent, const char* name )
 : QtxAction( tr( "Controls windows into workstack" ), tr( "Workstack management" ), 0, parent, name ),
 myFlags( Standard ),
@@ -40,20 +43,33 @@ myWorkstack( ws )
   connect( myItem[HSplit], SIGNAL( activated() ), ws, SLOT( splitHorizontal() ) );
 }
 
+/*!
+  Destructor
+*/
 QtxWorkstackAction::~QtxWorkstackAction()
 {
 }
 
+/*!
+  \return corresponding workstack
+*/
 QtxWorkstack* QtxWorkstackAction::workstack() const
 {
   return myWorkstack;
 }
 
+/*!
+  \return set of action flags
+*/
 int QtxWorkstackAction::items() const
 {
   return myFlags;
 }
 
+/*!
+  Sets action flags
+  \param flags - new set of flags
+*/
 void QtxWorkstackAction::setItems( const int flags )
 {
   if ( !flags || flags == myFlags || !( flags & Split ) )
@@ -62,11 +78,19 @@ void QtxWorkstackAction::setItems( const int flags )
   myFlags = flags;
 }
 
+/*!
+  \return true if action contains all flags
+  \param flags - new set of flags
+*/
 bool QtxWorkstackAction::hasItems( const int flags ) const
 {
   return ( myFlags & flags ) == flags;
 }
 
+/*!
+  \return accelerator of item
+  \param id - item id
+*/
 int QtxWorkstackAction::accel( const int id ) const
 {
   int a = 0;
@@ -75,6 +99,10 @@ int QtxWorkstackAction::accel( const int id ) const
   return a;
 }
 
+/*!
+  \return icons of item
+  \param id - item id
+*/
 QIconSet QtxWorkstackAction::iconSet( const int id ) const
 {
   QIconSet ico;
@@ -83,6 +111,10 @@ QIconSet QtxWorkstackAction::iconSet( const int id ) const
   return ico;
 }
 
+/*!
+  \return menu text of item
+  \param id - item id
+*/
 QString QtxWorkstackAction::menuText( const int id ) const
 {
   QString txt;
@@ -91,6 +123,10 @@ QString QtxWorkstackAction::menuText( const int id ) const
   return txt;
 }
 
+/*!
+  \return status tip of item
+  \param id - item id
+*/
 QString QtxWorkstackAction::statusTip( const int id ) const
 {
   QString txt;
@@ -99,35 +135,64 @@ QString QtxWorkstackAction::statusTip( const int id ) const
   return txt;
 }
 
+/*!
+  Changes accelerator of item
+  \param id - item id
+  \param a - new accelerator
+*/
 void QtxWorkstackAction::setAccel( const int id, const int a )
 {
   if ( myItem.contains( id ) )
     myItem[id]->setAccel( a );
 }
 
+/*!
+  Changes icons of item
+  \param id - item id
+  \param ico - new icons
+*/
 void QtxWorkstackAction::setIconSet( const int id, const QIconSet& ico )
 {
   if ( myItem.contains( id ) )
     myItem[id]->setIconSet( ico );
 }
 
+/*!
+  Changes menu text of item
+  \param id - item id
+  \param txt - new menu text
+*/
 void QtxWorkstackAction::setMenuText( const int id, const QString& txt )
 {
   if ( myItem.contains( id ) )
     myItem[id]->setMenuText( txt );
 }
 
+/*!
+  Changes status tip of item
+  \param id - item id
+  \param txt - new status tip
+*/
 void QtxWorkstackAction::setStatusTip( const int id, const QString& txt )
 {
   if ( myItem.contains( id ) )
     myItem[id]->setStatusTip( txt );
 }
 
+/*!
+  Adds action to widget
+  \param wid - widget
+*/
 bool QtxWorkstackAction::addTo( QWidget* wid )
 {
   return addTo( wid, -1 );
 }
 
+/*!
+  Adds action to widget
+  \param wid - widget
+  \param idx - position
+*/
 bool QtxWorkstackAction::addTo( QWidget* wid, const int idx )
 {
   if ( !wid || !wid->inherits( "QPopupMenu" ) )
@@ -148,6 +213,10 @@ bool QtxWorkstackAction::addTo( QWidget* wid, const int idx )
   return true;
 }
 
+/*!
+  Removes action from widget
+  \param wid - widget
+*/
 bool QtxWorkstackAction::removeFrom( QWidget* wid )
 {
   if ( !wid || !wid->inherits( "QPopupMenu" ) )
@@ -167,6 +236,10 @@ bool QtxWorkstackAction::removeFrom( QWidget* wid )
   return true;
 }
 
+/*!
+  Performs action
+  \param type - action type
+*/
 void QtxWorkstackAction::perform( const int type )
 {
   switch ( type )
@@ -180,6 +253,9 @@ void QtxWorkstackAction::perform( const int type )
   }
 }
 
+/*!
+  SLOT: called just before the popup menu is displayed, updates popup
+*/
 void QtxWorkstackAction::onAboutToShow()
 {
   const QObject* obj = sender();
@@ -195,11 +271,18 @@ void QtxWorkstackAction::onAboutToShow()
   updatePopup( (QPopupMenu*)obj );
 }
 
+/*!
+  SLOT: called when popup menu is destroyed, removes it from menu
+*/
 void QtxWorkstackAction::onPopupDestroyed( QObject* obj )
 {
   myMenu.remove( (QPopupMenu*)obj );
 }
 
+/*!
+  Updates popup
+  \param pm - popup menu
+*/
 void QtxWorkstackAction::checkPopup( QPopupMenu* pm )
 {
   if ( !myMenu.contains( pm ) )
@@ -223,6 +306,10 @@ void QtxWorkstackAction::checkPopup( QPopupMenu* pm )
   }
 }
 
+/*!
+  Clears and refills popup and updates state of actions
+  \param pm - popup menu
+*/
 void QtxWorkstackAction::updatePopup( QPopupMenu* pm )
 {
   if ( !myMenu.contains( pm ) )
@@ -235,6 +322,10 @@ void QtxWorkstackAction::updatePopup( QPopupMenu* pm )
   myItem[HSplit]->setEnabled( count > 1 );
 }
 
+/*!
+  Clears popup
+  \param pm - popup menu
+*/
 int QtxWorkstackAction::clearPopup( QPopupMenu* pm )
 {
   if ( !myMenu.contains( pm ) )
@@ -254,6 +345,11 @@ int QtxWorkstackAction::clearPopup( QPopupMenu* pm )
   return idx;
 }
 
+/*!
+  Fills popup with items
+  \param pm - popup menu
+  \param idx - position
+*/
 void QtxWorkstackAction::fillPopup( QPopupMenu* pm, const int idx )
 {
   if ( !pm )
@@ -294,6 +390,9 @@ void QtxWorkstackAction::fillPopup( QPopupMenu* pm, const int idx )
   }
 }
 
+/*!
+  SLOT: called when popup item corresponding to window is activated, activates window
+*/
 void QtxWorkstackAction::onItemActivated( int idx )
 {
   QtxWorkstack* ws = workstack();
index a75b6d4e065a0d1103a6af13fce4ae7d2776150e..79d6fdf19b4d002b714ff38600755be87d8ac618 100755 (executable)
@@ -36,6 +36,9 @@
 
 using namespace std;
 
+/*!
+  Constructor
+*/
 HelpWindow::HelpWindow(QWidget* parent, const char* name ) 
      : QMainWindow( parent, name, WType_TopLevel | WDestructiveClose )
 {
index 9f1a5d212f3b70997bc0e7f6b1b90962c4e66d30..7326dadf2e5b900d2d8f951d1a63ba12e5549a69 100755 (executable)
@@ -20,6 +20,9 @@
 #define SPACING_SIZE      6
 #define MIN_SPIN_WIDTH  100 
 
+/*!
+  Constructor
+*/
 IntervalWindow::IntervalWindow ( QWidget* parent )
      : QDialog( parent, "IntervalWindow" , true, WStyle_Customize | WStyle_NormalBorder | WStyle_Title | WStyle_SysMenu | WDestructiveClose )
 {
@@ -73,8 +76,13 @@ IntervalWindow::IntervalWindow ( QWidget* parent )
 
   END_OF("IntervalWindow constructor")
 }
+
+/*!
+  Destructor
+*/
 IntervalWindow::~IntervalWindow() {}
-/* 
+
+/*!
    Sets start interval size
 */
 void IntervalWindow::setValue(const int size)
@@ -82,7 +90,7 @@ void IntervalWindow::setValue(const int size)
   mySpinBox->setValue(size);
 }
 
-/*
+/*!
    Gets interval size
 */
 int IntervalWindow::getValue()
@@ -90,7 +98,7 @@ int IntervalWindow::getValue()
   return mySpinBox->value();
 }
 
-/*
+/*!
    gets a pointer to myButtonOk
 */
 QPushButton* IntervalWindow::Ok()
@@ -98,7 +106,7 @@ QPushButton* IntervalWindow::Ok()
   return myButtonOk;
 }
 
-/*
+/*!
    gets a pointer to myButtonCancel
 */
 QPushButton* IntervalWindow::Cancel()
index aa0a8550ef2d853a12a8c099feeb476abda666bf..77f61b06807194b5392ffe4f28fd3b0cfa143332 100755 (executable)
@@ -52,8 +52,8 @@ LIB_MOC = RegWidget.h
 
 LIB_CLIENT_IDL = SALOME_Registry.idl SALOME_Exception.idl
 
-CPPFLAGS+=$(QT_INCLUDES) -I${KERNEL_ROOT_DIR}/include/salome
-LDFLAGS+=$(QT_MT_LIBS) -L$(KERNEL_ROOT_DIR)/lib/salome -lSalomeNS -lOpUtil
+CPPFLAGS+=$(QT_INCLUDES) $(KERNEL_CXXFLAGS)
+LDFLAGS+=$(QT_MT_LIBS) $(KERNEL_LDFLAGS) -lSalomeNS -lOpUtil
 
 
 @CONCLUDE@
index 0425cc268980f0abede1b4d12a01dbca6393d64b..5dadc9d9df54adedefc6f99516873ad95bba6e6b 100755 (executable)
@@ -353,8 +353,10 @@ QString RegWidget::setlongText( const Registry::Infos &c_info)
   a.append( QString( " )<br> " ) + tr( "in directory" ) + QString( " " ));
   a.append( BOLD( c_info.cdir ) );
   
+  time_t aTime;
   a.append( QString( "<br>" ) + tr( "begins" ) + QString( " " ) );
-  char * t1 = (char * )duplicate(ctime(&c_info.tc_start));
+  aTime = time_t(c_info.tc_start);
+  char * t1 = (char * )duplicate(ctime(&aTime));
   t1 [strlen(t1) -1 ] = ' ';
   a.append( BOLD( t1 ) ); 
   delete [] t1;
@@ -362,7 +364,8 @@ QString RegWidget::setlongText( const Registry::Infos &c_info)
   
   if (c_info.tc_hello != 0 )
     {
-      char * t2 = (char * )duplicate(ctime(&c_info.tc_hello));
+      aTime = time_t(c_info.tc_hello);
+      char * t2 = (char * )duplicate(ctime(&aTime));
       t2 [strlen(t2) -1 ] = ' ';
       a.append( tr( "last signal" ) + QString(" : ") ); 
       a.append( BOLD( t2 ) ); 
@@ -371,7 +374,8 @@ QString RegWidget::setlongText( const Registry::Infos &c_info)
     }
   if ((c_info.tc_end - c_info.difftime) != 0)
     {
-      char * t3 = (char * )duplicate(ctime(&c_info.tc_end));
+      aTime = time_t(c_info.tc_end);
+      char * t3 = (char * )duplicate(ctime(&aTime));
       t3 [strlen(t3) -1 ] = ' ';
       a.append( tr( "ends" ) + QString( " " ) ); 
       a.append( BOLD( t3 ) ); 
@@ -459,6 +463,7 @@ void RegWidget::InfoHistory()
     _history->clear();
   try
     {
+      time_t aTime;
       _serverhistory = _VarComponents->history();
       for (CORBA::ULong i=0; i<_serverhistory->length(); i++)
        {       
@@ -466,9 +471,11 @@ void RegWidget::InfoHistory()
          ASSERT( c_info.name!=NULL);
          QString a;
          a.setNum(int(c_info.pid));
-         char * t1 = (char * )duplicate(ctime(&c_info.tc_start));
+         aTime = time_t(c_info.tc_start);
+         char * t1 = (char * )duplicate(ctime(&aTime));
          t1 [strlen(t1) -1 ] = ' ';
-         char * t2 = (char * )duplicate(ctime(&c_info.tc_end));
+         aTime = time_t(c_info.tc_end);
+         char * t2 = (char * )duplicate(ctime(&aTime));
          t2 [strlen(t2) -1 ] = ' ';
          QListViewItem * item = new QListViewItem(_history, QString(c_info.name),\
                                                   a, QString(c_info.pwname), QString(c_info.machine), \
@@ -499,6 +506,7 @@ void RegWidget::InfoReg()
   _clients->clear();
   try
     {
+      time_t aTime;
       _serverclients = _VarComponents->getall();
       for (CORBA::ULong i=0; i<_serverclients->length(); i++)
        {       
@@ -506,9 +514,11 @@ void RegWidget::InfoReg()
          ASSERT( c_info.name!=NULL);
          QString a;
          a.setNum(int(c_info.pid));
-         char * t1 = (char * )duplicate(ctime(&c_info.tc_start));
+         aTime = time_t(c_info.tc_start);
+         char * t1 = (char * )duplicate(ctime(&aTime));
          t1 [strlen(t1) -1 ] = ' ';
-         char * t2 = (char * )duplicate(ctime(&c_info.tc_hello));
+         aTime = time_t(c_info.tc_hello);
+         char * t2 = (char * )duplicate(ctime(&aTime));
          t2 [strlen(t2) -1 ] = ' ';
          QListViewItem * item = new QListViewItem(_clients, QString(c_info.name),\
                                                   a, QString(c_info.pwname), QString(c_info.machine), \
@@ -563,6 +573,9 @@ void RegWidget::slotSelectRefresh()
   END_OF("slotSelectRefresh");
 }
 
+/*!
+  SLOT: called when button OK is clicked in interval window
+*/
 void RegWidget::slotIntervalOk()
 {
   BEGIN_OF("slotIntervalOk");
index d14c977ba23cbb28bec4de6ad4bc44e16213ae89..572127384d414c8ff4415f7505d5a42da02e7661 100755 (executable)
@@ -1,3 +1,21 @@
+#  Copyright (C) 2005  CEA/DEN, EDF R&D, OPEN CASCADE, PRINCIPIA R&D
+#
+#  This library is free software; you can redistribute it and/or
+#  modify it under the terms of the GNU Lesser General Public
+#  License as published by the Free Software Foundation; either
+#  version 2.1 of the License.
+#
+#  This library is distributed in the hope that it will be useful,
+#  but WITHOUT ANY WARRANTY; without even the implied warranty of
+#  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+#  Lesser General Public License for more details.
+#
+#  You should have received a copy of the GNU Lesser General Public
+#  License along with this library; if not, write to the Free Software
+#  Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307 USA
+#
+#  See http://www.salome-platform.org/
+#
 #  File   : Makefile.in
 #  Author : Vadim SANDLER (OCN)
 #  Module : SalomeApp
index 29922a2cdb819e4fe17e62053db6e28851def77c..92ae3ace867526c8cbd408c7100a32054891a4ca 100644 (file)
@@ -1,27 +1,45 @@
-//======================================================================================================
-// File:      ResourceExporter.cxx
-// Created:   27/06/05
-// Author:    Vadim SANDLER
-// Copyright (C) CEA 2005
+// Copyright (C) 2005  CEA/DEN, EDF R&D, OPEN CASCADE, PRINCIPIA R&D
 //
-// This tool provides command-line interface allowing to modify user preferences.
-// The tool can be used by the compilation procedures in order to set default preferences for the module.
+// This library is free software; you can redistribute it and/or
+// modify it under the terms of the GNU Lesser General Public
+// License as published by the Free Software Foundation; either
+// version 2.1 of the License.
 //
-// Usage:
-//    ResourceExporter <parameters-list>
-// Parameters have the following format:
-//    '<section>:<name>=<new_value>'            - to set <new_value> for the user 
-//                                                preference <name> from the <section> section;
-//    '<section>:<name>+=<value>[|<separator>]' - the <value> is appended to the current value 
-//                                                of the preference <name> from the <section> section;
-//                                                separator is used to concatenate old and new values,
-//                                                by default comma (',') symbol is used
-//    '-<section>:<name>'                       - to remove user preference <name> from the <section>
-//                                                section. Note that only use preference file is 
-//                                                influenced, you may need to use '<section>:<name>=""'
-//                                                option
-// The number of parameters is limeted only by maximum possible length of the command line.
-//======================================================================================================
+// This library is distributed in the hope that it will be useful
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+// Lesser General Public License for more details.
+//
+// You should have received a copy of the GNU Lesser General Public
+// License along with this library; if not, write to the Free Software
+// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307 USA
+//
+// See http://www.salome-platform.org/
+//
+/*!
+ File:      ResourceExporter.cxx
+ Created:   27/06/05
+ Author:    Vadim SANDLER
+ Copyright (C) CEA 2005
+
+ This tool provides command-line interface allowing to modify user preferences.
+ The tool can be used by the compilation procedures in order to set default preferences for the module.
+
+ Usage:
+    ResourceExporter <parameters-list>
+ Parameters have the following format:
+    '<section>:<name>=<new_value>'            - to set <new_value> for the user 
+                                                preference <name> from the <section> section;
+    '<section>:<name>+=<value>[|<separator>]' - the <value> is appended to the current value 
+                                                of the preference <name> from the <section> section;
+                                                separator is used to concatenate old and new values,
+                                                by default comma (',') symbol is used
+    '-<section>:<name>'                       - to remove user preference <name> from the <section>
+                                                section. Note that only use preference file is 
+                                                influenced, you may need to use '<section>:<name>=""'
+                                                option
+ The number of parameters is limeted only by maximum possible length of the command line.
+*/
 
 #include "SUIT_ResourceMgr.h"
 #include <qfile.h>
@@ -30,9 +48,9 @@
 #include <qapplication.h>
 #include <iostream>
 
-//============================================================
-// salomeVersion(): get the SALOME version number
-//============================================================
+/*!
+  \return the SALOME version number
+*/
 static QString salomeVersion()
 {
   QString path( ::getenv( "GUI_ROOT_DIR" ) );
@@ -62,9 +80,9 @@ static QString salomeVersion()
   return ver;
 }
 
-//============================================================
-// help(): print the help information
-//============================================================
+/*!
+  print the help information
+*/
 static void help()
 {
   std::cout << ""                                                                                                     << std::endl;
@@ -87,9 +105,9 @@ static void help()
   std::cout << ""                                                                                                     << std::endl;
 }
 
-//============================================================
-// main(): application main() function
-//============================================================
+/*!
+  application main() function
+*/
 int main( int argc, char** argv )
 {
   QApplication app( argc, argv );
index a9bd30e9509f16f878dadea204273db6aa011720..7101c82d4252a9571905c7fef205c03f60e00e89 100755 (executable)
@@ -44,7 +44,7 @@ LIB_CLIENT_IDL = SALOMEDS.idl \
                 SALOME_Exception.idl \
                 SALOME_GenericObj.idl
 
-CPPFLAGS+=$(QT_INCLUDES) $(PYTHON_INCLUDES) $(VTK_INCLUDES) $(OGL_INCLUDES) $(OCC_INCLUDES) $(BOOST_CPPFLAGS) -I${KERNEL_ROOT_DIR}/include/salome -DHAVE_CONFIG_H
+CPPFLAGS+=$(QT_INCLUDES) $(PYTHON_INCLUDES) $(VTK_INCLUDES) $(OGL_INCLUDES) $(OCC_INCLUDES) $(BOOST_CPPFLAGS) $(KERNEL_CXXFLAGS) -DHAVE_CONFIG_H
 LDFLAGS+= $(PYTHON_LIBS) $(QT_MT_LIBS) $(VTK_LIBS) $(OGL_LIBS) -lSalomeApp -lvtkCommonPython -lvtkGraphicsPython -lvtkImagingPython
 # -lVTKViewer
 
index 69ef4910613827cd7dc1fe008f6a07599410a338..c12d61c245eca4aa3e821a25315f883c7fe37952 100755 (executable)
 
 using namespace std;
 
-//////////////////////////////////////////////////////////////////////////////
-// VSR : 19.04.05 : Reimplemented for new SALOME GUI (SUIT-based)
-// All methods are implemented using Event mechanism:
-// - getRenderer()
-// - getRenderWindow()
-// - getRenderWindowInteractor()
-// These methods open new VTK viewer if there is no one opened.
-// In case of error methods return None object in Python.
-//////////////////////////////////////////////////////////////////////////////
+/*!
+  VSR : 19.04.05 : Reimplemented for new SALOME GUI (SUIT-based)
+  All methods are implemented using Event mechanism:
+  - getRenderer()
+  - getRenderWindow()
+  - getRenderWindowInteractor()
+  These methods open new VTK viewer if there is no one opened.
+  In case of error methods return None object in Python.
+*/
 
 static PyObject* GetPyClass(const char* theClassName){
   static PyObject *aVTKModule = NULL;
index d5481f52ae95e024a12c412bbe9fd8b0843afb37..7104c860179fe8a2df710ff7fcd22012b4f2d1af 100644 (file)
@@ -63,7 +63,7 @@ LIB_CLIENT_IDL = SALOME_Exception.idl \
                  SALOME_ContainerManager.idl \
                  SALOME_Component.idl 
 
-CPPFLAGS += $(QT_INCLUDES) $(SIP_INCLUDES) $(PYTHON_INCLUDES) $(OCC_INCLUDES) $(VTK_INCLUDES) $(OGL_INCLUDES) $(BOOST_CPPFLAGS) -DHAVE_CONFIG_H -I${KERNEL_ROOT_DIR}/include/salome -D__CALL_OLD_METHODS__
+CPPFLAGS += $(QT_INCLUDES) $(SIP_INCLUDES) $(PYTHON_INCLUDES) $(OCC_INCLUDES) $(VTK_INCLUDES) $(OGL_INCLUDES) $(BOOST_CPPFLAGS) -DHAVE_CONFIG_H $(KERNEL_CXXFLAGS) -D__CALL_OLD_METHODS__
 
 LIBS     += $(PYTHON_LIBS) $(SIP_LIBS) $(PYQT_LIBS) $(VTK_LIBS) $(OGL_LIBS)
 LDFLAGS  += -lPyInterp -lSalomeApp
index 0593d778418e5cd72c75835bae53027ad769de80..b761e719a74c6014ea34f4c31fd10069b5186ad8 100644 (file)
 //
 // See http://www.salome-platform.org/
 //
-//=============================================================================
-// File      : SALOME_PYQT_Module.cxx
-// Created   : 25/04/05
-// Author    : Vadim SANDLER
-// Project   : SALOME
-// Copyright : 2003-2005 CEA/DEN, EDF R&D
-// $Header   : $
-//=============================================================================
 
 #include "SALOME_PYQT_Module.h"
 
@@ -43,6 +35,7 @@
 #include <qfile.h>
 #include <qdom.h>
 #include <qworkspace.h>
+#include <qmenubar.h>
 #include <qpopupmenu.h>
 
 #include "SALOME_PYQT_SipDefs.h"
 
 using namespace std;
 
-///////////////////////////////////////////////////////////////////////////////
-// Default name of the module, replaced at the moment of module creation
+/*!
+  \var __DEFAULT_NAME__ - Default name of the module, replaced at the moment of module creation
+*/
 const char* __DEFAULT_NAME__  = "SALOME_PYQT_Module";
 
-///////////////////////////////////////////////////////////////////////////////
-// Default menu group number
+/*!
+  \var __DEFAULT_GROUP__ - Default menu group number
+*/
 const int   __DEFAULT_GROUP__ = 40;
 
-///////////////////////////////////////////////////////////////////////////////
 // If __CALL_OLD_METHODS__ macro is not defined the invoking of obsolete Python
 // module's methods like setSetting(), definePopup(), etc. is blocked.
 // This macro is defined by default (in Makefile)
@@ -77,32 +71,33 @@ const bool IsCallOldMethods = true;
 const bool IsCallOldMethods = false;
 #endif
 
-///////////////////////////////////////////////////////////////////////////////
 // NB: Python requests.
 // General rule for Python requests created by SALOME_PYQT_Module:
 // all requests should be executed SYNCHRONOUSLY within the main GUI thread.
 // However, it is obligatory that ANY Python call is wrapped with a request object,
 // so that ALL Python API calls are serialized with PyInterp_Dispatcher.
-///////////////////////////////////////////////////////////////////////////////
 
-//=============================================================================
-// The class for parsing of the XML resource files.
-// Used for backward compatibility with existing Python modules.
-//=============================================================================
+/*!
+  \class SALOME_PYQT_XmlHandler
+  The class for parsing of the XML resource files.
+  Used for backward compatibility with existing Python modules.
+*/
 class SALOME_PYQT_XmlHandler
 {
 public:
   SALOME_PYQT_XmlHandler( SALOME_PYQT_Module* module, const QString& fileName );
   void createActions();
+  void clearActions();
   void createPopup  ( QPopupMenu*    menu,
                      const QString& context,
                      const QString& parent,
                      const QString& object );
 
 protected:
-  void createToolBar   ( QDomNode& parentNode );
-  void createMenu      ( QDomNode& parentNode,
-                        const int parentMenuId = -1 );
+  void createToolBar   ( QDomNode&   parentNode );
+  void createMenu      ( QDomNode&   parentNode,
+                        const int   parentMenuId = -1,
+                        QPopupMenu* parentPopup = 0 );
 
   void insertPopupItems( QDomNode&   parentNode,
                         QPopupMenu* menu );
@@ -110,12 +105,13 @@ protected:
 private:
   SALOME_PYQT_Module* myModule;
   QDomDocument        myDoc;
+  QStringList         myMenuItems;
+  QStringList         myCurrentMenu;
+  bool                myMenuCreated;
 };
 
-//=============================================================================
 // SALOME_PYQT_Module class implementation (implements CAM_Module API for
 // all Python-based SALOME module
-//=============================================================================
 
 // While the SalomePyQtGUI library is not imported in Python it's initialization function
 // should be called manually (and only once) in order to initialize global sip data
@@ -168,8 +164,10 @@ SALOME_PYQT_Module* SALOME_PYQT_Module::getInitModule()
 /*!
  * Constructor
  */
-SALOME_PYQT_Module::SALOME_PYQT_Module() :
-       SalomeApp_Module( __DEFAULT_NAME__ ), myModule( 0 ), myXmlHandler ( 0 )
+SALOME_PYQT_Module::SALOME_PYQT_Module()
+  : SalomeApp_Module( __DEFAULT_NAME__ ),
+    myModule( 0 ), 
+    myXmlHandler ( 0 )
 {
 }
 
@@ -197,6 +195,8 @@ SALOME_PYQT_Module::~SALOME_PYQT_Module()
  */
 void SALOME_PYQT_Module::initialize( CAM_Application* app )
 {
+  MESSAGE( "SALOME_PYQT_Module::initialize" );
+
   SalomeApp_Module::initialize( app );
 
   // Try to get XML resource file name
@@ -207,11 +207,9 @@ void SALOME_PYQT_Module::initialize( CAM_Application* app )
   QString aFileName = aName + "_" + aLang + ".xml";
   aFileName = aResMgr->path( "resources", aName, aFileName );
 
-  // parse XML file if it is found and create actions
-  if ( !myXmlHandler && !aFileName.isEmpty() ) {
+  // create XML handler instance
+  if ( !myXmlHandler && !aFileName.isEmpty() && QFile::exists( aFileName ) )
     myXmlHandler = new SALOME_PYQT_XmlHandler( this, aFileName );
-    myXmlHandler->createActions();
-  }
 
   // perform internal initialization and call module's initialize() method
   // InitializeReq: request class for internal init() operation
@@ -284,6 +282,34 @@ bool SALOME_PYQT_Module::activateModule( SUIT_Study* theStudy )
     connect( menuMgr(), SIGNAL( menuHighlighted( int, int ) ),
             this,      SLOT( onMenuHighlighted( int, int ) ) );
 
+  // create menus & toolbars from XML file if required
+  if ( myXmlHandler )
+    myXmlHandler->createActions();
+
+  // CustomizeReq: request class for internal customize() operation
+  class CustomizeReq : public PyInterp_Request
+  {
+  public:
+    CustomizeReq( SUIT_Study*         _study,
+                 SALOME_PYQT_Module* _obj )
+      : PyInterp_Request( 0, true ), // this request should be processed synchronously (sync == true)
+        myStudy ( _study ),
+        myObj   ( _obj   ) {}
+
+  protected:
+    virtual void execute()
+    {
+      myObj->customize( myStudy );
+    }
+
+  private:
+    SUIT_Study*         myStudy;
+    SALOME_PYQT_Module* myObj;
+  };
+
+  // Posting the request
+  PyInterp_Dispatcher::Get()->Exec( new CustomizeReq( theStudy, this ) );
+
   return true;
 }
 
@@ -299,7 +325,9 @@ bool SALOME_PYQT_Module::deactivateModule( SUIT_Study* theStudy )
     disconnect( menuMgr(), SIGNAL( menuHighlighted( int, int ) ),
                this,      SLOT( onMenuHighlighted( int, int ) ) );
 
-  bool res = SalomeApp_Module::deactivateModule( theStudy );
+  // remove menus & toolbars created from XML file if required
+  if ( myXmlHandler )
+    myXmlHandler->clearActions();
 
   // deactivate menus, toolbars, etc
   setMenuShown( false );
@@ -330,7 +358,38 @@ bool SALOME_PYQT_Module::deactivateModule( SUIT_Study* theStudy )
   // Posting the request
   PyInterp_Dispatcher::Get()->Exec( new DeactivateReq( myInterp, theStudy, this ) );
 
-  return res;
+  return SalomeApp_Module::deactivateModule( theStudy );
+}
+
+/*!
+ * Called when study desktop is activated.
+ * Used for notifying about changing of the active study.
+ */
+void SALOME_PYQT_Module::studyActivated()
+{
+  // StudyChangedReq: request class for internal studyChanged() operation
+  class StudyChangedReq : public PyInterp_Request
+  {
+  public:
+    StudyChangedReq( SUIT_Study*         _study,
+                    SALOME_PYQT_Module* _obj )
+      : PyInterp_Request( 0, true ), // this request should be processed synchronously (sync == true)
+        myStudy ( _study ),
+        myObj   ( _obj   ) {}
+
+  protected:
+    virtual void execute()
+    {
+      myObj->studyChanged( myStudy );
+    }
+
+  private:
+    SUIT_Study*         myStudy;
+    SALOME_PYQT_Module* myObj;
+  };
+
+  // Posting the request
+  PyInterp_Dispatcher::Get()->Exec( new StudyChangedReq( application()->activeStudy(), this ) );
 }
 
 /*!
@@ -543,11 +602,6 @@ void SALOME_PYQT_Module::init( CAM_Application* app )
 
   myInitModule = this;
 
-  if ( IsCallOldMethods ) { // __CALL_OLD_METHODS__
-    // call Python module's setWorkspace() method
-    setWorkSpace();
-  }                         //__CALL_OLD_METHODS__
-
   // then call Python module's initialize() method
   // ... first get python lock
   PyLockWrapper aLock = myInterp->GetLockWrapper();
@@ -622,8 +676,7 @@ void SALOME_PYQT_Module::init( CAM_Application* app )
  * Performs internal activation:
  * - initializes/gets the Python interpreter (one per study)
  * - imports the Python GUI module
- * - calls Python module's setSettings() method (obsolete function, used for compatibility with old code)
- *   or activate() method (for new modules)
+ * - calls Python module's activate() method (for new modules)
  */
 void SALOME_PYQT_Module::activate( SUIT_Study* theStudy )
 {
@@ -644,6 +697,45 @@ void SALOME_PYQT_Module::activate( SUIT_Study* theStudy )
   // get python lock
   PyLockWrapper aLock = myInterp->GetLockWrapper();
 
+  // call Python module's activate() method (for the new modules)
+  if(PyObject_HasAttrString(myModule , "activate")){
+    PyObjWrapper res1( PyObject_CallMethod( myModule, "activate", "" ) );
+    if( !res1 ) {
+      PyErr_Print();
+    }
+  }
+}
+
+/*!
+ * Performs additional customization after module is activated:
+ * - gets the Python interpreter (one per study)
+ * - imports the Python GUI module
+ * - calls Python module's setSettings() method (obsolete function, used for compatibility with old code)
+ */
+void SALOME_PYQT_Module::customize ( SUIT_Study* theStudy )
+{
+  // get study Id
+  SalomeApp_Study* aStudy = dynamic_cast<SalomeApp_Study*>( theStudy );
+  int aStudyId = aStudy ? aStudy->studyDS()->StudyId() : 0;
+
+  // initialize Python subinterpreter (on per study) and put it in <myInterp> variable
+  initInterp( aStudyId );
+  if ( !myInterp )
+    return; // Error
+
+  // import Python GUI module
+  importModule();
+  if ( !myModule )
+    return; // Error
+
+  if ( IsCallOldMethods ) { // __CALL_OLD_METHODS__
+    // call Python module's setWorkspace() method
+    setWorkSpace();
+  }                         //__CALL_OLD_METHODS__
+
+  // get python lock
+  PyLockWrapper aLock = myInterp->GetLockWrapper();
+
   if ( IsCallOldMethods ) { //__CALL_OLD_METHODS__
     // call Python module's setSettings() method (obsolete)
     if(PyObject_HasAttrString(myModule , "setSettings")){
@@ -653,14 +745,6 @@ void SALOME_PYQT_Module::activate( SUIT_Study* theStudy )
       }
     }
   }                         //__CALL_OLD_METHODS__
-
-  // call Python module's activate() method (for the new modules)
-  if(PyObject_HasAttrString(myModule , "activate")){
-    PyObjWrapper res1( PyObject_CallMethod( myModule, "activate", "" ) );
-    if( !res1 ) {
-      PyErr_Print();
-    }
-  }
 }
 
 /*!
@@ -705,6 +789,11 @@ void SALOME_PYQT_Module::studyChanged( SUIT_Study* theStudy )
   if ( !myModule )
     return; // Error
 
+  if ( IsCallOldMethods ) { // __CALL_OLD_METHODS__
+    // call Python module's setWorkspace() method
+    setWorkSpace();
+  }                         //__CALL_OLD_METHODS__
+
   // get python lock
   PyLockWrapper aLock = myInterp->GetLockWrapper();
 
@@ -742,37 +831,6 @@ QString SALOME_PYQT_Module::engineIOR() const
   return QString( "" );
 }
 
-/*!
- * Called when study desktop is activated.
- * Used for notifying about changing of the active study.
- */
-void SALOME_PYQT_Module::studyActivated()
-{
-  // StudyChangedReq: request class for internal studyChanged() operation
-  class StudyChangedReq : public PyInterp_Request
-  {
-  public:
-    StudyChangedReq( SUIT_Study*         _study,
-                    SALOME_PYQT_Module* _obj )
-      : PyInterp_Request( 0, true ), // this request should be processed synchronously (sync == true)
-        myStudy ( _study ),
-        myObj   ( _obj   ) {}
-
-  protected:
-    virtual void execute()
-    {
-      myObj->studyChanged( myStudy );
-    }
-
-  private:
-    SUIT_Study*         myStudy;
-    SALOME_PYQT_Module* myObj;
-  };
-
-  // Posting the request
-  PyInterp_Dispatcher::Get()->Exec( new StudyChangedReq( application()->activeStudy(), this ) );
-}
-
 /*!
  * Processes context popup menu request
  * - calls Python module's definePopup(...) method (obsolete function, used for compatibility with old code)
@@ -926,7 +984,8 @@ void SALOME_PYQT_Module::initInterp( int theStudyId )
     return;
   }
   // ... then call a method
-  PyObjWrapper aRes( PyObject_CallMethod( aMod, "salome_init", "" ) );
+  int embedded = 1;
+  PyObjWrapper aRes( PyObject_CallMethod( aMod, "salome_init", "ii", theStudyId, embedded ) );
   if( !aRes ) {
     // Error!
     PyErr_Print();
@@ -1022,26 +1081,66 @@ int SALOME_PYQT_Module::defaultMenuGroup()
  * Also these methods are used to register created from outside menus
  * in order to enable dynamic menus handling.
  */
+
+
+/*! Create tool bar with name \a name, if it was't created before.
+ * \retval -1 - if tool manager was't be created.
+ */
 int SALOME_PYQT_Module::createTool( const QString& name )
 {
   return SalomeApp_Module::createTool( name );
 }
+/*! Create tool.
+ * Insert QAction with id \a id from action map(myActionMap) to tool manager.
+ *\param id   - integer
+ *\param tBar - integer
+ *\param idx  - integer
+ *\retval integer id of new action in tool manager.
+ *\retval Return -1 if something wrong.
+ */
 int SALOME_PYQT_Module::createTool( const int id, const int tBar, const int idx )
 {
   return SalomeApp_Module::createTool( id, tBar, idx );
 }
+/*! Create tool.
+ * Insert QAction with id \a id from action map(myActionMap) to tool manager.
+ *\param id   - integer
+ *\param tBar - QString&
+ *\param idx  - integer
+ *\retval integer id of new action in tool manager.
+ *\retval Return -1 if something wrong.
+ */
 int SALOME_PYQT_Module::createTool( const int id, const QString& tBar, const int idx )
 {
   return SalomeApp_Module::createTool( id, tBar, idx );
 }
+/*! Create tool. Register action \a a with id \a id.
+ * Insert QAction to tool manager.
+ *\param a - QAction
+ *\param tBar - integer
+ *\param id   - integer
+ *\param idx  - integer
+ *\retval integer id of new action in tool manager.
+ *\retval Return -1 if something wrong.
+ */
 int SALOME_PYQT_Module::createTool( QAction* a, const int tBar, const int id, const int idx )
 {
   return SalomeApp_Module::createTool( a, tBar, id, idx );
 }
+/*! Create tool. Register action \a a with id \a id.
+ * Insert QAction to tool manager.
+ *\param a - QAction
+ *\param tBar - QString&
+ *\param id   - integer
+ *\param idx  - integer
+ *\retval integer id of new action in tool manager.
+ *\retval Return -1 if something wrong.
+ */
 int SALOME_PYQT_Module::createTool( QAction* a, const QString& tBar, const int id, const int idx )
 {
   return SalomeApp_Module::createTool( a, tBar, id, idx );
 }
+
 int SALOME_PYQT_Module::createMenu( const QString& subMenu, const int menu, const int id, const int group, const int idx, const bool constantMenu )
 {
   bool exists = hasMenu( subMenu, menu );
@@ -1050,6 +1149,7 @@ int SALOME_PYQT_Module::createMenu( const QString& subMenu, const int menu, cons
     registerMenu( regId, menu, constantMenu );
   return regId;
 }
+
 int SALOME_PYQT_Module::createMenu( const QString& subMenu, const QString& menu, const int id, const int group, const int idx, const bool constantMenu )
 {
   QStringList menus = QStringList::split( "|", menu, false );
@@ -1062,6 +1162,7 @@ int SALOME_PYQT_Module::createMenu( const QString& subMenu, const QString& menu,
     pid = createMenu( subMenu, pid, id, group, idx, constantMenu );
   return pid;
 }
+
 int SALOME_PYQT_Module::createMenu( const int id, const int menu, const int group, const int idx, const bool constantMenu )
 {
   int regId = SalomeApp_Module::createMenu( id, menu, group, idx );
@@ -1069,6 +1170,7 @@ int SALOME_PYQT_Module::createMenu( const int id, const int menu, const int grou
     registerMenu( regId, menu, constantMenu );
   return regId;
 }
+
 int SALOME_PYQT_Module::createMenu( const int id, const QString& menu, const int group, const int idx, const bool constantMenu )
 {
   QStringList menus = QStringList::split( "|", menu, false );
@@ -1081,6 +1183,7 @@ int SALOME_PYQT_Module::createMenu( const int id, const QString& menu, const int
     pid = createMenu( id, pid, group, idx, constantMenu );
   return pid;
 }
+
 int SALOME_PYQT_Module::createMenu( QAction* a, const int menu, const int id, const int group, const int idx, const bool constantMenu )
 {
   int regId = SalomeApp_Module::createMenu( a, menu, id, group, idx );
@@ -1088,6 +1191,7 @@ int SALOME_PYQT_Module::createMenu( QAction* a, const int menu, const int id, co
     registerMenu( regId, menu, constantMenu );
   return regId;
 }
+
 int SALOME_PYQT_Module::createMenu( QAction* a, const QString& menu, const int id, const int group, const int idx, const bool constantMenu )
 {
   QStringList menus = QStringList::split( "|", menu, false );
@@ -1100,28 +1204,27 @@ int SALOME_PYQT_Module::createMenu( QAction* a, const QString& menu, const int i
     pid = createMenu( a, pid, id, group, idx, constantMenu );
   return pid;
 }
+
 QAction* SALOME_PYQT_Module::createSeparator()
 {
   return SalomeApp_Module::separator();
 }
+
 QAction* SALOME_PYQT_Module::action( const int id ) const
 {
   return SalomeApp_Module::action( id );
 }
+
 int SALOME_PYQT_Module::actionId( const QAction* a ) const
 {
   return SalomeApp_Module::actionId( a );
 }
+
 QAction* SALOME_PYQT_Module::createAction( const int id, const QString& text, const QString& icon,
                                           const QString& menu, const QString& tip, const int key,
                                           const bool toggle )
 {
-  QIconSet anIcon;
-  if ( !icon.isEmpty() ) {
-    QPixmap pixmap  = getApp()->resourceMgr()->loadPixmap( name(""), tr( icon ) );
-    if ( !pixmap.isNull() )
-      anIcon = QIconSet( pixmap );
-  }
+  QIconSet anIcon = loadIcon( icon );
   QAction* a = action( id );
   if ( a ) {
     if ( a->text().isEmpty()      && !text.isEmpty() )  a->setText( text );
@@ -1138,6 +1241,19 @@ QAction* SALOME_PYQT_Module::createAction( const int id, const QString& text, co
   }
   return a;
 }
+/*! 
+ * Load icon from resource file
+ */
+QIconSet SALOME_PYQT_Module::loadIcon( const QString& fileName )
+{
+  QIconSet anIcon;
+  if ( !fileName.isEmpty() ) {
+    QPixmap pixmap  = getApp()->resourceMgr()->loadPixmap( name(""), tr( fileName ) );
+    if ( !pixmap.isNull() )
+      anIcon = QIconSet( pixmap );
+  }
+  return anIcon;
+}
 
 /*!
  * Returns TRUE if menu already exists
@@ -1318,9 +1434,7 @@ bool SALOME_PYQT_Module::clearMenu( const int id, const int menu, const bool rem
   return false;
 }
 
-//=============================================================================
 // SALOME_PYQT_XmlHandler class implementation
-//=============================================================================
 
 // gets an tag name for the dom element [ static ]
 // returns an empty string if the element does not have tag name
@@ -1335,44 +1449,68 @@ static QString attribute( const QDomElement& element, const QString& attName ) {
 }
 
 // checks the given value for the boolean value [ static ]
-// returns TRUE if string is "true", "yes" or "1"
-static bool checkBool( const QString& value ) {
-  return ( value == "true" || value == "yes" || value == "1" );
+// returns TRUE if string represents boolean value: 
+// - "true", "yes" or "1" for true
+// - "false", "no" or "0" for false
+// second parameter allows to check certain boolean value
+// - 1: true
+// - 0: false
+// - other value is not taken into account
+static bool checkBool( const QString& value, const int check = -1 ) {
+  QString v = value.lower();
+  if ( ( v == "true"  || v == "yes"  || v == "1" ) && ( check != 0 ) )
+    return true;
+  if ( ( v == "false" || v == "no" || v == "0" ) && ( check != 1 ) )
+    return true;
+  return false;
 }
 
 // checks the given value for the integer value [ static ]
 // returns -1 if item is empty or presents and invalid number
-static int checkInt( const QString& value, const int def = -1 )
+static int checkInt( const QString& value, const int def = -1, const int shift = -1 )
 {
-  return value.isEmpty() ? def : value.toInt();
+  bool bOk;
+  int val = value.toInt( &bOk );
+  if ( !bOk ) val = def;
+  if ( shift > 0 && bOk && val < 0 )
+    val += shift;
+  return val;
 }
 
 /*!
  * Constructor
  */
-SALOME_PYQT_XmlHandler::SALOME_PYQT_XmlHandler( SALOME_PYQT_Module* module, const QString& fileName )
-     : myModule( module )
+SALOME_PYQT_XmlHandler::SALOME_PYQT_XmlHandler( SALOME_PYQT_Module* module, 
+                                               const QString&      fileName )
+  : myModule( module ),
+    myMenuCreated( false )
 {
+  if (fileName.isEmpty() ) 
+    return;
   QFile aFile( fileName );
   if ( !aFile.open( IO_ReadOnly ) )
     return;
   if ( !myDoc.setContent( &aFile ) ) {
-      aFile.close();
-      return;
+    aFile.close();
+    return;
   }
   aFile.close();
 }
 
 /*!
 Called by SALOME_PYQT_Module::initialize() in order to create actions
-  (menus, toolbars, popup menus)
* Called by SALOME_PYQT_Module::activate() in order to create actions
* (menus, toolbars, popup menus)
  */
 void SALOME_PYQT_XmlHandler::createActions()
 {
+  // check flag : are menus already created?
+  if ( myMenuCreated && !IsCallOldMethods ) 
+    return;
+  
   // get document element
   QDomElement aDocElem = myDoc.documentElement();
 
-  // get main menu actions
+  // create main menu actions
   QDomNodeList aMenuList = aDocElem.elementsByTagName( "menu-item" );
   for ( int i = 0; i < aMenuList.count(); i++ ) {
     QDomNode n = aMenuList.item( i );
@@ -1385,6 +1523,36 @@ void SALOME_PYQT_XmlHandler::createActions()
     QDomNode n = aToolsList.item( i );
     createToolBar( n );
   }
+  // set flag : menus are already created
+  myMenuCreated = true;
+}
+
+/*!
+ * Called by SALOME_PYQT_Module::deactivate() in order to remove actions
+ * (menus, toolbars, popup menus)
+ */
+void SALOME_PYQT_XmlHandler::clearActions()
+{
+  for ( uint i = 0; i < myMenuItems.count(); i++ ) {
+    QMenuData* md = dynamic_cast<QMenuData*>( myModule->getApp()->desktop()->menuBar() );
+    QStringList menus = QStringList::split( ":", myMenuItems[ i ] );
+    for ( uint j = 0; j < menus.count(); j++) {
+      int id = menus[ j ].toInt();
+      QMenuData* smd;
+      QMenuItem* mi = md->findItem( id, &smd );
+      if ( mi && md == smd ) {
+       if ( j == menus.count()-1 || !mi->popup() ) { // last item or not popup
+         md->removeItem( id );
+         break;
+       }
+       else if ( mi->popup() )
+         md = dynamic_cast<QMenuData*>( mi->popup() );
+      }
+      else
+       break;
+    }
+  }
+  myMenuItems.clear();
 }
 
 /*!
@@ -1419,7 +1587,9 @@ void SALOME_PYQT_XmlHandler::createPopup( QPopupMenu*    menu,
 /*!
   Create main menu with child actions
  */
-void SALOME_PYQT_XmlHandler::createMenu( QDomNode& parentNode, const int parentMenuId )
+void SALOME_PYQT_XmlHandler::createMenu( QDomNode&   parentNode, 
+                                        const int   parentMenuId, 
+                                        QPopupMenu* parentPopup )
 {
   if ( !myModule )
     return;
@@ -1435,13 +1605,52 @@ void SALOME_PYQT_XmlHandler::createMenu( QDomNode& parentNode, const int parentM
     int     group  = checkInt( attribute( parentElement, "group-id" ), 
                               myModule->defaultMenuGroup() );
     if ( !plabel.isEmpty() ) {
+      QPopupMenu* popup = 0;
+      int menuId = -1;
       // create menu
-      int menuId = myModule->createMenu( plabel,         // label
-                                        parentMenuId,   // parent menu ID, should be -1 for main menu
-                                        pid,            // ID
-                                        group,          // group ID
-                                        ppos,           // position
-                                        true );         // create constant menu (not removed by clearMenu())
+      if ( IsCallOldMethods ) { // __CALL_OLD_METHODS__
+       SUIT_Desktop* desktop = myModule->getApp()->desktop();
+       if ( parentMenuId == -1 ) { // top-level menu
+         QMenuBar* mb = desktop->menuBar();
+         QMenuItem* mi = mb->findItem( pid );
+         if ( mi ) popup = mi->popup();
+         if ( !popup ) {
+           popup = new QPopupMenu( desktop );
+           ppos = checkInt( attribute( parentElement, "pos-id" ), -1, mb->count() );
+           menuId = mb->insertItem( plabel, popup, pid, ppos );
+           myCurrentMenu.push_back( QString::number( menuId ) );
+           myMenuItems.append( myCurrentMenu.join( ":" ) );
+         }
+         else {
+           menuId = pid;
+           myCurrentMenu.push_back( QString::number( menuId ) );
+         }
+       }
+       else {
+         // parentPopup should not be 0 here!
+         QMenuItem* mi = parentPopup->findItem( pid );
+         if ( mi ) popup = mi->popup();
+         if ( !popup ) {
+           popup = new QPopupMenu( desktop );
+           ppos = checkInt( attribute( parentElement, "pos-id" ), -1, popup->count() );
+           menuId = parentPopup->insertItem( plabel, popup, pid, ppos );
+           myCurrentMenu.push_back( QString::number( menuId ) );
+           myMenuItems.append( myCurrentMenu.join( ":" ) );
+         }
+         else {
+           menuId = pid;
+           myCurrentMenu.push_back( QString::number( menuId ) );
+         }
+       }
+      }
+      else {                    //!__CALL_OLD_METHODS__
+       menuId = myModule->createMenu( plabel,         // label
+                                      parentMenuId,   // parent menu ID, should be -1 for main menu
+                                      pid,            // ID
+                                      group,          // group ID
+                                      ppos,           // position
+                                      true );         // create constant menu (not removed by clearMenu())
+      }                         // __CALL_OLD_METHODS__
       QDomNode node = parentNode.firstChild();
       while ( !node.isNull() ) {
        if ( node.isElement() ) {
@@ -1462,25 +1671,49 @@ void SALOME_PYQT_XmlHandler::createMenu( QDomNode& parentNode, const int parentM
            // -1 action ID is not allowed : it means that <item-id> attribute is missed in the XML file!
            // also check if the action with given ID is already created
            if ( id != -1 ) {
-             // create menu action
-             QAction* action = myModule->createAction( id,                               // ID
-                                                       tooltip,                          // tooltip
-                                                       icon,                             // icon
-                                                       label,                            // menu text
-                                                       tooltip,                          // status-bar text
-                                                       QKeySequence( accel ),            // keyboard accelerator
-                                                       toggle );                         // toogled action
-             myModule->createMenu( action,   // action
-                                   menuId,   // parent menu ID
-                                   id,       // ID (same as for createAction())
-                                   group,    // group ID
-                                   pos,      // position
-                                   true );   // create constant menu (not removed by clearMenu())
+             if ( IsCallOldMethods ) { // __CALL_OLD_METHODS__
+               QIconSet iconSet = myModule->loadIcon( icon );
+               pos = checkInt( attribute( elem, "pos-id" ), -1, popup->count() );
+               int aid = iconSet.isNull() ? popup->insertItem( label, 
+                                                               myModule,
+                                                               SLOT( onGUIEvent(int) ),
+                                                               QKeySequence( accel ),
+                                                               id,
+                                                               pos ) :
+                                            popup->insertItem( iconSet, 
+                                                               label, 
+                                                               myModule,
+                                                               SLOT( onGUIEvent(int) ),
+                                                               QKeySequence( accel ),
+                                                               id,
+                                                               pos );
+               myCurrentMenu.push_back( QString::number( aid ) );
+               myMenuItems.append( myCurrentMenu.join( ":" ) );
+               myCurrentMenu.pop_back();
+               if ( toggle )
+                 popup->setItemChecked( aid, checkBool( attribute( elem, "toggle-id" ), 1 ) );
+             }
+             else {                    //!__CALL_OLD_METHODS__
+               // create menu action
+               QAction* action = myModule->createAction( id,                               // ID
+                                                         tooltip,                          // tooltip
+                                                         icon,                             // icon
+                                                         label,                            // menu text
+                                                         tooltip,                          // status-bar text
+                                                         QKeySequence( accel ),            // keyboard accelerator
+                                                         toggle );                         // toogled action
+               myModule->createMenu( action,   // action
+                                     menuId,   // parent menu ID
+                                     id,       // ID (same as for createAction())
+                                     group,    // group ID
+                                     pos,      // position
+                                     true );   // create constant menu (not removed by clearMenu())
+             }                         // __CALL_OLD_METHODS__
            }
          }
          else if ( aTagName == "submenu" ) {
            // create sub-menu
-           createMenu( node, menuId );
+           createMenu( node, menuId, popup );
          }
          else if ( aTagName == "separator" ) {
            // create menu separator
@@ -1488,17 +1721,27 @@ void SALOME_PYQT_XmlHandler::createMenu( QDomNode& parentNode, const int parentM
            int pos   = checkInt( attribute( elem, "pos-id" ) );
            int group = checkInt( attribute( elem, "group-id" ), 
                                  myModule->defaultMenuGroup() );
-           QAction* action = myModule->createSeparator();
-           myModule->createMenu( action,  // separator action
-                                 menuId,  // parent menu ID
-                                 id,      // ID
-                                 group,   // group ID
-                                 pos,     // position
-                                 true );  // create constant menu (not removed by clearMenu())
+           if ( IsCallOldMethods ) { // __CALL_OLD_METHODS__
+             pos = checkInt( attribute( elem, "pos-id" ), -1, popup->count() );
+             int sid = popup->insertSeparator( pos );
+             myCurrentMenu.push_back( QString::number( sid ) );
+             myMenuItems.append( myCurrentMenu.join( ":" ) );
+             myCurrentMenu.pop_back();
+           }
+           else {                    //!__CALL_OLD_METHODS__
+             QAction* action = myModule->createSeparator();
+             myModule->createMenu( action,  // separator action
+                                   menuId,  // parent menu ID
+                                   id,      // ID
+                                   group,   // group ID
+                                   pos,     // position
+                                   true );  // create constant menu (not removed by clearMenu())
+           }                         // __CALL_OLD_METHODS__
          }
        }
        node = node.nextSibling();
       }
+      myCurrentMenu.pop_back();
     }
   }
 }
@@ -1549,7 +1792,7 @@ void SALOME_PYQT_XmlHandler::createToolBar( QDomNode& parentNode )
              myModule->createTool( action, tbId, -1, pos );
            }
          }
-         else if ( aTagName == "separatorTB" ) {
+         else if ( aTagName == "separatorTB" || aTagName == "separator" ) {
            // create toolbar separator
            int     pos     = checkInt( attribute( elem, "pos-id" ) );
            QAction* action = myModule->createSeparator();
@@ -1562,6 +1805,9 @@ void SALOME_PYQT_XmlHandler::createToolBar( QDomNode& parentNode )
   }
 }
 
+/*!
+ * Fill popup menu with items
+ */
 void SALOME_PYQT_XmlHandler::insertPopupItems( QDomNode& parentNode, QPopupMenu* menu )
 {
   if ( !myModule )
index 57fa50cce927ac9591836d25c50f422db190e7e9..1cfcf855f4c71de27c096536676199695040178c 100644 (file)
 //
 // See http://www.salome-platform.org/
 //
-//=============================================================================
-// File      : SALOME_PYQT_Module.h
-// Created   : 25/04/05
-// Author    : Vadim SANDLER
-// Project   : SALOME
-// Copyright : 2003-2005 CEA/DEN, EDF R&D
-// $Header   : $
-//=============================================================================
 
 #ifndef SALOME_PYQT_MODULE_H
 #define SALOME_PYQT_MODULE_H
@@ -152,6 +144,8 @@ public:
   int                    actionId( const QAction* ) const;
   QAction*               createAction( const int, const QString&, const QString&, const QString&,
                                        const QString&, const int, const bool = false );
+  /* load icon from resource file */
+  QIconSet               loadIcon( const QString& fileName );
 
   /* Show/hide menus/toolbars */
   void                   setMenuShown( const bool );
@@ -190,6 +184,8 @@ private:
   void            activate    ( SUIT_Study* );
   /* internal deactivation */ 
   void            deactivate  ( SUIT_Study* );
+  /* customization */ 
+  void            customize   ( SUIT_Study* );
   /* study activation */ 
   void            studyChanged( SUIT_Study* );
   /* context popup menu processing */
index 1e15494e8ecfd021b24511a4d9d6a0a9c788de69..8c4787640dbf859ca02558a9eef27448f9aa02b0 100644 (file)
 //
 // See http://www.salome-platform.org/
 //
-//=============================================================================
-// File      : SALOME_PYQT_PyInterp.h
-// Created   : 25/04/05
-// Author    : Christian CAREMOLI, Paul RASCLE, EDF
-// Project   : SALOME
-// Copyright : 2003-2005 CEA/DEN, EDF R&D
-// $Header   : $
-//=============================================================================
 
 #ifndef SALOME_PYQT_PYINTERP_H
 #define SALOME_PYQT_PYINTERP_H
index ac2aeab566e7d3a6ff30577d4ed2ed1312ae6dae..5de10a238a5907bcee947c42bd24b9fcc5a9a31e 100644 (file)
@@ -101,7 +101,7 @@ LIB_MOC = SalomePyQt.h
 LIB_CLIENT_IDL = SALOME_Exception.idl SALOME_GenericObj.idl
 
 # Compilation/linkage flags
-CPPFLAGS += $(QT_INCLUDES) $(SIP_INCLUDES) $(PYTHON_INCLUDES) $(OCC_INCLUDES) $(VTK_INCLUDES) $(OGL_INCLUDES) $(BOOST_CPPFLAGS) -DHAVE_CONFIG_H -I${KERNEL_ROOT_DIR}/include/salome
+CPPFLAGS += $(QT_INCLUDES) $(SIP_INCLUDES) $(PYTHON_INCLUDES) $(OCC_INCLUDES) $(VTK_INCLUDES) $(OGL_INCLUDES) $(BOOST_CPPFLAGS) -DHAVE_CONFIG_H $(KERNEL_CXXFLAGS)
 LIBS     += $(PYTHON_LIBS) $(SIP_LIBS) $(PYQT_LIBS) $(VTK_LIBS) $(OGL_LIBS)
 LDFLAGS  += -lsuit -lCAM -lstd -lqtx -lSalomeApp -lSalomeSession -lEvent -lLogWindow -lVTKViewer -lToolsGUI -lSalomePyQtGUI
 
index 67f22268773b89dff8c44ed0326e33a74bbf8b43..d6afaaf4d6e376522032087f8a804f85b12dd916 100644 (file)
 //
 // See http://www.salome-platform.org/
 //
-//=============================================================================
-// File      : SalomePyQt.cxx
-// Created   : 25/04/05
-// Author    : Vadim SANDLER
-// Project   : SALOME
-// Copyright : 2003-2005 CEA/DEN, EDF R&D
-// $Header   : $
-//=============================================================================
 
 #include "SALOME_PYQT_Module.h" // this include must be first!!!
 #include "SalomePyQt.h"
 
 using namespace std;
 
-//====================================================================================
-// static functions
-//====================================================================================
 /*!
-  getApplication()
-  Returns active application object [ static ]
+  \return active application object [ static ]
 */
 static SalomeApp_Application* getApplication() {
   if ( SUIT_Session::session() )
@@ -64,8 +52,7 @@ static SalomeApp_Application* getApplication() {
 }
 
 /*!
-  getActiveStudy()
-  Gets active study or 0 if there is no study opened [ static ]
+  \return active study or 0 if there is no study opened [ static ]
 */
 static SalomeApp_Study* getActiveStudy()
 {
@@ -74,13 +61,9 @@ static SalomeApp_Study* getActiveStudy()
   return 0;
 }
 
-//====================================================================================
-// SALOME_Selection class.
-//====================================================================================
 static QMap<SalomeApp_Application*, SALOME_Selection*> SelMap;
 
 /*!
-  SALOME_Selection::GetSelection
   Creates or finds the selection object (one per study).
 */
 SALOME_Selection* SALOME_Selection::GetSelection( SalomeApp_Application* app )
@@ -94,7 +77,6 @@ SALOME_Selection* SALOME_Selection::GetSelection( SalomeApp_Application* app )
 }
 
 /*!
-  SALOME_Selection::SALOME_Selection
   Selection constructor.
 */
 SALOME_Selection::SALOME_Selection( QObject* p ) : QObject( p ), mySelMgr( 0 )
@@ -107,7 +89,6 @@ SALOME_Selection::SALOME_Selection( QObject* p ) : QObject( p ), mySelMgr( 0 )
   }
 }
 /*!
-  SALOME_Selection::~SALOME_Selection
   Selection destructor. Removes selection object from the map.
 */
 SALOME_Selection::~SALOME_Selection()
@@ -118,7 +99,6 @@ SALOME_Selection::~SALOME_Selection()
 }
 
 /*!
-  SALOME_Selection::onSelMgrDestroyed
   Watches for the selection manager destroying when study is closed.
 */
 void SALOME_Selection::onSelMgrDestroyed()
@@ -127,7 +107,6 @@ void SALOME_Selection::onSelMgrDestroyed()
 }
 
 /*!
-  SALOME_Selection::Clear
   Clears the selection.
 */
 void SALOME_Selection::Clear()
@@ -146,7 +125,6 @@ void SALOME_Selection::Clear()
 }
 
 /*!
-  SALOME_Selection::ClearIObjects
   Clears the selection.
 */
 void SALOME_Selection::ClearIObjects()
@@ -155,7 +133,6 @@ void SALOME_Selection::ClearIObjects()
 }
 
 /*!
-  SALOME_Selection::ClearFilters
   Removes all selection filters.
 */
 void SALOME_Selection::ClearFilters()
@@ -173,13 +150,8 @@ void SALOME_Selection::ClearFilters()
   ProcessVoidEvent( new TEvent( mySelMgr ) );
 }
 
-//====================================================================================
-// SalomePyQt class
-//====================================================================================
-
 /*!
-  SalomePyQt::getDesktop
-  Gets desktop. Returns 0 in error.
+  \return desktop (0 if error)
 */
 class TGetDesktopEvent: public SALOME_Event {
 public:
@@ -191,14 +163,17 @@ public:
       myResult = (QWidget*)( getApplication()->desktop() );
   }
 };
+
+/*!
+  \return desktop
+*/
 QWidget* SalomePyQt::getDesktop()
 {
   return ProcessEvent( new TGetDesktopEvent() );
 }
 
 /*!
-  SalomePyQt::getMainFrame
-  Gets workspace widget. Returns 0 in error.
+  \return workspace widget (0 if error)
 */
 class TGetMainFrameEvent: public SALOME_Event {
 public:
@@ -212,6 +187,10 @@ public:
     }
   }
 };
+
+/*!
+  \return workspace widget (0 if error)
+*/
 QWidget* SalomePyQt::getMainFrame()
 {
   return ProcessEvent( new TGetMainFrameEvent() );
@@ -232,6 +211,11 @@ public:
     }
   }
 };
+
+/*!
+  \return main menu
+  \retval 0 in error.
+*/
 QMenuBar* SalomePyQt::getMainMenuBar() 
 {
   return ProcessEvent( new TGetMainMenuBarEvent() );
@@ -277,6 +261,11 @@ public:
     }
   }
 };
+
+/*!
+  \return popup menu
+  \param menu - menu name
+*/
 QPopupMenu* SalomePyQt::getPopupMenu( const MenuName menu )
 {
   return ProcessEvent( new TGetPopupMenuEvent( menu ) );
@@ -297,6 +286,11 @@ public:
     }
   }
 };
+
+/*!
+  SalomePyQt::getStudyId
+  Returns active study's ID or 0 if there is no active study.
+*/
 int SalomePyQt::getStudyId()
 {
   return ProcessEvent( new TGetStudyIdEvent() );
@@ -315,6 +309,11 @@ public:
     myResult = SALOME_Selection::GetSelection( getApplication() );
   }
 };
+
+/*!
+  Creates a Selection object (to provide a compatibility with previous SALOME GUI).
+  \return just created selection object
+*/
 SALOME_Selection* SalomePyQt::getSelection()
 {
   return ProcessEvent( new TGetSelectionEvent() );
@@ -336,6 +335,13 @@ public:
     }
   }
 };
+
+/*!
+  Puts an information message to the desktop's status bar
+  (with optional delay parameter given in seconds)
+  \param msg - message text 
+  \param sec - delay in seconds
+*/
 void SalomePyQt::putInfo( const QString& msg, const int sec )
 {
   ProcessVoidEvent( new TPutInfoEvent( msg, sec ) );
@@ -358,6 +364,10 @@ public:
     }
   }
 };
+
+/*!
+  \return an active component name or empty string if there is no active component
+*/
 const QString SalomePyQt::getActiveComponent()
 {
   return ProcessEvent( new TGetActiveComponentEvent() );
@@ -532,6 +542,12 @@ public:
     }
   }
 };
+
+/*!
+  \return a setting value (as string)
+  This function is obsolete. Use stringSetting(), integerSetting(), 
+  boolSetting(), stringSetting() or colorSetting() instead.
+*/
 QString SalomePyQt::getSetting( const QString& name )
 {
   return ProcessEvent( new TGetSettingEvent( name ) );
@@ -653,6 +669,10 @@ public:
     }
   }
 };
+
+/*!
+  \return an integer setting from the application preferences
+*/
 int SalomePyQt::integerSetting( const QString& section, const QString& name, const int def )
 {
   return ProcessEvent( new TGetIntSettingEvent( section, name, def ) );
@@ -678,6 +698,10 @@ public:
     }
   }
 };
+
+/*!
+  \return an double setting from the application preferences
+*/
 double SalomePyQt::doubleSetting( const QString& section, const QString& name, const int def )
 {
   return ProcessEvent( new TGetDblSettingEvent( section, name, def ) );
@@ -703,6 +727,10 @@ public:
     }
   }
 };
+
+/*!
+  \return an boolean setting from the application preferences
+*/
 bool SalomePyQt::boolSetting( const QString& section, const QString& name, const bool def )
 {
   return ProcessEvent( new TGetBoolSettingEvent( section, name, def ) );
@@ -728,6 +756,10 @@ public:
     }
   }
 };
+
+/*!
+  \return an string setting from the application preferences
+*/
 QString SalomePyQt::stringSetting( const QString& section, const QString& name, const QString& def )
 {
   return ProcessEvent( new TGetStrSettingEvent( section, name, def ) );
@@ -753,6 +785,10 @@ public:
     }
   }
 };
+
+/*!
+  \return a color setting from the application preferences
+*/
 QColor SalomePyQt::colorSetting ( const QString& section, const QString& name, const QColor& def )
 {
   return ProcessEvent( new TGetColorSettingEvent( section, name, def ) );
@@ -809,6 +845,10 @@ public:
     }
   }
 };
+
+/*!
+  Displays 'Open/Save file' dialog box and returns a user's choice (file name)
+*/
 QString SalomePyQt::getFileName( QWidget*           parent, 
                                 const QString&     initial, 
                                 const QStringList& filters, 
@@ -844,6 +884,10 @@ public:
     }
   }
 };
+
+/*!
+  Displays 'Open files' dialog box and returns a user's choice (a list of file names)
+*/
 QStringList SalomePyQt::getOpenFileNames( QWidget*           parent, 
                                          const QString&     initial, 
                                          const QStringList& filters, 
@@ -875,6 +919,10 @@ public:
     }
   }
 };
+
+/*!
+  Displays 'Get Directory' dialog box and returns a user's choice (a directory name)
+*/
 QString SalomePyQt::getExistingDirectory( QWidget*       parent,
                                          const QString& initial,
                                          const QString& caption )
@@ -934,6 +982,11 @@ public:
     }
   }
 };
+
+/*!
+  Dumps the contents of the currently active view to the image file 
+  in the given format (JPEG, PNG, BMP are supported)
+*/
 bool SalomePyQt::dumpView( const QString& filename )
 {
   return ProcessEvent( new TDumpViewEvent( filename ) );
@@ -952,6 +1005,10 @@ public:
     myResult = SALOME_PYQT_Module::defaultMenuGroup();
   }
 };
+
+/*!
+  \return default menu group
+*/
 int SalomePyQt::defaultMenuGroup()
 {
   return ProcessEvent( new TDefMenuGroupEvent() );
@@ -1023,27 +1080,34 @@ public:
     }
   }
 };
-// create new toolbar or get existing by name 
+
+/*!
+  create new toolbar or get existing by name 
+*/
 int SalomePyQt::createTool( const QString& tBar )
 {
   return ProcessEvent( new TCreateToolEvent( CrTool( tBar ) ) );
 }
-// add action with id and index to the existing tollbar
+/*! add action with id and index to the existing tollbar
+*/
 int SalomePyQt::createTool( const int id, const int tBar, const int idx )
 {
   return ProcessEvent( new TCreateToolEvent( CrTool( id, tBar, idx ) ) );
 }
-// add action with id and index to the existing tollbar
+/*! add action with id and index to the existing tollbar
+*/
 int SalomePyQt::createTool( const int id, const QString& tBar, const int idx )
 {
   return ProcessEvent( new TCreateToolEvent( CrTool( id, tBar, idx ) ) );
 }
-// add action with id and index to the existing tollbar
+/*! add action with id and index to the existing tollbar
+*/
 int SalomePyQt::createTool( QtxAction* a, const int tBar, const int id, const int idx )
 {
   return ProcessEvent( new TCreateToolEvent( CrTool( a, tBar, id, idx ) ) );
 }
-// add action with id and index to the existing tollbar
+/*! add action with id and index to the existing tollbar
+*/
 int SalomePyQt::createTool( QtxAction* a, const QString& tBar, const int id, const int idx )
 {
   return ProcessEvent( new TCreateToolEvent( CrTool( a, tBar, id, idx ) ) );
index a3022cb2a8417c104916479bd246327b76946f31..609a68e962869c41017fda21ee76b07f7ba5cbb4 100644 (file)
 //
 // See http://www.salome-platform.org/
 //
-//=============================================================================
-// File      : SalomePyQt.h
-// Created   : 25/04/05
-// Author    : Vadim SANDLER
-// Project   : SALOME
-// Copyright : 2003-2005 CEA/DEN, EDF R&D
-// $Header   : $
-//=============================================================================
 
 #ifndef SALOME_PYQT_H
 #define SALOME_PYQT_H
diff --git a/src/SALOME_SWIG/Help.py b/src/SALOME_SWIG/Help.py
deleted file mode 100755 (executable)
index 404ee4d..0000000
+++ /dev/null
@@ -1,141 +0,0 @@
-#  Copyright (C) 2003  OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN,
-#  CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS 
-# 
-#  This library is free software; you can redistribute it and/or 
-#  modify it under the terms of the GNU Lesser General Public 
-#  License as published by the Free Software Foundation; either 
-#  version 2.1 of the License. 
-# 
-#  This library is distributed in the hope that it will be useful, 
-#  but WITHOUT ANY WARRANTY; without even the implied warranty of 
-#  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU 
-#  Lesser General Public License for more details. 
-# 
-#  You should have received a copy of the GNU Lesser General Public 
-#  License along with this library; if not, write to the Free Software 
-#  Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307 USA 
-# 
-#  See http://www.opencascade.org/SALOME/ or email : webmaster.salome@opencascade.org 
-#
-#
-#
-#  File   : Help.py
-#  Author : Paul RASCLE, EDF
-#  Module : SALOME
-#  $Header$
-
-class SalomeDoc:
-    def __init__(self, aDoc):
-        self.doc = aDoc
-    def __repr__(self):
-        print self.doc
-        return "---"
-    def salome(self):
-        doc_salome = '''
-MODULE : salome
----------------
-module salome gives access to Salome ressources:
-variables:
-
-  salome:orb             : CORBA
-  salome.naming_service  : instance of naming Service class
-      methods:
-          Resolve(name)  : find a CORBA object (ior) by its pathname
-          Register(name) : register a CORBA object under a pathname
-  salome.lcc             : instance of lifeCycleCORBA class
-      methods:
-          FindOrLoadComponent(server,name) :
-                           obtain an Engine (CORBA object)
-                           or launch the Engine if not found,
-                           with a Server name and an Engine name
-  salome.sg
-      methods:
-         updateObjBrowser(bool):
-         getActiveStudyId():
-         getActiveStudyName():
-         
-         SelectedCount():      returns number of selected objects
-         getSelected(i):       returns entry of selected object number i
-         getAllSelected():     returns list of entry of selected objects
-         AddIObject(Entry):    select an existing Interactive object
-         RemoveIObject(Entry): remove object from selection
-         ClearIObjects():      clear selection
-         
-         Display(*Entry):
-         DisplayOnly(Entry):
-         Erase(Entry):
-         DisplayAll():
-         EraseAll():
-
-         IDToObject(Entry):    returns CORBA reference from entry
-
-  salome.myStudyName     : active Study Name
-  salome.myStudyId       : active Study Id
-  salome.myStudy         : the active Study itself (CORBA ior)
-                           methods : defined in SALOMEDS.idl
-                                                         
-methods:
-  salome.DumpStudy(study) : Dump a study, given the ior
----
-'''
-        print doc_salome
-        
-    def geompy(self):
-        doc_geompy = '''
-MODULE : geompy
----------------
-module geompy provides an encapsulation of GEOM Engine methods
-variables:
-  geompy.geom               : a Geometry Engine, found or loaded
-                              at first import of module geompy.
-                              methods : defined in GEOM_Gen.idl
-  geompy.myBuilder          : a study builder
-  geompy.father             : GEOM root in current study (salome.myStudy)
-
-methods:
-  addToStudy(aShape, aName) : add the shape into the current study
-  --- all methods of GEOM_Gen.idl that returns a shape are encapsulated,
-      with the same interface : shapes are named with their ior
-'''
-        print doc_geompy
-        
-    def supervision(self):
-        doc_supervision = '''
-MODULES : SALOME_SuperVisionEditor and SALOME_SuperVisionExecutor
------------------------------------------------------------------
-this modules provide access to Editor and Executor Engine methods
-
-See SUPERV.idl
-
-In order to run the example (supervisionexample.py)
-
-    Type : from supervisionexample import *
-           supervisionexample.py contains comments
-
-A new python example avoids references to LifeCycleCORBA
-                     avoids references to NamingService
-                     avoids references to ModuleCatalog
-                     avoids SuperVisionComponent creation
-                     allows G.Input(...) instead of AddInput(G,...)
-                     replaces Editor/Executor with Graph
-                     allows Nodes, Ports and Links CORBA objects
-                     shortens methods names
-                     ...
-
-    See /SuperVisionTest/resources/GraphExample.py
-                                   and GraphExample.xml
----
-'''
-        print doc_supervision
-        
-    
-
-help = SalomeDoc('''
-Availables modules:
-  salome      : gives access to Salome ressources
-  geompy      : encapsulation of GEOM Engine methods
-  supervision : gives access to SuperVision Engine
-To obtain specific help on a module "truc", type: help.truc()
-To run an example, type: import example3
-''')
-  
index 19142ae1bdda9f05275e3568bc80e8c5eb5781a3..0c757d00520b3b24af79de8c3779645f561f4232 100755 (executable)
@@ -46,11 +46,11 @@ LIB_CLIENT_IDL = SALOMEDS.idl \
                 SALOME_GenericObj.idl
 
 SWIG_DEF = libSALOME_Swig.i
-EXPORT_PYSCRIPTS = libSALOME_Swig.py Help.py PyInterp.py examplevtk1.py supervisionexample.py supervisiongeomexample.py test_table.py test_big_table.py test_many_objects.py salome_test.py test_remove_ref.py
+EXPORT_PYSCRIPTS = libSALOME_Swig.py examplevtk1.py supervisionexample.py supervisiongeomexample.py test_table.py test_big_table.py test_many_objects.py test_remove_ref.py
 
 EXPORT_SHAREDPYSCRIPTS=SALOMEGUI_shared_modules.py
 
-CPPFLAGS+=$(QT_INCLUDES) $(PYTHON_INCLUDES) $(OCC_INCLUDES) $(VTK_INCLUDES) $(OGL_INCLUDES) $(BOOST_CPPFLAGS) -DHAVE_CONFIG_H -I${KERNEL_ROOT_DIR}/include/salome
+CPPFLAGS+=$(QT_INCLUDES) $(PYTHON_INCLUDES) $(OCC_INCLUDES) $(VTK_INCLUDES) $(OGL_INCLUDES) $(BOOST_CPPFLAGS) -DHAVE_CONFIG_H $(KERNEL_CXXFLAGS)
 LIBS+= $(PYTHON_LIBS)
 LDFLAGS+= -lSalomeApp
 
diff --git a/src/SALOME_SWIG/PyInterp.py b/src/SALOME_SWIG/PyInterp.py
deleted file mode 100755 (executable)
index 3e0133d..0000000
+++ /dev/null
@@ -1,102 +0,0 @@
-#  Copyright (C) 2003  OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN,
-#  CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS 
-# 
-#  This library is free software; you can redistribute it and/or 
-#  modify it under the terms of the GNU Lesser General Public 
-#  License as published by the Free Software Foundation; either 
-#  version 2.1 of the License. 
-# 
-#  This library is distributed in the hope that it will be useful, 
-#  but WITHOUT ANY WARRANTY; without even the implied warranty of 
-#  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU 
-#  Lesser General Public License for more details. 
-# 
-#  You should have received a copy of the GNU Lesser General Public 
-#  License along with this library; if not, write to the Free Software 
-#  Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307 USA 
-# 
-#  See http://www.opencascade.org/SALOME/ or email : webmaster.salome@opencascade.org 
-#
-#
-#
-#  File   : PyInterp.py
-#  Author : Paul RASCLE, EDF
-#  Module : SALOME
-#  $Header$
-
-import sys
-from omniORB import CORBA
-from LifeCycleCORBA import *
-from libSALOME_Swig import *
-import SALOMEDS
-from SALOME_NamingServicePy import *
-
-    #--------------------------------------------------------------------------
-
-def DumpComponent(Study, SO, offset):
-    it = Study.NewChildIterator(SO)
-    Builder = Study.NewBuilder()
-    while it.More():
-        CSO = it.Value()
-        it.Next()
-        anAttr = Builder.FindOrCreateAttribute(CSO, "AttributeName")
-        AtName = anAttr._narrow(SALOMEDS.AttributeName)
-        t_name = AtName.Value()
-        if t_name[0] == 1:
-            ofs = 1
-            a = ""
-            while ofs <= offset:
-                a = a + "--"
-                ofs = ofs +1
-            print a + ">" + CSO.GetID() + " " + t_name[1]
-        t_RefSO = CSO.ReferencedObject()
-        if t_RefSO[0] == 1:
-            RefSO = t_RefSO[1]
-            ofs = 1
-            a = ""
-            while ofs <= offset:
-                a = a + "  "
-                ofs = ofs +1
-            print a + ">" + RefSO.GetID()
-        DumpComponent(Study, CSO, offset+2)
-
-    #--------------------------------------------------------------------------
-
-def DumpStudy(Study):
-    itcomp = Study.NewComponentIterator()
-    while itcomp.More():
-        SC = itcomp.Value()
-        itcomp.Next()
-        name = SC.ComponentDataType()
-        print "-> ComponentDataType is " + name
-        DumpComponent(Study, SC, 1)
-        
-
-    #--------------------------------------------------------------------------
-
-# initialise the ORB
-orb = CORBA.ORB_init([''], CORBA.ORB_ID)
-
-# create an LifeCycleCORBA instance
-lcc = LifeCycleCORBA(orb)
-
-# create an SALOMEGUI_Swig instance
-sg = SALOMEGUI_Swig()
-
-#create an naming service instance
-naming_service = SALOME_NamingServicePy_i(orb)
-
-# get active study name and id
-myStudyName = sg.getActiveStudyName()
-print myStudyName
-
-myStudyId = sg.getActiveStudyId()
-print myStudyId
-
-# get Study Manager reference
-obj = naming_service.Resolve('myStudyManager')
-myStudyManager = obj._narrow(SALOMEDS.StudyManager)
-
-# get active study
-myStudy = myStudyManager.GetStudyByName(myStudyName)
-
index 0c8e1764d402e06687cce089b7a51669728ea718..ea767e60b9d538fc91925bd1e5a296babcb55980 100644 (file)
 
 using namespace std;
 
-//////////////////////////////////////////////////////////////////////////////
-// asv : 3.12.04 : added checking for NULL GUI objects in almost all methods.
-// In the scope of fixing bug PAL6869.
-//////////////////////////////////////////////////////////////////////////////
-// (PR : modify comments)
-// Instance of this class is created every time "import salome" line is typed 
-// - in IAPP embedded Python interpretor  (SALOME_Session_Server executable),
-// - in inline Python nodes in Supervisor (in SALOME_Container executable),
-// - in stand-alone Python console outside any executable.
-// SALOME GUI(desktop and other objects) is only available in SALOME_Session_Server
-//////////////////////////////////////////////////////////////////////////////
-// VSR : 19.04.05 : Reimplemented for new SALOME GUI (SUIT-based)
-// All methods are implemeted using Event mechanism.
-// Display/Erase methods use SALOME_Prs/SALOME_View mechanism. It is currently
-// implemented only for OCC and VTK viewers.
-//////////////////////////////////////////////////////////////////////////////
+/*!
+  asv : 3.12.04 : added checking for NULL GUI objects in almost all methods.
+  In the scope of fixing bug PAL6869.
+
+  (PR : modify comments)
+  Instance of this class is created every time "import salome" line is typed 
+  - in IAPP embedded Python interpretor  (SALOME_Session_Server executable),
+  - in inline Python nodes in Supervisor (in SALOME_Container executable),
+  - in stand-alone Python console outside any executable.
+  SALOME GUI(desktop and other objects) is only available in SALOME_Session_Server
+
+  VSR : 19.04.05 : Reimplemented for new SALOME GUI (SUIT-based)
+  All methods are implemeted using Event mechanism.
+  Display/Erase methods use SALOME_Prs/SALOME_View mechanism. It is currently
+  implemented only for OCC and VTK viewers.
+*/
 
 /*!
   getApplication()
@@ -120,6 +120,10 @@ public:
     myResult = (bool)( getApplication() && getApplication()->desktop() );
   }
 };
+
+/*!
+  \return true if GUI is available.
+*/
 bool SALOMEGUI_Swig::hasDesktop()
 {
   return ProcessEvent( new THasDesktopEvent() );
@@ -160,6 +164,10 @@ public:
     }
   }
 };
+
+/*!
+  \return active study's ID or 0 if there is no active study.
+*/
 int SALOMEGUI_Swig::getActiveStudyId()
 {
   return ProcessEvent( new TGetActiveStudyIdEvent() );
@@ -180,6 +188,10 @@ public:
     }
   }
 };
+
+/*!
+  \return active study's name or NULL if there is no active study.
+*/
 const char* SALOMEGUI_Swig::getActiveStudyName()
 {
   string result = ProcessEvent( new TGetActiveStudyNameEvent() );
@@ -190,20 +202,32 @@ const char* SALOMEGUI_Swig::getActiveStudyName()
   SALOMEGUI_Swig::getComponentName
   Returns the name of the component by its user name.
 */
+class TGetModulCatalogEvent: public SALOME_Event {
+public:
+  typedef CORBA::Object_var TResult;
+  TResult myResult;
+  TGetModulCatalogEvent() : myResult(CORBA::Object::_nil()) {}
+  virtual void Execute() {
+    if (SalomeApp_Application* anApp = getApplication())
+      myResult = anApp->namingService()->Resolve("/Kernel/ModulCatalog");
+  }
+};
+
+/*!
+  \return the name of the component by its user name.
+*/
 const char* SALOMEGUI_Swig::getComponentName( const char* componentUserName )
 {
-  if ( SalomeApp_Application* anApp = getApplication() ) { 
-    CORBA::Object_var anObject = anApp->namingService()->Resolve("/Kernel/ModulCatalog");
-    if ( !CORBA::is_nil( anObject ) ) {
-      SALOME_ModuleCatalog::ModuleCatalog_var aCatalogue =
-        SALOME_ModuleCatalog::ModuleCatalog::_narrow( anObject );
-      SALOME_ModuleCatalog::ListOfIAPP_Affich_var aModules = aCatalogue->GetComponentIconeList();
-      for ( unsigned int ind = 0; ind < aModules->length(); ind++ ) {
-       CORBA::String_var aModuleName     = aModules[ ind ].modulename;
-       CORBA::String_var aModuleUserName = aModules[ ind ].moduleusername;
-       if ( strcmp(componentUserName, aModuleUserName.in()) == 0 )
-         return aModuleName._retn();
-      }
+  CORBA::Object_var anObject = ProcessEvent(new TGetModulCatalogEvent());
+  if (!CORBA::is_nil(anObject)) {
+    SALOME_ModuleCatalog::ModuleCatalog_var aCatalogue =
+      SALOME_ModuleCatalog::ModuleCatalog::_narrow( anObject );
+    SALOME_ModuleCatalog::ListOfIAPP_Affich_var aModules = aCatalogue->GetComponentIconeList();
+    for ( unsigned int ind = 0; ind < aModules->length(); ind++ ) {
+      CORBA::String_var aModuleName     = aModules[ ind ].modulename;
+      CORBA::String_var aModuleUserName = aModules[ ind ].moduleusername;
+      if ( strcmp(componentUserName, aModuleUserName.in()) == 0 )
+        return aModuleName._retn();
     }
   }
   return 0;
@@ -215,18 +239,16 @@ const char* SALOMEGUI_Swig::getComponentName( const char* componentUserName )
 */
 const char* SALOMEGUI_Swig::getComponentUserName( const char* componentName )
 {
-  if ( SalomeApp_Application* anApp = getApplication() ) { 
-    CORBA::Object_var anObject = anApp->namingService()->Resolve("/Kernel/ModulCatalog");
-    if ( !CORBA::is_nil( anObject ) ) {
-      SALOME_ModuleCatalog::ModuleCatalog_var aCatalogue =
-        SALOME_ModuleCatalog::ModuleCatalog::_narrow( anObject );
-      SALOME_ModuleCatalog::ListOfIAPP_Affich_var aModules = aCatalogue->GetComponentIconeList();
-      for ( unsigned int ind = 0; ind < aModules->length(); ind++ ) {
-       CORBA::String_var aModuleName     = aModules[ ind ].modulename;
-       CORBA::String_var aModuleUserName = aModules[ ind ].moduleusername;
-       if ( strcmp(componentName, aModuleName.in()) == 0 )
-         return aModuleUserName._retn();
-      }
+  CORBA::Object_var anObject = ProcessEvent(new TGetModulCatalogEvent());
+  if (!CORBA::is_nil(anObject)) {
+    SALOME_ModuleCatalog::ModuleCatalog_var aCatalogue =
+      SALOME_ModuleCatalog::ModuleCatalog::_narrow( anObject );
+    SALOME_ModuleCatalog::ListOfIAPP_Affich_var aModules = aCatalogue->GetComponentIconeList();
+    for ( unsigned int ind = 0; ind < aModules->length(); ind++ ) {
+      CORBA::String_var aModuleName     = aModules[ ind ].modulename;
+      CORBA::String_var aModuleUserName = aModules[ ind ].moduleusername;
+      if ( strcmp(componentName, aModuleName.in()) == 0 )
+        return aModuleUserName._retn();
     }
   }
   return 0;
@@ -253,6 +275,10 @@ public:
     }
   }
 };
+
+/*!
+  \return the number of selected objects.
+*/
 int SALOMEGUI_Swig::SelectedCount()
 {
   return ProcessEvent( new TSelectedCountEvent() );
@@ -290,6 +316,10 @@ public:
     }
   }
 };
+
+/*!
+  \return the selected object entry by the given index.
+*/
 const char* SALOMEGUI_Swig::getSelected( int index )
 {
   QString result = ProcessEvent( new TGetSelectedEvent( index ) );
@@ -530,6 +560,11 @@ public:
     }
   }
 };
+
+/*!
+  \return TRUE if the object with given entry is in the current viewer.
+  VSR: For the current moment implemented for OCC and VTK viewers only.
+*/
 bool SALOMEGUI_Swig::IsInCurrentView( const char* theEntry )
 {
   return ProcessEvent( new TIsInViewerEvent( theEntry ) );
index cd849085d987c4202b5c5853c72b164aca78acc9..bdd521f3f4bc27dca4e0282c5b545651b04a0b5a 100755 (executable)
@@ -1,3 +1,21 @@
+#  Copyright (C) 2005  CEA/DEN, EDF R&D, OPEN CASCADE, PRINCIPIA R&D
+#
+#  This library is free software; you can redistribute it and/or
+#  modify it under the terms of the GNU Lesser General Public
+#  License as published by the Free Software Foundation; either
+#  version 2.1 of the License.
+#
+#  This library is distributed in the hope that it will be useful,
+#  but WITHOUT ANY WARRANTY; without even the implied warranty of
+#  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+#  Lesser General Public License for more details.
+#
+#  You should have received a copy of the GNU Lesser General Public
+#  License along with this library; if not, write to the Free Software
+#  Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307 USA
+#
+#  See http://www.salome-platform.org/
+#
 """
 
 """
diff --git a/src/SALOME_SWIG/salome.py b/src/SALOME_SWIG/salome.py
deleted file mode 100755 (executable)
index 9d45865..0000000
+++ /dev/null
@@ -1,157 +0,0 @@
-#  Copyright (C) 2003  OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN,
-#  CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS 
-# 
-#  This library is free software; you can redistribute it and/or 
-#  modify it under the terms of the GNU Lesser General Public 
-#  License as published by the Free Software Foundation; either 
-#  version 2.1 of the License. 
-# 
-#  This library is distributed in the hope that it will be useful, 
-#  but WITHOUT ANY WARRANTY; without even the implied warranty of 
-#  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU 
-#  Lesser General Public License for more details. 
-# 
-#  You should have received a copy of the GNU Lesser General Public 
-#  License along with this library; if not, write to the Free Software 
-#  Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307 USA 
-# 
-#  See http://www.opencascade.org/SALOME/ or email : webmaster.salome@opencascade.org 
-#
-#
-#
-#  File   : salome.py
-#  Author : Paul RASCLE, EDF
-#  Module : SALOME
-#  $Header$
-
-from omniORB import CORBA
-from LifeCycleCORBA import *
-from libSALOME_Swig import *
-import SALOMEDS
-from SALOME_NamingServicePy import *
-
-from SALOME_utilities import *
-
-#--------------------------------------------------------------------------
-
-def DumpComponent(Study, SO, offset):
-    it = Study.NewChildIterator(SO)
-    Builder = Study.NewBuilder()
-    while it.More():
-        CSO = it.Value()
-        it.Next()
-        anAttr = Builder.FindOrCreateAttribute(CSO, "AttributeName")
-        AtName = anAttr._narrow(SALOMEDS.AttributeName)
-        t_name = AtName.Value()
-        if t_name[0] == 1:
-            ofs = 1
-            a = ""
-            while ofs <= offset:
-                a = a + "--"
-                ofs = ofs +1
-            MESSAGE( a + ">" + str(CSO.GetID()) + " " + str(t_name[1]) )
-        t_RefSO = CSO.ReferencedObject()
-        if t_RefSO[0] == 1:
-            RefSO = t_RefSO[1]
-            ofs = 1
-            a = ""
-            while ofs <= offset:
-                a = a + "  "
-                ofs = ofs +1
-            MESSAGE( a + ">" + str(RefSO.GetID()) )
-        DumpComponent(Study, CSO, offset+2)
-
-    #--------------------------------------------------------------------------
-
-def DumpStudy(Study):
-    itcomp = Study.NewComponentIterator()
-    while itcomp.More():
-        SC = itcomp.Value()
-        itcomp.Next()
-        name = SC.ComponentDataType()
-        MESSAGE( "-> ComponentDataType is " + name )
-        DumpComponent(Study, SC, 1)
-        
-
-    #--------------------------------------------------------------------------
-
-def ImportComponentGUI(ComponentName):
-    libName = "lib" + ComponentName + "_Swig"
-    command = "from " + libName + " import *"
-    exec ( command )
-    constructor = ComponentName + "_Swig()"
-    command = "gui = " + constructor
-    exec ( command )
-    return gui
-
-    #--------------------------------------------------------------------------
-
-def SalomeGUIgetAllSelected(self):
-    selNumber = self.SelectedCount()
-    listSelected = []
-    for i in range(selNumber):
-        listSelected.append(self.getSelected(i))
-    return listSelected
-
-class SalomeGUI(SALOMEGUI_Swig):
-    getAllSelected = SalomeGUIgetAllSelected
-    
-    #--------------------------------------------------------------------------
-
-def IDToObject(id):
-    myObj = None
-    mySO = myStudy.FindObjectID(id);
-    if mySO is not None:
-        ok, anAttr = mySO.FindAttribute("AttributeIOR")
-        if ok:
-            AtIOR = anAttr._narrow(SALOMEDS.AttributeIOR)
-            if AtIOR.Value() != "":
-                myObj = orb.string_to_object(AtIOR.Value())
-    return myObj
-
-def ObjectToSObject(obj):
-    mySO = None
-    if obj is not None:
-        ior =  orb.object_to_string(obj)
-        if ior != "":
-            mySO = myStudy.FindObjectIOR(ior)
-    return mySO
-
-def ObjectToID(obj):
-    mySO = ObjectToSObject(obj)
-    if mySO:
-        return mySO.GetID()
-    return ""
-
-def IDToSObject(id):
-    mySO = myStudy.FindObjectID(id);
-    return mySO
-
-    #--------------------------------------------------------------------------
-
-# initialise the ORB
-orb = CORBA.ORB_init([''], CORBA.ORB_ID)
-
-# create an LifeCycleCORBA instance
-lcc = LifeCycleCORBA(orb)
-
-# create an SALOMEGUI_Swig instance
-sg = SalomeGUI()
-
-#create an naming service instance
-naming_service = SALOME_NamingServicePy_i(orb)
-
-# get active study name and id
-myStudyName = sg.getActiveStudyName()
-MESSAGE( myStudyName )
-
-myStudyId = sg.getActiveStudyId()
-MESSAGE( str(myStudyId) )
-
-# get Study Manager reference
-obj = naming_service.Resolve('myStudyManager')
-myStudyManager = obj._narrow(SALOMEDS.StudyManager)
-
-# get active study
-myStudy = myStudyManager.GetStudyByName(myStudyName)
-
diff --git a/src/SALOME_SWIG/salome_test.py b/src/SALOME_SWIG/salome_test.py
deleted file mode 100755 (executable)
index 75e5f0b..0000000
+++ /dev/null
@@ -1,486 +0,0 @@
-#  SALOME SALOME_SWIG : binding of C++ implementation and Python
-#
-#  Copyright (C) 2003  CEA/DEN, EDF R&D
-#
-#
-#
-#  File   : salome_test.py
-#  Module : SALOME
-
-print "Test the application loading  GEOM, SMESH, VISU, MED, components and doing some"
-print "operation within the components."
-
-import salome
-from salome import sg
-import SALOMEDS
-import os
-
-import SALOME_ModuleCatalog
-
-print "======================================================================"
-print "           Get Catalog "
-print "======================================================================"
-obj = salome.naming_service.Resolve('Kernel/ModulCatalog')
-catalog = obj._narrow(SALOME_ModuleCatalog.ModuleCatalog)
-
-print "======================================================================"
-print "           Create Study "
-print "======================================================================"
-
-comp = catalog.GetComponent("GEOM")
-if comp is None:
-       raise RuntimeError,"Component GEOM not found in Module Catalog."
-
-import geompy
-
-print "================================="
-print "       create AttributeReal      "
-print "================================="
-A = geompy.myBuilder.FindOrCreateAttribute(geompy.father, "AttributeReal")
-if A == None :
-       raise  RuntimeError, "Can't create AttributeReal attribute"
-A = A._narrow(SALOMEDS.AttributeReal)
-A.SetValue(0.0001)
-if A.Value() != 0.0001:
-       raise  RuntimeError, "Error : wrong value of  AttributeReal"
-
-print
-print " ===========  Test Geometry  =========================="
-print
-
-print "==================================="
-print "     define a box"
-print "==================================="
-
-box = geompy.MakeBox(0., 0., 0., 100., 200., 300.)
-idbox = geompy.addToStudy(box,"box")
-
-print
-print "=============  Test SMESH  ============================="
-print
-
-import StdMeshers
-
-comp = catalog.GetComponent("SMESH")
-if comp is None:
-       raise RuntimeError,"Component SMESH not found in Module Catalog."
-
-comp = catalog.GetComponent("MED")
-if comp is None:
-       raise RuntimeError,"Component MED not found in Module Catalog."
-
-import SMESH
-
-geom = salome.lcc.FindOrLoadComponent("FactoryServer", "GEOM")
-myBuilder = salome.myStudy.NewBuilder()
-
-smesh = salome.lcc.FindOrLoadComponent("FactoryServer", "SMESH")
-smeshgui = salome.ImportComponentGUI("SMESH")
-smeshgui.Init(salome.myStudyId);
-
-ShapeTypeCompSolid = 1
-ShapeTypeSolid = 2
-ShapeTypeShell = 3
-ShapeTypeFace = 4
-ShapeTypeWire = 5
-ShapeTypeEdge = 6
-ShapeTypeVertex = 7
-
-# ---- define a box
-
-box = geompy.MakeBox(0., 0., 0., 100., 200., 300.)
-idbox = geompy.addToStudy(box,"box")
-
-# ---- add first face of box in study
-
-subShapeList=geompy.SubShapeAll(box,ShapeTypeFace)
-face=subShapeList[0]
-name = geompy.SubShapeName(face, box)
-print name
-idface=geompy.addToStudyInFather(box,face,name)
-
-# ---- add shell from box  in study
-
-subShellList=geompy.SubShapeAll(box,ShapeTypeShell)
-shell = subShellList[0]
-name = geompy.SubShapeName(shell, box)
-print name
-idshell=geompy.addToStudyInFather(box,shell,name)
-
-# ---- add first edge of face in study
-
-edgeList = geompy.SubShapeAll(face,ShapeTypeEdge)
-edge=edgeList[0];
-name = geompy.SubShapeName(edge, face)
-print name
-idedge=geompy.addToStudyInFather(face,edge,name)
-
-
-# ---- SMESH 
-
-# ---- create Hypothesis
-
-print "-------------------------- create Hypothesis"
-print "-------------------------- LocalLength"
-hypLen1 = smesh.CreateHypothesis( "LocalLength", "libStdMeshersEngine.so" )
-hypLen1.SetLength(100)
-print hypLen1.GetName()
-print hypLen1.GetId()
-print hypLen1.GetLength()
-
-smeshgui.SetName(salome.ObjectToID(hypLen1), "Local_Length_100")
-
-print "-------------------------- NumberOfSegments"
-hypNbSeg1= smesh.CreateHypothesis( "NumberOfSegments", "libStdMeshersEngine.so" )
-hypNbSeg1.SetNumberOfSegments(7)
-print hypNbSeg1.GetName()
-print hypNbSeg1.GetId()
-print hypNbSeg1.GetNumberOfSegments()
-
-smeshgui.SetName(salome.ObjectToID(hypNbSeg1), "NumberOfSegments_7")
-
-print "-------------------------- MaxElementArea"
-hypArea1 = smesh.CreateHypothesis( "MaxElementArea", "libStdMeshersEngine.so" )
-hypArea1.SetMaxElementArea(2500)
-print hypArea1.GetName()
-print hypArea1.GetId()
-print hypArea1.GetMaxElementArea()
-
-smeshgui.SetName(salome.ObjectToID(hypArea1), "MaxElementArea_2500")
-
-print "-------------------------- MaxElementArea"
-hypArea2 = smesh.CreateHypothesis( "MaxElementArea", "libStdMeshersEngine.so" )
-hypArea2.SetMaxElementArea(500)
-print hypArea2.GetName()
-print hypArea2.GetId()
-print hypArea2.GetMaxElementArea()
-
-smeshgui.SetName(salome.ObjectToID(hypArea2), "MaxElementArea_500")
-
-print "-------------------------- Regular_1D"
-algoReg = smesh.CreateHypothesis( "Regular_1D", "libStdMeshersEngine.so" )
-listHyp=algoReg.GetCompatibleHypothesis()
-for hyp in listHyp:
-    print hyp
-print algoReg.GetName()
-print algoReg.GetId()
-
-smeshgui.SetName(salome.ObjectToID(algoReg), "Regular_1D" )
-
-print "-------------------------- MEFISTO_2D"
-algoMef = smesh.CreateHypothesis( "MEFISTO_2D", "libStdMeshersEngine.so" )
-listHyp=algoMef.GetCompatibleHypothesis()
-for hyp in listHyp:
-    print hyp
-print algoMef.GetName()
-print algoMef.GetId()
-
-smeshgui.SetName(salome.ObjectToID(algoMef), "MEFISTO_2D" )
-
-# ---- add hypothesis to box
-
-print "-------------------------- add hypothesis to box"
-box=salome.IDToObject(idbox)
-mesh = smesh.CreateMesh(box)
-
-smeshgui.SetName( salome.ObjectToID(mesh), "MeshBox" );
-
-ret=mesh.AddHypothesis(box,algoReg)
-print ret
-ret=mesh.AddHypothesis(box,algoMef)
-print ret
-
-
-ret=mesh.AddHypothesis(box,hypNbSeg1)
-print ret
-ret=mesh.AddHypothesis(box,hypArea1)
-print ret
-
-
-# ---- add hypothesis to edge
-
-print "-------------------------- add hypothesis to edge"
-edge=salome.IDToObject(idedge)
-submesh=mesh.GetSubMesh(edge, "SubMeshEdge")
-
-ret=mesh.AddHypothesis(edge,algoReg)
-print ret
-ret=mesh.AddHypothesis(edge,hypLen1)
-print ret
-
-print "-------------------------- add hypothesis to face"
-face=salome.IDToObject(idface)
-submesh   = mesh.GetSubMesh(face, "SubMeshFace")
-
-ret=mesh.AddHypothesis(face,hypArea2)
-print ret
-
-smesh.Compute(mesh, box)
-sg.updateObjBrowser(1);
-
-print
-print "=============  Test  Supervisor  ============================="
-print
-
-comp = catalog.GetComponent("SUPERV")
-if comp is None:
-       raise RuntimeError,"Component SUPERV not found in Module Catalog."
-
-from SuperV import *
-import SALOMEDS
-myStudy = salome.myStudy
-myBuilder = myStudy.NewBuilder()
-
-SuperVision = lcc.FindOrLoadComponent("SuperVisionContainer","SUPERV")
-father = myStudy.FindComponent("SUPERV")
-if father is None:
-        father = myBuilder.NewComponent("SUPERV")
-        A1 = myBuilder.FindOrCreateAttribute(father, "AttributeName");
-        FName = A1._narrow(SALOMEDS.AttributeName)
-        FName.SetValue( salome.sg.getComponentUserName("SUPERV") )
-       A2 = myBuilder.FindOrCreateAttribute(father, "AttributePixMap");
-       aPixmap = A2._narrow(SALOMEDS.AttributePixMap);
-       aPixmap.SetPixMap( "ICON_OBJBROWSER_Supervision" );
-       myBuilder.DefineComponentInstance(father,SuperVision)
-
-def addStudy(ior):
-    dataflow = SuperVision.getStreamGraph(ior)
-    name=dataflow.Name()
-    itr = myStudy.NewChildIterator(father)
-    while itr.More():
-        item=itr.Value()
-        res,A=item.FindAttribute("AttributeName")
-        if res:
-            aName = A._narrow(SALOMEDS.AttributeName)
-            if aName.Value() == name :
-               print myBuilder.FindOrCreateAttribute(item, "AttributeIOR")
-               A  = myBuilder.FindOrCreateAttribute(item, "AttributeIOR")
-               print "A = ", A
-               if A is not None :
-                   #res,A = myBuilder.FindOrCreateAttribute(item, "AttributeIOR")
-                   anIOR  = A._narrow(SALOMEDS.AttributeIOR);
-                  print "anIOR.SetValue(dataflow.getIOR())"
-                  anIOR.SetValue(dataflow.getIOR()) 
-                return
-        itr.Next()
-    obj = myBuilder.NewObject(father)
-    A=myBuilder.FindOrCreateAttribute(obj, "AttributeName")
-    aName=A._narrow(SALOMEDS.AttributeName)
-    aName.SetValue(name)
-    A=myBuilder.FindOrCreateAttribute(obj, "AttributeIOR")
-    anIOR  = A._narrow(SALOMEDS.AttributeIOR)
-    anIOR.SetValue(dataflow.getIOR())
-
-import os
-dir= os.getenv("DATA_DIR")
-if dir == None:
-       raise RuntimeError, "DATA_DIR is not defined"
-xmlfile = dir +"/Superv/Graphs/GraphGeomEssai.xml"
-print "Load dataflow from the file : "
-print xmlfile
-print
-
-myGraph = StreamGraph ( xmlfile )
-
-# This DataFlow is "valid" : no loop, correct links between Nodes etc...
-print "myGraph.IsValid() = ", myGraph.IsValid()
-
-# Get Nodes
-myGraph.PrintNodes()
-
-# This DataFlow is "executable" : all pending Ports are defined with Datas
-print myGraph.IsExecutable()
-
-# Starts only execution of that DataFlow and gets control immediatly
-print myGraph.Run()
-
-# That DataFlow is running ==> 0 (false)
-print myGraph.IsDone()
-
-# Events of execution :
-aStatus,aNode,anEvent,aState = myGraph.Event()
-while aStatus :
-    print aNode.Thread(),aNode.SubGraph(),aNode.Name(),anEvent,aState
-    aStatus,aNode,anEvent,aState = myGraph.Event()
-print "myGraph.IsDone() = ",myGraph.IsDone()
-
-# Wait for Completion (but it is already done after event loop ...)
-print "Done : ",myGraph.DoneW()
-
-print " "
-#print "Type : print myGraph.IsDone()"
-#print "       If execution is finished ==> 1 (true)"
-res=myGraph.IsDone()
-if res != 1:
-       raise RuntimeError, "myGraph.Run() is not done"
-
-print " "
-print "Type : myGraph.PrintPorts()"
-print "       to see input and output values of the graph"
-myGraph.PrintPorts()
-
-# Export will create newsupervisionexample.xml and the corresponding .py file
-tmpdir=os.getenv("TmpDir")
-if tmpdir is None:
-       tmpdir="/tmp"
-file = tmpdir + "/newsupervisionexample"
-print "--------------\n"+file+"\n--------------\n"
-myGraph.Export(file)
-
-ior = salome.orb.object_to_string(myGraph.G)
-addStudy(ior)
-
-GraphName = myGraph.Name()
-print "Befor save ",
-#nodes = myGraph.Nodes()
-nodes = myGraph.G.Nodes().FNodes
-length_bs = len(nodes)
-print "ListOfNodes length = ", length_bs
-names=[]
-for node in nodes:
-       names.append(node.Name())
-print names
-
-# Graph creation 
-GraphInLines = StreamGraph( 'GraphInLines' )
-GraphInLines.SetName( 'GraphInLines' )
-GraphInLines.SetAuthor( '' )
-GraphInLines.SetComment( '' )
-GraphInLines.Coords( 0 , 0 )
-
-# Creation of InLine Nodes
-PyAdd = []
-PyAdd.append( 'def Add(a,b) :  ' )
-PyAdd.append( '    return a+b  ' )
-PyAdd.append( '' )
-Add = GraphInLines.INode( 'Add' , PyAdd )
-Add.InPort( 'a' , 'long' )
-Add.InPort( 'b' , 'long' )
-Add.OutPort( 'f' , 'long' )
-Add.SetName( 'Add' )
-Add.SetAuthor( '' )
-Add.SetComment( 'Python function' )
-Add.Coords( 351 , 77 )
-PySub = []
-PySub.append( 'def Sub(a,b) : ' )
-PySub.append( '    return a-b ' )
-PySub.append( '' )
-Sub = GraphInLines.INode( 'Sub' , PySub )
-Sub.InPort( 'a' , 'long' )
-Sub.InPort( 'b' , 'long' )
-Sub.OutPort( 'f' , 'long' )
-Sub.SetName( 'Sub' )
-Sub.SetAuthor( '' )
-Sub.SetComment( 'Python function' )
-Sub.Coords( 86 , 333 )
-PyMul = []
-PyMul.append( 'def Mul(a,b) : ' )
-PyMul.append( '    return a*b ' )
-Mul = GraphInLines.INode( 'Mul' , PyMul )
-Mul.InPort( 'a' , 'long' )
-Mul.InPort( 'b' , 'long' )
-Mul.OutPort( 'Result' , 'long' )
-Mul.SetName( 'Mul' )
-Mul.SetAuthor( '' )
-Mul.SetComment( 'Python function' )
-Mul.Coords( 616 , 247 )
-
-# Creation of intermediate Output variables and of Control Links
-Addf = Add.Port( 'f' )
-Mula = GraphInLines.Link( Addf , Mul.Port( 'a' ) )
-Mula.AddCoord( 1 , 570 , 356 )
-Mula.AddCoord( 2 , 570 , 186 )
-Subf = Sub.Port( 'f' )
-Mulb = GraphInLines.Link( Subf , Mul.Port( 'b' ) )
-Mulb.AddCoord( 1 , 282 , 376 )
-Mulb.AddCoord( 2 , 282 , 442 )
-Addb = GraphInLines.Link( Subf , Add.Port( 'b' ) )
-Addb.AddCoord( 1 , 283 , 209 )
-Addb.AddCoord( 2 , 283 , 374 )
-Addb.AddCoord( 3 , 283 , 442 )
-
-# Creation of Input datas
-Adda = Add.Input( 'a' , 1)
-Suba = Sub.Input( 'a' , 3)
-Subb = Sub.Input( 'b' , 4)
-
-# Creation of Output variables
-MulResult = Mul.Port( 'Result' )
-
-GraphInLines.Run()
-
-GraphInLines.DoneW()
-
-GraphInLines.PrintPorts()
-
-sg.updateObjBrowser(1);
-
-print
-print "=============  Test  VISU  and MED ============================="
-print
-
-comp = catalog.GetComponent("VISU")
-if comp is None:
-       raise RuntimeError,"Component VISU not found in Module Catalog."
-
-import sys
-import SALOMEDS
-import SALOME
-import SALOME_MED
-import VISU
-
-import visu_gui
-
-medFileName = "pointe.med"
-medFile = os.getenv('DATA_DIR') + '/MedFiles/' + medFileName
-print "Load ", medFile
-
-studyCurrent = salome.myStudyName
-
-med_comp = salome.lcc.FindOrLoadComponent("FactoryServer", "MED")
-myVisu = salome.lcc.FindOrLoadComponent("FactoryServer", "VISU")
-
-try:
-    if os.access(medFile, os.R_OK) :
-       if not os.access(medFile, os.W_OK) :
-              import random
-              medFileNew = "/tmp/" + str(random.randint(0,1000000)) + "_" + medFileName
-              print " -- Copy " + medFile + " to " + medFileNew
-              os.system("cp "+ medFile + " " + medFileNew)
-              medFile = medFileNew
-              os.system("chmod 755 " + medFile)
-
-       if os.access(medFile, os.W_OK) :
-           med_comp.readStructFileWithFieldType(medFile,studyCurrent)
-           med_obj = visu_gui.visu.getMedObjectFromStudy()
-           print "med_obj - ", med_obj
-
-           myField1 = visu_gui.visu.getFieldObjectFromStudy(2,1)
-           aMeshName = "maa1"
-           anEntity = VISU.NODE
-          aTimeStampId = -1
-                  
-           myResult1 = myVisu.ImportMedField(myField1)
-           aMesh1 = myVisu.MeshOnEntity(myResult1, aMeshName, anEntity);
-           
-          aScalarMap1= myVisu.ScalarMapOnField(myResult1, aMeshName, anEntity, myField1.getName(), aTimeStampId)
-          
-          myResult2 = myVisu.ImportFile(medFile);
-          aMesh2 = myVisu.MeshOnEntity(myResult2, aMeshName, anEntity);
-           
-          aTimeStampId = 3
-          aScalarMap2= myVisu.ScalarMapOnField(myResult2, aMeshName, anEntity, myField1.getName(), aTimeStampId)
-                  
-          sg.updateObjBrowser(0)
-       else :  print "We have no permission to rewrite medFile, so readStructFileWithFieldType can't open this file";
-    else :  print  "We have no permission to read medFile, it will not be opened"; 
-
-except:
-    if sys.exc_type == SALOME.SALOME_Exception :
-        print "There is no permission to read " + medFile
-    else :
-        print sys.exc_type 
-        print sys.exc_value
-        print sys.exc_traceback
-
-sg.updateObjBrowser(1);
index 56bdd9bf50cf3fadcf3b434b9e286780e00c7e04..9444eb9c163fc593bc5bd9b6f32bb71f6cf0ed7c 100755 (executable)
@@ -1,3 +1,21 @@
+#  Copyright (C) 2005  CEA/DEN, EDF R&D, OPEN CASCADE, PRINCIPIA R&D
+#
+#  This library is free software; you can redistribute it and/or
+#  modify it under the terms of the GNU Lesser General Public
+#  License as published by the Free Software Foundation; either
+#  version 2.1 of the License.
+#
+#  This library is distributed in the hope that it will be useful,
+#  but WITHOUT ANY WARRANTY; without even the implied warranty of
+#  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+#  Lesser General Public License for more details.
+#
+#  You should have received a copy of the GNU Lesser General Public
+#  License along with this library; if not, write to the Free Software
+#  Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307 USA
+#
+#  See http://www.salome-platform.org/
+#
 #==============================================================================
 #  File      : supervisionexample.py
 #  Created   : 23 nov 2001
index 8c56bb1f2efc86a77288b9060205ae8927fd7c83..e30e66b6c18e13a9fab44f22f09862d14500c040 100755 (executable)
@@ -1,3 +1,21 @@
+#  Copyright (C) 2005  CEA/DEN, EDF R&D, OPEN CASCADE, PRINCIPIA R&D
+#
+#  This library is free software; you can redistribute it and/or
+#  modify it under the terms of the GNU Lesser General Public
+#  License as published by the Free Software Foundation; either
+#  version 2.1 of the License.
+#
+#  This library is distributed in the hope that it will be useful,
+#  but WITHOUT ANY WARRANTY; without even the implied warranty of
+#  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+#  Lesser General Public License for more details.
+#
+#  You should have received a copy of the GNU Lesser General Public
+#  License along with this library; if not, write to the Free Software
+#  Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307 USA
+#
+#  See http://www.salome-platform.org/
+#
 
 # Generated python file of Graph GraphGeom2Essai
 
index 36b2aa6970594e3e1bd3ec105e38e7e3d4da78df..9440935a003e13a0efad4ef81e1df99891bf6efa 100755 (executable)
@@ -1,3 +1,21 @@
+#  Copyright (C) 2005  CEA/DEN, EDF R&D, OPEN CASCADE, PRINCIPIA R&D
+#
+#  This library is free software; you can redistribute it and/or
+#  modify it under the terms of the GNU Lesser General Public
+#  License as published by the Free Software Foundation; either
+#  version 2.1 of the License.
+#
+#  This library is distributed in the hope that it will be useful,
+#  but WITHOUT ANY WARRANTY; without even the implied warranty of
+#  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+#  Lesser General Public License for more details.
+#
+#  You should have received a copy of the GNU Lesser General Public
+#  License along with this library; if not, write to the Free Software
+#  Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307 USA
+#
+#  See http://www.salome-platform.org/
+#
 #  File   : Makefile.in
 #  Author : Alexander Solovyov(OCN)
 #  Module : SOCC
index a751570c4d8ef082df9bb6a741bb0c90f36c9481..a7867e388758ecda0e61afcaaee0e290bca8d629 100644 (file)
 #include "SOCC_Prs.h"
 using namespace std;
 
-//==========================================================
 /*!
- *  SOCC_Prs::SOCC_Prs
- *  Default constructor
- */
-//==========================================================
+  Default constructor
+*/
 SOCC_Prs::SOCC_Prs() 
 {
   myToActivate = true;
 }
 
-//==========================================================
 /*!
- *  SOCC_Prs::SOCC_Prs
- *  Standard constructor
- */
-//==========================================================
+  Standard constructor
+*/
 SOCC_Prs::SOCC_Prs( const Handle(AIS_InteractiveObject)& obj ) 
 {  
   AddObject( obj ); 
 }
 
-//==========================================================
 /*!
- *  SOCC_Prs::~SOCC_Prs
- *  Destructor
- */
-//==========================================================
+  Destructor
+*/
 SOCC_Prs::~SOCC_Prs()
 { 
   myObjects.Clear(); 
 }
 
-//==========================================================
 /*!
- *  SOCC_Prs::GetObjects
- *  Get interactive objects list
- */
-//==========================================================
+  Get interactive objects list
+*/
 void SOCC_Prs::GetObjects( AIS_ListOfInteractive& list ) const 
 { 
   list = myObjects; 
 }
 
-//==========================================================
 /*!
- *  SOCC_Prs::AddObject
- *  Add interactive object
- */
-//==========================================================
+  Add interactive object
+*/
 void SOCC_Prs::AddObject( const Handle(AIS_InteractiveObject)& obj ) 
 { 
   myObjects.Append( obj ); 
 }
 
-//==========================================================
 /*!
- *  SOCC_Prs::IsNull
- *  Return 0 if list of the interactive objects is empty
- *  [ Reimplemented from SALOME_Prs ]
- */
-//==========================================================
+  \return 0 if list of the interactive objects is empty [ Reimplemented from SALOME_Prs ]
+*/
 bool SOCC_Prs::IsNull() const 
 { 
   return myObjects.IsEmpty(); 
 }
 
-//=================================================================
 /*!
- *  GEOM_Displayer::SetToActivate
- *  This method is used for activisation/deactivisation of
- *  objects in the moment of displaying
+  This method is used for activisation/deactivisation of
+  objects in the moment of displaying
 */   
-//=================================================================
 void SOCC_Prs::SetToActivate( const bool toActivate )
 {
   myToActivate = toActivate;
 }
+
 bool SOCC_Prs::ToActivate() const
 {
   return myToActivate;
index 60c0a880ee362d21d42f9cf94cd5cc309bc57d00..0a569f0484ad41737bf25a6348d350fb6accbac3 100755 (executable)
 //
 // See http://www.salome-platform.org/
 //
-#include "SOCC_ViewModel.h"\r
-\r
-#include "SOCC_Prs.h"\r
-#include "SOCC_ViewWindow.h"\r
-\r
-#include "SUIT_Session.h"\r
-#include "SUIT_Application.h"\r
-\r
-//#include "ToolsGUI.h"\r
-\r
-// Temporarily commented to avoid awful dependecy on SALOMEDS\r
-// TODO: better mechanism of storing display/erse status in a study\r
-// should be provided...\r
-//#include <SALOMEconfig.h>\r
-//#include CORBA_CLIENT_HEADER(SALOMEDS)\r
-\r
-#include <AIS_ListIteratorOfListOfInteractive.hxx>\r
-#include <Visual3d_View.hxx>\r
-\r
-#include <SALOME_AISShape.hxx>\r
-#include <SALOME_AISObject.hxx>\r
-\r
-// Temporarily commented to avoid awful dependecy on SALOMEDS\r
-// TODO: better mechanism of storing display/erse status in a study\r
-// should be provided...\r
-//#include <Utils_ORB_INIT.hxx>\r
-//#include <Utils_SINGLETON.hxx>\r
-//#include <SALOME_ModuleCatalog_impl.hxx>\r
-//#include <SALOME_NamingService.hxx>\r
-\r
-//#include "SALOMEDSClient.hxx"\r
-//#include "SALOMEDS_StudyManager.hxx"\r
-\r
-#include <AIS_TypeOfIso.hxx>\r
-\r
-// in order NOT TO link with SalomeApp, here the code returns SALOMEDS_Study.\r
-// SalomeApp_Study::studyDS() does it as well, but -- here it is retrieved from \r
-// SALOMEDS::StudyManager - no linkage with SalomeApp. \r
-\r
-// Temporarily commented to avoid awful dependecy on SALOMEDS\r
-// TODO: better mechanism of storing display/erse status in a study\r
-// should be provided...\r
-//static _PTR(Study) getStudyDS() \r
-//{\r
-//  SALOMEDSClient_Study* aStudy = NULL;\r
-//  _PTR(StudyManager) aMgr( new SALOMEDS_StudyManager() );\r
-\r
-  // get id of SUIT_Study, if it's a SalomeApp_Study, it will return\r
-  //    id of its underlying SALOMEDS::Study\r
-//  SUIT_Application* app = SUIT_Session::session()->activeApplication();\r
-//  if ( !app )  return _PTR(Study)(aStudy); \r
-//  SUIT_Study* stud = app->activeStudy();\r
-//  if ( !stud ) return _PTR(Study)(aStudy);  \r
-//  const int id = stud->id(); // virtual method, must return SALOMEDS_Study id\r
-  // get SALOMEDS_Study with this id from StudyMgr\r
-//  return aMgr->GetStudyByID( id );\r
-//}\r
-\r
-SOCC_Viewer::SOCC_Viewer( bool DisplayTrihedron )\r
-: OCCViewer_Viewer( DisplayTrihedron )\r
-{\r
-}\r
-\r
-SOCC_Viewer::~SOCC_Viewer()\r
-{\r
-}\r
-\r
-bool SOCC_Viewer::highlight( const Handle(SALOME_InteractiveObject)& obj,\r
-                             bool hilight, bool upd )\r
-{\r
-  bool isInLocal = getAISContext()->HasOpenedContext();\r
-  //SUIT_Study* ActiveStudy = SUIT_Application::getDesktop()->getActiveStudy();\r
-  //SALOME_Selection* Sel = SALOME_Selection::Selection( ActiveStudy->getSelection() );\r
-\r
-  AIS_ListOfInteractive List;\r
-  getAISContext()->DisplayedObjects(List);\r
-  \r
-  AIS_ListIteratorOfListOfInteractive ite(List);\r
-  for ( ; ite.More(); ite.Next() )\r
-  {\r
-    Handle(SALOME_InteractiveObject) anObj =\r
-      Handle(SALOME_InteractiveObject)::DownCast( ite.Value()->GetOwner() );\r
-\r
-    if ( !anObj.IsNull() && anObj->hasEntry() && anObj->isSame( obj ) )\r
-    {\r
-      if ( !isInLocal )\r
-          OCCViewer_Viewer::highlight( ite.Value(), hilight, false );\r
-      // highlight subshapes only when local selection is active\r
-      else\r
-      {\r
-        /*if ( ite.Value()->IsKind( STANDARD_TYPE( SALOME_AISShape ) ) )\r
-        {\r
-          Handle(SALOME_AISShape) aSh = Handle(SALOME_AISShape)::DownCast( ite.Value() );\r
-          TColStd_IndexedMapOfInteger MapIndex;\r
-          Sel->GetIndex( IObject, MapIndex );\r
-          aSh->highlightSubShapes( MapIndex, highlight );\r
-        }*/\r
-      }\r
-      break;\r
-    }\r
-  }\r
-    \r
-  if( upd )\r
-    update();\r
-    \r
-  return false;\r
-}\r
-\r
-bool SOCC_Viewer::isInViewer( const Handle(SALOME_InteractiveObject)& obj,\r
-                              bool onlyInViewer )\r
-{\r
-  AIS_ListOfInteractive List;\r
-  getAISContext()->DisplayedObjects(List);\r
-\r
-  if( !onlyInViewer ) {\r
-    AIS_ListOfInteractive List1;\r
-    getAISContext()->ObjectsInCollector(List1);\r
-    List.Append(List1);\r
-  }\r
-\r
-  AIS_ListIteratorOfListOfInteractive ite(List);\r
-  for ( ; ite.More(); ite.Next() )\r
-  {\r
-    Handle(SALOME_InteractiveObject) anObj =\r
-        Handle(SALOME_InteractiveObject)::DownCast( ite.Value()->GetOwner() );\r
-\r
-    if ( !anObj.IsNull() && anObj->hasEntry() && anObj->isSame( obj ) )\r
-      return true;\r
-  }\r
-  return false;\r
-}\r
-\r
-bool SOCC_Viewer::isVisible( const Handle(SALOME_InteractiveObject)& obj )\r
-{\r
-  AIS_ListOfInteractive List;\r
-  getAISContext()->DisplayedObjects( List );\r
-\r
-  AIS_ListIteratorOfListOfInteractive ite( List );\r
-  for ( ; ite.More(); ite.Next() )\r
-  {\r
-    Handle(SALOME_InteractiveObject) anObj =\r
-      Handle(SALOME_InteractiveObject)::DownCast( ite.Value()->GetOwner() );\r
-\r
-    if ( !anObj.IsNull() && anObj->hasEntry() && anObj->isSame( obj ) )\r
-      return getAISContext()->IsDisplayed( ite.Value() );\r
-  }\r
-  \r
-  return false;\r
-}\r
-\r
-void SOCC_Viewer::setColor( const Handle(SALOME_InteractiveObject)& obj,\r
-                            const QColor& color, bool update )\r
-{\r
-  AIS_ListOfInteractive List;\r
-  getAISContext()->DisplayedObjects(List);\r
-  \r
-  AIS_ListIteratorOfListOfInteractive ite(List);\r
-  for ( ; ite.More(); ite.Next() )\r
-  {\r
-    Handle(SALOME_InteractiveObject) anObj =\r
-        Handle(SALOME_InteractiveObject)::DownCast( ite.Value()->GetOwner() );\r
-\r
-    if ( !anObj.IsNull() && anObj->hasEntry() && anObj->isSame( obj ) )\r
-    {\r
-      OCCViewer_Viewer::setColor( ite.Value(), color, update );\r
-      return;\r
-    }\r
-  }\r
-}\r
-\r
-void SOCC_Viewer::switchRepresentation( const Handle(SALOME_InteractiveObject)& obj,\r
-                                        int mode, bool update )\r
-{\r
-  AIS_ListOfInteractive List;\r
-  getAISContext()->DisplayedObjects(List);\r
-  \r
-  AIS_ListIteratorOfListOfInteractive ite(List);\r
-  for ( ; ite.More(); ite.Next() )\r
-  {\r
-    Handle(SALOME_InteractiveObject) anObj =\r
-        Handle(SALOME_InteractiveObject)::DownCast( ite.Value()->GetOwner() );\r
-\r
-    if ( !anObj.IsNull() && anObj->hasEntry() && anObj->isSame( obj ) )\r
-    {\r
-      OCCViewer_Viewer::switchRepresentation( ite.Value(), mode, update );\r
-      return;\r
-    }\r
-  }\r
-}\r
-\r
-void SOCC_Viewer::setTransparency( const Handle(SALOME_InteractiveObject)& obj,\r
-                                   float trans, bool update )\r
-{\r
-  AIS_ListOfInteractive List;\r
-  getAISContext()->DisplayedObjects( List );\r
-  \r
-  AIS_ListIteratorOfListOfInteractive ite( List );\r
-  for ( ; ite.More(); ite.Next() )\r
-  {\r
-    Handle(SALOME_InteractiveObject) anObj =\r
-        Handle(SALOME_InteractiveObject)::DownCast( ite.Value()->GetOwner() );\r
-\r
-    if ( !anObj.IsNull() && anObj->hasEntry() && anObj->isSame( obj ) )\r
-    {\r
-      OCCViewer_Viewer::setTransparency( ite.Value(), trans, update );\r
-      return;\r
-    }\r
-  }\r
-}\r
-\r
-void SOCC_Viewer::rename( const Handle(SALOME_InteractiveObject)& obj,\r
-                          const QString& name )\r
-{\r
-  AIS_ListOfInteractive List;\r
-  getAISContext()->DisplayedObjects(List);\r
-  \r
-  AIS_ListIteratorOfListOfInteractive ite(List);\r
-  while (ite.More())\r
-  {\r
-    if (ite.Value()->IsKind(STANDARD_TYPE(SALOME_AISShape)))\r
-    {\r
-      Handle(SALOME_AISShape) aSh = Handle(SALOME_AISShape)::DownCast(ite.Value());\r
-      \r
-      if ( aSh->hasIO() )\r
-      {\r
-        Handle(SALOME_InteractiveObject) IO = aSh->getIO();\r
-        if ( IO->isSame( obj ) )\r
-        {\r
-          aSh->setName( (char*)name.latin1() );\r
-          break;\r
-        }\r
-      }\r
-    }\r
-    else if ( ite.Value()->IsKind( STANDARD_TYPE( SALOME_AISObject ) ) )\r
-    {\r
-      Handle(SALOME_AISObject) aSh = Handle(SALOME_AISObject)::DownCast( ite.Value() );\r
-\r
-      // Add code here, if someone create a MODULE_AISObject.\r
-    }\r
-    ite.Next();\r
-  }\r
-}\r
-\r
-//=======================================================================\r
-// name    : Display\r
-// Purpose : Display presentation\r
-//=======================================================================\r
-void SOCC_Viewer::Display( const SALOME_OCCPrs* prs )\r
-{\r
-  // try do downcast object\r
-  const SOCC_Prs* anOCCPrs = dynamic_cast<const SOCC_Prs*>( prs );\r
-  if ( !anOCCPrs || anOCCPrs->IsNull() )\r
-    return;\r
-\r
-  // get SALOMEDS Study\r
-  // Temporarily commented to avoid awful dependecy on SALOMEDS\r
-  // TODO: better mechanism of storing display/erse status in a study\r
-  // should be provided...\r
-  //  _PTR(Study) study(getStudyDS());\r
-\r
-  // get context\r
-  Handle (AIS_InteractiveContext) ic = getAISContext();\r
-\r
-  // get all displayed objects\r
-  AIS_ListOfInteractive List;\r
-  ic->DisplayedObjects( List );\r
-  // get objects in the collector\r
-  AIS_ListOfInteractive ListCollector;\r
-  ic->ObjectsInCollector( ListCollector );\r
-\r
-  // get objects to be displayed\r
-  AIS_ListOfInteractive anAISObjects;\r
-  anOCCPrs->GetObjects( anAISObjects );\r
-\r
-  AIS_ListIteratorOfListOfInteractive aIter( anAISObjects );\r
-  for ( ; aIter.More(); aIter.Next() )\r
-  {\r
-    Handle(AIS_InteractiveObject) anAIS = aIter.Value();\r
-    if ( !anAIS.IsNull() )\r
-    {\r
-      // try to find presentation in the viewer\r
-      bool bDisplayed = false;\r
-      AIS_ListIteratorOfListOfInteractive ite( List );\r
-      for ( ; ite.More(); ite.Next() )\r
-      {\r
-        // compare presentations by handles\r
-        // if the object is already displayed - nothing to do more\r
-        if ( ite.Value() == anAIS )\r
-        {\r
-          // Deactivate object if necessary\r
-          if ( !anOCCPrs->ToActivate() )\r
-            ic->Deactivate( anAIS );\r
-          bDisplayed = true;\r
-          break;\r
-        }\r
-      }\r
-\r
-      if ( bDisplayed )\r
-        continue;\r
-\r
-      // then try to find presentation in the collector\r
-      bDisplayed = false;\r
-      ite.Initialize( ListCollector );\r
-      for ( ; ite.More(); ite.Next() )\r
-      {\r
-        // compare presentations by handles\r
-        // if the object is in collector - display it\r
-        if ( ite.Value() == anAIS )\r
-        {\r
-          ic->DisplayFromCollector( anAIS, false );\r
-\r
-          // Deactivate object if necessary\r
-          if ( !anOCCPrs->ToActivate() )\r
-            ic->Deactivate( anAIS );\r
-          bDisplayed = true;\r
-\r
-          // Set visibility flag\r
-         // Temporarily commented to avoid awful dependecy on SALOMEDS\r
-         // TODO: better mechanism of storing display/erse status in a study\r
-         // should be provided...\r
-         //Handle(SALOME_InteractiveObject) anObj =\r
-          //  Handle(SALOME_InteractiveObject)::DownCast( anAIS->GetOwner() );\r
-          //if ( !anObj.IsNull() && anObj->hasEntry() )\r
-          //{\r
-         //  if ( study )\r
-         //    ToolsGUI::SetVisibility( study, anObj->getEntry(), true, this );\r
-         //}\r
-          break;\r
-        }\r
-      }\r
-      if ( bDisplayed )\r
-        continue;\r
-\r
-      // if object is not displayed and not found in the collector - display it\r
-      if ( anAIS->IsKind( STANDARD_TYPE(AIS_Trihedron) ) )\r
-      {\r
-        Handle(AIS_Trihedron) aTrh = Handle(AIS_Trihedron)::DownCast( anAIS );\r
-        double aNewSize = 100, aSize = 100;\r
-        getTrihedronSize( aNewSize, aSize );\r
-        aTrh->SetSize( aTrh == getTrihedron() ? aNewSize : 0.5 * aNewSize );\r
-      }\r
-\r
-      ic->Display( anAIS, false );\r
-\r
-      // Set visibility flag\r
-      // Temporarily commented to avoid awful dependecy on SALOMEDS\r
-      // TODO: better mechanism of storing display/erse status in a study\r
-      // should be provided...\r
-      //Handle(SALOME_InteractiveObject) anObj =\r
-      //  Handle(SALOME_InteractiveObject)::DownCast( anAIS->GetOwner() );\r
-      //if ( !anObj.IsNull() && anObj->hasEntry() )\r
-      //{\r
-      //  if ( study  )\r
-      //    ToolsGUI::SetVisibility( study, anObj->getEntry(), true, this );\r
-      //}\r
-\r
-      // Deactivate object if necessary\r
-      if ( !anOCCPrs->ToActivate() )\r
-        ic->Deactivate( anAIS );\r
-    }\r
-  }\r
-}\r
-\r
-//=======================================================================\r
-// name    : Erase\r
-// Purpose : Erase presentation\r
-//=======================================================================\r
-void SOCC_Viewer::Erase( const SALOME_OCCPrs* prs, const bool forced )\r
-{\r
-  // try do downcast object\r
-  const SOCC_Prs* anOCCPrs = dynamic_cast<const SOCC_Prs*>( prs );\r
-  if ( !anOCCPrs || anOCCPrs->IsNull() )\r
-    return;\r
-\r
-  // get SALOMEDS Study\r
-  // Temporarily commented to avoid awful dependecy on SALOMEDS\r
-  // TODO: better mechanism of storing display/erse status in a study\r
-  // should be provided...\r
-  //  _PTR(Study) study(getStudyDS());\r
-\r
-  // get context\r
-  Handle(AIS_InteractiveContext) ic = getAISContext();\r
-\r
-  // get objects to be erased\r
-  AIS_ListOfInteractive anAISObjects;\r
-  anOCCPrs->GetObjects( anAISObjects );\r
-\r
-  AIS_ListIteratorOfListOfInteractive aIter( anAISObjects );\r
-  for ( ; aIter.More(); aIter.Next() ) {\r
-    Handle(AIS_InteractiveObject) anAIS = aIter.Value();\r
-    if ( !anAIS.IsNull() ) {\r
-      // erase the object from context : move it to collector\r
-      ic->Erase( anAIS, false, forced ? false : true );\r
-\r
-      // Set visibility flag if necessary\r
-      // Temporarily commented to avoid awful dependecy on SALOMEDS\r
-      // TODO: better mechanism of storing display/erse status in a study\r
-      // should be provided...\r
-      //if ( !forced )\r
-      //{\r
-      //  Handle(SALOME_InteractiveObject) anObj =\r
-      //    Handle(SALOME_InteractiveObject)::DownCast( anAIS->GetOwner() );\r
-      //  if ( !anObj.IsNull() && anObj->hasEntry() )\r
-      //  {\r
-      //  if ( study )\r
-      //    ToolsGUI::SetVisibility( study, anObj->getEntry(), true, this );\r
-      //  }\r
-      //}\r
-    }\r
-  }\r
-}\r
-\r
-//=======================================================================\r
-// name    : EraseAll\r
-// Purpose : Erase all presentations\r
-//=======================================================================\r
-void SOCC_Viewer::EraseAll( const bool forced )\r
-{\r
-  // get SALOMEDS Study\r
-  // Temporarily commented to avoid awful dependecy on SALOMEDS\r
-  // TODO: better mechanism of storing display/erse status in a study\r
-  // should be provided...\r
-  //  _PTR(Study) study(getStudyDS());\r
-\r
-  // get context\r
-  Handle(AIS_InteractiveContext) ic = getAISContext();\r
-\r
-  // check if trihedron is displayed\r
-  Standard_Boolean isTrihedronDisplayed = ic->IsDisplayed( getTrihedron() );\r
-\r
-  // get objects to be erased (all currently displayed objects)\r
-  AIS_ListOfInteractive aList;\r
-  ic->DisplayedObjects( aList );\r
-  AIS_ListIteratorOfListOfInteractive anIter( aList );\r
-  for ( ; anIter.More(); anIter.Next() ) {\r
-    if ( isTrihedronDisplayed && anIter.Value()->DynamicType() == STANDARD_TYPE( AIS_Trihedron ) )\r
-      continue;\r
-\r
-    // erase an object\r
-    Handle(AIS_InteractiveObject) anIO = anIter.Value();\r
-    ic->Erase( anIO, false, forced ? false : true );\r
-    \r
-    // Set visibility flag if necessary\r
-    // Temporarily commented to avoid awful dependecy on SALOMEDS\r
-    // TODO: better mechanism of storing display/erse status in a study\r
-    // should be provided...\r
-    //if ( !forced ) {\r
-    //  Handle(SALOME_InteractiveObject) anObj =\r
-    // Handle(SALOME_InteractiveObject)::DownCast( anIO->GetOwner() );\r
-\r
-    //  if ( !anObj.IsNull() && anObj->hasEntry() ) {\r
-    // if ( study )\r
-    //   ToolsGUI::SetVisibility( study, anObj->getEntry(), true, this );\r
-    //  }\r
-    //}\r
-  }\r
-\r
-  // display trihedron if necessary\r
-  if ( isTrihedronDisplayed )\r
-    getAISContext()->Display( getTrihedron() );\r
-  else\r
-    Repaint();\r
-}\r
-\r
-//=======================================================================\r
-// name    : CreatePrs\r
-// Purpose : Create presentation corresponding to the entry\r
-//=======================================================================\r
-SALOME_Prs* SOCC_Viewer::CreatePrs( const char* entry )\r
-{\r
-  SOCC_Prs* prs = new SOCC_Prs();\r
-  if ( entry )\r
-  {\r
-    // get context\r
-    Handle(AIS_InteractiveContext) ic = getAISContext();\r
-\r
-    // get displayed objects\r
-    AIS_ListOfInteractive List;\r
-    ic->DisplayedObjects( List );\r
-    // get objects in the collector\r
-    AIS_ListOfInteractive ListCollector;\r
-    ic->ObjectsInCollector( ListCollector );\r
-    List.Append( ListCollector );\r
-\r
-    AIS_ListIteratorOfListOfInteractive ite( List );\r
-    for ( ; ite.More(); ite.Next() )\r
-    {\r
-      Handle(SALOME_InteractiveObject) anObj =\r
-        Handle(SALOME_InteractiveObject)::DownCast( ite.Value()->GetOwner() );\r
-\r
-      if ( !anObj.IsNull() && anObj->hasEntry() && strcmp( anObj->getEntry(), entry ) == 0 )\r
-        prs->AddObject( ite.Value() );\r
-    }\r
-  }\r
-  return prs;\r
-}\r
-\r
-//=======================================================================\r
-// name    : LocalSelection\r
-// Purpose : Activates selection of sub shapes\r
-//=======================================================================\r
-void SOCC_Viewer::LocalSelection( const SALOME_OCCPrs* thePrs, const int theMode )\r
-{\r
-  Handle(AIS_InteractiveContext) ic = getAISContext();\r
-  \r
-  const SOCC_Prs* anOCCPrs = dynamic_cast<const SOCC_Prs*>( thePrs );\r
-  if ( ic.IsNull() )\r
-    return;\r
-  \r
-  // Open local context if there is no one\r
-  bool allObjects = thePrs == 0 || thePrs->IsNull();\r
-  if ( !ic->HasOpenedContext() ) {\r
-    ic->ClearCurrents( false );\r
-    ic->OpenLocalContext( allObjects, true, true );\r
-  }\r
-\r
-  AIS_ListOfInteractive anObjs;\r
-  // Get objects to be activated\r
-  if ( allObjects ) \r
-    ic->DisplayedObjects( anObjs );\r
-  else\r
-    anOCCPrs->GetObjects( anObjs );\r
-\r
-  // Activate selection of objects from prs\r
-  AIS_ListIteratorOfListOfInteractive aIter( anObjs );\r
-  for ( ; aIter.More(); aIter.Next() ) {\r
-    Handle(AIS_InteractiveObject) anAIS = aIter.Value();\r
-    if ( !anAIS.IsNull() )\r
-    {\r
-      if ( anAIS->IsKind( STANDARD_TYPE( AIS_Shape ) ) )\r
-      {\r
-        ic->Load( anAIS, -1, false );\r
-        ic->Activate( anAIS, AIS_Shape::SelectionMode( (TopAbs_ShapeEnum)theMode ) );\r
-      }\r
-      else if ( anAIS->DynamicType() != STANDARD_TYPE(AIS_Trihedron) )\r
-      {\r
-        ic->Load( anAIS, -1, false );\r
-        ic->Activate( anAIS, theMode );\r
-      }\r
-    }\r
-  }\r
-}\r
-\r
-//=======================================================================\r
-// name    : GlobalSelection\r
-// Purpose : Deactivates selection of sub shapes\r
-//=======================================================================\r
-void SOCC_Viewer::GlobalSelection( const bool update ) const\r
-{\r
-  Handle(AIS_InteractiveContext) ic = getAISContext();\r
-  if ( !ic.IsNull() )\r
-  {\r
-    ic->CloseAllContexts( false );\r
-    if ( update )\r
-      ic->CurrentViewer()->Redraw();\r
-  }\r
-}\r
-\r
-//=======================================================================\r
-// name    : BeforeDisplay\r
-// Purpose : Axiluary method called before displaying of objects\r
-//=======================================================================\r
-void  SOCC_Viewer::BeforeDisplay( SALOME_Displayer* d )\r
-{\r
-  d->BeforeDisplay( this, SALOME_OCCViewType() );\r
-}\r
-\r
-//=======================================================================\r
-// name    : AfterDisplay\r
-// Purpose : Axiluary method called after displaying of objects\r
-//=======================================================================\r
-void SOCC_Viewer::AfterDisplay( SALOME_Displayer* d )\r
-{\r
-  d->AfterDisplay( this, SALOME_OCCViewType() );\r
-}\r
-\r
-//=======================================================================\r
-// name    : getTrihedronSize\r
-// Purpose : Get new and current trihedron size corresponding to the\r
-//           current model size\r
-//=======================================================================\r
-bool SOCC_Viewer::getTrihedronSize( double& theNewSize, double& theSize )\r
-{\r
-  theNewSize = 100;\r
-  theSize = 100;\r
-\r
-  //SRN: BUG IPAL8996, a usage of method ActiveView without an initialization\r
-  Handle(V3d_Viewer) viewer = getViewer3d();\r
-  viewer->InitActiveViews();\r
-  if(!viewer->MoreActiveViews()) return false;\r
-\r
-  Handle(V3d_View) view3d = viewer->ActiveView();\r
-  //SRN: END of fix\r
-\r
-  if ( view3d.IsNull() )\r
-    return false;\r
-\r
-  double Xmin = 0, Ymin = 0, Zmin = 0, Xmax = 0, Ymax = 0, Zmax = 0;\r
-  double aMaxSide;\r
-\r
-  view3d->View()->MinMaxValues( Xmin, Ymin, Zmin, Xmax, Ymax, Zmax );\r
-\r
-  if ( Xmin == RealFirst() || Ymin == RealFirst() || Zmin == RealFirst() ||\r
-       Xmax == RealLast()  || Ymax == RealLast()  || Zmax == RealLast() )\r
-    return false;\r
-\r
-  aMaxSide = Xmax - Xmin;\r
-  if ( aMaxSide < Ymax -Ymin ) aMaxSide = Ymax -Ymin;\r
-  if ( aMaxSide < Zmax -Zmin ) aMaxSide = Zmax -Zmin;\r
-\r
-  float aSizeInPercents = SUIT_Session::session()->resourceMgr()->doubleValue("Viewer","TrihedronSize", 105.);\r
-\r
-  static float EPS = 5.0E-3;\r
-  theSize = getTrihedron()->Size();\r
-  theNewSize = aMaxSide*aSizeInPercents / 100.0;\r
-\r
-  return fabs( theNewSize - theSize ) > theSize * EPS ||\r
-         fabs( theNewSize - theSize) > theNewSize * EPS;\r
-}\r
-\r
-//=======================================================================\r
-// name    : Repaint\r
-// Purpose : \r
-//=======================================================================\r
-void SOCC_Viewer::Repaint()\r
-{\r
-//  onAdjustTrihedron();\r
-  getViewer3d()->Update();\r
-}\r
-\r
-//=======================================================================\r
-// name    : createView\r
-// Purpose : create SOCC_ViewWindow\r
-//=======================================================================\r
-SUIT_ViewWindow* SOCC_Viewer::createView( SUIT_Desktop* theDesktop )\r
-{\r
-  SOCC_ViewWindow* view = new SOCC_ViewWindow(theDesktop, this);\r
-  initView( view );\r
-  return view;\r
-}\r
+#include "SOCC_ViewModel.h"
+
+#include "SOCC_Prs.h"
+#include "SOCC_ViewWindow.h"
+
+#include "SUIT_Session.h"
+#include "SUIT_Application.h"
+
+//#include "ToolsGUI.h"
+
+// Temporarily commented to avoid awful dependecy on SALOMEDS
+// TODO: better mechanism of storing display/erse status in a study
+// should be provided...
+//#include <SALOMEconfig.h>
+//#include CORBA_CLIENT_HEADER(SALOMEDS)
+
+#include <AIS_ListIteratorOfListOfInteractive.hxx>
+#include <Visual3d_View.hxx>
+
+#include <SALOME_AISShape.hxx>
+#include <SALOME_AISObject.hxx>
+
+// Temporarily commented to avoid awful dependecy on SALOMEDS
+// TODO: better mechanism of storing display/erse status in a study
+// should be provided...
+//#include <Utils_ORB_INIT.hxx>
+//#include <Utils_SINGLETON.hxx>
+//#include <SALOME_ModuleCatalog_impl.hxx>
+//#include <SALOME_NamingService.hxx>
+
+//#include "SALOMEDSClient.hxx"
+//#include "SALOMEDS_StudyManager.hxx"
+
+#include <AIS_TypeOfIso.hxx>
+
+// in order NOT TO link with SalomeApp, here the code returns SALOMEDS_Study.
+// SalomeApp_Study::studyDS() does it as well, but -- here it is retrieved from 
+// SALOMEDS::StudyManager - no linkage with SalomeApp. 
+
+// Temporarily commented to avoid awful dependecy on SALOMEDS
+// TODO: better mechanism of storing display/erse status in a study
+// should be provided...
+//static _PTR(Study) getStudyDS() 
+//{
+//  SALOMEDSClient_Study* aStudy = NULL;
+//  _PTR(StudyManager) aMgr( new SALOMEDS_StudyManager() );
+
+  // get id of SUIT_Study, if it's a SalomeApp_Study, it will return
+  //    id of its underlying SALOMEDS::Study
+//  SUIT_Application* app = SUIT_Session::session()->activeApplication();
+//  if ( !app )  return _PTR(Study)(aStudy);
+//  SUIT_Study* stud = app->activeStudy();
+//  if ( !stud ) return _PTR(Study)(aStudy);  
+//  const int id = stud->id(); // virtual method, must return SALOMEDS_Study id
+  // get SALOMEDS_Study with this id from StudyMgr
+//  return aMgr->GetStudyByID( id );
+//}
+
+/*!
+  Constructor
+  \param DisplayTrihedron - is trihedron displayed
+*/
+SOCC_Viewer::SOCC_Viewer( bool DisplayTrihedron )
+: OCCViewer_Viewer( DisplayTrihedron )
+{
+}
+
+/*!
+  Destructor
+*/
+SOCC_Viewer::~SOCC_Viewer()
+{
+}
+
+/*!
+  Hilights/unhilights object in viewer
+  \param obj - object to be updated
+  \param hilight - if it is true, object will be hilighted, otherwise it will be unhilighted
+  \param update - update current viewer
+*/
+bool SOCC_Viewer::highlight( const Handle(SALOME_InteractiveObject)& obj,
+                             bool hilight, bool upd )
+{
+  bool isInLocal = getAISContext()->HasOpenedContext();
+  //SUIT_Study* ActiveStudy = SUIT_Application::getDesktop()->getActiveStudy();
+  //SALOME_Selection* Sel = SALOME_Selection::Selection( ActiveStudy->getSelection() );
+
+  AIS_ListOfInteractive List;
+  getAISContext()->DisplayedObjects(List);
+  
+  AIS_ListIteratorOfListOfInteractive ite(List);
+  for ( ; ite.More(); ite.Next() )
+  {
+    Handle(SALOME_InteractiveObject) anObj =
+      Handle(SALOME_InteractiveObject)::DownCast( ite.Value()->GetOwner() );
+
+    if ( !anObj.IsNull() && anObj->hasEntry() && anObj->isSame( obj ) )
+    {
+      if ( !isInLocal )
+          OCCViewer_Viewer::highlight( ite.Value(), hilight, false );
+      // highlight subshapes only when local selection is active
+      else
+      {
+        /*if ( ite.Value()->IsKind( STANDARD_TYPE( SALOME_AISShape ) ) )
+        {
+          Handle(SALOME_AISShape) aSh = Handle(SALOME_AISShape)::DownCast( ite.Value() );
+          TColStd_IndexedMapOfInteger MapIndex;
+          Sel->GetIndex( IObject, MapIndex );
+          aSh->highlightSubShapes( MapIndex, highlight );
+        }*/
+      }
+      break;
+    }
+  }
+    
+  if( upd )
+    update();
+    
+  return false;
+}
+
+/*!
+  \return true if object is in viewer or in collector
+  \param obj - object to be checked
+  \param onlyInViewer - search object only in viewer (so object must be displayed)
+*/
+bool SOCC_Viewer::isInViewer( const Handle(SALOME_InteractiveObject)& obj,
+                              bool onlyInViewer )
+{
+  AIS_ListOfInteractive List;
+  getAISContext()->DisplayedObjects(List);
+
+  if( !onlyInViewer ) {
+    AIS_ListOfInteractive List1;
+    getAISContext()->ObjectsInCollector(List1);
+    List.Append(List1);
+  }
+
+  AIS_ListIteratorOfListOfInteractive ite(List);
+  for ( ; ite.More(); ite.Next() )
+  {
+    Handle(SALOME_InteractiveObject) anObj =
+        Handle(SALOME_InteractiveObject)::DownCast( ite.Value()->GetOwner() );
+
+    if ( !anObj.IsNull() && anObj->hasEntry() && anObj->isSame( obj ) )
+      return true;
+  }
+  return false;
+}
+
+/*!
+  \return true if object is displayed in viewer
+  \param obj - object to be checked
+*/
+bool SOCC_Viewer::isVisible( const Handle(SALOME_InteractiveObject)& obj )
+{
+  AIS_ListOfInteractive List;
+  getAISContext()->DisplayedObjects( List );
+
+  AIS_ListIteratorOfListOfInteractive ite( List );
+  for ( ; ite.More(); ite.Next() )
+  {
+    Handle(SALOME_InteractiveObject) anObj =
+      Handle(SALOME_InteractiveObject)::DownCast( ite.Value()->GetOwner() );
+
+    if ( !anObj.IsNull() && anObj->hasEntry() && anObj->isSame( obj ) )
+      return getAISContext()->IsDisplayed( ite.Value() );
+  }
+  
+  return false;
+}
+
+/*!
+  Sets color of object
+  \param obj - object to be updated
+  \param color - new color
+  \param update - update current viewer
+*/
+void SOCC_Viewer::setColor( const Handle(SALOME_InteractiveObject)& obj,
+                            const QColor& color, bool update )
+{
+  AIS_ListOfInteractive List;
+  getAISContext()->DisplayedObjects(List);
+  
+  AIS_ListIteratorOfListOfInteractive ite(List);
+  for ( ; ite.More(); ite.Next() )
+  {
+    Handle(SALOME_InteractiveObject) anObj =
+        Handle(SALOME_InteractiveObject)::DownCast( ite.Value()->GetOwner() );
+
+    if ( !anObj.IsNull() && anObj->hasEntry() && anObj->isSame( obj ) )
+    {
+      OCCViewer_Viewer::setColor( ite.Value(), color, update );
+      return;
+    }
+  }
+}
+
+/*!
+  Changes display mode of object
+  \param obj - object to be processed
+  \param mode - new display mode
+  \param update - update current viewer
+*/
+void SOCC_Viewer::switchRepresentation( const Handle(SALOME_InteractiveObject)& obj,
+                                        int mode, bool update )
+{
+  AIS_ListOfInteractive List;
+  getAISContext()->DisplayedObjects(List);
+  
+  AIS_ListIteratorOfListOfInteractive ite(List);
+  for ( ; ite.More(); ite.Next() )
+  {
+    Handle(SALOME_InteractiveObject) anObj =
+        Handle(SALOME_InteractiveObject)::DownCast( ite.Value()->GetOwner() );
+
+    if ( !anObj.IsNull() && anObj->hasEntry() && anObj->isSame( obj ) )
+    {
+      OCCViewer_Viewer::switchRepresentation( ite.Value(), mode, update );
+      return;
+    }
+  }
+}
+
+/*!
+  Changes transparency of object
+  \param obj - object to be processed
+  \param trans - new transparency
+  \param update - update current viewer
+*/
+void SOCC_Viewer::setTransparency( const Handle(SALOME_InteractiveObject)& obj,
+                                   float trans, bool update )
+{
+  AIS_ListOfInteractive List;
+  getAISContext()->DisplayedObjects( List );
+  
+  AIS_ListIteratorOfListOfInteractive ite( List );
+  for ( ; ite.More(); ite.Next() )
+  {
+    Handle(SALOME_InteractiveObject) anObj =
+        Handle(SALOME_InteractiveObject)::DownCast( ite.Value()->GetOwner() );
+
+    if ( !anObj.IsNull() && anObj->hasEntry() && anObj->isSame( obj ) )
+    {
+      OCCViewer_Viewer::setTransparency( ite.Value(), trans, update );
+      return;
+    }
+  }
+}
+
+/*!
+  Changes name of object
+  \param obj - object to be renamed
+  \param name - new name
+*/
+void SOCC_Viewer::rename( const Handle(SALOME_InteractiveObject)& obj,
+                          const QString& name )
+{
+  AIS_ListOfInteractive List;
+  getAISContext()->DisplayedObjects(List);
+  
+  AIS_ListIteratorOfListOfInteractive ite(List);
+  while (ite.More())
+  {
+    if (ite.Value()->IsKind(STANDARD_TYPE(SALOME_AISShape)))
+    {
+      Handle(SALOME_AISShape) aSh = Handle(SALOME_AISShape)::DownCast(ite.Value());
+      
+      if ( aSh->hasIO() )
+      {
+        Handle(SALOME_InteractiveObject) IO = aSh->getIO();
+        if ( IO->isSame( obj ) )
+        {
+          aSh->setName( (char*)name.latin1() );
+          break;
+        }
+      }
+    }
+    else if ( ite.Value()->IsKind( STANDARD_TYPE( SALOME_AISObject ) ) )
+    {
+      Handle(SALOME_AISObject) aSh = Handle(SALOME_AISObject)::DownCast( ite.Value() );
+
+      // Add code here, if someone create a MODULE_AISObject.
+    }
+    ite.Next();
+  }
+}
+
+
+/*!
+  Display presentation
+  \param prs - presentation
+*/
+void SOCC_Viewer::Display( const SALOME_OCCPrs* prs )
+{
+  // try do downcast object
+  const SOCC_Prs* anOCCPrs = dynamic_cast<const SOCC_Prs*>( prs );
+  if ( !anOCCPrs || anOCCPrs->IsNull() )
+    return;
+
+  // get SALOMEDS Study
+  // Temporarily commented to avoid awful dependecy on SALOMEDS
+  // TODO: better mechanism of storing display/erse status in a study
+  // should be provided...
+  //  _PTR(Study) study(getStudyDS());
+
+  // get context
+  Handle (AIS_InteractiveContext) ic = getAISContext();
+
+  // get all displayed objects
+  AIS_ListOfInteractive List;
+  ic->DisplayedObjects( List );
+  // get objects in the collector
+  AIS_ListOfInteractive ListCollector;
+  ic->ObjectsInCollector( ListCollector );
+
+  // get objects to be displayed
+  AIS_ListOfInteractive anAISObjects;
+  anOCCPrs->GetObjects( anAISObjects );
+
+  AIS_ListIteratorOfListOfInteractive aIter( anAISObjects );
+  for ( ; aIter.More(); aIter.Next() )
+  {
+    Handle(AIS_InteractiveObject) anAIS = aIter.Value();
+    if ( !anAIS.IsNull() )
+    {
+      // try to find presentation in the viewer
+      bool bDisplayed = false;
+      AIS_ListIteratorOfListOfInteractive ite( List );
+      for ( ; ite.More(); ite.Next() )
+      {
+        // compare presentations by handles
+        // if the object is already displayed - nothing to do more
+        if ( ite.Value() == anAIS )
+        {
+          // Deactivate object if necessary
+          if ( !anOCCPrs->ToActivate() )
+            ic->Deactivate( anAIS );
+          bDisplayed = true;
+          break;
+        }
+      }
+
+      if ( bDisplayed )
+        continue;
+
+      // then try to find presentation in the collector
+      bDisplayed = false;
+      ite.Initialize( ListCollector );
+      for ( ; ite.More(); ite.Next() )
+      {
+        // compare presentations by handles
+        // if the object is in collector - display it
+        if ( ite.Value() == anAIS )
+        {
+          ic->DisplayFromCollector( anAIS, false );
+
+          // Deactivate object if necessary
+          if ( !anOCCPrs->ToActivate() )
+            ic->Deactivate( anAIS );
+          bDisplayed = true;
+
+          // Set visibility flag
+         // Temporarily commented to avoid awful dependecy on SALOMEDS
+         // TODO: better mechanism of storing display/erse status in a study
+         // should be provided...
+         //Handle(SALOME_InteractiveObject) anObj =
+          //  Handle(SALOME_InteractiveObject)::DownCast( anAIS->GetOwner() );
+          //if ( !anObj.IsNull() && anObj->hasEntry() )
+          //{
+         //  if ( study )
+         //    ToolsGUI::SetVisibility( study, anObj->getEntry(), true, this );
+         //}
+          break;
+        }
+      }
+      if ( bDisplayed )
+        continue;
+
+      // if object is not displayed and not found in the collector - display it
+      if ( anAIS->IsKind( STANDARD_TYPE(AIS_Trihedron) ) )
+      {
+        Handle(AIS_Trihedron) aTrh = Handle(AIS_Trihedron)::DownCast( anAIS );
+        double aNewSize = 100, aSize = 100;
+        getTrihedronSize( aNewSize, aSize );
+        aTrh->SetSize( aTrh == getTrihedron() ? aNewSize : 0.5 * aNewSize );
+      }
+
+      ic->Display( anAIS, false );
+
+      // Set visibility flag
+      // Temporarily commented to avoid awful dependecy on SALOMEDS
+      // TODO: better mechanism of storing display/erse status in a study
+      // should be provided...
+      //Handle(SALOME_InteractiveObject) anObj =
+      //  Handle(SALOME_InteractiveObject)::DownCast( anAIS->GetOwner() );
+      //if ( !anObj.IsNull() && anObj->hasEntry() )
+      //{
+      //  if ( study  )
+      //    ToolsGUI::SetVisibility( study, anObj->getEntry(), true, this );
+      //}
+
+      // Deactivate object if necessary
+      if ( !anOCCPrs->ToActivate() )
+        ic->Deactivate( anAIS );
+    }
+  }
+}
+
+
+/*!
+  Erase presentation
+  \param prs - presentation
+  \param forced - removes object from context
+*/
+void SOCC_Viewer::Erase( const SALOME_OCCPrs* prs, const bool forced )
+{
+  // try do downcast object
+  const SOCC_Prs* anOCCPrs = dynamic_cast<const SOCC_Prs*>( prs );
+  if ( !anOCCPrs || anOCCPrs->IsNull() )
+    return;
+
+  // get SALOMEDS Study
+  // Temporarily commented to avoid awful dependecy on SALOMEDS
+  // TODO: better mechanism of storing display/erse status in a study
+  // should be provided...
+  //  _PTR(Study) study(getStudyDS());
+
+  // get context
+  Handle(AIS_InteractiveContext) ic = getAISContext();
+
+  // get objects to be erased
+  AIS_ListOfInteractive anAISObjects;
+  anOCCPrs->GetObjects( anAISObjects );
+
+  AIS_ListIteratorOfListOfInteractive aIter( anAISObjects );
+  for ( ; aIter.More(); aIter.Next() ) {
+    Handle(AIS_InteractiveObject) anAIS = aIter.Value();
+    if ( !anAIS.IsNull() ) {
+      // erase the object from context : move it to collector
+      ic->Erase( anAIS, false, forced ? false : true );
+
+      // Set visibility flag if necessary
+      // Temporarily commented to avoid awful dependecy on SALOMEDS
+      // TODO: better mechanism of storing display/erse status in a study
+      // should be provided...
+      //if ( !forced )
+      //{
+      //  Handle(SALOME_InteractiveObject) anObj =
+      //    Handle(SALOME_InteractiveObject)::DownCast( anAIS->GetOwner() );
+      //  if ( !anObj.IsNull() && anObj->hasEntry() )
+      //  {
+      //  if ( study )
+      //    ToolsGUI::SetVisibility( study, anObj->getEntry(), true, this );
+      //  }
+      //}
+    }
+  }
+}
+
+
+/*!
+  Erase all presentations
+  \param forced - removes all objects from context
+*/
+void SOCC_Viewer::EraseAll( const bool forced )
+{
+  // get SALOMEDS Study
+  // Temporarily commented to avoid awful dependecy on SALOMEDS
+  // TODO: better mechanism of storing display/erse status in a study
+  // should be provided...
+  //  _PTR(Study) study(getStudyDS());
+
+  // get context
+  Handle(AIS_InteractiveContext) ic = getAISContext();
+
+  // check if trihedron is displayed
+  Standard_Boolean isTrihedronDisplayed = ic->IsDisplayed( getTrihedron() );
+
+  // get objects to be erased (all currently displayed objects)
+  AIS_ListOfInteractive aList;
+  ic->DisplayedObjects( aList );
+  AIS_ListIteratorOfListOfInteractive anIter( aList );
+  for ( ; anIter.More(); anIter.Next() ) {
+    if ( isTrihedronDisplayed && anIter.Value()->DynamicType() == STANDARD_TYPE( AIS_Trihedron ) )
+      continue;
+
+    // erase an object
+    Handle(AIS_InteractiveObject) anIO = anIter.Value();
+    ic->Erase( anIO, false, forced ? false : true );
+    
+    // Set visibility flag if necessary
+    // Temporarily commented to avoid awful dependecy on SALOMEDS
+    // TODO: better mechanism of storing display/erse status in a study
+    // should be provided...
+    //if ( !forced ) {
+    //  Handle(SALOME_InteractiveObject) anObj =
+    // Handle(SALOME_InteractiveObject)::DownCast( anIO->GetOwner() );
+
+    //  if ( !anObj.IsNull() && anObj->hasEntry() ) {
+    // if ( study )
+    //   ToolsGUI::SetVisibility( study, anObj->getEntry(), true, this );
+    //  }
+    //}
+  }
+
+  // display trihedron if necessary
+  if ( isTrihedronDisplayed )
+    getAISContext()->Display( getTrihedron() );
+  else
+    Repaint();
+}
+
+/*!
+  Create presentation corresponding to the entry
+  \param entry - entry
+*/
+SALOME_Prs* SOCC_Viewer::CreatePrs( const char* entry )
+{
+  SOCC_Prs* prs = new SOCC_Prs();
+  if ( entry )
+  {
+    // get context
+    Handle(AIS_InteractiveContext) ic = getAISContext();
+
+    // get displayed objects
+    AIS_ListOfInteractive List;
+    ic->DisplayedObjects( List );
+    // get objects in the collector
+    AIS_ListOfInteractive ListCollector;
+    ic->ObjectsInCollector( ListCollector );
+    List.Append( ListCollector );
+
+    AIS_ListIteratorOfListOfInteractive ite( List );
+    for ( ; ite.More(); ite.Next() )
+    {
+      Handle(SALOME_InteractiveObject) anObj =
+        Handle(SALOME_InteractiveObject)::DownCast( ite.Value()->GetOwner() );
+
+      if ( !anObj.IsNull() && anObj->hasEntry() && strcmp( anObj->getEntry(), entry ) == 0 )
+        prs->AddObject( ite.Value() );
+    }
+  }
+  return prs;
+}
+
+/*!
+  Activates selection of sub shapes
+*/
+void SOCC_Viewer::LocalSelection( const SALOME_OCCPrs* thePrs, const int theMode )
+{
+  Handle(AIS_InteractiveContext) ic = getAISContext();
+  
+  const SOCC_Prs* anOCCPrs = dynamic_cast<const SOCC_Prs*>( thePrs );
+  if ( ic.IsNull() )
+    return;
+  
+  // Open local context if there is no one
+  bool allObjects = thePrs == 0 || thePrs->IsNull();
+  if ( !ic->HasOpenedContext() ) {
+    ic->ClearCurrents( false );
+    ic->OpenLocalContext( allObjects, true, true );
+  }
+
+  AIS_ListOfInteractive anObjs;
+  // Get objects to be activated
+  if ( allObjects ) 
+    ic->DisplayedObjects( anObjs );
+  else
+    anOCCPrs->GetObjects( anObjs );
+
+  // Activate selection of objects from prs
+  AIS_ListIteratorOfListOfInteractive aIter( anObjs );
+  for ( ; aIter.More(); aIter.Next() ) {
+    Handle(AIS_InteractiveObject) anAIS = aIter.Value();
+    if ( !anAIS.IsNull() )
+    {
+      if ( anAIS->IsKind( STANDARD_TYPE( AIS_Shape ) ) )
+      {
+        ic->Load( anAIS, -1, false );
+        ic->Activate( anAIS, AIS_Shape::SelectionMode( (TopAbs_ShapeEnum)theMode ) );
+      }
+      else if ( anAIS->DynamicType() != STANDARD_TYPE(AIS_Trihedron) )
+      {
+        ic->Load( anAIS, -1, false );
+        ic->Activate( anAIS, theMode );
+      }
+    }
+  }
+}
+
+/*!
+  Deactivates selection of sub shapes
+*/
+void SOCC_Viewer::GlobalSelection( const bool update ) const
+{
+  Handle(AIS_InteractiveContext) ic = getAISContext();
+  if ( !ic.IsNull() )
+  {
+    ic->CloseAllContexts( false );
+    if ( update )
+      ic->CurrentViewer()->Redraw();
+  }
+}
+
+/*!
+  Auxiliary method called before displaying of objects
+*/
+void  SOCC_Viewer::BeforeDisplay( SALOME_Displayer* d )
+{
+  d->BeforeDisplay( this, SALOME_OCCViewType() );
+}
+
+/*!
+  Auxiliary method called after displaying of objects
+*/
+void SOCC_Viewer::AfterDisplay( SALOME_Displayer* d )
+{
+  d->AfterDisplay( this, SALOME_OCCViewType() );
+}
+
+/*!
+  Get new and current trihedron size corresponding to the current model size
+*/
+bool SOCC_Viewer::getTrihedronSize( double& theNewSize, double& theSize )
+{
+  theNewSize = 100;
+  theSize = 100;
+
+  //SRN: BUG IPAL8996, a usage of method ActiveView without an initialization
+  Handle(V3d_Viewer) viewer = getViewer3d();
+  viewer->InitActiveViews();
+  if(!viewer->MoreActiveViews()) return false;
+
+  Handle(V3d_View) view3d = viewer->ActiveView();
+  //SRN: END of fix
+
+  if ( view3d.IsNull() )
+    return false;
+
+  double Xmin = 0, Ymin = 0, Zmin = 0, Xmax = 0, Ymax = 0, Zmax = 0;
+  double aMaxSide;
+
+  view3d->View()->MinMaxValues( Xmin, Ymin, Zmin, Xmax, Ymax, Zmax );
+
+  if ( Xmin == RealFirst() || Ymin == RealFirst() || Zmin == RealFirst() ||
+       Xmax == RealLast()  || Ymax == RealLast()  || Zmax == RealLast() )
+    return false;
+
+  aMaxSide = Xmax - Xmin;
+  if ( aMaxSide < Ymax -Ymin ) aMaxSide = Ymax -Ymin;
+  if ( aMaxSide < Zmax -Zmin ) aMaxSide = Zmax -Zmin;
+
+  float aSizeInPercents = SUIT_Session::session()->resourceMgr()->doubleValue("Viewer","TrihedronSize", 105.);
+
+  static float EPS = 5.0E-3;
+  theSize = getTrihedron()->Size();
+  theNewSize = aMaxSide*aSizeInPercents / 100.0;
+
+  return fabs( theNewSize - theSize ) > theSize * EPS ||
+         fabs( theNewSize - theSize) > theNewSize * EPS;
+}
+
+
+/*!
+  Updates current viewer
+*/
+void SOCC_Viewer::Repaint()
+{
+//  onAdjustTrihedron();
+  getViewer3d()->Update();
+}
+
+
+/*!
+  create SOCC_ViewWindow
+*/
+SUIT_ViewWindow* SOCC_Viewer::createView( SUIT_Desktop* theDesktop )
+{
+  SOCC_ViewWindow* view = new SOCC_ViewWindow(theDesktop, this);
+  initView( view );
+  return view;
+}
index ce28624a01bd9e13fb603a0df7e48b483ac50535..444b6ef74fd58b817b83025d0baa82435da34e84 100644 (file)
@@ -22,7 +22,9 @@
 
 #include "SUIT_Accel.h"
 
-//----------------------------------------------------------------------------
+/*!
+  Constructor
+*/
 SOCC_ViewWindow
 ::SOCC_ViewWindow( SUIT_Desktop* theDesktop, 
                   OCCViewer_Viewer* theModel)
@@ -30,14 +32,19 @@ SOCC_ViewWindow
 {
 }
 
-//----------------------------------------------------------------------------
+/*!
+  Destructor
+*/
 SOCC_ViewWindow
 ::~SOCC_ViewWindow()
 {
 }
 
-//----------------------------------------------------------------------------
-void 
+/*!
+  Performs action
+  \param theAction - type of action
+*/
+bool 
 SOCC_ViewWindow
 ::action( const int theAction  )
 {
@@ -91,5 +98,6 @@ SOCC_ViewWindow
     myViewPort->rotate( cx, cy + inc );
     myViewPort->endRotation();
     break;
-  } 
+  }
+  return true;
 }
index 7b4f225514620f18b7a8c1b89ef11b41f281fe22..413ee469de8e116cf9d83f7d1a441cd56957e7e8 100644 (file)
@@ -35,7 +35,7 @@ public:
   virtual ~SOCC_ViewWindow();
   
 protected:
-  virtual void      action( const int );
+  virtual bool      action( const int );
 
 };
 
index 44334e80b2d513310d0044530ae3aaa4c063d9ac..cf3f8c9fd5c9ea4e3cb8e829e8396d5b9e274836 100644 (file)
@@ -1,3 +1,21 @@
+#  Copyright (C) 2005  CEA/DEN, EDF R&D, OPEN CASCADE, PRINCIPIA R&D
+#
+#  This library is free software; you can redistribute it and/or
+#  modify it under the terms of the GNU Lesser General Public
+#  License as published by the Free Software Foundation; either
+#  version 2.1 of the License.
+#
+#  This library is distributed in the hope that it will be useful,
+#  but WITHOUT ANY WARRANTY; without even the implied warranty of
+#  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+#  Lesser General Public License for more details.
+#
+#  You should have received a copy of the GNU Lesser General Public
+#  License along with this library; if not, write to the Free Software
+#  Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307 USA
+#
+#  See http://www.salome-platform.org/
+#
 # source path
 top_srcdir=@top_srcdir@
 top_builddir=../..
@@ -27,18 +45,6 @@ LIB_SRC =      \
 LIB_MOC = \
           SPlot2d_ViewModel.h
 
-#LIB_CLIENT_IDL = SALOMEDS.idl \
-#               SALOME_Exception.idl \
-#               SALOME_GenericObj.idl
-
-#LIB_CLIENT_IDL = SALOMEDS.idl \
-#               SALOME_ModuleCatalog.idl \
-#               SALOME_Component.idl \
-#               SALOME_ContainerManager.idl \
-#               SALOME_Exception.idl \
-#               SALOME_GenericObj.idl
-
-#CPPFLAGS+=$(QT_INCLUDES) $(OCC_INCLUDES) $(OGL_INCLUDES) $(PYTHON_INCLUDES) $(QWT_INCLUDES) $(BOOST_CPPFLAGS) -I$(KERNEL_ROOT_DIR)/include/salome
 CPPFLAGS+=$(QT_INCLUDES) $(OCC_INCLUDES) $(QWT_INCLUDES) $(BOOST_CPPFLAGS)
 LDFLAGS+=$(QT_MT_LIBS) $(QWT_LIBS) -lsuit -lPlot2d -lSalomePrs
 
index e6b2c5b8312a784c16f156332a27460e5fe0eb2c..caca33aaf9014be8d27d9cc77c695e9409676c28 100644 (file)
@@ -77,36 +77,59 @@ SPlot2d_Curve& SPlot2d_Curve::operator=( const SPlot2d_Curve& curve )
   return *this;
 }
 
+/*!
+  \return corresponding SALOME_InteractiveObject
+*/
 Handle(SALOME_InteractiveObject) SPlot2d_Curve::getIO() const
 {
   return myIO;
 }
 
+/*!
+  Sets corresponding SALOME_InteractiveObject
+  \param io - SALOME_InteractiveObject
+*/
 void SPlot2d_Curve::setIO( const Handle(SALOME_InteractiveObject)& io )
 {
   myIO = io;
 }
 
+/*!
+  \return true if curve has table interactive object
+*/
 bool SPlot2d_Curve::hasTableIO() const
 {
   return !myTableIO.IsNull();
 }
 
+/*!
+  \return table interactive object of curve
+*/
 Handle(SALOME_InteractiveObject) SPlot2d_Curve::getTableIO() const
 {
   return myTableIO;
 }
 
+/*!
+  Sets table interactive object of curve
+  \param io - SALOME_InteractiveObject
+*/
 void SPlot2d_Curve::setTableIO( const Handle(SALOME_InteractiveObject)& io )
 {
   myTableIO = io;
 }
 
+/*!
+  \return SALOME_InteractiveObject
+*/
 bool SPlot2d_Curve::hasIO() const
 {
   return !myIO.IsNull();
 }
 
+/*!
+  \return table title
+*/
 QString SPlot2d_Curve::getTableTitle() const
 {
   QString title;
index 38756328ce51816a32a416e139e0c9c3f7915a2b..ce54a8bfb3556ecec9a0eff254b497a2b17f442c 100644 (file)
 using namespace std;
 #endif
 
-//==========================================================
 /*!
- *  SPlot2d_Prs::SPlot2d_Prs
- *  Default constructor
- */
-//==========================================================
+ Default constructor
+*/
 SPlot2d_Prs::SPlot2d_Prs()
 :Plot2d_Prs()  
 {
 }
 
-//==========================================================
 /*!
- *  SPlot2d_Prs::SPlot2d_Prs
- *  Standard constructor
- */
-//==========================================================
+ Standard constructor
+*/
 SPlot2d_Prs::SPlot2d_Prs( const Plot2d_Curve* obj )
 :Plot2d_Prs(obj)
 { 
 }
 
+/*!
+ Standard constructor
+*/
 SPlot2d_Prs::SPlot2d_Prs( const Plot2d_Prs* prs )
 {
   mySecondY = prs->isSecondY();
   myCurves = prs->getCurves();
 }
 
-//==========================================================
 /*!
- *  SPlot2d_Prs::~SPlot2d_Prs
- *  Destructor
- */
-//==========================================================
+ Destructor
+*/
 SPlot2d_Prs::~SPlot2d_Prs()
 { 
 }
index 554927ff59508645b8213cf08bc822516c7d45f4..14b9b2c6fffecd1361df65e2b10691d4c1d6506a 100644 (file)
@@ -63,10 +63,6 @@ using namespace std;
   return aMgr->GetStudyByID( id );
 } */               
 
-//=================================================================================
-// SPlot2d_Viewer implementation
-//=================================================================================
-
 /*!
   Constructor
 */
@@ -110,6 +106,11 @@ void SPlot2d_Viewer::rename( const Handle(SALOME_InteractiveObject)& IObject,
   aViewFrame->updateTitles();
 }
 
+/*!
+  Renames all copies of object in all view windows
+  \param IObj - object to be renamed
+  \param name - new name
+*/
 void SPlot2d_Viewer::renameAll( const Handle(SALOME_InteractiveObject)& IObj, const QString& name )
 {
   SUIT_ViewManager* vm = getViewManager();
@@ -232,12 +233,9 @@ void SPlot2d_Viewer::Repaint()
   if(aViewFrame) aViewFrame->Repaint();
 }
 
-//==========================================================
 /*!
- *  SPlot2d_Viewer::Display
- *  Display presentation
- */
-//==========================================================
+  Display presentation
+*/
 void SPlot2d_Viewer::Display( const SALOME_Prs2d* prs )
 {
   Plot2d_ViewFrame* aViewFrame = getActiveViewFrame();
@@ -245,12 +243,9 @@ void SPlot2d_Viewer::Display( const SALOME_Prs2d* prs )
   if(aViewFrame && aPrs) aViewFrame->Display(aPrs);
 }
 
-//==========================================================
 /*!
- *  SPlot2d_Viewer::Erase
- *  Erase presentation
- */
-//==========================================================
+  Erase presentation
+*/
 void SPlot2d_Viewer::Erase( const SALOME_Prs2d* prs, const bool )
 {
   Plot2d_ViewFrame* aViewFrame = getActiveViewFrame();
@@ -258,12 +253,9 @@ void SPlot2d_Viewer::Erase( const SALOME_Prs2d* prs, const bool )
   if(aViewFrame && aPrs) aViewFrame->Erase(aPrs);
 }
   
-//==========================================================
 /*!
- *  SPlot2d_Viewer::CreatePrs
- *  Create presentation by entry
- */
-//==========================================================
+  Create presentation by entry
+*/
 SALOME_Prs* SPlot2d_Viewer::CreatePrs( const char* entry )
 {
   Plot2d_ViewFrame* aViewFrame = getActiveViewFrame();
@@ -277,23 +269,17 @@ SALOME_Prs* SPlot2d_Viewer::CreatePrs( const char* entry )
   return NULL;
 }
 
-//==========================================================
 /*!
- *  SPlot2d_Viewer::BeforeDisplay
- *  Axiluary method called before displaying of objects
- */
-//==========================================================
+  Axiluary method called before displaying of objects
+*/
 void  SPlot2d_Viewer::BeforeDisplay( SALOME_Displayer* d )
 {
   d->BeforeDisplay( this, SALOME_Plot2dViewType() );
 }
 
-//==========================================================
 /*!
- *  SPlot2d_Viewer::AfterDisplay
- *  Axiluary method called after displaying of objects
- */
-//==========================================================
+  Axiluary method called after displaying of objects
+*/
 void  SPlot2d_Viewer::AfterDisplay( SALOME_Displayer* d )
 {
   d->AfterDisplay( this, SALOME_Plot2dViewType() );
@@ -331,12 +317,9 @@ Handle(SALOME_InteractiveObject) SPlot2d_Viewer::FindIObject( const char* Entry
   return anIO;
 }
 
-//==========================================================
 /*!
- *  SPlot2d_Viewer::getActiveViewFrame
- *  Returns an active Plot2d ViewFrame or NULL
- */
-//==========================================================
+  Returns an active Plot2d ViewFrame or NULL
+*/
 Plot2d_ViewFrame* SPlot2d_Viewer::getActiveViewFrame()
 {
   SUIT_ViewManager* aViewMgr = getViewManager();
@@ -349,6 +332,11 @@ Plot2d_ViewFrame* SPlot2d_Viewer::getActiveViewFrame()
   return NULL;
 }
 
+/*!
+  \return curve by object and viewframe
+  \param theIObject - object
+  \param fr - viewframe
+*/
 SPlot2d_Curve* SPlot2d_Viewer::getCurveByIO( const Handle(SALOME_InteractiveObject)& theIObject,
                                             Plot2d_ViewFrame* fr )
 {
@@ -368,6 +356,9 @@ SPlot2d_Curve* SPlot2d_Viewer::getCurveByIO( const Handle(SALOME_InteractiveObje
   return NULL;
 }
 
+/*!
+  SLOT: called when action "Clone view" is activated
+*/
 void SPlot2d_Viewer::onCloneView( Plot2d_ViewFrame* clonedVF, Plot2d_ViewFrame* newVF )
 {
   if( !clonedVF || !newVF )
index 0653ee8884773d65a5baa7a86484a0b5d99a7ad1..b68ec7b3d1d69c39e2d98fc6d01b849f18f48105 100644 (file)
@@ -1,3 +1,21 @@
+#  Copyright (C) 2005  CEA/DEN, EDF R&D, OPEN CASCADE, PRINCIPIA R&D
+#
+#  This library is free software; you can redistribute it and/or
+#  modify it under the terms of the GNU Lesser General Public
+#  License as published by the Free Software Foundation; either
+#  version 2.1 of the License.
+#
+#  This library is distributed in the hope that it will be useful,
+#  but WITHOUT ANY WARRANTY; without even the implied warranty of
+#  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+#  Lesser General Public License for more details.
+#
+#  You should have received a copy of the GNU Lesser General Public
+#  License along with this library; if not, write to the Free Software
+#  Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307 USA
+#
+#  See http://www.salome-platform.org/
+#
 # This is a Qt message file in .po format.  Each msgid starts with
 # a scope.  This scope should *NOT* be translated - eg. translating
 # from French to English, "Foo::Bar" would be translated to "Pub",
index 7bcec25613c5698e4b25cfedf1b80d20e6ed282a..5ad7fa383a4c4a2c2d2d96ea80dc40d0360f525d 100755 (executable)
@@ -1,3 +1,21 @@
+#  Copyright (C) 2005  CEA/DEN, EDF R&D, OPEN CASCADE, PRINCIPIA R&D
+#
+#  This library is free software; you can redistribute it and/or
+#  modify it under the terms of the GNU Lesser General Public
+#  License as published by the Free Software Foundation; either
+#  version 2.1 of the License.
+#
+#  This library is distributed in the hope that it will be useful,
+#  but WITHOUT ANY WARRANTY; without even the implied warranty of
+#  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+#  Lesser General Public License for more details.
+#
+#  You should have received a copy of the GNU Lesser General Public
+#  License along with this library; if not, write to the Free Software
+#  Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307 USA
+#
+#  See http://www.salome-platform.org/
+#
 #  File   : Makefile.in
 #  Author : Vladimir Klyachin (OCN)
 #  Module : STD
index 68b7b1a066ea646c32b846fa24a6fbc60340ee63..7c0f33498feb0c5c27a22b8d485fdb70a8f96300 100755 (executable)
@@ -472,8 +472,11 @@ void STD_Application::onSaveDoc()
     if ( !isOk )
     {
       putInfo( "" );
-      SUIT_MessageBox::error1( desktop(), tr( "TIT_FILE_SAVEAS" ),
-                                                tr( "MSG_CANT_SAVE" ).arg( activeStudy()->studyName() ), tr( "BUT_OK" ) );
+      // displaying a message box as SUIT_Validator in case file can't be written (the most frequent case)
+      SUIT_MessageBox::error1( desktop(), 
+                              tr( "ERR_ERROR" ),
+                              tr( "ERR_PERMISSION_DENIED" ).arg( activeStudy()->studyName() ),
+                              tr( "BUT_OK" ) );
     }
     else
       putInfo( tr( "INF_DOC_SAVED" ).arg( "" ) );
@@ -510,7 +513,8 @@ bool STD_Application::onSaveAsDoc()
 
     if ( !isOk )
       SUIT_MessageBox::error1( desktop(), tr( "ERROR" ),
-                             tr( "INF_DOC_SAVING_FAILS" ).arg( aName ), tr( "BUT_OK" ) );
+                              tr( "INF_DOC_SAVING_FAILS" ).arg( aName ), 
+                              tr( "BUT_OK" ) );
   }
 
   studySaved( activeStudy() );
@@ -835,6 +839,10 @@ QString STD_Application::getDirectory( const QString& initial, const QString& ca
   return QFileDialog::getExistingDirectory( initial, parent, 0, caption, true );
 }
 
+/*!
+  Changes desktop
+  \param desk - new desktop
+*/
 void STD_Application::setDesktop( SUIT_Desktop* desk )
 {
   SUIT_Desktop* prev = desktop();
@@ -860,18 +868,30 @@ void STD_Application::savePreferences()
 {
 }
 
+/*!
+  Custom activity after study is created
+  Updates desktop and actions
+*/
 void STD_Application::studyCreated( SUIT_Study* )
 {
   updateDesktopTitle();
   updateCommandsStatus();
 }
 
+/*!
+  Custom activity after study is opened
+  Updates desktop and actions
+*/
 void STD_Application::studyOpened( SUIT_Study* )
 {
   updateDesktopTitle();
   updateCommandsStatus();
 }
 
+/*!
+  Custom activity after study is opened
+  Updates desktop and actions
+*/
 void STD_Application::studySaved( SUIT_Study* )
 {
   updateDesktopTitle();
index a06d8c6c58887321140a8a92da93187d474c1539..bc6017978276f19a82821fa88c7e7cf584e9866b 100644 (file)
@@ -85,12 +85,9 @@ STD_CloseDlg::STD_CloseDlg( QWidget* parent, bool modal, WFlags f )
   connect( m_pb4, SIGNAL( clicked() ), this, SLOT( reject() ) );
 }
 
-//================================================================================
 /*!
  * \brief reaction on clicked(pressed) button
  */
-//================================================================================
-
 void STD_CloseDlg::onButtonClicked()
 {
   QPushButton* btn = ( QPushButton* )sender();
index 08410020cc2a0a552baa8692771d1cd24b9b9db7..f6b15c196b95da04f954bd0bc1f6a6654c67d10e 100755 (executable)
@@ -1,3 +1,21 @@
+#  Copyright (C) 2005  CEA/DEN, EDF R&D, OPEN CASCADE, PRINCIPIA R&D
+#
+#  This library is free software; you can redistribute it and/or
+#  modify it under the terms of the GNU Lesser General Public
+#  License as published by the Free Software Foundation; either
+#  version 2.1 of the License.
+#
+#  This library is distributed in the hope that it will be useful,
+#  but WITHOUT ANY WARRANTY; without even the implied warranty of
+#  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+#  Lesser General Public License for more details.
+#
+#  You should have received a copy of the GNU Lesser General Public
+#  License along with this library; if not, write to the Free Software
+#  Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307 USA
+#
+#  See http://www.salome-platform.org/
+#
 # This is a Qt message file in .po format.  Each msgid starts with
 # a scope.  This scope should *NOT* be translated - eg. "Foo::Bar"
 # would be translated to "Pub", not "Foo::Pub".
index 2c5d9fd37858b8f4f920e5bfea134f9b65762f2e..d5605763bbb917c5aacfd958facc3b1bdc7dc39c 100755 (executable)
@@ -1,3 +1,21 @@
+#  Copyright (C) 2005  CEA/DEN, EDF R&D, OPEN CASCADE, PRINCIPIA R&D
+#
+#  This library is free software; you can redistribute it and/or
+#  modify it under the terms of the GNU Lesser General Public
+#  License as published by the Free Software Foundation; either
+#  version 2.1 of the License.
+#
+#  This library is distributed in the hope that it will be useful,
+#  but WITHOUT ANY WARRANTY; without even the implied warranty of
+#  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+#  Lesser General Public License for more details.
+#
+#  You should have received a copy of the GNU Lesser General Public
+#  License along with this library; if not, write to the Free Software
+#  Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307 USA
+#
+#  See http://www.salome-platform.org/
+#
 # This is a Qt message file in .po format.  Each msgid starts with
 # a scope.  This scope should *NOT* be translated - eg. "Foo::Bar"
 # would be translated to "Pub", not "Foo::Pub".
@@ -13,25 +31,25 @@ msgid "INF_READY"
 msgstr "Ready"
 
 msgid "BUT_OK"
-msgstr "OK"
+msgstr "&Ok"
 
 msgid "BUT_CANCEL"
-msgstr "Cancel"
+msgstr "&Cancel"
 
 msgid "BUT_CLOSE"
-msgstr "Close"
+msgstr "&Close"
 
 msgid "BUT_HELP"
-msgstr "Help"
+msgstr "&Help"
 
 msgid "BUT_YES"
-msgstr "Yes"
+msgstr "&Yes"
 
 msgid "BUT_NO"
-msgstr "No"
+msgstr "&No"
 
 msgid "BUT_APPLY"
-msgstr "Apply"
+msgstr "&Apply"
 
 msgid "ERR_ERROR"
 msgstr "Error"
@@ -330,7 +348,7 @@ msgid "CLOSE_DLG_SAVE_CLOSE"
 msgstr "&Save&&Close"
 
 msgid "CLOSE_DLG_CLOSE"
-msgstr "&Close w/o saving"
+msgstr "C&lose w/o saving"
 
 msgid "CLOSE_DLG_UNLOAD"
 msgstr "&Unload"
@@ -342,7 +360,7 @@ msgid "PRP_DESK_FILE_LOAD"
 msgstr "Load a document"
 
 msgid "MEN_DESK_FILE_LOAD"
-msgstr "Conn&ect"    
+msgstr "Conn&ect..."    
 
 msgid "CLOSE_DLG_CAPTION"
 msgstr "Close active study"
index a6bab14a7fd9c5d5da28ae290b4f156805148bda..4a366b401d1434d37686a899b0fad6675cfcab07 100755 (executable)
@@ -1,3 +1,21 @@
+#  Copyright (C) 2005  CEA/DEN, EDF R&D, OPEN CASCADE, PRINCIPIA R&D
+#
+#  This library is free software; you can redistribute it and/or
+#  modify it under the terms of the GNU Lesser General Public
+#  License as published by the Free Software Foundation; either
+#  version 2.1 of the License.
+#
+#  This library is distributed in the hope that it will be useful,
+#  but WITHOUT ANY WARRANTY; without even the implied warranty of
+#  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+#  Lesser General Public License for more details.
+#
+#  You should have received a copy of the GNU Lesser General Public
+#  License along with this library; if not, write to the Free Software
+#  Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307 USA
+#
+#  See http://www.salome-platform.org/
+#
 #  File   : Makefile.in
 #  Author : Vladimir Klyachin (OCN)
 #  Module : suit
index 887b98bca581da81dc33aa02b618d1938107a5fb..600ab2ebd2324bd9322ce818b5a7785d2c4baf5b 100644 (file)
@@ -17,8 +17,6 @@
 // See http://www.salome-platform.org/
 //
 // SUIT_Accel.cxx: implementation of the SUIT_Accel class.
-//
-//////////////////////////////////////////////////////////////////////
 
 #include "SUIT_Accel.h"
 #include "SUIT_ViewWindow.h"
@@ -30,9 +28,6 @@
 #include <qnamespace.h>
 
 
-/*!\class SUIT_Accel
- * Class handles keyboard accelerator bindings.
- */
 SUIT_Accel* SUIT_Accel::myself = 0;
 
 /*! Constructor [private].*/
@@ -125,8 +120,7 @@ bool SUIT_Accel::eventFilter( QObject *obj, QEvent *event )
       if ( myMap.contains( type ) ) {
        IdActionMap idActionMap = myMap[type];
        if ( idActionMap.contains( key ) ) {
-         vw->onAccelAction( idActionMap[key] );
-         return true;
+         return vw->onAccelAction( idActionMap[key] );
        }
       }
     }
index ee3e96cf6d3b4b3c3c07d54506fa51562da8a40d..a5bec6b1611d7552dd24d6f284a52c821c9efa9e 100644 (file)
@@ -17,8 +17,6 @@
 // See http://www.salome-platform.org/
 //
 // SUIT_Accel.h: interface for the SUIT_Accel class.
-//
-//////////////////////////////////////////////////////////////////////
 
 #ifndef SUIT_Accel_h 
 #define SUIT_Accel_h
 #include <qstring.h>
 #include <qmap.h>
 
+/*!
+  \class SUIT_Accel
+  Manager of keyboard accelerator bindings
+*/
 class SUIT_EXPORT SUIT_Accel: public QObject
 {
   Q_OBJECT
index bf0daebe671b6feb7ffcc9baf0c68d02096b10aa..1d8da2124d18b62ba950e127c8348af4229e9496 100755 (executable)
@@ -30,6 +30,9 @@
 #include <QtxActionMenuMgr.h>
 #include <QtxActionToolMgr.h>
 
+/*!
+  Default constructor
+*/
 SUIT_Application::SUIT_Application()
 : QObject( 0 ),
 myStudy( 0 ),
@@ -38,6 +41,9 @@ myStatusLabel( 0 )
 { 
 }
 
+/*!
+  Destructor
+*/
 SUIT_Application::~SUIT_Application() 
 {
   delete myStudy;
@@ -46,37 +52,61 @@ SUIT_Application::~SUIT_Application()
   setDesktop( 0 );
 }
 
+/*!
+  \return main window of application (desktop)
+*/
 SUIT_Desktop* SUIT_Application::desktop()
 {
   return myDesktop;
 }
 
+/*!
+   \return FALSE if application can not be closed (because of non saved data for example). 
+   This method called by SUIT_Session whin closing of application was requested.
+*/
 bool SUIT_Application::isPossibleToClose()
 {
   return true;
 }
 
+/*!
+  Performs some finalization of life cycle of this application.
+  For instance, the application can force its documents(s) to close.
+*/
 void SUIT_Application::closeApplication()
 {
   emit applicationClosed( this );
 }
 
+/*!
+  \return active Study. If Application supports wirking with several studies this method should be redefined
+*/
 SUIT_Study* SUIT_Application::activeStudy() const
 {
   return myStudy;
 }
 
+/*!
+  \return version of application
+*/
 QString SUIT_Application::applicationVersion() const
 {
   return QString::null;
 }
 
+/*!
+  Shows the application's main widget. For non GUI application must be redefined.
+*/
 void SUIT_Application::start()
 {
   if ( desktop() )
     desktop()->show();
 }
 
+/*!
+  Opens document into active Study. If Study is empty - creates it.
+  \param theFileName - name of document file
+*/
 bool SUIT_Application::useFile( const QString& theFileName )
 {
   createEmptyStudy();
@@ -93,22 +123,36 @@ bool SUIT_Application::useFile( const QString& theFileName )
   return status;
 }
 
+/*!
+  Opens other study into active Study. If Study is empty - creates it.
+  \param theName - name of study
+*/
 bool SUIT_Application::useStudy( const QString& theName )
 {
   return false;
 }
 
+/*!
+  Creates new empty Study if active Study = 0
+*/
 void SUIT_Application::createEmptyStudy()
 {
   if ( !activeStudy() )
     setActiveStudy( createNewStudy() );
 }
 
+/*!
+  \return number of Studies. 
+  Must be redefined in Applications which support several studies for one Application instance.
+*/
 int SUIT_Application::getNbStudies() const
 {
   return activeStudy() ? 1 : 0;
 }
 
+/*!
+  \return global resource manager
+*/
 SUIT_ResourceMgr* SUIT_Application::resourceMgr() const
 {
   if ( !SUIT_Session::session() )
@@ -118,6 +162,12 @@ SUIT_ResourceMgr* SUIT_Application::resourceMgr() const
 }
 
 #define DEFAULT_MESSAGE_DELAY 3000
+
+/*!
+  Puts the message to the status bar  
+  \param msg - text of message
+  \param msec - time in milliseconds, after that the status label will be cleared
+*/
 void SUIT_Application::putInfo ( const QString& msg, const int msec )
 {
   if ( !desktop() )
@@ -135,11 +185,22 @@ void SUIT_Application::putInfo ( const QString& msg, const int msec )
     QTimer::singleShot( msec <= 0 ? DEFAULT_MESSAGE_DELAY : msec, myStatusLabel, SLOT( clear() ) );
 }
 
+/*!
+  Initialize with application arguments
+  \param argc - number of application arguments
+  \param argv - array of application arguments
+*/
 SUIT_Application* SUIT_Application::startApplication( int argc, char** argv ) const
 {
   return startApplication( name(), argc, argv );
 }
 
+/*!
+  Initialize with application name and arguments
+  \param name - name of application
+  \param argc - number of application arguments
+  \param argv - array of application arguments
+*/
 SUIT_Application* SUIT_Application::startApplication( const QString& name, int argc, char** argv ) const
 {
   SUIT_Session* session = SUIT_Session::session();
@@ -149,6 +210,10 @@ SUIT_Application* SUIT_Application::startApplication( const QString& name, int a
   return session->startApplication( name, argc, argv );
 }
 
+/*!
+  Sets the main window of application
+  \param desk - new main window (desktop)
+*/
 void SUIT_Application::setDesktop( SUIT_Desktop* desk )
 {
   if ( myDesktop == desk )
@@ -160,11 +225,20 @@ void SUIT_Application::setDesktop( SUIT_Desktop* desk )
     connect( myDesktop, SIGNAL( activated() ), this, SLOT( onDesktopActivated() ) );
 }
 
+/*!
+  Creates new instance of study.
+  By default, it is called from createEmptyStudy()
+  \sa createEmptyStudy()
+*/
 SUIT_Study* SUIT_Application::createNewStudy()
 {
   return new SUIT_Study( this );
 }
 
+/*!
+  Sets study as active
+  \param study - instance of study to be set as active
+*/
 void SUIT_Application::setActiveStudy( SUIT_Study* study )
 {
   if ( myStudy == study )
@@ -173,6 +247,11 @@ void SUIT_Application::setActiveStudy( SUIT_Study* study )
   myStudy = study;
 }
 
+/*!
+  Creates new toolbar
+  \return identificator of new toolbar in tool manager
+  \param name - name of new toolbar
+*/
 int SUIT_Application::createTool( const QString& name )
 {
   if ( !desktop() || !desktop()->toolMgr() )
@@ -181,6 +260,14 @@ int SUIT_Application::createTool( const QString& name )
   return desktop()->toolMgr()->createToolBar( name );
 }
 
+/*!
+  Creates new toolbutton
+  \return SUIT identificator of new action
+  \param a - action
+  \param tBar - identificator of toolbar
+  \param id - proposed SUIT identificator of action (if it is -1, then must be use any free)
+  \param idx - index in toolbar
+*/
 int SUIT_Application::createTool( QAction* a, const int tBar, const int id, const int idx )
 {
   if ( !desktop() || !desktop()->toolMgr() )
@@ -191,6 +278,14 @@ int SUIT_Application::createTool( QAction* a, const int tBar, const int id, cons
   return intId != -1 ? regId : -1;
 }
 
+/*!
+  Creates new toolbutton
+  \return SUIT identificator of new action
+  \param a - action
+  \param tBar - name of toolbar
+  \param id - proposed SUIT identificator of action (if it is -1, then must be use any free)
+  \param idx - index in toolbar
+*/
 int SUIT_Application::createTool( QAction* a, const QString& tBar, const int id, const int idx )
 {
   if ( !desktop() || !desktop()->toolMgr() )
@@ -201,6 +296,13 @@ int SUIT_Application::createTool( QAction* a, const QString& tBar, const int id,
   return intId != -1 ? regId : -1;
 }
 
+/*!
+  Creates new toolbutton
+  \return "id" if all right or -1 otherwise
+  \param id - SUIT identificator of action
+  \param tBar - identificator of toolbar
+  \param idx - index in toolbar
+*/
 int SUIT_Application::createTool( const int id, const int tBar, const int idx )
 {
   if ( !desktop() || !desktop()->toolMgr() )
@@ -210,6 +312,13 @@ int SUIT_Application::createTool( const int id, const int tBar, const int idx )
   return intId != -1 ? id : -1;
 }
 
+/*!
+  Creates new toolbutton
+  \return "id" if all right or -1 otherwise
+  \param id - SUIT identificator of action
+  \param tBar - name of toolbar
+  \param idx - index in toolbar
+*/
 int SUIT_Application::createTool( const int id, const QString& tBar, const int idx )
 {
   if ( !desktop() || !desktop()->toolMgr() )
@@ -219,6 +328,15 @@ int SUIT_Application::createTool( const int id, const QString& tBar, const int i
   return intId != -1 ? id : -1;
 }
 
+/*!
+  Creates new menu item
+  \return identificator of new action in menu manager
+  \param subMenu - menu text of new item
+  \param menu - identificator of parent menu item
+  \param id - proposed identificator of action
+  \param group - group in menu manager
+  \param index - index in menu
+*/
 int SUIT_Application::createMenu( const QString& subMenu, const int menu,
                                   const int id, const int group, const int index )
 {
@@ -228,6 +346,15 @@ int SUIT_Application::createMenu( const QString& subMenu, const int menu,
   return desktop()->menuMgr()->insert( subMenu, menu, group, id, index );
 }
 
+/*!
+  Creates new menu item
+  \return identificator of new action in menu manager
+  \param subMenu - menu text of new item
+  \param menu - menu text of parent menu item
+  \param id - proposed identificator of action
+  \param group - group in menu manager
+  \param index - index in menu
+*/
 int SUIT_Application::createMenu( const QString& subMenu, const QString& menu,
                                   const int id, const int group, const int index )
 {
@@ -237,6 +364,15 @@ int SUIT_Application::createMenu( const QString& subMenu, const QString& menu,
   return desktop()->menuMgr()->insert( subMenu, menu, group, id, index );
 }
 
+/*!
+  Creates new menu item
+  \return SUIT identificator of new action
+  \param a - action
+  \param menu - identificator of parent menu item
+  \param id - proposed SUIT identificator of action
+  \param group - group in menu manager
+  \param index - index in menu
+*/
 int SUIT_Application::createMenu( QAction* a, const int menu, const int id, const int group, const int index )
 {
   if ( !a || !desktop() || !desktop()->menuMgr() )
@@ -247,6 +383,15 @@ int SUIT_Application::createMenu( QAction* a, const int menu, const int id, cons
   return intId != -1 ? regId : -1;
 }
 
+/*!
+  Creates new menu item
+  \return SUIT identificator of new action
+  \param a - action
+  \param menu - menu text of parent menu item
+  \param id - proposed SUIT identificator of action
+  \param group - group in menu manager
+  \param index - index in menu
+*/
 int SUIT_Application::createMenu( QAction* a, const QString& menu, const int id, const int group, const int index )
 {
   if ( !a || !desktop() || !desktop()->menuMgr() )
@@ -257,6 +402,14 @@ int SUIT_Application::createMenu( QAction* a, const QString& menu, const int id,
   return intId != -1 ? regId : -1;
 }
 
+/*!
+  Creates new menu item
+  \return identificator of new action in menu manager
+  \param id - SUIT identificator of action
+  \param menu - menu text of parent menu item
+  \param group - group in menu manager
+  \param index - index in menu
+*/
 int SUIT_Application::createMenu( const int id, const int menu, const int group, const int index )
 {
   if ( !desktop() || !desktop()->menuMgr() )
@@ -266,6 +419,14 @@ int SUIT_Application::createMenu( const int id, const int menu, const int group,
   return intId != -1 ? id : -1;
 }
 
+/*!
+  Creates new menu item
+  \return identificator of new action in menu manager
+  \param id - SUIT identificator of action
+  \param menu - menu text of parent menu item
+  \param group - group in menu manager
+  \param index - index in menu
+*/
 int SUIT_Application::createMenu( const int id, const QString& menu, const int group, const int index )
 {
   if ( !desktop() || !desktop()->menuMgr() )
@@ -275,40 +436,74 @@ int SUIT_Application::createMenu( const int id, const QString& menu, const int g
   return intId != -1 ? id : -1;
 }
 
+/*!
+  Show/hide menu item corresponding to action
+  \param a - action
+  \param on - if it is true, the item will be shown, otherwise it will be hidden
+*/
 void SUIT_Application::setMenuShown( QAction* a, const bool on )
 {
   setMenuShown( actionId( a ), on );
 }
 
+/*!
+  Show/hide menu item corresponding to action
+  \param id - identificator of action in menu manager
+  \param on - if it is true, the item will be shown, otherwise it will be hidden
+*/
 void SUIT_Application::setMenuShown( const int id, const bool on )
 {
   if ( desktop() && desktop()->menuMgr() )
     desktop()->menuMgr()->setShown( id, on );
 }
 
+/*!
+  Show/hide tool button corresponding to action
+  \param a - action
+  \param on - if it is true, the button will be shown, otherwise it will be hidden
+*/
 void SUIT_Application::setToolShown( QAction* a, const bool on )
 {
   setToolShown( actionId( a ), on );
 }
 
+/*!
+  Show/hide menu item corresponding to action
+  \param id - identificator of action in tool manager
+  \param on - if it is true, the button will be shown, otherwise it will be hidden
+*/
 void SUIT_Application::setToolShown( const int id, const bool on )
 {
   if ( desktop() && desktop()->toolMgr() )
     desktop()->toolMgr()->setShown( id, on );
 }
 
+/*!
+  Show/hide both menu item and tool button corresponding to action
+  \param a - action
+  \param on - if it is true, the item will be shown, otherwise it will be hidden
+*/
 void SUIT_Application::setActionShown( QAction* a, const bool on )
 {
   setMenuShown( a, on );
   setToolShown( a, on );
 }
 
+/*!
+  Show/hide both menu item and tool button corresponding to action
+  \param id - identificator in both menu manager and tool manager
+  \param on - if it is true, the item will be shown, otherwise it will be hidden
+*/
 void SUIT_Application::setActionShown( const int id, const bool on )
 {
   setMenuShown( id, on );
   setToolShown( id, on );
 }
 
+/*!
+  \return action by it's SUIT identificator
+  \param id - SUIT identificator
+*/
 QAction* SUIT_Application::action( const int id ) const
 {
   QAction* a = 0;
@@ -317,6 +512,10 @@ QAction* SUIT_Application::action( const int id ) const
   return a;
 }
 
+/*!
+  \return SUIT identificator of action
+  \param a - action
+*/
 int SUIT_Application::actionId( const QAction* a ) const
 {
   int id = -1;
@@ -329,6 +528,20 @@ int SUIT_Application::actionId( const QAction* a ) const
   return id;
 }
 
+/*!
+  Creates action and registers it both in menu manager and tool manager
+  \return new instance of action
+  \param id - proposed SUIT identificator
+  \param text - description
+  \param icon - icon for toolbar
+  \param menu - menu text
+  \param tip - tool tip
+  \param key - shortcut
+  \param parent - parent object
+  \param toggle - if it is TRUE the action will be a toggle action, otherwise it will be a command action
+  \param reciever - object that contains slot
+  \param member - slot to be called when action is activated
+*/
 QAction* SUIT_Application::createAction( const int id, const QString& text, const QIconSet& icon,
                                          const QString& menu, const QString& tip, const int key,
                                          QObject* parent, const bool toggle, QObject* reciever, const char* member )
@@ -344,6 +557,11 @@ QAction* SUIT_Application::createAction( const int id, const QString& text, cons
   return a;
 }
 
+/*!
+  Registers action both in menu manager and tool manager
+  \param id - proposed SUIT identificator (if it is -1, auto generated one is used)
+  \param a - action
+*/
 int SUIT_Application::registerAction( const int id, QAction* a )
 {
   int ident = actionId( a );
@@ -367,11 +585,18 @@ int SUIT_Application::registerAction( const int id, QAction* a )
   return ident;
 }
 
+/*!
+  \return global action used as separator
+*/
 QAction* SUIT_Application::separator()
 {
   return QtxActionMgr::separator();
 }
 
+/*!
+  SLOT: it is called when desktop is activated
+*/
+
 void SUIT_Application::onDesktopActivated()
 {
   emit activated( this );
index 36e1985da07943959419226fe3b13a222d4d1549..0f1713b8115a60570bbf46c22047d4259561b661 100755 (executable)
@@ -18,7 +18,6 @@
 //
 // SUIT_Convertor.h: interface for the SUIT_Convertor class.
 //
-//////////////////////////////////////////////////////////////////////
 
 #if !defined(AFX_SUIT_CONVERTOR_H__4C27F4C7_DC7C_4BEF_9DC1_EFB97B387EBF__INCLUDED_)
 #define AFX_SUIT_CONVERTOR_H__4C27F4C7_DC7C_4BEF_9DC1_EFB97B387EBF__INCLUDED_
index ddb393817477bcc0d174c5b6792e05e7eca808b3..6240ed0085f1bc0accabe2ff8765751aa91dd421 100755 (executable)
@@ -464,11 +464,17 @@ void SUIT_DataObject::setOn( const bool on )
   myCheck = on;
 }
 
+/*!
+    \return the opened state of the object (used in Object Browser).
+*/
 bool SUIT_DataObject::isOpen() const
 {
   return myOpen;
 }
 
+/*!
+    Sets the opened state of the object (used in Object Browser).
+*/
 void SUIT_DataObject::setOpen( const bool on )
 {
   myOpen = on;
index bb14608c30c0645dbbaf9cafb42607c1bff2a4fc..263698f069ba96556260457272a9ac4e08fc18a1 100755 (executable)
@@ -37,7 +37,9 @@ typedef QPtrListIterator<SUIT_DataObject> DataObjectListIterator;
 #endif
 
 /*!
-  Class provide support data object.
+  \class SUIT_DataObject
+  Data Object represents uniform data tree structure recommended to use in SUIT-based applications
+  Many of standard classes (DataModel,ObjectBrowser) deal with SUIT_DataObjects
 */
 class SUIT_EXPORT SUIT_DataObject  
 {
@@ -116,6 +118,13 @@ private:
   friend class SUIT_DataObjectIterator;
 };
 
+/*!
+  \class SUIT_DataObject::Signal
+  Auxiliary class providing functionality to use signals of data object state change
+  SUIT_DataObject cannot have signals, because it isn't QObject, but
+  methods connect/disconnect of SUIT_DataObject with help of this it is possible
+  to emulate Qt signal processing
+*/
 class SUIT_DataObject::Signal : public QObject
 {
   Q_OBJECT
index 45b8f7082368fe15175a7954fc16813fca46fd9d..f697a0f682cf227f5673bf931d9cf193f5dce9a3 100644 (file)
 #include "SUIT_DataObject.h"
 
 /*!
-  Class provide data object iterator.
+  \class SUIT_DataObjectIterator
+  Provides functionality of SUIT tree detour
+  It is possible to use "to-depth" or "to-breadth" detour and
+  to control level detour (from left or from right)
 */
 class SUIT_EXPORT SUIT_DataObjectIterator
 {
@@ -51,6 +54,11 @@ private:
   int               myDetourType, myCurrentLevel;
 };
 
+/*!
+  \class SUIT_DataObjectIterator
+  Provides functionality of SUIT tree detour between certain levels 
+  Only "to-breadth" detour is used
+*/
 class SUIT_DataObjectLevelIterator : public SUIT_DataObjectIterator
 {
 public:
index 28ceb5153309429119247351d051ca54de0ebada..a7f56251561bc6f01b28a400fa81e3e11bb34ead 100755 (executable)
 #define _typeinfo type_info
 #endif
 
-//********************************************************************
-// SUIT_DataOwner class
-//********************************************************************
-
-
 /*! Constructor*/
 SUIT_DataOwner::SUIT_DataOwner()
 {
@@ -49,43 +44,42 @@ bool operator==( const SUIT_DataOwnerPtr& p1, const SUIT_DataOwnerPtr& p2 )
   return p1.isNull() && p2.isNull();
 }
 
-//********************************************************************
-/*! \class SUIT_DataOwnerPtrList 
- * implements value list with unique items (uniqueness is 
- * provided by operator==())
- */
-//********************************************************************
+/*!
+  \class SUIT_DataOwnerPtrList 
+  implements value list with unique items (uniqueness is 
+  provided by operator==())
+*/
 
-//====================================================================
-//! Constructor (default)
-//====================================================================
+/*!
+  Constructor (default)
+*/
 SUIT_DataOwnerPtrList::SUIT_DataOwnerPtrList()
   : QValueList<SUIT_DataOwnerPtr>(),
     mySkipEqual( true )
 {
 }
 
-//====================================================================
-//! Constructor (default)
-//====================================================================
+/*!
+  Constructor (default)
+*/
 SUIT_DataOwnerPtrList::SUIT_DataOwnerPtrList( const bool skipAllEqual )
   : QValueList<SUIT_DataOwnerPtr>(),
     mySkipEqual( skipAllEqual )
 {
 }
 
-//====================================================================
-//! Constructor (copy)
-//====================================================================
+/*!
+  Constructor (copy)
+*/
 SUIT_DataOwnerPtrList::SUIT_DataOwnerPtrList( const SUIT_DataOwnerPtrList& l )
   : QValueList<SUIT_DataOwnerPtr>( l ),
     mySkipEqual( true )
 {
 }
 
-//====================================================================
-//! Constructor (copy)
-//====================================================================
+/*!
+  Constructor (copy)
+*/
 SUIT_DataOwnerPtrList::SUIT_DataOwnerPtrList( const SUIT_DataOwnerPtrList& l, const bool skipAllEqual )
   : QValueList<SUIT_DataOwnerPtr>(),
     mySkipEqual( skipAllEqual )
@@ -102,9 +96,9 @@ SUIT_DataOwnerPtrList::SUIT_DataOwnerPtrList( const SUIT_DataOwnerPtrList& l, co
 }
 
 #ifndef QT_NO_STL
-//====================================================================
-//! Constructor (from stl)
-//====================================================================
+/*!
+  Constructor (from stl)
+*/
 SUIT_DataOwnerPtrList::SUIT_DataOwnerPtrList( const std::list<SUIT_DataOwnerPtr>& l )
   : QValueList<SUIT_DataOwnerPtr>( l ),
     mySkipEqual( true )
@@ -113,9 +107,9 @@ SUIT_DataOwnerPtrList::SUIT_DataOwnerPtrList( const std::list<SUIT_DataOwnerPtr>
 #endif
 
 #ifndef QT_NO_STL
-//====================================================================
-//! Constructor (from stl)
-//====================================================================
+/*!
+  Constructor (from stl)
+*/
 SUIT_DataOwnerPtrList::SUIT_DataOwnerPtrList( const std::list<SUIT_DataOwnerPtr>& l, const bool skipAllEqual )
   : QValueList<SUIT_DataOwnerPtr>(),
     mySkipEqual( skipAllEqual )
@@ -127,9 +121,9 @@ SUIT_DataOwnerPtrList::SUIT_DataOwnerPtrList( const std::list<SUIT_DataOwnerPtr>
 }
 #endif
 
-//====================================================================
-//! Appends an item to the list
-//====================================================================
+/*!
+  Appends an item to the list
+*/
 SUIT_DataOwnerPtrList::iterator SUIT_DataOwnerPtrList::append( const SUIT_DataOwnerPtr& x )
 {
   if( mySkipEqual && myMap.contains( x ) ) //contains uses SUIT_DataOwnerPtr::operator==
@@ -143,9 +137,9 @@ SUIT_DataOwnerPtrList::iterator SUIT_DataOwnerPtrList::append( const SUIT_DataOw
   return it;
 }
 
-//====================================================================
-//! Clear list
-//====================================================================
+/*!
+  Clear list
+*/
 void SUIT_DataOwnerPtrList::clear()
 {
   if( mySkipEqual )
@@ -153,9 +147,9 @@ void SUIT_DataOwnerPtrList::clear()
   QValueList<SUIT_DataOwnerPtr>::clear();
 }
 
-//====================================================================
-//! Remove an item from the list
-//====================================================================
+/*!
+  Remove an item from the list
+*/
 uint SUIT_DataOwnerPtrList::remove(const SUIT_DataOwnerPtr& x )
 {
   if( mySkipEqual && myMap.contains(x) )
@@ -163,9 +157,9 @@ uint SUIT_DataOwnerPtrList::remove(const SUIT_DataOwnerPtr& x )
   return QValueList<SUIT_DataOwnerPtr>::remove( x );
 }
 
-//====================================================================
-//! 
-//====================================================================
+/*!
+  Operator < allows to order suit data owners for map
+*/
 bool operator<( const SUIT_DataOwnerPtr& p1, const SUIT_DataOwnerPtr& p2 )
 {
   return p1.get()<p2.get();
index cbc5b84649de7470866ad7415287ff84e28a525c..b718589e4b10a6dd686bd5deb609c11140361ea4 100755 (executable)
 #pragma warning( disable:4275 )
 #endif
 
+/*!
+  \class SUIT_DataOwner
+  Represents abstract selected objects.
+  Used for selection synchronizing between windows(e.g. ObjectBrowser) and viewers
+*/
+
 class SUIT_EXPORT SUIT_DataOwner : public RefCount 
 {
 public:
index c437dbb1c414fd3a6ca07233f171b5e57f834516..d89aed0c7b17826189013221b0ac6223bfe645d1 100755 (executable)
@@ -31,6 +31,11 @@ class SUIT_ViewWindow;
 class QtxActionMenuMgr;
 class QtxActionToolMgr;
 
+/*!
+  \class SUIT_Desktop
+  Provides standard desktop: main window with
+  main menu manager, toolbars manager and logo.
+*/
 class SUIT_EXPORT SUIT_Desktop : public QtxMainWindow
 {
   Q_OBJECT
index ec580efd639c20c984d8e6e7e8d5e1654e1c94aa..d995cd82b5cfa505cbd740976cfc1cc787c948f2 100755 (executable)
 //
 // See http://www.salome-platform.org/
 //
-//*********************************************************************************
-// SUIT_FileDlg class is the extension of the Qt's Open/Save file dialog box.
-// To get the file/directory name(s) call static methods:
-//
-// to invoke "Open file" or "Save file" dialog box
-//    static QString getFileName(QWidget* parent, const QString& initial, const QStringList& filters, 
-//                               const QString& caption, const bool open, const bool showQuickDir = true,
-//                               SUIT_FileValidator* validator = 0);
-//
-// to invoke "Open files" dialog box (to get the multiple file selection)
-//    static QStringList getOpenFileNames(QWidget* parent, const QString& initial, const QStringList& filters, 
-//                                        const QString& caption, bool showQuickDir = true
-//                                        SUIT_FileValidator* validator = 0);
-//
-// to invoke "Select directory" dialog box
-//    static QString getExistingDirectory(QWidget* parent, const QString& initial,
-//                                        const QString& caption, const bool showQuickDir = true);
-//
-// The parameters:
-// - parent        parent widget (if 0, the current desktop is used)
-// - initial       starting directory or file name (if null, last visited directory is used)
-// - filters       file filters list; patterns inside the filter can be separated by ';','|' or ' ' 
-//                 symbols
-// - caption       dialog box's caption: if null, the default one is used
-// - open          open flag - true for "Open File" and false for "Save File" dialog box
-// - showQuickDir  this flag enables/disables "Quick directory list" controls
-// - validator     you can provide custom file validator with this parameter
-//
-// Examples:
-//   ...
-//   QStringList flist;
-//   flist.append( "Image files (*.bmp *.gif *.jpg )" );
-//   flist.append( "All files (*.*)" );
-//   QMyFileValidator* v = new QMyFileValidator( 0 );
-//   QString fileName =  SUIT_FileDlg::getFileName( 0, QString::null, flist, "Dump view", false, true, v );
-//   if ( !fileName.isEmpty() ) {
-//      ... writing image to the file 
-//   }
-//   ...
-//   QStringList flist;
-//   flist.append( "*.cpp | *.cxx | *.c++" );
-//   flist.append( "*.h | *.hpp | *.hxx" );
-//   QString fileName =  SUIT_FileDlg::getFileName( desktop(), QString::null, flist, QString::null, true, true );
-//
-//*********************************************************************************
+
+/*!
+  SUIT_FileDlg class is the extension of the Qt's Open/Save file dialog box.
+  To get the file/directory name(s) call static methods:
+
+  to invoke "Open file" or "Save file" dialog box
+  static QString getFileName(QWidget* parent, const QString& initial, const QStringList& filters, 
+                               const QString& caption, const bool open, const bool showQuickDir = true,
+                               SUIT_FileValidator* validator = 0);
+
+  to invoke "Open files" dialog box (to get the multiple file selection)
+  static QStringList getOpenFileNames(QWidget* parent, const QString& initial, const QStringList& filters
+                                        const QString& caption, bool showQuickDir = true, 
+                                        SUIT_FileValidator* validator = 0);
+
+ to invoke "Select directory" dialog box
+    static QString getExistingDirectory(QWidget* parent, const QString& initial,
+                                        const QString& caption, const bool showQuickDir = true);
+
+ The parameters:
+ - parent        parent widget (if 0, the current desktop is used)
+ - initial       starting directory or file name (if null, last visited directory is used)
+ - filters       file filters list; patterns inside the filter can be separated by ';','|' or ' ' 
+                 symbols
+ - caption       dialog box's caption: if null, the default one is used
+ - open          open flag - true for "Open File" and false for "Save File" dialog box
+ - showQuickDir  this flag enables/disables "Quick directory list" controls
+ - validator     you can provide custom file validator with this parameter
+
+ Examples:
+   ...
+   QStringList flist;
+   flist.append( "Image files (*.bmp *.gif *.jpg )" );
+   flist.append( "All files (*.*)" );
+   QMyFileValidator* v = new QMyFileValidator( 0 );
+   QString fileName =  SUIT_FileDlg::getFileName( 0, QString::null, flist, "Dump view", false, true, v );
+   if ( !fileName.isEmpty() ) {
+      ... writing image to the file 
+   }
+   ...
+   QStringList flist;
+   flist.append( "*.cpp | *.cxx | *.c++" );
+   flist.append( "*.h | *.hpp | *.hxx" );
+   QString fileName =  SUIT_FileDlg::getFileName( desktop(), QString::null, flist, QString::null, true, true );
+*/
 
 #include "SUIT_FileDlg.h"
 
index ecba9f2c73c7b5ddab7b1249e7e62100021a4a63..cbc4abfa3b39534260cf1b4297f8e492a9986241 100755 (executable)
 #include <qwidget.h>
 #include "SUIT.h"
 
+/*!
+  \class SUIT_FileValidator
+  Provides functionality to check file
+*/
 class SUIT_EXPORT SUIT_FileValidator
 {
 public:
index 1d4d03cada3d6d54a1577c9204b36b312349c0b6..0e8630c91ef70de00b0df29fddb2eac8e44f83a3 100755 (executable)
 //
 // See http://www.salome-platform.org/
 //
-/********************************************************************
-**  Class:   SUIT_MessageBox
-**  Descr:   Message dialog box for SUIT-based application
-**  Module:  SUIT
-**  Created: UI team, 02.10.00
-*********************************************************************/
+
+/*!
+  \class:   SUIT_MessageBox
+  Message dialog box for SUIT-based application
+  Module:  SUIT
+  Created: UI team, 02.10.00
+*/
 
 #include "SUIT_MessageBox.h"
 #include "SUIT_OverrideCursor.h"
index f8cf626be96d4dadd4a5ea879c5b8674c3aeb6b0..334ecb0808bfc55bea4ee2037f624d2733f9af01 100755 (executable)
 //
 // See http://www.salome-platform.org/
 //
-/********************************************************************
-**  Class:   SUIT_MessageBox
-**  Descr:   Message dialog box for SUIT-based application
-**  Module:  SUIT
-**  Created: UI team, 02.10.00
-*********************************************************************/
+
 #ifndef SUIT_MESSAGEBOX_H
 #define SUIT_MESSAGEBOX_H
 
 #define SUIT_NO                      4
 #define SUIT_HELP                    5
 
+/*!
+  \class SUIT_MessageBox
+  \brief Message dialog box for SUIT-based application
+*/
 class SUIT_EXPORT SUIT_MessageBox
 {
 public:
index 658ff20173dfc936c55b01e4175965d19819b988..5426588c703c98a7b7f221ff58612a8ee17fce0b 100755 (executable)
 //
 // See http://www.salome-platform.org/
 //
-/**
-*  SALOME SalomeApp
-*
-*  Copyright (C) 2005  CEA/DEN, EDF R&D
-*
-*
-*
-*  File   : SUIT_Operation.h
-*  Author : Unknown
-*  Module : SALOME
+
+/*!
+  SALOME SalomeApp
+
+  Copyright (C) 2005  CEA/DEN, EDF R&D
+
+  File   : SUIT_Operation.h
+  Author : Unknown
+  Module : SALOME
 */
 
 #include "SUIT_Operation.h"
 #include "SUIT_Application.h"
 
 /*!
\brief Constructor
 * \param SUIT_Application - application for this operation
-*
-* Constructs an empty operation. Constructor should work very fast because many
-* operators may be created after starting application but only several from them
-* may be used. As result this constructor stores given application in myApp field
-* and set Waiting status.
+ \brief Constructor
+ \param SUIT_Application - application for this operation
+
+  Constructs an empty operation. Constructor should work very fast because many
+  operators may be created after starting application but only several from them
+  may be used. As result this constructor stores given application in myApp field
+  and set Waiting status.
 */
 SUIT_Operation::SUIT_Operation( SUIT_Application* app )
 : QObject(),
index 4f1b617b98575ddb0e62199f5a4b621974b86d76..1c91a2b195749c8b61f1663a109c677531644391 100755 (executable)
 //
 // See http://www.salome-platform.org/
 //
-/**
-*  SALOME SalomeApp
-*
-*  Copyright (C) 2005  CEA/DEN, EDF R&D
-*
-*
-*
-*  File   : SUIT_Operation.h
-*  Author : Unknown
-*  Module : SALOME
-*/
 
 #ifndef SUIT_OPERATION_H
 #define SUIT_OPERATION_H
@@ -40,6 +29,7 @@ class SUIT_Study;
 class SUIT_Application;
 
 /*!
+   \class SUIT_Operation
  * \brief Base class for all operations
  *
  *  Base class for all operations. If you perform an action it is reasonable to create
index ed8f3a87273d3dedfd8e2f9958cf512965bd22ff..e76ed76b111376809d5ab13a4db122e5d6c38130 100755 (executable)
@@ -18,6 +18,9 @@
 //
 #include "SUIT_ResourceMgr.h"
 
+#include <qfileinfo.h>
+#include <qdir.h>
+
 /*!
     Constructor
 */
@@ -61,15 +64,59 @@ QString SUIT_ResourceMgr::loadDoc( const QString& prefix, const QString& id ) co
   return path( docSection, prefix, id );
 }
 
+#include <unistd.h>
 /*!
     Returns the user file name for specified application
 */
-QString SUIT_ResourceMgr::userFileName( const QString& appName ) const
+QString SUIT_ResourceMgr::userFileName( const QString& appName, const bool for_load ) const
 {
   QString pathName = QtxResourceMgr::userFileName( appName );
 
   if ( !version().isEmpty() )
     pathName += QString( "." ) + version();
 
+  if( !QFileInfo( pathName ).exists() && for_load )
+  {
+    QString newName = findAppropriateUserFile( pathName );
+    if( !newName.isEmpty() )
+      pathName = newName;
+  }
+
   return pathName;
 }
+
+/*!
+    Finds other the most appropriate user file instead missing one
+*/
+QString SUIT_ResourceMgr::findAppropriateUserFile( const QString& fname ) const
+{
+  QDir d( QFileInfo( fname ).dir( true ) );
+  d.setFilter( QDir::Files | QDir::Hidden | QDir::NoSymLinks );
+  QStringList l = d.entryList();
+  QString appr_file;
+  int id0 = userFileId( fname ), id, appr=-1;
+  if( id0<0 )
+    return appr_file;
+
+  for( QStringList::const_iterator anIt = l.begin(), aLast = l.end(); anIt!=aLast; anIt++ )
+  {
+    id = userFileId( *anIt );
+    if( id<0 )
+      continue;
+
+    if( abs( id-id0 ) < abs( appr-id0 ) )
+    {
+      appr = id;
+      appr_file = d.absFilePath( *anIt );
+    }
+  }
+  return appr_file;
+}
+
+/*!
+    Calculates integer extended version number by user file name for comparing
+*/
+int SUIT_ResourceMgr::userFileId( const QString& ) const
+{
+  return -1;
+}
index 2b1a18bec5fc3c785425c84619fee4d7418050a3..ebb38044678d67106b70779677aac20033f7564e 100755 (executable)
@@ -35,7 +35,9 @@ public:
   QString         loadDoc( const QString&, const QString& ) const;
 
 protected:
-  virtual QString userFileName( const QString& ) const;
+  virtual QString userFileName( const QString&, const bool = true ) const;
+  virtual QString findAppropriateUserFile( const QString& ) const;
+  virtual int     userFileId( const QString& ) const;
 
 private:
   QString         myVersion;
index 5d1ae0e3a55a065ee8f0b8ae5243c8a0ff54111d..7d195ffbd7086b951c6ccfcd0fcba7c3d46bb263 100755 (executable)
 class SUIT_SelectionMgr;
 class SUIT_DataOwnerPtrList;
 
+/*!
+  \class SUIT_Selector
+  Base class for all selectors used in SUIT-based applications.
+  Provides functionality to get/set selection from/into some widget
+  (ObjectBrowser, viewers, etc)
+  Used by selection manager for selection synhronizing
+*/
 class SUIT_EXPORT SUIT_Selector : public QObject
 {
   Q_OBJECT
index 7eca7329a3319db25ed4075878e459a75d330b33..baa32fd81576f8ef798c8fea51f7346e3cc8510d 100755 (executable)
@@ -290,7 +290,7 @@ SUIT_Session::AppLib SUIT_Session::loadLibrary( const QString& name, QString& li
 #ifdef WIN32
   lib = ::LoadLibrary( (char*)libFile.latin1() );
 #else
-  lib = dlopen( (char*)libFile.latin1(), RTLD_LAZY /*| RTLD_GLOBAL */ );
+  lib = dlopen( (char*)libFile.latin1(), RTLD_LAZY | RTLD_GLOBAL  );
 #endif
   return lib;
 }
@@ -313,7 +313,7 @@ QString SUIT_Session::applicationName( const QString& str ) const
 */
 SUIT_ResourceMgr* SUIT_Session::createResourceMgr( const QString& appName ) const
 {
-  return new SUIT_ResourceMgr( appName );
+  return new SUIT_ResourceMgr( applicationName( appName ) );
 }
 
 /*!
index 995aede9e7fbc98adddfbbc9a9a29fa301c21fa6..ac8320b6c02e2e04a637a2da3fc1310c6507df1d 100755 (executable)
@@ -117,11 +117,12 @@ void SUIT_Study::closeDocument(bool permanently)
 {
 }
 
+/*!
+  Custom document initialization to be performed \n
+   within onNewDoc() handler can be put here
+*/
 void SUIT_Study::createDocument()
 {
-  /*! Custom document initialization to be performed \n
-   *  within onNewDoc() handler can be put here
-   */
 }
 
 /*!
index 07d8ff059bc599bcd38243dc8838b61dfede257a..56643dfea9487a5ab5be1b7e8f0228d6c36d12e6 100755 (executable)
 #include <qfont.h>
 #include <qstring.h>
 
+/*!
+  \class SUIT_Tools
+  Prodives set of auxiliary static methods
+*/
 class SUIT_EXPORT SUIT_Tools : public Qtx
 {
 public:
index 19bdf4edd645c9f5220e8efc6b7bca1537721c18..1ce2a3a5accac90e9005c4b518fea6132a894116 100644 (file)
@@ -1,3 +1,21 @@
+// Copyright (C) 2005  CEA/DEN, EDF R&D, OPEN CASCADE, PRINCIPIA R&D
+//
+// This library is free software; you can redistribute it and/or
+// modify it under the terms of the GNU Lesser General Public
+// License as published by the Free Software Foundation; either
+// version 2.1 of the License.
+//
+// This library is distributed in the hope that it will be useful
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+// Lesser General Public License for more details.
+//
+// You should have received a copy of the GNU Lesser General Public
+// License along with this library; if not, write to the Free Software
+// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307 USA
+//
+// See http://www.salome-platform.org/
+//
 
 #ifndef SUIT_TREE_SYNC_HEADER
 #define SUIT_TREE_SYNC_HEADER
 #include <qptrlist.h>
 #include <qvaluelist.h>
 
+/*!
+  \struct DiffItem
+  \brief Struct representing difference between items
+*/
 template <class SrcItem, class TrgItem>
 struct DiffItem
 {
-  SrcItem  mySrc;  //if it is null, then this item is to deleted
-  TrgItem  myTrg;  //if it is null, then this item is to added
-  //if both fields aren't null, then this item is to update
+  SrcItem  mySrc;
+  /*! 
+    \var mySrc
+    if it is null, then this item is to deleted
+  */
+  TrgItem  myTrg;
+  /*!
+    \var myTrg
+    if it is null, then this item is to added
+    if both fields aren't null, then this item is to update
+  */
 };
 
+/*!
+  \brief synchronizes two trees
+*/
 template <class SrcItem, class TrgItem, class TreeData>
 TrgItem synchronize( const SrcItem&, const TrgItem&, const TreeData& );
 
+/*!
+  \brief compares children 
+*/
 template <class SrcItem, class TrgItem, class TreeData>
 void diffSiblings( const SrcItem&, const TrgItem&,
                    QValueList < DiffItem < SrcItem,TrgItem > >&,
                    const TreeData& );
 
+/*!
+  \brief create item with children (subtree)
+*/
 template <class SrcItem, class TrgItem, class TreeData>
 TrgItem createSubTree( const SrcItem&, const TrgItem&, const TrgItem&, const bool, const TreeData& );
 
+/*!
+  \brief find equal element in list
+*/
 template <class SrcItem, class TrgItem, class TreeData>
 const typename QValueList<TrgItem>::const_iterator findEqual( const QValueList<TrgItem>& l,
                                                              const typename QValueList<TrgItem>::const_iterator& first,
@@ -33,8 +75,31 @@ const typename QValueList<TrgItem>::const_iterator findEqual( const QValueList<T
 
 
 
-
-//int gSync = 0;
+/*!
+  Synchronizes two trees by comparing corresponding items
+  \param r1 - start item from first tree
+  \param r2 - start item from second tree
+  \param td - auxiliary class providing following methods:
+  <ul>
+  <li> bool     isEqual( const SrcItem&, const TrgItem& ) const - returns true if items are equal
+  <li> SrcItem  nullSrc() const - returns null SrcItem
+  <li> TrgItem  nullTrg() const - returns null TrgItem
+  <li> TrgItem  createItem( 
+    <ol>
+      <li> const SrcItem& src,    - corresponding SrcItem
+      <li> const TrgItem& parent, - parent TrgItem
+      <li> const TrgItem& after,  - TrgItem after that new item must be added
+      <li> const bool prepend     - whether new item must be added as first 
+    </ol>
+    ) const - creates new TrgItem
+  <li> void     updateItem( const TrgItem& ) const - updates TrgItem without recreation
+  <li> void     deleteItemWithChildren( const TrgItem& ) const - deletes TrgItem with all children
+  <li> void     children( const SrcItem&, QValueList<SrcItem>& ) const - fills list with children
+  <li> void     children( const TrgItem&, QValueList<TrgItem>& ) const - fills list with children
+  <li> SrcItem  parent( const SrcItem& ) const - return parent SrcItem
+  <li> TrgItem  parent( const TrgItem& ) const - return parent SrcItem
+  </ul>
+*/
 template <class SrcItem, class TrgItem, class TreeData>
 TrgItem synchronize( const SrcItem& r1, const TrgItem& r2, const TreeData& td )
 {
@@ -48,7 +113,6 @@ TrgItem synchronize( const SrcItem& r1, const TrgItem& r2, const TreeData& td )
     diffSiblings( r1, r2, d, td );
 
     typename QValueList< DiffItem< SrcItem, TrgItem > >::const_iterator anIt = d.begin(), aLast = d.end();
-    bool isFirst = true;
     TrgItem lastItem = td.nullTrg();
     //    TrgItem tail = td.nullTrg();
     for( ; anIt!=aLast; anIt++ )
@@ -64,7 +128,9 @@ TrgItem synchronize( const SrcItem& r1, const TrgItem& r2, const TreeData& td )
        if( item.myTrg==td.nullTrg() )
        {
          //to add
-         lastItem = createSubTree( item.mySrc, r2, lastItem, isFirst, td );
+         TrgItem nitem = createSubTree( item.mySrc, r2, lastItem, lastItem==td.nullTrg(), td );
+         if( nitem!=td.nullTrg() )
+           lastItem = nitem;
        }
         else
        {
@@ -73,10 +139,9 @@ TrgItem synchronize( const SrcItem& r1, const TrgItem& r2, const TreeData& td )
          synchronize( item.mySrc, item.myTrg, td );
          lastItem = item.myTrg;
        }
-       isFirst = false;
       }
     }
-      
+
     return r2;
   }
   else
@@ -88,6 +153,14 @@ TrgItem synchronize( const SrcItem& r1, const TrgItem& r2, const TreeData& td )
   }
 }
 
+/*!
+  Finds equal element in list
+  \return iterator
+  \param l - list to search
+  \param first - start iterator 
+  \param it - item to be found
+  \param td - tree data object (provides auxiliary methods)
+*/
 template <class SrcItem, class TrgItem, class TreeData>
 const typename QValueList<TrgItem>::const_iterator findEqual( const QValueList<TrgItem>& l,
                                                              const typename QValueList<TrgItem>::const_iterator& first,
@@ -101,13 +174,20 @@ const typename QValueList<TrgItem>::const_iterator findEqual( const QValueList<T
   return last;
 }
 
+/*!
+  Compares children of objects src and trg
+  \param src - SrcItem to be checked
+  \param trg - TrgItem to be checked
+  \param d - map of difference to be filled
+  \param td - tree data object (provides auxiliary methods)
+*/
 template <class SrcItem, class TrgItem, class TreeData>
 void diffSiblings( const SrcItem& src, const TrgItem& trg,
                   QValueList < DiffItem < SrcItem,TrgItem > >& d,
                   const TreeData& td )
 {
-  if( src==td.nullSrc() || trg==td.nullTrg() )
-    return;
+  //if( src==td.nullSrc() || trg==td.nullTrg() )
+  //  return;
 
   QValueList<SrcItem> src_ch;
   QValueList<TrgItem> trg_ch;
@@ -155,6 +235,15 @@ void diffSiblings( const SrcItem& src, const TrgItem& trg,
   }
 }
 
+/*!
+  Creates sub-tree
+  \return root of just created sub-tree
+  \param src - corresponding SrcItem
+  \param parent - parent of new TrgItem
+  \param after - TrgItem, after that new item must be added
+  \param asFirst - true if TrgItem must be added as first
+  \param td - tree data object (provides auxiliary methods)
+*/
 template <class SrcItem, class TrgItem, class TreeData>
 TrgItem createSubTree( const SrcItem& src, const TrgItem& parent,
                       const TrgItem& after, const bool asFirst,
index 69288994b2cf10a6bacfdf19be8ab3714f6acb7d..3158025d4d74013645d1fa7f0dc9e0a1750eeeb6 100755 (executable)
@@ -254,9 +254,9 @@ void SUIT_ViewManager::onDeleteStudy()
     myStudy = NULL;
 }
 
+/*! invoke method of SUIT_PopupClient, which notifies about popup*/
 void SUIT_ViewManager::onContextMenuRequested( QContextMenuEvent* e )
 {
-  /*! invoke method of SUIT_PopupClient, which notifies about popup*/
   contextMenuRequest( e );
 }
 
index 38a9aac1e1706a2914ec6820788b46c68ea7b600..49bef3db856718c439122bed2f9d9d81bac73696 100755 (executable)
@@ -18,7 +18,6 @@
 //
 // SUIT_ViewModel.cxx: implementation of the SUIT_ViewModel class.
 //
-//////////////////////////////////////////////////////////////////////
 
 #include "SUIT_ViewModel.h"
 
index 3b013f679d202bf1a7c550edee5c3ab58184c682..a0e154a810081dc0e782f0e2a8affe82965c0165 100755 (executable)
@@ -18,7 +18,6 @@
 //
 // SUIT_ViewWindow.cxx: implementation of the SUIT_ViewWindow class.
 //
-//////////////////////////////////////////////////////////////////////
 
 #include "SUIT_ViewWindow.h"
 #include "SUIT_Desktop.h"
@@ -54,21 +53,36 @@ SUIT_ViewWindow::~SUIT_ViewWindow()
 {
 }
 
+/*!
+  Sets new view manager for window
+  \param theManager - new view manager
+*/
 void SUIT_ViewWindow::setViewManager( SUIT_ViewManager* theManager )
 {
   myManager = theManager;
 }
 
+/*!
+  \return view manager of window
+*/
 SUIT_ViewManager* SUIT_ViewWindow::getViewManager() const
 {
   return myManager;
 }
 
+/*!
+  \return QImage, containing all scene rendering in window
+*/
 QImage SUIT_ViewWindow::dumpView()
 {
   return QImage();
 }
 
+/*!
+  Saves scene rendering in window to file
+  \param fileName - name of file
+  \param format - string contains name of format (for example, "BMP"(default) or "JPEG", "JPG")
+*/
 bool SUIT_ViewWindow::dumpViewToFormat( const QString& fileName, const QString& format )
 {
   QImage img = dumpView();
@@ -111,6 +125,9 @@ void SUIT_ViewWindow::onDumpView()
   qApp->postEvent( this, new QCustomEvent( DUMP_EVENT ) );
 }
 
+/*!
+  \return filters for image files
+*/
 QString SUIT_ViewWindow::filter() const
 {
   return tr( "TLT_IMAGE_FILES" );
@@ -148,22 +165,30 @@ bool SUIT_ViewWindow::event( QEvent* e )
 
 /*! Called by SUIT_Accel::onActivated() when a key accelerator was activated and this window was active
 */
-void SUIT_ViewWindow::onAccelAction( int _action )
+bool SUIT_ViewWindow::onAccelAction( int _action )
 {
-  action( _action );
+  return action( _action );
 }
 
 /*! action  handle standard action (zoom, pan) or custom action.  to be redefined in successors.
 */
-void SUIT_ViewWindow::action( const int  )
+bool SUIT_ViewWindow::action( const int  )
 {
+  return true;
 }
 
+/*!
+  \return string containing visual parameters of window
+*/
 QString   SUIT_ViewWindow::getVisualParameters()
 {
   return "empty";
 }
+
+/*!
+  Sets visual parameters of window by its string representation
+  \param parameters - string with visual parameters
+*/ 
 void SUIT_ViewWindow::setVisualParameters( const QString& parameters )
 {
 }
index 200deb1c4d88f869be1ca7dc9d2da2d4aa3577e6..c32e6776a0510e45c1f30acab7b8e36a1401ec13 100755 (executable)
@@ -18,7 +18,6 @@
 //
 // SUIT_ViewWindow.h: interface for the SUIT_ViewWindow class.
 //
-//////////////////////////////////////////////////////////////////////
 
 #if !defined(AFX_SUIT_VIEWWINDOW_H__82C3D51A_6F10_45B0_BCFE_3CB3EF596A4D__INCLUDED_)
 #define AFX_SUIT_VIEWWINDOW_H__82C3D51A_6F10_45B0_BCFE_3CB3EF596A4D__INCLUDED_
@@ -50,7 +49,7 @@ public:
   virtual QImage    dumpView();
   virtual bool      dumpViewToFormat( const QString& fileName, const QString& format );
 
-  void              onAccelAction( int );
+  bool              onAccelAction( int );
 
   virtual QString   getVisualParameters();
   virtual void      setVisualParameters( const QString& parameters );
@@ -73,7 +72,7 @@ protected:
   void              closeEvent( QCloseEvent* );
   virtual void      contextMenuEvent( QContextMenuEvent* );
   virtual QString   filter() const;
-  virtual void      action( const int );
+  virtual bool      action( const int );
 
   SUIT_Desktop*     myDesktop;
   SUIT_ViewManager* myManager;
index b22696bbdef170736517017b276afe4bbaf4565b..7fa7e7f9d03e11b4a9e0d9d233943d4fcbf59557 100755 (executable)
@@ -1,3 +1,21 @@
+#  Copyright (C) 2005  CEA/DEN, EDF R&D, OPEN CASCADE, PRINCIPIA R&D
+#
+#  This library is free software; you can redistribute it and/or
+#  modify it under the terms of the GNU Lesser General Public
+#  License as published by the Free Software Foundation; either
+#  version 2.1 of the License.
+#
+#  This library is distributed in the hope that it will be useful,
+#  but WITHOUT ANY WARRANTY; without even the implied warranty of
+#  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+#  Lesser General Public License for more details.
+#
+#  You should have received a copy of the GNU Lesser General Public
+#  License along with this library; if not, write to the Free Software
+#  Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307 USA
+#
+#  See http://www.salome-platform.org/
+#
 # This is a Qt message file in .po format.  Each msgid starts with
 # a scope.  This scope should *NOT* be translated - eg. "Foo::Bar"
 # would be translated to "Pub", not "Foo::Pub".
index 95f43c7478f6c2f65414540106f205750eb95f7f..6de96c10868e4c5ab73c56c5e25b09daa8fb1c52 100755 (executable)
@@ -1,3 +1,21 @@
+#  Copyright (C) 2005  CEA/DEN, EDF R&D, OPEN CASCADE, PRINCIPIA R&D
+#
+#  This library is free software; you can redistribute it and/or
+#  modify it under the terms of the GNU Lesser General Public
+#  License as published by the Free Software Foundation; either
+#  version 2.1 of the License.
+#
+#  This library is distributed in the hope that it will be useful,
+#  but WITHOUT ANY WARRANTY; without even the implied warranty of
+#  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+#  Lesser General Public License for more details.
+#
+#  You should have received a copy of the GNU Lesser General Public
+#  License along with this library; if not, write to the Free Software
+#  Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307 USA
+#
+#  See http://www.salome-platform.org/
+#
 # This is a Qt message file in .po format.  Each msgid starts with
 # a scope.  This scope should *NOT* be translated - eg. "Foo::Bar"
 # would be translated to "Pub", not "Foo::Pub".
@@ -60,15 +78,6 @@ msgstr "The file \"%1\" does not exist!"
 msgid "ERR_PERMISSION_DENIED"
 msgstr "Can't save file \"%1\".\nPermission denied."
 
-msgid "BUT_OK"
-msgstr "&OK"
-
-msgid "BUT_YES"
-msgstr "&Yes"
-
-msgid "BUT_NO"
-msgstr "&No"
-
 msgid "INF_DIRECTORIES_FILTER"
 msgstr "Directories"
 
index cfc5ed0e53a1bae2e42bea6e41ca377248e1e8fd..fe27a2190d29aa70ea38131797b013762a68a99f 100755 (executable)
@@ -26,7 +26,7 @@
 //  Module : SALOME
 //  $Header$
 
-/* ---  Definition macros file to print informations if _DEBUG_ is defined --- */
+/*! ---  Definition macros file to print informations if _DEBUG_ is defined --- */
 
 #ifndef UTILITIES_H
 #define UTILITIES_H
@@ -38,7 +38,7 @@
 
 #include "LocalTraceBufferPool.hxx"
 
-/** \file utilities.h
+/*! \file utilities.h
  * For each message to put in the trace, a specific ostingstream object is \n
  * created and destroyed automatically at the end of the message macro. \n
  * The insert function of LocalTraceBufferPool class gets a buffer in a \n
@@ -65,7 +65,7 @@
                                std::cerr << "ABORT return code= "<< code << std::endl; \
                                std::exit(code);}
 
-/* --- To print date and time of compilation of current source --- */
+/*! --- To print date and time of compilation of current source --- */
 
 #if defined ( __GNUC__ )
 #define COMPILER               "g++" 
@@ -90,7 +90,7 @@
                                       << " at " << __TIME__ << MESS_END }
 #ifdef _DEBUG_
 
-/** @name the following MACROS are useful at debug time*/
+/*! @name the following MACROS are useful at debug time*/
 //@{
 #define MESSAGE(msg) {MESS_BEGIN("- Trace ") << msg << MESS_END}
 #define SCRUTE(var)  {MESS_BEGIN("- Trace ") << #var << "=" << var <<MESS_END}
index 9fb9dc088243f3120aea0f5acf75b1a2ec49fafd..7b005d2b429d9a37d322608a84c9b74c14f0bff1 100644 (file)
@@ -1,3 +1,21 @@
+#  Copyright (C) 2005  CEA/DEN, EDF R&D, OPEN CASCADE, PRINCIPIA R&D
+#
+#  This library is free software; you can redistribute it and/or
+#  modify it under the terms of the GNU Lesser General Public
+#  License as published by the Free Software Foundation; either
+#  version 2.1 of the License.
+#
+#  This library is distributed in the hope that it will be useful,
+#  but WITHOUT ANY WARRANTY; without even the implied warranty of
+#  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+#  Lesser General Public License for more details.
+#
+#  You should have received a copy of the GNU Lesser General Public
+#  License along with this library; if not, write to the Free Software
+#  Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307 USA
+#
+#  See http://www.salome-platform.org/
+#
 #  File   : Makefile.in
 #  Author : Vladimir Klyachin (OCN)
 #  Module : suitApp
index 497906700d51bd86b9e042b0d26df6b6d3415760..57098d0cc80cbc27b7c43862b7cd377d3e547350 100644 (file)
@@ -29,6 +29,7 @@
 #include <SUIT_Desktop.h>
 #include <SUIT_ResourceMgr.h>
 
+#include <QtxSplash.h>
 
 #ifdef SUIT_ENABLE_PYTHON
 #include <Python.h>
@@ -38,6 +39,7 @@
 #include <qfile.h>
 #include <qstring.h>
 #include <qstringlist.h>
+#include <qregexp.h>
 
 #include <stdlib.h>
 
@@ -101,7 +103,6 @@ public:
   SUITApp_Session( bool theIniFormat ) : SUIT_Session(), myIniFormat ( theIniFormat ) {}
   virtual ~SUITApp_Session() {}
 
-protected:
   virtual SUIT_ResourceMgr* createResourceMgr( const QString& appName ) const
   {
     SUIT_ResourceMgr* resMgr = 0;
@@ -139,13 +140,16 @@ int main( int args, char* argv[] )
 
   QStringList argList;
   bool noExceptHandling = false;
-  bool iniFormat = false;
+  bool iniFormat        = false;
+  bool noSplash         = false;
   for ( int i = 1; i < args /*&& !noExceptHandling*/; i++ )
   {
-    if ( !strcmp( argv[i], "/noexcepthandling" ) )
+    if ( !strcmp( argv[i], "--noexcepthandling" ) )
       noExceptHandling = true;
     else if ( !strcmp( argv[i], "--format=ini") )
       iniFormat = true;
+    else if ( !strcmp( argv[i], "--nosplash") )
+      noSplash = true;
     else
       argList.append( QString( argv[i] ) );
   }
@@ -156,6 +160,55 @@ int main( int args, char* argv[] )
   if ( !argList.isEmpty() )
   {
     SUITApp_Session* aSession = new SUITApp_Session( iniFormat );
+    QtxSplash* splash = 0;
+    if ( !noSplash ) {
+      SUIT_ResourceMgr* resMgr = aSession->createResourceMgr( argList.first() );
+      if ( resMgr ) {
+       resMgr->loadLanguage();
+       QString splashIcon, splashInfo, splashTextColors;
+       resMgr->value( "splash", "image",       splashIcon );
+       resMgr->value( "splash", "info",        splashInfo, false );
+       resMgr->value( "splash", "text_colors", splashTextColors );
+       QString appName    = QObject::tr( "APP_NAME" ).stripWhiteSpace();
+       QString appVersion = QObject::tr( "APP_VERSION" ).stripWhiteSpace();
+       if ( appVersion == "APP_VERSION" ) {
+         if ( appName == "APP_NAME" || appName.lower() == "salome" )
+           appVersion = salomeVersion();
+         else
+           appVersion = "";
+       }
+       QPixmap px( splashIcon );
+       if ( !px.isNull() ) {
+         splash = QtxSplash::splash( px );
+         if ( !splashTextColors.isEmpty() ) {
+           QStringList colors = QStringList::split( "|", splashTextColors );
+           QColor c1, c2;
+           if ( colors.count() > 0 ) c1 = QColor( colors[0] );
+           if ( colors.count() > 1 ) c2 = QColor( colors[1] );
+           splash->setTextColors( c1, c2 );
+         }
+         else {
+           splash->setTextColors( Qt::white, Qt::black );
+         }
+#ifdef _DEBUG_
+         splash->setHideOnClick( true );
+#endif
+         QFont f = splash->font();
+         f.setBold( true );
+         splash->setFont( f );
+         if ( !splashInfo.isEmpty() ) {
+           splashInfo.replace( QRegExp( "%A" ),  appName );
+           splashInfo.replace( QRegExp( "%V" ),  QObject::tr( "ABOUT_VERSION" ).arg( appVersion ) );
+           splashInfo.replace( QRegExp( "%L" ),  QObject::tr( "ABOUT_LICENSE" ) );
+           splashInfo.replace( QRegExp( "%C" ),  QObject::tr( "ABOUT_COPYRIGHT" ) );
+           splashInfo.replace( QRegExp( "\\\\n" ), "\n" );
+           splash->message( splashInfo );
+         }
+         splash->show();
+         qApp->processEvents();
+       }
+      }
+    }
     SUIT_Application* theApp = aSession->startApplication( argList.first() );
     if ( theApp )
     {
@@ -164,8 +217,12 @@ int main( int args, char* argv[] )
 
 //      if ( !app.mainWidget() )
 //        app.setMainWidget( theApp->desktop() );
+      if ( splash )
+       splash->finish( theApp->desktop() );
 
       result = app.exec();
+      if ( splash )
+       delete splash;
     }
     delete aSession;
   }
index 744d84acc481b4ee0ecc7302dac66b89e4b13626..84f267953e31805aa6164542defe20c0f7797a0b 100644 (file)
@@ -31,6 +31,9 @@
 #include <unistd.h>
 #endif
 
+/*!
+  Constructor
+*/
 SUITApp_Application::SUITApp_Application( int& argc, char** argv, SUIT_ExceptionHandler* hand )
 : QApplication( argc, argv ),
 myExceptHandler( hand )
@@ -45,6 +48,9 @@ myExceptHandler( hand )
     delete strTbl;
 }
 
+/*!
+  Constructor
+*/
 SUITApp_Application::SUITApp_Application( int& argc, char** argv, Type type, SUIT_ExceptionHandler* hand )
 : QApplication( argc, argv, type ),
 myExceptHandler( hand )
@@ -54,17 +60,30 @@ myExceptHandler( hand )
     installTranslator( strTbl );
 }
 
+/*!
+  Sends event to receiver
+  \return the value that is returned from the receiver's event handler
+  \param e - event
+  \param receiver - receiver
+*/
 bool SUITApp_Application::notify( QObject* receiver, QEvent* e )
 {
   return myExceptHandler ? myExceptHandler->handle( receiver, e ) :
                            QApplication::notify( receiver, e );
 }
 
+/*!
+  Changes exception handler
+  \param hand - new handler
+*/
 void SUITApp_Application::setHandler( SUIT_ExceptionHandler* hand )
 {
        myExceptHandler = hand;
 }
 
+/*!
+  \return exception handler
+*/
 SUIT_ExceptionHandler* SUITApp_Application::handler() const
 {
   return myExceptHandler;
index fa5399056f9eafe0be63ee9100770c2c90b1bf8f..1cc1968c2ac107baba7538123b3f549f46d273ac 100644 (file)
@@ -1,3 +1,21 @@
+#  Copyright (C) 2005  CEA/DEN, EDF R&D, OPEN CASCADE, PRINCIPIA R&D
+#
+#  This library is free software; you can redistribute it and/or
+#  modify it under the terms of the GNU Lesser General Public
+#  License as published by the Free Software Foundation; either
+#  version 2.1 of the License.
+#
+#  This library is distributed in the hope that it will be useful,
+#  but WITHOUT ANY WARRANTY; without even the implied warranty of
+#  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+#  Lesser General Public License for more details.
+#
+#  You should have received a copy of the GNU Lesser General Public
+#  License along with this library; if not, write to the Free Software
+#  Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307 USA
+#
+#  See http://www.salome-platform.org/
+#
 
 msgid "APP_ERROR"
 msgstr "Error"
index 8772d041e3ea8b14c527f32b87d2a44705bb5d1b..3c5c549633e5b501538ae409cf727e23fd83b12e 100755 (executable)
@@ -1,3 +1,21 @@
+#  Copyright (C) 2005  CEA/DEN, EDF R&D, OPEN CASCADE, PRINCIPIA R&D
+#
+#  This library is free software; you can redistribute it and/or
+#  modify it under the terms of the GNU Lesser General Public
+#  License as published by the Free Software Foundation; either
+#  version 2.1 of the License.
+#
+#  This library is distributed in the hope that it will be useful,
+#  but WITHOUT ANY WARRANTY; without even the implied warranty of
+#  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+#  Lesser General Public License for more details.
+#
+#  You should have received a copy of the GNU Lesser General Public
+#  License along with this library; if not, write to the Free Software
+#  Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307 USA
+#
+#  See http://www.salome-platform.org/
+#
 # source path
 top_srcdir=@top_srcdir@
 top_builddir=../..
@@ -34,7 +52,7 @@ RESOURCES_FILES = view_pan.png \
 
 LIB_CLIENT_IDL = 
 
-CPPFLAGS+=$(QT_INCLUDES) $(OCC_INCLUDES) $(PYTHON_INCLUDES) $(BOOST_CPPFLAGS) -I${KERNEL_ROOT_DIR}/include/salome
+CPPFLAGS+=$(QT_INCLUDES) $(OCC_INCLUDES) $(PYTHON_INCLUDES) $(BOOST_CPPFLAGS)
 LDFLAGS+=$(QT_MT_LIBS) -L$(top_builddir)/lib -lsuit
 
 
index 2b8f3d87f102f53878ae32d6141ced237589e18e..69aab0ec8dee478bd529316908f35a6dd4a549e6 100755 (executable)
@@ -31,6 +31,9 @@
 
 using namespace std;
 
+/*!
+  Creates view
+*/
 SUIT_ViewWindow* SUPERVGraph::createView(SUIT_Desktop* parent)
 {
   return new SUPERVGraph_ViewFrame( parent/*, "vtkView"*/ ); 
@@ -38,6 +41,9 @@ SUIT_ViewWindow* SUPERVGraph::createView(SUIT_Desktop* parent)
 
 extern "C"
 {
+  /*!
+    Creates view
+  */
   SUIT_ViewWindow* createView(SUIT_Desktop* parent)
   {
     return SUPERVGraph::createView(parent);
index 716cc8fcac8f1aa6c2325fe0521f907e5e685a4c..9bbf6431d692e4e4f432dc53ffead77c4a53833e 100755 (executable)
 using namespace std;
 
 
+/*!
+  Constructor
+*/
 SUPERVGraph_View::SUPERVGraph_View( QWidget* theParent ): QWidget( theParent )
 {
   init(theParent);
 }
 
+/*!
+  Constructor
+*/
 SUPERVGraph_View::SUPERVGraph_View( SUPERVGraph_View* theParent ): QWidget( theParent )
 {
   init(theParent);
 }
 
+/*!
+  Builds popup for SUPERVGraph viewer
+*/
 void SUPERVGraph_View::contextMenuPopup( QPopupMenu* )
 {
   // to be implemented
 }
 
+/*!
+  Initialization
+*/
 void SUPERVGraph_View::init( QWidget* theParent )
 {
   if ( theParent->inherits( "QMainWindow" ) ) {
@@ -88,6 +100,9 @@ SUPERVGraph_ViewFrame::SUPERVGraph_ViewFrame( SUIT_Desktop* theDesktop )
   createToolBar();
 }
 
+/*!
+  Creates actions of SUPERVGraph view window
+*/
 void SUPERVGraph_ViewFrame::createActions()
 {
   if (!myActionsMap.isEmpty()) return;
@@ -109,16 +124,18 @@ void SUPERVGraph_ViewFrame::createActions()
   myActionsMap[ ResetId ] = aAction;
 }
 
-//================================================================
-// Function : createToolBar
-// Purpose  : 
-//================================================================
+/*!
+  Creates toolbar of SUPERVGraph view window
+*/
 void SUPERVGraph_ViewFrame::createToolBar()
 {
   myActionsMap[PanId]->addTo(myToolBar);
   myActionsMap[ResetId]->addTo(myToolBar);
 }
 
+/*!
+  Destructor
+*/
 SUPERVGraph_ViewFrame::~SUPERVGraph_ViewFrame() {}
 
 /*!
@@ -130,10 +147,13 @@ SUPERVGraph_View* SUPERVGraph_ViewFrame::getViewWidget()
 }
 
 
+/*!
+  Sets new view widget
+  \param theView - new view widget
+*/
 void SUPERVGraph_ViewFrame::setViewWidget( SUPERVGraph_View* theView )
 {
   myView = theView;
-  setFocusProxy( myView ); // mkr : IPAL11388
 }
 
 
@@ -272,40 +292,69 @@ QColor SUPERVGraph_ViewFrame::backgroundColor() const
   return QMainWindow::backgroundColor();
 }
 
+/*!
+*/
 void SUPERVGraph_ViewFrame::onAdjustTrihedron()
 {
 //  MESSAGE ( "SUPERVGraph_ViewFrame::onAdjustTrihedron" )  
 }
 
+/*!
+  Changes name of object
+  \param obj - object to be renamed
+  \param name - new name
+*/
 void SUPERVGraph_ViewFrame::rename( const Handle(SALOME_InteractiveObject)& IObject, 
                                    QString newName )
 {
 //  MESSAGE ( "SUPERVGraph_ViewFrame::rename" )
 }
 
+/*!
+  Unhilights all object in viewer
+  \param updateviewer - update current viewer
+*/
 void SUPERVGraph_ViewFrame::unHighlightAll() 
 {
 //  MESSAGE ( "SUPERVGraph_ViewFrame::unHighlightAll" )
 }
 
+/*!
+  Hilights/unhilights object in viewer
+  \param obj - object to be updated
+  \param hilight - if it is true, object will be hilighted, otherwise it will be unhilighted
+  \param update - update current viewer
+*/
 void SUPERVGraph_ViewFrame::highlight( const Handle(SALOME_InteractiveObject)& IObject, 
                                       bool highlight, bool immediatly ) 
 {
 //  MESSAGE ( "SUPERVGraph_ViewFrame::highlight" )
 }
 
+/*!
+  \return true if object is in viewer or in collector
+  \param obj - object to be checked
+  \param onlyInViewer - search object only in viewer (so object must be displayed)
+*/
 bool SUPERVGraph_ViewFrame::isInViewer( const Handle(SALOME_InteractiveObject)& IObject ) 
 {
 //  MESSAGE ( "SUPERVGraph_ViewFrame::isInViewer" )
   return false;
 }
 
+/*!
+  \return true if object is displayed in viewer
+  \param obj - object to be checked
+*/
 bool SUPERVGraph_ViewFrame::isVisible( const Handle(SALOME_InteractiveObject)& IObject ) 
 {
 //  MESSAGE ( "SUPERVGraph_ViewFrame::isVisible" )
   return false;
 }
 
+/*!
+  Custom resize event handler
+*/
 void SUPERVGraph_ViewFrame::resizeEvent( QResizeEvent* theEvent )
 {
   QMainWindow::resizeEvent( theEvent );
index 9cf508b3156d8ddc1e1e85e1533b0e01e7c78fdd..fa3bfdb4a6ff9f96e299451c24bbb664049f9a47 100644 (file)
@@ -20,6 +20,9 @@
 
 int SUPERVGraph_ViewManager::myMaxId = 0;
 
+/*!
+  Constructor
+*/
 SUPERVGraph_ViewManager::SUPERVGraph_ViewManager( SUIT_Study* theStudy, 
                                                  SUIT_Desktop* theDesktop, 
                                                  SUIT_ViewModel* theViewModel )
@@ -28,16 +31,27 @@ SUPERVGraph_ViewManager::SUPERVGraph_ViewManager( SUIT_Study* theStudy,
   myId = ++myMaxId;
 }
 
+/*!
+  Destructor
+*/
 SUPERVGraph_ViewManager::~SUPERVGraph_ViewManager()
 {
 }
 
+/*!
+  Sets view name
+  \param theView - view to assign name
+*/
 void SUPERVGraph_ViewManager::setViewName(SUIT_ViewWindow* theView)
 {
   int aPos = myViews.find(theView);
   theView->setCaption( QString( "SUPERVISION  scene:%1 - viewer:%2" ).arg( myId ).arg(aPos+1));
 }
 
+/*!
+  Fills popup menu with custom actions
+ \param popup - popup menu to be filled with
+*/
 void SUPERVGraph_ViewManager::contextMenuPopup( QPopupMenu* thePopup)
 {
   SUIT_ViewManager::contextMenuPopup( thePopup );
index c6fe5f9ea7288a901042a568408aaf4cc4fced82..aadb0a192b08eecba0b52989325092ec8c60af5b 100644 (file)
 #include "SUIT_Desktop.h"
 #include "SUIT_ViewWindow.h"
 
+/*!
+  Constructor
+*/
 SUPERVGraph_Viewer::SUPERVGraph_Viewer()
 :SUIT_ViewModel() 
 {
 }
 
+/*!
+  Destructor
+*/
 SUPERVGraph_Viewer::~SUPERVGraph_Viewer() 
 {
 }
 
+/*!
+  Creates new view window
+  \param theDesktop - main window of application
+*/
 SUIT_ViewWindow* SUPERVGraph_Viewer::createView(SUIT_Desktop* theDesktop)
 {
   SUPERVGraph_ViewFrame* aRes = new SUPERVGraph_ViewFrame( theDesktop );
index 58c7e6fdb0843cda861f4a555fa8e2b21a4766c8..810689524f55385ff544f88d548b039925301024 100755 (executable)
@@ -1,3 +1,21 @@
+#  Copyright (C) 2005  CEA/DEN, EDF R&D, OPEN CASCADE, PRINCIPIA R&D
+#
+#  This library is free software; you can redistribute it and/or
+#  modify it under the terms of the GNU Lesser General Public
+#  License as published by the Free Software Foundation; either
+#  version 2.1 of the License.
+#
+#  This library is distributed in the hope that it will be useful,
+#  but WITHOUT ANY WARRANTY; without even the implied warranty of
+#  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+#  Lesser General Public License for more details.
+#
+#  You should have received a copy of the GNU Lesser General Public
+#  License along with this library; if not, write to the Free Software
+#  Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307 USA
+#
+#  See http://www.salome-platform.org/
+#
 #  File   : Makefile.in
 #  Author : Alexander Solovyov(OCN)
 #  Module : SVTK
@@ -19,6 +37,7 @@ EXPORT_HEADERS= \
        SALOME_Actor.h \
        SVTK_RectPicker.h \
        SVTK_DeviceActor.h \
+       SVTK_DialogBase.h \
        SVTK_FontWidget.h \
        SVTK_CubeAxesActor2D.h \
        SVTK_Functor.h \
@@ -38,7 +57,9 @@ EXPORT_HEADERS= \
        SVTK_Event.h \
        SVTK_ViewModelBase.h
 
-PO_FILES = SVTK_msg_en.po
+PO_FILES = \
+       SVTK_msg_en.po \
+       SVTK_images.po
 
 # Libraries targets
 LIB = libSVTK.la
@@ -51,7 +72,9 @@ LIB_SRC= \
        SVTK_DeviceActor.cxx \
        SVTK_CubeAxesActor2D.cxx \
        SVTK_NonIsometricDlg.cxx \
+       SVTK_UpdateRateDlg.cxx \
        SVTK_CubeAxesDlg.cxx \
+       SVTK_DialogBase.cxx \
        SVTK_FontWidget.cxx \
        SVTK_Trihedron.cxx \
        SVTK_MainWindow.cxx \
@@ -70,8 +93,10 @@ LIB_MOC = \
        SVTK_GenericRenderWindowInteractor.h \
        SVTK_RenderWindowInteractor.h \
        SVTK_NonIsometricDlg.h \
+       SVTK_UpdateRateDlg.h \
        SVTK_CubeAxesDlg.h \
        SVTK_FontWidget.h \
+       SVTK_DialogBase.h \
        SVTK_ViewModelBase.h \
        SVTK_ViewManager.h \
        SVTK_ViewWindow.h \
@@ -85,11 +110,13 @@ CPPFLAGS+= \
        $(QT_INCLUDES) \
        $(OCC_INCLUDES) \
        $(VTK_INCLUDES) \
+       $(QWT_INCLUDES) \
        $(BOOST_CPPFLAGS)
 
 LDFLAGS+= \
        $(QT_MT_LIBS) \
        $(OCC_LIBS) \
+       $(QWT_LIBS) \
        $(VTK_LIBS)
 
 LIBS+= -lqtx -lsuit -lstd -lCAM -lSalomeObject -lSalomePrs -lVTKViewer
index 9b1b7937d02b90b562884b45d15d114651c3b99c..bb100848c0419ce776ee924bc3a165533b25739c 100644 (file)
@@ -73,7 +73,6 @@ using namespace std;
 int SALOME_POINT_SIZE = 5;
 int SALOME_LINE_WIDTH = 3;
 
-//----------------------------------------------------------------------------
 namespace
 {
   int
@@ -83,12 +82,13 @@ namespace
   {
     int anEdgeId = 0;
     if (vtkCell* aPickedCell = theActor->GetElemCell(theObjId)) {
-      float aPickPosition[3];
+      vtkFloatingPointType aPickPosition[3];
       thePicker->GetPickPosition(aPickPosition);
-      float aMinDist = 1000000.0, aDist = 0;
+      vtkFloatingPointType aMinDist = 1000000.0, aDist = 0;
       for (int i = 0, iEnd = aPickedCell->GetNumberOfEdges(); i < iEnd; i++){
        if(vtkLine* aLine = vtkLine::SafeDownCast(aPickedCell->GetEdge(i))){
-         int subId;  float pcoords[3], closestPoint[3], weights[3];
+         int subId;  
+         vtkFloatingPointType pcoords[3], closestPoint[3], weights[3];
          aLine->EvaluatePosition(aPickPosition,closestPoint,subId,pcoords,aDist,weights);
          if (aDist < aMinDist) {
            aMinDist = aDist;
@@ -122,11 +122,11 @@ namespace
 }
 
 
-//----------------------------------------------------------------------------
 vtkStandardNewMacro(SALOME_Actor);
 
-
-//----------------------------------------------------------------------------
+/*!
+  Constructor
+*/
 SALOME_Actor
 ::SALOME_Actor():
   myRenderer(NULL),
@@ -164,14 +164,17 @@ SALOME_Actor
   myOutlineActor->SetVisibility( false );
 }
 
-
-//----------------------------------------------------------------------------
+/*!
+  Destructor
+*/
 SALOME_Actor
 ::~SALOME_Actor()
 {}
 
 
-//----------------------------------------------------------------------------
+/*!
+  \return true if the SALOME_Actor has a reference to SALOME_InteractiveObject
+*/
 Standard_Boolean 
 SALOME_Actor
 ::hasIO() 
@@ -179,6 +182,9 @@ SALOME_Actor
   return !myIO.IsNull(); 
 }
 
+/*!
+  \return correspoinding reference to SALOME_InteractiveObject
+*/
 const Handle(SALOME_InteractiveObject)& 
 SALOME_Actor
 ::getIO()
@@ -186,6 +192,10 @@ SALOME_Actor
   return myIO; 
 }
 
+/*!
+  Sets reference to SALOME_InteractiveObject
+  \param theIO - new SALOME_InteractiveObject
+*/
 void
 SALOME_Actor
 ::setIO(const Handle(SALOME_InteractiveObject)& theIO) 
@@ -193,6 +203,10 @@ SALOME_Actor
   myIO = theIO; 
 }
 
+/*!
+  Sets name the SALOME_Actor
+  \param theName - new name
+*/
 void
 SALOME_Actor
 ::setName(const char* theName)
@@ -203,7 +217,9 @@ SALOME_Actor
 }
 
 
-//----------------------------------------------------------------------------
+/*!
+  Publishes the actor in all its internal devices
+*/
 void
 SALOME_Actor
 ::AddToRender(vtkRenderer* theRenderer)
@@ -217,6 +233,9 @@ SALOME_Actor
   theRenderer->AddActor( myOutlineActor.GetPointer() );
 }
 
+/*!
+  Removes the actor from all its internal devices
+*/
 void 
 SALOME_Actor
 ::RemoveFromRender(vtkRenderer* theRenderer)
@@ -228,6 +247,9 @@ SALOME_Actor
   theRenderer->RemoveActor( myOutlineActor.GetPointer() );
 }
 
+/*!
+  \return reference on renderer where it is published
+*/
 vtkRenderer*
 SALOME_Actor
 ::GetRenderer()
@@ -235,8 +257,10 @@ SALOME_Actor
   return myRenderer;
 }
 
-
-//----------------------------------------------------------------------------
+/*!
+  Sets interactor in order to use vtkInteractorObserver devices
+  \param theInteractor - new interactor
+*/
 void
 SALOME_Actor
 ::SetInteractor(vtkRenderWindowInteractor* theInteractor)
@@ -244,6 +268,9 @@ SALOME_Actor
   myInteractor = theInteractor;
 }
 
+/*!
+  Put a request to redraw the view 
+*/
 void
 SALOME_Actor
 ::Update()
@@ -251,8 +278,10 @@ SALOME_Actor
   myInteractor->CreateTimer(VTKI_TIMER_UPDATE);    
 }
 
-
-//----------------------------------------------------------------------------
+/*!
+  Apply view transformation
+  \param theTransform - transformation
+*/
 void
 SALOME_Actor
 ::SetTransform(VTKViewer_Transform* theTransform)
@@ -264,10 +293,14 @@ SALOME_Actor
   myOutlineActor->SetTransform(theTransform);
 }
 
-
+/*!
+  Apply additional position
+*/
 void
 SALOME_Actor
-::SetPosition(float _arg1, float _arg2, float _arg3)
+::SetPosition(vtkFloatingPointType _arg1, 
+             vtkFloatingPointType _arg2, 
+             vtkFloatingPointType _arg3)
 {
   Superclass::SetPosition(_arg1,_arg2,_arg3);
 
@@ -276,16 +309,20 @@ SALOME_Actor
   myOutlineActor->SetPosition(_arg1,_arg2,_arg3);
 }
 
-
+/*!
+  Apply additional position
+*/
 void
 SALOME_Actor
-::SetPosition(float _arg[3])
+::SetPosition(vtkFloatingPointType _arg[3])
 {
   SetPosition(_arg[0],_arg[1],_arg[2]);
 }
 
-
-//----------------------------------------------------------------
+/*!
+  Shows/hides actor
+  \param theVisibility - new visibility state
+*/
 void
 SALOME_Actor
 ::SetVisibility( int theVisibility )
@@ -304,8 +341,10 @@ SALOME_Actor
   }
 }
 
-
-//----------------------------------------------------------------
+/*!
+  Set selector in order to the actor at any time can restore current selection
+  \param theSelector - new selector
+*/
 void
 SALOME_Actor
 ::SetSelector(SVTK_Selector* theSelector)
@@ -313,6 +352,9 @@ SALOME_Actor
   mySelector = theSelector;
 }
 
+/*!
+  To map current selection to VTK representation
+*/
 void
 SALOME_Actor
 ::Highlight(bool theIsHighlight)
@@ -349,11 +391,14 @@ SALOME_Actor
   highlight(theIsHighlight);
 }
 
+/*!
+  Updates visibility of the highlight devices  
+*/
 void
 SALOME_Actor
 ::highlight(bool theIsHighlight)
 {
-  float aBounds[6];
+  vtkFloatingPointType aBounds[6];
   GetInput()->GetBounds(aBounds);
   myOutline->SetBounds(aBounds);
   myOutlineActor->SetVisibility( GetVisibility() && theIsHighlight );
@@ -362,13 +407,18 @@ SALOME_Actor
 }
 
 
-//----------------------------------------------------------------
+/*!
+  To process prehighlight (called from SVTK_InteractorStyle)
+*/
 bool
 SALOME_Actor
 ::PreHighlight(vtkInteractorStyle *theInteractorStyle, 
               SVTK_SelectionEvent* theSelectionEvent,
               bool theIsHighlight)
 {
+  if ( !GetPickable() )
+    return false;
+
   vtkRenderer *aRenderer = theInteractorStyle->GetCurrentRenderer();
   //
   myPreHighlightActor->SetVisibility( false );
@@ -377,9 +427,9 @@ SALOME_Actor
   Selection_Mode aSelectionMode = theSelectionEvent->mySelectionMode;
   bool anIsChanged = (mySelectionMode != aSelectionMode);
 
-  float x = theSelectionEvent->myX;
-  float y = theSelectionEvent->myY;
-  float z = 0.0;
+  vtkFloatingPointType x = theSelectionEvent->myX;
+  vtkFloatingPointType y = theSelectionEvent->myY;
+  vtkFloatingPointType z = 0.0;
 
   if( !theIsHighlight ) {
     SetPreSelected( false );
@@ -500,14 +550,18 @@ SALOME_Actor
   return anIsChanged;
 }
 
-
-//----------------------------------------------------------------
+/*!
+  To process highlight (called from SVTK_InteractorStyle)
+*/
 bool
 SALOME_Actor
 ::Highlight(vtkInteractorStyle *theInteractorStyle, 
            SVTK_SelectionEvent* theSelectionEvent,
            bool theIsHighlight)
 {
+  if ( !GetPickable() )
+    return false;
+
   myOutlineActor->SetVisibility( false );
   myHighlightActor->SetVisibility( false );
 
@@ -515,13 +569,16 @@ SALOME_Actor
   //
   Selection_Mode aSelectionMode = theSelectionEvent->mySelectionMode;
   bool anIsShift = theSelectionEvent->myIsShift;
-  if( !anIsShift ) {
+  if( !anIsShift || !theIsHighlight ) {
     mySelector->RemoveIObject( this );
   }
 
-  float x = theSelectionEvent->myX;
-  float y = theSelectionEvent->myY;
-  float z = 0.0;
+  if ( !theIsHighlight )
+    return true;
+
+  vtkFloatingPointType x = theSelectionEvent->myX;
+  vtkFloatingPointType y = theSelectionEvent->myY;
+  vtkFloatingPointType z = 0.0;
 
   if( !theSelectionEvent->myIsRectangle ) {
     switch(aSelectionMode){
@@ -588,16 +645,16 @@ SALOME_Actor
       break;
     }
   }else{
-    float xLast = theSelectionEvent->myLastX;
-    float yLast = theSelectionEvent->myLastY;
-    float zLast = 0.0;
+    vtkFloatingPointType xLast = theSelectionEvent->myLastX;
+    vtkFloatingPointType yLast = theSelectionEvent->myLastY;
+    vtkFloatingPointType zLast = 0.0;
 
-    float x1 = x < xLast ? x : xLast;
-    float y1 = y < yLast ? y : yLast;
-    float z1 = z < zLast ? z : zLast;
-    float x2 = x > xLast ? x : xLast;
-    float y2 = y > yLast ? y : yLast;
-    float z2 = z > zLast ? z : zLast;
+    vtkFloatingPointType x1 = x < xLast ? x : xLast;
+    vtkFloatingPointType y1 = y < yLast ? y : yLast;
+    vtkFloatingPointType z1 = z < zLast ? z : zLast;
+    vtkFloatingPointType x2 = x > xLast ? x : xLast;
+    vtkFloatingPointType y2 = y > yLast ? y : yLast;
+    vtkFloatingPointType z2 = z > zLast ? z : zLast;
 
     switch(aSelectionMode){
     case NodeSelection: {
@@ -611,7 +668,6 @@ SALOME_Actor
       if(aMapIter != aVectorIdsMap.end()){
        const SVTK_RectPicker::TVectorIds& aVectorIds = aMapIter->second;
        vtkIdType anEnd = aVectorIds.size();
-       SVTK_RectPicker::TVectorIds::const_iterator anIdIter = aVectorIds.begin();
        for(vtkIdType anId = 0; anId < anEnd; anId++ ) {
          int aPointId = aVectorIds[anId];
          if( aPointId >= 0 && mySelector->IsValid( this, aPointId, true ) ) {
@@ -633,8 +689,8 @@ SALOME_Actor
     }
     case ActorSelection :
     {
-      float aPnt[3];
-      float* aBounds = GetBounds();
+      vtkFloatingPointType aPnt[3];
+      vtkFloatingPointType* aBounds = GetBounds();
 
       bool anIsPicked = true;
       for( int i = 0; i <= 1; i++ ) {
@@ -672,7 +728,6 @@ SALOME_Actor
       if(aMapIter != aVectorIdsMap.end()){
        const SVTK_RectPicker::TVectorIds& aVectorIds = aMapIter->second;
        vtkIdType anEnd = aVectorIds.size();
-       SVTK_RectPicker::TVectorIds::const_iterator anIdIter = aVectorIds.begin();
        for(vtkIdType anId = 0; anId < anEnd; anId++ ) {
          int aCellId = aVectorIds[anId];
          if ( !mySelector->IsValid( this, aCellId ) )
@@ -698,7 +753,10 @@ SALOME_Actor
   return true;
 }
 
-//----------------------------------------------------------------------------
+/*!
+  To set up a picker for nodal selection (initialized by SVTK_Renderer::AddActor)
+  \param thePointPicker - new picker
+*/
 void
 SALOME_Actor
 ::SetPointPicker(vtkPointPicker* thePointPicker) 
@@ -706,6 +764,10 @@ SALOME_Actor
   myPointPicker = thePointPicker;
 }
 
+/*!
+  To set up a picker for cell selection (initialized by SVTK_Renderer::AddActor)
+  \param theCellPicker - new picker
+*/
 void
 SALOME_Actor
 ::SetCellPicker(vtkCellPicker* theCellPicker) 
@@ -713,6 +775,10 @@ SALOME_Actor
   myCellPicker = theCellPicker;
 }
 
+/*!
+  To set up a picker for point rectangle selection (initialized by SVTK_Renderer::AddActor)
+  \param theRectPicker - new picker
+*/
 void
 SALOME_Actor
 ::SetPointRectPicker(SVTK_RectPicker* theRectPicker) 
@@ -720,6 +786,10 @@ SALOME_Actor
   myPointRectPicker = theRectPicker;
 }
 
+/*!
+  To set up a picker for cell rectangle selection (initialized by SVTK_Renderer::AddActor)
+  \param theRectPicker - new picker
+*/
 void
 SALOME_Actor
 ::SetCellRectPicker(SVTK_RectPicker* theRectPicker) 
@@ -727,7 +797,9 @@ SALOME_Actor
   myCellRectPicker = theRectPicker;
 }
 
-//----------------------------------------------------------------------------
+/*!
+  To set up a prehighlight property (initialized by SVTK_Renderer::AddActor)
+*/
 void
 SALOME_Actor
 ::SetPreHighlightProperty(vtkProperty* theProperty) 
@@ -735,6 +807,9 @@ SALOME_Actor
   myPreHighlightActor->SetProperty(theProperty);
 }
 
+/*!
+  To set up a highlight property (initialized by SVTK_Renderer::AddActor)
+*/
 void
 SALOME_Actor
 ::SetHighlightProperty(vtkProperty* theProperty) 
index d377ff633a148f0a96680711ef0f00c8d08f5f0e..3539e4b73c27dad879552cf440225baff1c5f1c8 100644 (file)
@@ -100,12 +100,14 @@ class SVTK_EXPORT SALOME_Actor : public VTKViewer_Actor
   //! Apply additional position
   virtual
   void
-  SetPosition(float _arg1, float _arg2, float _arg3);
+  SetPosition(vtkFloatingPointType _arg1, 
+             vtkFloatingPointType _arg2, 
+             vtkFloatingPointType _arg3);
 
   //! Apply additional position
   virtual
   void
-  SetPosition(float _arg[3]);
+  SetPosition(vtkFloatingPointType _arg[3]);
 
   //----------------------------------------------------------------------------
   //! Visibility management
index d4d8cf530f9969b489dc80e3f8d9b6034a6a0cbb..69bf29c1cba46885b1197b978b8d8a3b13d39582 100755 (executable)
 //
 // See http://www.salome-platform.org/
 //
-#ifdef WNT\r
-#ifdef SVTK_EXPORTS\r
-#define SVTK_EXPORT __declspec(dllexport)\r
-#else\r
-#define SVTK_EXPORT __declspec(dllimport)\r
-#endif\r
-#else\r
-#define SVTK_EXPORT\r
-#endif\r
-\r
-#if defined WNT\r
-#pragma warning ( disable: 4251 )\r
-#pragma warning ( disable: 4786 )\r
-#endif\r
+#ifndef SVTK_H
+#define SVTK_H
+
+#include "VTKViewer.h"
+
+#ifdef WNT
+#  ifdef SVTK_EXPORTS
+#    define SVTK_EXPORT __declspec(dllexport)
+#  else
+#   define SVTK_EXPORT __declspec(dllimport)
+#  endif
+#else
+#  define SVTK_EXPORT
+#endif
+
+#if defined WNT
+#pragma warning ( disable: 4251 )
+#pragma warning ( disable: 4786 )
+#endif
+
+#endif
index 337075bb1a4e8d52e43b9dfba5b3886709200cfc..dbe6aad1bc6c6b380c701c42f4bf2bba6b3a029f 100644 (file)
@@ -46,10 +46,11 @@ CopyPoints(vtkUnstructuredGrid* theGrid, vtkDataSet *theSourceDataSet)
   aPoints->Delete();
 }
 
-//=======================================================================
-
 vtkStandardNewMacro(SVTK_Actor);
 
+/*!
+  Constructor
+*/
 SVTK_Actor
 ::SVTK_Actor():
   myUnstructuredGrid(vtkUnstructuredGrid::New())
@@ -62,7 +63,6 @@ SVTK_Actor
   myUnstructuredGrid->Allocate();
 }
 
-//----------------------------------------------------------------------------
 void
 SVTK_Actor
 ::Initialize()
@@ -70,8 +70,6 @@ SVTK_Actor
   SetInput(GetSource());
 }
 
-
-//----------------------------------------------------------------------------
 void
 SVTK_Actor
 ::SetSource(vtkUnstructuredGrid* theUnstructuredGrid)
@@ -91,15 +89,14 @@ SVTK_Actor
   return myUnstructuredGrid.GetPointer();
 }
 
-
-//----------------------------------------------------------------------------
+/*!
+  Destructor
+*/
 SVTK_Actor
 ::~SVTK_Actor()
 {
 }
 
-
-//----------------------------------------------------------------------------
 const TColStd_IndexedMapOfInteger&
 SVTK_Actor
 ::GetMapIndex() const
@@ -107,8 +104,6 @@ SVTK_Actor
   return myMapIndex;
 }
 
-
-//----------------------------------------------------------------------------
 void
 SVTK_Actor
 ::MapCells(SALOME_Actor* theMapActor,
@@ -136,8 +131,6 @@ SVTK_Actor
   myMapIndex = theMapIndex;
 }
 
-
-//----------------------------------------------------------------------------
 void 
 SVTK_Actor
 ::MapPoints(SALOME_Actor* theMapActor,
@@ -151,7 +144,7 @@ SVTK_Actor
     aPoints->SetNumberOfPoints(aNbOfParts);
     for(int i = 0; i < aNbOfParts; i++){
       int aPartId = theMapIndex( i+1 );
-      if(float* aCoord = theMapActor->GetNodeCoord(aPartId)){
+      if(vtkFloatingPointType* aCoord = theMapActor->GetNodeCoord(aPartId)){
        aPoints->SetPoint(i,aCoord);
        myUnstructuredGrid->InsertNextCell(VTK_VERTEX,1,&i);
       }
@@ -165,8 +158,6 @@ SVTK_Actor
   myMapIndex = theMapIndex;
 }
 
-
-//----------------------------------------------------------------------------
 void
 SVTK_Actor
 ::MapEdge(SALOME_Actor* theMapActor,
@@ -205,5 +196,3 @@ SVTK_Actor
 
   myMapIndex = theMapIndex;
 }
-
-//----------------------------------------------------------------------------
index 3fdcf72f38f5c111b99a3ea52be5ca1d8df093ce..7c2d6ae8ce75d11c47f93423ecd0d364485f073b 100644 (file)
@@ -48,7 +48,6 @@
 vtkCxxRevisionMacro(SVTK_CubeAxesActor2D, "$Revision$");
 vtkStandardNewMacro(SVTK_CubeAxesActor2D);
 
-//----------------------------------------------------------------------------
 // Instantiate this object.
 SVTK_CubeAxesActor2D::SVTK_CubeAxesActor2D()
 {
@@ -130,7 +129,6 @@ SVTK_CubeAxesActor2D::SVTK_CubeAxesActor2D()
   
 }
 
-//----------------------------------------------------------------------------
 SVTK_CubeAxesActor2D::~SVTK_CubeAxesActor2D()
 {
   this->wireActorXY->Delete();
@@ -146,12 +144,10 @@ SVTK_CubeAxesActor2D::~SVTK_CubeAxesActor2D()
   this->rgridMapperXZ->Delete();
 }
 
-//----------------------------------------------------------------------------
 // Static variable describes connections in cube.
 static int Conn[8][3] = {{1,2,4}, {0,3,5}, {3,0,6}, {2,1,7},
                          {5,6,0}, {4,7,1}, {7,4,2}, {6,5,3}};
 
-//----------------------------------------------------------------------------
 // Project the bounding box and compute edges on the border of the bounding
 // cube. Determine which parts of the edges are visible via intersection 
 // with the boundary of the viewport (minus borders).
@@ -198,8 +194,13 @@ int SVTK_CubeAxesActor2D::RenderOverlay(vtkViewport *viewport)
   return renderedSomething;
 }
 
-static void ChangeValues(float* aArray1,float* aArray2,float *aRange1,float* aRange2,bool theY){
-  float tmp=-1000;
+static void ChangeValues(vtkFloatingPointType* aArray1,
+                        vtkFloatingPointType* aArray2,
+                        vtkFloatingPointType *aRange1,
+                        vtkFloatingPointType* aRange2,
+                        bool theY)
+{
+  vtkFloatingPointType tmp=-1000;
   if (!theY){
     for (int i=0; i<4; i++){
       tmp = aArray1[i]; aArray1[i] = aArray2[i]; aArray2[i] = tmp;
@@ -223,9 +224,15 @@ static void ChangeValues(float* aArray1,float* aArray2,float *aRange1,float* aRa
   }
 }
 
-static void ChangeArrays(float* xCoords,float* yCoords,float* zCoords,
-                        float* xRange,float* yRange,float* zRange,
-                        const int xAxes,const int yAxes, const int zAxes)
+static void ChangeArrays(vtkFloatingPointType* xCoords,
+                        vtkFloatingPointType* yCoords,
+                        vtkFloatingPointType* zCoords,
+                        vtkFloatingPointType* xRange,
+                        vtkFloatingPointType* yRange,
+                        vtkFloatingPointType* zRange,
+                        const int xAxes,
+                        const int yAxes, 
+                        const int zAxes)
 {
   if ( xAxes == 0 && yAxes == 2 && zAxes == 1)
     ChangeValues(yCoords,zCoords,yRange,zRange,true);
@@ -243,14 +250,13 @@ static void ChangeArrays(float* xCoords,float* yCoords,float* zCoords,
     ChangeValues(zCoords,xCoords,zRange,xRange,false);
 }
 
-//----------------------------------------------------------------------------
 // Project the bounding box and compute edges on the border of the bounding
 // cube. Determine which parts of the edges are visible via intersection 
 // with the boundary of the viewport (minus borders).
 int SVTK_CubeAxesActor2D::RenderOpaqueGeometry(vtkViewport *viewport)
 {
-  float bounds[6], slope = 0.0, minSlope, num, den;
-  float pts[8][3], d2, d2Min, min;
+  vtkFloatingPointType bounds[6], slope = 0.0, minSlope, num, den;
+  vtkFloatingPointType pts[8][3], d2, d2Min, min;
   int i, idx = 0;
   int xIdx, yIdx = 0, zIdx = 0, zIdx2, renderedSomething=0;
   int xAxes = 0, yAxes, zAxes;
@@ -308,7 +314,7 @@ int SVTK_CubeAxesActor2D::RenderOpaqueGeometry(vtkViewport *viewport)
       }
     else
       {
-      float e1[2], e2[2], e3[2];
+      vtkFloatingPointType e1[2], e2[2], e3[2];
 
       // Find distance to origin
       d2Min = VTK_LARGE_FLOAT;
@@ -401,7 +407,7 @@ int SVTK_CubeAxesActor2D::RenderOpaqueGeometry(vtkViewport *viewport)
     }
 
   // Setup the axes for plotting
-  float xCoords[4], yCoords[4], zCoords[4], xRange[2], yRange[2], zRange[2];
+  vtkFloatingPointType xCoords[4], yCoords[4], zCoords[4], xRange[2], yRange[2], zRange[2];
   this->AdjustAxes(pts, bounds, idx, xIdx, yIdx, zIdx, zIdx2, 
                    xAxes, yAxes, zAxes, 
                    xCoords, yCoords, zCoords, xRange, yRange, zRange);
@@ -449,7 +455,7 @@ int SVTK_CubeAxesActor2D::RenderOpaqueGeometry(vtkViewport *viewport)
 #else
   for(i=0;i<numOfLabelsX;i++){
 #endif
-    float val = bounds[0]+i*(bounds[1]-bounds[0])/(numOfLabelsX-1);
+    vtkFloatingPointType val = bounds[0]+i*(bounds[1]-bounds[0])/(numOfLabelsX-1);
     XCoords->InsertNextValue(val);
   }
   // YCoords coordinates for Y grid
@@ -459,7 +465,7 @@ int SVTK_CubeAxesActor2D::RenderOpaqueGeometry(vtkViewport *viewport)
 #else
   for(i=0;i<numOfLabelsX;i++){
 #endif
-    float val = bounds[2]+i*(bounds[3]-bounds[2])/(numOfLabelsY-1);
+    vtkFloatingPointType val = bounds[2]+i*(bounds[3]-bounds[2])/(numOfLabelsY-1);
     YCoords->InsertNextValue(val);
   }
   // ZCoords coordinates for Z grid
@@ -469,7 +475,7 @@ int SVTK_CubeAxesActor2D::RenderOpaqueGeometry(vtkViewport *viewport)
 #else
   for(i=0;i<numOfLabelsZ;i++){
 #endif
-    float val = bounds[4]+i*(bounds[5]-bounds[4])/(numOfLabelsZ-1);
+    vtkFloatingPointType val = bounds[4]+i*(bounds[5]-bounds[4])/(numOfLabelsZ-1);
     ZCoords->InsertNextValue(val);
   }
 
@@ -485,8 +491,8 @@ int SVTK_CubeAxesActor2D::RenderOpaqueGeometry(vtkViewport *viewport)
 
   rgrid->Delete();
 
-  float aCPosition[3];
-  float aCDirection[3];
+  vtkFloatingPointType aCPosition[3];
+  vtkFloatingPointType aCDirection[3];
   this->Camera->GetPosition(aCPosition);
   this->Camera->GetDirectionOfProjection(aCDirection);
 
@@ -494,12 +500,12 @@ int SVTK_CubeAxesActor2D::RenderOpaqueGeometry(vtkViewport *viewport)
   bool replaceXY=false;
   bool replaceYZ=false;
   bool replaceXZ=false;
-  float p[6][3]; // centers of planes
-  float vecs[6][3]; // 6 vectors from camera position to centers
+  vtkFloatingPointType p[6][3]; // centers of planes
+  vtkFloatingPointType vecs[6][3]; // 6 vectors from camera position to centers
 
-  float aMiddleX = (XCoords->GetValue(0) + XCoords->GetValue(numOfLabelsX-1))/2;
-  float aMiddleY = (YCoords->GetValue(0) + YCoords->GetValue(numOfLabelsY-1))/2;
-  float aMiddleZ = (ZCoords->GetValue(0) + ZCoords->GetValue(numOfLabelsZ-1))/2;
+  vtkFloatingPointType aMiddleX = (XCoords->GetValue(0) + XCoords->GetValue(numOfLabelsX-1))/2;
+  vtkFloatingPointType aMiddleY = (YCoords->GetValue(0) + YCoords->GetValue(numOfLabelsY-1))/2;
+  vtkFloatingPointType aMiddleZ = (ZCoords->GetValue(0) + ZCoords->GetValue(numOfLabelsZ-1))/2;
 
   // plane XY
   p[0][0] = aMiddleX; // plane X=0.5 Y=0.5 Z=0
@@ -555,7 +561,7 @@ int SVTK_CubeAxesActor2D::RenderOpaqueGeometry(vtkViewport *viewport)
   YCoords->Delete();
   ZCoords->Delete();
 
-  float color[3];
+  vtkFloatingPointType color[3];
 
   this->GetProperty()->GetColor(color);
   this->wireActorXY->GetProperty()->SetColor(color);
@@ -644,7 +650,6 @@ int SVTK_CubeAxesActor2D::RenderOpaqueGeometry(vtkViewport *viewport)
   return renderedSomething;
 }
 
-//----------------------------------------------------------------------------
 // Release any graphics resources that are being consumed by this actor.
 // The parameter window could be used to determine which graphic
 // resources to release.
index 1de1c1ce84ef02cba8887db89704a7457fca5774..44e3e9810c23f57eb0336957a1e9e54b723666aa 100644 (file)
@@ -41,7 +41,8 @@ class vtkPolyDataMapper;
 class vtkRectilinearGridGeometryFilter;
 class VTKViewer_Transform;
 
-#include <SVTK.h>
+#include "SVTK.h"
+#include "VTKViewer.h"
 
 #ifndef WNT
 class VTK_HYBRID_EXPORT SVTK_CubeAxesActor2D : public vtkCubeAxesActor2D
index 57c9e56941750a7d701259b2a4b14eecd8c8381f..d5c83a39b14f78929cf9cdc1608a0a7c4763e0b3 100644 (file)
  * Description : Tab of dialog
  */
 
-//=======================================================================
-// name    : SVTK_AxisWidget::AxisWg
-// Purpose : Constructor
-//=======================================================================
+/*!
+  Constructor
+*/
 SVTK_AxisWidget::SVTK_AxisWidget (QWidget* theParent)
 :  QFrame(theParent)
 {
@@ -143,6 +142,9 @@ SVTK_AxisWidget::SVTK_AxisWidget (QWidget* theParent)
   connect(myIsTicksVisible, SIGNAL(stateChanged(int)), SLOT(onTicksChecked()));
 }
 
+/*!
+  Destructor
+*/
 SVTK_AxisWidget::~SVTK_AxisWidget()
 {
 }
@@ -154,10 +156,6 @@ void SVTK_AxisWidget::updateControlState()
   onTicksChecked();
 }
 
-//=======================================================================
-// name    : SVTK_AxisWidget::onNameChecked
-// Purpose :
-//=======================================================================
 void SVTK_AxisWidget::setEnabled(QGroupBox* theGrp, const bool theState)
 {
   QObjectList aChildren(*theGrp->children());
@@ -167,55 +165,31 @@ void SVTK_AxisWidget::setEnabled(QGroupBox* theGrp, const bool theState)
       ((QHBox*)anObj)->setEnabled(theState);
 }
 
-//=======================================================================
-// Labels    : SVTK_AxisWidget::onLabelsChecked
-// Purpose :
-//=======================================================================
 void SVTK_AxisWidget::onLabelsChecked()
 {
   setEnabled(myLabelsGrp, myIsLabelsVisible->isChecked());
 }
 
-//=======================================================================
-// Labels    : SVTK_AxisWidget::onTicksChecked
-// Purpose :
-//=======================================================================
 void SVTK_AxisWidget::onTicksChecked()
 {
   setEnabled(myTicksGrp, myIsTicksVisible->isChecked());
 }
 
-//=======================================================================
-// name    : SVTK_AxisWidget::onNameChecked
-// Purpose :
-//=======================================================================
 void SVTK_AxisWidget::onNameChecked()
 {
   setEnabled(myNameGrp, myIsNameVisible->isChecked());
 }
 
-//=======================================================================
-// name    : SVTK_AxisWidget::UseName
-// Purpose :
-//=======================================================================
 void SVTK_AxisWidget::UseName(const bool toUse)
 {
   myIsNameVisible->setChecked(toUse);
 }
 
-//=======================================================================
-// name    : SVTK_AxisWidget::SetName
-// Purpose :
-//================================================== =====================
 void SVTK_AxisWidget::SetName(const QString& theName)
 {
   myAxisName->setText(theName);
 }
 
-//=======================================================================
-// name    : SVTK_AxisWidget::SetNameFont
-// Purpose :
-//=======================================================================
 void SVTK_AxisWidget::SetNameFont(const QColor& theColor,
                                   const int theFont,
                                   const bool theIsBold,
@@ -225,10 +199,6 @@ void SVTK_AxisWidget::SetNameFont(const QColor& theColor,
   myNameFont->SetData(theColor, theFont, theIsBold, theIsItalic, theIsShadow);
 }
 
-//=======================================================================
-// name    : SVTK_AxisWidget::SetNameFont
-// Purpose :
-//=======================================================================
 bool SVTK_AxisWidget::ReadData(vtkAxisActor2D* theActor)
 {
   if (theActor == 0)
@@ -248,7 +218,7 @@ bool SVTK_AxisWidget::ReadData(vtkAxisActor2D* theActor)
   vtkTextProperty* aTitleProp = theActor->GetTitleTextProperty();
   if (aTitleProp !=0)
   {
-    float c[ 3 ];
+    vtkFloatingPointType c[ 3 ];
     aTitleProp->GetColor(c);
     aTitleColor.setRgb((int)(c[ 0 ] * 255), (int)(c[ 1 ] * 255), (int)(c[ 2 ] * 255));
     aTitleFontFamily = aTitleProp->GetFontFamily();
@@ -276,7 +246,7 @@ bool SVTK_AxisWidget::ReadData(vtkAxisActor2D* theActor)
   vtkTextProperty* aLabelsProp = theActor->GetLabelTextProperty();
   if (aLabelsProp !=0)
   {
-    float c[ 3 ];
+    vtkFloatingPointType c[ 3 ];
     aLabelsProp->GetColor(c);
     aLabelsColor.setRgb((int)(c[ 0 ] * 255), (int)(c[ 1 ] * 255), (int)(c[ 2 ] * 255));
     aLabelsFontFamily = aLabelsProp->GetFontFamily();
@@ -300,10 +270,6 @@ bool SVTK_AxisWidget::ReadData(vtkAxisActor2D* theActor)
   return true;
 }
 
-//=======================================================================
-// name    : SVTK_CubeAxesDlg::Apply
-// Purpose :
-//=======================================================================
 bool SVTK_AxisWidget::Apply(vtkAxisActor2D* theActor)
 {
    if (theActor == 0)
@@ -383,31 +349,30 @@ bool SVTK_AxisWidget::Apply(vtkAxisActor2D* theActor)
   Description : Dialog for specifynig cube axes properties
 */
 
-//=======================================================================
-// name    : SVTK_CubeAxesDlg::SVTK_CubeAxesDlg
-// Purpose : Constructor
-//=======================================================================
-SVTK_CubeAxesDlg::SVTK_CubeAxesDlg(SVTK_MainWindow* theParent,
-                                  const char* theName,
-                                  QtxAction* theAction):
-  QDialog(theParent, 
-         theName, 
-         false,
-         WStyle_Customize | WStyle_NormalBorder | WStyle_Title | WStyle_SysMenu),
-  myMainWindow(theParent),
-  myAction(theAction)
+/*!
+  Constructor
+*/
+SVTK_CubeAxesDlg::SVTK_CubeAxesDlg(QtxAction* theAction,
+                                  SVTK_MainWindow* theParent,
+                                  const char* theName):
+  SVTK_DialogBase(theAction,
+                 theParent, 
+                 theName),
+  myMainWindow(theParent)
 {
   setCaption(tr("CAPTION"));
 
   QVBoxLayout* aLay = new QVBoxLayout(this, 5, 5);
   aLay->addWidget(createMainFrame(this));
   aLay->addWidget(createButtonFrame(this));
+
+  connect(theParent, SIGNAL(Show( QShowEvent * )), this, SLOT(onParentShow()));
+  connect(theParent, SIGNAL(Hide( QHideEvent * )), this, SLOT(onParentHide()));
 }
 
-//=======================================================================
-// name    : SVTK_CubeAxesDlg::createMainFrame
-// Purpose : Create frame containing dialog's input fields
-//=======================================================================
+/*!
+  Create frame containing dialog's input fields
+*/
 QWidget* SVTK_CubeAxesDlg::createMainFrame(QWidget* theParent)
 {
   QFrame* aFrame = new QFrame(theParent);
@@ -433,10 +398,9 @@ QWidget* SVTK_CubeAxesDlg::createMainFrame(QWidget* theParent)
   return aFrame;
 }
 
-//=======================================================================
-// name    : SVTK_CubeAxesDlg::createButtonFrame
-// Purpose : Create frame containing buttons
-//=======================================================================
+/*!
+  Create frame containing buttons
+*/
 QWidget* SVTK_CubeAxesDlg::createButtonFrame(QWidget* theParent)
 {
   QFrame* aFrame = new QFrame(theParent);
@@ -462,18 +426,16 @@ QWidget* SVTK_CubeAxesDlg::createButtonFrame(QWidget* theParent)
   return aFrame;
 }
 
-//=======================================================================
-// name    : SVTK_CubeAxesDlg::~SVTK_CubeAxesDlg
-// Purpose : Destructor
-//=======================================================================
+/*!
+  Destructor
+*/
 SVTK_CubeAxesDlg::~SVTK_CubeAxesDlg()
 {
 }
 
-//=======================================================================
-// name    : SVTK_CubeAxesDlg::Update
-// Purpose : Update dialog fields, connect signals and slots, show dialog
-//=======================================================================
+/*!
+  Update dialog fields, connect signals and slots, show dialog
+*/
 void SVTK_CubeAxesDlg::Update()
 {
   myActor = myMainWindow->GetCubeAxes();
@@ -485,19 +447,17 @@ void SVTK_CubeAxesDlg::Update()
   myIsVisible->setChecked(myActor->GetVisibility() ? true : false);
 }
 
-//=======================================================================
-// name    : SVTK_CubeAxesDlg::isValid
-// Purpose : Verify validity of entry data
-//=======================================================================
+/*!
+  Verify validity of entry data
+*/
 bool SVTK_CubeAxesDlg::isValid() const
 {
   return true;
 }
 
-//=======================================================================
-// name    : SVTK_CubeAxesDlg::onApply
-// Purpose : Verify validity of entry data
-//=======================================================================
+/*!
+  Verify validity of entry data
+*/
 bool SVTK_CubeAxesDlg::onApply()
 {
   bool isOk = true;
@@ -534,29 +494,19 @@ bool SVTK_CubeAxesDlg::onApply()
   return isOk;
 }
 
-//=======================================================================
-// name    : SVTK_CubeAxesDlg::onOk
-// Purpose : SLOT called when "Ok" button pressed.
-//=======================================================================
+/*!
+  SLOT called when "Ok" button pressed.
+*/
 void SVTK_CubeAxesDlg::onOk()
 {
   if (onApply())
     onClose();
 }
 
-//=======================================================================
-// name    : SVTK_CubeAxesDlg::onClose
-// Purpose : SLOT called when "Close" button pressed. Close dialog
-//=======================================================================
+/*!
+  SLOT: called when "Close" button pressed. Close dialog
+*/
 void SVTK_CubeAxesDlg::onClose()
 {
   reject();
-
-  myAction->setOn( false );
-}
-
-void SVTK_CubeAxesDlg::done( int r )
-{
-  myAction->setOn( false );
-  QDialog::done( r );
 }
index 642306084f6c0e935ffa8ebbe7d57a7b05d0da43..b8047e2014b79a8f492a6ba49aa42307467b74c3 100644 (file)
@@ -27,7 +27,8 @@
 #ifndef SVTK_CubeAxesDlg_H
 #define SVTK_CubeAxesDlg_H
 
-#include <qdialog.h>
+#include "SVTK_DialogBase.h"
+
 #include <qframe.h>
 
 class QWidget;
@@ -52,14 +53,14 @@ class SVTK_MainWindow;
  * Class       : SVTK_CubeAxesDlg
  * Description : Dialog for specifynig cube axes properties
  */
-class SVTK_CubeAxesDlg : public QDialog
+class SVTK_CubeAxesDlg : public SVTK_DialogBase
 {
   Q_OBJECT
 
 public:
-                  SVTK_CubeAxesDlg(SVTK_MainWindow* theParent,
-                                  const char* theName,
-                                  QtxAction* theAction);
+                  SVTK_CubeAxesDlg(QtxAction* theAction,
+                                  SVTK_MainWindow* theParent,
+                                  const char* theName);
   virtual         ~SVTK_CubeAxesDlg();
 
   void            Update();
@@ -69,8 +70,6 @@ private slots:
   bool            onApply();
   void            onClose();
 
-  virtual void    done( int );
-
 private:
   QWidget*        createButtonFrame( QWidget* );
   QWidget*        createMainFrame  ( QWidget* );
@@ -79,7 +78,6 @@ private:
 private:
   SVTK_MainWindow *myMainWindow;
   SVTK_CubeAxesActor2D* myActor;
-  QtxAction* myAction;
 
   QTabWidget*     myTabWg;
   QCheckBox*      myIsVisible;
index be959115cd70535e0f41e59b466884d5f7a6fb79..21b032c31847007201ea6a160e5828e0317fb39c 100644 (file)
 
 using namespace std;
 
-//----------------------------------------------------------------------------
 vtkStandardNewMacro(SVTK_DeviceActor);
 
-
-//----------------------------------------------------------------------------
+/*!
+  Constructor
+*/
 SVTK_DeviceActor
 ::SVTK_DeviceActor()
 {
@@ -77,8 +77,9 @@ SVTK_DeviceActor
     myPassFilter.push_back(VTKViewer_PassThroughFilter::New());
 }
 
-
-//----------------------------------------------------------------------------
+/*!
+  Destructor
+*/
 SVTK_DeviceActor
 ::~SVTK_DeviceActor()
 {
@@ -96,8 +97,9 @@ SVTK_DeviceActor
     myPassFilter[i]->Delete();
 }
 
-
-//----------------------------------------------------------------------------
+/*!
+  To insert some additional filters and then sets the given vtkMapper
+*/
 void
 SVTK_DeviceActor
 ::SetMapper(vtkMapper* theMapper)
@@ -105,6 +107,9 @@ SVTK_DeviceActor
   InitPipeLine(theMapper);
 }
 
+/*!
+  To initialize internal pipeline
+*/
 void
 SVTK_DeviceActor
 ::InitPipeLine(vtkMapper* theMapper)
@@ -139,7 +144,9 @@ SVTK_DeviceActor
   Superclass::SetMapper(theMapper);
 }
 
-//----------------------------------------------------------------------------
+/*!
+  Allows to get initial vtkDataSet
+*/
 vtkDataSet* 
 SVTK_DeviceActor
 ::GetInput()
@@ -147,6 +154,9 @@ SVTK_DeviceActor
   return myPassFilter.front()->GetOutput();
 }
 
+/*!
+  Allows to set initial vtkDataSet
+*/
 void
 SVTK_DeviceActor
 ::SetInput(vtkDataSet* theDataSet)
@@ -155,7 +165,9 @@ SVTK_DeviceActor
   InitPipeLine(myMapper);
 }
 
-//----------------------------------------------------------------------------
+/*!
+  To provide VTK to Object and backward mapping
+*/
 void
 SVTK_DeviceActor::
 SetStoreMapping(bool theStoreMapping)
@@ -164,8 +176,9 @@ SetStoreMapping(bool theStoreMapping)
 }
 
 
-
-//----------------------------------------------------------------------------
+/*!
+  \return time of modification
+*/
 unsigned long int 
 SVTK_DeviceActor
 ::GetMTime()
@@ -185,8 +198,10 @@ SVTK_DeviceActor
   return mTime;
 }
 
-
-//----------------------------------------------------------------------------
+/*!
+  Apply a view transformation
+  \param theTransform - transformation
+*/
 void 
 SVTK_DeviceActor
 ::SetTransform(VTKViewer_Transform* theTransform)
@@ -194,15 +209,20 @@ SVTK_DeviceActor
   myTransformFilter->SetTransform(theTransform);
 }
 
-
-//----------------------------------------------------------------------------
+/*!
+  \return true if actor is shrinkable
+*/
 bool
 SVTK_DeviceActor
 ::IsShrunkable() 
 { 
   return myIsShrinkable;
 }
-  
+
+/*!
+  Changes shrinkable state of actor
+  theIsShrinkable - new shrinkable state
+*/  
 void
 SVTK_DeviceActor
 ::SetShrinkable(bool theIsShrinkable) 
@@ -210,6 +230,9 @@ SVTK_DeviceActor
   myIsShrinkable = theIsShrinkable;
 }
   
+/*!
+  \return true if actor is shrunkable
+*/
 bool
 SVTK_DeviceActor
 ::IsShrunk() 
@@ -217,6 +240,9 @@ SVTK_DeviceActor
   return myIsShrunk;
 }
 
+/*!
+  Insert shrink filter into pipeline
+*/
 void
 SVTK_DeviceActor
 ::SetShrink() 
@@ -231,6 +257,9 @@ SVTK_DeviceActor
   }
 }
 
+/*!
+  Remove shrink filter from pipeline
+*/
 void 
 SVTK_DeviceActor
 ::UnShrink() 
@@ -243,23 +272,32 @@ SVTK_DeviceActor
   }
 }
 
-float
+/*!
+  \return shrink factor
+*/
+vtkFloatingPointType
 SVTK_DeviceActor
 ::GetShrinkFactor()
 {
   return myShrinkFilter->GetShrinkFactor();
 }
 
+/*!
+  Changes shrink factor
+  \param theValue - new shrink factor
+*/
 void 
 SVTK_DeviceActor
-::SetShrinkFactor(float theValue)
+::SetShrinkFactor(vtkFloatingPointType theValue)
 {
   myShrinkFilter->SetShrinkFactor(theValue);
 }
 
 
-
-//----------------------------------------------------------------------------
+/*!
+  Set representation (VTK_SURFACE, VTK_POINTS, VTK_WIREFRAME and so on)
+  param theMode - new mode
+*/
 void
 SVTK_DeviceActor
 ::SetRepresentation(SVTK::Representation::Type theMode)
@@ -311,6 +349,9 @@ SVTK_DeviceActor
   myRepresentation = theMode;
 }
 
+/*!
+  \return current representation mode
+*/
 SVTK::Representation::Type 
 SVTK_DeviceActor
 ::GetRepresentation()
@@ -318,21 +359,29 @@ SVTK_DeviceActor
   return myRepresentation;
 }
 
-float
+/*!
+  \return default point size
+*/
+vtkFloatingPointType
 SVTK_DeviceActor
 ::GetDefaultPointSize()
 {
   return 5;
 }
 
-float
+/*!
+  \return default line width
+*/
+vtkFloatingPointType
 SVTK_DeviceActor
 ::GetDefaultLineWidth()
 {
   return 3;
 }
 
-
+/*!
+  \return true if actor is shaded
+*/
 bool
 SVTK_DeviceActor
 ::IsShaded()
@@ -340,6 +389,10 @@ SVTK_DeviceActor
   return myIsShaded;
 }
 
+/*!
+  Sets shaded state of actor
+  \param theShaded - new shaded state
+*/
 void
 SVTK_DeviceActor
 ::SetShaded(bool theShaded)
@@ -347,8 +400,9 @@ SVTK_DeviceActor
   myIsShaded = theShaded;
 }
 
-
-//----------------------------------------------------------------------------
+/*!
+  Maps VTK index of a node to corresponding object index
+*/
 int
 SVTK_DeviceActor
 ::GetNodeObjId(int theVtkID)
@@ -356,7 +410,10 @@ SVTK_DeviceActor
   return theVtkID;
 }
 
-float* 
+/*!
+  Get coordinates of a node for given object index
+*/
+vtkFloatingPointType* 
 SVTK_DeviceActor
 ::GetNodeCoord(int theObjID)
 {
@@ -364,6 +421,9 @@ SVTK_DeviceActor
 }
 
 
+/*!
+  Get corresponding #vtkCell for given object index
+*/
 vtkCell* 
 SVTK_DeviceActor
 ::GetElemCell(int theObjID)
@@ -371,6 +431,9 @@ SVTK_DeviceActor
   return GetInput()->GetCell(theObjID);
 }
 
+/*!
+  Maps VTK index of a cell to corresponding object index
+*/
 int
 SVTK_DeviceActor
 ::GetElemObjId(int theVtkID) 
@@ -378,15 +441,16 @@ SVTK_DeviceActor
   return theVtkID;
 }
 
-
-//----------------------------------------------------------------------------
+/*!
+  Renders actor
+*/
 void
 SVTK_DeviceActor
 ::Render(vtkRenderer *ren, vtkMapper* m)
 {
   if(myIsResolveCoincidentTopology){
     int aResolveCoincidentTopology = vtkMapper::GetResolveCoincidentTopology();
-    float aFactor, aUnit; 
+    vtkFloatingPointType aFactor, aUnit; 
     vtkMapper::GetResolveCoincidentTopologyPolygonOffsetParameters(aFactor,aUnit);
     
     vtkMapper::SetResolveCoincidentTopologyToPolygonOffset();
@@ -401,18 +465,27 @@ SVTK_DeviceActor
   }
 }
 
-
+/*!
+  Set polygon offset parameters
+  \param factor, units  - Opengl polygon offset parameters
+*/
 void
 SVTK_DeviceActor
-::SetPolygonOffsetParameters(float factor, float units)
+::SetPolygonOffsetParameters(vtkFloatingPointType factor, 
+                            vtkFloatingPointType units)
 {
   myPolygonOffsetFactor = factor;
   myPolygonOffsetUnits = units;
 }
 
+/*!
+  Get polygon offset parameters
+  \param factor, units  - Opengl polygon offset parameters
+*/
 void
 SVTK_DeviceActor
-::GetPolygonOffsetParameters(float& factor, float& units)
+::GetPolygonOffsetParameters(vtkFloatingPointType& factor, 
+                            vtkFloatingPointType& units)
 {
   factor = myPolygonOffsetFactor;
   units = myPolygonOffsetUnits;
index f8a49bc36316937a3669c5542f9fa035ec54332b..5eee841f4d4bc3bd4eea67c3812e9ddeea472a7b 100644 (file)
@@ -29,6 +29,9 @@
 #ifndef SVTK_DEVICE_ACTOR_H
 #define SVTK_DEVICE_ACTOR_H
 
+#include "SVTK.h"
+#include "VTKViewer.h"
+
 #include <vector>
 
 #include <vtkLODActor.h>
@@ -44,7 +47,6 @@ class vtkDataSet;
 class vtkShrinkFilter;
 class vtkDataSetMapper;
 
-//----------------------------------------------------------------------------
 namespace SVTK
 {
   namespace Representation
@@ -58,8 +60,7 @@ namespace SVTK
 }
 
 
-//----------------------------------------------------------------------------
-class SVTK_DeviceActor: public vtkLODActor
+class SVTK_EXPORT SVTK_DeviceActor: public vtkLODActor
 {
  public:
   vtkTypeMacro(SVTK_DeviceActor,vtkLODActor);
@@ -95,7 +96,7 @@ class SVTK_DeviceActor: public vtkLODActor
   GetNodeObjId(int theVtkID);
 
   virtual
-  float
+  vtkFloatingPointType
   GetNodeCoord(int theObjID);
 
   virtual
@@ -118,12 +119,12 @@ class SVTK_DeviceActor: public vtkLODActor
 
   /** @name For shrink mamnagement purpose */
   //@{
-  float
+  vtkFloatingPointType
   GetShrinkFactor();
 
   virtual 
   void  
-  SetShrinkFactor(float value);
+  SetShrinkFactor(vtkFloatingPointType value);
 
   virtual
   void
@@ -153,11 +154,11 @@ class SVTK_DeviceActor: public vtkLODActor
   GetRepresentation();
 
   virtual
-  float
+  vtkFloatingPointType
   GetDefaultPointSize();
 
   virtual
-  float
+  vtkFloatingPointType
   GetDefaultLineWidth();
 
   bool
@@ -190,11 +191,13 @@ class SVTK_DeviceActor: public vtkLODActor
   bool myIsShrunk;
   
   bool myIsResolveCoincidentTopology;
-  float myPolygonOffsetFactor;
-  float myPolygonOffsetUnits;
+  vtkFloatingPointType myPolygonOffsetFactor;
+  vtkFloatingPointType myPolygonOffsetUnits;
 
-  void SetPolygonOffsetParameters(float factor, float units);
-  void GetPolygonOffsetParameters(float& factor, float& units);
+  void SetPolygonOffsetParameters(vtkFloatingPointType factor, 
+                                 vtkFloatingPointType units);
+  void GetPolygonOffsetParameters(vtkFloatingPointType& factor, 
+                                 vtkFloatingPointType& units);
 
   SVTK_DeviceActor();
   ~SVTK_DeviceActor();
diff --git a/src/SVTK/SVTK_DialogBase.cxx b/src/SVTK/SVTK_DialogBase.cxx
new file mode 100644 (file)
index 0000000..ff35c36
--- /dev/null
@@ -0,0 +1,84 @@
+//  SALOME VTKViewer : build VTK viewer into Salome desktop
+//
+//  Copyright (C) 2003  OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN,
+//  CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS 
+// 
+//  This library is free software; you can redistribute it and/or 
+//  modify it under the terms of the GNU Lesser General Public 
+//  License as published by the Free Software Foundation; either 
+//  version 2.1 of the License. 
+// 
+//  This library is distributed in the hope that it will be useful, 
+//  but WITHOUT ANY WARRANTY; without even the implied warranty of 
+//  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU 
+//  Lesser General Public License for more details. 
+// 
+//  You should have received a copy of the GNU Lesser General Public 
+//  License along with this library; if not, write to the Free Software 
+//  Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307 USA 
+// 
+//  See http://www.opencascade.org/SALOME/ or email : webmaster.salome@opencascade.org 
+//
+//
+//
+//  File   : 
+//  Author : 
+//  Module : SALOME
+//  $Header$
+
+#include "SVTK_DialogBase.h"
+
+#include "QtxAction.h"
+
+/*!
+  Constructor
+*/
+SVTK_DialogBase
+::SVTK_DialogBase(QtxAction* theAction,
+                 QWidget* theParent,
+                 const char* theName, 
+                 bool theModal, 
+                 WFlags theWFalgs):
+  QDialog(theParent, 
+         theName, 
+         theModal, 
+         theWFalgs | WStyle_Customize | WStyle_NormalBorder | WStyle_Title | WStyle_SysMenu),
+  myAction(theAction)
+{
+  connect(theParent, SIGNAL(Show( QShowEvent * )), this, SLOT(onParentShow()));
+  connect(theParent, SIGNAL(Hide( QHideEvent * )), this, SLOT(onParentHide()));
+}
+
+/*
+ *  Destroys the object and frees any allocated resources
+ */
+SVTK_DialogBase
+::~SVTK_DialogBase()
+{
+  // no need to delete child widgets, Qt does it all for us
+}
+
+void 
+SVTK_DialogBase
+::onParentShow()
+{
+  if(myAction->isOn())
+    show();
+  else
+    hide();
+}
+
+void 
+SVTK_DialogBase
+::onParentHide()
+{
+  hide();
+}
+
+void 
+SVTK_DialogBase
+::done( int r )
+{
+  myAction->setOn( false );
+  QDialog::done( r );
+}
diff --git a/src/SVTK/SVTK_DialogBase.h b/src/SVTK/SVTK_DialogBase.h
new file mode 100644 (file)
index 0000000..eb2262f
--- /dev/null
@@ -0,0 +1,60 @@
+//  SALOME VTKViewer : build VTK viewer into Salome desktop
+//
+//  Copyright (C) 2003  OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN,
+//  CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS 
+// 
+//  This library is free software; you can redistribute it and/or 
+//  modify it under the terms of the GNU Lesser General Public 
+//  License as published by the Free Software Foundation; either 
+//  version 2.1 of the License. 
+// 
+//  This library is distributed in the hope that it will be useful, 
+//  but WITHOUT ANY WARRANTY; without even the implied warranty of 
+//  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU 
+//  Lesser General Public License for more details. 
+// 
+//  You should have received a copy of the GNU Lesser General Public 
+//  License along with this library; if not, write to the Free Software 
+//  Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307 USA 
+// 
+//  See http://www.opencascade.org/SALOME/ or email : webmaster.salome@opencascade.org 
+//
+//
+//
+//  File   : 
+//  Author : 
+//  Module : SALOME
+//  $Header$
+
+#ifndef SVTK_DIALOGBASE_H
+#define SVTK_DIALOGBASE_H
+
+#include "SVTK.h"
+
+#include <qdialog.h>
+
+class QtxAction;
+
+class SVTK_EXPORT SVTK_DialogBase : public QDialog
+{
+  Q_OBJECT;
+
+public:
+  SVTK_DialogBase(QtxAction* theAction,
+                 QWidget* theParent,
+                 const char* theName = "", 
+                 bool theModal = FALSE, 
+                 WFlags theWFalgs = 0);
+
+  ~SVTK_DialogBase();
+
+protected slots:
+  void onParentShow();
+  void onParentHide();
+  virtual void done( int );
+
+protected:
+  QtxAction* myAction;
+};
+
+#endif // SVTK_DIALOGBASE_H
index edaa9a6c07f24dc62d5d98979cc2e3ddff1c4e13..92f16923e9d4dd7091defeb48d8d26f9c28a7b0d 100644 (file)
  * Description : Dialog for specifynig font
  */
 
-//=======================================================================
-// name    : SVTK_FontWidget
-// Purpose : Constructor
-//=======================================================================
+/*!
+  Constructor
+*/
 SVTK_FontWidget::SVTK_FontWidget( QWidget* theParent )
 : QHBox( theParent )
 {
@@ -62,36 +61,23 @@ SVTK_FontWidget::SVTK_FontWidget( QWidget* theParent )
   connect( myColorBtn, SIGNAL( clicked() ), SLOT( onColor() ) );
 }
 
-//=======================================================================
-// name    : ~SVTK_FontWidget
-// Purpose : Destructor
-//=======================================================================
+/*!
+  Destructor
+*/
 SVTK_FontWidget::~SVTK_FontWidget()
 {
 }
 
-//=======================================================================
-// name    : SetColor
-// Purpose :
-//=======================================================================
 void SVTK_FontWidget::SetColor( const QColor& theColor )
 {
   myColorBtn->setPaletteBackgroundColor( theColor );
 }
 
-//=======================================================================
-// name    : GetColor
-// Purpose :
-//=======================================================================
 QColor SVTK_FontWidget::GetColor() const
 {
   return myColorBtn->paletteBackgroundColor();
 }
 
-//=======================================================================
-// name    : onColor
-// Purpose :
-//=======================================================================
 void SVTK_FontWidget::onColor()
 {
   QColor aColor = QColorDialog::getColor( GetColor(), this );
@@ -99,10 +85,6 @@ void SVTK_FontWidget::onColor()
     SetColor( aColor );
 }
 
-//=======================================================================
-// name    : SetData
-// Purpose :
-//=======================================================================
 void SVTK_FontWidget::SetData( const QColor& theColor,
                               const int theFamily,
                               const bool theBold,
@@ -123,10 +105,6 @@ void SVTK_FontWidget::SetData( const QColor& theColor,
   myShadow->setChecked( theShadow );
 }
 
-//=======================================================================
-// name    : GetData
-// Purpose :
-//=======================================================================
 void SVTK_FontWidget::GetData( QColor& theColor,
                               int& theFamily,
                               bool& theBold,
index e3cb3c8e289d61422d534f1840eda38909ac7105..4f7cbb59980ff20b866a1ee7c096248eab38a8de 100644 (file)
 
 using namespace std;
 
-//----------------------------------------------------------------------------
 vtkStandardNewMacro(QVTK_GenericRenderWindowInteractor);
 
+/*!
+  Constructor
+*/
 QVTK_GenericRenderWindowInteractor
 ::QVTK_GenericRenderWindowInteractor()
 {
@@ -46,14 +48,18 @@ QVTK_GenericRenderWindowInteractor
   connect(myTimer, SIGNAL(timeout()), this, SLOT(OnTimeOut())) ;
 }
 
+/*!
+  Destructor
+*/
 QVTK_GenericRenderWindowInteractor
 ::~QVTK_GenericRenderWindowInteractor()
 {
   delete myTimer;
 }
 
-
-//----------------------------------------------------------------------------
+/*!
+  The slot connects to QTimer::timeout signal to invoke vtkCommand::TimerEvent
+*/
 void
 QVTK_GenericRenderWindowInteractor
 ::OnTimeOut() 
@@ -63,6 +69,9 @@ QVTK_GenericRenderWindowInteractor
   }
 }
 
+/*!
+  Starts the QTimer instance on defined microseconds
+*/
 int
 QVTK_GenericRenderWindowInteractor
 ::CreateTimer(int vtkNotUsed(timertype)) 
@@ -75,6 +84,9 @@ QVTK_GenericRenderWindowInteractor
   return 1;
 }
 
+/*!
+  Stops the QTimer instance
+*/
 int
 QVTK_GenericRenderWindowInteractor
 ::DestroyTimer(void) 
@@ -95,20 +107,28 @@ QVTK_GenericRenderWindowInteractor
 }
 
 
-//----------------------------------------------------------------------------
 vtkStandardNewMacro(SVTK_GenericRenderWindowInteractor);
 
+/*!
+  Constructor
+*/
 SVTK_GenericRenderWindowInteractor
 ::SVTK_GenericRenderWindowInteractor():
   myRenderWidget(NULL)
 {
 }
 
+/*!
+  Destructor
+*/
 SVTK_GenericRenderWindowInteractor
 ::~SVTK_GenericRenderWindowInteractor()
 {
 }
 
+/*!
+  To get access to SVTK_Selector
+*/
 SVTK_Selector*
 SVTK_GenericRenderWindowInteractor
 ::GetSelector()
@@ -116,6 +136,10 @@ SVTK_GenericRenderWindowInteractor
   return mySelector.GetPointer();
 }
 
+/*!
+  To initialize mySelector field
+  \param theSelector - new selector
+*/
 void
 SVTK_GenericRenderWindowInteractor
 ::SetSelector(SVTK_Selector* theSelector)
@@ -123,6 +147,9 @@ SVTK_GenericRenderWindowInteractor
   mySelector = theSelector;
 }
 
+/*!
+  To get access to QWidget, where vtkRenderWindow maps to.
+*/
 QWidget*
 SVTK_GenericRenderWindowInteractor
 ::GetRenderWidget()
@@ -130,6 +157,9 @@ SVTK_GenericRenderWindowInteractor
   return myRenderWidget;
 }
 
+/*!
+  To initialize myRenderWidget field.
+*/
 void
 SVTK_GenericRenderWindowInteractor
 ::SetRenderWidget(QWidget* theRenderWidget)
index d15fdc557f994a1e40a6cff5397eba096da52063..4e9ab968f18cbda8cb9dae4dc51be58c4d35c292 100644 (file)
@@ -42,9 +42,9 @@ class SVTK_Selector;
 class SVTK_Renderer;
 
 
-//============================================================================
-//! Introduction of the class is intended to implement Qt based #CreateTimer and #DestroyTimer functionality.
 /*!
+  \class QVTK_GenericRenderWindowInteractor
+  Introduction of the class is intended to implement Qt based #CreateTimer and #DestroyTimer functionality.
   The class intendes to implement platform indepenedant subclass of vtkRenderWindowInteractor.
   This is done by usage of Qt library.
   \note
@@ -86,9 +86,9 @@ class SVTK_EXPORT QVTK_GenericRenderWindowInteractor:
 };
 
 
-//============================================================================
-//! This class introduce SALOME specific to the base one
 /*!
+  \class SVTK_GenericRenderWindowInteractor
+  This class introduce SALOME specific to the base one
   In this class new members is added (#mySelector and #myRenderWidget).
   They are used for initialization of #SVTK_InteractorStyle by redefinition of
   #SVTK_InteractorStyle::SetInteractor method
index 963aa1894733d7fd039d7a8b89608e7d78c9fa16..3bd3cf075a069b6dbcda1a6976de81d52d0d547c 100644 (file)
@@ -98,9 +98,11 @@ namespace
 }
 
 
-//----------------------------------------------------------------------------
 vtkStandardNewMacro(SVTK_InteractorStyle);
-//----------------------------------------------------------------------------
+
+/*!
+  Constructor
+*/
 SVTK_InteractorStyle
 ::SVTK_InteractorStyle():
   mySelectionEvent(new SVTK_SelectionEvent()),
@@ -131,13 +133,17 @@ SVTK_InteractorStyle
   myControllerOnKeyDown->Delete();
 }
 
-//----------------------------------------------------------------------------
+/*!
+  Destructor
+*/
 SVTK_InteractorStyle
 ::~SVTK_InteractorStyle() 
 {
 }
 
-//----------------------------------------------------------------------------
+/*!
+  \return widget for rendering
+*/
 QWidget*
 SVTK_InteractorStyle
 ::GetRenderWidget()
@@ -145,6 +151,9 @@ SVTK_InteractorStyle
   return myInteractor->GetRenderWidget();
 }
 
+/*!
+  \return selector
+*/
 SVTK_Selector*
 SVTK_InteractorStyle
 ::GetSelector() 
@@ -152,7 +161,9 @@ SVTK_InteractorStyle
   return myInteractor->GetSelector();
 }
 
-//----------------------------------------------------------------------------
+/*!
+  Generate special SVTK_SelectionEvent
+*/
 SVTK_SelectionEvent*
 SVTK_InteractorStyle
 ::GetSelectionEvent()
@@ -170,7 +181,9 @@ SVTK_InteractorStyle
   return mySelectionEvent.get();
 }
 
-//----------------------------------------------------------------------------
+/*!
+  Generate special SVTK_SelectionEvent with flipped Y coordinate
+*/
 SVTK_SelectionEvent*
 SVTK_InteractorStyle
 ::GetSelectionEventFlipY()
@@ -188,7 +201,6 @@ SVTK_InteractorStyle
   return mySelectionEvent.get();
 }
 
-//----------------------------------------------------------------------------
 void
 SVTK_InteractorStyle
 ::RotateXY(int dx, int dy)
@@ -213,7 +225,6 @@ SVTK_InteractorStyle
   this->Render();
 }
 
-//----------------------------------------------------------------------------
 void
 SVTK_InteractorStyle
 ::PanXY(int x, int y, int oldX, int oldY)
@@ -223,7 +234,6 @@ SVTK_InteractorStyle
 }
 
 
-//----------------------------------------------------------------------------
 void 
 SVTK_InteractorStyle
 ::DollyXY(int dx, int dy)
@@ -247,7 +257,6 @@ SVTK_InteractorStyle
   this->Render();
 }
 
-//----------------------------------------------------------------------------
 void 
 SVTK_InteractorStyle
 ::SpinXY(int x, int y, int oldX, int oldY)
@@ -273,7 +282,9 @@ SVTK_InteractorStyle
 }
 
 
-//----------------------------------------------------------------------------
+/*!
+  To reset reset view
+*/
 void
 SVTK_InteractorStyle
 ::OnConfigure() 
@@ -282,8 +293,9 @@ SVTK_InteractorStyle
   this->GetCurrentRenderer()->InvokeEvent(vtkCommand::ConfigureEvent,NULL);
 }
 
-
-//----------------------------------------------------------------------------
+/*!
+  To handle mouse move event
+*/
 void
 SVTK_InteractorStyle
 ::OnMouseMove() 
@@ -295,8 +307,9 @@ SVTK_InteractorStyle
                     x, y );
 }
 
-
-//----------------------------------------------------------------------------
+/*!
+  To handle left mouse button down event (reimplemented from vtkInteractorStyle)
+*/
 void
 SVTK_InteractorStyle
 ::OnLeftButtonDown()
@@ -308,8 +321,9 @@ SVTK_InteractorStyle
                          x, y );
 }
 
-
-//----------------------------------------------------------------------------
+/*!
+  To handle left mouse button up event (reimplemented from vtkInteractorStyle)
+*/
 void
 SVTK_InteractorStyle
 ::OnLeftButtonUp()
@@ -321,8 +335,9 @@ SVTK_InteractorStyle
                        x, y );
 }
 
-
-//----------------------------------------------------------------------------
+/*!
+  To handle middle mouse button down event (reimplemented from vtkInteractorStyle)
+*/
 void
 SVTK_InteractorStyle
 ::OnMiddleButtonDown() 
@@ -334,8 +349,9 @@ SVTK_InteractorStyle
                            x, y );
 }
 
-
-//----------------------------------------------------------------------------
+/*!
+  To handle middle mouse button up event (reimplemented from vtkInteractorStyle)
+*/
 void
 SVTK_InteractorStyle
 ::OnMiddleButtonUp()
@@ -347,8 +363,9 @@ SVTK_InteractorStyle
                          x, y );
 }
 
-
-//----------------------------------------------------------------------------
+/*!
+  To handle right mouse button down event (reimplemented from vtkInteractorStyle)
+*/
 void
 SVTK_InteractorStyle
 ::OnRightButtonDown() 
@@ -360,7 +377,9 @@ SVTK_InteractorStyle
                           x, y );
 }
 
-//----------------------------------------------------------------------------
+/*!
+  To handle right mouse button up event (reimplemented from vtkInteractorStyle)
+*/
 void
 SVTK_InteractorStyle
 ::OnRightButtonUp()
@@ -372,8 +391,9 @@ SVTK_InteractorStyle
                         x, y );
 }
 
-
-//----------------------------------------------------------------------------
+/*!
+  To handle mouse move event
+*/
 void
 SVTK_InteractorStyle
 ::OnMouseMove(int vtkNotUsed(ctrl), 
@@ -387,8 +407,9 @@ SVTK_InteractorStyle
     onCursorMove(QPoint(x, y));
 }
 
-
-//----------------------------------------------------------------------------
+/*!
+  To handle left mouse button down event (reimplemented from vtkInteractorStyle)
+*/
 void
 SVTK_InteractorStyle
 ::OnLeftButtonDown(int ctrl, int shift, 
@@ -416,8 +437,9 @@ SVTK_InteractorStyle
   return;
 }
 
-
-//----------------------------------------------------------------------------
+/*!
+  To handle left mouse button up event (reimplemented from vtkInteractorStyle)
+*/
 void
 SVTK_InteractorStyle
 ::OnLeftButtonUp(int vtkNotUsed(ctrl),
@@ -433,8 +455,9 @@ SVTK_InteractorStyle
   }
 }
 
-
-//----------------------------------------------------------------------------
+/*!
+  To handle middle mouse button down event (reimplemented from vtkInteractorStyle)
+*/
 void
 SVTK_InteractorStyle
 ::OnMiddleButtonDown(int ctrl,
@@ -462,7 +485,9 @@ SVTK_InteractorStyle
 }
 
 
-//----------------------------------------------------------------------------
+/*!
+  To handle middle mouse button up event (reimplemented from vtkInteractorStyle)
+*/
 void
 SVTK_InteractorStyle
 ::OnMiddleButtonUp(int vtkNotUsed(ctrl),
@@ -479,7 +504,9 @@ SVTK_InteractorStyle
 }
 
 
-//----------------------------------------------------------------------------
+/*!
+  To handle right mouse button down event (reimplemented from vtkInteractorStyle)
+*/
 void
 SVTK_InteractorStyle
 ::OnRightButtonDown(int ctrl,
@@ -506,7 +533,9 @@ SVTK_InteractorStyle
   }
 }
 
-//----------------------------------------------------------------------------
+/*!
+  To handle right mouse button up event (reimplemented from vtkInteractorStyle)
+*/
 void
 SVTK_InteractorStyle
 ::OnRightButtonUp(int vtkNotUsed(ctrl),
@@ -522,7 +551,6 @@ SVTK_InteractorStyle
   }
 }
 
-//----------------------------------------------------------------------------
 /* XPM */
 const char* imageZoomCursor[] = { 
 "32 32 3 1",
@@ -601,8 +629,9 @@ const char* imageRotateCursor[] = {
 "................................"};
 
 
-//----------------------------------------------------------------------------
-// loads cursors for viewer operations - zoom, pan, etc...
+/*!
+  loads cursors for viewer operations - zoom, pan, etc...
+*/
 void
 SVTK_InteractorStyle
 ::loadCursors()
@@ -618,8 +647,9 @@ SVTK_InteractorStyle
 }
 
 
-//----------------------------------------------------------------------------
-// starts Zoom operation (e.g. through menu command)
+/*!
+  Starts Zoom operation (e.g. through menu command)
+*/
 void
 SVTK_InteractorStyle
 ::startZoom()
@@ -634,8 +664,9 @@ SVTK_InteractorStyle
 }
 
 
-//----------------------------------------------------------------------------
-// starts Pan operation (e.g. through menu command)
+/*!
+  Starts Pan operation (e.g. through menu command)
+*/
 void
 SVTK_InteractorStyle
 ::startPan()
@@ -649,8 +680,9 @@ SVTK_InteractorStyle
   ForcedState = VTK_INTERACTOR_STYLE_CAMERA_PAN;
 }
 
-//----------------------------------------------------------------------------
-// starts Rotate operation (e.g. through menu command)
+/*!
+  Starts Rotate operation (e.g. through menu command)
+*/
 void 
 SVTK_InteractorStyle
 ::startRotate()
@@ -665,8 +697,9 @@ SVTK_InteractorStyle
 }
 
 
-//----------------------------------------------------------------------------
-// starts Spin operation (e.g. through menu command)
+/*! 
+  Starts Spin operation (e.g. through menu command)
+*/
 void
 SVTK_InteractorStyle
 ::startSpin()
@@ -682,8 +715,9 @@ SVTK_InteractorStyle
 
 
 
-//----------------------------------------------------------------------------
-// starts Fit Area operation (e.g. through menu command)
+/*!
+  Starts Fit Area operation (e.g. through menu command)
+*/
 void
 SVTK_InteractorStyle
 ::startFitArea()
@@ -698,8 +732,9 @@ SVTK_InteractorStyle
 }
 
 
-//----------------------------------------------------------------------------
-// starts Global Panning operation (e.g. through menu command)
+/*!
+  Starts Global Panning operation (e.g. through menu command)
+*/
 void
 SVTK_InteractorStyle
 ::startGlobalPan()
@@ -721,8 +756,9 @@ SVTK_InteractorStyle
 }
 
 
-//----------------------------------------------------------------------------
-// fits viewer contents to rect
+/*!
+  Fits viewer contents to rect
+*/
 void
 SVTK_InteractorStyle
 ::fitRect(const int left, 
@@ -758,8 +794,9 @@ SVTK_InteractorStyle
 }
 
 
-//----------------------------------------------------------------------------
-// starts viewer operation (!internal usage!)
+/*!
+  Starts viewer operation (!internal usage!)
+*/
 void
 SVTK_InteractorStyle
 ::startOperation(int operation)
@@ -789,8 +826,9 @@ SVTK_InteractorStyle
 }
 
 
-//----------------------------------------------------------------------------
-// sets proper cursor for window when viewer operation is activated
+/*!
+  Sets proper cursor for window when viewer operation is activated
+*/
 void
 SVTK_InteractorStyle
 ::setCursor(const int operation)
@@ -832,15 +870,20 @@ SVTK_InteractorStyle
 }
 
 
-//----------------------------------------------------------------------------
-// called when viewer operation started (!put necessary initialization here!)
+/*!
+  Called when viewer operation started (!put necessary initialization here!)
+*/
 void
 SVTK_InteractorStyle
 ::onStartOperation()
 {
-  if (!GetRenderWidget()) return;
-  // VSV: LOD actor activisation
-  //  this->Interactor->GetRenderWindow()->SetDesiredUpdateRate(this->Interactor->GetDesiredUpdateRate());
+  if (!GetRenderWidget()) 
+    return;
+
+  vtkRenderWindowInteractor *aRWI = this->Interactor;
+  vtkRenderWindow *aRenWin = aRWI->GetRenderWindow();
+  aRenWin->SetDesiredUpdateRate(aRWI->GetDesiredUpdateRate());
+
   switch (State) {
     case VTK_INTERACTOR_STYLE_CAMERA_SELECT:
     case VTK_INTERACTOR_STYLE_CAMERA_FIT:
@@ -861,8 +904,9 @@ SVTK_InteractorStyle
 }
 
 
-//----------------------------------------------------------------------------
-// called when viewer operation finished (!put necessary post-processing here!)
+/*!
+  Called when viewer operation finished (!put necessary post-processing here!)
+*/
 void
 SVTK_InteractorStyle
 ::onFinishOperation() 
@@ -870,8 +914,9 @@ SVTK_InteractorStyle
   if (!GetRenderWidget()) 
     return;
 
-  // VSV: LOD actor activisation
-  //  rwi->GetRenderWindow()->SetDesiredUpdateRate(rwi->GetStillUpdateRate());
+  vtkRenderWindowInteractor *aRWI = this->Interactor;
+  vtkRenderWindow *aRenWin = aRWI->GetRenderWindow();
+  aRenWin->SetDesiredUpdateRate(aRWI->GetStillUpdateRate());
 
   SVTK_SelectionEvent* aSelectionEvent = GetSelectionEventFlipY();
 
@@ -909,13 +954,15 @@ SVTK_InteractorStyle
          //
          SALOME_Actor* anActor = GetFirstSALOMEActor(myPicker.GetPointer());
          aSelectionEvent->myIsRectangle = false;
+
+         if(!myShiftState)
+           GetSelector()->ClearIObjects();
+
          if(anActor){
            anActor->Highlight( this, aSelectionEvent, true );
          }else{
            if(myLastHighlitedActor.GetPointer() && myLastHighlitedActor.GetPointer() != anActor)
              myLastHighlitedActor->Highlight( this, aSelectionEvent, false );
-           if(!myShiftState)
-             GetSelector()->ClearIObjects();
          }
          myLastHighlitedActor = anActor;
        } 
@@ -965,8 +1012,9 @@ SVTK_InteractorStyle
 }
 
 
-// called during viewer operation when user moves mouse (!put necessary processing here!)
-//----------------------------------------------------------------------------
+/*!
+  Called during viewer operation when user moves mouse (!put necessary processing here!)
+*/
 void
 SVTK_InteractorStyle
 ::onOperation(QPoint mousePos) 
@@ -1021,9 +1069,10 @@ SVTK_InteractorStyle
   }
 }
 
-// called when user moves mouse inside viewer window and there is no active viewer operation 
-// (!put necessary processing here!)
-//----------------------------------------------------------------------------
+/*!
+  Called when user moves mouse inside viewer window and there is no active viewer operation 
+  (!put necessary processing here!)
+*/
 void
 SVTK_InteractorStyle
 ::onCursorMove(QPoint mousePos) 
@@ -1053,8 +1102,9 @@ SVTK_InteractorStyle
     this->Render();
 }
 
-// called on finsh GlobalPan operation 
-//----------------------------------------------------------------------------
+/*!
+  Called on finsh GlobalPan operation 
+*/
 void
 SVTK_InteractorStyle
 ::Place(const int theX, const int theY) 
@@ -1079,15 +1129,16 @@ SVTK_InteractorStyle
 
 
 
-// Translates view from Point to Point
-//----------------------------------------------------------------------------
+/*!
+  Translates view from Point to Point
+*/
 void
 SVTK_InteractorStyle
 ::TranslateView(int toX, int toY, int fromX, int fromY)
 {
   vtkCamera *cam = GetCurrentRenderer()->GetActiveCamera();
   double viewFocus[4], focalDepth, viewPoint[3];
-  float newPickPoint[4], oldPickPoint[4], motionVector[3];
+  vtkFloatingPointType newPickPoint[4], oldPickPoint[4], motionVector[3];
   cam->GetFocalPoint(viewFocus);
 
   this->ComputeWorldToDisplay(viewFocus[0], viewFocus[1],
@@ -1114,7 +1165,6 @@ SVTK_InteractorStyle
                   motionVector[2] + viewPoint[2]);
 }
 
-//----------------------------------------------------------------------------
 void
 SVTK_InteractorStyle
 ::IncrementalPan( const int incrX, const int incrY )
@@ -1122,7 +1172,6 @@ SVTK_InteractorStyle
   this->PanXY( incrX, incrY, 0, 0 );
 }
 
-//----------------------------------------------------------------------------
 void
 SVTK_InteractorStyle
 ::IncrementalZoom( const int incr )
@@ -1130,7 +1179,6 @@ SVTK_InteractorStyle
   this->DollyXY( incr, incr );
 }
 
-//----------------------------------------------------------------------------
 void
 SVTK_InteractorStyle
 ::IncrementalRotate( const int incrX, const int incrY )
@@ -1138,7 +1186,9 @@ SVTK_InteractorStyle
   this->RotateXY( incrX, -incrY );
 }
 
-//----------------------------------------------------------------------------
+/*!
+  Redefined in order to add an observer (callback) for custorm event (space mouse event)
+*/
 void
 SVTK_InteractorStyle
 ::SetInteractor( vtkRenderWindowInteractor* theInteractor )
@@ -1178,8 +1228,9 @@ SVTK_InteractorStyle
   }
 }
 
-
-//----------------------------------------------------------------------------
+/*!
+  To implement cached rendering
+*/
 void
 SVTK_InteractorStyle
 ::OnTimer() 
@@ -1188,7 +1239,9 @@ SVTK_InteractorStyle
   this->Interactor->Render();
 }
 
-//----------------------------------------------------------------------------
+/*!
+  To invoke #vtkRenderWindowInteractor::CreateTimer
+*/
 void
 SVTK_InteractorStyle
 ::Render() 
@@ -1196,7 +1249,6 @@ SVTK_InteractorStyle
   this->Interactor->CreateTimer(VTKI_TIMER_FIRST);
 }
 
-//----------------------------------------------------------------------------
 void
 SVTK_InteractorStyle
 ::onSpaceMouseMove( double* data )
@@ -1212,7 +1264,6 @@ SVTK_InteractorStyle
   IncrementalRotate( (int)data[3], 0  );   // 5. tilt the control forward/backward = rotate around X axis (Z axis of local coordinate system of space mouse)
 }
 
-//----------------------------------------------------------------------------
 void
 SVTK_InteractorStyle
 ::onSpaceMouseButton( int button )
@@ -1227,7 +1278,6 @@ SVTK_InteractorStyle
     DominantCombinedSwitch();
 }
 
-//----------------------------------------------------------------------------
 void
 SVTK_InteractorStyle
 ::DominantCombinedSwitch()
@@ -1235,7 +1285,9 @@ SVTK_InteractorStyle
   printf( "\n--DominantCombinedSwitch() NOT IMPLEMENTED--\n" );
 }
 
-//----------------------------------------------------------------------------
+/*!
+  Main process event method (reimplemented from #vtkInteractorStyle)
+*/
 void
 SVTK_InteractorStyle
 ::ProcessEvents( vtkObject* object,
@@ -1326,11 +1378,17 @@ SVTK_InteractorStyle
 
   Superclass::ProcessEvents( object, event, clientData, callData );
 }
-//----------------------------------------------------------------------------
+
+/*!
+  To handle keyboard event (reimplemented from #vtkInteractorStyle)
+*/
 void SVTK_InteractorStyle::OnChar()
 {
 }
-//----------------------------------------------------------------------------
+
+/*!
+  Redefined vtkInteractorStyle::OnKeyDown
+*/
 void SVTK_InteractorStyle::OnKeyDown()
 {
   bool bInvokeSuperclass=myControllerOnKeyDown->OnKeyDown(this);
@@ -1338,7 +1396,10 @@ void SVTK_InteractorStyle::OnKeyDown()
     Superclass::OnKeyDown();
   }
 }
-//----------------------------------------------------------------------------
+
+/*!
+  Provide instructions for Picking
+*/
 void SVTK_InteractorStyle::ActionPicking()
 {
   int x, y;
@@ -1351,54 +1412,60 @@ void SVTK_InteractorStyle::ActionPicking()
   onFinishOperation();
   startOperation(VTK_INTERACTOR_STYLE_CAMERA_NONE);
 }
-//----------------------------------------------------------------------------
+
+/*!
+  To set current increment controller 
+*/
 void SVTK_InteractorStyle::SetControllerOnKeyDown(SVTK_ControllerOnKeyDown* theController)
 {
   myControllerOnKeyDown=theController;
 }
-//----------------------------------------------------------------------------
+
+/*!
+  To get current OnKeyDown controller 
+*/
 SVTK_ControllerOnKeyDown* SVTK_InteractorStyle::ControllerOnKeyDown()
 {
   return myControllerOnKeyDown.GetPointer();
 }
-//----------------------------------------------------------------------------
+
+/*!
+  To get current increment controller
+*/
 void SVTK_InteractorStyle::SetControllerIncrement(SVTK_ControllerIncrement* theController)
 {
   myControllerIncrement=theController;
 }
-//----------------------------------------------------------------------------
+
+/*!
+  To get current increment controller 
+*/
 SVTK_ControllerIncrement* SVTK_InteractorStyle::ControllerIncrement()
 {
   return myControllerIncrement.GetPointer();
 }
 
 vtkStandardNewMacro(SVTK_ControllerIncrement);
-//----------------------------------------------------------------------------
 SVTK_ControllerIncrement::SVTK_ControllerIncrement()
 {
   myIncrement=10;
 }
-//----------------------------------------------------------------------------
 SVTK_ControllerIncrement::~SVTK_ControllerIncrement()
 {
 }
-//----------------------------------------------------------------------------
 void SVTK_ControllerIncrement::SetStartValue(const int theValue)
 {
   myIncrement=theValue;
 }
-//----------------------------------------------------------------------------
 int SVTK_ControllerIncrement::Current()const
 {
   return myIncrement;
 }
-//----------------------------------------------------------------------------
 int SVTK_ControllerIncrement::Increase()
 {
   ++myIncrement;
   return myIncrement;
 }
-//----------------------------------------------------------------------------
 int SVTK_ControllerIncrement::Decrease()
 {
   if (myIncrement>1){
@@ -1408,15 +1475,21 @@ int SVTK_ControllerIncrement::Decrease()
 }
 
 vtkStandardNewMacro(SVTK_ControllerOnKeyDown);
-//----------------------------------------------------------------------------
+
+/*!
+  Constructor
+*/
 SVTK_ControllerOnKeyDown::SVTK_ControllerOnKeyDown()
 {
 }
-//----------------------------------------------------------------------------
+
+/*!
+  Destructor
+*/
 SVTK_ControllerOnKeyDown::~SVTK_ControllerOnKeyDown()
 {
 }
-//----------------------------------------------------------------------------
+
 bool SVTK_ControllerOnKeyDown::OnKeyDown(vtkInteractorStyle* theIS)
 {
   return true;
index 7ea671df44c085df75c2b38134c0e82c65a30659..eebe88ec5f67844924de0dc476b5fcd498f65500 100644 (file)
@@ -45,7 +45,6 @@
 
 #include <vtkObject.h>
 //
-//-------------------------------------------
 //! Control the value of increment  in SALOME way.
 /*!
   This class controls of value of increment,
@@ -77,7 +76,6 @@ class SVTK_ControllerIncrement : public vtkObject{
   void operator=(const SVTK_ControllerIncrement&);          //Not implemented
 };
 //
-//-------------------------------------------
 //! Control the behaviour of KeyDown event in SALOME way.
 /*!
   This class controls the behaviour of KeyDown event
@@ -99,7 +97,6 @@ class SVTK_ControllerOnKeyDown : public vtkObject{
   SVTK_ControllerOnKeyDown(const SVTK_ControllerOnKeyDown&);//Not implemented
   void operator=(const SVTK_ControllerOnKeyDown&);          //Not implemented
 };
-//-------------------------------------------
 
 class vtkCell;
 class vtkPicker;
@@ -143,7 +140,7 @@ class SVTK_EXPORT SVTK_InteractorStyle: public vtkInteractorStyle
   SVTK_SelectionEvent*
   GetSelectionEventFlipY();
 
-  //! Redefined in order to add an observer (callback) for custorm event (space mouse event)
+  //! Redefined in order to add an observer (callback) for custom event (space mouse event)
   virtual
   void
   SetInteractor( vtkRenderWindowInteractor* );
index 145aa9aa5e744970463019e923572518fd1af7a8..be1e25c37f0b4bcbdcc6a58a1a04771e5bb3371d 100644 (file)
@@ -40,6 +40,7 @@
 #include "SUIT_Tools.h"
 #include "SUIT_ResourceMgr.h"
 #include "SVTK_NonIsometricDlg.h"
+#include "SVTK_UpdateRateDlg.h"
 #include "SVTK_CubeAxesDlg.h"
 
 #include "SVTK_MainWindow.h"
@@ -51,8 +52,9 @@
 
 #include <qimage.h>
 
-
-//----------------------------------------------------------------------------
+/*!
+  Constructor
+*/
 SVTK_MainWindow
 ::SVTK_MainWindow(QWidget* theParent, 
                  const char* theName,
@@ -69,6 +71,9 @@ SVTK_MainWindow
   createToolBar();
 }
 
+/*!
+  To initialize the class
+*/
 void
 SVTK_MainWindow
 ::Initialize(SVTK_RenderWindowInteractor* theInteractor)
@@ -82,17 +87,23 @@ SVTK_MainWindow
   myInteractor->setFocusPolicy(StrongFocus);
   myInteractor->setFocus();
   setFocusProxy(myInteractor);
-}
 
+  myUpdateRateDlg = new SVTK_UpdateRateDlg(myActionsMap[UpdateRate],this,"SVTK_UpdateRateDlg");
+  myNonIsometricDlg = new SVTK_NonIsometricDlg(myActionsMap[NonIsometric],this,"SVTK_NonIsometricDlg");
+  myCubeAxesDlg = new SVTK_CubeAxesDlg(myActionsMap[GraduatedAxes],this,"SVTK_CubeAxesDlg");
+}
 
-//----------------------------------------------------------------------------
+/*!
+  Destructor
+*/
 SVTK_MainWindow
 ::~SVTK_MainWindow()
 {
 }
 
-
-//----------------------------------------------------------------------------
+/*!
+  \return used SVTK_RenderWindowInteractor
+*/
 SVTK_RenderWindowInteractor*
 SVTK_MainWindow
 ::GetInteractor()
@@ -100,6 +111,9 @@ SVTK_MainWindow
   return myInteractor;
 }
 
+/*!
+  \return used #vtkRenderWindowInteractor (obsolete)
+*/
 vtkRenderWindowInteractor*
 SVTK_MainWindow
 ::getInteractor()
@@ -107,6 +121,9 @@ SVTK_MainWindow
   return GetInteractor()->GetDevice();
 }
 
+/*!
+  \return used vtkRenderWindow (obsolete)
+*/
 vtkRenderWindow*
 SVTK_MainWindow
 ::getRenderWindow()
@@ -114,7 +131,10 @@ SVTK_MainWindow
   return GetInteractor()->getRenderWindow();
 }
 
-//----------------------------------------------------------------------------
+/*!
+  To repaint the view
+  \param theUpdateTrihedron - adjust trihedron
+*/
 void
 SVTK_MainWindow
 ::Repaint(bool theUpdateTrihedron)
@@ -125,7 +145,9 @@ SVTK_MainWindow
   GetInteractor()->update();
 }
 
-//----------------------------------------------------------------------------
+/*!
+  To invoke a VTK event on SVTK_RenderWindowInteractor instance
+*/
 void
 SVTK_MainWindow
 ::InvokeEvent(unsigned long theEvent, void* theCallData)
@@ -133,7 +155,9 @@ SVTK_MainWindow
   GetInteractor()->InvokeEvent(theEvent,theCallData);
 }
 
-//----------------------------------------------------------------------------
+/*!
+  Redirect the request to SVTK_RenderWindowInteractor::GetInteractorStyle
+*/
 vtkInteractorStyle*
 SVTK_MainWindow
 ::GetInteractorStyle()
@@ -141,6 +165,9 @@ SVTK_MainWindow
   return GetInteractor()->GetInteractorStyle();
 }
 
+/*!
+  Redirect the request to SVTK_RenderWindowInteractor::PushInteractorStyle
+*/
 void
 SVTK_MainWindow
 ::PushInteractorStyle(vtkInteractorStyle* theStyle)
@@ -148,6 +175,9 @@ SVTK_MainWindow
   GetInteractor()->PushInteractorStyle(theStyle);
 }
 
+/*!
+  Redirect the request to SVTK_RenderWindowInteractor::PopInteractorStyle
+*/
 void
 SVTK_MainWindow
 ::PopInteractorStyle()
@@ -155,7 +185,9 @@ SVTK_MainWindow
   GetInteractor()->PopInteractorStyle();
 }
 
-//----------------------------------------------------------------------------
+/*!
+  Redirect the request to SVTK_RenderWindowInteractor::GetSelector
+*/
 SVTK_Selector*
 SVTK_MainWindow
 ::GetSelector()
@@ -163,6 +195,9 @@ SVTK_MainWindow
   return GetInteractor()->GetSelector();
 }
 
+/*!
+  Redirect the request to SVTK_RenderWindowInteractor::SelectionMode
+*/
 Selection_Mode
 SVTK_MainWindow
 ::SelectionMode()
@@ -170,6 +205,9 @@ SVTK_MainWindow
   return GetSelector()->SelectionMode();
 }
 
+/*!
+  Redirect the request to SVTK_RenderWindowInteractor::SetSelectionMode
+*/
 void
 SVTK_MainWindow
 ::SetSelectionMode(Selection_Mode theMode)
@@ -177,8 +215,9 @@ SVTK_MainWindow
   GetSelector()->SetSelectionMode(theMode);
 }
 
-
-//----------------------------------------------------------------------------
+/*!
+  Redirect the request to SVTK_RenderWindowInteractor::GetRenderer
+*/
 SVTK_Renderer* 
 SVTK_MainWindow
 ::GetRenderer()
@@ -186,6 +225,9 @@ SVTK_MainWindow
   return GetInteractor()->GetRenderer();
 }
 
+/*!
+  Redirect the request to SVTK_RenderWindowInteractor::getRenderer
+*/
 vtkRenderer* 
 SVTK_MainWindow
 ::getRenderer()
@@ -193,7 +235,10 @@ SVTK_MainWindow
   return GetInteractor()->getRenderer();
 }
 
-//----------------------------------------------------------------------------
+/*!
+  Sets background color of the view
+  \param theColor - new background color
+*/
 void
 SVTK_MainWindow
 ::SetBackgroundColor(const QColor& theColor)
@@ -203,18 +248,23 @@ SVTK_MainWindow
                               theColor.blue()/255.0);
 }
 
+/*!
+  \return background color of the view
+*/
 QColor
 SVTK_MainWindow
 ::BackgroundColor()
 {
-  float aBackgroundColor[3];
+  vtkFloatingPointType aBackgroundColor[3];
   getRenderer()->GetBackground(aBackgroundColor);
   return QColor(int(aBackgroundColor[0]*255), 
                int(aBackgroundColor[1]*255), 
                int(aBackgroundColor[2]*255));
 }
 
-//----------------------------------------------------------------------------
+/*!
+  Redirect the request to SVTK_Renderer::GetScale
+*/
 void
 SVTK_MainWindow
 ::GetScale( double theScale[3] ) 
@@ -222,6 +272,9 @@ SVTK_MainWindow
   GetRenderer()->GetScale( theScale );
 }
 
+/*!
+  Redirect the request to SVTK_Renderer::SetScale
+*/
 void
 SVTK_MainWindow
 ::SetScale( double theScale[3] ) 
@@ -230,8 +283,9 @@ SVTK_MainWindow
   Repaint();
 }
 
-
-//----------------------------------------------------------------------------
+/*!
+  Redirect the request to SVTK_Renderer::AddActor
+*/
 void
 SVTK_MainWindow
 ::AddActor(VTKViewer_Actor* theActor, 
@@ -242,7 +296,9 @@ SVTK_MainWindow
     Repaint();
 }
 
-//----------------------------------------------------------------------------
+/*!
+  Redirect the request to SVTK_Renderer::RemoveActor
+*/
 void
 SVTK_MainWindow
 ::RemoveActor(VTKViewer_Actor* theActor, 
@@ -253,8 +309,9 @@ SVTK_MainWindow
     Repaint();
 }
 
-
-//----------------------------------------------------------------------------
+/*!
+  Redirect the request to SVTK_Renderer::GetTrihedronSize
+*/
 int
 SVTK_MainWindow
 ::GetTrihedronSize()
@@ -262,7 +319,9 @@ SVTK_MainWindow
   return GetRenderer()->GetTrihedronSize();
 }
 
-//----------------------------------------------------------------------------
+/*!
+  Redirect the request to SVTK_Renderer::SetTrihedronSize
+*/
 void 
 SVTK_MainWindow
 ::SetTrihedronSize( const int theSize, const bool theRelative )
@@ -272,7 +331,6 @@ SVTK_MainWindow
 }
 
 
-//----------------------------------------------------------------------------
 /*! If parameter theIsForcedUpdate is true, recalculate parameters for
  *  trihedron and cube axes, even if trihedron and cube axes is invisible.
  */
@@ -284,7 +342,9 @@ SVTK_MainWindow
   Repaint();
 }
 
-//----------------------------------------------------------------------------
+/*!
+  Redirect the request to SVTK_Renderer::IsTrihedronDisplayed
+*/
 bool
 SVTK_MainWindow
 ::IsTrihedronDisplayed()
@@ -292,7 +352,9 @@ SVTK_MainWindow
   return GetRenderer()->IsTrihedronDisplayed();
 }
 
-//----------------------------------------------------------------------------
+/*!
+  Redirect the request to SVTK_Renderer::IsCubeAxesDisplayed
+*/
 bool
 SVTK_MainWindow
 ::IsCubeAxesDisplayed()
@@ -300,7 +362,9 @@ SVTK_MainWindow
   return GetRenderer()->IsCubeAxesDisplayed();
 }
 
-//----------------------------------------------------------------------------
+/*!
+  Redirect the request to SVTK_Renderer::GetTrihedron
+*/
 VTKViewer_Trihedron*  
 SVTK_MainWindow
 ::GetTrihedron() 
@@ -308,7 +372,9 @@ SVTK_MainWindow
   return GetRenderer()->GetTrihedron(); 
 }
 
-//----------------------------------------------------------------------------
+/*!
+  Redirect the request to SVTK_Renderer::GetCubeAxes
+*/
 SVTK_CubeAxesActor2D* 
 SVTK_MainWindow
 ::GetCubeAxes() 
@@ -316,8 +382,9 @@ SVTK_MainWindow
   return GetRenderer()->GetCubeAxes(); 
 }
 
-
-//----------------------------------------------------------------------------
+/*!
+  \return toolbar of svtk main window
+*/
 QToolBar* 
 SVTK_MainWindow
 ::getToolBar()
@@ -325,7 +392,6 @@ SVTK_MainWindow
   return myToolBar;
 }
 
-//----------------------------------------------------------------------------
 void
 SVTK_MainWindow
 ::SetEventDispatcher(vtkObject* theDispatcher)
@@ -333,11 +399,13 @@ SVTK_MainWindow
   myEventDispatcher = theDispatcher;
 }
 
-//----------------------------------------------------------------------------
 #if defined(WIN32) && !defined(_DEBUG)
 #pragma optimize( "", off )
 #endif
 
+/*!
+  Creates all actions of svtk main window
+*/
 void
 SVTK_MainWindow
 ::createActions(SUIT_ResourceMgr* theResourceMgr)
@@ -471,8 +539,6 @@ SVTK_MainWindow
   connect(anAction, SIGNAL(toggled(bool)), this, SLOT(onNonIsometric(bool)));
   myActionsMap[ NonIsometric ] = anAction;
 
-  myNonIsometricDlg = new SVTK_NonIsometricDlg(this,"SVTK_NonIsometricDlg",anAction);
-
   // onGraduatedAxes: Manage graduated axes params
   anAction = new QtxAction(tr("MNU_SVTK_GRADUATED_AXES"), 
                           theResourceMgr->loadPixmap( "VTKViewer", tr( "ICON_GRADUATED_AXES" ) ),
@@ -482,14 +548,23 @@ SVTK_MainWindow
   connect(anAction, SIGNAL(toggled(bool)), this, SLOT(onGraduatedAxes(bool)));
   myActionsMap[ GraduatedAxes ] = anAction;
 
-  myCubeAxesDlg = new SVTK_CubeAxesDlg(this,"SVTK_CubeAxesDlg",anAction);
+  // onGraduatedAxes: Manage graduated axes params
+  anAction = new QtxAction(tr("MNU_SVTK_UPDATE_RATE"), 
+                          theResourceMgr->loadPixmap( "VTKViewer", tr( "ICON_UPDATE_RATE" ) ),
+                          tr( "MNU_SVTK_UPDATE_RATE" ), 0, this);
+  anAction->setStatusTip(tr("DSC_SVTK_UPDATE_RATE"));
+  anAction->setToggleAction(true);
+  connect(anAction, SIGNAL(toggled(bool)), this, SLOT(onUpdateRate(bool)));
+  myActionsMap[ UpdateRate ] = anAction;
 }
 
 #if defined(WIN32) && !defined(_DEBUG)
 #pragma optimize( "", on )
 #endif
 
-//----------------------------------------------------------------------------
+/*!
+  Creates toolbar of svtk main window
+*/
 void
 SVTK_MainWindow
 ::createToolBar()
@@ -518,11 +593,34 @@ SVTK_MainWindow
 
   myActionsMap[ResetId]->addTo(myToolBar);
 
+  myActionsMap[UpdateRate]->addTo(myToolBar);
   myActionsMap[NonIsometric]->addTo(myToolBar);
   myActionsMap[GraduatedAxes]->addTo(myToolBar);
 }
 
-//----------------------------------------------------------------------------
+/*!
+  Custom show event handler
+*/
+void
+SVTK_MainWindow
+::showEvent( QShowEvent * theEvent ) 
+{
+  emit Show( theEvent );
+}
+
+/*!
+  Custom hide event handler
+*/
+void
+SVTK_MainWindow
+::hideEvent( QHideEvent * theEvent ) 
+{
+  emit Hide( theEvent );
+}
+
+/*!
+  Starts zoom transformation
+*/
 void
 SVTK_MainWindow
 ::activateZoom()
@@ -530,7 +628,9 @@ SVTK_MainWindow
   myEventDispatcher->InvokeEvent(SVTK::StartZoom,0);
 }
 
-//----------------------------------------------------------------------------
+/*!
+  Starts panning transformation
+*/
 void
 SVTK_MainWindow
 ::activatePanning()
@@ -538,7 +638,9 @@ SVTK_MainWindow
   myEventDispatcher->InvokeEvent(SVTK::StartPan,0);
 }
 
-//----------------------------------------------------------------------------
+/*!
+  Starts rotation transformation
+*/
 void
 SVTK_MainWindow
 ::activateRotation()
@@ -546,7 +648,9 @@ SVTK_MainWindow
   myEventDispatcher->InvokeEvent(SVTK::StartRotate,0);
 }
 
-//----------------------------------------------------------------------------
+/*!
+  Starts global panning transformation
+*/
 void
 SVTK_MainWindow
 ::activateGlobalPanning()
@@ -554,7 +658,9 @@ SVTK_MainWindow
   myEventDispatcher->InvokeEvent(SVTK::StartGlobalPan,0);
 }
 
-//----------------------------------------------------------------------------
+/*!
+  Starts window fit transformation
+*/
 void
 SVTK_MainWindow
 ::activateWindowFit()
@@ -562,7 +668,9 @@ SVTK_MainWindow
   myEventDispatcher->InvokeEvent(SVTK::StartFitArea,0);
 }
 
-//----------------------------------------------------------------------------
+/*!
+  Processes transformation "front view"
+*/
 void
 SVTK_MainWindow
 ::onFrontView()
@@ -571,7 +679,9 @@ SVTK_MainWindow
   Repaint();
 }
 
-//----------------------------------------------------------------------------
+/*!
+  Processes transformation "back view"
+*/
 void
 SVTK_MainWindow
 ::onBackView()
@@ -580,7 +690,9 @@ SVTK_MainWindow
   Repaint();
 }
 
-//----------------------------------------------------------------------------
+/*!
+  Processes transformation "top view"
+*/
 void
 SVTK_MainWindow
 ::onTopView()
@@ -589,7 +701,9 @@ SVTK_MainWindow
   Repaint();
 }
 
-//----------------------------------------------------------------------------
+/*!
+  Processes transformation "bottom view"
+*/
 void
 SVTK_MainWindow
 ::onBottomView()
@@ -598,7 +712,9 @@ SVTK_MainWindow
   Repaint();
 }
 
-//----------------------------------------------------------------------------
+/*!
+  Processes transformation "left view"
+*/
 void
 SVTK_MainWindow
 ::onLeftView()
@@ -607,7 +723,9 @@ SVTK_MainWindow
   Repaint();
 }
 
-//----------------------------------------------------------------------------
+/*!
+  Processes transformation "right view"
+*/
 void
 SVTK_MainWindow
 ::onRightView()
@@ -616,7 +734,9 @@ SVTK_MainWindow
   Repaint();
 }
 
-//----------------------------------------------------------------------------
+/*!
+  Processes transformation "reset view": sets default orientation of viewport camera
+*/
 void
 SVTK_MainWindow
 ::onResetView()
@@ -625,7 +745,9 @@ SVTK_MainWindow
   Repaint();
 }
 
-//----------------------------------------------------------------------------
+/*!
+  Processes transformation "fit all"
+*/
 void
 SVTK_MainWindow
 ::onFitAll()
@@ -634,7 +756,9 @@ SVTK_MainWindow
   Repaint();
 }
 
-//----------------------------------------------------------------------------
+/*!
+  Shows trihedron
+*/
 void 
 SVTK_MainWindow
 ::onViewTrihedron()
@@ -643,7 +767,9 @@ SVTK_MainWindow
   Repaint();
 }
 
-//----------------------------------------------------------------------------
+/*!
+  Shows cube axes
+*/
 void
 SVTK_MainWindow
 ::onViewCubeAxes()
@@ -652,7 +778,17 @@ SVTK_MainWindow
   Repaint();
 }
 
-//----------------------------------------------------------------------------
+void
+SVTK_MainWindow
+::onUpdateRate(bool theIsActivate)
+{
+  if(theIsActivate){
+    myUpdateRateDlg->Update();
+    myUpdateRateDlg->show();
+  }else
+    myUpdateRateDlg->hide();
+}
+
 void
 SVTK_MainWindow
 ::onNonIsometric(bool theIsActivate)
@@ -675,7 +811,6 @@ SVTK_MainWindow
     myCubeAxesDlg->hide();
 }
 
-//----------------------------------------------------------------------------
 void
 SVTK_MainWindow
 ::onAdjustTrihedron()
@@ -683,7 +818,6 @@ SVTK_MainWindow
   GetRenderer()->OnAdjustTrihedron();
 }
 
-//----------------------------------------------------------------------------
 void
 SVTK_MainWindow
 ::onAdjustCubeAxes()
@@ -691,7 +825,9 @@ SVTK_MainWindow
   GetRenderer()->OnAdjustCubeAxes();
 }
 
-//----------------------------------------------------------------------------
+/*!
+  \return QImage, containing all scene rendering in window
+*/
 QImage
 SVTK_MainWindow
 ::dumpView()
index 45f525f288a80383d17d685f385a7f606576b555..675d633b4b29e1225da3a6a971b5cd5d11508a57 100644 (file)
@@ -1,3 +1,21 @@
+// Copyright (C) 2005  CEA/DEN, EDF R&D, OPEN CASCADE, PRINCIPIA R&D
+//
+// This library is free software; you can redistribute it and/or
+// modify it under the terms of the GNU Lesser General Public
+// License as published by the Free Software Foundation; either
+// version 2.1 of the License.
+//
+// This library is distributed in the hope that it will be useful
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+// Lesser General Public License for more details.
+//
+// You should have received a copy of the GNU Lesser General Public
+// License along with this library; if not, write to the Free Software
+// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307 USA
+//
+// See http://www.salome-platform.org/
+//
 #ifndef SVTK_MAINWINDOW_H
 #define SVTK_MAINWINDOW_H
 
@@ -25,6 +43,7 @@ class SUIT_ViewWindow;
 
 class SVTK_RenderWindowInteractor;
 class SVTK_NonIsometricDlg;
+class SVTK_UpdateRateDlg;
 class SVTK_CubeAxesActor2D;
 class SVTK_CubeAxesDlg;
 
@@ -36,7 +55,6 @@ class SVTK_Renderer;
 class SVTK_Selector;
 
 
-//----------------------------------------------------------------------------
 //! The class is a container for #SVTK_RenderWindowInteractor.
 /*!
   The class contains #SVTK_RenderWindowInteractor instance and
@@ -175,7 +193,14 @@ public:
   //----------------------------------------------------------------------------
   QToolBar* getToolBar();
 
+ signals:
+  void Show( QShowEvent * );
+  void Hide( QHideEvent * );
+  
  public slots:
+  virtual void showEvent( QShowEvent * );
+  virtual void hideEvent( QHideEvent * );
+
   void activateZoom();
   void activateWindowFit();
   void activateRotation();
@@ -195,6 +220,7 @@ public:
   void onViewTrihedron(); 
   void onViewCubeAxes();
 
+  void onUpdateRate(bool theIsActivate);
   void onNonIsometric(bool theIsActivate);
   void onGraduatedAxes(bool theIsActivate);
 
@@ -216,12 +242,13 @@ public:
 
   enum { DumpId, FitAllId, FitRectId, ZoomId, PanId, GlobalPanId, RotationId,
          FrontId, BackId, TopId, BottomId, LeftId, RightId, ResetId, 
-        ViewTrihedronId, NonIsometric, GraduatedAxes};
+        ViewTrihedronId, NonIsometric, GraduatedAxes, UpdateRate};
   typedef QMap<int, QtxAction*> TActionsMap;
 
   SUIT_ViewWindow* myViewWindow;
 
   SVTK_NonIsometricDlg* myNonIsometricDlg;
+  SVTK_UpdateRateDlg* myUpdateRateDlg;
   SVTK_CubeAxesDlg* myCubeAxesDlg;
 
   vtkSmartPointer<vtkObject> myEventDispatcher;
index a01bcbdcb7729ca31ce328ee1f3ad721c786acf3..a2e5ed466daef92566873b3029b9fefd2a7fd16d 100644 (file)
@@ -44,15 +44,13 @@ using namespace std;
   Constructor
 */
 SVTK_NonIsometricDlg
-::SVTK_NonIsometricDlg(SVTK_MainWindow* theParent,
-                      const char* theName,
-                      QtxAction* theAction):
-  QDialog(theParent, 
-         theName, 
-         false, 
-         WStyle_Customize | WStyle_NormalBorder | WStyle_Title | WStyle_SysMenu ),
-  m_MainWindow(theParent),
-  m_Action(theAction)
+::SVTK_NonIsometricDlg(QtxAction* theAction,
+                      SVTK_MainWindow* theParent,
+                      const char* theName):
+  SVTK_DialogBase(theAction,
+                 theParent, 
+                 theName),
+  m_MainWindow(theParent)
 {
   setCaption(tr("DLG_TITLE"));
   setSizeGripEnabled(TRUE);
@@ -63,66 +61,70 @@ SVTK_NonIsometricDlg
   layoutDlg->setMargin(11);
 
   // Create croup box with grid layout
-  QGroupBox* GroupBox = new QGroupBox(this, "GroupBox");
-  QGridLayout* glGroupBox = new QGridLayout(GroupBox);
-  glGroupBox->setMargin(11);
-  glGroupBox->setSpacing(6);
+  QGroupBox* aGroupBox = new QGroupBox(this, "GroupBox");
+  QHBoxLayout* aHBoxLayout = new QHBoxLayout(aGroupBox);
+  aHBoxLayout->setMargin(11);
+  aHBoxLayout->setSpacing(6);
 
   // "X" scaling
-  QLabel* TextLabelX = new QLabel (tr("LBL_X"), GroupBox, "TextLabelX");
-  m_sbXcoeff = new QtxDblSpinBox(-VTK_LARGE_FLOAT, VTK_LARGE_FLOAT, 0.1, GroupBox);
+  QLabel* TextLabelX = new QLabel (tr("LBL_X"), aGroupBox, "TextLabelX");
+  TextLabelX->setFixedWidth(15);
+  m_sbXcoeff = new QtxDblSpinBox(-VTK_LARGE_FLOAT, VTK_LARGE_FLOAT, 0.1, aGroupBox);
   m_sbXcoeff->setMinimumWidth(80);
   m_sbXcoeff->setValue(1.0);
 
   // "Y" scaling
-  QLabel* TextLabelY = new QLabel (tr("LBL_Y"), GroupBox, "TextLabelY");
-  m_sbYcoeff = new QtxDblSpinBox(-VTK_LARGE_FLOAT, VTK_LARGE_FLOAT, 0.1, GroupBox);
+  QLabel* TextLabelY = new QLabel (tr("LBL_Y"), aGroupBox, "TextLabelY");
+  TextLabelY->setFixedWidth(15);
+  m_sbYcoeff = new QtxDblSpinBox(-VTK_LARGE_FLOAT, VTK_LARGE_FLOAT, 0.1, aGroupBox);
   m_sbYcoeff->setMinimumWidth(80);
   m_sbYcoeff->setValue(1.0);
 
   // "Z" scaling
-  QLabel* TextLabelZ = new QLabel (tr("LBL_Z"), GroupBox, "TextLabelZ");
-  m_sbZcoeff = new QtxDblSpinBox(-VTK_LARGE_FLOAT, VTK_LARGE_FLOAT, 0.1, GroupBox);
+  QLabel* TextLabelZ = new QLabel (tr("LBL_Z"), aGroupBox, "TextLabelZ");
+  TextLabelZ->setFixedWidth(15);
+  m_sbZcoeff = new QtxDblSpinBox(-VTK_LARGE_FLOAT, VTK_LARGE_FLOAT, 0.1, aGroupBox);
   m_sbZcoeff->setMinimumWidth(80);
   m_sbZcoeff->setValue(1.0);
 
   // Create <Reset> button
-  m_bReset = new QPushButton(tr("&Reset"), GroupBox, "m_bReset");
+  m_bReset = new QPushButton(tr("&Reset"), aGroupBox, "m_bReset");
 
   // Layout widgets in the group box
-  glGroupBox->addWidget(TextLabelX, 0, 0);
-  glGroupBox->addWidget(m_sbXcoeff, 0, 1);
-  glGroupBox->addWidget(TextLabelY, 0, 2);
-  glGroupBox->addWidget(m_sbYcoeff, 0, 3);
-  glGroupBox->addWidget(TextLabelZ, 0, 4);
-  glGroupBox->addWidget(m_sbZcoeff, 0, 5);
-  glGroupBox->addWidget(m_bReset,   0, 6);
+  aHBoxLayout->addWidget(TextLabelX);
+  aHBoxLayout->addWidget(m_sbXcoeff);
+  aHBoxLayout->addWidget(TextLabelY);
+  aHBoxLayout->addWidget(m_sbYcoeff);
+  aHBoxLayout->addWidget(TextLabelZ);
+  aHBoxLayout->addWidget(m_sbZcoeff);
+  //aHBoxLayout->addStretch();
+  aHBoxLayout->addWidget(m_bReset);
 
   // OK, CANCEL, Apply button
-  QGroupBox* aWgt = new QGroupBox(this);
-  QHBoxLayout* aHBoxLayout = new QHBoxLayout(aWgt);
-  aHBoxLayout->setMargin(11);
-  aHBoxLayout->setSpacing(6);
+  QGroupBox* aGroupBox2 = new QGroupBox(this);
+  QHBoxLayout* aHBoxLayout2 = new QHBoxLayout(aGroupBox2);
+  aHBoxLayout2->setMargin(11);
+  aHBoxLayout2->setSpacing(6);
   // Create <OK> button
-  QPushButton* m_bOk = new QPushButton(tr("O&K"), aWgt, "m_bOk");
+  QPushButton* m_bOk = new QPushButton(tr("O&K"), aGroupBox2, "m_bOk");
   m_bOk->setDefault(TRUE);
   m_bOk->setAutoDefault(TRUE);
   // Create <Apply> button
-  QPushButton* m_bApply = new QPushButton(tr("&Apply"), aWgt, "m_bApply");
+  QPushButton* m_bApply = new QPushButton(tr("&Apply"), aGroupBox2, "m_bApply");
   m_bApply->setAutoDefault(TRUE);
   // Create <Cancel> button
-  QPushButton* m_bCancel = new QPushButton(tr("&Cancel"), aWgt, "m_bCancel");
+  QPushButton* m_bCancel = new QPushButton(tr("&Cancel"), aGroupBox2, "m_bCancel");
   m_bCancel->setAutoDefault(TRUE);
 
   // Layout buttons
-  aHBoxLayout->addWidget(m_bOk);
-  aHBoxLayout->addWidget(m_bApply);
-  aHBoxLayout->addStretch();
-  aHBoxLayout->addWidget(m_bCancel);
+  aHBoxLayout2->addWidget(m_bOk);
+  aHBoxLayout2->addWidget(m_bApply);
+  aHBoxLayout2->addStretch();
+  aHBoxLayout2->addWidget(m_bCancel);
 
   // Layout top level widgets
-  layoutDlg->addWidget(GroupBox,0,0);
-  layoutDlg->addWidget(aWgt,1,0);
+  layoutDlg->addWidget(aGroupBox,0,0);
+  layoutDlg->addWidget(aGroupBox2,1,0);
 
   // signals and slots connections
   connect(m_bCancel, SIGNAL(clicked()), this, SLOT(onClickClose()));
@@ -187,14 +189,4 @@ SVTK_NonIsometricDlg
 ::onClickClose()
 {
   reject();
-
-  m_Action->setOn( false );
-}
-
-void 
-SVTK_NonIsometricDlg
-::done( int r )
-{
-  m_Action->setOn( false );
-  QDialog::done( r );
 }
index 6a11a14f649c151eed39918854108200ad0129a3..7043f922e2714f5625be5ab8585e7bfa74662f19 100644 (file)
@@ -29,7 +29,7 @@
 #ifndef SVTK_NONISOMETRICDLG_H
 #define SVTK_NONISOMETRICDLG_H
 
-#include <qdialog.h>
+#include "SVTK_DialogBase.h"
 
 class SVTK_MainWindow;
 
@@ -39,14 +39,14 @@ class QtxAction;
 class QPushButton;
 
 
-class SVTK_NonIsometricDlg : public QDialog
+class SVTK_NonIsometricDlg : public SVTK_DialogBase
 {
   Q_OBJECT;
 
 public:
-  SVTK_NonIsometricDlg(SVTK_MainWindow* theParent,
-                      const char* theName,
-                      QtxAction* theAction);
+  SVTK_NonIsometricDlg(QtxAction* theAction,
+                      SVTK_MainWindow* theParent,
+                      const char* theName);
 
   ~SVTK_NonIsometricDlg();
 
@@ -54,7 +54,6 @@ public:
 
 protected:
   SVTK_MainWindow *m_MainWindow;
-  QtxAction* m_Action;
 
   QtxDblSpinBox* m_sbXcoeff;
   QtxDblSpinBox* m_sbYcoeff;
@@ -66,8 +65,6 @@ protected slots:
   void onClickReset();
   void onClickOk();
   void onClickClose();
-
-  virtual void done( int );
 };
 
 #endif // SVTK_NONISOMETRICDLG_H
index 9db710484ad57dc25f138f378030c2ce904d6de5..620202f40b2a7a0e0aff1a3849a8aaa2332eb03e 100644 (file)
 #include "SVTK_Prs.h"
 using namespace std;
 
-//==========================================================
 /*!
- *  SVTK_Prs::SVTK_Prs
- *  Default constructor
- */
-//==========================================================
+  Default constructor
+*/
 SVTK_Prs::SVTK_Prs() : myObjects( 0 )
 {
 }
  
-//==========================================================
 /*!
- *  SVTK_Prs::SVTK_Prs
- *  tandard constructora
- */
-//==========================================================
+  Standard constructor
+*/
 SVTK_Prs::SVTK_Prs( const vtkActor* obj ) 
 { 
   AddObject( obj ); 
 }
 
-//==========================================================
 /*!
- *  SVTK_Prs::~SVTK_Prs
- *  Destructor
- */
-//==========================================================
+  Destructor
+*/
 SVTK_Prs:: ~SVTK_Prs() 
 { 
   if ( myObjects ) myObjects->Delete(); 
 }
 
-//==========================================================
 /*!
- *  SVTK_Prs::GetObjects
- *  Get actors list
- */
-//==========================================================
+  \return actors list
+*/
 vtkActorCollection* SVTK_Prs::GetObjects() const 
 { 
   return myObjects; 
 }
 
-//==========================================================
 /*!
- *  SVTK_Prs::AddObject
- *  Add actor
- */
-//==========================================================
+  Add actor
+*/
 void SVTK_Prs::AddObject( const vtkActor* obj ) 
 { 
   if ( !myObjects) 
@@ -85,13 +70,9 @@ void SVTK_Prs::AddObject( const vtkActor* obj )
   myObjects->AddItem( (vtkActor*)obj ); 
 }
   
-//==========================================================
 /*!
- *  SVTK_Prs::IsNull
- *  Return 0 if list of the actors is empty
- *  [ Reimplemented from SALOME_Prs ]
- */
-//==========================================================
+  \return 0 if list of the actors is empty [ Reimplemented from SALOME_Prs ]
+*/
 bool SVTK_Prs::IsNull() const 
 { 
   return !myObjects || myObjects->GetNumberOfItems() <= 0; 
index 775782e807eaea11b3d7214397c48b7486593671..88f08541959a1845b927bfe7098ac9d01082af42 100644 (file)
 #include <vtkCamera.h>
 #include <vtkCell.h>
 
-//----------------------------------------------------------------------------
 namespace
 {
   //----------------------------------------------------------------------------
   inline
-  float
+  vtkFloatingPointType
   GetZ(float* theZPtr,
        int theSelection[4],
        int theDX,
@@ -67,13 +66,13 @@ namespace
   int
   Check(float* theZPtr,
        int theSelection[4],
-       float theTolerance,
-       float theDZ,
+       vtkFloatingPointType theTolerance,
+       vtkFloatingPointType theDZ,
        int theDX,
        int theDY)
   {
     int aRet = 0;
-    float aZ = -1.0;
+    vtkFloatingPointType aZ = -1.0;
     if(theDX >= theSelection[0] && theDX <= theSelection[2] &&
        theDY >= theSelection[1] && theDY <= theSelection[3])
     {
@@ -98,7 +97,7 @@ namespace
                      vtkDataSet *theInput,
                      SVTK_RectPicker::TVectorIds& theVisibleIds,
                      SVTK_RectPicker::TVectorIds& theInVisibleIds,
-                     float theTolerance)
+                     vtkFloatingPointType theTolerance)
   {
     theVisibleIds.clear();
     theInVisibleIds.clear();
@@ -134,10 +133,10 @@ namespace
     */
     for(vtkIdType aPntId = 0; aPntId < aNumPts; aPntId++){
       // perform conversion
-      float aX[4] = {1.0, 1.0, 1.0, 1.0};
+      vtkFloatingPointType aX[4] = {1.0, 1.0, 1.0, 1.0};
       theInput->GetPoint(aPntId,aX);
 
-      float aView[4];
+      vtkFloatingPointType aView[4];
       aMatrix->MultiplyPoint(aX,aView);
       if(aView[3] == 0.0)
        continue;
@@ -146,7 +145,7 @@ namespace
                                aView[2]/aView[3]);
       theRenderer->ViewToDisplay();
 
-      float aDX[3];
+      vtkFloatingPointType aDX[3];
       theRenderer->GetDisplayPoint(aDX);
       
       // check whether visible and in selection window 
@@ -212,8 +211,8 @@ namespace
   //----------------------------------------------------------------------------
   inline
   void
-  GetCenter(const float theBounds[6],
-           float theCenter[3])
+  GetCenter(const vtkFloatingPointType theBounds[6],
+           vtkFloatingPointType theCenter[3])
   {
     theCenter[0] = (theBounds[1] + theBounds[0]) / 2.0;
     theCenter[1] = (theBounds[3] + theBounds[2]) / 2.0;
@@ -225,7 +224,7 @@ namespace
                     vtkRenderer *theRenderer,
                     vtkDataSet *theInput,
                     SVTK_RectPicker::TVectorIds& theVectorIds,
-                    float theTolerance)
+                    vtkFloatingPointType theTolerance)
   {
     theVectorIds.clear();
 
@@ -260,14 +259,14 @@ namespace
     for(vtkIdType aCellId = 0; aCellId < aNumCells; aCellId++){
       vtkCell* aCell = theInput->GetCell(aCellId);
 
-      float aBounds[6];
+      vtkFloatingPointType aBounds[6];
       aCell->GetBounds(aBounds);
 
-      float aCenter[3];
+      vtkFloatingPointType aCenter[3];
       GetCenter(aBounds,aCenter);
 
-      float aView[4];
-      float aX[4] = {aCenter[0], aCenter[1], aCenter[2], 1.0};
+      vtkFloatingPointType aView[4];
+      vtkFloatingPointType aX[4] = {aCenter[0], aCenter[1], aCenter[2], 1.0};
       aMatrix->MultiplyPoint(aX,aView);
 
       if(aView[3] == 0.0)
@@ -278,7 +277,7 @@ namespace
                                aView[2]/aView[3]);
       theRenderer->ViewToDisplay();
 
-      float aDX[3];
+      vtkFloatingPointType aDX[3];
       theRenderer->GetDisplayPoint(aDX);
       
       // check whether visible and in selection window 
@@ -306,16 +305,16 @@ namespace
   //----------------------------------------------------------------------------
   void
   CalculatePickPosition(vtkRenderer *theRenderer,
-                       float theSelectionX, 
-                       float theSelectionY, 
-                       float theSelectionZ,
-                       float thePickPosition[3])
+                       vtkFloatingPointType theSelectionX, 
+                       vtkFloatingPointType theSelectionY, 
+                       vtkFloatingPointType theSelectionZ,
+                       vtkFloatingPointType thePickPosition[3])
   {
     // Convert the selection point into world coordinates.
     //
     theRenderer->SetDisplayPoint(theSelectionX, theSelectionY, theSelectionZ);
     theRenderer->DisplayToWorld();
-    float* aWorldCoords = theRenderer->GetWorldPoint();
+    vtkFloatingPointType* aWorldCoords = theRenderer->GetWorldPoint();
     if ( aWorldCoords[3] != 0.0 ) {
       for (int i=0; i < 3; i++) {
        thePickPosition[i] = aWorldCoords[i] / aWorldCoords[3];
@@ -324,10 +323,8 @@ namespace
   }
 }
 
-//----------------------------------------------------------------------------
 vtkStandardNewMacro(SVTK_RectPicker);
 
-//----------------------------------------------------------------------------
 SVTK_RectPicker
 ::SVTK_RectPicker()
 {
@@ -341,26 +338,33 @@ SVTK_RectPicker
 
 int
 SVTK_RectPicker
-::Pick(float, float, float, vtkRenderer*)
+::Pick(vtkFloatingPointType, 
+       vtkFloatingPointType, 
+       vtkFloatingPointType, 
+       vtkRenderer*)
 {
   return 0;
 }
 
-//----------------------------------------------------------------------------
 int
 SVTK_RectPicker
-::Pick(float theSelection[3], float theSelection2[3], vtkRenderer *theRenderer)
+::Pick(vtkFloatingPointType theSelection[3], 
+       vtkFloatingPointType theSelection2[3], 
+       vtkRenderer *theRenderer)
 {
   return Pick(theSelection[0], theSelection[1], theSelection[2], 
              theSelection2[0], theSelection2[1], theSelection2[2],
              theRenderer);
 }
 
-//----------------------------------------------------------------------------
 int 
 SVTK_RectPicker
-::Pick(float theSelectionX, float theSelectionY, float theSelectionZ, 
-       float theSelectionX2, float theSelectionY2, float theSelectionZ2,
+::Pick(vtkFloatingPointType theSelectionX, 
+       vtkFloatingPointType theSelectionY, 
+       vtkFloatingPointType theSelectionZ, 
+       vtkFloatingPointType theSelectionX2, 
+       vtkFloatingPointType theSelectionY2, 
+       vtkFloatingPointType theSelectionZ2,
        vtkRenderer *theRenderer)
 {
   //  Initialize picking process
@@ -374,14 +378,14 @@ SVTK_RectPicker
   //
   vtkCamera* aCamera = theRenderer->GetActiveCamera();
 
-  float aCameraFP[4];
+  vtkFloatingPointType aCameraFP[4];
   aCamera->GetFocalPoint(aCameraFP); 
   aCameraFP[3] = 1.0;
 
   theRenderer->SetWorldPoint(aCameraFP);
   theRenderer->WorldToDisplay();
-  float* aDisplayCoords = theRenderer->GetDisplayPoint();
-  float aSelectionZ = aDisplayCoords[2];
+  vtkFloatingPointType* aDisplayCoords = theRenderer->GetDisplayPoint();
+  vtkFloatingPointType aSelectionZ = aDisplayCoords[2];
 
   this->SelectionPoint[0] = theSelectionX;
   this->SelectionPoint[1] = theSelectionY;
@@ -472,7 +476,6 @@ SVTK_RectPicker
 }
 
 
-//----------------------------------------------------------------------------
 const SVTK_RectPicker::TVectorIdsMap& 
 SVTK_RectPicker
 ::GetPointIdsMap() const
index a9837c2d9cdc647f6a66a29c71dd73b8461d90af..77c9a3b16674543b3c743ff6ddc36c9fe20535b9 100644 (file)
@@ -29,6 +29,7 @@
 #define __SVTK_RectPicker_h
 
 #include "SVTK.h"
+#include "VTKViewer.h"
 
 #include <map>
 #include <vector>
@@ -40,7 +41,7 @@ class vtkRenderer;
 /*! \class vtkAbstractPropPicker
  * \brief For more information see <a href="http://www.vtk.org/">VTK documentation
  */
-/*! \class VTKViewer_RectPicker
+/*! \class SVTK_RectPicker
  * \brief Rectangular picker class.
  */
 class SVTK_EXPORT SVTK_RectPicker : public vtkAbstractPropPicker
@@ -56,8 +57,8 @@ class SVTK_EXPORT SVTK_RectPicker : public vtkAbstractPropPicker
     as fraction of rendering window size. (Rendering window size is measured
     across diagonal.)
   */
-  vtkSetMacro(Tolerance,float);
-  vtkGetMacro(Tolerance,float);
+  vtkSetMacro(Tolerance,vtkFloatingPointType);
+  vtkGetMacro(Tolerance,vtkFloatingPointType);
 
   //! Use these methods to pick points or points and cells
   vtkSetMacro(PickPoints,int);
@@ -66,12 +67,18 @@ class SVTK_EXPORT SVTK_RectPicker : public vtkAbstractPropPicker
 
   virtual 
   int
-  Pick(float theSelectionX, float theSelectionY, float theSelectionZ, 
-       float theSelectionX2, float theSelectionY2, float theSelectionZ2,
+  Pick(vtkFloatingPointType theSelectionX, 
+       vtkFloatingPointType theSelectionY, 
+       vtkFloatingPointType theSelectionZ, 
+       vtkFloatingPointType theSelectionX2, 
+       vtkFloatingPointType theSelectionY2, 
+       vtkFloatingPointType theSelectionZ2,
        vtkRenderer *theRenderer);  
 
   int
-  Pick(float theSelection[3], float theSelection2[3], vtkRenderer *theRenderer);
+  Pick(vtkFloatingPointType theSelection[3], 
+       vtkFloatingPointType theSelection2[3], 
+       vtkRenderer *theRenderer);
 
   typedef std::vector<vtkIdType> TVectorIds;
   typedef std::map<vtkActor*,TVectorIds> TVectorIdsMap;
@@ -87,16 +94,16 @@ class SVTK_EXPORT SVTK_RectPicker : public vtkAbstractPropPicker
   ~SVTK_RectPicker();
 
   //! tolerance for computation (% of window)
-  float Tolerance;
+  vtkFloatingPointType Tolerance;
 
   //! use the following to control picking mode
   int PickPoints;
 
   //! second rectangle selection point in window (pixel) coordinates
-  float SelectionPoint2[3]; 
+  vtkFloatingPointType SelectionPoint2[3]; 
 
   //! second rectangle selection point in world coordinates
-  float PickPosition2[3]; 
+  vtkFloatingPointType PickPosition2[3]; 
 
   TVectorIdsMap myPointIdsMap;
   TVectorIdsMap myCellIdsMap;
@@ -104,7 +111,10 @@ class SVTK_EXPORT SVTK_RectPicker : public vtkAbstractPropPicker
  private:
   virtual 
   int
-  Pick(float, float, float, vtkRenderer*);
+  Pick(vtkFloatingPointType, 
+       vtkFloatingPointType, 
+       vtkFloatingPointType, 
+       vtkRenderer*);
 };
 
 #endif
index 0d4142995bf1cf8e4cf13dbd2cc3832621e7dac0..4921f63f91ddc18db502c26b2970c206d585714b 100644 (file)
@@ -61,7 +61,9 @@ static bool GENERATE_SUIT_EVENTS = false;
 static bool FOCUS_UNDER_MOUSE = false;
 
 
-//----------------------------------------------------------------------------
+/*!
+  Constructor
+*/
 QVTK_RenderWindowInteractor
 ::QVTK_RenderWindowInteractor(QWidget* theParent, 
                              const char* theName):
@@ -79,7 +81,9 @@ QVTK_RenderWindowInteractor
   myRenderWindow->SetWindowId((void*)winId());
 }
 
-
+/*!
+  To initialize by vtkGenericRenderWindowInteractor instance
+*/
 void 
 QVTK_RenderWindowInteractor
 ::Initialize(vtkGenericRenderWindowInteractor* theDevice)
@@ -93,7 +97,9 @@ QVTK_RenderWindowInteractor
     theDevice->SetRenderWindow(getRenderWindow());
 }
 
-//----------------------------------------------------------------------------
+/*!
+  Destructor
+*/
 QVTK_RenderWindowInteractor
 ::~QVTK_RenderWindowInteractor() 
 {
@@ -103,7 +109,9 @@ QVTK_RenderWindowInteractor
 }
 
 
-//----------------------------------------------------------------------------
+/*!
+  \return corresponding render window interactor
+*/
 vtkGenericRenderWindowInteractor* 
 QVTK_RenderWindowInteractor
 ::GetDevice()
@@ -111,7 +119,9 @@ QVTK_RenderWindowInteractor
   return myDevice.GetPointer();
 }
 
-//----------------------------------------------------------------------------
+/*!
+  \return corresponding render window
+*/
 vtkRenderWindow*
 QVTK_RenderWindowInteractor
 ::getRenderWindow()
@@ -119,7 +129,9 @@ QVTK_RenderWindowInteractor
   return myRenderWindow.GetPointer();
 }
 
-//----------------------------------------------------------------------------
+/*!
+  Just to simplify usage of its device (vtkGenericRenderWindowInteractor)
+*/
 void
 QVTK_RenderWindowInteractor
 ::InvokeEvent(unsigned long theEvent, void* theCallData)
@@ -127,7 +139,9 @@ QVTK_RenderWindowInteractor
   GetDevice()->InvokeEvent(theEvent,theCallData);
 }
 
-//----------------------------------------------------------------------------
+/*!
+  Need for initial contents display on Win32
+*/
 void
 QVTK_RenderWindowInteractor
 ::show()
@@ -136,7 +150,9 @@ QVTK_RenderWindowInteractor
   update(); // needed for initial contents display on Win32
 }
 
-//----------------------------------------------------------------------------
+/*!
+  To implement final initialization, just before the widget is displayed
+*/
 void
 QVTK_RenderWindowInteractor
 ::polish()
@@ -149,7 +165,9 @@ QVTK_RenderWindowInteractor
   }
 }
 
-//----------------------------------------------------------------------------
+/*!
+  To adjust widget and vtkRenderWindow size
+*/
 void
 QVTK_RenderWindowInteractor
 ::resize(int w, int h) 
@@ -157,7 +175,9 @@ QVTK_RenderWindowInteractor
   GetDevice()->UpdateSize(w,h);
 }
 
-//----------------------------------------------------------------------------
+/*!
+  Custom paint event handler
+*/
 void
 QVTK_RenderWindowInteractor
 ::paintEvent( QPaintEvent* theEvent ) 
@@ -166,7 +186,9 @@ QVTK_RenderWindowInteractor
 }
 
 
-//----------------------------------------------------------------------------
+/*!
+  Custom resize event handler
+*/
 void
 QVTK_RenderWindowInteractor
 ::resizeEvent( QResizeEvent* theEvent )
@@ -198,14 +220,18 @@ QVTK_RenderWindowInteractor
 }
 
 
-//----------------------------------------------------------------------------
+
+/*!
+  Custom context menu event handler
+*/
 void
 QVTK_RenderWindowInteractor
 ::contextMenuEvent( QContextMenuEvent* event )
 {}
 
-
-//----------------------------------------------------------------------------
+/*!
+  Custom mouse move event handler
+*/
 void
 QVTK_RenderWindowInteractor
 ::mouseMoveEvent( QMouseEvent* event ) 
@@ -218,7 +244,9 @@ QVTK_RenderWindowInteractor
 }
 
 
-//----------------------------------------------------------------------------
+/*!
+  Custom mouse press event handler
+*/
 void
 QVTK_RenderWindowInteractor
 ::mousePressEvent( QMouseEvent* event ) 
@@ -236,7 +264,9 @@ QVTK_RenderWindowInteractor
 }
 
 
-//----------------------------------------------------------------------------
+/*!
+  Custom mouse release event handler
+*/
 void
 QVTK_RenderWindowInteractor
 ::mouseReleaseEvent( QMouseEvent *event )
@@ -255,14 +285,18 @@ QVTK_RenderWindowInteractor
 }
 
 
-//----------------------------------------------------------------------------
+/*!
+  Custom mouse double click event handler
+*/
 void
 QVTK_RenderWindowInteractor
 ::mouseDoubleClickEvent( QMouseEvent* event )
 {}
 
 
-//----------------------------------------------------------------------------
+/*!
+  Custom mouse wheel event handler
+*/
 void
 QVTK_RenderWindowInteractor
 ::wheelEvent( QWheelEvent* event )
@@ -272,7 +306,9 @@ QVTK_RenderWindowInteractor
 }
 
 
-//----------------------------------------------------------------------------
+/*!
+  Custom key press event handler
+*/
 void
 QVTK_RenderWindowInteractor
 ::keyPressEvent( QKeyEvent* event ) 
@@ -284,7 +320,9 @@ QVTK_RenderWindowInteractor
   GetDevice()->CharEvent();
 }
 
-//----------------------------------------------------------------------------
+/*!
+  Custom key release event handler
+*/
 void
 QVTK_RenderWindowInteractor
 ::keyReleaseEvent( QKeyEvent * event ) 
@@ -296,7 +334,9 @@ QVTK_RenderWindowInteractor
 }
 
 
-//----------------------------------------------------------------------------
+/*!
+  Custom enter event handler
+*/
 void  
 QVTK_RenderWindowInteractor
 ::enterEvent( QEvent* event )
@@ -308,7 +348,9 @@ QVTK_RenderWindowInteractor
   GetDevice()->EnterEvent();
 }
 
-//----------------------------------------------------------------------------
+/*!
+  Custom leave event handler
+*/
 void  
 QVTK_RenderWindowInteractor
 ::leaveEvent( QEvent * )
@@ -316,8 +358,10 @@ QVTK_RenderWindowInteractor
   GetDevice()->LeaveEvent();
 }
 
-
-//----------------------------------------------------------------------------
+/*!
+  Reimplemented from QWidget in order to set window - receiver
+  of space mouse events. 
+*/
 void  
 QVTK_RenderWindowInteractor
 ::focusInEvent( QFocusEvent* event )
@@ -334,7 +378,10 @@ QVTK_RenderWindowInteractor
   }
 }
 
-//----------------------------------------------------------------------------
+/*!
+  Reimplemented from QWidget in order to set window - receiver
+  of space mouse events. 
+*/
 void  
 QVTK_RenderWindowInteractor
 ::focusOutEvent ( QFocusEvent* event )
@@ -349,7 +396,9 @@ QVTK_RenderWindowInteractor
 }
 
 
-//----------------------------------------------------------------------------
+/*!
+  To handle native X11 events (from such devices as SpaceMouse)
+*/
 bool 
 QVTK_RenderWindowInteractor
 ::x11Event( XEvent *xEvent )
@@ -376,8 +425,9 @@ QVTK_RenderWindowInteractor
   return QWidget::x11Event( xEvent );
 }
 
-
-//----------------------------------------------------------------------------
+/*!
+  Constructor
+*/
 SVTK_RenderWindowInteractor
 ::SVTK_RenderWindowInteractor(QWidget* theParent, 
                               const char* theName):
@@ -392,6 +442,9 @@ SVTK_RenderWindowInteractor
   myEventCallbackCommand->SetCallback(SVTK_RenderWindowInteractor::ProcessEvents);
 }
 
+/*!
+  To initialize properly the class
+*/
 void
 SVTK_RenderWindowInteractor
 ::Initialize(vtkGenericRenderWindowInteractor* theDevice,
@@ -403,7 +456,9 @@ SVTK_RenderWindowInteractor
   SetSelector(theSelector);
 }
 
-//----------------------------------------------------------------------------
+/*!
+  Destructor
+*/
 SVTK_RenderWindowInteractor
 ::~SVTK_RenderWindowInteractor() 
 {
@@ -421,7 +476,9 @@ SVTK_RenderWindowInteractor
   GetDevice()->SetRenderWindow(NULL);
 }
 
-//----------------------------------------------------------------------------
+/*!
+  To get corresponding SVTK_Renderer instance
+*/
 SVTK_Renderer* 
 SVTK_RenderWindowInteractor
 ::GetRenderer()
@@ -429,6 +486,9 @@ SVTK_RenderWindowInteractor
   return myRenderer.GetPointer();
 }
 
+/*!
+  To get corresponding SVTK_Renderer device (just to simplify collobaration with SVTK_Renderer)
+*/
 vtkRenderer* 
 SVTK_RenderWindowInteractor
 ::getRenderer()
@@ -436,6 +496,10 @@ SVTK_RenderWindowInteractor
   return GetRenderer()->GetDevice();
 }
 
+/*!
+  Changes renderer
+  \param theRenderer - new renderer
+*/
 void
 SVTK_RenderWindowInteractor
 ::SetRenderer(SVTK_Renderer* theRenderer)
@@ -453,7 +517,10 @@ SVTK_RenderWindowInteractor
 }
 
 
-//----------------------------------------------------------------------------
+/*!
+  Changes interactor style
+  \param theStyle - new interactor style
+*/
 void
 SVTK_RenderWindowInteractor
 ::InitInteractorStyle(vtkInteractorStyle* theStyle)
@@ -461,8 +528,9 @@ SVTK_RenderWindowInteractor
   GetDevice()->SetInteractorStyle(theStyle); 
 }
 
-
-//----------------------------------------------------------------------------
+/*!
+  To change current interactor style by pushing the new one into the container
+*/
 void
 SVTK_RenderWindowInteractor
 ::PushInteractorStyle(vtkInteractorStyle* theStyle)
@@ -471,8 +539,9 @@ SVTK_RenderWindowInteractor
   InitInteractorStyle(theStyle);
 }
 
-
-//----------------------------------------------------------------------------
+/*!
+  To restore previous interactor style
+*/
 void
 SVTK_RenderWindowInteractor
 ::PopInteractorStyle()
@@ -484,8 +553,9 @@ SVTK_RenderWindowInteractor
     InitInteractorStyle(GetInteractorStyle());
 }
 
-
-//----------------------------------------------------------------------------
+/*!
+  To get current interactor style
+*/
 vtkInteractorStyle* 
 SVTK_RenderWindowInteractor
 ::GetInteractorStyle()
@@ -494,7 +564,9 @@ SVTK_RenderWindowInteractor
 }
 
 
-//----------------------------------------------------------------------------
+/*!
+  To get current selector
+*/
 SVTK_Selector* 
 SVTK_RenderWindowInteractor
 ::GetSelector() 
@@ -503,6 +575,10 @@ SVTK_RenderWindowInteractor
 }
 
 
+/*!
+  Changes selector
+  \param theSelector - new selector
+*/
 void
 SVTK_RenderWindowInteractor
 ::SetSelector(SVTK_Selector* theSelector)
@@ -518,8 +594,9 @@ SVTK_RenderWindowInteractor
                            myPriority);
 }
 
-
-//----------------------------------------------------------------------------
+/*!
+  Main process VTK event method
+*/
 void 
 SVTK_RenderWindowInteractor
 ::ProcessEvents(vtkObject* vtkNotUsed(theObject), 
@@ -536,8 +613,9 @@ SVTK_RenderWindowInteractor
   }
 }
 
-
-//----------------------------------------------------------------
+/*!
+  To change selection mode (just to simplify collobaration with SVTK_Selector)
+*/
 void
 SVTK_RenderWindowInteractor
 ::SetSelectionMode(Selection_Mode theMode)
@@ -545,8 +623,9 @@ SVTK_RenderWindowInteractor
   mySelector->SetSelectionMode(theMode);
 }
 
-
-//----------------------------------------------------------------
+/*!
+  To get current selection mode (just to simplify collobaration with SVTK_Selector)
+*/
 Selection_Mode
 SVTK_RenderWindowInteractor
 ::SelectionMode() const
@@ -555,7 +634,9 @@ SVTK_RenderWindowInteractor
 }
 
 
-//----------------------------------------------------------------
+/*!
+  Emits signal selectionChanged()
+*/
 void
 SVTK_RenderWindowInteractor
 ::onEmitSelectionChanged()
@@ -564,7 +645,9 @@ SVTK_RenderWindowInteractor
 }
 
 
-//----------------------------------------------------------------------------
+/*!
+  Custom mouse move event handler
+*/
 void
 SVTK_RenderWindowInteractor
 ::mouseMoveEvent( QMouseEvent* event ) 
@@ -576,7 +659,9 @@ SVTK_RenderWindowInteractor
 }
 
 
-//----------------------------------------------------------------------------
+/*!
+  Custom mouse press event handler
+*/
 void
 SVTK_RenderWindowInteractor
 ::mousePressEvent( QMouseEvent* event ) 
@@ -588,7 +673,9 @@ SVTK_RenderWindowInteractor
 }
 
 
-//----------------------------------------------------------------------------
+/*!
+  Custom mouse release event handler
+*/
 void
 SVTK_RenderWindowInteractor
 ::mouseReleaseEvent( QMouseEvent *event )
@@ -600,7 +687,9 @@ SVTK_RenderWindowInteractor
 }
 
 
-//----------------------------------------------------------------------------
+/*!
+  Custom mouse double click event handler
+*/
 void
 SVTK_RenderWindowInteractor
 ::mouseDoubleClickEvent( QMouseEvent* event )
@@ -612,7 +701,9 @@ SVTK_RenderWindowInteractor
 }
 
 
-//----------------------------------------------------------------------------
+/*!
+  Custom mouse wheel event handler
+*/
 void
 SVTK_RenderWindowInteractor
 ::wheelEvent( QWheelEvent* event )
@@ -628,8 +719,9 @@ SVTK_RenderWindowInteractor
     emit WheelMoved( event );
 }
 
-
-//----------------------------------------------------------------------------
+/*!
+  Custom key press event handler
+*/
 void
 SVTK_RenderWindowInteractor
 ::keyPressEvent( QKeyEvent* event ) 
@@ -640,7 +732,9 @@ SVTK_RenderWindowInteractor
     emit KeyPressed( event );
 }
 
-//----------------------------------------------------------------------------
+/*!
+  Custom key release event handler
+*/
 void
 SVTK_RenderWindowInteractor
 ::keyReleaseEvent( QKeyEvent * event ) 
@@ -651,7 +745,9 @@ SVTK_RenderWindowInteractor
     emit KeyReleased( event );
 }
 
-//----------------------------------------------------------------------------
+/*!
+  Custom context menu event handler
+*/
 void
 SVTK_RenderWindowInteractor
 ::contextMenuEvent( QContextMenuEvent* event )
index bc0020ddf9a447880cad9e208dd97dae40dfd219..c67f863132cfe89358a47ea4c1abf42890c676eb 100644 (file)
@@ -52,9 +52,9 @@ class vtkObject;
 class SVTK_Selector;
 class SVTK_Renderer;
 
-//============================================================================
-//! Implemements Qt based vtkRenderWindowInteractor.
 /*!
+  \class QVTK_RenderWindowInteractor
+  Implements Qt based vtkRenderWindowInteractor.
   The class inherits #QWidget class in order to be possible process Qt events.
   It invokes corresponding VTK events through usage of its device - a #vtkGenericRenderWindowInteractor.
   Also, it creates, initialize and holds vtkRenderWindow instance.
@@ -124,9 +124,9 @@ class SVTK_EXPORT QVTK_RenderWindowInteractor: public QWidget
 };
 
 
-//============================================================================
 //! Extends QVTK_RenderWindowInteractor functionality.
 /*!
+  \class SVTK_RenderWindowInteractor
   Implements such features as 
   support of selection, 
   run-time interactor style management,
index 8302903a332405aade259b78d26c450af189cf08..853ad34ca247067f531c2525e873c6dfaddbf36f 100644 (file)
 #undef max
 
 
-//----------------------------------------------------------------------------
 vtkStandardNewMacro(SVTK_Renderer);
 
-//----------------------------------------------------------------------------
+/*!
+  Constructor
+*/
 SVTK_Renderer
 ::SVTK_Renderer():
   myDevice(vtkRenderer::New()),
@@ -152,6 +153,9 @@ SVTK_Renderer
                           myPriority);
 }
 
+/*!
+  Destructor
+*/
 SVTK_Renderer
 ::~SVTK_Renderer()
 {
@@ -176,6 +180,9 @@ SVTK_Renderer
 }
 
 
+/*!
+  Main process event method
+*/
 void 
 SVTK_Renderer
 ::ProcessEvents(vtkObject* vtkNotUsed(theObject), 
@@ -198,7 +205,9 @@ SVTK_Renderer
   }
 }
 
-//----------------------------------------------------------------------------
+/*!
+  \return renderer's device
+*/
 vtkRenderer* 
 SVTK_Renderer
 ::GetDevice()
@@ -206,6 +215,9 @@ SVTK_Renderer
   return myDevice.GetPointer();
 }
 
+/*!
+  Initialize renderer
+*/
 void 
 SVTK_Renderer
 ::Initialize(vtkRenderWindowInteractor* theInteractor,
@@ -215,7 +227,9 @@ SVTK_Renderer
   mySelector = theSelector;
 }
 
-//----------------------------------------------------------------------------
+/*!
+  Publishes pointed actor into the renderer
+*/
 void
 SVTK_Renderer
 ::AddActor(VTKViewer_Actor* theActor)
@@ -239,6 +253,9 @@ SVTK_Renderer
   }
 }
 
+/*!
+  Removes pointed actor from the renderer
+*/
 void
 SVTK_Renderer
 ::RemoveActor(VTKViewer_Actor* theActor)
@@ -264,6 +281,9 @@ SVTK_Renderer
   }
 }
 
+/*!
+  Get special container that keeps scaling of the scene
+*/
 VTKViewer_Transform* 
 SVTK_Renderer
 ::GetTransform()
@@ -271,6 +291,9 @@ SVTK_Renderer
   return myTransform.GetPointer();
 }
 
+/*!
+  Allows to get a scale that is applied on the whole scene
+*/
 void
 SVTK_Renderer
 ::GetScale( double theScale[3] ) 
@@ -278,6 +301,9 @@ SVTK_Renderer
   myTransform->GetMatrixScale( theScale );
 }
 
+/*!
+  Allows to apply a scale on the whole scene
+*/
 void
 SVTK_Renderer
 ::SetScale( double theScale[3] ) 
@@ -286,8 +312,9 @@ SVTK_Renderer
   AdjustActors();
 }
 
-
-//----------------------------------------------------------------------------
+/*!
+  Applies color and size (PointSize and LineWidth) of primitives in selection mode
+*/
 void
 SVTK_Renderer
 ::SetSelectionProp(const double& theRed, 
@@ -300,7 +327,9 @@ SVTK_Renderer
   myHighlightProperty->SetPointSize( theWidth );
 }
 
-//----------------------------------------------------------------------------
+/*!
+  Applies color and size (PointSize and LineWidth) of primitives in preselection mode
+*/
 void
 SVTK_Renderer
 ::SetPreselectionProp(const double& theRed, 
@@ -313,7 +342,9 @@ SVTK_Renderer
   myPreHighlightProperty->SetPointSize( theWidth );
 }
 
-//----------------------------------------------------------------------------
+/*!
+  Setup requested tolerance for the picking
+*/
 void
 SVTK_Renderer
 ::SetSelectionTolerance(const double& theTolNodes, 
@@ -327,14 +358,13 @@ SVTK_Renderer
 }
 
 
-//----------------------------------------------------------------------------
 /*! If parameter theIsForcedUpdate is true, recalculate parameters for
  *  trihedron and cube axes, even if trihedron and cube axes is invisible.
  */
 
 inline
 bool
-CheckBndBox(const float theBounds[6])
+CheckBndBox(const vtkFloatingPointType theBounds[6])
 {
   if(theBounds[0] > -VTK_LARGE_FLOAT && theBounds[1] < VTK_LARGE_FLOAT &&
      theBounds[2] > -VTK_LARGE_FLOAT && theBounds[3] < VTK_LARGE_FLOAT &&
@@ -343,6 +373,9 @@ CheckBndBox(const float theBounds[6])
   return false;
 }
 
+/*!
+  Adjusts size of actors
+*/
 bool
 SVTK_Renderer
 ::OnAdjustActors()
@@ -350,7 +383,7 @@ SVTK_Renderer
   bool aTDisplayed = IsTrihedronDisplayed();
   bool aCDisplayed = IsCubeAxesDisplayed();
 
-  float aNewBndBox[6];
+  vtkFloatingPointType aNewBndBox[6];
   aNewBndBox[ 0 ] = aNewBndBox[ 2 ] = aNewBndBox[ 4 ] = VTK_LARGE_FLOAT;
   aNewBndBox[ 1 ] = aNewBndBox[ 3 ] = aNewBndBox[ 5 ] = -VTK_LARGE_FLOAT;
 
@@ -363,7 +396,7 @@ SVTK_Renderer
       myCubeAxes->VisibilityOff();
 
     // if the new trihedron size have sufficient difference, then apply the value
-    double aSize = myTrihedron->GetSize();
+    vtkFloatingPointType aSize = myTrihedron->GetSize();
     if ( IsTrihedronRelative() )
       {
        ComputeTrihedronSize(GetDevice(),aSize,aSize,myTrihedronSize);
@@ -380,7 +413,7 @@ SVTK_Renderer
        if(anActor->IsResizable())
          anActor->SetSize(0.5*aSize);
         if(anActor->GetVisibility() && !anActor->IsInfinitive()){
-         float *aBounds = anActor->GetBounds();
+         vtkFloatingPointType *aBounds = anActor->GetBounds();
           if(CheckBndBox(aBounds))
            for(int i = 0; i < 5; i = i + 2){
              if(aBounds[i] < aNewBndBox[i]) 
@@ -414,6 +447,9 @@ SVTK_Renderer
   return false;
 }
 
+/*!
+  Adjusts size of actors
+*/
 void
 SVTK_Renderer
 ::AdjustActors()
@@ -422,6 +458,12 @@ SVTK_Renderer
     ::ResetCameraClippingRange(GetDevice());
 }
 
+/*!
+  Set size of the trihedron
+  \param theSize - new size
+  \param theRelative - if it is true, then size is mesured in percents from bounding box of the scene,
+  otherwise - in viewer units
+*/
 void
 SVTK_Renderer
 ::SetTrihedronSize(int theSize, const bool theRelative)
@@ -433,6 +475,9 @@ SVTK_Renderer
   }
 }
 
+/*!
+  \return size of the trihedron in percents from bounding box of the scene
+*/
 int
 SVTK_Renderer
 ::GetTrihedronSize() const
@@ -440,6 +485,9 @@ SVTK_Renderer
   return myTrihedronSize;
 }
 
+/*!
+  \return true if the size of the trihedron is relative
+*/
 bool 
 SVTK_Renderer
 ::IsTrihedronRelative() const
@@ -447,7 +495,9 @@ SVTK_Renderer
   return myIsTrihedronRelative;
 }
 
-//----------------------------------------------------------------------------
+/*!
+  \return trihedron control
+*/
 VTKViewer_Trihedron* 
 SVTK_Renderer
 ::GetTrihedron()
@@ -455,6 +505,9 @@ SVTK_Renderer
   return myTrihedron.GetPointer();
 }
 
+/*!
+  \return true if trihedron is displayed
+*/
 bool
 SVTK_Renderer
 ::IsTrihedronDisplayed()
@@ -462,6 +515,9 @@ SVTK_Renderer
   return myTrihedron->GetVisibility() == VTKViewer_Trihedron::eOn;
 }
 
+/*!
+  Toggle trihedron visibility
+*/
 void 
 SVTK_Renderer
 ::OnViewTrihedron()
@@ -472,6 +528,9 @@ SVTK_Renderer
     myTrihedron->VisibilityOn();
 }
 
+/*!
+  Adjust size of the trihedron to the bounding box of the scene
+*/
 void
 SVTK_Renderer
 ::OnAdjustTrihedron()
@@ -479,8 +538,9 @@ SVTK_Renderer
   AdjustActors();
 }
 
-
-//----------------------------------------------------------------------------
+/*!
+  \return graduated rules control
+*/
 SVTK_CubeAxesActor2D* 
 SVTK_Renderer
 ::GetCubeAxes()
@@ -488,6 +548,9 @@ SVTK_Renderer
   return myCubeAxes.GetPointer();
 }
 
+/*!
+  \return true if graduated rules displayed
+*/
 bool
 SVTK_Renderer
 ::IsCubeAxesDisplayed()
@@ -495,6 +558,9 @@ SVTK_Renderer
   return myCubeAxes->GetVisibility() == 1;
 }
 
+/*!
+  Toggle graduated rules visibility
+*/
 void
 SVTK_Renderer
 ::OnViewCubeAxes()
@@ -505,6 +571,9 @@ SVTK_Renderer
     myCubeAxes->VisibilityOn();
 }
 
+/*!
+  Adjust size of the graduated rules to the bounding box of the scene
+*/
 void
 SVTK_Renderer
 ::OnAdjustCubeAxes()
@@ -512,8 +581,9 @@ SVTK_Renderer
   AdjustActors();
 }
 
-
-//----------------------------------------------------------------------------
+/*!
+  Sets camera into predefined state
+*/
 void
 SVTK_Renderer
 ::OnResetView()
@@ -540,12 +610,13 @@ SVTK_Renderer
   else
     myCubeAxes->VisibilityOff();
 
-  static float aCoeff = 3.0;
+  static vtkFloatingPointType aCoeff = 3.0;
   aCamera->SetParallelScale(aCoeff*aCamera->GetParallelScale());
 }
 
-
-//----------------------------------------------------------------------------
+/*!
+  Fit all presentation in the scene into the window
+*/
 void
 SVTK_Renderer
 ::OnFitAll()
@@ -584,8 +655,9 @@ SVTK_Renderer
   ::ResetCameraClippingRange(GetDevice());
 }
 
-
-//----------------------------------------------------------------------------
+/*!
+  Reset camera clipping range to adjust the range to the bounding box of the scene
+*/
 void
 SVTK_Renderer
 ::OnResetClippingRange()
@@ -594,8 +666,9 @@ SVTK_Renderer
   ::ResetCameraClippingRange(GetDevice());
 }
 
-
-//----------------------------------------------------------------------------
+/*!
+  To reset direction of the camera to front view
+*/
 void
 SVTK_Renderer
 ::OnFrontView()
@@ -607,7 +680,9 @@ SVTK_Renderer
   this->OnFitAll();
 }
 
-//----------------------------------------------------------------------------
+/*!
+  To reset direction of the camera to back view
+*/
 void
 SVTK_Renderer
 ::OnBackView()
@@ -619,7 +694,9 @@ SVTK_Renderer
   this->OnFitAll();
 }
 
-//----------------------------------------------------------------------------
+/*!
+  To reset direction of the camera to top view
+*/
 void
 SVTK_Renderer
 ::OnTopView()
@@ -631,7 +708,9 @@ SVTK_Renderer
   this->OnFitAll();
 }
 
-//----------------------------------------------------------------------------
+/*!
+  To reset direction of the camera to bottom view
+*/
 void
 SVTK_Renderer
 ::OnBottomView()
@@ -643,7 +722,9 @@ SVTK_Renderer
   this->OnFitAll();
 }
 
-//----------------------------------------------------------------------------
+/*!
+  To reset direction of the camera to left view
+*/
 void
 SVTK_Renderer
 ::OnLeftView()
@@ -655,7 +736,9 @@ SVTK_Renderer
   this->OnFitAll();
 }
 
-//----------------------------------------------------------------------------
+/*!
+  To reset direction of the camera to right view
+*/
 void
 SVTK_Renderer
 ::OnRightView()
index 5532ea852c141d600452b33aebc4af73e1f815e7..6012689ec5bf58a9013f93f22d2fa0131f65a0f5 100644 (file)
@@ -30,6 +30,7 @@
 #define SVTK_Renderer_h
 
 #include "SVTK.h"
+#include "VTKViewer.h"
 
 #include <vtkObject.h>
 #include <vtkSmartPointer.h>
@@ -52,13 +53,13 @@ class VTKViewer_Actor;
 class SVTK_Selector;
 
 
-//! The class is a container for #vtkRenderer instance.
-/*!
+/*! 
+  \class SVTK_Renderer
+  The class is a container for #vtkRenderer instance.
   Main goal of the class is to apply common behaviour to all #SALOME_Actor, like
   selection and preselection colors.
   Also, the class is responsible for management of internal actors like trihedron an so on.
  */
-//============================================================================
 class SVTK_EXPORT SVTK_Renderer : public vtkObject
 {
  public:
@@ -77,12 +78,12 @@ class SVTK_EXPORT SVTK_Renderer : public vtkObject
             SVTK_Selector* theSelector);
 
   //----------------------------------------------------------------------------
-  //! This method publishes pointed actor into the renderer
+  //! Publishes pointed actor into the renderer
   virtual
   void 
   AddActor(VTKViewer_Actor* theActor);
 
-  //! This method removes pointed actor from the renderer
+  //! Removes pointed actor from the renderer
   virtual
   void 
   RemoveActor(VTKViewer_Actor* theActor);
@@ -91,12 +92,12 @@ class SVTK_EXPORT SVTK_Renderer : public vtkObject
   VTKViewer_Transform* 
   GetTransform();
 
-  //! This method allow to apply a scale on the whole scene
+  //! Allows to apply a scale on the whole scene
   virtual
   void
   SetScale( double theScale[3] );
 
-  //! This method allow to get a scale that is applied on the whole scene
+  //! Allows to get a scale that is applied on the whole scene
   void
   GetScale( double theScale[3] );
 
@@ -115,7 +116,7 @@ class SVTK_EXPORT SVTK_Renderer : public vtkObject
                      const double& theBlue = 1, 
                      const int& theWidth = 5);
 
-  //! Setup requested tollerance for the picking
+  //! Setup requested tolerance for the picking
   void
   SetSelectionTolerance(const double& theTolNodes = 0.025, 
                        const double& theTolCell = 0.001);
@@ -209,7 +210,7 @@ class SVTK_EXPORT SVTK_Renderer : public vtkObject
 
   //----------------------------------------------------------------------------
   // Priority at which events are processed
-  float myPriority;
+  vtkFloatingPointType myPriority;
 
   // Used to process events
   vtkSmartPointer<vtkCallbackCommand> myEventCallbackCommand;
@@ -244,7 +245,7 @@ class SVTK_EXPORT SVTK_Renderer : public vtkObject
   vtkSmartPointer<VTKViewer_Trihedron> myTrihedron;  
   int  myTrihedronSize;
   bool myIsTrihedronRelative;
-  float myBndBox[6];
+  vtkFloatingPointType myBndBox[6];
 };
 
 #endif
index bc6dad1480e5ee99953a82b0e9588e0dba014f5b..b2813a41c4ecb9086e101674626632457dd85d3d 100644 (file)
@@ -36,6 +36,9 @@
 
 #include <vtkCallbackCommand.h>
 
+/*!
+  \return new SVTK_Selector
+*/
 SVTK_Selector* 
 SVTK_Selector
 ::New()
@@ -43,19 +46,26 @@ SVTK_Selector
   return new SVTK_SelectorDef();
 }
 
-//----------------------------------------------------------------------------
+/*!
+  Default constructor
+*/
 SVTK_SelectorDef
 ::SVTK_SelectorDef()
 {
   mySelectionMode = ActorSelection;
 }
 
+/*!
+  Destructor
+*/
 SVTK_SelectorDef
 ::~SVTK_SelectorDef()
 {
 }
 
-//----------------------------------------------------------------------------
+/*!
+  To invoke selectionChanged signals
+*/
 void 
 SVTK_SelectorDef
 ::StartPickCallback()
@@ -63,7 +73,9 @@ SVTK_SelectorDef
   this->InvokeEvent(vtkCommand::StartPickEvent,NULL);
 }
 
-//----------------------------------------------------------------------------
+/*!
+  To invoke selectionChanged signals
+*/
 void 
 SVTK_SelectorDef
 ::EndPickCallback()
@@ -71,7 +83,9 @@ SVTK_SelectorDef
   this->InvokeEvent(vtkCommand::EndPickEvent,NULL);
 }
 
-//----------------------------------------------------------------------------
+/*!
+  To change current Selection_Mode (as outside effect, it invokes selectionChange signal)
+*/
 void 
 SVTK_SelectorDef
 ::SetSelectionMode(Selection_Mode theMode)
@@ -83,6 +97,9 @@ SVTK_SelectorDef
   }
 }
 
+/*!
+  Clear selection
+*/
 void 
 SVTK_SelectorDef
 ::ClearIObjects() 
@@ -92,7 +109,9 @@ SVTK_SelectorDef
   myMapIOSubIndex.clear();
 }
 
-//----------------------------------------------------------------------------
+/*!
+  \return true if the SALOME_InteractiveObject presents into selection
+*/
 bool
 SVTK_SelectorDef
 ::IsSelected(const Handle(SALOME_InteractiveObject)& theIO) const
@@ -100,6 +119,9 @@ SVTK_SelectorDef
   return !theIO.IsNull() && (myIObjects.find(theIO) != myIObjects.end());
 }
 
+/*!
+  \return true if the SALOME_Actor presents into selection
+*/
 bool
 SVTK_SelectorDef
 ::IsSelected(SALOME_Actor* theActor) const
@@ -108,6 +130,10 @@ SVTK_SelectorDef
   return IsSelected(anIO) && myIO2Actors.find(anIO) != myIO2Actors.end();
 }
 
+/*!
+  \return corresponding SALOME_Actor for SALOME_InteractiveObject
+  \param theIO - SALOME_InteractiveObject
+*/
 SALOME_Actor*
 SVTK_SelectorDef
 ::GetActor(const Handle(SALOME_InteractiveObject)& theIO) const
@@ -118,7 +144,10 @@ SVTK_SelectorDef
   return NULL;
 }
 
-//----------------------------------------------------------------------------
+/*!
+  Adds SALOME_InteractiveObject into selection
+  \param theIO - SALOME_InteractiveObject
+*/
 bool 
 SVTK_SelectorDef
 ::AddIObject(const Handle(SALOME_InteractiveObject)& theIO) 
@@ -130,6 +159,10 @@ SVTK_SelectorDef
   return false;
 }
 
+/*!
+  Adds SALOME_Actor into selection
+  \param theActor - SALOME_Actor
+*/
 bool 
 SVTK_SelectorDef
 ::AddIObject(SALOME_Actor* theActor) 
@@ -147,7 +180,10 @@ SVTK_SelectorDef
   return !anIsIOBound || !anIsActorBound;
 }
 
-//----------------------------------------------------------------------------
+/*!
+  Removes SALOME_InteractiveObject from selection
+  \param theIO - SALOME_InteractiveObject
+*/
 bool 
 SVTK_SelectorDef
 ::RemoveIObject(const Handle(SALOME_InteractiveObject)& theIO) 
@@ -161,6 +197,10 @@ SVTK_SelectorDef
   return anIsIOBound;
 }
 
+/*!
+  Removes SALOME_Actor from selection
+  \param theActor - SALOME_Actor
+*/
 bool 
 SVTK_SelectorDef
 ::RemoveIObject(SALOME_Actor* theActor) 
@@ -174,7 +214,9 @@ SVTK_SelectorDef
   return RemoveIObject(anIO) || anIsActorBound;
 }
 
-//----------------------------------------------------------------------------
+/*!
+  \return list of all SALOME_InteractiveObject presenting in selection
+*/
 const SALOME_ListIO& 
 SVTK_SelectorDef
 ::StoredIObjects() const
@@ -188,6 +230,9 @@ SVTK_SelectorDef
   return myIObjectList;
 }
 
+/*!
+  \return number of selected objects
+*/
 int
 SVTK_SelectorDef
 ::IObjectCount() const
@@ -195,6 +240,10 @@ SVTK_SelectorDef
   return myIObjects.size();
 }
 
+/*!
+  \return true if the SALOME_InteractiveObject has a subselection
+  \param theIO - SALOME_InteractiveObject
+*/
 bool 
 SVTK_SelectorDef
 ::HasIndex( const Handle(SALOME_InteractiveObject)& theIO) const
@@ -202,6 +251,10 @@ SVTK_SelectorDef
   return myMapIOSubIndex.find(theIO) != myMapIOSubIndex.end();
 }
 
+/*!
+  Gets indices of subselection for SALOME_InteractiveObject
+  \param theIO - SALOME_InteractiveObject
+*/
 void 
 SVTK_SelectorDef
 ::GetIndex( const Handle(SALOME_InteractiveObject)& theIO, 
@@ -214,6 +267,11 @@ SVTK_SelectorDef
     theIndex.Clear();
 }
 
+/*!
+  \return true if the index presents in subselection 
+  \param theIO - SALOME_InteractiveObject
+  \param theIndex - index
+*/
 bool
 SVTK_SelectorDef
 ::IsIndexSelected(const Handle(SALOME_InteractiveObject)& theIO, 
@@ -253,7 +311,12 @@ removeIndex(TColStd_IndexedMapOfInteger& theMapIndex,
   return anId;
 }
 
-
+/*!
+  Changes indices of subselection for SALOME_InteractiveObject
+  \param theIO - SALOME_InteractiveObject
+  \param theIndices - indices
+  \param theIsModeShift - if it is false, then map will be cleared before indices are added
+*/
 bool
 SVTK_SelectorDef
 ::AddOrRemoveIndex( const Handle(SALOME_InteractiveObject)& theIO, 
@@ -283,6 +346,12 @@ SVTK_SelectorDef
 }
 
 
+/*!
+  Changes indices of subselection for SALOME_InteractiveObject
+  \param theIO - SALOME_InteractiveObject
+  \param theIndices - indices
+  \param theIsModeShift - if it is false, then map will be cleared before indices are added
+*/
 bool
 SVTK_SelectorDef
 ::AddOrRemoveIndex( const Handle(SALOME_InteractiveObject)& theIO, 
@@ -313,6 +382,12 @@ SVTK_SelectorDef
 }
 
 
+/*!
+  Changes indices of subselection for SALOME_InteractiveObject
+  \param theIO - SALOME_InteractiveObject
+  \param theIndex - index
+  \param theIsModeShift - if it is false, then map will be cleared before indices are added
+*/
 bool 
 SVTK_SelectorDef
 ::AddOrRemoveIndex( const Handle(SALOME_InteractiveObject)& theIO, 
@@ -344,6 +419,11 @@ SVTK_SelectorDef
 }
 
 
+/*!
+  Removes index of subselection for SALOME_InteractiveObject
+  \param theIO - SALOME_InteractiveObject
+  \param theIndex - index
+*/
 void
 SVTK_SelectorDef
 ::RemoveIndex( const Handle(SALOME_InteractiveObject)& theIO, 
@@ -356,6 +436,9 @@ SVTK_SelectorDef
   }
 }
 
+/*!
+  Clears all indices of subselection
+*/
 void 
 SVTK_SelectorDef
 ::ClearIndex()
@@ -363,7 +446,10 @@ SVTK_SelectorDef
   myMapIOSubIndex.clear();  
 }
 
-//----------------------------------------------------------------------------
+/*!
+  To apply a filter on the selection
+  \param theFilter - new filter
+*/
 void
 SVTK_SelectorDef
 ::SetFilter(const Handle(VTKViewer_Filter)& theFilter)
@@ -371,7 +457,10 @@ SVTK_SelectorDef
   myFilters.insert(TFilters::value_type(theFilter->GetId(),theFilter));
 }
 
-//----------------------------------------------------------------------------
+/*!
+  \return true if filter with given number is applyed
+  \param theId - filter id
+*/
 bool
 SVTK_SelectorDef
 ::IsFilterPresent(const TFilterID theId) const
@@ -379,7 +468,10 @@ SVTK_SelectorDef
   return myFilters.find(theId) != myFilters.end();
 }
 
-//----------------------------------------------------------------------------
+/*!
+  To remove a filter from the selection
+  \param theId - filter id
+*/
 void  
 SVTK_SelectorDef
 ::RemoveFilter(const TFilterID theId)
@@ -388,7 +480,12 @@ SVTK_SelectorDef
     myFilters.erase(theId);
 }
 
-//----------------------------------------------------------------------------
+/*!
+  \return true if the index satisfy installed filters
+  \param theActor - actor
+  \param theId - filter id
+  \param theIsNode - whether it is node
+*/
 bool
 SVTK_SelectorDef
 ::IsValid(SALOME_Actor* theActor,
@@ -405,7 +502,10 @@ SVTK_SelectorDef
   return true;
 }
 
-//----------------------------------------------------------------------------
+/*!
+  \return filter by it's id
+  \param theId - filter id
+*/
 Handle(VTKViewer_Filter) 
 SVTK_SelectorDef
 ::GetFilter(const TFilterID theId) const
index 37ec0acb1bfd178dff36b3f19bb905d7142a0c0c..f476ae78608444058854113eb36c9e0ac9ea675f 100644 (file)
@@ -127,7 +127,7 @@ public:
   GetIndex( const Handle(SALOME_InteractiveObject)& theIO, 
            TColStd_IndexedMapOfInteger& theIndex ) = 0;
        
-  //! Change indexes of subslection for given #SALOME_InteractiveObject
+  //! Change indices of subselection for given #SALOME_InteractiveObject
   virtual
   bool 
   AddOrRemoveIndex( const Handle(SALOME_InteractiveObject)& theIO, 
@@ -154,7 +154,7 @@ public:
   RemoveIndex( const Handle(SALOME_InteractiveObject)& theIO, 
               int theIndex) = 0;
 
-  //! Check, if the given index is present in subslection 
+  //! Check, if the given index is present in subselection 
   virtual
   bool 
   IsIndexSelected(const Handle(SALOME_InteractiveObject)& theIO, 
index 620e97ec073ea73f0ce900bf31b96b515bd924b9..bc73352fa9da79ecace47fed4becb67f8a8e181b 100644 (file)
 
 #include "SVTK_SpaceMouse.h"
 
-//---------------------------------------------
 SVTK_SpaceMouse* SVTK_SpaceMouse::myInstance = 0;
 
-//---------------------------------------------
+/*!
+  \return shared instance of object (creates if there is no one)
+*/
 SVTK_SpaceMouse* SVTK_SpaceMouse::getInstance()
 {
   if ( !myInstance )
@@ -49,14 +50,18 @@ SVTK_SpaceMouse* SVTK_SpaceMouse::getInstance()
   return myInstance;
 }
 
-//---------------------------------------------
+/*!
+  Constructor
+*/
 SVTK_SpaceMouse::SVTK_SpaceMouse()
 {
   win = InputFocus;
   spaceMouseOn = 0;
 }
 
-//---------------------------------------------
+/*!
+  Initialization
+*/
 int SVTK_SpaceMouse::initialize( Display *display, Window window )
 {
  XMotionEvent        = XInternAtom( display, "MotionEvent",        1 );
@@ -78,7 +83,6 @@ int SVTK_SpaceMouse::initialize( Display *display, Window window )
  return spaceMouseOn; 
 }
 
-//---------------------------------------------
 static int errorCallback( Display *display, XErrorEvent *Error )
 {
   char msg[ 128 ];
@@ -89,7 +93,9 @@ static int errorCallback( Display *display, XErrorEvent *Error )
   return 0;
 }
 
-//---------------------------------------------
+/*!
+  Initialize by window
+*/
 int SVTK_SpaceMouse::setWindow( Display *display, Window window )
 {
   XTextProperty winName;
@@ -146,7 +152,9 @@ int SVTK_SpaceMouse::setWindow( Display *display, Window window )
   return result;
 }
 
-//---------------------------------------------
+/*!
+  Close
+*/
 int SVTK_SpaceMouse::close(Display *display)
 {
   initialize( display, (Window)InputFocus );
@@ -155,7 +163,9 @@ int SVTK_SpaceMouse::close(Display *display)
   return 1;
 }
 
-//---------------------------------------------
+/*!
+  Custom event handler
+*/
 int SVTK_SpaceMouse::translateEvent( Display* display, XEvent* xEvent, MoveEvent* spaceMouseEvent,
                    double scale, double rScale )
 {
index ea8783a0764b4d24cfb0dd48bfbc923f2b5593f7..4e6d78c99be95d19323a74383bd8d3269f27265a 100644 (file)
 #include <vtkActorCollection.h>
 #include <vtkRenderer.h>
 
-//****************************************************************
 vtkStandardNewMacro(SVTK_Trihedron);
 
-//****************************************************************
+/*!
+  Constructor
+*/
 SVTK_Trihedron
 ::SVTK_Trihedron()
 {
 }
 
-//****************************************************************
+/*!
+  \return count of visible actors
+  \param theRenderer - renderer to be checked
+*/
 int 
 SVTK_Trihedron
 ::GetVisibleActorCount(vtkRenderer* theRenderer)
diff --git a/src/SVTK/SVTK_UpdateRateDlg.cxx b/src/SVTK/SVTK_UpdateRateDlg.cxx
new file mode 100644 (file)
index 0000000..b9f4874
--- /dev/null
@@ -0,0 +1,380 @@
+//  SALOME VTKViewer : build VTK viewer into Salome desktop
+//
+//  Copyright (C) 2003  OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN,
+//  CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS 
+// 
+//  This library is free software; you can redistribute it and/or 
+//  modify it under the terms of the GNU Lesser General Public 
+//  License as published by the Free Software Foundation; either 
+//  version 2.1 of the License. 
+// 
+//  This library is distributed in the hope that it will be useful, 
+//  but WITHOUT ANY WARRANTY; without even the implied warranty of 
+//  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU 
+//  Lesser General Public License for more details. 
+// 
+//  You should have received a copy of the GNU Lesser General Public 
+//  License along with this library; if not, write to the Free Software 
+//  Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307 USA 
+// 
+//  See http://www.opencascade.org/SALOME/ or email : webmaster.salome@opencascade.org 
+//
+//
+//
+//  File   : 
+//  Author : 
+//  Module : SALOME
+//  $Header$
+
+#include "SVTK_UpdateRateDlg.h"
+
+#include "SVTK_MainWindow.h"
+#include "SVTK_RenderWindowInteractor.h"
+#include "VTKViewer_Algorithm.h"
+#include "SALOME_Actor.h"
+
+#include "QtxDblSpinBox.h"
+#include "QtxAction.h"
+
+#include <sstream>
+
+#include <qgroupbox.h>
+#include <qlabel.h>
+#include <qpushbutton.h>
+#include <qlayout.h>
+#include <qlineedit.h>
+
+#include <vtkGenericRenderWindowInteractor.h>
+#include <vtkCallbackCommand.h>
+#include <vtkRenderWindow.h>
+#include <vtkRenderer.h>
+#include <vtkMapper.h>
+#include <vtkDataSet.h>
+
+static vtkFloatingPointType OFF_UPDATE_RATE = 0.00001;
+static vtkFloatingPointType FLOAT_TOLERANCE = 1.0 / VTK_LARGE_FLOAT;
+
+using namespace std;
+
+namespace
+{
+  //----------------------------------------------------------------------------
+  inline
+  QString 
+  GetUpdateRate(SVTK_RenderWindowInteractor* theRWInteractor)
+  {
+    if(vtkRenderer *aRenderer = theRWInteractor->getRenderer()){
+      vtkFloatingPointType aLastRenderTimeInSeconds = aRenderer->GetLastRenderTimeInSeconds();
+      if(aLastRenderTimeInSeconds > FLOAT_TOLERANCE){
+       std::ostringstream aStr;
+       vtkFloatingPointType aFPS = 1.0 / aLastRenderTimeInSeconds;
+       aStr<<aFPS;
+       return QString(aStr.str().c_str());
+      }
+    }
+    return "Inf";
+  }
+
+
+  //----------------------------------------------------------------------------
+  struct TRenderTimeMultiplier
+  {
+    vtkFloatingPointType myVTKMultiplier;
+    vtkFloatingPointType mySALOMEMultiplier;
+
+    TRenderTimeMultiplier():
+      myVTKMultiplier(0.0),
+      mySALOMEMultiplier(0.0)
+    {}
+
+    void
+    operator()(vtkActor* theActor)
+    {
+      if(theActor->GetVisibility()){
+       myVTKMultiplier += theActor->GetAllocatedRenderTime();
+       if(dynamic_cast<SALOME_Actor*>(theActor))
+         mySALOMEMultiplier += theActor->GetAllocatedRenderTime();
+      }
+    }
+  };
+
+
+  //----------------------------------------------------------------------------
+  inline
+  vtkFloatingPointType 
+  AdjustUpdateRate(SVTK_RenderWindowInteractor* theRWInteractor,
+                  vtkFloatingPointType theUpdateRate)
+  {
+    if(vtkRenderer *aRenderer = theRWInteractor->getRenderer()){
+      if(vtkActorCollection *anActorCollection = aRenderer->GetActors()){
+       TRenderTimeMultiplier aMultiplier;
+       using namespace VTK;
+       aMultiplier = ForEach<vtkActor>(anActorCollection,
+                                       aMultiplier);
+       if(aMultiplier.mySALOMEMultiplier > FLOAT_TOLERANCE)
+         theUpdateRate *= aMultiplier.mySALOMEMultiplier / aMultiplier.myVTKMultiplier;
+      }
+    }
+    return theUpdateRate;
+  }
+
+
+  //----------------------------------------------------------------------------
+  struct TCellsCounter
+  {
+    vtkIdType myCounter;
+    TCellsCounter():
+      myCounter(0)
+    {}
+
+    void
+    operator()(SALOME_Actor* theActor)
+    {
+      if(theActor->GetVisibility()){
+       if(vtkMapper *aMapper = theActor->GetMapper()){
+         if(vtkDataSet *aDataSet = aMapper->GetInput()){
+           myCounter += aDataSet->GetNumberOfCells();
+         }
+       }
+      }
+    }
+  };
+
+
+  //----------------------------------------------------------------------------
+  inline
+  QString 
+  GetNumberOfCells(SVTK_RenderWindowInteractor* theRWInteractor)
+  {
+    if(vtkRenderer *aRenderer = theRWInteractor->getRenderer()){
+      if(vtkActorCollection *anActorCollection = aRenderer->GetActors()){
+       TCellsCounter aCounter;
+       using namespace VTK;
+       aCounter = ForEach<SALOME_Actor>(anActorCollection,
+                                        aCounter);
+       return QString::number(aCounter.myCounter);
+      }
+    }
+    
+    return QString::number(0);
+  }
+}
+
+/*!
+  Constructor
+*/
+SVTK_UpdateRateDlg
+::SVTK_UpdateRateDlg(QtxAction* theAction,
+                    SVTK_MainWindow* theParent,
+                    const char* theName):
+  SVTK_DialogBase(theAction,
+                 theParent, 
+                 theName),
+  myPriority(0.0),
+  myEventCallbackCommand(vtkCallbackCommand::New()),
+  myRWInteractor(theParent->GetInteractor()),
+  myAction(theAction)
+{
+  vtkRenderWindowInteractor* aRWI = myRWInteractor->GetDevice();
+  bool anIsEnabledUpdateRate = false;
+
+  setCaption(tr("DLG_TITLE"));
+  QVBoxLayout* aVBoxLayout = new QVBoxLayout(this, 5, 5);
+  {
+    QGroupBox* aGroupBox = new QGroupBox(tr("INPUT_FRAME_TITLE"), this);
+    aGroupBox->setColumnLayout(0, Qt::Vertical );
+    aGroupBox->layout()->setSpacing( 6 );
+    aGroupBox->layout()->setMargin( 11 );
+
+    aGroupBox->setCheckable(true);
+    aGroupBox->setChecked(anIsEnabledUpdateRate);
+    myIsEnableUpdateRateGroupBox = aGroupBox;
+
+    QGridLayout* aGridLayout = new QGridLayout(aGroupBox->layout());
+    {
+      QLabel* aLabel = new QLabel(tr("DESIRED"), aGroupBox);
+      aLabel->setSizePolicy(QSizePolicy::Minimum, QSizePolicy::Fixed);
+      aGridLayout->addWidget(aLabel, 0, 0);
+
+      QtxDblSpinBox* aDblSpinBox = new QtxDblSpinBox(OFF_UPDATE_RATE, VTK_LARGE_FLOAT, 2, aGroupBox);
+      aDblSpinBox->setSizePolicy(QSizePolicy::Expanding, QSizePolicy::Fixed);
+      aGridLayout->addWidget(aDblSpinBox, 0, 1);
+
+      aDblSpinBox->setValue(aRWI->GetDesiredUpdateRate());
+      aDblSpinBox->setEnabled(anIsEnabledUpdateRate);
+      connect(aGroupBox, SIGNAL(toggled(bool)), aDblSpinBox, SLOT(setEnabled(bool)));
+      myDesiredUpdateRateSblSpinBox = aDblSpinBox;
+    }
+    {
+      QLabel* aLabel = new QLabel(tr("STILL"), aGroupBox);
+      aLabel->setSizePolicy(QSizePolicy::Minimum, QSizePolicy::Fixed);
+      aGridLayout->addWidget(aLabel, 1, 0);
+
+      QtxDblSpinBox* aDblSpinBox = new QtxDblSpinBox(OFF_UPDATE_RATE, VTK_LARGE_FLOAT, 2, aGroupBox);
+      aDblSpinBox->setSizePolicy(QSizePolicy::Expanding, QSizePolicy::Fixed);
+      aGridLayout->addWidget(aDblSpinBox, 1, 1);
+
+      aDblSpinBox->setValue(aRWI->GetStillUpdateRate());
+      aDblSpinBox->setEnabled(anIsEnabledUpdateRate);
+      connect(aGroupBox, SIGNAL(toggled(bool)), aDblSpinBox, SLOT(setEnabled(bool)));
+      myStillUpdateRateSblSpinBox = aDblSpinBox;
+    }
+    aVBoxLayout->addWidget(aGroupBox);
+  }
+  {
+    QGroupBox* aGroupBox = new QGroupBox(tr("INFORMATION_FRAME_TITLE"), this);
+    aGroupBox->setColumnLayout(0, Qt::Vertical );
+    aGroupBox->layout()->setSpacing( 6 );
+    aGroupBox->layout()->setMargin( 11 );
+
+    QGridLayout* aGridLayout = new QGridLayout(aGroupBox->layout());
+    {
+      QLabel* aLabel = new QLabel(tr("CURRENT_FPS"), aGroupBox);
+      aLabel->setSizePolicy(QSizePolicy::Minimum, QSizePolicy::Fixed);
+      aGridLayout->addWidget(aLabel, 0, 0);
+
+      QLineEdit* aLineEdit = new QLineEdit( aGroupBox );
+      aLineEdit->setReadOnly( TRUE );
+      aGridLayout->addWidget(aLineEdit, 0, 1);
+
+      myCurrentUpdateRateLineEdit = aLineEdit;
+      myCurrentUpdateRateLineEdit->setText( GetUpdateRate(myRWInteractor) );
+    }
+    {
+      QLabel* aLabel = new QLabel(tr("NUMBER_CELLS"), aGroupBox);
+      aLabel->setSizePolicy(QSizePolicy::Minimum, QSizePolicy::Fixed);
+      aGridLayout->addWidget(aLabel, 1, 0);
+
+      QLineEdit* aLineEdit = new QLineEdit( aGroupBox );
+      aLineEdit->setReadOnly( TRUE );
+      aGridLayout->addWidget(aLineEdit, 1, 1);
+
+      myNumberOfCellsLineEdit = aLineEdit;
+      myNumberOfCellsLineEdit->setText( GetNumberOfCells(myRWInteractor) );
+    }
+    aVBoxLayout->addWidget(aGroupBox);
+  }
+  {
+    QGroupBox* aGroupBox = new QGroupBox(this);
+    QHBoxLayout* aHBoxLayout = new QHBoxLayout(aGroupBox);
+    aHBoxLayout->setMargin(11);
+    aHBoxLayout->setSpacing(6);
+    {
+      QPushButton* aPushButton = new QPushButton(tr("OK"), aGroupBox);
+      aPushButton->setDefault(TRUE);
+      aPushButton->setAutoDefault(TRUE);
+      aHBoxLayout->addWidget(aPushButton);
+      connect(aPushButton, SIGNAL(clicked()), this, SLOT(onClickOk()));
+    }
+    {
+      QPushButton* aPushButton = new QPushButton(tr("Apply"), aGroupBox);
+      aPushButton->setDefault(TRUE);
+      aPushButton->setAutoDefault(TRUE);
+      aHBoxLayout->addWidget(aPushButton);
+      connect(aPushButton, SIGNAL(clicked()), this, SLOT(onClickApply()));
+    }
+    aHBoxLayout->addStretch();
+    {
+      QPushButton* aPushButton = new QPushButton(tr("Close"), aGroupBox);
+      aPushButton->setDefault(TRUE);
+      aPushButton->setAutoDefault(TRUE);
+      aHBoxLayout->addWidget(aPushButton);
+      connect(aPushButton, SIGNAL(clicked()), this, SLOT(onClickClose()));
+    }
+    aVBoxLayout->addWidget(aGroupBox);
+  }
+
+  if(!anIsEnabledUpdateRate){
+    aRWI->SetDesiredUpdateRate(OFF_UPDATE_RATE);
+    aRWI->SetStillUpdateRate(OFF_UPDATE_RATE);  
+  }
+
+  myEventCallbackCommand->Delete();
+  myEventCallbackCommand->SetClientData(this);
+  myEventCallbackCommand->SetCallback(SVTK_UpdateRateDlg::ProcessEvents);
+  vtkRenderer *aRenderer = myRWInteractor->getRenderer();
+  aRenderer->AddObserver(vtkCommand::EndEvent,
+                        myEventCallbackCommand.GetPointer(), 
+                        myPriority);
+}
+
+/*!
+  Destroys the object and frees any allocated resources
+ */
+SVTK_UpdateRateDlg
+::~SVTK_UpdateRateDlg()
+{
+  // no need to delete child widgets, Qt does it all for us
+}
+
+/*!
+  Processes events
+*/
+void 
+SVTK_UpdateRateDlg
+::ProcessEvents(vtkObject* vtkNotUsed(theObject), 
+               unsigned long theEvent,
+               void* theClientData, 
+               void* vtkNotUsed(theCallData))
+{
+  SVTK_UpdateRateDlg* self = reinterpret_cast<SVTK_UpdateRateDlg*>(theClientData);
+
+  if(theEvent == vtkCommand::EndEvent){
+    self->myCurrentUpdateRateLineEdit->setText( GetUpdateRate(self->myRWInteractor) );
+    self->myNumberOfCellsLineEdit->setText( GetNumberOfCells(self->myRWInteractor) );
+  }
+}
+
+/*!
+  Update
+*/
+void 
+SVTK_UpdateRateDlg
+::Update()
+{
+  vtkRenderWindowInteractor* aRWI = myRWInteractor->GetDevice();
+
+  vtkFloatingPointType anUpdateRate;
+  if(myIsEnableUpdateRateGroupBox->isChecked()){
+    anUpdateRate = AdjustUpdateRate(myRWInteractor,myDesiredUpdateRateSblSpinBox->value());
+    aRWI->SetDesiredUpdateRate(anUpdateRate);
+    anUpdateRate = AdjustUpdateRate(myRWInteractor,myStillUpdateRateSblSpinBox->value());
+    aRWI->SetStillUpdateRate(anUpdateRate);
+  }else{
+    aRWI->SetDesiredUpdateRate(OFF_UPDATE_RATE);
+    aRWI->SetStillUpdateRate(OFF_UPDATE_RATE);
+  }
+
+  myRWInteractor->getRenderWindow()->Render();
+}
+
+/*!
+  SLOT on OK clicked
+*/
+void 
+SVTK_UpdateRateDlg
+::onClickOk()
+{
+  Update();
+  onClickClose();
+}
+
+/*!
+  SLOT on Apply clicked
+*/
+void
+SVTK_UpdateRateDlg
+::onClickApply()
+{
+  Update();
+}
+
+/*!
+  SLOT on Close clicked
+*/
+void 
+SVTK_UpdateRateDlg
+::onClickClose()
+{
+  reject();
+}
diff --git a/src/SVTK/SVTK_UpdateRateDlg.h b/src/SVTK/SVTK_UpdateRateDlg.h
new file mode 100644 (file)
index 0000000..7b32674
--- /dev/null
@@ -0,0 +1,93 @@
+//  SALOME VTKViewer : build VTK viewer into Salome desktop
+//
+//  Copyright (C) 2003  OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN,
+//  CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS 
+// 
+//  This library is free software; you can redistribute it and/or 
+//  modify it under the terms of the GNU Lesser General Public 
+//  License as published by the Free Software Foundation; either 
+//  version 2.1 of the License. 
+// 
+//  This library is distributed in the hope that it will be useful, 
+//  but WITHOUT ANY WARRANTY; without even the implied warranty of 
+//  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU 
+//  Lesser General Public License for more details. 
+// 
+//  You should have received a copy of the GNU Lesser General Public 
+//  License along with this library; if not, write to the Free Software 
+//  Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307 USA 
+// 
+//  See http://www.opencascade.org/SALOME/ or email : webmaster.salome@opencascade.org 
+//
+//
+//
+//  File   : 
+//  Author : 
+//  Module : SALOME
+//  $Header$
+
+#ifndef SVTK_UPDATERATEDLG_H
+#define SVTK_UPDATERATEDLG_H
+
+#include "SVTK_DialogBase.h"
+
+#include <vtkSmartPointer.h>
+
+class SVTK_MainWindow;
+class SVTK_RenderWindowInteractor;
+
+class QtxDblSpinBox;
+class QtxAction;
+
+class QGroupBox;
+class QLineEdit;
+
+class vtkCallbackCommand;
+class vtkObject;
+
+
+class SVTK_UpdateRateDlg : public SVTK_DialogBase
+{
+  Q_OBJECT;
+
+public:
+  SVTK_UpdateRateDlg(QtxAction* theAction,
+                    SVTK_MainWindow* theParent,
+                    const char* theName);
+
+  ~SVTK_UpdateRateDlg();
+
+  void Update();
+
+protected:
+  SVTK_RenderWindowInteractor* myRWInteractor;
+  QtxDblSpinBox* myDesiredUpdateRateSblSpinBox;
+  QtxDblSpinBox* myStillUpdateRateSblSpinBox;
+  QGroupBox* myIsEnableUpdateRateGroupBox;
+
+  QLineEdit* myCurrentUpdateRateLineEdit;
+  QLineEdit* myNumberOfCellsLineEdit;
+
+  QtxAction* myAction;
+
+  //----------------------------------------------------------------------------
+  // Priority at which events are processed
+  vtkFloatingPointType myPriority;
+
+  // Used to process events
+  vtkSmartPointer<vtkCallbackCommand> myEventCallbackCommand;
+
+  // Description:
+  // Main process event method
+  static void ProcessEvents(vtkObject* object, 
+                            unsigned long event,
+                            void* clientdata, 
+                            void* calldata);
+  
+protected slots:
+  void onClickOk();
+  void onClickApply();
+  void onClickClose();
+};
+
+#endif // SVTK_UPDATERATEDLG_H
index 966ff234064483293d1d318e354c785ef020930f..34e8b82b857d8405c9035dc157260775682f270e 100644 (file)
@@ -40,8 +40,9 @@
 #include <vtkActorCollection.h>
 #include <vtkRenderer.h>
 
-
-//----------------------------------------------------------------------------
+/*!
+  Constructor
+*/
 SVTK_SignalHandler
 ::SVTK_SignalHandler(SVTK_MainWindow* theMainWindow):
   QObject(theMainWindow),
@@ -67,11 +68,17 @@ SVTK_SignalHandler
          this,SIGNAL(selectionChanged()));
 }
 
+/*!
+  Destructor
+*/
 SVTK_SignalHandler
 ::~SVTK_SignalHandler()
 {
 }
 
+/*!
+  \return corresponding svtk main window
+*/
 SVTK_MainWindow*
 SVTK_SignalHandler
 ::GetMainWindow()
@@ -80,7 +87,9 @@ SVTK_SignalHandler
 }
 
 
-//----------------------------------------------------------------
+/*!
+  Redirect the request to #SVTK_MainWindow::Repaint (just for flexibility)
+*/
 void
 SVTK_SignalHandler
 ::Repaint(bool theUpdateTrihedron)
@@ -88,7 +97,9 @@ SVTK_SignalHandler
   myMainWindow->Repaint(theUpdateTrihedron);
 }
 
-//----------------------------------------------------------------------------
+/*!
+  Redirect the request to #SVTK_MainWindow::GetRenderer (just for flexibility)
+*/
 SVTK_Renderer* 
 SVTK_SignalHandler
 ::GetRenderer()
@@ -96,6 +107,9 @@ SVTK_SignalHandler
   return myMainWindow->GetRenderer();
 }
 
+/*!
+  Redirect the request to #SVTK_MainWindow::getRenderer (just for flexibility)
+*/
 vtkRenderer* 
 SVTK_SignalHandler
 ::getRenderer()
@@ -103,7 +117,6 @@ SVTK_SignalHandler
   return myMainWindow->getRenderer();
 }
 
-//----------------------------------------------------------------
 namespace SVTK
 {
   struct THighlightAction
@@ -123,6 +136,9 @@ namespace SVTK
   };
 }
 
+/*!
+  SLOT: called on selection change
+*/
 void
 SVTK_SignalHandler
 ::onSelectionChanged()
@@ -144,21 +160,26 @@ SVTK_SignalHandler
   myMainWindow->Repaint(false);
 }
 
-
-//----------------------------------------------------------------------------
+/*!
+  Constructor
+*/
 SVTK_View
 ::SVTK_View(SVTK_MainWindow* theMainWindow) :
   SVTK_SignalHandler(theMainWindow)
 {
 }
 
-//----------------------------------------------------------------------------
+/*!
+  Destructor
+*/
 SVTK_View
 ::~SVTK_View()
 {
 }
 
-//----------------------------------------------------------------
+/*!
+  Unhilights all objects in viewer
+*/
 void 
 SVTK_View
 ::unHighlightAll() 
@@ -169,7 +190,12 @@ SVTK_View
   Repaint();
 }
 
-//----------------------------------------------------------------
+/*!
+  Hilights/unhilights object in viewer
+  \param theIO - object to be updated
+  \param theIsHighlight - if it is true, object will be hilighted, otherwise it will be unhilighted
+  \param theIsUpdate - update current viewer
+*/
 void
 SVTK_View
 ::highlight( const Handle(SALOME_InteractiveObject)& theIO, 
@@ -183,7 +209,27 @@ SVTK_View
   Repaint();
 }
 
-//----------------------------------------------------------------------------
+/*!
+  Display object
+  \param theEntry - entry that corresponds to intractive objects
+*/
+Handle(SALOME_InteractiveObject)
+SVTK_View
+::FindIObject(const char* theEntry) 
+{
+  using namespace SVTK;
+  SALOME_Actor* anActor = 
+    Find<SALOME_Actor>(getRenderer()->GetActors(),
+                      TIsSameEntry<SALOME_Actor>(theEntry));
+  if(anActor != NULL)
+    return anActor->getIO();
+  return NULL;
+}
+
+/*!
+   Redirect the request to #SVTK_Renderer::SetPreselectionProp
+*/
 void
 SVTK_View
 ::SetSelectionProp(const double& theRed, 
@@ -194,7 +240,9 @@ SVTK_View
   GetRenderer()->SetSelectionProp(theRed,theGreen,theBlue,theWidth);
 }
 
-//----------------------------------------------------------------------------
+/*!
+  Redirect the request to #SVTK_Renderer::SetPreselectionProp
+*/
 void
 SVTK_View
 ::SetPreselectionProp(const double& theRed, 
@@ -205,7 +253,9 @@ SVTK_View
   GetRenderer()->SetPreselectionProp(theRed,theGreen,theBlue,theWidth);
 }
 
-//----------------------------------------------------------------------------
+/*!
+  Redirect the request to #SVTK_Renderer::SetPreselectionProp
+*/
 void
 SVTK_View
 ::SetSelectionTolerance(const double& theTolNodes, 
@@ -214,7 +264,10 @@ SVTK_View
   GetRenderer()->SetSelectionTolerance(theTolNodes,theTolCell);
 }
 
-//----------------------------------------------------------------------------
+/*!
+  \return true if object is in viewer or in collector
+  \param theIO - object to be checked
+*/
 bool
 SVTK_View
 ::isInViewer(const Handle(SALOME_InteractiveObject)& theIObject)
@@ -226,7 +279,10 @@ SVTK_View
   return anActor != NULL;
 }
 
-//----------------------------------------------------------------------------
+/*!
+  \return true if object is displayed in viewer
+  \param theIO - object to be checked
+*/
 bool
 SVTK_View
 ::isVisible(const Handle(SALOME_InteractiveObject)& theIObject)
@@ -238,7 +294,11 @@ SVTK_View
   return anActor != NULL && anActor->GetVisibility();
 }
 
-//----------------------------------------------------------------------------
+/*!
+  Changes name of object
+  \param theIObject - object to be renamed
+  \param theName - new name
+*/
 void
 SVTK_View
 ::rename(const Handle(SALOME_InteractiveObject)& theIObject, 
@@ -251,7 +311,9 @@ SVTK_View
                          (&SALOME_Actor::setName,theName.latin1()));
 }
 
-//----------------------------------------------------------------------------
+/*!
+  \return current display mode (obsolete)
+*/
 int
 SVTK_View
 ::GetDisplayMode() 
@@ -259,6 +321,10 @@ SVTK_View
   return myDisplayMode; 
 }
 
+/*!
+  Set current display mode
+  \param theMode - new display mode
+*/
 void
 SVTK_View
 ::SetDisplayMode(int theMode)
@@ -270,6 +336,11 @@ SVTK_View
   myDisplayMode = theMode;
 }
 
+/*!
+  Set current display mode
+  \param theIObject - object
+  \param theMode - new display mode
+*/
 void
 SVTK_View
 ::SetDisplayMode(const Handle(SALOME_InteractiveObject)& theIObject, 
@@ -282,7 +353,9 @@ SVTK_View
                          (&SALOME_Actor::setDisplayMode,theMode));
 }
 
-//----------------------------------------------------------------------------
+/*!
+  Change all actors to wireframe
+*/
 void
 SVTK_View
 ::ChangeRepresentationToWireframe()
@@ -290,6 +363,9 @@ SVTK_View
   ChangeRepresentationToWireframe(getRenderer()->GetActors());
 }
 
+/*!
+  Change all actors to shading
+*/
 void
 SVTK_View
 ::ChangeRepresentationToSurface()
@@ -297,7 +373,10 @@ SVTK_View
   ChangeRepresentationToSurface(getRenderer()->GetActors());
 }
 
-
+/*!
+  Change to wireframe a list of vtkactor
+  theCollection - list of vtkactor
+*/
 void
 SVTK_View
 ::ChangeRepresentationToWireframe(vtkActorCollection* theCollection)
@@ -309,6 +388,10 @@ SVTK_View
   Repaint();
 }
 
+/*!
+  Change to shading a list of vtkactor
+  theCollection - list of vtkactor
+*/
 void
 SVTK_View
 ::ChangeRepresentationToSurface(vtkActorCollection* theCollection)
@@ -320,7 +403,6 @@ SVTK_View
   Repaint();
 }
 
-//----------------------------------------------------------------------------
 namespace SVTK
 {
   struct TErase
@@ -342,6 +424,9 @@ namespace SVTK
   };
 }
 
+/*!
+  To erase all existing VTK presentations
+*/
 void
 SVTK_View
 ::EraseAll()
@@ -352,6 +437,9 @@ SVTK_View
   Repaint();
 }
 
+/*!
+  To display all existing VTK presentations
+*/
 void
 SVTK_View
 ::DisplayAll()
@@ -362,7 +450,11 @@ SVTK_View
   Repaint();
 }
 
-
+/*!
+  To erase VTK presentation
+  \param theActor - actor
+  \param theIsUpdate - updates current viewer
+*/
 void
 SVTK_View
 ::Erase(SALOME_Actor* theActor, 
@@ -375,6 +467,11 @@ SVTK_View
 }
 
 
+/*!
+  To erase VTK presentation
+  \param theIObject - object
+  \param theIsUpdate - updates current viewer
+*/
 void
 SVTK_View
 ::Erase(const Handle(SALOME_InteractiveObject)& theIObject, 
@@ -388,7 +485,9 @@ SVTK_View
     Repaint();
 }
 
-//----------------------------------------------------------------------------
+/*!
+  To display the VTK presentation
+*/
 void
 SVTK_View
 ::Display(SALOME_Actor* theActor, 
@@ -401,6 +500,9 @@ SVTK_View
     Repaint();
 }
 
+/*!
+  To display the VTK presentation
+*/
 void
 SVTK_View
 ::Display(const Handle(SALOME_InteractiveObject)& theIObject, 
@@ -415,6 +517,9 @@ SVTK_View
     Repaint();
 }
 
+/*!
+  To display VTK presentation with defined #SALOME_InteractiveObject and erase all others
+*/
 void
 SVTK_View
 ::DisplayOnly(const Handle(SALOME_InteractiveObject)& theIObject)
@@ -424,7 +529,6 @@ SVTK_View
 }
 
 
-//----------------------------------------------------------------------------
 namespace SVTK
 {
   struct TRemoveAction
@@ -441,6 +545,9 @@ namespace SVTK
   };
 }
 
+/*!
+  To remove the VTK presentation
+*/
 void
 SVTK_View
 ::Remove(const Handle(SALOME_InteractiveObject)& theIObject, 
@@ -454,6 +561,9 @@ SVTK_View
     Repaint();
 }
 
+/*!
+  To remove the VTK presentation
+*/
 void
 SVTK_View
 ::Remove(SALOME_Actor* theActor, 
@@ -464,6 +574,9 @@ SVTK_View
     Repaint();
 }
 
+/*!
+  To remove all VTK presentations
+*/
 void
 SVTK_View
 ::RemoveAll(bool theIsUpdate)
@@ -483,7 +596,10 @@ SVTK_View
   }
 }
 
-//----------------------------------------------------------------------------
+/*!
+  \return current transparency
+  \param theIObject - object
+*/
 float
 SVTK_View
 ::GetTransparency(const Handle(SALOME_InteractiveObject)& theIObject) 
@@ -498,35 +614,48 @@ SVTK_View
 }
 
 
+/*!
+  Sets current transparency
+  \param theIObject - object
+  \param theTrans - new transparency
+*/
 void
 SVTK_View
 ::SetTransparency(const Handle(SALOME_InteractiveObject)& theIObject, 
                  float theTrans)
 {
-  float anOpacity = 1.0 - theTrans;
+  vtkFloatingPointType anOpacity = 1.0 - theTrans;
   using namespace SVTK;
   ForEachIf<SALOME_Actor>(getRenderer()->GetActors(),
                          TIsSameIObject<SALOME_Actor>(theIObject),
-                         TSetFunction<SALOME_Actor,float>
+                         TSetFunction<SALOME_Actor,vtkFloatingPointType>
                          (&SALOME_Actor::SetOpacity,anOpacity));
 }
 
-//----------------------------------------------------------------------------
+/*!
+  Change color
+  \param theIObject - object
+  \param theColor - new color
+*/
 void
 SVTK_View
 ::SetColor(const Handle(SALOME_InteractiveObject)& theIObject,
           const QColor& theColor) 
 {
-  float aColor[3] = {theColor.red()/255., theColor.green()/255., theColor.blue()/255.};
+  vtkFloatingPointType aColor[3] = {theColor.red()/255., theColor.green()/255., theColor.blue()/255.};
 
   using namespace SVTK;
   ForEachIf<SALOME_Actor>(getRenderer()->GetActors(),
                          TIsSameIObject<SALOME_Actor>(theIObject),
-                         TSetFunction<SALOME_Actor,const float*>
+                         TSetFunction<SALOME_Actor,const vtkFloatingPointType*>
                          (&SALOME_Actor::SetColor,aColor));
 }
 
 
+/*!
+  \return object color
+  \param theIObject - object
+*/
 QColor
 SVTK_View
 ::GetColor(const Handle(SALOME_InteractiveObject)& theIObject) 
@@ -536,7 +665,7 @@ SVTK_View
     Find<SALOME_Actor>(getRenderer()->GetActors(),
                       TIsSameIObject<SALOME_Actor>(theIObject));
   if(anActor){
-    float r,g,b;
+    vtkFloatingPointType r,g,b;
     anActor->GetColor(r,g,b);
     return QColor(int(r*255),int(g*255),int(b*255));
   }
index 2512c34979a60495ac7970279e7f66dc892129d1..2a8fe4c8b2efa09f95483648bec6173bc57c6a2f 100644 (file)
@@ -1,3 +1,21 @@
+// Copyright (C) 2005  CEA/DEN, EDF R&D, OPEN CASCADE, PRINCIPIA R&D
+//
+// This library is free software; you can redistribute it and/or
+// modify it under the terms of the GNU Lesser General Public
+// License as published by the Free Software Foundation; either
+// version 2.1 of the License.
+//
+// This library is distributed in the hope that it will be useful
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+// Lesser General Public License for more details.
+//
+// You should have received a copy of the GNU Lesser General Public
+// License along with this library; if not, write to the Free Software
+// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307 USA
+//
+// See http://www.salome-platform.org/
+//
 #ifndef SVTK_VIEW_H
 #define SVTK_VIEW_H
 
@@ -18,7 +36,6 @@ class SVTK_Renderer;
 
 class SALOME_Actor;
 
-//----------------------------------------------------------------------------
 //! Main purpose of the class is to provide a way to customize #SVTK_MainWindow.
 /*!
   This class is initialized by #SVTK_MainWindow and just pass Qt signals from 
@@ -78,7 +95,6 @@ public:
 };
 
 
-//----------------------------------------------------------------------------
 //! This class is introduced just for compatibility with old code.
 /*!
   This class contains frequantly used functionality in old code.
@@ -106,7 +122,7 @@ public:
   void
   unHighlightAll();
 
-  /* Selection Management */
+  //! Try to find a SALOME_InteractiveObject in the view that corresponds to the entry
   Handle(SALOME_InteractiveObject) 
   FindIObject(const char* Entry);
 
index 4822bf63929f04f9bfa7afa976cfcc09c5a0e36d..44c4e72be2fb792ff5ffd52c2c447aa8d52d99a6 100644 (file)
@@ -21,7 +21,9 @@
 
 int SVTK_ViewManager::_SVTKViewMgr_Id = 0;
 
-//***************************************************************
+/*!
+  Constructor
+*/
 SVTK_ViewManager::SVTK_ViewManager( SUIT_Study* study, 
                    SUIT_Desktop* theDesktop ) 
 : SUIT_ViewManager( study, theDesktop )
@@ -30,12 +32,24 @@ SVTK_ViewManager::SVTK_ViewManager( SUIT_Study* study,
   setViewModel( new SVTK_Viewer() );
 }
 
-//***************************************************************
+/*!
+  Destructor
+*/
 SVTK_ViewManager::~SVTK_ViewManager()
 {
 }
 
-//***************************************************************
+/*!
+  \return corresponding main window
+*/
+SUIT_Desktop* SVTK_ViewManager::getDesktop()
+{
+  return myDesktop;
+}
+
+/*!
+  Sets default name of view
+*/
 void SVTK_ViewManager::setViewName(SUIT_ViewWindow* theView)
 {
   int aPos = myViews.find(theView);
index b200ccc5bd5df9ade5e993fd9cc9a3409f99c892..977a286ff402b163fbb28b751695807015b0dc4e 100644 (file)
@@ -36,6 +36,8 @@ public:
   //! Destroy the view manager
   virtual ~SVTK_ViewManager();
 
+  SUIT_Desktop* getDesktop();
+
 protected:
   void setViewName( SUIT_ViewWindow* theView );
 
index 03b8ca4a141736e22b0dbbbd652ec9cd6bd50e36..c1354eeab0243429e3e7f8205d79a139d390b060 100644 (file)
 //  return aMgr->GetStudyByID( id );
 //}
 
-//==========================================================
+/*!
+  Constructor
+*/
 SVTK_Viewer::SVTK_Viewer()
 {
   myTrihedronSize = 105;
   myTrihedronRelative = true;
 }
 
-//==========================================================
+/*!
+  Destructor
+*/
 SVTK_Viewer::~SVTK_Viewer() 
 {
 }
 
+/*!
+  \return background color
+*/
 QColor
 SVTK_Viewer
 ::backgroundColor() const
@@ -78,6 +85,10 @@ SVTK_Viewer
   return myBgColor;
 }
 
+/*!
+  Changes background color
+  \param theColor - new background color
+*/
 void
 SVTK_Viewer
 ::setBackgroundColor( const QColor& theColor )
@@ -97,7 +108,9 @@ SVTK_Viewer
   myBgColor = theColor;
 }
 
-//==========================================================
+/*!Create new instance of view window on desktop \a theDesktop.
+ *\retval SUIT_ViewWindow* - created view window pointer.
+ */
 SUIT_ViewWindow*
 SVTK_Viewer::
 createView( SUIT_Desktop* theDesktop )
@@ -111,16 +124,27 @@ createView( SUIT_Desktop* theDesktop )
   return aViewWindow;
 }
 
+/*!
+  \return trihedron size
+*/
 int SVTK_Viewer::trihedronSize() const
 {
   return myTrihedronSize;
 }
 
+/*!
+  \return true if thihedron changes size in accordance with bounding box
+*/
 bool SVTK_Viewer::trihedronRelative() const
 {
   return myTrihedronRelative;
 }
 
+/*!
+  Sets trihedron size and relativeness( whether thihedron changes size in accordance with bounding box)
+  \param theSize - new size
+  \param theRelative - new relativeness
+*/
 void SVTK_Viewer::setTrihedronSize( const int theSize, const bool theRelative )
 {
   myTrihedronSize = theSize;
@@ -136,7 +160,10 @@ void SVTK_Viewer::setTrihedronSize( const int theSize, const bool theRelative )
   }
 }
 
-//==========================================================
+/*!
+  Sets new view manager
+  \param theViewManager - new view manager
+*/
 void SVTK_Viewer::setViewManager(SUIT_ViewManager* theViewManager)
 {
   SUIT_ViewModel::setViewManager(theViewManager);
@@ -154,7 +181,9 @@ void SVTK_Viewer::setViewManager(SUIT_ViewManager* theViewManager)
           this, SLOT(onMouseRelease(SUIT_ViewWindow*, QMouseEvent*)));
 }
 
-//==========================================================
+/*!
+  Builds popup for vtk viewer
+*/
 void
 SVTK_Viewer
 ::contextMenuPopup( QPopupMenu* thePopup )
@@ -171,25 +200,34 @@ SVTK_Viewer
   }
 }
 
-//==========================================================
+/*!
+  SLOT: called on mouse button press, empty implementation
+*/
 void 
 SVTK_Viewer
 ::onMousePress(SUIT_ViewWindow* vw, QMouseEvent* event)
 {}
 
-//==========================================================
+/*!
+  SLOT: called on mouse move, empty implementation
+*/
 void 
 SVTK_Viewer
 ::onMouseMove(SUIT_ViewWindow* vw, QMouseEvent* event)
 {}
 
-//==========================================================
+/*!
+  SLOT: called on mouse button release, empty implementation
+*/
 void 
 SVTK_Viewer
 ::onMouseRelease(SUIT_ViewWindow* vw, QMouseEvent* event)
 {}
 
-//==========================================================
+/*!
+  Enables/disables selection
+  \param isEnabled - new state
+*/
 void 
 SVTK_Viewer
 ::enableSelection(bool isEnabled)
@@ -198,7 +236,10 @@ SVTK_Viewer
   //!! To be done for view windows
 }
 
-//==========================================================
+/*!
+  Enables/disables selection of many object
+  \param isEnabled - new state
+*/
 void
 SVTK_Viewer
 ::enableMultiselection(bool isEnable)
@@ -207,6 +248,9 @@ SVTK_Viewer
   //!! To be done for view windows
 }
 
+/*!
+  SLOT: called on dump view operation is activated, stores scene to raster file
+*/
 void
 SVTK_Viewer
 ::onDumpView()
@@ -215,7 +259,9 @@ SVTK_Viewer
     aView->onDumpView();
 }
 
-//==========================================================
+/*!
+  SLOT: called if background color is to be changed changed, passes new color to view port
+*/
 void
 SVTK_Viewer
 ::onChangeBgColor()
@@ -226,7 +272,9 @@ SVTK_Viewer
   }
 }
 
-//==========================================================
+/*!
+  SLOT: called when popup item "Show toolbar" is activated, shows toolbar of active view window
+*/
 void
 SVTK_Viewer
 ::onShowToolbar() 
@@ -239,7 +287,10 @@ SVTK_Viewer
   }
 }
 
-//==========================================================
+/*!
+  Display presentation
+  \param prs - presentation
+*/
 void
 SVTK_Viewer
 ::Display( const SALOME_VTKPrs* prs )
@@ -284,7 +335,11 @@ SVTK_Viewer
   }
 }
 
-//==========================================================
+/*!
+  Erase presentation
+  \param prs - presentation
+  \param forced - removes object from view
+*/
 void
 SVTK_Viewer
 ::Erase( const SALOME_VTKPrs* prs, const bool forced )
@@ -324,8 +379,11 @@ SVTK_Viewer
     }
   }
 }
-  
-//==========================================================
+
+/*!
+  Erase all presentations
+  \param forced - removes all objects from view
+*/
 void
 SVTK_Viewer
 ::EraseAll( const bool forced )
@@ -370,7 +428,10 @@ SVTK_Viewer
   Repaint();
 }
 
-//==========================================================
+/*!
+  Create presentation corresponding to the entry
+  \param entry - entry
+*/
 SALOME_Prs* 
 SVTK_Viewer
 ::CreatePrs( const char* entry )
@@ -394,7 +455,9 @@ SVTK_Viewer
   return prs;
 }
 
-//==========================================================
+/*!
+  Auxiliary method called before displaying of objects
+*/
 void
 SVTK_Viewer
 ::BeforeDisplay( SALOME_Displayer* d )
@@ -402,14 +465,19 @@ SVTK_Viewer
   d->BeforeDisplay( this, SALOME_VTKViewType() );
 }
 
-//==========================================================
+/*!
+  Auxiliary method called after displaying of objects
+*/
 void
 SVTK_Viewer::AfterDisplay( SALOME_Displayer* d )
 {
   d->AfterDisplay( this, SALOME_VTKViewType() );
 }
 
-//==========================================================
+/*!
+  \return true if object is displayed in viewer
+  \param obj - object to be checked
+*/
 bool
 SVTK_Viewer
 ::isVisible( const Handle(SALOME_InteractiveObject)& io )
@@ -425,7 +493,9 @@ SVTK_Viewer
   return true;
 }
 
-//==========================================================
+/*!
+  Updates current viewer
+*/
 void 
 SVTK_Viewer
 ::Repaint()
index d58827229b1859960be995921d70c33ae99c41e2..f45ed5e2ffbd1daa989edba1dac35b62139b0262 100644 (file)
@@ -1,3 +1,21 @@
+// Copyright (C) 2005  CEA/DEN, EDF R&D, OPEN CASCADE, PRINCIPIA R&D
+//
+// This library is free software; you can redistribute it and/or
+// modify it under the terms of the GNU Lesser General Public
+// License as published by the Free Software Foundation; either
+// version 2.1 of the License.
+//
+// This library is distributed in the hope that it will be useful
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+// Lesser General Public License for more details.
+//
+// You should have received a copy of the GNU Lesser General Public
+// License along with this library; if not, write to the Free Software
+// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307 USA
+//
+// See http://www.salome-platform.org/
+//
 #ifndef SVTK_SELECTIONCHANGED_H
 #define SVTK_SELECTIONCHANGED_H
 
index 69e5eae4a358d6cc5180222f903ed9c5b23e6a0e..af284a64bb3ac86d085c46370f31aea03adf7c58 100755 (executable)
@@ -28,6 +28,7 @@
 #include <vtkCamera.h>
 #include <vtkPointPicker.h>
 #include <vtkCellPicker.h>
+#include <vtkAxisActor2D.h>
 
 #include "QtxAction.h"
 
 #include "SVTK_InteractorStyle.h"
 #include "SVTK_RenderWindowInteractor.h"
 #include "SVTK_GenericRenderWindowInteractor.h"
+#include "SVTK_CubeAxesActor2D.h"
 
 #include "SALOME_ListIteratorOfListIO.hxx"
 
 #include "VTKViewer_Algorithm.h"
 #include "SVTK_Functor.h"
 
-//----------------------------------------------------------------------------
+/*!
+  Constructor
+*/
 SVTK_ViewWindow
 ::SVTK_ViewWindow(SUIT_Desktop* theDesktop):
   SUIT_ViewWindow(theDesktop),
@@ -67,6 +71,9 @@ SVTK_ViewWindow
   myView(NULL)
 {}
 
+/*!
+  To initialize #SVTK_ViewWindow instance
+*/
 void
 SVTK_ViewWindow
 ::Initialize(SVTK_ViewModelBase* theModel)
@@ -106,6 +113,9 @@ SVTK_ViewWindow
   }
 }
 
+/*!
+  To initialize #SVTK_ViewWindow instance
+*/
 void
 SVTK_ViewWindow
 ::Initialize(SVTK_View* theView,
@@ -129,12 +139,17 @@ SVTK_ViewWindow
          theModel,SLOT(onSelectionChanged()));
 }
 
+/*!
+  Destructor
+*/
 SVTK_ViewWindow
 ::~SVTK_ViewWindow()
 {}
 
 
-//----------------------------------------------------------------------------
+/*!
+  \return corresponding view
+*/
 SVTK_View* 
 SVTK_ViewWindow
 ::getView() 
@@ -142,6 +157,9 @@ SVTK_ViewWindow
   return myView; 
 }
 
+/*!
+  \return corresponding vtk main window
+*/
 SVTK_MainWindow* 
 SVTK_ViewWindow
 ::getMainWindow() 
@@ -149,6 +167,9 @@ SVTK_ViewWindow
   return myMainWindow; 
 }
 
+/*!
+  \return corresponding vtk render window
+*/
 vtkRenderWindow*
 SVTK_ViewWindow
 ::getRenderWindow()
@@ -156,6 +177,9 @@ SVTK_ViewWindow
   return getMainWindow()->getRenderWindow();
 }
 
+/*!
+  \return corresponding vtk render window interactor
+*/
 vtkRenderWindowInteractor*
 SVTK_ViewWindow
 ::getInteractor()
@@ -163,6 +187,9 @@ SVTK_ViewWindow
   return getMainWindow()->getInteractor();
 }
 
+/*!
+  \return corresponding vtk renderer
+*/
 vtkRenderer*
 SVTK_ViewWindow
 ::getRenderer()
@@ -170,6 +197,9 @@ SVTK_ViewWindow
   return myMainWindow->getRenderer();
 }
 
+/*!
+  \return corresponding vtk selector
+*/
 SVTK_Selector* 
 SVTK_ViewWindow
 ::GetSelector() 
@@ -177,8 +207,9 @@ SVTK_ViewWindow
   return myMainWindow->GetSelector(); 
 }
 
-
-//----------------------------------------------------------------------------
+/*!
+  Processes transformation "front view"
+*/
 void
 SVTK_ViewWindow
 ::onFrontView()
@@ -186,7 +217,9 @@ SVTK_ViewWindow
   myMainWindow->onFrontView();
 }
 
-//----------------------------------------------------------------------------
+/*!
+  Processes transformation "back view"
+*/
 void
 SVTK_ViewWindow
 ::onBackView()
@@ -194,7 +227,9 @@ SVTK_ViewWindow
   myMainWindow->onBackView();
 }
 
-//----------------------------------------------------------------------------
+/*!
+  Processes transformation "top view"
+*/
 void
 SVTK_ViewWindow
 ::onTopView()
@@ -202,7 +237,9 @@ SVTK_ViewWindow
   myMainWindow->onTopView();
 }
 
-//----------------------------------------------------------------------------
+/*!
+  Processes transformation "bottom view"
+*/
 void
 SVTK_ViewWindow
 ::onBottomView()
@@ -210,7 +247,9 @@ SVTK_ViewWindow
   myMainWindow->onBottomView();
 }
 
-//----------------------------------------------------------------------------
+/*!
+  Processes transformation "left view"
+*/
 void
 SVTK_ViewWindow
 ::onLeftView()
@@ -218,7 +257,9 @@ SVTK_ViewWindow
   myMainWindow->onLeftView();
 }
 
-//----------------------------------------------------------------------------
+/*!
+  Processes transformation "right view"
+*/
 void
 SVTK_ViewWindow
 ::onRightView()
@@ -226,7 +267,9 @@ SVTK_ViewWindow
   myMainWindow->onRightView();
 }
 
-//----------------------------------------------------------------------------
+/*!
+  Processes transformation "reset view": sets default orientation of viewport camera
+*/
 void
 SVTK_ViewWindow
 ::onResetView()
@@ -234,7 +277,9 @@ SVTK_ViewWindow
   myMainWindow->onResetView();
 }
 
-//----------------------------------------------------------------------------
+/*!
+  Processes transformation "fit all"
+*/
 void
 SVTK_ViewWindow
 ::onFitAll()
@@ -242,7 +287,9 @@ SVTK_ViewWindow
   myMainWindow->onFitAll();
 }
 
-//----------------------------------------------------------------
+/*!
+  SLOT: called if selection is changed
+*/
 void
 SVTK_ViewWindow
 ::onSelectionChanged()
@@ -250,7 +297,10 @@ SVTK_ViewWindow
   myView->onSelectionChanged();
 }
 
-//----------------------------------------------------------------
+/*!
+  Change selection mode
+  \param theMode - new selection mode
+*/
 void
 SVTK_ViewWindow
 ::SetSelectionMode(Selection_Mode theMode)
@@ -258,7 +308,9 @@ SVTK_ViewWindow
   myMainWindow->SetSelectionMode( theMode );
 }
 
-//----------------------------------------------------------------
+/*!
+  \return selection mode
+*/
 Selection_Mode
 SVTK_ViewWindow
 ::SelectionMode() const
@@ -266,7 +318,9 @@ SVTK_ViewWindow
   return myMainWindow->SelectionMode();
 }
 
-//----------------------------------------------------------------
+/*!
+  Unhilights all objects in viewer
+*/
 void 
 SVTK_ViewWindow
 ::unHighlightAll() 
@@ -274,7 +328,12 @@ SVTK_ViewWindow
   myView->unHighlightAll();
 }
 
-//----------------------------------------------------------------
+/*!
+  Hilights/unhilights object in viewer
+  \param theIO - object to be updated
+  \param theIsHighlight - if it is true, object will be hilighted, otherwise it will be unhilighted
+  \param theIsUpdate - update current viewer
+*/
 void
 SVTK_ViewWindow
 ::highlight(const Handle(SALOME_InteractiveObject)& theIO, 
@@ -284,7 +343,10 @@ SVTK_ViewWindow
   myView->highlight( theIO, theIsHighlight, theIsUpdate );
 }
 
-//----------------------------------------------------------------
+/*!
+  \return true if object is in viewer or in collector
+  \param theIO - object to be checked
+*/
 bool
 SVTK_ViewWindow
 ::isInViewer( const Handle(SALOME_InteractiveObject)& theIO ) 
@@ -292,7 +354,10 @@ SVTK_ViewWindow
   return myView->isInViewer( theIO );
 }
 
-//----------------------------------------------------------------
+/*!
+  \return true if object is displayed in viewer
+  \param theIO - object to be checked
+*/
 bool
 SVTK_ViewWindow
 ::isVisible( const Handle(SALOME_InteractiveObject)& theIO ) 
@@ -300,7 +365,22 @@ SVTK_ViewWindow
   return myView->isVisible( theIO );
 }
 
-//----------------------------------------------------------------
+/*!
+  Display object
+  \param theEntry - entry that corresponds to intractive objects
+*/
+Handle(SALOME_InteractiveObject)
+SVTK_ViewWindow
+::FindIObject(const char* theEntry) 
+{
+  return myView->FindIObject(theEntry);
+}
+
+/*!
+  Display object
+  \param theIO - object
+  \param theImmediatly - update viewer
+*/
 void
 SVTK_ViewWindow
 ::Display(const Handle(SALOME_InteractiveObject)& theIO,
@@ -309,6 +389,11 @@ SVTK_ViewWindow
   myView->Display(theIO,theImmediatly);
 }
 
+/*!
+  Erase object
+  \param theIO - object
+  \param theImmediatly - update viewer
+*/
 void
 SVTK_ViewWindow
 ::Erase(const Handle(SALOME_InteractiveObject)& theIO,
@@ -317,6 +402,10 @@ SVTK_ViewWindow
   myView->Erase(theIO,theImmediatly);
 }
 
+/*!
+  Display only passed object
+  \param theIO - object
+*/
 void
 SVTK_ViewWindow
 ::DisplayOnly(const Handle(SALOME_InteractiveObject)& theIO) 
@@ -324,6 +413,9 @@ SVTK_ViewWindow
   myView->DisplayOnly(theIO);
 }
 
+/*!
+  Display all objects in view
+*/
 void 
 SVTK_ViewWindow
 ::DisplayAll() 
@@ -331,6 +423,9 @@ SVTK_ViewWindow
   myView->DisplayAll();
 }
 
+/*!
+  Erase all objects in view
+*/
 void 
 SVTK_ViewWindow
 ::EraseAll() 
@@ -338,7 +433,10 @@ SVTK_ViewWindow
   myView->EraseAll();
 }
 
-//----------------------------------------------------------------------------
+/*!
+  Sets background color
+  \param color - new background color
+*/
 void
 SVTK_ViewWindow
 ::setBackgroundColor( const QColor& color )
@@ -346,7 +444,9 @@ SVTK_ViewWindow
   myMainWindow->SetBackgroundColor( color );
 }
 
-//----------------------------------------------------------------------------
+/*!
+  \return background color of viewer
+*/
 QColor
 SVTK_ViewWindow
 ::backgroundColor() const
@@ -354,7 +454,9 @@ SVTK_ViewWindow
   return myMainWindow->BackgroundColor();
 }
 
-//----------------------------------------------------------------------------
+/*!
+  Updates current viewer
+*/
 void
 SVTK_ViewWindow
 ::Repaint(bool theUpdateTrihedron)
@@ -362,7 +464,9 @@ SVTK_ViewWindow
   myMainWindow->Repaint( theUpdateTrihedron );
 }
 
-//----------------------------------------------------------------------------
+/*!
+  Redirect the request to #SVTK_Renderer::GetScale
+*/
 void
 SVTK_ViewWindow
 ::GetScale( double theScale[3] ) 
@@ -370,7 +474,9 @@ SVTK_ViewWindow
   myMainWindow->GetScale( theScale );
 }
 
-//----------------------------------------------------------------------------
+/*!
+  Redirect the request to #SVTK_Renderer::SetScale
+*/
 void
 SVTK_ViewWindow
 ::SetScale( double theScale[3] ) 
@@ -378,7 +484,9 @@ SVTK_ViewWindow
   myMainWindow->SetScale( theScale );
 }
 
-//----------------------------------------------------------------------------
+/*!
+  Redirect the request to #SVTK_Renderer::IsTrihedronDisplayed
+*/
 bool
 SVTK_ViewWindow
 ::isTrihedronDisplayed()
@@ -386,6 +494,9 @@ SVTK_ViewWindow
   return myMainWindow->IsTrihedronDisplayed();
 }
 
+/*!
+  Redirect the request to #SVTK_Renderer::IsCubeAxesDisplayed
+*/
 bool
 SVTK_ViewWindow
 ::isCubeAxesDisplayed()
@@ -393,7 +504,9 @@ SVTK_ViewWindow
   return myMainWindow->IsCubeAxesDisplayed();
 }
 
-//----------------------------------------------------------------------------
+/*!
+  Redirect the request to #SVTK_Renderer::OnViewTrihedron
+*/
 void 
 SVTK_ViewWindow
 ::onViewTrihedron()
@@ -401,6 +514,9 @@ SVTK_ViewWindow
   myMainWindow->onViewTrihedron();
 }
 
+/*!
+  Redirect the request to #SVTK_Renderer::OnViewCubeAxes
+*/
 void
 SVTK_ViewWindow
 ::onViewCubeAxes()
@@ -408,7 +524,9 @@ SVTK_ViewWindow
   myMainWindow->onViewCubeAxes();
 }
 
-//----------------------------------------------------------------------------
+/*!
+  Redirect the request to #SVTK_Renderer::GetTrihedron
+*/
 VTKViewer_Trihedron* 
 SVTK_ViewWindow::
 GetTrihedron()
@@ -416,6 +534,9 @@ GetTrihedron()
   return myMainWindow->GetTrihedron();
 }
 
+/*!
+  Redirect the request to #SVTK_Renderer::GetCubeAxes
+*/
 SVTK_CubeAxesActor2D* 
 SVTK_ViewWindow
 ::GetCubeAxes()
@@ -423,6 +544,9 @@ SVTK_ViewWindow
   return myMainWindow->GetCubeAxes();
 }
 
+/*!
+  \return trihedron size
+*/
 int
 SVTK_ViewWindow
 ::GetTrihedronSize() const
@@ -430,6 +554,11 @@ SVTK_ViewWindow
   return myMainWindow->GetTrihedronSize();
 }
 
+/*!
+  Sets trihedron size
+  \param theSize - new trihedron size
+  \param theRelative - trihedron relativeness
+*/
 void
 SVTK_ViewWindow
 ::SetTrihedronSize(const int theSize, const bool theRelative)
@@ -447,7 +576,9 @@ SVTK_ViewWindow
   myMainWindow->AdjustActors();
 }
 
-//----------------------------------------------------------------------------
+/*!
+  Redirect the request to #SVTK_Renderer::OnAdjustTrihedron
+*/
 void
 SVTK_ViewWindow
 ::onAdjustTrihedron()
@@ -455,6 +586,9 @@ SVTK_ViewWindow
   myMainWindow->onAdjustTrihedron();
 }
 
+/*!
+  Redirect the request to #SVTK_Renderer::OnAdjustCubeAxes
+*/
 void
 SVTK_ViewWindow
 ::onAdjustCubeAxes()
@@ -462,7 +596,9 @@ SVTK_ViewWindow
   myMainWindow->onAdjustCubeAxes();
 }
 
-//=======================================================================
+/*!
+  Emits key pressed
+*/
 void
 SVTK_ViewWindow
 ::onKeyPressed(QKeyEvent* event)
@@ -470,7 +606,9 @@ SVTK_ViewWindow
   emit keyPressed( this, event );
 }
 
-//=======================================================================
+/*!
+  Emits key released
+*/
 void
 SVTK_ViewWindow
 ::onKeyReleased(QKeyEvent* event)
@@ -478,7 +616,9 @@ SVTK_ViewWindow
   emit keyReleased( this, event );
 }
 
-//=======================================================================
+/*!
+  Emits mouse pressed
+*/
 void
 SVTK_ViewWindow
 ::onMousePressed(QMouseEvent* event)
@@ -486,7 +626,9 @@ SVTK_ViewWindow
   emit mousePressed(this, event);
 }
 
-//=======================================================================
+/*!
+  Emits mouse released
+*/
 void
 SVTK_ViewWindow
 ::onMouseReleased(QMouseEvent* event)
@@ -494,7 +636,9 @@ SVTK_ViewWindow
   emit mouseReleased( this, event );
 }
 
-//=======================================================================
+/*!
+  Emits mouse moving
+*/
 void
 SVTK_ViewWindow
 ::onMouseMoving(QMouseEvent* event)
@@ -502,7 +646,9 @@ SVTK_ViewWindow
   emit mouseMoving( this, event );
 }
 
-//=======================================================================
+/*!
+  Emits mouse double clicked
+*/
 void
 SVTK_ViewWindow
 ::onMouseDoubleClicked( QMouseEvent* event )
@@ -510,7 +656,9 @@ SVTK_ViewWindow
   emit mouseDoubleClicked( this, event );
 }
 
-//----------------------------------------------------------------------------
+/*!
+  Redirect the request to #SVTK_Renderer::AddActor
+*/
 void
 SVTK_ViewWindow
 ::AddActor( VTKViewer_Actor* theActor, 
@@ -519,7 +667,9 @@ SVTK_ViewWindow
   myMainWindow->AddActor( theActor, theUpdate );
 }
 
-//----------------------------------------------------------------------------
+/*!
+  Redirect the request to #SVTK_Renderer::RemoveActor
+*/
 void
 SVTK_ViewWindow
 ::RemoveActor( VTKViewer_Actor* theActor, 
@@ -528,7 +678,9 @@ SVTK_ViewWindow
   myMainWindow->RemoveActor( theActor, theUpdate );
 }
 
-//----------------------------------------------------------------------------
+/*!
+  \return QImage, containing all scene rendering in window
+*/
 QImage
 SVTK_ViewWindow
 ::dumpView()
@@ -536,7 +688,9 @@ SVTK_ViewWindow
   return myMainWindow->dumpView();
 }
 
-//----------------------------------------------------------------------------
+/*!
+  Redirect the request to #SVTK_Renderer::SetSelectionProp
+*/
 void
 SVTK_ViewWindow
 ::SetSelectionProp(const double& theRed, 
@@ -547,7 +701,9 @@ SVTK_ViewWindow
   myView->SetSelectionProp(theRed,theGreen,theBlue,theWidth);
 }
 
-//----------------------------------------------------------------------------
+/*!
+  Redirect the request to #SVTK_Renderer::SetSelectionProp
+*/
 void
 SVTK_ViewWindow
 ::SetPreselectionProp(const double& theRed, 
@@ -558,7 +714,9 @@ SVTK_ViewWindow
   myView->SetPreselectionProp(theRed,theGreen,theBlue,theWidth);
 }
 
-//----------------------------------------------------------------------------
+/*!
+  Redirect the request to #SVTK_Renderer::SetSelectionTolerance
+*/
 void
 SVTK_ViewWindow
 ::SetSelectionTolerance(const double& theTolNodes, 
@@ -567,7 +725,6 @@ SVTK_ViewWindow
   myView->SetSelectionTolerance(theTolNodes,theTolItems);
 }
 
-//----------------------------------------------------------------------------
 int convertAction( const int accelAction )
 {
   switch ( accelAction ) {
@@ -585,17 +742,155 @@ int convertAction( const int accelAction )
   return accelAction;
 }
 
-//----------------------------------------------------------------------------
-void 
+/*!
+  Performs action
+  \param accelAction - action
+*/
+bool 
 SVTK_ViewWindow
 ::action( const int accelAction  )
 {
+  if ( !myMainWindow->hasFocus() )
+    return false;
   if ( accelAction == SUIT_Accel::ZoomFit )
     onFitAll();
   else {
     int anEvent = convertAction( accelAction );
     myMainWindow->InvokeEvent( anEvent, 0 );
   }
+  return true;
+}
+
+// old visual parameters had 13 values.  New format added additional 
+// 76 values for graduated axes, so both numbers are processed.
+const int nNormalParams = 13;   // number of view windows parameters excluding graduated axes params
+const int nGradAxisParams = 25; // number of parameters of ONE graduated axis (X, Y, or Z)
+const int nAllParams = nNormalParams + 3*nGradAxisParams + 1; // number of all visual parameters
+
+/*! The method returns visual parameters of a graduated axis actor (x,y,z axis of graduated axes)
+ */
+QString getGradAxisVisualParams( vtkAxisActor2D* actor )
+{
+  QString params;
+  if ( !actor )
+    return params;
+
+  // Name
+  bool isVisible = actor->GetTitleVisibility();
+  QString title ( actor->GetTitle() );
+  vtkFloatingPointType color[ 3 ];
+  int font = VTK_ARIAL;
+  int bold = 0;
+  int italic = 0;
+  int shadow = 0;
+
+  vtkTextProperty* txtProp = actor->GetTitleTextProperty();
+  if ( txtProp )
+  {
+    txtProp->GetColor( color );
+    font = txtProp->GetFontFamily();
+    bold = txtProp->GetBold();
+    italic = txtProp->GetItalic();
+    shadow = txtProp->GetShadow();
+  }
+  params.sprintf( "* Graduated Axis: * Name *%u*%s*%.2f*%.2f*%.2f*%u*%u*%u*%u", isVisible, 
+                 title.latin1(), color[0], color[1], color[2], font, bold, italic, shadow );
+
+  // Labels
+  isVisible = actor->GetLabelVisibility();
+  int labels = actor->GetNumberOfLabels();
+  int offset = actor->GetTickOffset();
+  font = VTK_ARIAL;
+  bold = false;
+  italic = false;
+  shadow = false;
+
+  txtProp = actor->GetLabelTextProperty();
+  if ( txtProp )
+  {
+    txtProp->GetColor( color );
+    font = txtProp->GetFontFamily();
+    bold = txtProp->GetBold();
+    italic = txtProp->GetItalic();
+    shadow = txtProp->GetShadow();
+  }
+  params += QString().sprintf( "* Labels *%u*%u*%u*%.2f*%.2f*%.2f*%u*%u*%u*%u", isVisible, labels, offset,  
+                              color[0], color[1], color[2], font, bold, italic, shadow );
+
+  // Tick marks
+  isVisible = actor->GetTickVisibility();
+  int length = actor->GetTickLength();
+  
+  params += QString().sprintf( "* Tick marks *%u*%u", isVisible, length );
+  
+  return params;
+}
+
+/*! The method restores visual parameters of a graduated axis actor (x,y,z axis)
+ */
+void setGradAxisVisualParams( vtkAxisActor2D* actor, const QString& params )
+{
+  if ( !actor )
+    return;
+
+  QStringList paramsLst = QStringList::split( '*', params, true );
+
+  if ( paramsLst.size() == nGradAxisParams ) { // altogether name, lable, ticks parameters make up 25 values
+
+    // retrieve and set name parameters
+    bool isVisible = paramsLst[2].toUShort();
+    QString title = paramsLst[3];
+    vtkFloatingPointType color[3];
+    color[0] = paramsLst[4].toDouble();
+    color[1] = paramsLst[5].toDouble();
+    color[2] = paramsLst[6].toDouble();
+    int font = paramsLst[7].toInt();
+    int bold = paramsLst[8].toInt();
+    int italic = paramsLst[9].toInt();
+    int shadow = paramsLst[10].toInt();
+
+    actor->SetTitleVisibility( isVisible );
+    actor->SetTitle( title.latin1() );
+    vtkTextProperty* txtProp = actor->GetTitleTextProperty();
+    if ( txtProp ) {
+      txtProp->SetColor( color );
+      txtProp->SetFontFamily( font );
+      txtProp->SetBold( bold );
+      txtProp->SetItalic( italic );
+      txtProp->SetShadow( shadow );
+    }
+
+    // retrieve and set lable parameters
+    isVisible = paramsLst[12].toUShort();
+    int labels = paramsLst[13].toInt();
+    int offset = paramsLst[14].toInt();
+    color[0] = paramsLst[15].toDouble();
+    color[1] = paramsLst[16].toDouble();
+    color[2] = paramsLst[17].toDouble();
+    font = paramsLst[18].toInt();
+    bold = paramsLst[19].toInt();
+    italic = paramsLst[20].toInt();
+    shadow = paramsLst[21].toInt();
+
+    actor->SetLabelVisibility( isVisible );
+    actor->SetNumberOfLabels( labels );
+    actor->SetTickOffset( offset );
+    txtProp = actor->GetLabelTextProperty();
+    if ( txtProp ) {
+      txtProp->SetColor( color );
+      txtProp->SetFontFamily( font );
+      txtProp->SetBold( bold );
+      txtProp->SetItalic( italic );
+      txtProp->SetShadow( shadow );
+    }
+
+    // retrieve and set tick marks properties
+    isVisible = paramsLst[23].toUShort();
+    int length = paramsLst[24].toInt();
+
+    actor->SetTickVisibility( isVisible );
+    actor->SetTickLength( length );
+  }
 }
 
 /*! The method returns the visual parameters of this view as a formated string
@@ -605,7 +900,8 @@ SVTK_ViewWindow
 ::getVisualParameters()
 {
   double pos[3], focalPnt[3], viewUp[3], parScale, scale[3];
-
+  
+  // save position, focal point, viewUp, scale
   vtkCamera* camera = getRenderer()->GetActiveCamera();
   camera->GetPosition( pos );
   camera->GetFocalPoint( focalPnt );
@@ -613,15 +909,28 @@ SVTK_ViewWindow
   parScale = camera->GetParallelScale();
   GetScale( scale );
 
+  // Parameters are given in the following format:view position (3 digits), focal point position (3 digits)
+  // view up values (3 digits), parallel scale (1 digit), scale (3 digits, 
+  // Graduated axes parameters (X, Y, Z axes parameters)
   QString retStr;
   retStr.sprintf( "%.12e*%.12e*%.12e*%.12e*%.12e*%.12e*%.12e*%.12e*%.12e*%.12e*%.12e*%.12e*%.12e", 
-                 pos[0], pos[1], pos[2], focalPnt[0], focalPnt[1], focalPnt[2], viewUp[0], viewUp[1], 
-                 viewUp[2], parScale, scale[0], scale[1], scale[2] );
+                 pos[0], pos[1], pos[2], focalPnt[0], focalPnt[1], focalPnt[2], 
+                 viewUp[0], viewUp[1], viewUp[2], parScale, scale[0], scale[1], scale[2] );
+
+  // save graduated axes parameters
+  if ( SVTK_CubeAxesActor2D* gradAxesActor = GetCubeAxes() ) {
+    retStr += QString( "*%1" ).arg( getMainWindow()->IsCubeAxesDisplayed() );
+    retStr += ::getGradAxisVisualParams( gradAxesActor->GetXAxisActor2D() );
+    retStr += ::getGradAxisVisualParams( gradAxesActor->GetYAxisActor2D() );
+    retStr += ::getGradAxisVisualParams( gradAxesActor->GetZAxisActor2D() );
+  }
+
   return retStr;
 }
 
-/* The method restores visual parameters of this view or postpones it untill the view is shown
- */
+/*!
+  The method restores visual parameters of this view or postpones it untill the view is shown
+*/
 void
 SVTK_ViewWindow
 ::setVisualParameters( const QString& parameters )
@@ -636,14 +945,15 @@ SVTK_ViewWindow
   }
 }
 
-/* The method restores visual parameters of this view from a formated string
- */
+/*!
+  The method restores visual parameters of this view from a formated string
+*/
 void
 SVTK_ViewWindow
 ::doSetVisualParameters( const QString& parameters )
 {
   QStringList paramsLst = QStringList::split( '*', parameters, true );
-  if ( paramsLst.size() == 13 ) {
+  if ( paramsLst.size() >= nNormalParams ) {
     // 'reading' list of parameters
     double pos[3], focalPnt[3], viewUp[3], parScale, scale[3];
     pos[0] = paramsLst[0].toDouble();
@@ -668,20 +978,29 @@ SVTK_ViewWindow
     camera->SetParallelScale( parScale );
     SetScale( scale );
 
-    //    resize( size() );
-
-    //    getRenderer()->ResetCameraClippingRange();
-    //    Repaint();
-    //    getMainWindow()->GetRenderer()->GetTransform()->SetMatrixScale( scale[0], scale[1], scale[2] );
+    // apply graduated axes parameters
+    SVTK_CubeAxesActor2D* gradAxesActor = GetCubeAxes();
+    if ( gradAxesActor && paramsLst.size() == nAllParams ) {
+      
+      int i = nNormalParams+1, j = i + nGradAxisParams - 1;
+      ::setGradAxisVisualParams( gradAxesActor->GetXAxisActor2D(), parameters.section( '*', i, j ) ); 
+      i = j + 1; j += nGradAxisParams;
+      ::setGradAxisVisualParams( gradAxesActor->GetYAxisActor2D(), parameters.section( '*', i, j ) ); 
+      i = j + 1; j += nGradAxisParams;
+      ::setGradAxisVisualParams( gradAxesActor->GetZAxisActor2D(), parameters.section( '*', i, j ) ); 
+
+      if ( paramsLst[13].toUShort() )
+       gradAxesActor->VisibilityOn();
+      else
+       gradAxesActor->VisibilityOff();
+    }
   }
 }
 
 
-//================================================================
-// Function : eventFilter
-/*! Purpose : delayed setVisualParameters
+/*!
+  Delayed setVisualParameters
 */
-//================================================================
 bool SVTK_ViewWindow::eventFilter( QObject* theWatched, QEvent* theEvent )
 {
   if ( theEvent->type() == QEvent::Show && theWatched->inherits( "SVTK_RenderWindowInteractor" ) ) {
index 51e50ac4574d72fa80773e249c2662de811fed12..7e9c839720aca715e7d4e4df8903588f42776cf8 100755 (executable)
@@ -136,7 +136,7 @@ class SVTK_EXPORT SVTK_ViewWindow : public SUIT_ViewWindow
   bool
   isVisible(const Handle(SALOME_InteractiveObject)& theIObject);
 
-  /* selection */
+  //! Redirect the request to #SVTK_View::FindIObject (to support old code)
   //----------------------------------------------------------------------------
   Handle(SALOME_InteractiveObject) 
   FindIObject(const char* theEntry);
@@ -343,7 +343,7 @@ protected:
   doSetVisualParameters( const QString& );
 
   QImage dumpView();
-  virtual void action( const int );
+  virtual bool action( const int );
 
   SVTK_View* myView;
   SVTK_MainWindow* myMainWindow;
diff --git a/src/SVTK/resources/SVTK_images.po b/src/SVTK/resources/SVTK_images.po
new file mode 100644 (file)
index 0000000..4790e54
--- /dev/null
@@ -0,0 +1,43 @@
+#  VISU VISUGUI : GUI of VISU component
+#
+#  Copyright (C) 2003  OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN,
+#  CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS 
+# 
+#  This library is free software; you can redistribute it and/or 
+#  modify it under the terms of the GNU Lesser General Public 
+#  License as published by the Free Software Foundation; either 
+#  version 2.1 of the License. 
+# 
+#  This library is distributed in the hope that it will be useful, 
+#  but WITHOUT ANY WARRANTY; without even the implied warranty of 
+#  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU 
+#  Lesser General Public License for more details. 
+# 
+#  You should have received a copy of the GNU Lesser General Public 
+#  License along with this library; if not, write to the Free Software 
+#  Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307 USA 
+# 
+#  See http://www.opencascade.org/SALOME/ or email : webmaster.salome@opencascade.org 
+#
+#
+#
+#  File   : 
+#  Module : 
+
+msgid ""
+msgstr ""
+"Project-Id-Version: PROJECT VERSION\n"
+"POT-Creation-Date: 2002-05-28 10:57:43 AM CEST\n"
+"PO-Revision-Date: 2005-05-10 15:20+0400\n"
+"Last-Translator: FULLNAME <EMAIL@ADDRESS>\n"
+"Content-Type: text/plain; charset=iso-8859-1\n"
+
+
+msgid "ICON_SVTK_SCALING"
+msgstr "view_scaling.png"
+
+msgid "ICON_GRADUATED_AXES"
+msgstr "view_graduated_axes.png"
+
+msgid "ICON_UPDATE_RATE"
+msgstr "view_update_rate.png"
index eb7db7c202b227788cfd34721e39cfc2a81420ae..b7059b2f1bc0e4dc16a666768bdd1e5497c1c891 100755 (executable)
@@ -131,9 +131,6 @@ msgstr "Cannot save file"
 msgid "ERROR"
 msgstr "Error"
 
-msgid "BUT_OK"
-msgstr "Ok"
-
 msgid "SVTK_Viewer::MEN_DUMP_VIEW"
 msgstr "Dump view..."
 
@@ -151,3 +148,130 @@ msgstr "Show/Hide trihedron"
 
 msgid "DSC_SHOW_TRIHEDRON"
 msgstr "Show/Hide trihedron in the current view"
+
+msgid "SVTK_NonIsometricDlg::MEN_SCALING"
+msgstr "Scaling"
+
+msgid "SVTK_NonIsometricDlg::O&K"
+msgstr ""
+
+msgid "SVTK_NonIsometricDlg::&Apply"
+msgstr ""
+
+msgid "SVTK_NonIsometricDlg::&Cancel"
+msgstr ""
+
+msgid "SVTK_NonIsometricDlg::&Reset"
+msgstr ""
+
+msgid "SVTK_NonIsometricDlg::DLG_TITLE"
+msgstr "Scaling"
+
+msgid "SVTK_NonIsometricDlg::LBL_X"
+msgstr "X :"
+
+msgid "SVTK_NonIsometricDlg::LBL_Y"
+msgstr "Y :"
+
+msgid "SVTK_NonIsometricDlg::LBL_Z"
+msgstr "Z :"
+
+msgid "SVTK_MainWindow::MNU_SVTK_SCALING"
+msgstr "Scaling"
+
+msgid "SVTK_MainWindow::DSC_SVTK_SCALING"
+msgstr "Scaling"
+
+msgid "SVTK_FontWidget::ARIAL"
+msgstr "Arial"
+
+msgid "SVTK_FontWidget::COURIER"
+msgstr "Courier"
+
+msgid "SVTK_FontWidget::TIMES"
+msgstr "Times"
+
+msgid "SVTK_FontWidget::BOLD"
+msgstr "Bold"
+
+msgid "SVTK_FontWidget::ITALIC"
+msgstr "Italic"
+
+msgid "SVTK_FontWidget::SHADOW"
+msgstr "Shadow"
+
+msgid "SVTK_CubeAxesDlg::CAPTION"
+msgstr "Graduated axes"
+
+msgid "SVTK_CubeAxesDlg::X_AXIS"
+msgstr "X axis"
+
+msgid "SVTK_CubeAxesDlg::Y_AXIS"
+msgstr "Y axis"
+
+msgid "SVTK_CubeAxesDlg::Z_AXIS"
+msgstr "Z axis"
+
+msgid "SVTK_CubeAxesDlg::IS_VISIBLE"
+msgstr "Is visible"
+
+msgid "SVTK_AxisWidget::AXIS_NAME"
+msgstr "Axis name"
+
+msgid "SVTK_AxisWidget::IS_VISIBLE"
+msgstr "Is visible"
+
+msgid "SVTK_AxisWidget::NAME"
+msgstr "Name"
+
+msgid "SVTK_AxisWidget::FONT"
+msgstr "Font"
+
+msgid "SVTK_AxisWidget::LABELS"
+msgstr "Labels"
+
+msgid "SVTK_AxisWidget::NUMBER"
+msgstr "Number"
+
+msgid "SVTK_AxisWidget::OFFSET"
+msgstr "Offset"
+
+msgid "SVTK_AxisWidget::TICK_MARKS"
+msgstr "Tick marks"
+
+msgid "SVTK_AxisWidget::LENGTH"
+msgstr "Length"
+
+msgid "SVTK_MainWindow::MNU_SVTK_GRADUATED_AXES"
+msgstr "Graduated axes"
+
+msgid "SVTK_MainWindow::DSC_SVTK_GRADUATED_AXES"
+msgstr "Graduated axes"
+
+msgid "SVTK_MainWindow::MNU_SVTK_UPDATE_RATE"
+msgstr "Update rate"
+
+msgid "SVTK_MainWindow::DSC_SVTK_UPDATE_RATE"
+msgstr "Update rate"
+
+msgid "SVTK_UpdateRateDlg::DLG_TITLE"
+msgstr "Update Rate"
+
+msgid "SVTK_UpdateRateDlg::INPUT_FRAME_TITLE"
+msgstr "Enable"
+
+msgid "SVTK_UpdateRateDlg::DESIRED"
+msgstr "Desired Update Rate, FPS"
+
+msgid "SVTK_UpdateRateDlg::STILL"
+msgstr "Still Update Rate, FPS"
+
+msgid "SVTK_UpdateRateDlg::INFORMATION_FRAME_TITLE"
+msgstr "Rendering Metrics"
+
+msgid "SVTK_UpdateRateDlg::CURRENT_FPS"
+msgstr "Current Update Rate, FPS"
+
+msgid "SVTK_UpdateRateDlg::NUMBER_CELLS"
+msgstr "Number of Cells, -"
+
index 8913a2b442d564607a964553b2ce49f2544ab9f7..dc92a6e5bacc2f64d9122cd0ef261565c46ed284 100755 (executable)
@@ -1,3 +1,21 @@
+#  Copyright (C) 2005  CEA/DEN, EDF R&D, OPEN CASCADE, PRINCIPIA R&D
+#
+#  This library is free software; you can redistribute it and/or
+#  modify it under the terms of the GNU Lesser General Public
+#  License as published by the Free Software Foundation; either
+#  version 2.1 of the License.
+#
+#  This library is distributed in the hope that it will be useful,
+#  but WITHOUT ANY WARRANTY; without even the implied warranty of
+#  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+#  Lesser General Public License for more details.
+#
+#  You should have received a copy of the GNU Lesser General Public
+#  License along with this library; if not, write to the Free Software
+#  Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307 USA
+#
+#  See http://www.salome-platform.org/
+#
 #  File   : Makefile.in
 #  Author : Vladimir Klyachin (OCN)
 #  Module : SalomeApp
@@ -67,10 +85,10 @@ LIB_CLIENT_IDL = SALOMEDS.idl \
 RESOURCES_FILES = SalomeApp.ini \
                  SalomeApp.xml
 
-CPPFLAGS+=$(PYTHON_INCLUDES) $(QT_INCLUDES) $(QWT_INCLUDES) $(OCC_INCLUDES) $(VTK_INCLUDES) $(BOOST_CPPFLAGS) -I${KERNEL_ROOT_DIR}/include/salome
+CPPFLAGS+=$(PYTHON_INCLUDES) $(QT_INCLUDES) $(QWT_INCLUDES) $(OCC_INCLUDES) $(VTK_INCLUDES) $(BOOST_CPPFLAGS) $(KERNEL_CXXFLAGS)
 
 LDFLAGS+=$(PYTHON_LIBS) $(QT_MT_LIBS) 
-LIBS+= -lsuit -lstd -lCAM -lObjBrowser -lSalomePrs -L$(KERNEL_ROOT_DIR)/lib/salome -lOpUtil -lSALOMELocalTrace -lSalomeDSClient $(CAS_KERNEL) -lSPlot2d -lGLViewer -lOCCViewer -lVTKViewer -lSalomeObject -lSVTK -lSOCC -lPyInterp -lPythonConsole -lLogWindow -lLightApp -lSalomeContainer -lToolsGUI
+LIBS+= -lsuit -lstd -lCAM -lObjBrowser -lSalomePrs $(KERNEL_LDFLAGS) -lOpUtil -lSALOMELocalTrace -lSalomeDSClient $(CAS_KERNEL) -lSPlot2d -lGLViewer -lOCCViewer -lVTKViewer -lSalomeObject -lSVTK -lSOCC -lPyInterp -lPythonConsole -lLogWindow -lLightApp -lSalomeContainer -lToolsGUI
 
 @CONCLUDE@
 
index 9d17c32e6698289e45101a2b21f39c04f07036c6..12dfcd7829b4b1e6d81cfebf1dc02009f7e75d0b 100644 (file)
@@ -52,9 +52,8 @@
 #include <qpushbutton.h>
 #include <qlabel.h>
 
-#include "SALOMEDS_StudyManager.hxx"
-#include "SALOMEDS_SObject.hxx"
-#include "SALOMEDS_IParameters.hxx"
+#include "SALOMEDSClient_ClientFactory.hxx"
+#include "SALOMEDSClient_IParameters.hxx"
 
 #include "SALOME_ListIteratorOfListIO.hxx"
 #include "SALOME_ListIO.hxx"
@@ -70,11 +69,6 @@ extern "C" SALOMEAPP_EXPORT SUIT_Application* createApplication()
   return new SalomeApp_Application();
 }
 
-/*
-  Class       : SalomeApp_Application
-  Description : Application containing SalomeApp module or LightApp module
-*/
-
 /*!Constructor.*/
 SalomeApp_Application::SalomeApp_Application()
 : LightApp_Application()
@@ -106,10 +100,11 @@ void SalomeApp_Application::createActions()
   SUIT_Desktop* desk = desktop();
   
   //! Save GUI state
-  createAction( SaveGUIStateId, tr( "TOT_DESK_FILE_SAVE_GUI_STATE" ), QIconSet(),
-               tr( "MEN_DESK_FILE_SAVE_GUI_STATE" ), tr( "PRP_DESK_FILE_SAVE_GUI_STATE" ),
-               0, desk, false, this, SLOT( onSaveGUIState() ) );
-
+  // "Save GUI State" command is moved to VISU module
+  //  createAction( SaveGUIStateId, tr( "TOT_DESK_FILE_SAVE_GUI_STATE" ), QIconSet(),
+  //           tr( "MEN_DESK_FILE_SAVE_GUI_STATE" ), tr( "PRP_DESK_FILE_SAVE_GUI_STATE" ),
+  //           0, desk, false, this, SLOT( onSaveGUIState() ) );
+  
   //! Dump study
   createAction( DumpStudyId, tr( "TOT_DESK_FILE_DUMP_STUDY" ), QIconSet(),
                tr( "MEN_DESK_FILE_DUMP_STUDY" ), tr( "PRP_DESK_FILE_DUMP_STUDY" ),
@@ -137,7 +132,10 @@ void SalomeApp_Application::createActions()
 
   int fileMenu = createMenu( tr( "MEN_DESK_FILE" ), -1 );
 
-  createMenu( SaveGUIStateId, fileMenu, 10, -1 );
+  // "Save GUI State" command is renamed to "Save VISU State" and 
+  // creation of menu item is moved to VISU
+  //  createMenu( SaveGUIStateId, fileMenu, 10, -1 ); 
+
   createMenu( DumpStudyId, fileMenu, 10, -1 );
   createMenu( separator(), fileMenu, -1, 15, -1 );
   createMenu( LoadScriptId, fileMenu, 10, -1 );
@@ -339,6 +337,14 @@ void SalomeApp_Application::onPaste()
   _PTR(Study) stdDS = study->studyDS();
   if(!stdDS) return;
 
+  if ( stdDS->GetProperties()->IsLocked() ) {
+    SUIT_MessageBox::warn1 ( desktop(),
+                            QObject::tr("WRN_WARNING"),
+                            QObject::tr("WRN_STUDY_LOCKED"),
+                            QObject::tr("BUT_OK") );
+    return;
+  }
+
   SALOME_ListIteratorOfListIO it( list );
   if(it.More())
     {
@@ -374,12 +380,8 @@ void SalomeApp_Application::onSelectionChanged()
          _PTR(SObject) so = stdDS->FindObjectID(it.Value()->getEntry());
 
          if ( so ) {
-           SALOMEDS_SObject* aSO = dynamic_cast<SALOMEDS_SObject*>(so.get());
-
-           if ( aSO ) {
              canCopy = studyMgr()->CanCopy(so);
              canPaste = studyMgr()->CanPaste(so);
-           }
          }
        }
      }
@@ -436,10 +438,9 @@ void SalomeApp_Application::onOpenWith()
   QApplication::restoreOverrideCursor();
 }
 
-//=======================================================================
-// name    : createNewStudy
-/*! Purpose : Create new study*/
-//=======================================================================
+/*!
+  Creates new study
+*/
 SUIT_Study* SalomeApp_Application::createNewStudy()
 {
   SalomeApp_Study* aStudy = new SalomeApp_Study( this );
@@ -453,10 +454,9 @@ SUIT_Study* SalomeApp_Application::createNewStudy()
   return aStudy;
 }
 
-//=======================================================================
-// name    : updateCommandsStatus
-/*! Purpose : Enable/Disable menu items and toolbar buttons. Rebuild menu*/
-//=======================================================================
+/*!
+  Enable/Disable menu items and toolbar buttons. Rebuild menu
+*/
 void SalomeApp_Application::updateCommandsStatus()
 {
   LightApp_Application::updateCommandsStatus();
@@ -485,10 +485,10 @@ void SalomeApp_Application::updateCommandsStatus()
   onSelectionChanged();
 }
 
-/*
-  Class       : DumpStudyFileDlg
-  Description : Private class used in Dump Study operation.  Consists 2 check boxes: 
-                "Publish in study" and "Save GUI parameters"
+/*!
+  \class DumpStudyFileDlg
+  Private class used in Dump Study operation.  Consists 2 check boxes: 
+  "Publish in study" and "Save GUI parameters"
 */
 class DumpStudyFileDlg : public SUIT_FileDlg
 {
@@ -530,11 +530,12 @@ void SalomeApp_Application::onDumpStudy( )
   if ( !aFileName.isEmpty() ) {
     QFileInfo aFileInfo(aFileName);
     int savePoint;
+    _PTR(AttributeParameter) ap;
+    _PTR(IParameters) ip = ClientFactory::getIParameters(ap);
+    if(ip->isDumpPython(appStudy->studyDS())) ip->setDumpPython(appStudy->studyDS()); //Unset DumpPython flag.
     if ( toSaveGUI ) { //SRN: Store a visual state of the study at the save point for DumpStudy method
-      SALOMEDS_IParameters::setDumpPython(appStudy->studyDS());
-      savePoint = SalomeApp_VisualState( this ).storeState(); //SRN: create a temporary save point
-      //prefix = SALOMEDS_IParameters::getStudyScript(appStudy->studyDS(), appStudy->getVisualComponentName(), savePoint);
-      
+      ip->setDumpPython(appStudy->studyDS());
+      savePoint = SalomeApp_VisualState( this ).storeState(); //SRN: create a temporary save point      
     }
     bool res = aStudy->DumpStudy( aFileInfo.dirPath( true ).latin1(), aFileInfo.baseName().latin1(), toPublish);
     if ( toSaveGUI ) 
@@ -588,6 +589,7 @@ void SalomeApp_Application::onSaveGUIState()
     updateSavePointDataObjects( study );
     objectBrowser()->updateTree( study->root() );
   }
+  updateActions();
 }
 
 /*!Gets file filter.
@@ -845,16 +847,13 @@ void SalomeApp_Application::updateObjectBrowser( const bool updateModels )
         //SalomeApp_DataModel::BuildTree( aComponent, study->root(), study, /*skipExisitng=*/true );
       }
     }
-    // create data objects that correspond to GUI state save points
-    updateSavePointDataObjects( study );
   }
 
+  // create data objects that correspond to GUI state save points
+  if ( study ) updateSavePointDataObjects( study );
+
   // update existing data models (already loaded SComponents)
   LightApp_Application::updateObjectBrowser( updateModels );
-
-  // -- debug -- 
-  //  if ( study && study->root() )
-  //    study->root()->dump();
 }
 
 /*!Display Catalog Genenerator dialog */
@@ -917,6 +916,10 @@ void SalomeApp_Application::onDblClick( QListViewItem* it )
   }
 }
 
+/*!
+  Creates new view manager
+  \param type - type of view manager
+*/
 SUIT_ViewManager* SalomeApp_Application::newViewManager(const QString& type)
 {
   return createViewManager(type);
@@ -961,6 +964,7 @@ void SalomeApp_Application::onRenameGUIState()
   if ( !newName.isNull() && !newName.isEmpty() ) {
     study->setNameOfSavePoint( savePoint, newName );
     updateSavePointDataObjects( study );
+    objectBrowser()->updateTree( study->root() );
   }
 }
 
@@ -1052,11 +1056,10 @@ void SalomeApp_Application::updateSavePointDataObjects( SalomeApp_Study* study )
   // case 4: everything already exists.. here may be a problem: we want "GUI states" root object
   // to be always the last one in the tree.  Here we check - if it is not the last one - remove and
   // re-create it.
-  bool isOpen( false );
   if ( guiRootObj->nextBrother() ) {
-    isOpen = isListViewItemOpen( ob->listView(), guiRootObj );
-    delete guiRootObj;
-    guiRootObj = new SalomeApp_SavePointRootObject( study->root() );
+    study->root()->removeChild(guiRootObj);
+    study->root()->appendChild(guiRootObj);
+    //study->root()->dump();
   }
 
   // store data objects in a map id-to-DataObject
@@ -1074,15 +1077,11 @@ void SalomeApp_Application::updateSavePointDataObjects( SalomeApp_Study* study )
   for ( int i = 0; i < savePoints.size(); i++ )
     if ( !mapDO.contains( savePoints[i] ) )
       new SalomeApp_SavePointObject( guiRootObj, savePoints[i], study );
-    else {
-      ob->updateTree( mapDO[ savePoints[i] ] );
+    else
       mapDO.remove( savePoints[i] );
-    }
+
   // delete DataObjects that are still in the map -- their IDs were not found in data model
   for ( QMap<int,SalomeApp_SavePointObject*>::Iterator it = mapDO.begin(); it != mapDO.end(); ++it )
     delete it.data();
-
-  if ( isOpen ) // set open if we recreated guiRootObj and it was previously open..
-    guiRootObj->setOpen( true );
 }
 
index e8ba1d4b40ac4b172d0f1a2b1c17c1b789c911af..083cd6a9044b1a854905e1f00eb02e58e6c31a3b 100644 (file)
@@ -38,7 +38,8 @@ class QListViewItem;
 #endif
 
 /*!
-  Description : Application containing SalomeApp module or LightApp module
+  \class SalomeApp_Application
+  \brief Application containing SalomeApp module or LightApp module
 */
 
 class SALOMEAPP_EXPORT SalomeApp_Application : public LightApp_Application
@@ -77,6 +78,7 @@ public slots:
   virtual bool                        onLoadDoc( const QString& );
   virtual void                        onCopy();
   virtual void                        onPaste();
+  void                                onSaveGUIState();// called from VISU
 
 protected slots:
   void                                onStudySaved( SUIT_Study* );
@@ -99,14 +101,14 @@ private slots:
   void                                onProperties();
   void                                onDumpStudy();
   void                                onLoadScript(); 
-  void                                onSaveGUIState(); 
+
   void                                onDeleteGUIState(); 
+  void                                onRestoreGUIState();
+  void                                onRenameGUIState();
 
   void                                onCatalogGen();
   void                                onRegDisplay();
   void                                onOpenWith();
-  void                                onRestoreGUIState();
-  void                                onRenameGUIState();
 };
 
 #ifdef WIN32
index 79e75ca106a57b6411611b4a01d603dea685f6be..21c0b4abaa990e79938fc2bfa5388a387dbe514c 100644 (file)
 #include <SALOMEconfig.h>
 #include CORBA_SERVER_HEADER(SALOME_Exception)
 
-//=======================================================================
-// name    : SalomeApp_DataModelSync
-/*!Purpose : Auxiliary class for synchronizing tree of kernel objects and SUIT_DataObjects  */
-//=======================================================================
-
 typedef _PTR(SObject)     kerPtr;
 typedef SUIT_DataObject*  suitPtr;
 
+/*!
+  \class SalomeApp_DataModelSync
+  Auxiliary class for synchronizing tree of kernel objects and SUIT_DataObjects
+*/
 class SalomeApp_DataModelSync
 {
 public:
@@ -54,13 +53,18 @@ private:
   SUIT_DataObject*  myRoot;
 };
 
-
+/*!
+  Constructor
+*/
 SalomeApp_DataModelSync::SalomeApp_DataModelSync( _PTR( Study ) aStudy, SUIT_DataObject* aRoot )
 : myStudy( aStudy ),
   myRoot( aRoot )
 {
 }
 
+/*!
+  \return true if kernel object is correct (has non empty name or is reference)
+*/
 bool SalomeApp_DataModelSync::isCorrect( const kerPtr& so ) const
 {
   kerPtr refObj;
@@ -69,6 +73,13 @@ bool SalomeApp_DataModelSync::isCorrect( const kerPtr& so ) const
   return res;
 }
 
+/*!
+  Creates SUIT object by KERNEL object
+  \param so - corresponding KERNEL object
+  \param parent - parent for SUIT object
+  \param after - previous sibling for SUIT object
+  \param prepend - SUIT object must be added to start of children list
+*/
 suitPtr SalomeApp_DataModelSync::createItem( const kerPtr& so,
                                             const suitPtr& parent,
                                             const suitPtr& after,
@@ -100,6 +111,10 @@ suitPtr SalomeApp_DataModelSync::createItem( const kerPtr& so,
   return nitem;
 }
 
+/*!
+  Deletes object with all children
+  \param p - SUIT object
+*/
 void SalomeApp_DataModelSync::deleteItemWithChildren( const suitPtr& p ) const
 {
   if( !p )
@@ -113,22 +128,43 @@ void SalomeApp_DataModelSync::deleteItemWithChildren( const suitPtr& p ) const
   delete p;
 }
 
+/*!
+  \return true if objects correspond each other at all
+  \param p - kernel object
+  \param q - suit object
+*/
 bool SalomeApp_DataModelSync::isEqual( const kerPtr& p, const suitPtr& q ) const
 {
-  LightApp_DataObject* obj = dynamic_cast<LightApp_DataObject*>( q );
-  return ( !p && !q ) || ( obj && isCorrect( p ) && p->GetID().c_str()==obj->entry() );
+  LightApp_ModuleObject* lobj = dynamic_cast<LightApp_ModuleObject*>( q );
+  SalomeApp_DataObject* sobj = dynamic_cast<SalomeApp_DataObject*>( q );
+  _PTR( SComponent ) aComp( p );
+  bool res = ( !p && !q ) ||
+             ( lobj && !sobj && aComp ) ||
+            ( sobj && isCorrect( p ) && p->GetID().c_str()==sobj->entry() );
+  return res;
 }
 
+/*!
+  \return null kernel object
+*/
 kerPtr SalomeApp_DataModelSync::nullSrc() const
 {
   return kerPtr();
 }
 
+/*!
+  \return null suit object
+*/
 suitPtr SalomeApp_DataModelSync::nullTrg() const
 {
   return suitPtr( 0 );
 }
 
+/*!
+  Fills list with children of kernel object
+  \param obj - kernel object
+  \param ch - list to be filled
+*/
 void SalomeApp_DataModelSync::children( const kerPtr& obj, QValueList<kerPtr>& ch ) const
 {
   ch.clear();
@@ -137,6 +173,11 @@ void SalomeApp_DataModelSync::children( const kerPtr& obj, QValueList<kerPtr>& c
     ch.append( it->Value() );
 }
 
+/*!
+  Fills list with children of SUIT object
+  \param p - SUIT object
+  \param ch - list to be filled
+*/
 void SalomeApp_DataModelSync::children( const suitPtr& p, QValueList<suitPtr>& ch ) const
 {
   DataObjectList l;
@@ -149,15 +190,26 @@ void SalomeApp_DataModelSync::children( const suitPtr& p, QValueList<suitPtr>& c
   }
 }
 
+/*!
+  \return parent of SUIT object
+  \param p - SUIT object
+*/
 suitPtr SalomeApp_DataModelSync::parent( const suitPtr& p ) const
 {
   return p ? p->parent(): 0;
 }
 
+/*!
+  Updates SUIT object
+  \param p - SUIT object
+*/
 void SalomeApp_DataModelSync::updateItem( const suitPtr& ) const
 {
 }
 
+/*!
+  Auxiliary function, shows SUIT tree
+*/
 void showTree( SUIT_DataObject* root )
 {
   qDebug( root ? "<tree>" : "<empty tree>" );
@@ -173,27 +225,24 @@ void showTree( SUIT_DataObject* root )
   }
 }
 
-//=======================================================================
-// name    : SalomeApp_DataModel::SalomeApp_DataModel
-/*!Purpose : Constructor*/
-//=======================================================================
+/*!
+  Constructor
+*/
 SalomeApp_DataModel::SalomeApp_DataModel( CAM_Module* theModule )
 : LightApp_DataModel( theModule )
 {
 }
 
-//=======================================================================
-// name    : SalomeApp_DataModel::~SalomeApp_DataModel
-/*! Purpose : Destructor*/
-//=======================================================================
+/*!
+  Destructor
+*/
 SalomeApp_DataModel::~SalomeApp_DataModel()
 {
 }
 
-//================================================================
-// Function : open
-/*! Purpose  : Open data model*/
-//================================================================
+/*!
+  Opens data model
+*/
 bool SalomeApp_DataModel::open( const QString& name, CAM_Study* study, QStringList )
 {
   SalomeApp_Study* aDoc = dynamic_cast<SalomeApp_Study*>( study );
@@ -214,20 +263,18 @@ bool SalomeApp_DataModel::open( const QString& name, CAM_Study* study, QStringLi
   return true;
 }
 
-//================================================================
-// Function : create
-/*! Purpose  : Create data model*/
-//================================================================
+/*!
+  Creates data model
+*/
 bool SalomeApp_DataModel::create( CAM_Study* theStudy )
 {
   update(NULL, (LightApp_Study*)theStudy);
   return true;
 }
 
-//================================================================
-// Function : update
-/*! Purpose  : Update application.*/
-//================================================================
+/*!
+  Updates application.
+*/
 void SalomeApp_DataModel::update( LightApp_DataObject*, LightApp_Study* study )
 {
   SalomeApp_Study* aSStudy = dynamic_cast<SalomeApp_Study*>(study);
@@ -261,10 +308,9 @@ void SalomeApp_DataModel::update( LightApp_DataObject*, LightApp_Study* study )
     updateTree( sobj, aSStudy );
 }
 
-//================================================================
-// Function : synchronize
-/*! Purpose  : synchronizes kernel tree and suit data tree starting from component 'sobj' */
-//================================================================
+/*!
+  Synchronizes kernel tree and suit data tree starting from component 'sobj'
+*/
 SUIT_DataObject* SalomeApp_DataModel::synchronize( const _PTR( SComponent )& sobj, SalomeApp_Study* study )
 {
   if( !study || !study->root() || !sobj )
@@ -272,11 +318,11 @@ SUIT_DataObject* SalomeApp_DataModel::synchronize( const _PTR( SComponent )& sob
 
   DataObjectList ch; study->root()->children( ch );
   DataObjectList::const_iterator anIt = ch.begin(), aLast = ch.end();
-  SalomeApp_DataObject* suitObj = 0;
+  SUIT_DataObject* suitObj = 0;
   for( ; anIt!=aLast; anIt++ )
   {
-    SalomeApp_DataObject* dobj = dynamic_cast<SalomeApp_DataObject*>( *anIt );
-    if( dobj && dobj->name()==sobj->GetName().c_str() )
+    LightApp_DataObject* dobj = dynamic_cast<LightApp_DataObject*>( *anIt );
+    if( dobj && dobj->name() == sobj->GetName().c_str() )
     {
       suitObj = dobj;
       break;
@@ -285,13 +331,15 @@ SUIT_DataObject* SalomeApp_DataModel::synchronize( const _PTR( SComponent )& sob
 
   SalomeApp_DataModelSync sync( study->studyDS(), study->root() );
 
-  return ::synchronize<kerPtr,suitPtr,SalomeApp_DataModelSync>( sobj, suitObj, sync );
+  if( !suitObj || dynamic_cast<SalomeApp_DataObject*>( suitObj ) )
+    return ::synchronize<kerPtr,suitPtr,SalomeApp_DataModelSync>( sobj, suitObj, sync );
+  else
+    return 0;
 }
 
-//================================================================
-// Function : updateTree
-/*! Purpose  : updates tree.*/
-//================================================================
+/*!
+  Updates tree.
+*/
 void SalomeApp_DataModel::updateTree( const _PTR( SComponent )& comp, SalomeApp_Study* study )
 {
   SalomeApp_ModuleObject* aNewRoot = dynamic_cast<SalomeApp_ModuleObject*>( synchronize( comp, study ) );
@@ -302,20 +350,17 @@ void SalomeApp_DataModel::updateTree( const _PTR( SComponent )& comp, SalomeApp_
   }
 }
 
-//================================================================
-// Function : getModule
-/*! Purpose  : gets module*/
-//================================================================
-
+/*!
+  \return module
+*/
 SalomeApp_Module* SalomeApp_DataModel::getModule() const
 {
   return dynamic_cast<SalomeApp_Module*>( module() );
 }
 
-//================================================================
-// Function : getStudy
-/*! Purpose  : gets study */
-//================================================================
+/*!
+  \return study
+*/
 SalomeApp_Study* SalomeApp_DataModel::getStudy() const
 {
   if(!root()) return 0;
@@ -328,10 +373,9 @@ SalomeApp_Study* SalomeApp_DataModel::getStudy() const
   return aStudy;
 }
 
-//================================================================
-// Function : getRootEntry
-/*! Purpose  : returns study entry corresponding to this data model*/
-//================================================================
+/*!
+  \return study entry corresponding to this data model
+*/
 QString SalomeApp_DataModel::getRootEntry( SalomeApp_Study* study ) const
 {
   QString anEntry;
index 5bb857865100a6368ff0f3a9f4a8ec24170ba30e..04d9aaf076aed1ba8bd08378d3b4900e0e43d7c8 100644 (file)
 #include <SALOMEDSClient_AttributeTableOfReal.hxx>
 #include <SALOMEDSClient_AttributeTableOfInteger.hxx>
 
-/*
-       Class: SalomeApp_DataObject
-       Level: Public
-*/
 /*!Constructor. Initialize by \a parent*/
 SalomeApp_DataObject::SalomeApp_DataObject( SUIT_DataObject* parent )
 : LightApp_DataObject( parent ),
@@ -333,10 +329,9 @@ QString SalomeApp_DataObject::value( const _PTR(SObject)& obj ) const
   return val;
 }
 
-/*
-       Class: SalomeApp_ModuleObject
-       Level: Public
-*/
+
+
+
 
 /*!Constructor.Initialize by \a parent.*/
 SalomeApp_ModuleObject::SalomeApp_ModuleObject( SUIT_DataObject* parent )
@@ -373,10 +368,8 @@ QString SalomeApp_ModuleObject::name() const
   return SalomeApp_DataObject::name();
 }
 
-/*
-       Class: SalomeApp_SavePointObject
-       Level: Public
-*/
+
+
 
 /*!Constructor.Initialize by \a parent.*/
 SalomeApp_SavePointObject::SalomeApp_SavePointObject( SUIT_DataObject* _parent, const int id, SalomeApp_Study* study )
@@ -410,11 +403,13 @@ QString SalomeApp_SavePointObject::name() const
   return myStudy->getNameOfSavePoint( myId );
 }
 
+/*!Gets icon picture of object.*/
 QPixmap SalomeApp_SavePointObject::icon() const
 {
   return QPixmap();
 }
 
+/*!Gets tooltip.*/
 QString SalomeApp_SavePointObject::toolTip() const
 {
   return QObject::tr( "SAVE_POINT_OBJECT_TOOLTIP" ).arg( name() );
index 6e2caeda24bf2c99f986ef446788bf4064ce4b3f..03d1f1f78818b9ee533712f721bb47589f51f4ef 100644 (file)
 
 #include <qstring.h>
 
+/*!
+  Default constructor
+*/
 SalomeApp_Displayer::SalomeApp_Displayer()
 {
 }
 
+/*!
+  Destructor
+*/
 SalomeApp_Displayer::~SalomeApp_Displayer()
 {
 }
 
+/*!
+  Displays object in view
+  \param entry - object entry
+  \param updateViewer - is it necessary to update viewer
+  \param theViewFrame - view
+*/
 void SalomeApp_Displayer::Display( const QString& entry, const bool updateViewer, SALOME_View* theViewFrame )
 {
   SALOME_View* vf = theViewFrame ? theViewFrame : GetActiveView();
@@ -59,6 +71,11 @@ void SalomeApp_Displayer::Display( const QString& entry, const bool updateViewer
   }
 }
 
+/*!
+  Redisplays object in view
+  \param entry - object entry
+  \param updateViewer - is it necessary to update viewer
+*/
 void SalomeApp_Displayer::Redisplay( const QString& entry, const bool updateViewer )
 {
   // Remove the object permanently (<forced> == true)
@@ -89,6 +106,13 @@ void SalomeApp_Displayer::Redisplay( const QString& entry, const bool updateView
   }
 }
 
+/*!
+  Erases object in view
+  \param entry - object entry
+  \param forced - deletes object from viewer (otherwise it will be erased, but cached)
+  \param updateViewer - is it necessary to update viewer
+  \param theViewFrame - view
+*/
 void SalomeApp_Displayer::Erase( const QString& entry, const bool forced,
                                 const bool updateViewer, SALOME_View* theViewFrame )
 {
@@ -105,6 +129,12 @@ void SalomeApp_Displayer::Erase( const QString& entry, const bool forced,
   }
 }
 
+/*!
+  Erases all objects in view
+  \param forced - deletes objects from viewer
+  \param updateViewer - is it necessary to update viewer
+  \param theViewFrame - view
+*/
 void SalomeApp_Displayer::EraseAll( const bool forced, const bool updateViewer, SALOME_View* theViewFrame ) const
 {
   SALOME_View* vf = theViewFrame ? theViewFrame : GetActiveView();
@@ -116,6 +146,11 @@ void SalomeApp_Displayer::EraseAll( const bool forced, const bool updateViewer,
   }
 }
 
+/*!
+  \return true if object is displayed in viewer
+  \param entry - object entry
+  \param theViewFrame - view
+*/
 bool SalomeApp_Displayer::IsDisplayed( const QString& entry, SALOME_View* theViewFrame ) const
 {
   SALOME_View* vf = theViewFrame ? theViewFrame : GetActiveView();
@@ -129,6 +164,9 @@ bool SalomeApp_Displayer::IsDisplayed( const QString& entry, SALOME_View* theVie
     return false;
 }
 
+/*!
+  Updates active view
+*/
 void SalomeApp_Displayer::UpdateViewer() const
 {
   SALOME_View* vf = GetActiveView();
@@ -136,6 +174,12 @@ void SalomeApp_Displayer::UpdateViewer() const
     vf->Repaint();
 }
 
+/*!
+  \return presentation of object, built with help of CreatePrs method
+  \param entry - object entry
+  \param theViewFrame - view
+  \sa CreatePrs()
+*/
 SALOME_Prs* SalomeApp_Displayer::buildPresentation( const QString& entry, SALOME_View* theViewFrame )
 {
   SALOME_Prs* prs = 0;
@@ -148,6 +192,9 @@ SALOME_Prs* SalomeApp_Displayer::buildPresentation( const QString& entry, SALOME
   return prs;
 }
 
+/*!
+  \return active view
+*/
 SALOME_View* SalomeApp_Displayer::GetActiveView()
 {
   SUIT_Session* session = SUIT_Session::session();
index 0db6f5fe3ca858c3ccea053290881a93648eee81..e21971eaf8a16c8cd4b641e851dee3465d19f7e6 100755 (executable)
@@ -38,6 +38,9 @@ SalomeApp_EventFilter::~SalomeApp_EventFilter()
   qApp->removeEventFilter( this );
 }
 
+/*!
+  Custom event filter
+*/
 bool SalomeApp_EventFilter::eventFilter( QObject* o, QEvent* e )
 {
   if ( e->type() == SALOME_EVENT )
index 16b5004ce8259e53931d647fa9dec343c6d9bcd0..6059ff19b88fc413365fa53de14ecc02031ac5be 100644 (file)
@@ -77,5 +77,17 @@ bool SalomeApp_ExceptionHandler::handle( QObject* o, QEvent* e )
 /*!Create new SUIT_ExceptionHandler*/
 extern "C" SALOMEAPP_EXPORT SUIT_ExceptionHandler* getExceptionHandler()
 {
-  return new SalomeApp_ExceptionHandler( true );
+  // MSV 2006-04-26: work around PAL12004 "VTK window => SIGFPE Arithmetic Exception Detected"
+  // We disable FPE signal as it was in earlier versions of SALOME. It is enabled
+  // only in debug mode if the environment variable DISABLE_FPE is not set to 1.
+  bool raiseFPE;
+#ifdef _DEBUG_
+  raiseFPE = true;
+  char* envDisableFPE = getenv("DISABLE_FPE");
+  if (envDisableFPE && atoi(envDisableFPE))
+    raiseFPE = false;
+#else
+  raiseFPE = false;
+#endif
+  return new SalomeApp_ExceptionHandler( raiseFPE );
 }
index 6f3bd20e116ba503b68e05edb16bfe51d19f7de9..776c83b1b7294b0cdf2056a967020ba43bdf96b9 100644 (file)
 
 using namespace std;
 
-//////////////////////////////////////////////////////////////////////
-// SalomeApp_ListView class implementation
-//////////////////////////////////////////////////////////////////////
-
-//================================================================
-// Function : computeEditGeometry
-/*! Purpose  : static function - used for resizing editing widget*/
-//================================================================
+/*!
+  Used for resizing editing widget
+*/
 void computeEditGeometry(SalomeApp_ListViewItem* theItem,
                          SalomeApp_EntityEdit*   theWidget)
 {
@@ -61,10 +56,9 @@ void computeEditGeometry(SalomeApp_ListViewItem* theItem,
   theWidget->setGeometry(aX, aY, aW, aH);
 }
 
-//================================================================
-// Function : SalomeApp_ListView::SalomeApp_ListView
-/*! Purpose  : constructor*/
-//================================================================
+/*!
+  Constructor
+*/
 SalomeApp_ListView::SalomeApp_ListView( QWidget* parent )
 : QtxListView( parent )
 {
@@ -88,10 +82,9 @@ SalomeApp_ListView::SalomeApp_ListView( QWidget* parent )
          this,     SLOT(onHeaderSizeChange(int, int, int)));
 }
 
-//================================================================
-// Function : SalomeApp_ListView::~SalomeApp_ListView
-/*! Purpose  : destructor*/
-//================================================================
+/*!
+  Destructor
+*/
 SalomeApp_ListView::~SalomeApp_ListView()
 {
   if (myEdit) {
@@ -101,10 +94,9 @@ SalomeApp_ListView::~SalomeApp_ListView()
   myEditedItem = 0;
 }
 
-//================================================================
-// Function : SalomeApp_ListView::updateViewer
-/*! Purpose  : updates all data viewer*/
-//================================================================
+/*!
+  Updates all data viewer
+*/
 void SalomeApp_ListView::updateViewer()
 {
   // temporary disconnecting selection changed SIGNAL
@@ -118,10 +110,9 @@ void SalomeApp_ListView::updateViewer()
   emit selectionChanged();
 }
 
-//================================================================
-// Function : SalomeApp_ListView::updateSelected
-/*! Purpose  : updates currently selected item(s)*/
-//================================================================
+/*!
+  Updates currently selected item(s)
+*/
 void SalomeApp_ListView::updateSelected()
 {
   // temporary disconnecting selection changed SIGNAL
@@ -135,19 +126,17 @@ void SalomeApp_ListView::updateSelected()
   emit selectionChanged();
 }
 
-//================================================================
-// Function : SalomeApp_ListView::popupClientType
-/*! Purpose  : returns popup client type*/
-//================================================================
+/*!
+  Returns popup client type
+*/
 QString SalomeApp_ListView::popupClientType() const
 {
   return "SalomeApp_ListView";
 }
 
-//================================================================
-// Function : SalomeApp_ListView::contextMenuPopup
-/*! Purpose  : fills popup menu with items*/
-//================================================================
+/*!
+  Fills popup menu with items
+*/
 void SalomeApp_ListView::contextMenuPopup( QPopupMenu* aPopup )
 {
   if (aPopup) {
@@ -155,10 +144,9 @@ void SalomeApp_ListView::contextMenuPopup( QPopupMenu* aPopup )
   }
 }
 
-//================================================================
-// Function : SalomeApp_ListView::clear
-/*! Purpose  : clears view*/
-//================================================================
+/*!
+  Clears view
+*/
 void SalomeApp_ListView::clear()
 {
   if (myEdit) {
@@ -169,28 +157,25 @@ void SalomeApp_ListView::clear()
   QListView::clear();
 }
 
-//================================================================
-// Function : SalomeApp_ListView::isMouseEnabled
-/*! Purpose  : returms true if mouse events are enabled*/
-//================================================================
+/*!
+  \return true if mouse events are enabled
+*/
 bool SalomeApp_ListView::isMouseEnabled()
 {
   return myMouseEnabled;
 }
 
-//================================================================
-// Function : SalomeApp_ListView::enableMouse
-// Purpose  : enabled/disables mouse events (excluding MouseMove)
-//================================================================
+/*!
+  Enables/disables mouse events (excluding MouseMove)
+*/
 void SalomeApp_ListView::enableMouse(bool enable)
 {
   myMouseEnabled = enable;
 }
 
-//================================================================
-// Function : SalomeApp_ListView::eventFilter
-/*! Purpose  : event filter*/
-//================================================================
+/*!
+  Event filter
+*/
 bool SalomeApp_ListView::eventFilter(QObject* object, QEvent* event)
 {
   if (object == viewport() &&
@@ -203,10 +188,9 @@ bool SalomeApp_ListView::eventFilter(QObject* object, QEvent* event)
     return QListView::eventFilter(object, event);
 }
 
-//================================================================
-// Function : SalomeApp_ListView::enableEditing
-/*! Purpose  : setting editing of items availbale/not available*/
-//================================================================
+/*!
+  Setting editing of items availbale/not available
+*/
 void SalomeApp_ListView::enableEditing(bool theFlag)
 {
   myEditingEnabled = theFlag;
@@ -219,28 +203,25 @@ void SalomeApp_ListView::enableEditing(bool theFlag)
   }
 }
 
-//================================================================
-// Function : SalomeApp_ListView::isEnableEditing
-/*! Purpose  : says if editing is enabled*/
-//================================================================
+/*!
+  Says if editing is enabled
+*/
 bool SalomeApp_ListView::isEnableEditing()
 {
   return myEditingEnabled;
 }
 
-//================================================================
-// Function : SalomeApp_ListView::accept
-/*! Purpose  : calls finishEditing(true)...*/
-//================================================================
+/*!
+  Calls finishEditing(true)...
+*/
 void SalomeApp_ListView::accept()
 {
   finishEditing(true);
 }
 
-//================================================================
-// Function : QAD_ListView::onSelectionChanged
-/*! Purpose  : slot, called when selection changed in List Viewer*/
-//================================================================
+/*!
+  Slot, called when selection changed in List Viewer
+*/
 void SalomeApp_ListView::onSelectionChanged()
 {
   if (myEdit) {
@@ -271,10 +252,9 @@ void SalomeApp_ListView::onSelectionChanged()
   }
 }
 
-//================================================================
-// Function : SalomeApp_ListView::resizeEvent
-/*! Purpose  : called when Data Viewer is resized*/
-//================================================================
+/*!
+  Called when Data Viewer is resized
+*/
 void SalomeApp_ListView::resizeEvent( QResizeEvent * e)
 {
   QListView::resizeEvent(e);
@@ -285,10 +265,9 @@ void SalomeApp_ListView::resizeEvent( QResizeEvent * e)
   updateContents();
 }
 
-//================================================================
-// Function : SalomeApp_ListView::onHeaderSizeChange
-/*! Purpose  : slot, called when columns sizes are changed*/
-//================================================================
+/*!
+  Slot, called when columns sizes are changed
+*/
 void SalomeApp_ListView::onHeaderSizeChange(int, int, int)
 {
   int aW = columnWidth(columns()-1);
@@ -297,10 +276,9 @@ void SalomeApp_ListView::onHeaderSizeChange(int, int, int)
     setColumnWidth(columns()-1, width() - frameWidth() * 2 - aX - 1);
 }
 
-//================================================================
-// Function : SalomeApp_ListView::viewportPaintEvent
-/*! Purpose  : handler for paint event*/
-//================================================================
+/*!
+  Handler for paint event
+*/
 void SalomeApp_ListView::viewportPaintEvent(QPaintEvent* e)
 {
   QListView::viewportPaintEvent(e);
@@ -309,28 +287,25 @@ void SalomeApp_ListView::viewportPaintEvent(QPaintEvent* e)
   }
 }
 
-//================================================================
-// Function : SalomeApp_ListView::onEditOk
-/*! Purpose  : called when user finishes in editing of item*/
-//================================================================
+/*!
+  Called when user finishes in editing of item
+*/
 void SalomeApp_ListView::onEditOk()
 {
   finishEditing(true);
 }
 
-//================================================================
-// Function : SalomeApp_ListView::onEditCancel
-/*! Purpose  : called when user cancels item editing*/
-//================================================================
+/*!
+  Called when user cancels item editing
+*/
 void SalomeApp_ListView::onEditCancel()
 {
   finishEditing(false);
 }
 
-//================================================================
-// Function : SalomeApp_ListView::finishEditing
-/*! Purpose  : finishes editing of entity*/
-//================================================================
+/*!
+  Finishes editing of entity
+*/
 UpdateType SalomeApp_ListView::finishEditing(bool ok)
 {
   UpdateType aNeedsUpdate = utCancel;
@@ -392,12 +367,10 @@ UpdateType SalomeApp_ListView::finishEditing(bool ok)
   return aNeedsUpdate;
 }
 
-//================================================================
-// Function : SalomeApp_ListView::tip
-/*! Purpose  : gets current tooltip for list view
- * \retval valid rect in success
- */
-//================================================================
+/*!
+  \return current tooltip for list view
+  \retval valid rect in success
+*/
 QRect SalomeApp_ListView::tip(QPoint aPos,
                        QString& aText,
                        QRect& dspRect,
@@ -429,24 +402,18 @@ QRect SalomeApp_ListView::tip(QPoint aPos,
   return result;
 }
 
-//////////////////////////////////////////////////////////////////////
-// SalomeApp_ListViewItem Class Implementation
-//////////////////////////////////////////////////////////////////////
-
-//================================================================
-// Function : SalomeApp_ListViewItem::SalomeApp_ListViewItem
-/*! Purpose  : constructor*/
-//================================================================
+/*!
+  Constructor
+*/
 SalomeApp_ListViewItem::SalomeApp_ListViewItem(SalomeApp_ListView* parent) :
 QListViewItem( parent )
 {
   init();
 }
 
-//================================================================
-// Function : SalomeApp_ListViewItem::SalomeApp_ListViewItem
-/*! Purpose  : constructor*/
-//================================================================
+/*!
+  Constructor
+*/
 SalomeApp_ListViewItem::SalomeApp_ListViewItem(SalomeApp_ListView*     parent,
                                   SalomeApp_ListViewItem* after) :
 QListViewItem( parent, after )
@@ -454,10 +421,9 @@ QListViewItem( parent, after )
   init();
 }
 
-//================================================================
-// Function : SalomeApp_ListViewItem::SalomeApp_ListViewItem
-/*! Purpose  : constructor*/
-//================================================================
+/*!
+  Constructor
+*/
 SalomeApp_ListViewItem::SalomeApp_ListViewItem(SalomeApp_ListView*     parent,
                                   const QString&    theName,
                                   const bool        theEditable) :
@@ -467,10 +433,9 @@ QListViewItem(parent, theName)
   setEditable(theEditable);
 }
 
-//================================================================
-// Function : SalomeApp_ListViewItem::SalomeApp_ListViewItem
-/*! Purpose  : constructor*/
-//================================================================
+/*!
+  Constructor
+*/
 SalomeApp_ListViewItem::SalomeApp_ListViewItem(SalomeApp_ListView*     parent,
                                   const QString&    theName,
                                   const QString&    theValue,
@@ -481,10 +446,9 @@ QListViewItem(parent, theName, theValue)
   setEditable(theEditable);
 }
 
-//================================================================
-// Function : SalomeApp_ListViewItem::SalomeApp_ListViewItem
-/*! Purpose  : constructor*/
-//================================================================
+/*!
+  Constructor
+*/
 SalomeApp_ListViewItem::SalomeApp_ListViewItem(SalomeApp_ListViewItem* parent,
                                   const QString&    theName,
                                   const bool        theEditable) :
@@ -494,10 +458,9 @@ QListViewItem(parent, theName)
   setEditable(theEditable);
 }
 
-//================================================================
-// Function : SalomeApp_ListViewItem::SalomeApp_ListViewItem
-/*! Purpose  : constructor*/
-//================================================================
+/*!
+  Constructor
+*/
 SalomeApp_ListViewItem::SalomeApp_ListViewItem(SalomeApp_ListViewItem* parent,
                                   SalomeApp_ListViewItem* after,
                                   const QString&    theName,
@@ -508,10 +471,9 @@ QListViewItem(parent, after, theName)
   setEditable(theEditable);
 }
 
-//================================================================
-// Function : SalomeApp_ListViewItem::SalomeApp_ListViewItem
-/*! Purpose  : constructor*/
-//================================================================
+/*!
+  Constructor
+*/
 SalomeApp_ListViewItem::SalomeApp_ListViewItem(SalomeApp_ListView*     parent,
                                   SalomeApp_ListViewItem* after,
                                   const QString&    theName,
@@ -523,10 +485,9 @@ QListViewItem(parent, after, theName)
 }
 
 
-//================================================================
-// Function : SalomeApp_ListViewItem::SalomeApp_ListViewItem
-/*! Purpose  : constructor*/
-//================================================================
+/*!
+  Constructor
+*/
 SalomeApp_ListViewItem::SalomeApp_ListViewItem(SalomeApp_ListViewItem* parent,
                                   const QString&    theName,
                                   const QString&    theValue,
@@ -538,10 +499,9 @@ QListViewItem(parent, theName, theValue)
 }
 
 
-//================================================================
-// Function : SalomeApp_ListViewItem::SalomeApp_ListViewItem
-/*! Purpose  : constructor*/
-//================================================================
+/*!
+  Constructor
+*/
 SalomeApp_ListViewItem::SalomeApp_ListViewItem(SalomeApp_ListViewItem* parent,
                                   SalomeApp_ListViewItem* after,
                                   const QString&    theName,
@@ -553,10 +513,9 @@ QListViewItem(parent, after, theName, theValue)
   setEditable(theEditable);
 }
 
-//================================================================
-// Function : SalomeApp_ListViewItem::SalomeApp_ListViewItem
-/*! Purpose  : constructor*/
-//================================================================
+/*!
+  Constructor
+*/
 SalomeApp_ListViewItem::SalomeApp_ListViewItem(SalomeApp_ListView*     parent,
                                   SalomeApp_ListViewItem* after,
                                   const QString&    theName,
@@ -568,18 +527,16 @@ QListViewItem(parent, after, theName, theValue)
   setEditable(theEditable);
 }
 
-//================================================================
-// Function : SalomeApp_ListViewItem::~SalomeApp_ListViewItem
-/*! Purpose  : destructor*/
-//================================================================
+/*!
+  Destructor
+*/
 SalomeApp_ListViewItem::~SalomeApp_ListViewItem()
 {
 }
 
-//================================================================
-// Function : SalomeApp_ListViewItem::init
-/*! Purpose  : initialization*/
-//================================================================
+/*!
+  Initialization
+*/
 void SalomeApp_ListViewItem::init()
 {
   myEditable    = false;
@@ -590,19 +547,17 @@ void SalomeApp_ListViewItem::init()
   myUserType    = -1;
 }
 
-//================================================================
-// Function : SalomeApp_ListViewItem::getName
-/*! Purpose  : as default returns text in the first column*/
-//================================================================
+/*!
+  \return text in the first column
+*/
 QString SalomeApp_ListViewItem::getName() const
 {
   return ( listView()->columns() > 0 ) ? text(0) : QString("");
 }
 
-//================================================================
-// Function : SalomeApp_ListViewItem::setName
-/*! Purpose  : as default sets text in the first column*/
-//================================================================
+/*!
+  Sets text in the first column
+*/
 UpdateType SalomeApp_ListViewItem::setName(const QString& theName)
 {
   UpdateType aNeedsUpdate = utCancel;
@@ -613,19 +568,17 @@ UpdateType SalomeApp_ListViewItem::setName(const QString& theName)
   return aNeedsUpdate;
 }
 
-//================================================================
-// Function : SalomeApp_ListViewItem::getValue
-/*! Purpose  : as default returns text in the second column*/
-//================================================================
+/*!
+  \return text in the second column
+*/
 QString SalomeApp_ListViewItem::getValue() const
 {
   return ( listView()->columns() > 1 ) ? text(1) : QString("");
 }
 
-//================================================================
-// Function : SalomeApp_ListViewItem::setValue
-/*! Purpose  : as default sets text in the second column*/
-//================================================================
+/*!
+  Sets text in the second column
+*/
 UpdateType SalomeApp_ListViewItem::setValue(const QString& theValue)
 {
   UpdateType aNeedsUpdate = utCancel;
@@ -636,10 +589,9 @@ UpdateType SalomeApp_ListViewItem::setValue(const QString& theValue)
   return aNeedsUpdate;
 }
 
-//================================================================
-// Function : SalomeApp_ListViewItem::fullName
-/*! Purpose  : returns full path to the entity from the root*/
-//================================================================
+/*!
+  \return full path to the entity from the root
+*/
 QString SalomeApp_ListViewItem::fullName()
 {
   QString aFullName = getName();
@@ -651,10 +603,9 @@ QString SalomeApp_ListViewItem::fullName()
   return aFullName;
 }
 
-//================================================================
-// Function : SalomeApp_ListViewItem::openAllLevels
-/*! Purpose  : expands all entities beginning from this level*/
-//================================================================
+/*!
+  expands all entities beginning from this level
+*/
 void SalomeApp_ListViewItem::openAllLevels()
 {
   setOpen(true);
@@ -665,10 +616,9 @@ void SalomeApp_ListViewItem::openAllLevels()
   }
 }
 
-//================================================================
-// Function : SalomeApp_ListViewItem::updateAllLevels
-/*! Purpose  : update all entites beginning from this level*/
-//================================================================
+/*!
+  update all entites beginning from this level
+*/
 void SalomeApp_ListViewItem::updateAllLevels()
 {
   SalomeApp_ListViewItem* aChild = (SalomeApp_ListViewItem*)firstChild();
@@ -678,145 +628,121 @@ void SalomeApp_ListViewItem::updateAllLevels()
   }
 }
 
-//================================================================
-// Function : SalomeApp_EditBox::isEditable
-/*! Purpose  : return true if entity is editable*/
-//================================================================
+/*!
+  \return true if entity is editable
+*/
 bool SalomeApp_ListViewItem::isEditable() const
 {
   return myEditable;
 }
 
-//================================================================
-// Function : SalomeApp_ListViewItem::setEditable
-/*! Purpose  : sets editable flag fo the entity*/
-//================================================================
+/*!
+  Sets editable flag fo the entity
+*/
 void SalomeApp_ListViewItem::setEditable(bool theEditable)
 {
   myEditable = theEditable;
 }
 
-//================================================================
-// Function : SalomeApp_ListViewItem::isAccepted
-/*! Purpose  : returns true if entitiy is accepted after editing*/
-//================================================================
+/*!
+  \return true if entitiy is accepted after editing
+*/
 bool SalomeApp_ListViewItem::isAccepted() const
 {
   return myAccepted;
 }
 
-//================================================================
-// Function : SalomeApp_ListViewItem::setAccepted
-/*! Purpose  : set entitiy accepted or not after editing*/
-//================================================================
+/*!
+  Sets entitiy accepted or not after editing
+*/
 void SalomeApp_ListViewItem::setAccepted(bool theAccepted)
 {
   myAccepted = theAccepted;
 }
 
-//================================================================
-// Function : SalomeApp_ListViewItem::getEditingType
-/*! Purpose  : 
- * \retval type of edit control (default is edit box)
- *     \li 0 - edit box
- *     \li 1 - combo box
- *     \li 2 - editable combo box
- */
-//================================================================
+/*!
+ \retval type of edit control (default is edit box)
+      \li 0 - edit box
+      \li 1 - combo box
+      \li 2 - editable combo box
+*/
 int SalomeApp_ListViewItem::getEditingType()
 {
   return myEditingType;
 }
 
-//================================================================
-// Function : SalomeApp_ListViewItem::setEditingType
-/*! Purpose  : 
- * \retval type of edit control (negative value means none)
- *     \li 0 - edit box
- *     \li 1 - combo box
- *     \li 2 - editable combo box
- */
-//================================================================
+/*!
+ \retval type of edit control (negative value means none)
+     \li 0 - edit box
+     \li 1 - combo box
+     \li 2 - editable combo box
+*/
 void SalomeApp_ListViewItem::setEditingType(const int type)
 {
   myEditingType = type;
 }
 
-//================================================================
-// Function : SalomeApp_ListViewItem::getEditedColumn
-// Purpose  : 
 /*! \retval edited column, default is last column
- *   negative value means there are no editable columns
- */
-//================================================================
+    negative value means there are no editable columns
+*/
 int SalomeApp_ListViewItem::getEditedColumn()
 {
   return listView()->columns()-1;
 }
 
-//================================================================
-// Function : SalomeApp_ListViewItem::getValueType
-// Purpose  : 
-/*!\retval type of edited value (string, int, double)
- * default is string
- */
-//================================================================
+/*!
+  \retval type of edited value (string, int, double)
+   default is string
+*/
 int SalomeApp_ListViewItem::getValueType()
 {
   return myValueType;
 }
 
-//================================================================
-// Function : SalomeApp_ListViewItem::setValueType
-/*! Purpose  : sets type of edited value*/
-//================================================================
+/*!
+  Sets type of edited value
+*/
 void SalomeApp_ListViewItem::setValueType(const int valueType)
 {
   myValueType = valueType;
 }
 
-//================================================================
-// Function : SalomeApp_ListViewItem::getUserType
-/*! Purpose  : sets type of edited value*/
-//================================================================
+/*!
+  Sets type of edited value
+*/
 int SalomeApp_ListViewItem::getUserType()
 {
   return myUserType;
 }
 
-//================================================================
-// Function : SalomeApp_ListViewItem::setUserType
-/*! Purpose  : sets type of edited value*/
-//================================================================
+/*!
+  Sets type of edited value
+*/
 void SalomeApp_ListViewItem::setUserType(const int userType)
 {
   myUserType = userType;
 }
 
-//================================================================
-// Function : SalomeApp_ListViewItem::getButtons
-/*! Purpose  : returns buttons for editing widget (Apply (V), Cancel (X))
- * default is both buttons
- */
-//================================================================
+/*!
+  \return buttons for editing widget (Apply (V), Cancel (X))
+   default is both buttons
+*/
 int SalomeApp_ListViewItem::getButtons()
 {
   return myButtons;
 }
 
-//================================================================
-// Function : SalomeApp_ListViewItem::getButtons
-/*! Purpose  : sets buttons for editing widget (Apply (V), Cancel (X))*/
-//================================================================
+/*!
+  Sets buttons for editing widget (Apply (V), Cancel (X))
+*/
 void SalomeApp_ListViewItem::setButtons(const int buttons)
 {
   myButtons = buttons;
 }
 
-//================================================================
-// Function : SalomeApp_ListViewItem::startEditing
-/*! Purpose  : creates control for editing and fills it with values*/
-//================================================================
+/*!
+  Creates control for editing and fills it with values
+*/
 SalomeApp_EntityEdit* SalomeApp_ListViewItem::startEditing()
 {
   SalomeApp_EntityEdit* aWidget = 0;
@@ -842,10 +768,9 @@ SalomeApp_EntityEdit* SalomeApp_ListViewItem::startEditing()
   return aWidget;
 }
 
-//================================================================
-// Function : SalomeApp_ListViewItem::fillWidgetWithValues
-/*! Purpose  : fills widget with initial values (list or single value)*/
-//================================================================
+/*!
+  Fills widget with initial values (list or single value)
+*/
 void SalomeApp_ListViewItem::fillWidgetWithValues(SalomeApp_EntityEdit* theWidget)
 {
   int anEditColumn = getEditedColumn();
@@ -853,10 +778,9 @@ void SalomeApp_ListViewItem::fillWidgetWithValues(SalomeApp_EntityEdit* theWidge
     theWidget->insertItem(text(anEditColumn), true);
 }
 
-//================================================================
-// Function : SalomeApp_ListViewItem::finishEditing
-/*! Purpose  : finishes editing of entity*/
-//================================================================
+/*!
+  Finishes editing of entity
+*/
 UpdateType SalomeApp_ListViewItem::finishEditing(SalomeApp_EntityEdit* theWidget)
 {
   UpdateType aNeedsUpdate = utCancel;
@@ -881,10 +805,9 @@ UpdateType SalomeApp_ListViewItem::finishEditing(SalomeApp_EntityEdit* theWidget
   return aNeedsUpdate;
 }
 
-//================================================================
-// Function : SalomeApp_ListViewItem::tipRect
-/*! Purpose  : calculates rectangle which should contain item's tip*/
-//================================================================
+/*!
+  Calculates rectangle which should contain item's tip
+*/
 QRect SalomeApp_ListViewItem::tipRect()
 {
   QRect aRect = QRect(-1, -1, -1, -1);
@@ -906,10 +829,9 @@ QRect SalomeApp_ListViewItem::tipRect()
   return aRect;
 }
 
-//================================================================
-// Function : SalomeApp_ListViewItem::tipText
-/*! Purpose  : returns text for tooltip*/
-//================================================================
+/*!
+  \return text for tooltip
+*/
 QString SalomeApp_ListViewItem::tipText()
 {
   QString aText = getName();
@@ -918,10 +840,9 @@ QString SalomeApp_ListViewItem::tipText()
   return aText;
 }
 
-//================================================================
-// Function : SalomeApp_ListViewItem::textRect
-/*! Purpose  : calculates rect of item text in viewport coordinates*/
-//================================================================
+/*!
+  Calculates rect of item text in viewport coordinates
+*/
 QRect SalomeApp_ListViewItem::textRect(const int column) const
 {
   QRect aItemRect = listView()->itemRect( this );
@@ -956,10 +877,9 @@ QRect SalomeApp_ListViewItem::textRect(const int column) const
   return theResult;
 }
 
-//================================================================
-// Function : SalomeApp_ListViewItem::itemRect
-/*! Purpose  : calculates rect of item data in viewport coordinates*/
-//================================================================
+/*!
+  Calculates rect of item data in viewport coordinates
+*/
 QRect SalomeApp_ListViewItem::itemRect(const int column) const
 {
   QRect aItemRect = listView()->itemRect( this );
@@ -991,23 +911,17 @@ QRect SalomeApp_ListViewItem::itemRect(const int column) const
   return theResult;
 }
 
-//////////////////////////////////////////////////////////////////////
-// SalomeApp_EditBox class implementation
-//////////////////////////////////////////////////////////////////////
-
-//================================================================
-// Function : SalomeApp_EditBox::SalomeApp_EditBox
-/*! Purpose  : constructor*/
-//================================================================
+/*!
+  Constructor
+*/
 SalomeApp_EditBox::SalomeApp_EditBox(QWidget* parent) :
 QLineEdit(parent)
 {
 }
 
-//================================================================
-// Function : SalomeApp_EditBox::keyPressEvent
-/*! Purpose  : event filter for key pressing*/
-//================================================================
+/*!
+  Event filter for key pressing
+*/
 void SalomeApp_EditBox::keyPressEvent( QKeyEvent *e )
 {
   if ( e->key() == Key_Escape )
@@ -1017,23 +931,18 @@ void SalomeApp_EditBox::keyPressEvent( QKeyEvent *e )
   e->accept();
 }
 
-//////////////////////////////////////////////////////////////////////
-// SalomeApp_ComboBox class implementation
-//////////////////////////////////////////////////////////////////////
 
-//================================================================
-// Function : SalomeApp_ComboBox::SalomeApp_ComboBox
-/*! Purpose  : constructor*/
-//================================================================
+/*!
+  Constructor
+*/
 SalomeApp_ComboBox::SalomeApp_ComboBox(bool rw, QWidget* parent, const char* name) :
 QComboBox(rw, parent, name)
 {
 }
 
-//================================================================
-// Function : SalomeApp_ComboBox::findItem
-/*! Purpose  : searches item in list and returns its index*/
-//================================================================
+/*!
+  Searches item in list and returns its index
+*/
 int SalomeApp_ComboBox::findItem(const QString& theText)
 {
   for (int i = 0; i < count(); i++)
@@ -1042,10 +951,9 @@ int SalomeApp_ComboBox::findItem(const QString& theText)
   return -1;
 }
 
-//================================================================
-// Function : SalomeApp_ComboBox::insertItem
-/*! Purpose  : adds item in combo box*/
-//================================================================
+/*!
+  Adds item in combo box
+*/
 void SalomeApp_ComboBox::insertItem(const QString& theValue,
                              int            theIndex)
 {
@@ -1053,20 +961,18 @@ void SalomeApp_ComboBox::insertItem(const QString& theValue,
     QComboBox::insertItem(theValue, theIndex);
 }
 
-//================================================================
-// Function : SalomeApp_ComboBox::insertList
-/*! Purpose  : adds list of items in combo box*/
-//================================================================
+/*!
+  Adds list of items in combo box
+*/
 void SalomeApp_ComboBox::insertList(const QStringList& theList)
 {
   for (unsigned i = 0; i < theList.count(); i++)
     insertItem(theList[i]);
 }
 
-//================================================================
-// Function : SalomeApp_ComboBox::insertItem
-/*! Purpose  : adds item in combo box*/
-//================================================================
+/*!
+  Adds item in combo box
+*/
 void SalomeApp_ComboBox::insertItem(const int theValue)
 {
   int aNum;
@@ -1083,20 +989,18 @@ void SalomeApp_ComboBox::insertItem(const int theValue)
   insertItem(QString::number(theValue));
 }
 
-//================================================================
-// Function : SalomeApp_ComboBox::insertList
-/*! Purpose  : adds list of items in combo box*/
-//================================================================
+/*!
+  Adds list of items in combo box
+*/
 void SalomeApp_ComboBox::insertList(const TColStd_ListOfInteger& theList)
 {
   for (TColStd_ListIteratorOfListOfInteger aIter(theList); aIter.More(); aIter.Next())
     insertItem(aIter.Value());
 }
 
-//================================================================
-// Function : SalomeApp_ComboBox::insertItem
-/*! Purpose  : adds item in combo box*/
-//================================================================
+/*!
+  Adds item in combo box
+*/
 void SalomeApp_ComboBox::insertItem(const double theValue)
 {
   double aNum;
@@ -1113,29 +1017,23 @@ void SalomeApp_ComboBox::insertItem(const double theValue)
   insertItem(QString::number(theValue));
 }
 
-//================================================================
-// Function : SalomeApp_ComboBox::insertList
-/*! Purpose  : adds list of items in combo box*/
-//================================================================
+/*!
+  Adds list of items in combo box
+*/
 void SalomeApp_ComboBox::insertList(const TColStd_ListOfReal& theList)
 {
   for (TColStd_ListIteratorOfListOfReal aIter(theList); aIter.More(); aIter.Next())
     insertItem(aIter.Value());
 }
 
-//////////////////////////////////////////////////////////////////////
-// SalomeApp_EntityEdit class implementation
-//////////////////////////////////////////////////////////////////////
-
 #include <qlayout.h>
 
 #define MIN_COMBO_WIDTH     1
 #define MIN_EDIT_WIDTH      1
 
-//================================================================
-// Function : SalomeApp_EntityEdit::SalomeApp_EntityEdit
-/*! Purpose  : constructor*/
-//================================================================
+/*!
+  Constructor
+*/
 SalomeApp_EntityEdit::SalomeApp_EntityEdit(QWidget* parent,
                               int      controlType,
                               int      valueType,
@@ -1224,18 +1122,16 @@ myCancelBtn(0)
   }
 }
 
-//================================================================
-// Function : SalomeApp_EntityEdit::~SalomeApp_EntityEdit
-/*! Purpose  : destructor*/
-//================================================================
+/*!
+  Destructor
+*/
 SalomeApp_EntityEdit::~SalomeApp_EntityEdit()
 {
 }
 
-//================================================================
-// Function : SalomeApp_EntityEdit::clear
-/*! Purpose  : clears edit/combo box*/
-//================================================================
+/*!
+  Clears edit/combo box
+*/
 void SalomeApp_EntityEdit::clear()
 {
   if (myEdit)
@@ -1244,10 +1140,9 @@ void SalomeApp_EntityEdit::clear()
     myCombo->clear();
 }
 
-//================================================================
-// Function : SalomeApp_EntityEdit::getText
-/*! Purpose  : returns current text in edit box or combo box*/
-//================================================================
+/*!
+  \return current text in edit box or combo box
+*/
 QString SalomeApp_EntityEdit::getText()
 {
   if (myEdit)
@@ -1258,10 +1153,9 @@ QString SalomeApp_EntityEdit::getText()
     return "";
 }
 
-//================================================================
-// Function : SalomeApp_EntityEdit::setText
-/*! Purpose  : sets text*/
-//================================================================
+/*!
+  Sets text
+*/
 void SalomeApp_EntityEdit::setText(const QString& theText)
 {
   myString = theText;
@@ -1276,12 +1170,9 @@ void SalomeApp_EntityEdit::setText(const QString& theText)
   }
 }
 
-//================================================================
-// Function : SalomeApp_EntityEdit::insertItem
-/*! Purpose  : adds item in combo box,
- *            sets it current if theSetCurrent is true
- */
-//================================================================
+/*!
+  Adds item in combo box, sets it current if theSetCurrent is true
+*/
 void SalomeApp_EntityEdit::insertItem(const QString& theValue,
                                bool           theSetCurrent,
                                int            theOrder)
@@ -1302,12 +1193,9 @@ void SalomeApp_EntityEdit::insertItem(const QString& theValue,
     setText(theValue);
 }
 
-//================================================================
-// Function : SalomeApp_EntityEdit::insertList
-/*! Purpose  : adds items in combo box,
- *            sets item theCurrent as current
- */
-//================================================================
+/*!
+  Adds items in combo box, sets item theCurrent as current
+*/
 void SalomeApp_EntityEdit::insertList(const QStringList& theList,
                                const int          theCurrent)
 {
@@ -1317,12 +1205,9 @@ void SalomeApp_EntityEdit::insertList(const QStringList& theList,
     setText(theList[theCurrent]);
 }
 
-//================================================================
-// Function : SalomeApp_EntityEdit::insertItem
-/*! Purpose  : adds item in combo box,
- *            sets it current if theSetCurrent is true
- */
-//================================================================
+/*!
+  Adds item in combo box, sets it current if theSetCurrent is true
+*/
 void SalomeApp_EntityEdit::insertItem(const int theValue,
                                bool      theSetCurrent)
 {
@@ -1333,12 +1218,9 @@ void SalomeApp_EntityEdit::insertItem(const int theValue,
     setText(QString::number(theValue));
 }
 
-//================================================================
-// Function : SalomeApp_EntityEdit::insertList
-/*! Purpose  : adds items in combo box,
- *            sets item theCurrent as current
- */
-//================================================================
+/*!
+  Adds items in combo box, sets item theCurrent as current
+*/
 void SalomeApp_EntityEdit::insertList(const TColStd_ListOfInteger& theList,
                                const int                    theCurrent)
 {
@@ -1354,11 +1236,9 @@ void SalomeApp_EntityEdit::insertList(const TColStd_ListOfInteger& theList,
   }
 }
 
-//================================================================
-// Function : SalomeApp_EntityEdit::insertItem
-// Purpose  : adds item in combo box,
-//            sets it current if theSetCurrent is true
-//================================================================
+/*!
+  Adds item in combo box, sets it current if theSetCurrent is true
+*/
 void SalomeApp_EntityEdit::insertItem(const double theValue,
                                bool         theSetCurrent)
 {
@@ -1369,12 +1249,9 @@ void SalomeApp_EntityEdit::insertItem(const double theValue,
     setText(QString::number(theValue));
 }
 
-//================================================================
-// Function : SalomeApp_EntityEdit::insertList
-/*! Purpose  : adds items in combo box,
- *            sets item theCurrent as current
- */
-//================================================================
+/*!
+  Adds items in combo box, sets item theCurrent as current
+*/
 void SalomeApp_EntityEdit::insertList(const TColStd_ListOfReal& theList,
                                const int                 theCurrent)
 {
@@ -1390,10 +1267,9 @@ void SalomeApp_EntityEdit::insertList(const TColStd_ListOfReal& theList,
   }
 }
 
-//================================================================
-// Function : SalomeApp_EntityEdit::getControl
-/*! Purpose  : gets actual widget*/
-//================================================================
+/*! 
+  \return actual widget
+*/
 QWidget* SalomeApp_EntityEdit::getControl()
 {
   if (myEdit)
@@ -1404,10 +1280,9 @@ QWidget* SalomeApp_EntityEdit::getControl()
     return 0;
 }
 
-//================================================================
-// Function : SalomeApp_EntityEdit::setFocus
-/*! Purpose  : redirect focus to corresponding widget*/
-//================================================================
+/*!
+  redirect focus to corresponding widget
+*/
 void SalomeApp_EntityEdit::setFocus()
 {
   if (myEdit) {
@@ -1420,10 +1295,9 @@ void SalomeApp_EntityEdit::setFocus()
   }
 }
 
-//================================================================
-// Function : SalomeApp_EntityEdit::setValidator
-/*! Purpose  : sets validator for the control*/
-//================================================================
+/*!
+  Sets validator for the control
+*/
 void SalomeApp_EntityEdit::setValidator(const QValidator* theValidator)
 {
   if (myEdit)
@@ -1432,10 +1306,9 @@ void SalomeApp_EntityEdit::setValidator(const QValidator* theValidator)
     myCombo->setValidator(theValidator);
 }
 
-//================================================================
-// Function : SalomeApp_EntityEdit::keyPressEvent
-/*! Purpose  : event filter for KeyPress event*/
-//================================================================
+/*!
+  Event filter for KeyPress event
+*/
 void SalomeApp_EntityEdit::keyPressEvent( QKeyEvent * e)
 {
   if ( (e->key() == Key_Enter ||
@@ -1445,19 +1318,17 @@ void SalomeApp_EntityEdit::keyPressEvent( QKeyEvent * e)
     onCancel();
 }
 
-//================================================================
-// Function : SalomeApp_EntityEdit::onComboActivated
-/*! Purpose  : called when item activated in combo box*/
-//================================================================
+/*!
+  Called when item activated in combo box
+*/
 void SalomeApp_EntityEdit::onComboActivated(const QString& theText)
 {
   onTextChanged(theText);
 }
 
-//================================================================
-// Function : SalomeApp_EntityEdit::onTextChanged
-/*! Purpose  : slot, called when text changed in line edit*/
-//================================================================
+/*!
+  Slot, called when text changed in line edit
+*/
 void SalomeApp_EntityEdit::onTextChanged(const QString& theText)
 {
   if (myApplyBtn)
@@ -1466,10 +1337,9 @@ void SalomeApp_EntityEdit::onTextChanged(const QString& theText)
     myCancelBtn->setEnabled(!(theText == myString));
 }
 
-//================================================================
-// Function : SalomeApp_EntityEdit::onCancel
-/*! Purpose  : slot, called when user presses Cancel button*/
-//================================================================
+/*!
+  Slot, called when user presses Cancel button
+*/
 void SalomeApp_EntityEdit::onCancel()
 {
   setText(myString);
@@ -1480,10 +1350,9 @@ void SalomeApp_EntityEdit::onCancel()
   emit escapePressed();
 }
 
-//================================================================
-// Function : SalomeApp_EntityEdit::onApply
-/*! Purpose  : slot, called when user presses Apply button*/
-//================================================================
+/*!
+  Slot, called when user presses Apply button
+*/
 void SalomeApp_EntityEdit::onApply()
 {
   myString = getText();
@@ -1494,10 +1363,9 @@ void SalomeApp_EntityEdit::onApply()
   emit returnPressed();
 }
 
-//================================================================
-// Function : SalomeApp_EntityEdit::showButtons
-/*! Purpose  : shows/hides buttons*/
-//================================================================
+/*!
+  Shows/hides buttons
+*/
 void SalomeApp_EntityEdit::showButtons(bool show)
 {
   if (myApplyBtn)
@@ -1506,10 +1374,9 @@ void SalomeApp_EntityEdit::showButtons(bool show)
     show ? myCancelBtn->show() : myCancelBtn->hide();
 }
 
-//================================================================
-// Function : SalomeApp_EntityEdit::setDuplicatesEnabled
-/*! Purpose  : enables/disables data duplication (for combo box)*/
-//================================================================
+/*!
+  Enables/disables data duplication (for combo box)
+*/
 void SalomeApp_EntityEdit::setDuplicatesEnabled(bool enabled)
 {
   if (myCombo)
index e7b7552cf3ca30366ee972f3558bac3351424d52..4e54e423c532b1640bbd670670915eb88f549b8e 100644 (file)
@@ -44,10 +44,10 @@ enum UpdateType {
 class SalomeApp_ListViewItem;
 class SalomeApp_EntityEdit;
 
-//================================================================
-// Class        : SalomeApp_ListView
-// Description  : parent class for Data Viewer and Properties Viewer
-//================================================================
+/*!
+  \class SalomeApp_ListView
+  parent class for Data Viewer and Properties Viewer
+*/
 class SalomeApp_ListView : public QtxListView , public SUIT_PopupClient  {
   
   Q_OBJECT
index b22992cf4daadf35ef64e9f05c12719cf3875d05..9afbe27e491f286521ec3371ab3a4a5fc82b65e5 100644 (file)
@@ -22,8 +22,6 @@
 #include <SALOME_InteractiveObject.hxx>
 //#include <SALOME_Actor.h>
 
-//#include "SALOMEDS_IParameters.hxx"
-
 #include <SUIT_Session.h>
 #include <SUIT_ViewModel.h>
 
@@ -67,6 +65,12 @@ LightApp_Selection* SalomeApp_Module::createSelection() const
   return LightApp_Module::createSelection();
 }
 
+/*!
+  Converts objects-containers to list of objects, those are contained
+  Other objects must be added without conversion
+  \param source - source list of objects
+  \param dest - list of converted objects
+*/
 void SalomeApp_Module::extractContainers( const SALOME_ListIO& source, SALOME_ListIO& dest ) const
 {
   SalomeApp_Study* study = dynamic_cast<SalomeApp_Study*>( SUIT_Session::session()->activeApplication()->activeStudy() );
index 19bc57559e4d7651cad1c77a8bdfbcc80ffd6fa5..88c6b5fa58fffa2f635759ba252b3f59ac8b29db 100755 (executable)
@@ -108,12 +108,12 @@ bool SalomeApp_PyInterp::initContext()
   return true;
 }
 
+/*!
+  Do nothing
+  The initialization has been done in main
+ */
 void SalomeApp_PyInterp::init_python()
 {
-  /*
-   * Do nothing
-   * The initialization has been done in main
-   */
   MESSAGE("PyInterp_base::init_python");
   ASSERT(KERNEL_PYTHON::_gtstate); // initialisation in main
   SCRUTE(KERNEL_PYTHON::_gtstate);
index fa686e4b2e71bba36e7d8809b0e2c7c40f921b8f..3d693f3742b3f7480dfc72359334c905b3f300dc 100644 (file)
@@ -44,7 +44,8 @@
 
 #include "SALOMEDS_Tool.hxx"
 
-#include "SALOMEDS_IParameters.hxx"
+#include "SALOMEDSClient_ClientFactory.hxx"
+#include "SALOMEDSClient_IParameters.hxx"
 
 #include <SALOMEconfig.h>
 #include CORBA_SERVER_HEADER(SALOME_Exception)
@@ -108,10 +109,10 @@ void SalomeApp_Study::createDocument()
   emit created( this );
 }
 
-//=======================================================================
-// name    : openDocument
-/*! Purpose : Open document*/
-//=======================================================================
+/*!
+  Opens document
+  \param theFileName - name of file
+*/
 bool SalomeApp_Study::openDocument( const QString& theFileName )
 {
   MESSAGE( "openDocument" );
@@ -151,10 +152,10 @@ bool SalomeApp_Study::openDocument( const QString& theFileName )
   return res;
 }
 
-//=======================================================================
-// name    : loadDocument
-/*! Purpose : Connects GUI study to SALOMEDS one already loaded into StudyManager*/
-//=======================================================================
+/*!
+  Connects GUI study to SALOMEDS one already loaded into StudyManager
+  \param theStudyName - name of study
+*/
 bool SalomeApp_Study::loadDocument( const QString& theStudyName )
 {
   MESSAGE( "loadDocument" );
@@ -197,10 +198,10 @@ bool SalomeApp_Study::loadDocument( const QString& theStudyName )
   return res;
 }
 
-//=======================================================================
-// name    : saveDocumentAs
-/*! Purpose : Save document*/
-//=======================================================================
+/*!
+  Saves document
+  \param theFileName - name of file
+*/
 bool SalomeApp_Study::saveDocumentAs( const QString& theFileName )
 {
   bool store = application()->resourceMgr()->booleanValue( "Study", "store_visual_state", true );
@@ -223,13 +224,14 @@ bool SalomeApp_Study::saveDocumentAs( const QString& theFileName )
   if( !resMgr )
     return false;
 
-  bool isMultiFile = resMgr->booleanValue( "Study", "multi_file", false ),
-       isAscii = resMgr->booleanValue( "Study", "ascii_file", false ),
-       res = isAscii ? 
-        SalomeApp_Application::studyMgr()->SaveAsASCII( theFileName.latin1(), studyDS(), isMultiFile ) :
-        SalomeApp_Application::studyMgr()->SaveAs     ( theFileName.latin1(), studyDS(), isMultiFile ) &&
-    CAM_Study::saveDocumentAs( theFileName ) &&  //SRN: BugID IPAL9377, removed usage of uninitialized variable <res>
-    saveStudyData(theFileName);
+  bool isMultiFile = resMgr->booleanValue( "Study", "multi_file", false );
+  bool isAscii = resMgr->booleanValue( "Study", "ascii_file", false );
+  bool res = (isAscii ? 
+    SalomeApp_Application::studyMgr()->SaveAsASCII( theFileName.latin1(), studyDS(), isMultiFile ) :
+    SalomeApp_Application::studyMgr()->SaveAs     ( theFileName.latin1(), studyDS(), isMultiFile ))
+    && CAM_Study::saveDocumentAs( theFileName );
+  
+  res = res && saveStudyData(theFileName);
 
   if ( res )
     emit saved( this );
@@ -237,10 +239,9 @@ bool SalomeApp_Study::saveDocumentAs( const QString& theFileName )
   return res;
 }
 
-//=======================================================================
-// name    : saveDocument
-/*! Purpose : Save document*/
-//=======================================================================
+/*!
+  Saves previously opened document
+*/
 bool SalomeApp_Study::saveDocument()
 {
   bool store = application()->resourceMgr()->booleanValue( "Study", "store_visual_state", true );
@@ -263,11 +264,11 @@ bool SalomeApp_Study::saveDocument()
   if( !resMgr )
     return false;
 
-  bool isMultiFile = resMgr->booleanValue( "Study", "multi_file", false ),
-       isAscii = resMgr->booleanValue( "Study", "ascii_file", false ),
-       res = isAscii ? 
-        SalomeApp_Application::studyMgr()->SaveASCII( studyDS(), isMultiFile ) :
-         SalomeApp_Application::studyMgr()->Save     ( studyDS(), isMultiFile ) && CAM_Study::saveDocument();
+  bool isMultiFile = resMgr->booleanValue( "Study", "multi_file", false );
+  bool isAscii = resMgr->booleanValue( "Study", "ascii_file", false );
+  bool res = (isAscii ? 
+    SalomeApp_Application::studyMgr()->SaveASCII( studyDS(), isMultiFile ) :
+    SalomeApp_Application::studyMgr()->Save     ( studyDS(), isMultiFile )) && CAM_Study::saveDocument();
 
   res = res && saveStudyData(studyName());
   if ( res )
@@ -276,10 +277,9 @@ bool SalomeApp_Study::saveDocument()
   return res;
 }
 
-//================================================================
-// Function : closeDocument
-/*! Purpose  : Close document*/
-//================================================================
+/*!
+  Closes document
+*/
 void SalomeApp_Study::closeDocument(bool permanently)
 {
   LightApp_Study::closeDocument(permanently);
@@ -294,10 +294,9 @@ void SalomeApp_Study::closeDocument(bool permanently)
   }
 }
 
-//================================================================
-// Function : isModified
-// Purpose  : 
-//================================================================
+/*!
+  \return true, if study is modified in comparison with last open/save
+*/
 bool SalomeApp_Study::isModified() const
 {
   bool isAnyChanged = studyDS() && studyDS()->IsModified();
@@ -307,23 +306,23 @@ bool SalomeApp_Study::isModified() const
   return isAnyChanged; 
 }
 
-//================================================================
-// Function : isSaved
-/*! Purpose  : Check: data model is saved?*/
-//================================================================
+/*!
+  \return if data model is saved
+*/
 bool SalomeApp_Study::isSaved() const
 {
   bool isAllSaved = studyDS() && studyDS()->GetPersistentReference().size();
   if (!isAllSaved)
-    isAllSaved = LightApp_Study::isModified();
+    isAllSaved = LightApp_Study::isSaved();
 
   return isAllSaved; 
 }
 
-//=======================================================================
-// name    : saveModuleData
-/*! Purpose : save list file for module 'theModuleName' */
-//=======================================================================
+/*!
+  Saves data of module
+  \param theModuleName - name of module
+  \param theListOfFiles - list of files to be saved
+*/
 void SalomeApp_Study::saveModuleData( QString theModuleName, QStringList theListOfFiles )
 {
   int aNb = theListOfFiles.count();
@@ -341,10 +340,11 @@ void SalomeApp_Study::saveModuleData( QString theModuleName, QStringList theList
   SetListOfFiles(theModuleName, aListOfFiles);
 }
 
-//=======================================================================
-// name    : openModuleData
-/*! Purpose : gets list of file for module 'theModuleNam' */
-//=======================================================================
+/*!
+  Loads data of module
+  \param theModuleName - name of module
+  \param theListOfFiles - list of files to be loaded
+*/
 void SalomeApp_Study::openModuleData( QString theModuleName, QStringList& theListOfFiles )
 {
   std::vector<std::string> aListOfFiles =  GetListOfFiles( theModuleName );
@@ -360,10 +360,9 @@ void SalomeApp_Study::openModuleData( QString theModuleName, QStringList& theLis
     theListOfFiles.append(aListOfFiles[i+1].c_str());
 }
 
-//=======================================================================
-// name    : saveStudyData
-/*! Purpose : save data from study */
-//=======================================================================
+/*!
+  Saves data from study
+*/
 bool SalomeApp_Study::saveStudyData( const QString& theFileName )
 {
   ModelList list; dataModels( list );
@@ -374,10 +373,9 @@ bool SalomeApp_Study::saveStudyData( const QString& theFileName )
   return true;
 }
 
-//=======================================================================
-// name    : openStudyData
-/*! Purpose : open data for study */
-//=======================================================================
+/*!
+  Loads data for study
+*/
 bool SalomeApp_Study::openStudyData( const QString& theFileName )
 {
  return true;
@@ -404,7 +402,7 @@ void SalomeApp_Study::dataModelInserted (const CAM_DataModel* dm)
 }
 
 /*!
- Create SComponent for module, using default engine (CORBAless)
 Create SComponent for module, using default engine (CORBAless)
 */
 void SalomeApp_Study::addComponent(const CAM_DataModel* dm)
 {
@@ -522,10 +520,10 @@ QString SalomeApp_Study::newStudyName() const
   return newName;
 }
 
-//================================================================
-// Function : GetListOfFiles
-/*! Purpose  : to be used by CORBAless modules*/
-//================================================================
+/*!
+  \return list of files used by module: to be used by CORBAless modules
+  \param theModuleName - name of module
+*/
 std::vector<std::string> SalomeApp_Study::GetListOfFiles( const char* theModuleName  ) const
 {
   SalomeApp_Engine_i* aDefaultEngine = SalomeApp_Engine_i::GetInstance();
@@ -536,10 +534,11 @@ std::vector<std::string> SalomeApp_Study::GetListOfFiles( const char* theModuleN
   return aListOfFiles;
 }
 
-//================================================================
-// Function : SetListOfFiles
-/*! Purpose  : to be used by CORBAless modules*/
-//================================================================
+/*!
+  Sets list of files used by module: to be used by CORBAless modules
+  \param theModuleName - name of module
+  \param theListOfFiles - list of files
+*/
 void SalomeApp_Study::SetListOfFiles ( const char* theModuleName,
                                        const std::vector<std::string> theListOfFiles )
 {
@@ -548,10 +547,9 @@ void SalomeApp_Study::SetListOfFiles ( const char* theModuleName,
     aDefaultEngine->SetListOfFiles(theListOfFiles, id(), theModuleName);
 }
 
-//================================================================
-// Function : GetTmpDir
-/*! Purpose  : to be used by CORBAless modules*/
-//================================================================
+/*!
+  \return temporary directory for saving files of modules
+*/
 std::string SalomeApp_Study::GetTmpDir ( const char* theURL, const bool  isMultiFile )
 {
   std::string anURLDir = SALOMEDS_Tool::GetDirFromPath(theURL);
@@ -559,10 +557,9 @@ std::string SalomeApp_Study::GetTmpDir ( const char* theURL, const bool  isMulti
   return aTmpDir;
 }
 
-//================================================================
-// Function : RemoveTemporaryFiles
-/*! Purpose  : to be used by CORBAless modules*/
-//================================================================
+/*!
+  Removes temporary files
+*/
 void SalomeApp_Study::RemoveTemporaryFiles ( const char* theModuleName, const bool isMultiFile ) const
 {
   if (isMultiFile)
@@ -582,8 +579,10 @@ void SalomeApp_Study::RemoveTemporaryFiles ( const char* theModuleName, const bo
   }
 }
 
-// END: methods to be used by CORBAless modules
-
+/*!
+  Deletes all references to object
+  \param obj - object
+*/
 void SalomeApp_Study::deleteReferencesTo( _PTR( SObject ) obj )
 {
   _PTR(StudyBuilder) sb = studyDS()->NewBuilder();
@@ -599,10 +598,10 @@ void SalomeApp_Study::deleteReferencesTo( _PTR( SObject ) obj )
   }
 }
 
-//================================================================
-// Function : referencedToEntry
-/*! Purpose  : Return referenced entry from entry*/
-//================================================================
+/*!
+  \return real entry by entry of reference
+  \param entry - entry of reference object
+*/
 QString SalomeApp_Study::referencedToEntry( const QString& entry ) const
 {
   _PTR(SObject) obj = studyDS()->FindObjectID( entry.latin1() );
@@ -613,10 +612,9 @@ QString SalomeApp_Study::referencedToEntry( const QString& entry ) const
   return LightApp_Study::referencedToEntry( entry );
 }
 
-//================================================================
-// Function : componentDataType
-/*! Purpose  : Return component data type from entry*/
-//================================================================
+/*!
+  \return component data type for entry
+*/
 QString SalomeApp_Study::componentDataType( const QString& entry ) const
 {
   _PTR(SObject) obj( studyDS()->FindObjectID( entry.latin1() ) );
@@ -625,20 +623,18 @@ QString SalomeApp_Study::componentDataType( const QString& entry ) const
   return obj->GetFatherComponent()->ComponentDataType().c_str();
 }
 
-//================================================================
-// Function : componentDataType
-/*! Purpose  : Return component data type from entry*/
-//================================================================
+/*!
+  \return true if entry corresponds to component
+*/
 bool SalomeApp_Study::isComponent( const QString& entry ) const
 {
   _PTR(SObject) obj( studyDS()->FindObjectID( entry.latin1() ) );
   return obj && QString( obj->GetID().c_str() ) == obj->GetFatherComponent()->GetID().c_str();
 }
 
-//================================================================
-// Function : children
-/*! Purpose : Return entries of children of object*/
-//================================================================
+/*!
+  \return entries of object children
+*/
 void SalomeApp_Study::children( const QString& entry, QStringList& child_entries ) const
 {
   _PTR(SObject) SO = studyDS()->FindObjectID( entry.latin1() );
@@ -652,6 +648,10 @@ void SalomeApp_Study::children( const QString& entry, QStringList& child_entries
   }
 }
 
+/*!
+  Fills list with components names
+  \param comp - list to be filled
+*/
 void SalomeApp_Study::components( QStringList& comps ) const
 {
   for( _PTR(SComponentIterator) it ( studyDS()->NewComponentIterator() ); it->More(); it->Next() ) 
@@ -663,11 +663,9 @@ void SalomeApp_Study::components( QStringList& comps ) const
   }
 }
 
-//================================================================
-// Function : getSavePoints
-/*! Purpose : returns a list of saved points' IDs
+/*!
+  \return a list of saved points' IDs
 */
-//================================================================
 std::vector<int> SalomeApp_Study::getSavePoints()
 {
   std::vector<int> v;
@@ -687,11 +685,9 @@ std::vector<int> SalomeApp_Study::getSavePoints()
   return v;
 }
 
-//================================================================
-// Function :removeSavePoint
-/*! Purpose : remove a given save point
+/*!
+  Removes a given save point
 */
-//================================================================
 void SalomeApp_Study::removeSavePoint(int savePoint)
 {
   if(savePoint <= 0) return;
@@ -701,45 +697,37 @@ void SalomeApp_Study::removeSavePoint(int savePoint)
   builder->RemoveObjectWithChildren(so);
 }
 
-//================================================================
-// Function : getNameOfSavePoint
-/*! Purpose : returns a name of save point
+/*!
+  \return a name of save point
 */
-//================================================================
 QString SalomeApp_Study::getNameOfSavePoint(int savePoint)
 {
   _PTR(AttributeParameter) AP = studyDS()->GetCommonParameters(getVisualComponentName(), savePoint);
-  SALOMEDS_IParameters ip(AP);
-  return ip.getProperty("AP_SAVEPOINT_NAME").c_str();
+  _PTR(IParameters) ip = ClientFactory::getIParameters(AP);
+  return ip->getProperty("AP_SAVEPOINT_NAME");
 }
 
-//================================================================
-// Function : setNameOfSavePoint
-/*! Purpose : sets a name of save point
+/*!
+  Sets a name of save point
 */
-//================================================================
 void SalomeApp_Study::setNameOfSavePoint(int savePoint, const QString& nameOfSavePoint)
 {
   _PTR(AttributeParameter) AP = studyDS()->GetCommonParameters(getVisualComponentName(), savePoint);
-  SALOMEDS_IParameters ip(AP);
-  ip.setProperty("AP_SAVEPOINT_NAME", nameOfSavePoint.latin1());
+  _PTR(IParameters) ip = ClientFactory::getIParameters(AP);
+  ip->setProperty("AP_SAVEPOINT_NAME", nameOfSavePoint.latin1());
 }
 
-//================================================================
-// Function : getVisualComponentName
-/*! Purpose : returns a name of the component where visual
- *             parameters are stored
+/*!
+  \return a name of the component where visual parameters are stored
 */
-//================================================================
 std::string SalomeApp_Study::getVisualComponentName()
 {
   return "Interface Applicative";
 }
 
-//================================================================
-// Function : updateModelRoot
-/*! Purpose : slot called on change of a root of a data model. redefined from CAM_Study*/
-//================================================================
+/*!
+  Slot: called on change of a root of a data model. Redefined from CAM_Study
+*/
 void SalomeApp_Study::updateModelRoot( const CAM_DataModel* dm )
 {
   LightApp_Study::updateModelRoot( dm );
index ffb35f74d5a632c1e8fa46ca1ef6e201f64add8f..88a0b888cf11d072d645feee32fccf3ef3632e07 100644 (file)
@@ -31,7 +31,8 @@
 #include <qapplication.h>
 #include <qdict.h>
 
-#include <SALOMEDS_IParameters.hxx>
+#include <SALOMEDSClient_ClientFactory.hxx>
+#include <SALOMEDSClient_IParameters.hxx>
 
 #include <vector>
 #include <string>
@@ -51,18 +52,16 @@ SalomeApp_VisualState::~SalomeApp_VisualState()
 {
 }
 
-//================================================================
-// Function : nameViewWindows
-/*! Purpose : set names of all view windows in given list.  This is used
-//  in order to apply the same naming algorithm when saving and restoring
-//  view windows.  Names of view windows must be the same before saving
-//  workstack (splitters) information, and before its restoring! 
-//  Naming rule: ViewerType_IndexOfViewerOfThisType_IndexOfViewInThisViewer
-//               VTKViewer_0_0
-//               OCCViewer_0_0  OCCViewer_0_1  OCCViewer_0_2
-//               VTKViewer_1_0
+/*!
+  Sets names of all view windows in given list.  This is used
+  in order to apply the same naming algorithm when saving and restoring
+  view windows.  Names of view windows must be the same before saving
+  workstack (splitters) information, and before its restoring! 
+  Naming rule: ViewerType_IndexOfViewerOfThisType_IndexOfViewInThisViewer
+               VTKViewer_0_0
+               OCCViewer_0_0  OCCViewer_0_1  OCCViewer_0_2
+               VTKViewer_1_0
 */
-//================================================================
 void nameViewWindows( const ViewManagerList& lst )
 {
   QDict<int> viewersCounter; // map viewerType - to - index_of_this_viewer_type
@@ -89,11 +88,9 @@ void nameViewWindows( const ViewManagerList& lst )
   }
 }
 
-//================================================================
-// Function : storeState
-/*! Purpose : store the visual parameters of the viewers
+/*!
+  Stores the visual parameters of the viewers
 */
-//================================================================
 int SalomeApp_VisualState::storeState()
 {
   SalomeApp_Study* study = dynamic_cast<SalomeApp_Study*>( myApp->activeStudy() );
@@ -107,7 +104,7 @@ int SalomeApp_VisualState::storeState()
     savePoint = savePoints[savePoints.size()-1] + 1;
 
   _PTR(AttributeParameter) ap = study->studyDS()->GetCommonParameters( study->getVisualComponentName(), savePoint );
-  SALOMEDS_IParameters ip( ap );
+  _PTR(IParameters) ip = ClientFactory::getIParameters( ap );
 
   ViewManagerList lst;
   myApp->viewManagers( lst );
@@ -120,7 +117,7 @@ int SalomeApp_VisualState::storeState()
   // store active window's name
   SUIT_ViewWindow* win = myApp->desktop()->activeWindow();  
   if ( win )
-    ip.setProperty("AP_ACTIVE_VIEW", win->name() );
+    ip->setProperty("AP_ACTIVE_VIEW", win->name() );
 
   int viewerID = 0;
   SUIT_ViewManager* vm = 0;
@@ -131,12 +128,12 @@ int SalomeApp_VisualState::storeState()
       continue; //No views is opened in the viewer
       
     std::string viewerEntry = QString( "%1_%2" ).arg( vm->getType() ).arg( ++viewerID ).latin1();
-    ip.append("AP_VIEWERS_LIST", viewerEntry);
+    ip->append("AP_VIEWERS_LIST", viewerEntry);
     
     QPtrVector<SUIT_ViewWindow> views = vm->getViews();
     for(int i = 0; i<view_count; i++) {
-      ip.append( viewerEntry, views[i]->caption().latin1() );
-      ip.append( viewerEntry, views[i]->getVisualParameters().latin1() );
+      ip->append( viewerEntry, views[i]->caption().latin1() );
+      ip->append( viewerEntry, views[i]->getVisualParameters().latin1() );
     }
   }
 
@@ -145,12 +142,12 @@ int SalomeApp_VisualState::storeState()
     QtxWorkstack* workstack = ((STD_TabDesktop*)myApp->desktop())->workstack();
     QString workstackInfo;
     (*workstack) >> workstackInfo;
-    ip.setProperty( "AP_WORKSTACK_INFO", workstackInfo.latin1() );
+    ip->setProperty( "AP_WORKSTACK_INFO", workstackInfo.latin1() );
   }
   
   //Save a name of the active module
   if ( CAM_Module* activeModule = myApp->activeModule() ) 
-    ip.setProperty( "AP_ACTIVE_MODULE", activeModule->moduleName().latin1() );
+    ip->setProperty( "AP_ACTIVE_MODULE", activeModule->moduleName().latin1() );
 
   //Store visual parameters of the modules
   QPtrList<CAM_Module> mlist; 
@@ -158,7 +155,7 @@ int SalomeApp_VisualState::storeState()
   CAM_Module* module = 0;
   for ( module = mlist.first(); module; module = mlist.next() ) {
     if ( SalomeApp_Module* sModule = dynamic_cast<SalomeApp_Module*>( module ) ) {
-      ip.append( "AP_MODULES_LIST", sModule->moduleName().latin1() );
+      ip->append( "AP_MODULES_LIST", sModule->moduleName().latin1() );
       sModule->storeVisualParameters( savePoint );
     }
   }
@@ -169,11 +166,9 @@ int SalomeApp_VisualState::storeState()
   return savePoint;
 }
 
-//================================================================
-// Function : restoreState
-/*! Purpose : restore the visual parameters of the viewers
+/*!
+  Restores the visual parameters of the viewers
 */
-//================================================================
 void SalomeApp_VisualState::restoreState(int savePoint)
 {
   SalomeApp_Study* study = dynamic_cast<SalomeApp_Study*>( myApp->activeStudy() );
@@ -181,28 +176,32 @@ void SalomeApp_VisualState::restoreState(int savePoint)
     return;
 
   _PTR(AttributeParameter) ap = study->studyDS()->GetCommonParameters( study->getVisualComponentName(), savePoint );
-  SALOMEDS_IParameters ip(ap);
+  _PTR(IParameters) ip = ClientFactory::getIParameters(ap);
 
   //Remove all already existent veiwers and their views
   ViewManagerList lst;
   myApp->viewManagers( lst );
-  for ( QPtrListIterator<SUIT_ViewManager> it(lst); it.current(); ++it )
+  for ( QPtrListIterator<SUIT_ViewManager> it(lst); it.current(); ++it ) {
     myApp->removeViewManager( it.current() );
-
+    qApp->processEvents();
+  }
   //Restore the viewers and view windows
-  int nbViewers = ip.nbValues( "AP_VIEWERS_LIST" );
+  int nbViewers = ip->nbValues( "AP_VIEWERS_LIST" );
   SUIT_ViewWindow* viewWin = 0;
 
+  // parameters of view windows are stored in a map for restoring after restoring of the workstack
+  QMap<SUIT_ViewWindow*, QString> viewersParameters;
+
   for ( int i = 0; i < nbViewers; i++ ) {
-    std::string viewerEntry = ip.getValue( "AP_VIEWERS_LIST", i );
-    std::vector<std::string> veiewerParams = ip.parseValue(viewerEntry,'_');
+    std::string viewerEntry = ip->getValue( "AP_VIEWERS_LIST", i );
+    std::vector<std::string> veiewerParams = ip->parseValue(viewerEntry,'_');
     std::string type = veiewerParams[0];
     std::string viewerID = veiewerParams[1];
     SUIT_ViewManager* vm = myApp->newViewManager( type.c_str() );
     if ( !vm ) 
       continue; //Unknown viewer
     
-    int nbViews = (ip.nbValues(viewerEntry))/2;
+    int nbViews = (ip->nbValues(viewerEntry))/2;
     
     //Create nbViews-1 view (-1 because 1 view is created by createViewManager)
     for ( int i = 1; i< nbViews; i++ ) { 
@@ -227,69 +226,80 @@ void SalomeApp_VisualState::restoreState(int savePoint)
       while ( !viewWin->isVisible() )
        qApp->processEvents();
       
-      viewWin->setCaption(ip.getValue(viewerEntry, j).c_str());
-      viewWin->setVisualParameters(ip.getValue(viewerEntry, j+1).c_str());
+      viewWin->setCaption(ip->getValue(viewerEntry, j).c_str());
+      
+      //      printf ( "VP for viewWin \"%s\": %s\n", viewerEntry.c_str(), ip->getValue(viewerEntry, j+1).c_str() );
+      viewersParameters[ viewWin ] = ip->getValue(viewerEntry, j+1).c_str();
+      //viewWin->setVisualParameters(ip->getValue(viewerEntry, j+1).c_str());
     }
   }
 
   // restore modules' visual parameters
-  std::vector<std::string> v = ip.getValues("AP_MODULES_LIST");
+  std::vector<std::string> v = ip->getValues("AP_MODULES_LIST");
   for ( int i = 0; i < v.size(); i++ ) {
     myApp->activateModule( v[i].c_str() );
     if ( SalomeApp_Module* module = dynamic_cast<SalomeApp_Module*>( myApp->activeModule() ) )
       module->restoreVisualParameters( savePoint );
   }
 
+  // new view windows may have been created in  module->restoreVisualParameters() [GAUSS]
+  // so here we store their visual parameters for later restoring..
+  lst.clear();
+  myApp->viewManagers(lst);
+  QPtrListIterator<SUIT_ViewManager> it( lst );
+  for ( ; it.current(); ++it ) {
+    int view_count = it.current()->getViewsCount();
+    QPtrVector<SUIT_ViewWindow> views = it.current()->getViews();
+    for ( int i = 0; i < view_count; i++ ) {
+      if ( !viewersParameters.contains( views[i] ) ) {
+       viewersParameters[ views[i] ] = views[i]->getVisualParameters();
+       //      printf ( "store VP for viewWin \"%s\": %s\n", views[i]->name(), views[i]->getVisualParameters().latin1() );
+      }
+    }
+  }  
+
   // activate module that was active on save
-  QString activeModuleName( ip.getProperty("AP_ACTIVE_MODULE" ).c_str() );
+  QString activeModuleName( ip->getProperty("AP_ACTIVE_MODULE" ).c_str() );
   if ( !activeModuleName.isEmpty() ) 
     myApp->activateModule( activeModuleName );
 
   // setting unique names for view windows in order to restore positions of view windows inside 
   // workstack's structure (see below).  During save the same naming algorithm was used, 
   // so the same views will get the same names.
-  lst.clear();
-  myApp->viewManagers(lst);
   nameViewWindows( lst );
 
-  // work-around to bug of setting visual parameters of views: all view windows now have
-  // correct visual parameters, bug after restoring the workstack the visual parameters 
-  // are messted, and must be re-set again.  So here we store them in a map and set them
-  // later back again.  why we don't store these parameters in a map on views creation?
-  // because 1) names of view windows are not set at that time 2) some view windows
-  // are created by modules' restoreVisualParameters (like Gauss Viewers), which is NOT here..
-  QMap<QString, QString> viewersParameters;
-  QPtrListIterator<SUIT_ViewManager> it( lst );
-  for ( ; it.current(); ++it ) {
-    int view_count = it.current()->getViewsCount();
-    QPtrVector<SUIT_ViewWindow> views = it.current()->getViews();
-    for ( int i = 0; i < view_count; i++ )
-      viewersParameters[ views[i]->name() ] = views[i]->getVisualParameters();
-  }  
-
   // restore workstack parameters.  should be done after module's restoreVisualParameters(), because
   // some modules can create their own viewers (like VISU creates GaussViewers)
   if ( myApp->desktop()->inherits( "STD_TabDesktop" ) ) {
     QtxWorkstack* workstack = ((STD_TabDesktop*)myApp->desktop())->workstack();
-    (*workstack) << ip.getProperty( "AP_WORKSTACK_INFO" ).c_str();
+    (*workstack) << ip->getProperty( "AP_WORKSTACK_INFO" ).c_str();
   }
 
   // restore visual parameters of view windows.  it must be done AFTER restoring workstack.
-  for ( it.toFirst(); it.current(); ++it ) {
-    int view_count = it.current()->getViewsCount();
-    QPtrVector<SUIT_ViewWindow> views = it.current()->getViews();
-    for ( int i = 0; i < view_count; i++ )
-      views[i]->setVisualParameters( viewersParameters[ views[i]->name() ] );
+  // also set active view
+  std::string activeViewName = ip->getProperty("AP_ACTIVE_VIEW");
+  QMap<SUIT_ViewWindow*, QString>::Iterator mapIt;
+  for ( mapIt = viewersParameters.begin(); mapIt != viewersParameters.end(); ++mapIt ) {
+    mapIt.key()->setVisualParameters( mapIt.data() );
+    if ( activeViewName == mapIt.key()->name() )
+      mapIt.key()->setFocus();
   }
+  
+  //  for ( it.toFirst(); it.current(); ++it ) {
+  //    int view_count = it.current()->getViewsCount();
+  //    QPtrVector<SUIT_ViewWindow> views = it.current()->getViews();
+  //    for ( int i = 0; i < view_count; i++ )
+  //      views[i]->setVisualParameters( viewersParameters[ views[i]->name() ] );
+  //  }
 
   // set focus to previously saved active view window
-  std::string activeViewName = ip.getProperty("AP_ACTIVE_VIEW");
-  for ( it.toFirst(); it.current(); ++it ) {
-    int view_count = it.current()->getViewsCount();
-    QPtrVector<SUIT_ViewWindow> views = it.current()->getViews();
-    for ( int i = 0; i < view_count; i++ )  {
-      if ( activeViewName == views[i]->name() )
-       views[i]->setFocus();
-    }
-  }
+  //  std::string activeViewName = ip->getProperty("AP_ACTIVE_VIEW");
+  //  for ( it.toFirst(); it.current(); ++it ) {
+  //    int view_count = it.current()->getViewsCount();
+  //    QPtrVector<SUIT_ViewWindow> views = it.current()->getViews();
+  //    for ( int i = 0; i < view_count; i++ )  {
+  //      if ( activeViewName == views[i]->name() )
+  //   views[i]->setFocus();
+  //    }
+  //  }
 }
index 93e6b8dcdad4c82099e8331c52199664aad133b9..850cc4f5abba321d75076f085984589a312cea04 100644 (file)
@@ -51,8 +51,8 @@ BIN_SRC =
 BIN_CLIENT_IDL =
 
 
-CXXFLAGS += $ @CPPUNIT_INCLUDES@ -I${KERNEL_ROOT_DIR}/include/salome
-CPPFLAGS += $ @CPPUNIT_INCLUDES@ -I${KERNEL_ROOT_DIR}/include/salome
+CXXFLAGS += $ @CPPUNIT_INCLUDES@ $(KERNEL_CXXFLAGS)
+CPPFLAGS += $ @CPPUNIT_INCLUDES@ $(KERNEL_CXXFLAGS)
 
 LIBS= @LIBS@ @CPPUNIT_LIBS@
 
index 03daaf27b9b54dff121872ae21b0b8783ab51057..eed29fa5684192e6143e23c8517e11363f2a1ea0 100644 (file)
@@ -1,3 +1,21 @@
+#  Copyright (C) 2005  CEA/DEN, EDF R&D, OPEN CASCADE, PRINCIPIA R&D
+#
+#  This library is free software; you can redistribute it and/or
+#  modify it under the terms of the GNU Lesser General Public
+#  License as published by the Free Software Foundation; either
+#  version 2.1 of the License.
+#
+#  This library is distributed in the hope that it will be useful,
+#  but WITHOUT ANY WARRANTY; without even the implied warranty of
+#  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+#  Lesser General Public License for more details.
+#
+#  You should have received a copy of the GNU Lesser General Public
+#  License along with this library; if not, write to the Free Software
+#  Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307 USA
+#
+#  See http://www.salome-platform.org/
+#
 
 import sys, os,signal,string,commands
 import runSalome
index 3fa77b587fbd3d12c37de96fb63587d61f691dc6..c5dd443bcb8a28f0488cc01410ae2514f572eb14 100644 (file)
@@ -1,12 +1,6 @@
 <document>
-  <section name="desktop" >
-    <parameter name="state"  value="normal"/>
-    <parameter name="pos_x"  value="center"/>
-    <parameter name="pos_y"  value="center"/>
-    <parameter name="width"  value="800"/>
-    <parameter name="height" value="600"/>
-  </section>
   <section name="launch">
+    <!-- SALOME launching parameters -->
     <parameter name="gui"        value="yes"/>
     <parameter name="splash"     value="yes"/>
     <parameter name="file"       value="no"/>
     <parameter name="standalone" value="pyContainer,supervContainer"/>
   </section>
   <section name="language">
+    <!-- Language settings (resource manager)-->
     <parameter name="language"    value="en"/>
     <parameter name="translators" value="%P_msg_%L.qm|%PM_msg_%L.qm|%P_icons.qm|%P_images.qm|%PM_images.qm"/>
   </section>
+  <section name="splash" >
+    <!-- Splash screen settings -->
+    <parameter name="image"           value="${SUITRoot}/resources/icon_about.png" />
+    <parameter name="info"            value="%V" />
+    <parameter name="text_colors"     value="#F0CC6D|#7F7138" />
+    <parameter name="progress_colors" value="#FF0000|#FFFFFF|0" />
+  </section>
   <section name="resources">
+    <!-- Resource directories (resource manager)-->
     <parameter name="SUIT"         value="${SUITRoot}/resources"/>
     <parameter name="STD"          value="${SUITRoot}/resources"/>
     <parameter name="Plot2d"       value="${SUITRoot}/resources"/>
     <parameter name="OB"           value="${SUITRoot}/resources"/>
     <parameter name="CAM"          value="${SUITRoot}/resources"/>
     <parameter name="SUPERVGraph"  value="${SUITRoot}/resources"/>
-    <parameter name="GEOM"         value="${GEOM_ROOT_DIR}/share/salome/resources"/>
-    <parameter name="LIGHT"        value="${LIGHT_ROOT_DIR}/share/salome/resources"/>
-    <parameter name="SMESH"        value="${SMESH_ROOT_DIR}/share/salome/resources"/>
-    <parameter name="VISU"         value="${VISU_ROOT_DIR}/share/salome/resources"/>
-    <parameter name="SUPERV"       value="${SUPERV_ROOT_DIR}/share/salome/resources"/>
-    <parameter name="MED"          value="${MED_ROOT_DIR}/share/salome/resources"/>
-    <parameter name="StdMeshers"   value="${SMESH_ROOT_DIR}/share/salome/resources"/>
-    <parameter name="COMPONENT"    value="${COMPONENT_ROOT_DIR}/share/salome/resources"/>
-    <parameter name="PYCALCULATOR" value="${PYCALCULATOR_ROOT_DIR}/share/salome/resources"/>
-    <parameter name="HELLO"        value="${HELLO_ROOT_DIR}/share/salome/resources"/>
-    <parameter name="PYHELLO"      value="${PYHELLO_ROOT_DIR}/share/salome/resources"/>
+    <parameter name="ToolsGUI"     value="${SUITRoot}/resources"/>
     <parameter name="NETGENPlugin" value="${NETGENPLUGIN_ROOT_DIR}/share/salome/resources"/>
     <parameter name="GHS3DPlugin"  value="${GHS3DPLUGIN_ROOT_DIR}/share/salome/resources"/>
-    <parameter name="ToolsGUI"     value="${SUITRoot}/resources"/>
-  </section>
-  <section name="PyConsole">
-    <parameter name="font" value="Helvetic,12" />
-  </section>
-  <section name="Study">
-    <parameter name="store_positions"          value="false" />
-    <parameter name="store_visual_state"       value="false" />
-  </section>
-  <section name="GEOM">
-    <parameter name="name"       value="Geometry"/>
-    <parameter name="icon"       value="ModuleGeom.png"/>
-  </section>
-  <section name="LIGHT">
-    <parameter name="name"       value="Light"/>
-    <parameter name="icon"       value="LIGHT.png"/>
   </section>
   <section name="SMESH">
-    <parameter name="name"       value="Mesh"/>
-    <parameter name="icon"       value="ModuleMesh.png"/>
-  </section>
-  <section name="VISU">
-    <parameter name="name"       value="Post-Pro"/>
-    <parameter name="icon"       value="ModuleVisu.png"/>
-  </section>
-  <section name="SUPERV">
-    <parameter name="name"       value="Supervisor"/>
-    <parameter name="icon"       value="ModuleSupervision.png"/>
-  </section>
-  <section name="MED">
-    <parameter name="name"       value="Med"/>
-    <parameter name="icon"       value="ModuleMed.png"/>
-  </section>
-  <section name="HELLO">
-    <parameter name="name"       value="Hello"/>
-    <parameter name="icon"       value="HELLO.png"/>
-  </section>
-  <section name="PYHELLO">
-    <parameter name="name"       value="PyHello"/>
-    <parameter name="icon"       value="PYHELLO.png"/>
-    <parameter name="library"    value="SalomePyQtGUI"/>
+    <!-- Default SMESH module plugins -->
+    <parameter name="plugins" value="NETGENPlugin,GHS3DPlugin"/>
   </section>
-
-<!-- values below this line are just an example, they are not used  -->
-  <section name="application">
-    <parameter name="QuickDirList" value=""/>
-    <!-- Here go other common user preferences -->
+  <section name="desktop" >
+    <!-- Default GUI desktop state, position, size -->
+    <parameter name="state"  value="normal"/>
+    <parameter name="pos_x"  value="center"/>
+    <parameter name="pos_y"  value="center"/>
+    <parameter name="width"  value="800"/>
+    <parameter name="height" value="600"/>
   </section>
   <section name="ObjectBrowser" >
-    <parameter value="false" name="auto_size" />
-    <parameter value="true"  name="auto_size_first" />
-    <parameter value="true"  name="visibility_column_0" />
-    <parameter value="false" name="visibility_column_1" />
-    <parameter value="false" name="visibility_column_2" />
-    <parameter value="false" name="visibility_column_3" />
+    <!-- Object Browser preferences -->
+    <parameter name="auto_size"           value="false" />
+    <parameter name="auto_size_first"     value="true"  />
+    <parameter name="visibility_column_0" value="true"  />
+    <parameter name="visibility_column_1" value="false" />
+    <parameter name="visibility_column_2" value="false" />
+    <parameter name="visibility_column_3" value="false" />
+  </section>
+  <section name="PyConsole">
+    <!-- Python console preferences -->
+    <parameter name="font"                value="Helvetic,12" />
+    <parameter name="additional_families" value="Helvetic;Helvetica;Helvetica[Adobe];Times;Times[Adobe];Sans Serif;Serif;Monospace;Lucida"/>
   </section>
   <section name="OCCViewer" >
-    <parameter value="35, 136, 145" name="background" />
-    <parameter value="1" name="iso_number_u" />
-    <parameter value="1" name="iso_number_v" />
-    <parameter value="100" name="trihedron_size" />
+    <!-- OCC viewer preferences -->
+    <parameter name="background"     value="35, 136, 145" />
+    <parameter name="iso_number_u"   value="1" />
+    <parameter name="iso_number_v"   value="1" />
+    <parameter name="trihedron_size" value="100" />
  </section>
  <section name="VTKViewer" >
-    <parameter value="0, 0, 0" name="background" />
-    <parameter value="105" name="trihedron_size" />
-    <parameter value="true" name="relative_size" />
+    <!-- VTK viewer preferences -->
+    <parameter name="background"     value="0, 0, 0" />
+    <parameter name="trihedron_size" value="105" />
+    <parameter name="relative_size"  value="true" />
  </section>
- <section name="ExternalBrowser" >
-    <parameter value="/usr/bin/mozilla" name="application" />
-  </section>
  <section name="Plot2d" >
-    <parameter value="255, 255, 255" name="Background" />
-    <parameter value="1" name="CurveType" />
-    <parameter value="0" name="HorScaleMode" />
-    <parameter value="1" name="LegendPos" />
-    <parameter value="9" name="MarkerSize" />
-    <parameter value="true" name="ShowLegend" />
-    <parameter value="0" name="VerScaleMode" />
+    <!-- Plot2d viewer preferences -->
+    <parameter name="Background"   value="255, 255, 255"/>
+    <parameter name="CurveType"    value="1" />
+    <parameter name="HorScaleMode" value="0" />
+    <parameter name="LegendPos"    value="1" />
+    <parameter name="MarkerSize"   value="9" />
+    <parameter name="ShowLegend"   value="true" />
+    <parameter name="VerScaleMode" value="0"  />
   </section>
   <section name="SUPERVGraph" >
-    <parameter value="144, 208, 211" name="Background" />
-    <parameter value="63, 213, 255" name="Title" />
-    <parameter value="255, 249, 147" name="NodeBody" />
+    <!-- Supervision viewer preferences -->
+    <parameter name="Background" value="144, 208, 211" />
+    <parameter name="Title"      value="63, 213, 255"  />
+    <parameter name="NodeBody"   value="255, 249, 147" />
   </section>
-  <section name="Geometry" >
-    <parameter value="10" name="SettingsGeomStep" />
-    <parameter value="0"  name="display_mode" />
-    <parameter value="255, 255, 0" name="shading_color" />
+  <section name="FileDlg" >
+    <!-- "Open/Save File" dialog box preferences-->
+    <parameter name="QuickDirList" value="${DATA_DIR}" />
   </section>
-  <section name="SMESH">
-    <parameter name="plugins" value="NETGENPlugin,GHS3DPlugin"/>
-    <parameter value="255, 0,   0" name="node_color" />
-    <parameter value="0, 170, 255" name="fill_color" />
-    <parameter value="0, 170, 255" name="outline_color" />
-    <parameter value="0, 0,   255" name="backface_color" />
-    <parameter value="3" name="node_size" />
-    <parameter value="1" name="element_width" />
-    <parameter value="75" name="shrink_coeff" />
-    <parameter value="0, 255,   255" name="highlight_color" />
-    <parameter value="255, 255,   0" name="selection_element_color" />
-    <parameter value="255, 255, 255" name="selection_object_color" />
-    <parameter value="0.005" name="selection_precision_element" />
-    <parameter value="0.005" name="selection_precision_node" />
-    <parameter value="5" name="selection_width" />
-    <parameter value="5" name="highlight_width" />
-    <parameter value="0" name="controls_precision" />
-    <parameter value="0.05" name="scalar_bar_horizontal_height" />
-    <parameter value="0.5" name="scalar_bar_horizontal_width" />
-    <parameter value="0.01" name="scalar_bar_horizontal_x" />
-    <parameter value="0.01" name="scalar_bar_horizontal_y" />
-    <parameter value="255, 255, 255" name="scalar_bar_label_color" />
-    <parameter value="Arial,12" name="scalar_bar_label_font" />
-    <parameter value="64" name="scalar_bar_num_colors" />
-    <parameter value="5" name="scalar_bar_num_labels" />
-    <parameter value="0" name="scalar_bar_orientation" />
-    <parameter value="255, 255, 255" name="scalar_bar_title_color" />
-    <parameter value="Arial,12" name="scalar_bar_title_font" />
-    <parameter value="0.5" name="scalar_bar_vertical_height" />
-    <parameter value="0.05" name="scalar_bar_vertical_width" />
-    <parameter value="0.01" name="scalar_bar_vertical_x" />
-    <parameter value="0.01" name="scalar_bar_vertical_y" />
-    <parameter value="true" name="DisplayMode" />
-    <parameter value="true" name="auto_update" />
-    <parameter value="1" name="display_mode" />
-    <parameter value="false" name="auto_groups" />
-  </section>
-  <section name="VISU" >
-  <parameter value="false" name="use_build_progress" />
-  <parameter value="false" name="full_med_loading" />
-  <parameter value="false" name="represent_shading" />
-  <parameter value="0.05" name="scalar_bar_horizontal_height" />
-  <parameter value="0.5" name="scalar_bar_horizontal_width" />
-  <parameter value="0.01" name="scalar_bar_horizontal_x" />
-  <parameter value="0.01" name="scalar_bar_horizontal_y" />
-  <parameter value="255, 255, 255" name="scalar_bar_label_color" />
-  <parameter value="Arial,Bold,Italic,Underline,12" name="scalar_bar_label_font" />
-  <parameter value="false" name="scalar_bar_logarithmic" />
-  <parameter value="0" name="scalar_bar_mode" />
-  <parameter value="64" name="scalar_bar_num_colors" />
-  <parameter value="5" name="scalar_bar_num_labels" />
-  <parameter value="0" name="scalar_bar_orientation" />
-  <parameter value="255, 255, 255" name="scalar_bar_title_color" />
-  <parameter value="Arial,Bold,Italic,Underline,12" name="scalar_bar_title_font" />
-  <parameter value="0.5" name="scalar_bar_vertical_height" />
-  <parameter value="0.05" name="scalar_bar_vertical_width" />
-  <parameter value="0.01" name="scalar_bar_vertical_x" />
-  <parameter value="0.01" name="scalar_bar_vertical_y" />
-  <parameter value="0" name="scalar_range_max" />
-  <parameter value="0" name="scalar_range_min" />
-  <parameter value="0" name="scalar_range_type" />
-  <parameter value="1" name="sweeping_number_cycles" />
-  <parameter value="20" name="sweeping_number_steps" />
-  <parameter value="0.2" name="sweeping_time_step" />
-  <parameter value="0" name="mouse_behaviour" />
-  <parameter value="10" name="speed_increment" />
-  <parameter value="1" name="spacemouse_func1_btn" />
-  <parameter value="2" name="spacemouse_func2_btn" />
-  <parameter value="10" name="spacemouse_func3_btn" />
-  <parameter value="11" name="spacemouse_func4_btn" />
-  <parameter value="9" name="spacemouse_func5_btn" />
-  <parameter value="10" name="camera_movement_steps" />
-  <parameter value="true" name="point_sprite_results" />
-  <parameter value="0" name="point_sprite_primitive_type" />
-  <parameter value="256" name="point_sprite_clamp" />
-  <parameter value="${VISU_ROOT_DIR}/share/salome/resources/sprite_texture.bmp" name="point_sprite_main_texture"/>
-  <parameter value="${VISU_ROOT_DIR}/share/salome/resources/sprite_alpha.bmp" name="point_sprite_alpha_texture"/>
-  <parameter value="0.5" name="point_sprite_alpha_threshold" />
-  <parameter value="10" name="point_sprite_min_size" />
-  <parameter value="33" name="point_sprite_max_size" />
-  <parameter value="100" name="point_sprite_magnification" />
-  <parameter value="2" name="point_sprite_increment" />
-  <parameter value="15" name="point_sprite_size" />
-  <parameter value="0, 0, 255" name="point_sprite_color" />
-  <parameter value="8" name="geom_sphere_resolution" />
-  <parameter value="50000" name="geom_sphere_face_limit" />
-  <parameter value="true" name="scalar_bar_display_global" />
-  <parameter value="0" name="scalar_bar_active_local" />
-  <parameter value="1" name="scalar_bar_bicolor" />
-  <parameter value="0.01" name="scalar_bar_spacing" />
-  <parameter value="0" name="inside_point_sprite_primitive_type" />
-  <parameter value="256" name="inside_point_sprite_clamp" />
-  <parameter value="${VISU_ROOT_DIR}/share/salome/resources/sprite_texture.bmp" name="inside_point_sprite_main_texture"/>
-  <parameter value="${VISU_ROOT_DIR}/share/salome/resources/sprite_alpha.bmp" name="inside_point_sprite_alpha_texture"/>
-  <parameter value="0.5" name="inside_point_sprite_alpha_threshold" />
-  <parameter value="10" name="inside_point_sprite_min_size" />
-  <parameter value="33" name="inside_point_sprite_max_size" />
-  <parameter value="100" name="inside_point_sprite_magnification" />
-  <parameter value="2" name="inside_point_sprite_increment" />
-  <parameter value="8" name="inside_geom_sphere_resolution" />
-  <parameter value="50000" name="inside_geom_sphere_face_limit" />
-  <parameter value="0" name="outside_point_sprite_primitive_type" />
-  <parameter value="256" name="outside_point_sprite_clamp" />
-  <parameter value="${VISU_ROOT_DIR}/share/salome/resources/sprite_texture.bmp" name="outside_point_sprite_main_texture"/>
-  <parameter value="${VISU_ROOT_DIR}/share/salome/resources/sprite_alpha.bmp" name="outside_point_sprite_alpha_texture"/>
-  <parameter value="0.5" name="outside_point_sprite_alpha_threshold" />
-  <parameter value="25" name="outside_point_sprite_size" />
-  <parameter value="true" name="outside_point_sprite_uniform" />
-  <parameter value="85, 0, 127" name="outside_point_sprite_color" />
-  <parameter value="8" name="outside_geom_sphere_resolution" />
-  <parameter value="50000" name="outside_geom_sphere_face_limit" />
-  <parameter value="0.5" name="picking_cursor_size" />
-  <parameter value="1.0" name="picking_pyramid_height" />
-  <parameter value="255, 255, 0" name="picking_selection_color" />
-  <parameter value="0.01" name="picking_point_tolerance" />
-  <parameter value="50" name="picking_transparency" />
-  <parameter value="0" name="picking_position" />
-  <parameter value="1.5" name="picking_zoom_factor" />
-  <parameter value="10" name="picking_step_number" />
-  <parameter value="false" name="picking_display_parent_mesh" />
-  <parameter value="false" name="build_at_once" />
-  <parameter value="true" name="build_fields" />
-  <parameter value="true" name="build_min_max" />
-  <parameter value="true" name="build_groups" />
-  <parameter value="true" name="close_at_finish" />
-  <parameter value="1" name="recorder_mode" />
-  <parameter value="17.3" name="recorder_fps" />
-  <parameter value="100" name="recorder_quality" />
-  <parameter value="true" name="recorder_progressive" />
+  <section name="Study">
+    <!-- General study settings -->
+    <parameter name="store_positions"     value="false" />
+    <parameter name="store_visual_state"  value="false" />
   </section>
-  <!-- Here go optional sections for other modules -->
-  <section name="resources">
-    <parameter name="salome" value="${KERNEL_ROOT_DIR}/share/salome/res"/>
-    <!-- Here go resource directories for other modules -->
+  <section name="ExternalBrowser" >
+    <!-- External HELP browser settings -->
+    <parameter value="/usr/bin/mozilla" name="application" />
   </section>
 </document>
index 0e484c4e91bfd09f02ee41aa5b28271665c237c4..9b177ac89750e5af51ad32d19208dbbeda3849e6 100644 (file)
@@ -13,9 +13,6 @@ msgstr ""
 
 //=======================================================================================
 
-msgid "BUT_OK"
-msgstr "&OK"
-
 msgid "BUT_NEW"
 msgstr "&New"
 
@@ -25,9 +22,6 @@ msgstr "&Open"
 msgid "BUT_LOAD"
 msgstr "&Load"
 
-msgid "BUT_CANCEL"
-msgstr "&Cancel"
-
 //=======================================================================================
 
 msgid "SalomeApp_Application::PYTHON_CONSOLE"
@@ -46,7 +40,7 @@ msgid "SalomeApp_Application::TOT_DESK_FILE_SAVE_GUI_STATE"
 msgstr "Save GUI state"
 
 msgid "SalomeApp_Application::MEN_DESK_FILE_SAVE_GUI_STATE"
-msgstr "Save GUI state..."
+msgstr "Save GUI state"
 
 msgid "SalomeApp_Application::PRP_DESK_FILE_SAVE_GUI_STATE"
 msgstr "Saves current state of viewers, displayed objects, etc."
index 3a4b9ddd69f331f5716cda140a139e49d8d5946e..b022744f72e82fbdbe25f142f03c7f9b87623ba5 100755 (executable)
@@ -49,6 +49,9 @@ using namespace std;
 #define MARGIN_SIZE  5
 #define SPACING_SIZE 3
 
+/*!
+  Constructor
+*/
 InquireServersGUI::InquireServersGUI()
      : QVBox(0, "SFA splash", Qt::WDestructiveClose | Qt::WStyle_Customize | Qt::WStyle_NoBorder | WType_TopLevel | WStyle_StaysOnTop | WX11BypassWM  )
 {
@@ -137,6 +140,10 @@ InquireServersGUI::InquireServersGUI()
   myThread->start();
 }
 
+/*!
+  Sets pixmap of splash screen
+  \param pix - new pixmap
+*/
 void InquireServersGUI::setPixmap( QPixmap pix )
 {
   if ( !pix.isNull() ) 
@@ -148,21 +155,28 @@ void InquireServersGUI::setPixmap( QPixmap pix )
   }
 }
 
+/*!
+  Destructor
+*/
 InquireServersGUI::~InquireServersGUI()
 {
   delete myThread;
 }
 
+/*!
+  Gets parameters from qApp
+  \param _argc - variable to return number of arguments
+  \param _argv - variable to return array of arguments
+*/
 void InquireServersGUI::getArgs( int& _argc, char *** _argv)
 {
   _argc = qApp->argc();
   *_argv = qApp->argv();
 }
 
-//=================================================================================
-// function : ClickOnCancel()
-// purpose  : cancel loading of SALOME
-//=================================================================================
+/*!
+  Cancel loading of SALOME
+*/
 void InquireServersGUI::ClickOnCancel()
 {
   myThread->stop(); //it's necessary to stop asking servers
@@ -170,6 +184,9 @@ void InquireServersGUI::ClickOnCancel()
   qApp->exit( 1 );
 }
 
+/*!
+  Custom event filter
+*/
 void InquireServersGUI::customEvent( QCustomEvent* pe )
 {
   switch( pe->type() )
@@ -204,11 +221,17 @@ void InquireServersGUI::customEvent( QCustomEvent* pe )
     }
 }
 
+/*!
+  \return status of thread exit
+*/
 int InquireServersGUI::getExitStatus()
 {
   return myThread->getExitStatus();
 }
 
+/*!
+  Constructor
+*/
 InquireServersQThread::InquireServersQThread( InquireServersGUI* r )
      : receiver(r),  myExitStatus(0)
 {
@@ -258,6 +281,9 @@ InquireServersQThread::InquireServersQThread( InquireServersGUI* r )
   }
 }
 
+/*!
+  The main loop of this thread
+*/
 void InquireServersQThread::run()
 {
   while ( IsChecking && receiver )
@@ -305,12 +331,18 @@ void InquireServersQThread::run()
   qApp->exit( myExitStatus );
 }
 
+/*!
+  Stops this thread
+*/
 void InquireServersQThread::stop()
 {
   IsChecking = false;
   myExitStatus = 1;
 }
 
+/*!
+  Destructor
+*/
 InquireServersQThread::~InquireServersQThread()
 {
 }
index b97bfd012c1cb736fd06247360e9d6e4cd4fc191..9aada570ca2b2bb1aabc496376bfb65b3f7a4d5e 100755 (executable)
 #define SALOME_WNT_EXPORT
 #endif
 
-/**********************************************************
-**  Class:   InquireEvent
-**  Descr:   Contains QCustomEvents for posting to InquireServersQThread
-**  Level:   Private
-***********************************************************/
+/*!
+  \class InquireEvent
+  Contains QCustomEvents for posting to InquireServersQThread
+*/
 class SALOME_WNT_EXPORT InquireEvent : public QCustomEvent
 {
 public:
index 22837fbc87dc9ba46fd64fa212cf23556db00c23..27974b91f3eec2f790a1405d4aba3c298ade857b 100755 (executable)
@@ -38,6 +38,7 @@ VPATH=.:@srcdir@:@top_srcdir@/idl
 EXPORT_HEADERS= Session_Session_i.hxx \
                Session_ServerLauncher.hxx \
                Session_ServerThread.hxx \
+               Session_ServerCheck.hxx \
                SalomeApp_Engine_i.hxx
 
 # Libraries targets
@@ -46,10 +47,10 @@ LIB = libSalomeSession.la
 LIB_SRC=Session_Session_i.cxx \
        Session_ServerThread.cxx \
        Session_ServerLauncher.cxx \
+       Session_ServerCheck.cxx \
        SalomeApp_Engine_i.cxx \
-       InquireServersQThread.cxx
 
-LIB_MOC = InquireServersQThread.h
+LIB_MOC = 
 
 # Executables targets
 BIN = SALOME_Session_Server
@@ -58,9 +59,9 @@ LIB_SERVER_IDL = SALOME_Session.idl SalomeApp_Engine.idl
 BIN_SERVER_IDL = 
 BIN_CLIENT_IDL = SALOMEDS.idl SALOMEDS_Attributes.idl SALOME_Component.idl SALOME_Registry.idl SALOME_ModuleCatalog.idl SALOME_Exception.idl SALOME_GenericObj.idl
 
-CPPFLAGS += $(QT_MT_INCLUDES) $(PYTHON_INCLUDES) $(HDF5_INCLUDES) $(BOOST_CPPFLAGS) -I$(KERNEL_ROOT_DIR)/include/salome -I$(OCC_INCLUDES)
+CPPFLAGS += $(QT_MT_INCLUDES) $(PYTHON_INCLUDES) $(HDF5_INCLUDES) $(BOOST_CPPFLAGS) $(KERNEL_CXXFLAGS) -I$(OCC_INCLUDES)
 CXXFLAGS += $(OCC_CXXFLAGS) $(BOOST_CPPFLAGS)
-LDFLAGS += $(QT_MT_LIBS) -L$(KERNEL_ROOT_DIR)/lib/salome -lSalomeNS -lsuit -lSalomeLifeCycleCORBA -lOpUtil -lSALOMELocalTrace -lwith_loggerTraceCollector -lEvent -lSalomeCatalog -lSalomeDSClient $(CAS_KERNEL)
+LDFLAGS += $(QT_MT_LIBS) $(KERNEL_LDFLAGS) -lSalomeNS -lsuit -lSalomeLifeCycleCORBA -lOpUtil -lSALOMELocalTrace -lwith_loggerTraceCollector -lEvent -lSalomeCatalog -lSalomeDSClient $(CAS_KERNEL)
 
 LDFLAGSFORBIN= $(LDFLAGS) $(OMNIORB_LIBS) $(HDF5_LIBS) -lqtx -lSalomeContainer -lSalomeResourcesManager -lTOOLSDS -lSalomeHDFPersist -lSalomeDSImpl -lSalomeGenericObj -lRegistry -lSalomeNotification -lSALOMEBasics
 
index dbc9e1633d125afc09d45b15b1dd9fdbb672ac72..55985e7eebcb65707e3c0770f20cad8e976650d2 100755 (executable)
@@ -31,8 +31,6 @@
 #include "SALOME_NamingService.hxx"
 #include "SALOMETraceCollector.hxx"
 
-#include "InquireServersQThread.h" // splash
-
 #include <iostream>
 #ifndef WNT
 #include <unistd.h>
@@ -42,6 +40,7 @@
 #include <qfile.h>
 #include <qapplication.h>
 #include <qwaitcondition.h>
+#include <qregexp.h>
 
 #include "Utils_SALOME_Exception.hxx"
 #include "Utils_CorbaException.hxx"
 #include <utilities.h>
 #include "Session_Session_i.hxx"
 #include "Session_ServerLauncher.hxx"
+#include "Session_ServerCheck.hxx"
 
+#include <QtxSplash.h>
 #include "SUIT_Tools.h"
 #include "SUIT_Session.h"
 #include "SUIT_Application.h"
+#include "SUIT_Desktop.h"
 #include "SUIT_MessageBox.h"
 #include "SUIT_ResourceMgr.h"
-
 #include "SUIT_ExceptionHandler.h"
 
 /*! - read arguments, define list of server to launch with their arguments.
@@ -180,10 +181,39 @@ public:
   QString version() const { return myExtAppVersion; }
 
 protected:
-  QString userFileName( const QString& appName ) const
+  QString userFileName( const QString& appName, const bool for_load ) const
   { 
     if ( version().isNull()  ) return ""; 
-    return SUIT_ResourceMgr::userFileName( myExtAppName );
+    return SUIT_ResourceMgr::userFileName( myExtAppName, for_load );
+  }
+
+  virtual int userFileId( const QString& _fname ) const
+  {
+    QRegExp exp( "\\.SalomeApprc\\.([a-zA-Z0-9.]+)$" );
+    QRegExp vers_exp( "^([0-9]+)([A-Za-z]?)([0-9]*)$" );
+
+    QString fname = QFileInfo( _fname ).fileName();
+    if( exp.exactMatch( fname ) )
+    {
+      QStringList vers = QStringList::split( ".", exp.cap( 1 ) );
+      int major=0, minor=0;
+      major = vers[0].toInt();
+      minor = vers[1].toInt();
+      if( vers_exp.search( vers[2] )==-1 )
+       return -1;
+      int release = 0, dev1 = 0, dev2 = 0;
+      release = vers_exp.cap( 1 ).toInt();
+      dev1 = vers_exp.cap( 2 )[ 0 ].latin1();
+      dev2 = vers_exp.cap( 3 ).toInt();
+
+      int dev = dev1*100+dev2, id = major;
+      id*=100; id+=minor;
+      id*=100; id+=release;
+      id*=10000; id+=dev;
+      return id;
+    }
+
+    return -1;
   }
 
 public:
@@ -231,7 +261,10 @@ private:
 class GetInterfaceThread : public QThread
 {
 public:
-  GetInterfaceThread( SALOME::Session_var s ) : session ( s ) {}
+  GetInterfaceThread( SALOME::Session_var s ) : session ( s )
+  {
+    start();
+  }
 protected:
   virtual void run()
   {
@@ -256,19 +289,87 @@ bool isFound( const char* str, int argc, char** argv )
 // ---------------------------- MAIN -----------------------
 int main( int argc, char **argv )
 {
+  // Install Qt debug messages handler
   qInstallMsgHandler( MessageOutput );
-
-  // QApplication should be create before all other operations
-  // When uses QApplication::libraryPaths() ( example, QFile::encodeName() )
-  // qApp used for detection of the executable dir path.
+  
+  // Create Qt application instance;
+  // this should be done the very first!
   SALOME_QApplication _qappl( argc, argv );
   ASSERT( QObject::connect( &_qappl, SIGNAL( lastWindowClosed() ), &_qappl, SLOT( quit() ) ) );
 
+  // Add application library path (to search style plugin etc...)
   QString path = QDir::convertSeparators( SUIT_Tools::addSlash( QString( ::getenv( "GUI_ROOT_DIR" ) ) ) + QString( "bin/salome" ) );
   _qappl.addLibraryPath( path );
   
+  // Set SALOME style to the application
   _qappl.setStyle( "salome" );
 
+  bool isGUI    = isFound( "GUI",    argc, argv );
+  bool isSplash = isFound( "SPLASH", argc, argv );
+  // Show splash screen (only if both the "GUI" and "SPLASH" parameters are set)
+  QtxSplash* splash = 0;
+  if ( isGUI && isSplash ) {
+    // ...create resource manager
+    SUIT_ResourceMgr resMgr( "SalomeApp", QString( "%1Config" ) );
+    resMgr.setCurrentFormat( "xml" );
+    resMgr.loadLanguage( "LightApp", "en" );
+    // ...get splash preferences
+    QString splashIcon, splashInfo, splashTextColors, splashProgressColors;
+    resMgr.value( "splash", "image",           splashIcon );
+    resMgr.value( "splash", "info",            splashInfo, false );
+    resMgr.value( "splash", "text_colors",     splashTextColors );
+    resMgr.value( "splash", "progress_colors", splashProgressColors );
+    QPixmap px( splashIcon );
+    if ( px.isNull() ) // try to get splash pixmap from resources
+      px = resMgr.loadPixmap( "LightApp", QObject::tr( "ABOUT_SPLASH" ) );
+    if ( !px.isNull() ) {
+      // ...set splash pixmap
+      splash = QtxSplash::splash( px );
+      // ...set splash text colors
+      if ( !splashTextColors.isEmpty() ) {
+       QStringList colors = QStringList::split( "|", splashTextColors );
+       QColor c1, c2;
+       if ( colors.count() > 0 ) c1 = QColor( colors[0] );
+       if ( colors.count() > 1 ) c2 = QColor( colors[1] );
+       splash->setTextColors( c1, c2 );
+      }
+      else {
+       splash->setTextColors( Qt::white, Qt::black );
+      }
+      // ...set splash progress colors
+      if ( !splashProgressColors.isEmpty() ) {
+       QStringList colors = QStringList::split( "|", splashProgressColors );
+       QColor c1, c2;
+       int gradType = QtxSplash::Vertical;
+       if ( colors.count() > 0 ) c1 = QColor( colors[0] );
+       if ( colors.count() > 1 ) c2 = QColor( colors[1] );
+       if ( colors.count() > 2 ) gradType = colors[2].toInt();
+       splash->setProgressColors( c1, c2, gradType );
+      }
+      // ...set splash text font
+      QFont f = splash->font();
+      f.setBold( true );
+      splash->setFont( f );
+      // ...show splash initial status
+      if ( !splashInfo.isEmpty() ) {
+       splashInfo.replace( QRegExp( "%A" ),  QObject::tr( "APP_NAME" ) );
+       splashInfo.replace( QRegExp( "%V" ),  QObject::tr( "ABOUT_VERSION" ).arg( salomeVersion() ) );
+       splashInfo.replace( QRegExp( "%L" ),  QObject::tr( "ABOUT_LICENSE" ) );
+       splashInfo.replace( QRegExp( "%C" ),  QObject::tr( "ABOUT_COPYRIGHT" ) );
+       splashInfo.replace( QRegExp( "\\\\n" ), "\n" );
+       splash->message( splashInfo );
+      }
+      // ...set 'hide on click' flag
+#ifdef _DEBUG_
+      splash->setHideOnClick( true );
+#endif
+      // ...show splash
+      splash->show();
+      qApp->processEvents();
+    }
+  }
+
+  // Initialization
   int result = -1;
 
   CORBA::ORB_var orb;
@@ -280,29 +381,26 @@ int main( int argc, char **argv )
   Session_ServerLauncher* myServerLauncher = 0;
 
   try {
-    
-    // Python initialisation : only once
-
-    int _argc = 1;
+    // ...initialize Python (only once)
+    int   _argc   = 1;
     char* _argv[] = {""};
     KERNEL_PYTHON::init_python( _argc,_argv );
     PyEval_RestoreThread( KERNEL_PYTHON::_gtstate );
     if ( !KERNEL_PYTHON::salome_shared_modules_module ) // import only once
       KERNEL_PYTHON::salome_shared_modules_module = PyImport_ImportModule( "salome_shared_modules" );
-    if ( !KERNEL_PYTHON::salome_shared_modules_module )
-    {
+    if ( !KERNEL_PYTHON::salome_shared_modules_module ) {
       INFOS( "salome_shared_modules_module == NULL" );
       PyErr_Print();
     }
     PyEval_ReleaseThread( KERNEL_PYTHON::_gtstate );
 
-    // Create ORB, get RootPOA object, NamingService, etc.
+    // ...create ORB, get RootPOA object, NamingService, etc.
     ORB_INIT &init = *SINGLETON_<ORB_INIT>::Instance();
     ASSERT( SINGLETON_<ORB_INIT>::IsAlreadyExisting() );
     int orbArgc = 1;
     orb = init( orbArgc, argv );
 
-    // Install SALOME thread event handler
+    // ...install SALOME thread event handler
     SALOME_Event::GetSessionThread();
 
     CORBA::Object_var obj = orb->resolve_initial_references( "RootPOA" );
@@ -337,70 +435,67 @@ int main( int argc, char **argv )
     INFOS( "Caught unknown exception." );
   }
 
-  // CORBA Servant Launcher
-  QMutex _GUIMutex;
-  QWaitCondition _ServerLaunch, _SessionStarted;
-
-  if ( !result )
-  {
-    _GUIMutex.lock();  // to block Launch server thread until wait( mutex )
-
-    // Activate embedded CORBA servers: Registry, SALOMEDS, etc.
-    myServerLauncher = new Session_ServerLauncher( argc, argv, orb, poa, &_GUIMutex, &_ServerLaunch, &_SessionStarted );
-    myServerLauncher->start();
-
-    _ServerLaunch.wait( &_GUIMutex ); // to be reseased by Launch server thread when ready:
+  QMutex _GUIMutex, _SessionMutex, _SplashMutex;
+  QWaitCondition _ServerLaunch, _SessionStarted, _SplashStarted;
+
+  // lock session mutex to ensure that GetInterface is not called
+  // until all initialization is done
+  _SessionMutex.lock();
+
+  if ( !result ) {
+    // Start embedded servers launcher (Registry, SALOMEDS, etc.)
+    // ...lock mutex to block embedded servers launching thread until wait( mutex )
+    _GUIMutex.lock();  
+    // ...create launcher
+    myServerLauncher = new Session_ServerLauncher( argc, argv, orb, poa, &_GUIMutex, &_ServerLaunch, &_SessionMutex, &_SessionStarted );
+    // ...block this thread until launcher is ready
+    _ServerLaunch.wait( &_GUIMutex );
     
-    // show splash screen if "SPLASH" parameter was passed ( default )
-    if ( isFound( "SPLASH", argc, argv ) )
-    {
-      // create temporary resource manager just to load splash icon
-      SUIT_ResourceMgr resMgr( "SalomeApp", QString( "%1Config" ) );
-      resMgr.setCurrentFormat( "xml" );
-      resMgr.loadLanguage( "LightApp", "en" );
-
-      // create splash object: widget ( splash with progress bar ) and "pinging" thread
-      InquireServersGUI splash;
-      splash.setPixmap( resMgr.loadPixmap( "LightApp", QObject::tr( "ABOUT_SPLASH" ) ) );
-      SUIT_Tools::centerWidget( &splash, _qappl.desktop() );
-      
-      _qappl.setMainWidget( &splash );
-      QObject::connect( &_qappl, SIGNAL( lastWindowClosed() ), &_qappl, SLOT( quit() ) );
-      splash.show(); // display splash with running progress bar
-      _qappl.exec(); // wait untill splash closes ( progress runs till end or Cancel is pressed )
-      
-      result = splash.getExitStatus(); // 1 is error
+    // Start servers check thread (splash)
+    if ( splash ) {
+      // ...lock mutex to block splash thread until wait( mutex )
+      _SplashMutex.lock();
+      // ...create servers checking thread
+      Session_ServerCheck sc( &_SplashMutex, &_SplashStarted );
+      // ...block this thread until servers checking is finished
+      _SplashStarted.wait( &_SplashMutex );
+      // ...unlock mutex 'cause it is no more needed
+      _SplashMutex.unlock();
+      // get servers checking thread status
+      result = splash->error();
+      QString info = splash->message().isEmpty() ? "%1" : QString( "%1\n%2" ).arg( splash->message() );
+      splash->setStatus( info.arg( "Activating desktop..." ) );
     }
-    else
-      _SessionStarted.wait();
-  }
 
-  // call Session::GetInterface() if "GUI" parameter was passed ( default )
-  if ( !result && isFound( "GUI", argc, argv ) )
-  {
-    CORBA::Object_var obj = _NS->Resolve( "/Kernel/Session" );
-    SALOME::Session_var session = SALOME::Session::_narrow( obj ) ;
-    ASSERT ( ! CORBA::is_nil( session ) );
-
-    INFOS( "Session activated, Launch IAPP..." );
-    guiThread = new GetInterfaceThread( session );
-    guiThread->start();
+    // Finalize embedded servers launcher 
+    // ...block this thread until launcher is finished
+    _ServerLaunch.wait( &_GUIMutex );
+    // ...unlock mutex 'cause it is no more needed
+    _GUIMutex.unlock();
   }
 
-  if ( !result )
-  {
+  if ( !result ) {
+    // Launch GUI activator
+    if ( isGUI ) {
+      // ...retrieve Session interface reference
+      CORBA::Object_var obj = _NS->Resolve( "/Kernel/Session" );
+      SALOME::Session_var session = SALOME::Session::_narrow( obj ) ;
+      ASSERT ( ! CORBA::is_nil( session ) );
+      // ...create GUI launcher
+      INFOS( "Session activated, Launch IAPP..." );
+      guiThread = new GetInterfaceThread( session );
+    }
 
     // GUI activation
     // Allow multiple activation/deactivation of GUI
-    while ( true )
-    {
+    while ( true ) {
       MESSAGE( "waiting wakeAll()" );
-      _ServerLaunch.wait( &_GUIMutex ); // to be reseased by Launch server thread when ready:
+      _SessionStarted.wait( &_SessionMutex ); // to be reseased by Launch server thread when ready:
       // atomic operation lock - unlock on mutex
       // unlock mutex: serverThread runs, calls _ServerLaunch->wakeAll()
       // this thread wakes up, and lock mutex
 
-      _GUIMutex.unlock();
+      _SessionMutex.unlock();
 
       // SUIT_Session creation
       aGUISession = new SALOME_Session();
@@ -415,7 +510,15 @@ int main( int argc, char **argv )
                                                       // aGUISession contains SalomeApp_ExceptionHandler
        // Run GUI loop
        MESSAGE( "run(): starting the main event loop" );
+
+       if ( splash )
+         splash->finish( aGUIApp->desktop() );
+         
        result = _qappl.exec();
+       
+       if ( splash )
+         delete splash;
+       splash = 0;
 
        if ( result == SUIT_Session::FROM_GUI ) // desktop is closed by user from GUI
          break;
@@ -425,10 +528,13 @@ int main( int argc, char **argv )
       aGUISession = 0;
 
       // Prepare _GUIMutex for a new GUI activation
-      _GUIMutex.lock();
+      _SessionMutex.lock();
     }
   }
 
+  // unlock Session mutex
+  _SessionMutex.unlock();
+  
   if ( myServerLauncher )
     myServerLauncher->KillAll(); // kill embedded servers
 
index 27cc1cdd35a38a6bdc95bdc6bc48a7f48b4a9d09..d23e815df15bc6a5e1ea3f3c777292441c0b59f2 100644 (file)
@@ -38,11 +38,17 @@ using namespace std;
 
 SalomeApp_Engine_i* SalomeApp_Engine_i::myInstance = NULL;
 
+/*!
+  Constructor
+*/
 SalomeApp_Engine_i::SalomeApp_Engine_i()
 {
   myInstance = this;
 }
 
+/*!
+  Destructor
+*/
 SalomeApp_Engine_i::~SalomeApp_Engine_i()
 {
 }
@@ -163,6 +169,9 @@ void SalomeApp_Engine_i::SetListOfFiles (const ListOfFiles theListOfFiles,
   mapOfListOfFiles[componentName] = theListOfFiles;
 }
 
+/*!
+  \return shared instance of engine
+*/
 SalomeApp_Engine_i* SalomeApp_Engine_i::GetInstance()
 {
   return myInstance;
diff --git a/src/Session/Session_ServerCheck.cxx b/src/Session/Session_ServerCheck.cxx
new file mode 100644 (file)
index 0000000..ac4c59c
--- /dev/null
@@ -0,0 +1,509 @@
+// Copyright (C) 2005  OPEN CASCADE, CEA/DEN, EDF R&D, PRINCIPIA R&D
+//
+// This library is free software; you can redistribute it and/or
+// modify it under the terms of the GNU Lesser General Public
+// License as published by the Free Software Foundation; either
+// version 2.1 of the License.
+//
+// This library is distributed in the hope that it will be useful
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+// Lesser General Public License for more details.
+//
+// You should have received a copy of the GNU Lesser General Public
+// License along with this library; if not, write to the Free Software
+// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307 USA
+//
+// See http://www.salome-platform.org/
+//
+// File:      Session_ServerCheck.cxx
+// Author:    Vadim SANDLER
+
+#include "Session_ServerCheck.hxx"
+#include <QtxSplash.h>
+
+#include <SALOMEconfig.h>
+#include CORBA_CLIENT_HEADER(SALOME_Session)
+#include CORBA_CLIENT_HEADER(SALOME_Registry)
+#include CORBA_CLIENT_HEADER(SALOMEDS)
+#include CORBA_CLIENT_HEADER(SALOME_ModuleCatalog)
+#include CORBA_CLIENT_HEADER(SALOME_Component)
+
+#include "Utils_ORB_INIT.hxx"
+#include "Utils_SINGLETON.hxx"
+#include "SALOME_NamingService.hxx"
+#include "utilities.h"
+#include "OpUtil.hxx"
+
+// Default settings
+const int __DEFAULT__ATTEMPTS__ = 300;      // number of checks attemtps
+                                            // can be overrided by CSF_RepeatServerRequest
+                                            // environment variable
+const int __DEFAULT__DELAY__    = 100000;   // delay between attempts (microseconds)
+                                            // can be overrided by CSF_DelayServerRequest
+                                            // environment variable
+
+/*!
+  Constructor
+*/
+Session_ServerCheck::Session_ServerCheck( QMutex* mutex, QWaitCondition* wc )
+  : QThread(),
+    myMutex( mutex ),
+    myWC( wc ),
+    myCheckCppContainer( false ),
+    myCheckPyContainer( false ),
+    myCheckSVContainer( false ),
+    myAttempts( __DEFAULT__ATTEMPTS__ ),
+    myDelay   ( __DEFAULT__DELAY__ )
+{
+  char* cenv;
+  // try to get nb of attempts from environment variable
+  if ( ( cenv = getenv( "CSF_RepeatServerRequest" ) ) && atoi( cenv ) > 0 )
+    myAttempts = atoi( cenv );
+  // try to get delay between attempts from environment variable
+  if ( ( cenv = getenv( "CSF_DelayServerRequest" ) ) && atoi( cenv ) > 0 )
+    myDelay = atoi( cenv );
+
+  // check if it is necessary to wait containers
+  for ( int i = 1; i < qApp->argc(); i++ ) {
+    if ( !strcmp( qApp->argv()[i], "CPP" ) )
+      myCheckCppContainer = true;
+    if ( !strcmp( qApp->argv()[i], "PY" ) )
+      myCheckPyContainer = true;
+    if ( !strcmp( qApp->argv()[i], "SUPERV" ) )
+      myCheckSVContainer = true;
+  }
+  
+  // start thread
+  start();
+}
+
+/*!
+  Destructor
+*/
+Session_ServerCheck::~Session_ServerCheck()
+{
+}
+
+/*!
+  Thread loop. Checnk SALOME servers and shows status message
+  in the splash screen.
+*/
+void Session_ServerCheck::run()
+{
+  // automatic locker
+  class Locker
+  {
+  public:
+    QMutex*         _m;
+    QWaitCondition* _wc;
+    Locker( QMutex* m, QWaitCondition* wc ) : _m( m ), _wc( wc )
+    {
+      _m->lock();
+      _m->unlock(); 
+    }
+    ~Locker()
+    {
+      _wc->wakeAll();
+    }
+  };
+
+  // lock mutex (ensure splash is shown)
+  Locker locker( myMutex, myWC );
+
+  // set initial splash status
+  QtxSplash* splash = QtxSplash::splash();
+
+  int cnt = 5;                       // base servers
+  if ( myCheckCppContainer ) cnt++;  // + C++ container
+  if ( myCheckPyContainer )  cnt++;  // + Python container
+  if ( myCheckSVContainer )  cnt++;  // + supervision container
+
+  splash->setProgress( 0, cnt * myAttempts );
+  QString initialInfo = splash->message();
+  QString info = initialInfo.isEmpty() ? "%1" : QString( "%1\n%2" ).arg( initialInfo );
+
+  // start check servers
+  int i;
+  int current = 0;
+  bool bOk;
+  QString error;
+  int    argc = qApp->argc();
+  char** argv = qApp->argv();
+
+  // 1. Check naming service
+  bOk = false;
+  for ( i = 0; i < myAttempts ; i++ ) {
+    QtxSplash::setStatus( info.arg( "Waiting for naming service..." ), current * myAttempts + i );
+    QThread::usleep( i == 0 ? 500000 : myDelay );
+    try {
+      CORBA::ORB_var orb = CORBA::ORB_init( argc, argv );
+      CORBA::Object_var obj = orb->resolve_initial_references( "NameService" );
+      CosNaming::NamingContext_var _root_context = CosNaming::NamingContext::_narrow( obj );
+      if ( !CORBA::is_nil( _root_context ) ) {
+       bOk = true;
+       break;
+      }
+    }
+    catch( CORBA::COMM_FAILURE& ) {
+      MESSAGE( "CORBA::COMM_FAILURE: unable to contact the naming service" );
+    }
+    catch( ... ) {
+      MESSAGE( "Unknown Exception: unable to contact the naming service" );
+    }
+  }
+  if ( !bOk ) {
+    QtxSplash::error( "Unable to contact the naming service.\n%1" );
+    return;
+  }
+  QtxSplash::setStatus( info.arg( "Waiting for naming service...OK" ), ++current * myAttempts );
+  QThread::usleep( 300000 );
+  
+  // 2. Check registry server
+  bOk = false;
+  for ( i = 0; i < myAttempts ; i++ ) {
+    QtxSplash::setStatus( info.arg( "Waiting for registry server..." ), current * myAttempts + i );
+    QThread::usleep( i == 0 ? 500000 : myDelay );
+    try {
+      CORBA::ORB_var orb = CORBA::ORB_init( argc, argv );
+      SALOME_NamingService &NS = *SINGLETON_<SALOME_NamingService>::Instance();
+      ASSERT( SINGLETON_<SALOME_NamingService>::IsAlreadyExisting() );
+      NS.init_orb( orb );
+      CORBA::Object_var obj = NS.Resolve( "/Registry" );
+      Registry::Components_var registry = Registry::Components::_narrow( obj );
+      if ( !CORBA::is_nil( registry ) ) {
+       MESSAGE( "/Registry is found" );
+       registry->ping();
+       MESSAGE( "Registry was activated" );
+       bOk = true;
+       break;
+      }
+    }
+    catch ( ServiceUnreachable& ) {
+      MESSAGE( "Caught exception: Naming Service unreachable." );
+      error = "Naming service unreachable";
+    }
+    catch ( CORBA::COMM_FAILURE& ) {
+      MESSAGE( "Caught CORBA::SystemException CommFailure." );
+      error = "Caught CORBA::SystemException CommFailure.";
+    }
+    catch ( CORBA::SystemException& ) {
+      MESSAGE( "Caught CORBA::SystemException." );
+      error = "Caught CORBA::SystemException.";
+    }
+    catch ( CORBA::Exception& ) {
+      MESSAGE( "Caught CORBA::Exception." );
+      error = "Caught CORBA::Exception.";
+    }
+    catch (...) {
+      MESSAGE( "Caught unknown exception." );
+      error = "Caught unknown exception.";
+    }
+  }
+  if ( !bOk ) {
+    QtxSplash::error( QString( "Registry server is not found.\n%1" ).arg ( error ) );
+    return;
+  }
+  QtxSplash::setStatus( info.arg( "Waiting for registry server...OK" ), ++current * myAttempts );
+  QThread::usleep( 300000 );
+
+  // 3. Check data server
+  bOk = false;
+  for ( i = 0; i < myAttempts ; i++ ) {
+    QtxSplash::setStatus( info.arg( "Waiting for study server..." ), current * myAttempts + i );
+    QThread::usleep( i == 0 ? 500000 : myDelay );
+    try {
+      CORBA::ORB_var orb = CORBA::ORB_init( argc, argv );
+      SALOME_NamingService &NS = *SINGLETON_<SALOME_NamingService>::Instance();
+      ASSERT( SINGLETON_<SALOME_NamingService>::IsAlreadyExisting() );
+      NS.init_orb( orb );
+      CORBA::Object_var obj = NS.Resolve( "/myStudyManager" );
+      SALOMEDS::StudyManager_var studyManager = SALOMEDS::StudyManager::_narrow( obj );
+      if ( !CORBA::is_nil( studyManager ) ) {
+       MESSAGE( "/myStudyManager is found" );
+       studyManager->ping();
+       MESSAGE( "StudyManager was activated" );
+       bOk = true;
+       break;
+      }
+    }
+    catch ( ServiceUnreachable& ) {
+      MESSAGE( "Caught exception: Naming Service unreachable." );
+      error = "Naming service unreachable";
+    }
+    catch ( CORBA::COMM_FAILURE& ) {
+      MESSAGE( "Caught CORBA::SystemException CommFailure." );
+      error = "Caught CORBA::SystemException CommFailure.";
+    }
+    catch ( CORBA::SystemException& ) {
+      MESSAGE( "Caught CORBA::SystemException." );
+      error = "Caught CORBA::SystemException.";
+    }
+    catch ( CORBA::Exception& ) {
+      MESSAGE( "Caught CORBA::Exception." );
+      error = "Caught CORBA::Exception.";
+    }
+    catch (...) {
+      MESSAGE( "Caught unknown exception." );
+      error = "Caught unknown exception.";
+    }
+  }
+  if ( !bOk ) {
+    QtxSplash::error( QString( "Study server is not found.\n%1" ).arg ( error ) );
+    return;
+  }
+  QtxSplash::setStatus( info.arg( "Waiting for study server...OK" ), ++current * myAttempts );
+  QThread::usleep( 300000 );
+
+  // 4. Check module catalogue server
+  bOk = false;
+  for ( i = 0; i < myAttempts ; i++ ) {
+    QtxSplash::setStatus( info.arg( "Waiting for module catalogue server..." ), current * myAttempts + i );
+    QThread::usleep( i == 0 ? 500000 : myDelay );
+    try {
+      CORBA::ORB_var orb = CORBA::ORB_init( argc, argv );
+      SALOME_NamingService &NS = *SINGLETON_<SALOME_NamingService>::Instance();
+      ASSERT( SINGLETON_<SALOME_NamingService>::IsAlreadyExisting() );
+      NS.init_orb( orb );
+      CORBA::Object_var obj = NS.Resolve( "/Kernel/ModulCatalog" );
+      SALOME_ModuleCatalog::ModuleCatalog_var catalog = SALOME_ModuleCatalog::ModuleCatalog::_narrow( obj );
+      if ( !CORBA::is_nil( catalog ) ){
+       MESSAGE( "/Kernel/ModulCatalog is found" );
+       catalog->ping();
+       MESSAGE( "ModuleCatalog was activated" );
+       bOk = true;
+       break;
+      }
+    }
+    catch ( ServiceUnreachable& ) {
+      MESSAGE( "Caught exception: Naming Service unreachable." );
+      error = "Naming service unreachable";
+    }
+    catch ( CORBA::COMM_FAILURE& ) {
+      MESSAGE( "Caught CORBA::SystemException CommFailure." );
+      error = "Caught CORBA::SystemException CommFailure.";
+    }
+    catch ( CORBA::SystemException& ) {
+      MESSAGE( "Caught CORBA::SystemException." );
+      error = "Caught CORBA::SystemException.";
+    }
+    catch ( CORBA::Exception& ) {
+      MESSAGE( "Caught CORBA::Exception." );
+      error = "Caught CORBA::Exception.";
+    }
+    catch (...) {
+      MESSAGE( "Caught unknown exception." );
+      error = "Caught unknown exception.";
+    }
+  }
+  if ( !bOk ) {
+    QtxSplash::error( QString( "Module catalogue server is not found.\n%1" ).arg ( error ) );
+    return;
+  }
+  QtxSplash::setStatus( info.arg( "Waiting for module catalogue server...OK" ), ++current * myAttempts );
+  QThread::usleep( 300000 );
+
+  // 5. Check data server
+  bOk = false;
+  for ( i = 0; i < myAttempts ; i++ ) {
+    QtxSplash::setStatus( info.arg( "Waiting for session server..." ), current * myAttempts + i );
+    QThread::usleep( i == 0 ? 500000 : myDelay );
+    try {
+      CORBA::ORB_var orb = CORBA::ORB_init( argc, argv );
+      SALOME_NamingService &NS = *SINGLETON_<SALOME_NamingService>::Instance();
+      ASSERT( SINGLETON_<SALOME_NamingService>::IsAlreadyExisting() );
+      NS.init_orb( orb );
+      CORBA::Object_var obj = NS.Resolve( "/Kernel/Session" );
+      SALOME::Session_var session = SALOME::Session::_narrow( obj );
+      if ( !CORBA::is_nil( session ) ) {
+       MESSAGE( "/Kernel/Session is found" );
+       session->ping();
+       MESSAGE( "SALOME_Session was activated" );
+       bOk = true;
+       break;
+      }
+    }
+    catch ( ServiceUnreachable& ) {
+      MESSAGE( "Caught exception: Naming Service unreachable." );
+      error = "Naming service unreachable";
+    }
+    catch ( CORBA::COMM_FAILURE& ) {
+      MESSAGE( "Caught CORBA::SystemException CommFailure." );
+      error = "Caught CORBA::SystemException CommFailure.";
+    }
+    catch ( CORBA::SystemException& ) {
+      MESSAGE( "Caught CORBA::SystemException." );
+      error = "Caught CORBA::SystemException.";
+    }
+    catch ( CORBA::Exception& ) {
+      MESSAGE( "Caught CORBA::Exception." );
+      error = "Caught CORBA::Exception.";
+    }
+    catch (...) {
+      MESSAGE( "Caught unknown exception." );
+      error = "Caught unknown exception.";
+    }
+  }
+  if ( !bOk ) {
+    QtxSplash::error( QString( "Session server is not found.\n%1" ).arg ( error ) );
+    return;
+  }
+  QtxSplash::setStatus( info.arg( "Waiting for session server...OK" ), ++current * myAttempts );
+  QThread::usleep( 300000 );
+
+  // 6. Check C++ container
+  if ( myCheckCppContainer ) {
+    bOk = false;
+    for ( i = 0; i < myAttempts ; i++ ) {
+      QtxSplash::setStatus( info.arg( "Waiting for C++ container..." ), current * myAttempts + i );
+      QThread::usleep( i == 0 ? 500000 : myDelay );
+      try {
+       CORBA::ORB_var orb = CORBA::ORB_init( argc, argv );
+       SALOME_NamingService &NS = *SINGLETON_<SALOME_NamingService>::Instance();
+       ASSERT( SINGLETON_<SALOME_NamingService>::IsAlreadyExisting() );
+       NS.init_orb( orb );
+       QString containerName = QString( "/Containers/%1/FactoryServer" ).arg( GetHostname() );
+       CORBA::Object_var obj = NS.Resolve( containerName.latin1() );
+       Engines::Container_var FScontainer = Engines::Container::_narrow( obj );
+       if ( !CORBA::is_nil( FScontainer ) ) {
+         MESSAGE( containerName.latin1() << " is found" );
+         FScontainer->ping();
+         MESSAGE( "FactoryServer container was activated" );
+         bOk = true;
+         break;
+       }
+      }
+      catch ( ServiceUnreachable& ) {
+       MESSAGE( "Caught exception: Naming Service unreachable." );
+       error = "Naming service unreachable";
+      }
+      catch ( CORBA::COMM_FAILURE& ) {
+       MESSAGE( "Caught CORBA::SystemException CommFailure." );
+       error = "Caught CORBA::SystemException CommFailure.";
+      }
+      catch ( CORBA::SystemException& ) {
+       MESSAGE( "Caught CORBA::SystemException." );
+       error = "Caught CORBA::SystemException.";
+      }
+      catch ( CORBA::Exception& ) {
+       MESSAGE( "Caught CORBA::Exception." );
+       error = "Caught CORBA::Exception.";
+      }
+      catch (...) {
+       MESSAGE( "Caught unknown exception." );
+       error = "Caught unknown exception.";
+      }
+    }
+    if ( !bOk ) {
+      QtxSplash::error( QString( "C++ container is not found.\n%1" ).arg ( error ) );
+      return;
+    }
+    QtxSplash::setStatus( info.arg( "Waiting for C++ container...OK" ), ++current * myAttempts );
+    QThread::usleep( 300000 );
+  }
+
+  // 7. Check Python container
+  if ( myCheckPyContainer ) {
+    bOk = false;
+    for ( i = 0; i < myAttempts ; i++ ) {
+      QtxSplash::setStatus( info.arg( "Waiting for Python container..." ), current * myAttempts + i );
+      QThread::usleep( i == 0 ? 500000 : myDelay );
+      try {
+       CORBA::ORB_var orb = CORBA::ORB_init( argc, argv );
+       SALOME_NamingService &NS = *SINGLETON_<SALOME_NamingService>::Instance();
+       ASSERT( SINGLETON_<SALOME_NamingService>::IsAlreadyExisting() );
+       NS.init_orb( orb );
+       QString containerName = QString( "/Containers/%1/FactoryServerPy" ).arg( GetHostname() );
+       CORBA::Object_var obj = NS.Resolve( containerName.latin1() );
+       Engines::Container_var FSPcontainer = Engines::Container::_narrow( obj );
+       if ( !CORBA::is_nil( FSPcontainer ) ) {
+         MESSAGE( containerName.latin1() << " is found" );
+         FSPcontainer->ping();
+         MESSAGE("FactoryServerPy container was activated");
+         bOk = true;
+         break;
+       }
+      }
+      catch ( ServiceUnreachable& ) {
+       MESSAGE( "Caught exception: Naming Service unreachable." );
+       error = "Naming service unreachable";
+      }
+      catch ( CORBA::COMM_FAILURE& ) {
+       MESSAGE( "Caught CORBA::SystemException CommFailure." );
+       error = "Caught CORBA::SystemException CommFailure.";
+      }
+      catch ( CORBA::SystemException& ) {
+       MESSAGE( "Caught CORBA::SystemException." );
+       error = "Caught CORBA::SystemException.";
+      }
+      catch ( CORBA::Exception& ) {
+       MESSAGE( "Caught CORBA::Exception." );
+       error = "Caught CORBA::Exception.";
+      }
+      catch (...) {
+       MESSAGE( "Caught unknown exception." );
+       error = "Caught unknown exception.";
+      }
+    }
+    if ( !bOk ) {
+      QtxSplash::error( QString( "Python container is not found.\n%1" ).arg ( error ) );
+      return;
+    }
+    QtxSplash::setStatus( info.arg( "Waiting for Python container...OK" ), ++current * myAttempts );
+    QThread::usleep( 300000 );
+  }
+
+  // 8. Check supervision container
+  if ( myCheckSVContainer ) {
+    bOk = false;
+    for ( i = 0; i < myAttempts ; i++ ) {
+      QtxSplash::setStatus( info.arg( "Waiting for Supervision container..." ), current * myAttempts + i );
+      QThread::usleep( i == 0 ? 500000 : myDelay );
+      try {
+       CORBA::ORB_var orb = CORBA::ORB_init( argc, argv );
+       SALOME_NamingService &NS = *SINGLETON_<SALOME_NamingService>::Instance();
+       ASSERT( SINGLETON_<SALOME_NamingService>::IsAlreadyExisting() );
+       NS.init_orb( orb );
+       QString containerName = QString( "/Containers/%1/SuperVisionContainer" ).arg( GetHostname() );
+       CORBA::Object_var obj = NS.Resolve( containerName.latin1() );
+       Engines::Container_var SVcontainer = Engines::Container::_narrow( obj );
+       if ( !CORBA::is_nil( SVcontainer ) ) {
+         MESSAGE( containerName.latin1() << " is found" );
+         SVcontainer->ping();
+         MESSAGE("SuperVisionContainer container was activated");
+         bOk = true;
+         break;
+       }
+      }
+      catch ( ServiceUnreachable& ) {
+       MESSAGE( "Caught exception: Naming Service unreachable." );
+       error = "Naming service unreachable";
+      }
+      catch ( CORBA::COMM_FAILURE& ) {
+       MESSAGE( "Caught CORBA::SystemException CommFailure." );
+       error = "Caught CORBA::SystemException CommFailure.";
+      }
+      catch ( CORBA::SystemException& ) {
+       MESSAGE( "Caught CORBA::SystemException." );
+       error = "Caught CORBA::SystemException.";
+      }
+      catch ( CORBA::Exception& ) {
+       MESSAGE( "Caught CORBA::Exception." );
+       error = "Caught CORBA::Exception.";
+      }
+      catch (...) {
+       MESSAGE( "Caught unknown exception." );
+       error = "Caught unknown exception.";
+      }
+    }
+    if ( !bOk ) {
+      QtxSplash::error( QString( "Supervision container is not found.\n%1" ).arg ( error ) );
+      return;
+    }
+    QtxSplash::setStatus( info.arg( "Waiting for Supervision container...OK" ), ++current * myAttempts );
+    QThread::usleep( 300000 );
+  }
+  // clear splash status
+  splash->setProgress( 0, 0 );
+  splash->setStatus( initialInfo );
+}
diff --git a/src/Session/Session_ServerCheck.hxx b/src/Session/Session_ServerCheck.hxx
new file mode 100644 (file)
index 0000000..e4d7a83
--- /dev/null
@@ -0,0 +1,62 @@
+// Copyright (C) 2005  OPEN CASCADE, CEA/DEN, EDF R&D, PRINCIPIA R&D
+//
+// This library is free software; you can redistribute it and/or
+// modify it under the terms of the GNU Lesser General Public
+// License as published by the Free Software Foundation; either
+// version 2.1 of the License.
+//
+// This library is distributed in the hope that it will be useful
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+// Lesser General Public License for more details.
+//
+// You should have received a copy of the GNU Lesser General Public
+// License along with this library; if not, write to the Free Software
+// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307 USA
+//
+// See http://www.salome-platform.org/
+//
+// File:      Session_ServerCheck.hxx
+// Author:    Vadim SANDLER
+
+#if !defined(SESSION_SERVERCHECK_HXX)
+#define SESSION_SERVERCHECK_HXX
+
+#ifdef WNT
+#include <SALOME_WNT.hxx>
+#else
+#define SALOME_WNT_EXPORT
+#endif
+
+#include <qthread.h> 
+#include <qapplication.h> 
+
+class QMutex;
+class QWaitCondition;
+
+/*!
+  Class Session_ServerCheck : check SALOME servers
+*/
+class SALOME_WNT_EXPORT Session_ServerCheck : public QThread
+{
+public:
+  // constructor
+  Session_ServerCheck( QMutex*, QWaitCondition* );
+  // destructor
+  virtual ~Session_ServerCheck();
+
+  // thread loop
+  virtual void run() ;
+
+private:
+  QMutex*         myMutex;             // splash mutex
+  QWaitCondition* myWC;                // splash wait condition
+
+  bool            myCheckCppContainer; // flag : check C++ container ?
+  bool            myCheckPyContainer;  // flag : check Python container ?
+  bool            myCheckSVContainer;  // flag : check supervision container ?
+  int             myAttempts;          // number of checks attemtps to get response from server
+  int             myDelay;             // delay between two attempts in microseconds
+};
+
+#endif
index b15f682a57e3812e4b5a7248d7d0ccd5bf46e4fd..b73bebeabe669ea51999b3cbb8557cd321850e30 100755 (executable)
 #include "Utils_SALOME_Exception.hxx"
 #include "utilities.h"
 using namespace std;
-//=============================================================================
 /*! 
*  default constructor not for use
+   default constructor not for use
  */
-//=============================================================================
-
 Session_ServerLauncher::Session_ServerLauncher()
 {
   ASSERT(0); // must not be called
 }
 
-//=============================================================================
 /*! 
- *  constructor
- */
-//=============================================================================
-
+  constructor
+*/
 Session_ServerLauncher::Session_ServerLauncher(int argc,
                                               char ** argv, 
                                               CORBA::ORB_ptr orb, 
                                               PortableServer::POA_ptr poa,
                                               QMutex *GUIMutex,
                                               QWaitCondition *ServerLaunch,
+                                              QMutex *SessionMutex,
                                               QWaitCondition *SessionStarted)
 {
   _argc = argc;
@@ -62,45 +57,51 @@ Session_ServerLauncher::Session_ServerLauncher(int argc,
   _root_poa = PortableServer::POA::_duplicate(poa);
   _GUIMutex = GUIMutex;
   _ServerLaunch = ServerLaunch;
+  _SessionMutex = SessionMutex;
   _SessionStarted = SessionStarted;
+
+  // start thread
+  start();
 }
 
-//=============================================================================
 /*! 
- *  destructor
- */
-//=============================================================================
-
+  destructor
+*/
 Session_ServerLauncher::~Session_ServerLauncher()
 {
 }
 
-//=============================================================================
 /*! 
- *  Check args and activate servers
- */
-//=============================================================================
-
+  Check args and activate servers
+*/
 void Session_ServerLauncher::run()
 {
-  _GUIMutex->lock(); // lock released by calling thread when ready: wait(mutex)
-  _GUIMutex->unlock();
+  // wait until main thread is ready
+  _GUIMutex->lock();          // ... lock mutex (it is unlocked my calling thread 
+                              // wait condition's wait(mutex)
+  _GUIMutex->unlock();        // ... and unlock it 'cause it is not more needed
+
+  // wake main thread
   _ServerLaunch->wakeAll();
 
   CheckArgs();
   ActivateAll();
 
-  _SessionStarted->wakeAll(); // wake main thread
+  // wait until main thread is ready
+  _GUIMutex->lock();          // ... lock mutex (it is unlocked my calling thread 
+                              // wait condition's wait(mutex)
+  _GUIMutex->unlock();        // ... and unlock it 'cause it is not more needed
 
-  _orb->run();       // this thread wait, during omniORB process events
+  // wake main thread
+  _ServerLaunch->wakeAll();
+
+  // run ORB
+  _orb->run(); // this thread waits, during omniORB process events
 }
 
-//=============================================================================
 /*! 
- *  controls and dispatchs arguments given with command
- */
-//=============================================================================
-
+  controls and dispatchs arguments given with command
+*/
 void Session_ServerLauncher::CheckArgs()
 {
   int argState = 0;
@@ -175,12 +176,6 @@ void Session_ServerLauncher::CheckArgs()
     throw SALOME_Exception(LOCALIZED("Error in command arguments, missing parenthesis ')'"));
 }
 
-//=============================================================================
-/*! 
- *  
- */
-//=============================================================================
-
 void Session_ServerLauncher::ActivateAll()
 {
   list<ServArg>::iterator itServ;
@@ -201,7 +196,7 @@ void Session_ServerLauncher::ActivateAll()
     std::cout << "*** activating [" << argc << "] : " << argv[0] << std::endl;
 
     Session_ServerThread* aServerThread
-      = new Session_ServerThread(argc, argv, _orb,_root_poa,_GUIMutex);
+      = new Session_ServerThread(argc, argv, _orb,_root_poa);
     _serverThreads.push_front(aServerThread);
     
     aServerThread->Init();
@@ -214,18 +209,15 @@ void Session_ServerLauncher::ActivateAll()
   char** argv = new char*[argc];
   argv[0] = "Session";
   Session_SessionThread* aServerThread
-    = new Session_SessionThread(argc, argv, _orb,_root_poa,_GUIMutex,_ServerLaunch);
+    = new Session_SessionThread(argc, argv, _orb,_root_poa,_SessionMutex,_SessionStarted);
   _serverThreads.push_front(aServerThread);
 
   aServerThread->Init();
 }
 
-//=============================================================================
 /*! 
- *  Destruction des classes serveur dans l'ordre inverse de creation
- */
-//=============================================================================
-
+  Destruction des classes serveur dans l'ordre inverse de creation
+*/
 void Session_ServerLauncher::KillAll()
 {
   MESSAGE("Session_ServerLauncher::KillAll()");
index 8791b6698e74e078e5a41d58b5093fd4dcd17afb..7c97199fee1a3eed666c5a7b1c31477361f3f9fe 100755 (executable)
@@ -70,6 +70,7 @@ public:
                         PortableServer::POA_ptr poa,
                         QMutex *GUIMutex,
                         QWaitCondition *ServerLaunch,
+                        QMutex *SessionMutex,
                         QWaitCondition *SessionStarted);
   virtual ~Session_ServerLauncher();
   void run();
@@ -82,13 +83,14 @@ protected:
 private:
   int _argc;
   char ** _argv;
-  CORBA::ORB_var _orb;
-  PortableServer::POA_var _root_poa;
-  QMutex* _GUIMutex;
-  QWaitCondition *_ServerLaunch;
-  QWaitCondition *_SessionStarted;
-  list<ServArg> _argServToLaunch;
-  vector<string> _argCopy;
+  CORBA::ORB_var              _orb;
+  PortableServer::POA_var     _root_poa;
+  QMutex*                     _GUIMutex;
+  QWaitCondition*             _ServerLaunch;
+  QMutex*                     _SessionMutex;
+  QWaitCondition*             _SessionStarted;
+  list<ServArg>               _argServToLaunch;
+  vector<string>              _argCopy;
   list<Session_ServerThread*> _serverThreads;
 };
 
index a0d00d9eab551d73642e937a7c77288399534000..9538b4de299622b89b6e13bef2d5008ba78171dc 100755 (executable)
@@ -62,58 +62,44 @@ const char* Session_ServerThread::_serverTypes[NB_SRV_TYP] = {"Container",
                                                              "SalomeAppEngine",
                                                               "ContainerManager"};
 
-//=============================================================================
 /*! 
- *  default constructor not for use
- */
-//=============================================================================
-
+  default constructor not for use
+*/
 Session_ServerThread::Session_ServerThread()
 {
   ASSERT(0); // must not be called
 }
 
-//=============================================================================
 /*! 
- *  constructor
- */
-//=============================================================================
-
+  constructor
+*/
 Session_ServerThread::Session_ServerThread(int argc,
                                           char ** argv, 
                                           CORBA::ORB_ptr orb, 
-                                          PortableServer::POA_ptr poa,
-                                          QMutex *GUIMutex)
+                                          PortableServer::POA_ptr poa)
 {
   //MESSAGE("Session_ServerThread Constructor " << argv[0]);
   _argc = argc;
   _argv = argv;
   _orb = CORBA::ORB::_duplicate(orb);
   _root_poa = PortableServer::POA::_duplicate(poa);
-  _GUIMutex = GUIMutex;
   _servType =-1;
   _NS = new SALOME_NamingService(_orb); // one instance per server to limit
                                         // multi thread coherence problems
 }
 
-//=============================================================================
 /*! 
- *  destructor 
- */
-//=============================================================================
-
+  destructor 
+*/
 Session_ServerThread::~Session_ServerThread()
 {
   //MESSAGE("~Session_ServerThread "<< _argv[0]);
 }
 
-//=============================================================================
 /*! 
- *  run the thread : activate one servant, the servant type is given by
- *  argument _argv[0]
- */
-//=============================================================================
-
+  run the thread : activate one servant, the servant type is given by
+  argument _argv[0]
+*/
 void Session_ServerThread::Init()
 {
   MESSAGE("Session_ServerThread::Init "<< _argv[0]); 
@@ -186,12 +172,6 @@ void Session_ServerThread::Init()
       }
 }
 
-//=============================================================================
-/*! 
- *  
- */
-//=============================================================================
-
 void Session_ServerThread::ActivateModuleCatalog(int argc,
                                                 char ** argv)
 {
@@ -231,12 +211,6 @@ void Session_ServerThread::ActivateModuleCatalog(int argc,
     }
 }
 
-//=============================================================================
-/*! 
- *  
- */
-//=============================================================================
-
 void Session_ServerThread::ActivateSALOMEDS(int argc,
                                            char ** argv)
 {
@@ -270,12 +244,6 @@ void Session_ServerThread::ActivateSALOMEDS(int argc,
     }
 }
 
-//=============================================================================
-/*! 
- *  
- */
-//=============================================================================
-
 void Session_ServerThread::ActivateRegistry(int argc,
                                            char ** argv)
 {
@@ -332,12 +300,6 @@ void Session_ServerThread::ActivateRegistry(int argc,
     }
 }
 
-//=============================================================================
-/*! 
- *  
- */
-//=============================================================================
-
 void Session_ServerThread::ActivateContainerManager(int argc,
                                             char ** argv)
 {
@@ -370,12 +332,6 @@ void Session_ServerThread::ActivateContainerManager(int argc,
     }
 }
 
-//=============================================================================
-/*! 
- *  
- */
-//=============================================================================
-
 void Session_ServerThread::ActivateContainer(int argc,
                                             char ** argv)
 {
@@ -460,12 +416,6 @@ void Session_ServerThread::ActivateContainer(int argc,
     }
 }
 
-//=============================================================================
-/*! 
- *  
- */
-//=============================================================================
-
 void Session_ServerThread::ActivateEngine(int /*argc*/, char ** /*argv*/)
 {
     try
@@ -493,29 +443,30 @@ void Session_ServerThread::ActivateEngine(int /*argc*/, char ** /*argv*/)
       }  
 }
 
-//=============================================================================
-/*! 
- *  
- */
-//=============================================================================
-
 void Session_ServerThread::ActivateSession(int argc,
                                           char ** argv)
 {
   MESSAGE("Session_ServerThread::ActivateSession() not implemented!");
 }
 
+/*! 
+  constructor 
+*/
 Session_SessionThread::Session_SessionThread(int argc,
                                             char** argv, 
                                             CORBA::ORB_ptr orb, 
                                             PortableServer::POA_ptr poa,
                                             QMutex* GUIMutex,
                                             QWaitCondition* GUILauncher)
-: Session_ServerThread(argc, argv, orb, poa, GUIMutex),
+: Session_ServerThread(argc, argv, orb, poa),
+  _GUIMutex( GUIMutex ),
   _GUILauncher( GUILauncher )
 {
 }
 
+/*! 
+  destructor 
+*/
 Session_SessionThread::~Session_SessionThread()
 {
 }
index a10ab0ce6170fabdc44f41f25185ed7ddc591256..de87612edb8aaa2634a61b0935f080c15a8bfa40 100755 (executable)
@@ -50,8 +50,7 @@ public:
   Session_ServerThread(int argc,
                       char ** argv, 
                       CORBA::ORB_ptr orb, 
-                      PortableServer::POA_ptr poa,
-                      QMutex *GUIMutex);
+                      PortableServer::POA_ptr poa);
   virtual ~Session_ServerThread();
   void         Init();
 protected:
@@ -68,7 +67,6 @@ protected:
   int                     _servType;
   CORBA::ORB_var          _orb;
   PortableServer::POA_var _root_poa;
-  QMutex*                 _GUIMutex;
   SALOME_NamingService *  _NS;
 };
 
@@ -88,6 +86,7 @@ public:
 protected:
   virtual void ActivateSession       ( int argc, char ** argv );
 private:
+  QMutex*                 _GUIMutex;
   QWaitCondition*         _GUILauncher;
 };
 
index 1a9662eea467dccda36069ff6ecb7a04ef3199bd..1e337b0352994213cc57309adc8bfe2c71e0283d 100755 (executable)
 
 using namespace std;
 
-//=============================================================================
-/*! SALOME_Session_i
- *  constructor
- */
-//=============================================================================
-
+/*!
+  constructor
+*/
 SALOME_Session_i::SALOME_Session_i(int argc,
                                   char ** argv,
                                   CORBA::ORB_ptr orb,
@@ -69,12 +66,9 @@ SALOME_Session_i::SALOME_Session_i(int argc,
   //MESSAGE("constructor end");
 }
 
-//=============================================================================
-/*! GetVisuComponent
- *  returns Visu component
- */
-//=============================================================================
-
+/*!
+  returns Visu component
+*/
 Engines::Component_ptr SALOME_Session_i::GetComponent(const char* theLibraryName)
 {
   typedef Engines::Component_ptr TGetImpl(CORBA::ORB_ptr,
@@ -87,24 +81,18 @@ Engines::Component_ptr SALOME_Session_i::GetComponent(const char* theLibraryName
   return Engines::Component::_nil();
 }
 
-//=============================================================================
-/*! ~SALOME_Session_i
- *  destructor
- */
-//=============================================================================
-
+/*!
+  destructor
+*/
 SALOME_Session_i::~SALOME_Session_i()
 {
   //MESSAGE("destructor end");
 }
 
-//=============================================================================
-/*! NSregister
- *  tries to find the Corba Naming Service and to register the session,
- *  gives naming service interface to _IAPPThread
- */
-//=============================================================================
-
+/*!
+  tries to find the Corba Naming Service and to register the session,
+  gives naming service interface to _IAPPThread
+*/
 void SALOME_Session_i::NSregister()
 {
   SALOME::Session_ptr pSession = SALOME::Session::_narrow(_this());
@@ -125,13 +113,10 @@ void SALOME_Session_i::NSregister()
   //MESSAGE("Session registered in Naming Service");
 }
 
-//=============================================================================
-/*! GetInterface
- *  Launches the GUI if there is none.
- *  The Corba method is oneway (corba client does'nt wait for GUI completion)
- */
-//=============================================================================
-
+/*!
+  Launches the GUI if there is none.
+  The Corba method is oneway (corba client does'nt wait for GUI completion)
+*/
 void SALOME_Session_i::GetInterface()
 {
   _GUIMutex->lock();
@@ -143,11 +128,9 @@ void SALOME_Session_i::GetInterface()
       }
 }
 
-//=============================================================================
-/*! StopSession
- *  Kills the session if there are no active studies nore GUI
- */
-//=============================================================================
+/*!
+  Kills the session if there are no active studies nore GUI
+*/
 class CloseEvent : public SALOME_Event
 {
 public:
@@ -159,18 +142,18 @@ public:
   }
 };
 
+/*!
+  Processes event to close session
+*/
 void SALOME_Session_i::StopSession()
 {
   ProcessVoidEvent( new CloseEvent() );
 }
 
-//=============================================================================
-/*! StatSession
- *  Send a SALOME::StatSession structure (see idl) to the client
- *  (number of running studies and presence of GUI)
- */
-//=============================================================================
-
+/*!
+  Send a SALOME::StatSession structure (see idl) to the client
+  (number of running studies and presence of GUI)
+*/
 class QtLock
 {
 public:
@@ -209,7 +192,8 @@ CORBA::Long SALOME_Session_i::GetActiveStudyId()
 {
   long aStudyId=-1;
   if ( SUIT_Session::session() && SUIT_Session::session()->activeApplication() ) {
-    aStudyId = SUIT_Session::session()->activeApplication()->activeStudy()->id();
+    if ( SUIT_Session::session()->activeApplication()->activeStudy() ) // mkr : IPAL12128
+      aStudyId = SUIT_Session::session()->activeApplication()->activeStudy()->id();
   }
   return aStudyId;
 }
index 1c79d289174d7015ff6bf82b84970c4875cd397f..a7ffaf27f7ef6633962c28d8d5b36104a0f4b994 100644 (file)
@@ -1,3 +1,21 @@
+#  Copyright (C) 2005  CEA/DEN, EDF R&D, OPEN CASCADE, PRINCIPIA R&D
+#
+#  This library is free software; you can redistribute it and/or
+#  modify it under the terms of the GNU Lesser General Public
+#  License as published by the Free Software Foundation; either
+#  version 2.1 of the License.
+#
+#  This library is distributed in the hope that it will be useful,
+#  but WITHOUT ANY WARRANTY; without even the implied warranty of
+#  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+#  Lesser General Public License for more details.
+#
+#  You should have received a copy of the GNU Lesser General Public
+#  License along with this library; if not, write to the Free Software
+#  Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307 USA
+#
+#  See http://www.salome-platform.org/
+#
 #  File   : Makefile.in
 #  Author : Vladimir Klyachin (OCN)
 #  Module : SalomeApp
@@ -55,7 +73,7 @@ $(INSTALL_PLUGINDIR):
        mkdir -p $@
 
 $(INSTALL_COPYLIB):
-       (cd $(bindir)/styles; ln -sf $(patsubst %.la, ../../../lib/salome/%.so, $(filter %.la, $(LIB))) $@) || true
+       (cd $(bindir)/styles; ln -sf $(patsubst %.la, ../../../lib@LIB_LOCATION_SUFFIX@/salome/%.so, $(filter %.la, $(LIB))) $@) || true
 
 @CONCLUDE@
 
index 8126eb8ec82d0ec8db0246042d2d490a631adff1..a7f0479f50fd6fb44c61818f962e060ca113246a 100644 (file)
@@ -129,16 +129,25 @@ static const char* const minimize_xpm[] = {
     Descr: Style for SALOME platform
 */
 
+/*!
+  Constructor
+*/
 SalomeStyle::SalomeStyle()
 : myTitleParent( 0 )
 {
   qApp->installEventFilter( this ); 
 }
 
+/*!
+  Destructor
+*/
 SalomeStyle::~SalomeStyle()
 {
 }
 
+/*!
+  Delayed initialization of style
+*/
 void SalomeStyle::polish( QWidget* w )
 {
   if ( !w )
@@ -182,6 +191,9 @@ void SalomeStyle::polish( QWidget* w )
     PARENT_STYLE::polish( w );
 }
 
+/*!
+  Custom event filter
+*/
 bool SalomeStyle::eventFilter( QObject* o, QEvent* e )
 {
   if ( e->type() == QEvent::FocusIn || e->type() == QEvent::FocusOut )
@@ -223,6 +235,12 @@ double linear( double x )
   return x;
 }
 
+/*!
+  Mixes two colors, part of first is 1-t, part of second is t
+  \param t - part parameter
+  \param c1, c2 - colors
+  \param res - result color
+*/
 void SalomeStyle::mix( const double t, const QColor& c1, const QColor& c2, QColor& res )
 {
   if( t<0.0 || t>1.0 )
@@ -234,6 +252,11 @@ void SalomeStyle::mix( const double t, const QColor& c1, const QColor& c2, QColo
   res.setRgb( r, g, b );
 }
 
+/*!
+  Mixes two colors, part of first is 1-t, part of second is t
+  \param t - part parameter
+  \param rgb1, rgb2 - colors (result is stored in rgb1)
+*/
 void SalomeStyle::mix( const double t, QRgb& rgb1, const QRgb& rgb2 )
 {
   if( t<0.0 || t>1.0 )
@@ -247,6 +270,12 @@ void SalomeStyle::mix( const double t, QRgb& rgb1, const QRgb& rgb2 )
   rgb1 = qRgba( c[0][0], c[0][1], c[0][2], qAlpha( rgb1 ) );
 }
 
+/*!
+  Mixes colors of pixmap points with other color
+  \param t - part parameter
+  \param pix - pixmap to be processed
+  \param col - other color
+*/
 void SalomeStyle::mix( const double t, QPixmap& pix, const QColor& col )
 {
   if( t<0.0 || t>1.0 )
@@ -277,6 +306,11 @@ void SalomeStyle::mix( const double t, QPixmap& pix, const QColor& col )
   pix = anImage;
 }
 
+/*!
+  Converts pixmap to grayscale
+  \param pix - pixmap to be processed
+  \param k - factor (gray value after conversion will be multiplied on it and truncated by 255.0)
+*/
 void SalomeStyle::toGrayscale( QPixmap& pix, double k )
 {
   QImage anImage = pix.convertToImage();
@@ -306,6 +340,14 @@ void SalomeStyle::toGrayscale( QPixmap& pix, double k )
   pix = anImage;
 }
 
+/*!
+  Draws gradient filling
+  \param p - painter
+  \param r - rect
+  \param c1, c2 - two colors of gradient
+  \param d - direction of gradient
+  \param f - gradient function (maps co-ordinate to part parameter)
+*/
 void SalomeStyle::drawGradient( QPainter* p, const QRect& r,
                                     const QColor& c1, const QColor& c2,
                                     const Direction d, gradient_func f ) const 
@@ -338,6 +380,15 @@ void SalomeStyle::drawGradient( QPainter* p, const QRect& r,
   p->restore();
 }
 
+/*!
+  Draws primitive element
+  \param pe - type of primitive element
+  \param p - painter
+  \param r - rect
+  \param cg - group of colors
+  \param flags - is used to control how the PrimitiveElement is drawn
+  \param opt - can be used to control how various PrimitiveElements are drawn
+*/
 void SalomeStyle::drawPrimitive( PrimitiveElement pe, QPainter* p, const QRect& r,
                                 const QColorGroup& cg, SFlags flags, const QStyleOption& opt ) const
 {
@@ -551,6 +602,16 @@ void SalomeStyle::drawPrimitive( PrimitiveElement pe, QPainter* p, const QRect&
   }
 }
 
+/*!
+  Draws control element
+  \param element - type of control element
+  \param p - painter
+  \param widget - widget
+  \param r - rect
+  \param cg - group of colors
+  \param flags - is used to control how the element is drawn
+  \param opt - can be used to control how various elements are drawn
+*/
 void SalomeStyle::drawControl( ControlElement element, QPainter* p, const QWidget* widget, const QRect& r,
                                const QColorGroup& cg, SFlags flags, const QStyleOption& opt ) const 
 {
@@ -1058,6 +1119,11 @@ void SalomeStyle::drawControl( ControlElement element, QPainter* p, const QWidge
   }
 }
 
+/*!
+  \return the sub-area for the widget in logical coordinates
+  \param subrect - type of sub area
+  \param w - widget
+*/
 QRect SalomeStyle::subRect( SubRect subrect, const QWidget* w ) const
 {
   QRect r = PARENT_STYLE::subRect( subrect, w );
@@ -1076,6 +1142,16 @@ QRect SalomeStyle::subRect( SubRect subrect, const QWidget* w ) const
   return r;
 }
 
+/*!
+  Draws the ComplexControl
+  \param control - type of complex control element
+  \param p - painter
+  \param widget - widget
+  \param r - rect
+  \param cg - group of colors
+  \param flags, controls, active - is used to control how the element is drawn
+  \param opt - can be used to control how various elements are drawn
+*/
 void SalomeStyle::drawComplexControl( ComplexControl control, QPainter* p, const QWidget* widget,
                                                              const QRect& r, const QColorGroup& cg, SFlags flags,
                                                              SCFlags controls, SCFlags active, const QStyleOption& opt ) const
@@ -1127,6 +1203,12 @@ void SalomeStyle::drawComplexControl( ComplexControl control, QPainter* p, const
   }
 }
 
+/*!
+  \return pixmap by type
+  \param st - type of pixmap
+  \param w - widget
+  \param opt - style option flags
+*/
 QPixmap SalomeStyle::stylePixmap( StylePixmap st, const QWidget* w, const QStyleOption& opt ) const
 {
   switch ( st )
@@ -1145,6 +1227,11 @@ QPixmap SalomeStyle::stylePixmap( StylePixmap st, const QWidget* w, const QStyle
   }
 }
 
+/*!
+  \return the pixel size
+  \param pm - type of pixel metrics
+  \param widget - widget
+*/
 int SalomeStyle::pixelMetric( PixelMetric pm, const QWidget* widget ) const
 {
   int ret = 0;
@@ -1186,6 +1273,12 @@ int SalomeStyle::pixelMetric( PixelMetric pm, const QWidget* widget ) const
   return ret;
 }
 
+/*!
+  \return corrected title text
+  \param txt - title text
+  \param w - possible width
+  \param fm - font metrics
+*/
 QString SalomeStyle::titleText( const QString& txt, const int W, const QFontMetrics& fm ) const
 {
   QString res = txt.stripWhiteSpace();
@@ -1205,22 +1298,31 @@ QString SalomeStyle::titleText( const QString& txt, const int W, const QFontMetr
 
 /*!
     Class: SalomeStylePlugin [Internal]
-    Descr: Plugin for Qt style mechanism
+    Constructor
 */
-
 SalomeStylePlugin::SalomeStylePlugin()
 {
 }
 
+/*!
+  Destructor
+*/
 SalomeStylePlugin::~SalomeStylePlugin()
 {
 }
 
+/*!
+  \return keys of styles of plugin
+*/
 QStringList SalomeStylePlugin::keys() const
 {
   return QStringList() << "salome";
 }
 
+/*!
+  \return just created style 
+  \param str - style key
+*/
 QStyle* SalomeStylePlugin::create( const QString& str )
 {
   if ( str == "salome" )
index e8e183e7f0b6b2e6d8967431f9d0dd47a339b951..f90f432e3471f86ad54c8c58aa30d1273f85d183 100755 (executable)
@@ -57,10 +57,10 @@ LIB_MOC = ToolsGUI_CatalogGeneratorDlg.h \
 
 LIB_CLIENT_IDL = SALOME_Registry.idl SALOME_Exception.idl
 
-CPPFLAGS += $(QT_INCLUDES) $(OCC_INCLUDES) $(BOOST_CPPFLAGS) -I${KERNEL_ROOT_DIR}/include/salome
-CXXFLAGS += $(OCC_CXXFLAGS) $(BOOST_CPPFLAGS) -I${KERNEL_ROOT_DIR}/include/salome
+CPPFLAGS += $(QT_INCLUDES) $(OCC_INCLUDES) $(BOOST_CPPFLAGS) $(KERNEL_CXXFLAGS)
+CXXFLAGS += $(OCC_CXXFLAGS) $(BOOST_CPPFLAGS) $(KERNEL_CXXFLAGS)
 
-LDFLAGS += $(QT_MT_LIBS) -lsuit $(CAS_KERNEL) -L$(KERNEL_ROOT_DIR)/lib/salome -lSalomeNS -lOpUtil
+LDFLAGS += $(QT_MT_LIBS) -lsuit $(CAS_KERNEL) $(KERNEL_LDFLAGS) -lSalomeNS -lOpUtil
 
 @CONCLUDE@
 
index ac2ca02a7d9d0b814355f60f0759f23cae16170d..f83f45111cec92be0c5d5aca928d943807cb2414 100755 (executable)
 
 #include "ToolsGUI.h"
 
-//=======================================================================
-// name    : GetVisibility
-// Purpose : Verify whether object is visible or not
-//=======================================================================
+/*!
+  \return true if object is visible
+*/
 bool ToolsGUI::GetVisibility( _PTR(Study)   theStudy,
                               _PTR(SObject) theObj,
                               void*         theId )
@@ -46,10 +45,13 @@ bool ToolsGUI::GetVisibility( _PTR(Study)   theStudy,
   return false;
 }
 
-//=======================================================================
-// name    : SetVisibility
-// Purpose : Set flag visibility of object
-//=======================================================================
+/*!
+  Set flag visibility of object
+  \param theStudy - study
+  \param theEntry - entry
+  \param theValue - flag visibility
+  \param theId - id
+*/
 bool ToolsGUI::SetVisibility( _PTR(Study) theStudy,
                               const char* theEntry,
                               const bool  theValue,
@@ -77,8 +79,3 @@ bool ToolsGUI::SetVisibility( _PTR(Study) theStudy,
   return false;
 }
 
-
-
-
-
-
index d06d2e0e325a6085e94b7aa40407a9931e147519..4c93fa4daf2fca23af778756e1fb4c6318e20892 100755 (executable)
@@ -59,10 +59,9 @@ using namespace std;
 #define MARGIN_SIZE             11
 #define MIN_EDIT_SIZE          250
 
-//=================================================================================
-// class    : ToolsGUI_CatalogGeneratorDlg()
-// purpose  : Constructor
-//=================================================================================
+/*!
+  Constructor
+*/
 ToolsGUI_CatalogGeneratorDlg::ToolsGUI_CatalogGeneratorDlg( QWidget* parent, const char* name )
     : QDialog( parent, name, TRUE, WStyle_Customize | WStyle_NormalBorder | WStyle_Title | WStyle_SysMenu )
 {
@@ -202,98 +201,88 @@ ToolsGUI_CatalogGeneratorDlg::ToolsGUI_CatalogGeneratorDlg( QWidget* parent, con
   updateButtonState();
 }
 
-//=================================================================================
-// function : ~ToolsGUI_CatalogGeneratorDlg()
-// purpose  : destructor
-//=================================================================================
+/*!
+  destructor
+*/
 ToolsGUI_CatalogGeneratorDlg::~ToolsGUI_CatalogGeneratorDlg()
 {  
 }
 
-//=================================================================================
-// function : getIdlFile()
-// purpose  : gets IDL file name entered
-//=================================================================================
+/*!
+  \return IDL file name entered
+*/
 QString ToolsGUI_CatalogGeneratorDlg::getIdlFile()
 {
   return myIdlEdit->text().stripWhiteSpace();
 }
 
-//=================================================================================
-// function : getXmlFile()
-// purpose  : gets XML file name entered
-//=================================================================================
+/*!
+  \return  XML file name entered
+*/
 QString ToolsGUI_CatalogGeneratorDlg::getXmlFile()
 {
   return myXmlEdit->text().stripWhiteSpace();
 }
 
-//=================================================================================
-// function : getPngFile()
-// purpose  : gets PNG file name entered
-//=================================================================================
+/*!
+  \return PNG file name entered
+*/
 QString ToolsGUI_CatalogGeneratorDlg::getPngFile()
 {
   return myPngEdit->text().stripWhiteSpace();
 }
 
-//=================================================================================
-// function : getAuthor()
-// purpose  : gets author 
-//=================================================================================
+/*!
+  \return author 
+*/
 QString ToolsGUI_CatalogGeneratorDlg::getAuthor()
 {
   return myAuthorEdit->text().stripWhiteSpace();
 }
 
-//=================================================================================
-// function : getVersion()
-// purpose  : gets version number 
-//=================================================================================
+/*!
+  \return version number 
+*/
 QString ToolsGUI_CatalogGeneratorDlg::getVersion()
 {
   return myVersionEdit->text().stripWhiteSpace();
 }
 
-//=================================================================================
-// function : getCompName()
-// purpose  : gets name of the component
-//=================================================================================
+/*!
+  \return name of the component
+*/
 QString ToolsGUI_CatalogGeneratorDlg::getCompName()
 {
   return myCompName->text().stripWhiteSpace();
 }
 
-//=================================================================================
-// function : getCompUserName()
-// purpose  : gets username of the component
-//=================================================================================
+/*!
+  \return username of the component
+*/
 QString ToolsGUI_CatalogGeneratorDlg::getCompUserName()
 {
   return myCompUserName->text().stripWhiteSpace();
 }
 
-//=================================================================================
-// function : getCompType()
-// purpose  : gets type of the component
-//=================================================================================
+/*!
+  \return type of the component
+*/
 QString ToolsGUI_CatalogGeneratorDlg::getCompMultiStd()
 {
   return myCompMultiStd->text().stripWhiteSpace();
 }
-//=================================================================================
-// function : getComptype()
-// purpose  : gets type of the component
-//=================================================================================
+
+/*!
+  \return type of the component
+*/
 QString ToolsGUI_CatalogGeneratorDlg::getCompType()
 {
   return myCompType->text().stripWhiteSpace();
 }
 
-//=================================================================================
-// function : getIdlPath()
-// purpose  : gets IDL path of modules
-//=================================================================================
+/*!
+  \return IDL path of modules
+*/
 QString ToolsGUI_CatalogGeneratorDlg::getIdlPath()
 {
   cout << "QAD_Desktop::getCatalogue() is not implemented!!";
@@ -325,10 +314,9 @@ QString ToolsGUI_CatalogGeneratorDlg::getIdlPath()
 */
 }
 
-//=================================================================================
-// function : onBrowseBtnClicked()
-// purpose  : <...> (Browse) buttons slot
-//=================================================================================
+/*!
+  SLOT: called on Browse button click
+*/
 void ToolsGUI_CatalogGeneratorDlg::onBrowseBtnClicked()
 {
   QPushButton* send = (QPushButton*)sender();
@@ -356,20 +344,18 @@ void ToolsGUI_CatalogGeneratorDlg::onBrowseBtnClicked()
   updateButtonState();
 }
 
-//=================================================================================
-// function : updateButtonState()
-// purpose  : Updates <OK> button's state
-//=================================================================================
+/*!
+  Updates <OK> button's state
+*/
 void ToolsGUI_CatalogGeneratorDlg::updateButtonState()
 {
   myApplyBtn->setEnabled( !myIdlEdit->text().stripWhiteSpace().isEmpty() && 
                          !myXmlEdit->text().stripWhiteSpace().isEmpty() );
 }
 
-//=================================================================================
-// function : onApply()
-// purpose  : <Apply> button slot, performs IDL->XML conversion
-//=================================================================================
+/*!
+  <Apply> button slot, performs IDL->XML conversion
+*/
 void ToolsGUI_CatalogGeneratorDlg::onApply()
 {
   QString IDLpath = getIdlPath();
index 5da0d5cc629c4b108c5397ec540ea7e345b16ee7..cf88f1417629d0af39c3f0fd442977546230b5c3 100755 (executable)
 class QLineEdit;
 class QPushButton;
 
-//=================================================================================
-// class    : ToolsGUI_CatalogGeneratorDlg
-// purpose  :
-//=================================================================================
 class Standard_EXPORT ToolsGUI_CatalogGeneratorDlg : public QDialog
 { 
     Q_OBJECT
index bd1ed427ae2e9d1a6854e594784c3f36ea51f7b6..cb5ad63f55b39533b202b11bf0720fa832cc1f48 100755 (executable)
@@ -36,6 +36,9 @@
 
 using namespace std;
 
+/*!
+  Constructor
+*/
 ToolsGUI_HelpWindow::ToolsGUI_HelpWindow(QWidget* parent, const char* name ) 
      : QMainWindow( parent, name, WType_TopLevel | WDestructiveClose )
 {
index 04d96c00a45e877c18115755f88fce13aa4bfd15..4e122af79b97250f6aeee896698f9d3c58ed6917 100755 (executable)
 #define SPACING_SIZE      6
 #define MIN_SPIN_WIDTH  100 
 
+/*!
+  Constructor
+*/
 ToolsGUI_IntervalWindow::ToolsGUI_IntervalWindow ( QWidget* parent )
-     : QDialog( parent, "ToolsGUI_IntervalWindow" , true, WStyle_Customize | WStyle_NormalBorder | WStyle_Title | WStyle_SysMenu | WDestructiveClose )
+: QDialog( parent, "ToolsGUI_IntervalWindow" , true, WStyle_Customize | WStyle_NormalBorder | WStyle_Title | WStyle_SysMenu | WDestructiveClose )
 {
   BEGIN_OF("ToolsGUI_IntervalWindow constructor")
   setCaption( tr( "Refresh Interval"  ) );
@@ -73,8 +76,13 @@ ToolsGUI_IntervalWindow::ToolsGUI_IntervalWindow ( QWidget* parent )
 
   END_OF("ToolsGUI_IntervalWindow constructor")
 }
+
+/*!
+  Destructor
+*/
 ToolsGUI_IntervalWindow::~ToolsGUI_IntervalWindow() {}
-/* 
+
+/*!
    Sets start interval size
 */
 void ToolsGUI_IntervalWindow::setValue(const int size)
@@ -82,24 +90,24 @@ void ToolsGUI_IntervalWindow::setValue(const int size)
   mySpinBox->setValue(size);
 }
 
-/*
-   Gets interval size
+/*!
+   \return interval size
 */
 int ToolsGUI_IntervalWindow::getValue()
 {
   return mySpinBox->value();
 }
 
-/*
-   gets a pointer to myButtonOk
+/*!
+   \return a pointer to myButtonOk
 */
 QPushButton* ToolsGUI_IntervalWindow::Ok()
 {
   return myButtonOk;
 }
 
-/*
-   gets a pointer to myButtonCancel
+/*!
+   \return a pointer to myButtonCancel
 */
 QPushButton* ToolsGUI_IntervalWindow::Cancel()
 {
index b36f8fdda643f1419467e0cacfa13f07dcfee36a..4692797f5c02195aa3fc8064907bc7f231698266 100755 (executable)
@@ -356,9 +356,11 @@ QString ToolsGUI_RegWidget::setlongText( const Registry::Infos &c_info)
   a.append( BOLD( QString::number( int( c_info.uid ) ) ) );
   a.append( QString( " )<br> " ) + tr( "in directory" ) + QString( " " ));
   a.append( BOLD( c_info.cdir ) );
-  
+
+  time_t aTime;
   a.append( QString( "<br>" ) + tr( "begins" ) + QString( " " ) );
-  char * t1 = (char * )duplicate(ctime(&c_info.tc_start));
+  aTime = time_t(c_info.tc_start);
+  char * t1 = (char * )duplicate(ctime(&aTime));
   t1 [strlen(t1) -1 ] = ' ';
   a.append( BOLD( t1 ) ); 
   delete [] t1;
@@ -366,7 +368,8 @@ QString ToolsGUI_RegWidget::setlongText( const Registry::Infos &c_info)
   
   if (c_info.tc_hello != 0 )
     {
-      char * t2 = (char * )duplicate(ctime(&c_info.tc_hello));
+      aTime = time_t(c_info.tc_hello);
+      char * t2 = (char * )duplicate(ctime(&aTime));
       t2 [strlen(t2) -1 ] = ' ';
       a.append( tr( "last signal" ) + QString(" : ") ); 
       a.append( BOLD( t2 ) ); 
@@ -375,7 +378,8 @@ QString ToolsGUI_RegWidget::setlongText( const Registry::Infos &c_info)
     }
   if ((c_info.tc_end - c_info.difftime) != 0)
     {
-      char * t3 = (char * )duplicate(ctime(&c_info.tc_end));
+      aTime = time_t(c_info.tc_end);
+      char * t3 = (char * )duplicate(ctime(&aTime));
       t3 [strlen(t3) -1 ] = ' ';
       a.append( tr( "ends" ) + QString( " " ) ); 
       a.append( BOLD( t3 ) ); 
@@ -463,6 +467,7 @@ void ToolsGUI_RegWidget::InfoHistory()
     _history->clear();
   try
     {
+      time_t aTime;
       _serverhistory = _VarComponents->history();
       for (CORBA::ULong i=0; i<_serverhistory->length(); i++)
        {       
@@ -470,9 +475,11 @@ void ToolsGUI_RegWidget::InfoHistory()
          ASSERT( c_info.name!=NULL);
          QString a;
          a.setNum(int(c_info.pid));
-         char * t1 = (char * )duplicate(ctime(&c_info.tc_start));
+         aTime = time_t(c_info.tc_start);
+         char * t1 = (char * )duplicate(ctime(&aTime));
          t1 [strlen(t1) -1 ] = ' ';
-         char * t2 = (char * )duplicate(ctime(&c_info.tc_end));
+         aTime = time_t(c_info.tc_end);
+         char * t2 = (char * )duplicate(ctime(&aTime));
          t2 [strlen(t2) -1 ] = ' ';
          QListViewItem * item = new QListViewItem(_history, QString(c_info.name),\
                                                   a, QString(c_info.pwname), QString(c_info.machine), \
@@ -503,6 +510,7 @@ void ToolsGUI_RegWidget::InfoReg()
   _clients->clear();
   try
     {
+      time_t aTime;
       _serverclients = _VarComponents->getall();
       for (CORBA::ULong i=0; i<_serverclients->length(); i++)
        {       
@@ -510,9 +518,11 @@ void ToolsGUI_RegWidget::InfoReg()
          ASSERT( c_info.name!=NULL);
          QString a;
          a.setNum(int(c_info.pid));
-         char * t1 = (char * )duplicate(ctime(&c_info.tc_start));
+         aTime = time_t(c_info.tc_start);
+         char * t1 = (char * )duplicate(ctime(&aTime));
          t1 [strlen(t1) -1 ] = ' ';
-         char * t2 = (char * )duplicate(ctime(&c_info.tc_hello));
+         aTime = time_t(c_info.tc_hello);
+         char * t2 = (char * )duplicate(ctime(&aTime));
          t2 [strlen(t2) -1 ] = ' ';
          QListViewItem * item = new QListViewItem(_clients, QString(c_info.name),\
                                                   a, QString(c_info.pwname), QString(c_info.machine), \
@@ -567,6 +577,9 @@ void ToolsGUI_RegWidget::slotSelectRefresh()
   END_OF("slotSelectRefresh");
 }
 
+/*!
+  SLOT: called when IntervalWindow's OK button is clicked
+*/
 void ToolsGUI_RegWidget::slotIntervalOk()
 {
   BEGIN_OF("slotIntervalOk");
index dd5f7ea29614c9612bf3a0980a41c9287119719d..b22592c5293d077dfa4c91c7a539d1393c4249a6 100755 (executable)
@@ -1,3 +1,21 @@
+#  Copyright (C) 2005  CEA/DEN, EDF R&D, OPEN CASCADE, PRINCIPIA R&D
+#
+#  This library is free software; you can redistribute it and/or
+#  modify it under the terms of the GNU Lesser General Public
+#  License as published by the Free Software Foundation; either
+#  version 2.1 of the License.
+#
+#  This library is distributed in the hope that it will be useful,
+#  but WITHOUT ANY WARRANTY; without even the implied warranty of
+#  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+#  Lesser General Public License for more details.
+#
+#  You should have received a copy of the GNU Lesser General Public
+#  License along with this library; if not, write to the Free Software
+#  Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307 USA
+#
+#  See http://www.salome-platform.org/
+#
 #  File   : Makefile.in
 #  Author : Vladimir Klyachin (OCN)
 #  Module : VTKViewer
@@ -12,18 +30,18 @@ VPATH=.:@srcdir@:@srcdir@/resources
 @COMMENCE@
 
 # header files 
-EXPORT_HEADERS= VTKViewer_Actor.h \
-               VTKViewer_CellRectPicker.h \
+EXPORT_HEADERS= \
+               VTKViewer.h \
+               VTKViewer_CellLocationsArray.h \
+               VTKViewer_Actor.h \
                VTKViewer_ExtractUnstructuredGrid.h \
                VTKViewer_ConvexTool.h \
                VTKViewer_Filter.h \
                VTKViewer_GeometryFilter.h \
                VTKViewer_AppendFilter.h \
                VTKViewer_Algorithm.h \
-               VTKViewer.h \
                VTKViewer_InteractorStyle.h \
                VTKViewer_PassThroughFilter.h \
-               VTKViewer_RectPicker.h \
                VTKViewer_RenderWindow.h \
                VTKViewer_RenderWindowInteractor.h \
                VTKViewer_ShrinkFilter.h \
@@ -39,48 +57,46 @@ EXPORT_HEADERS= VTKViewer_Actor.h \
 
 PO_FILES = \
        VTKViewer_images.po \
-       VTKViewer_msg_en.po \
-       VTKViewerM_images.po \
-       VTKViewerM_msg_en.po 
-
+       VTKViewer_msg_en.po
+       
 # Libraries targets
 LIB = libVTKViewer.la
 
-LIB_SRC= VTKViewer_Actor.cxx \
-        VTKViewer_CellRectPicker.cxx \
-        VTKViewer_ExtractUnstructuredGrid.cxx \
-        VTKViewer_Filter.cxx \
-        VTKViewer_GeometryFilter.cxx \
-        VTKViewer_AppendFilter.cxx \
-        VTKViewer_InteractorStyle.cxx \
-        VTKViewer_PassThroughFilter.cxx \
-        VTKViewer_RectPicker.cxx \
-        VTKViewer_RenderWindow.cxx \
-        VTKViewer_RenderWindowInteractor.cxx \
-        VTKViewer_ShrinkFilter.cxx \
-        VTKViewer_Transform.cxx \
-        VTKViewer_TransformFilter.cxx \
-        VTKViewer_Trihedron.cxx \
-        VTKViewer_Utilities.cxx \
-        VTKViewer_VectorText.cxx \
-        VTKViewer_ViewManager.cxx \
-        VTKViewer_ViewModel.cxx \
-        VTKViewer_ConvexTool.cxx \
-        VTKViewer_ViewWindow.cxx               
+LIB_SRC= \
+       VTKViewer_CellLocationsArray.cxx \
+       VTKViewer_Actor.cxx \
+       VTKViewer_ExtractUnstructuredGrid.cxx \
+       VTKViewer_Filter.cxx \
+       VTKViewer_GeometryFilter.cxx \
+       VTKViewer_AppendFilter.cxx \
+       VTKViewer_InteractorStyle.cxx \
+       VTKViewer_PassThroughFilter.cxx \
+       VTKViewer_RenderWindow.cxx \
+       VTKViewer_RenderWindowInteractor.cxx \
+       VTKViewer_ShrinkFilter.cxx \
+       VTKViewer_Transform.cxx \
+       VTKViewer_TransformFilter.cxx \
+       VTKViewer_Trihedron.cxx \
+       VTKViewer_Utilities.cxx \
+       VTKViewer_VectorText.cxx \
+       VTKViewer_ViewManager.cxx \
+       VTKViewer_ViewModel.cxx \
+       VTKViewer_ConvexTool.cxx \
+       VTKViewer_ViewWindow.cxx                
 
 LIB_MOC = \
-         VTKViewer_RenderWindow.h \
-         VTKViewer_RenderWindowInteractor.h \
-         VTKViewer_ViewManager.h \
-         VTKViewer_ViewModel.h \
-         VTKViewer_ViewWindow.h 
+       VTKViewer_RenderWindow.h \
+       VTKViewer_RenderWindowInteractor.h \
+       VTKViewer_ViewManager.h \
+       VTKViewer_ViewModel.h \
+       VTKViewer_ViewWindow.h 
 
 BIN = VTKViewer
 
 CPPFLAGS+=$(QT_INCLUDES) $(VTK_INCLUDES) $(OCC_INCLUDES)
 
-LDFLAGS+=$(VTK_LIBS) $(QT_MT_LIBS) $(CAS_KERNEL)
+LDFLAGS+=$(VTK_LIBS) $(QT_MT_LIBS) $(CAS_KERNEL) -lqtx -lsuit
 
-LDFLAGSFORBIN=$(LDFLAGS) -lqtx -lsuit
+LDFLAGSFORBIN=$(LDFLAGS)
 
 @CONCLUDE@
\ No newline at end of file
index 27934b61047f1212e1520421e3bc25ab72d2d2d4..a4b51d18c72a06e68a50dac3eea8afd0f09aaf47 100755 (executable)
 //
 // See http://www.salome-platform.org/
 //
+
+#ifndef VTKVIEWER_H
+#define VTKVIEWER_H
+
 #ifdef WNT
-#ifdef VTKVIEWER_EXPORTS
-#define VTKVIEWER_EXPORT __declspec( dllexport )
+#  ifdef VTKVIEWER_EXPORTS
+#    define VTKVIEWER_EXPORT __declspec( dllexport )
+#  else
+#    define VTKVIEWER_EXPORT __declspec( dllimport )
+#  endif
 #else
-#define VTKVIEWER_EXPORT __declspec( dllimport )
+#  define VTKVIEWER_EXPORT
 #endif
-#else
-#define VTKVIEWER_EXPORT
+
+#include <vtkSystemIncludes.h>
+
+#if !defined(vtkFloatingPointType)
+# define vtkFloatingPointType vtkFloatingPointType
+  typedef float vtkFloatingPointType;
+#endif
+
 #endif
index d2f72e2b8e8f40b980fdf32092b66e3fd456e6c0..5181ccd07a2130d3fe9ae5dba2ccb38a133493b4 100755 (executable)
@@ -60,11 +60,11 @@ int VTKViewer_POINT_SIZE = 5;
 int VTKViewer_LINE_WIDTH = 3;
 
 
-//----------------------------------------------------------------------------
 vtkStandardNewMacro(VTKViewer_Actor);
 
-
-//----------------------------------------------------------------------------
+/*!
+  Constructor
+*/
 VTKViewer_Actor
 ::VTKViewer_Actor():
   myIsHighlighted(false),
@@ -86,8 +86,9 @@ VTKViewer_Actor
     myPassFilter.push_back(VTKViewer_PassThroughFilter::New());
 }
 
-
-//----------------------------------------------------------------------------
+/*!
+  Destructor
+*/
 VTKViewer_Actor
 ::~VTKViewer_Actor()
 {
@@ -104,8 +105,9 @@ VTKViewer_Actor
   myProperty->Delete();
 }
 
-
-//----------------------------------------------------------------------------
+/*!
+  \return name
+*/
 const char* 
 VTKViewer_Actor
 ::getName() 
@@ -113,6 +115,10 @@ VTKViewer_Actor
   return myName.c_str(); 
 }
 
+/*!
+  Sets name
+  \param theName - new name
+*/
 void
 VTKViewer_Actor
 ::setName(const char* theName)
@@ -120,8 +126,9 @@ VTKViewer_Actor
   myName = theName;
 }
 
-
-//----------------------------------------------------------------------------
+/*!
+  To publish the actor an all its internal devices
+*/
 void
 VTKViewer_Actor
 ::AddToRender(vtkRenderer* theRenderer)
@@ -129,6 +136,9 @@ VTKViewer_Actor
   theRenderer->AddActor(this);
 }
 
+/*!
+  To remove the actor an all its internal devices
+*/
 void 
 VTKViewer_Actor
 ::RemoveFromRender(vtkRenderer* theRenderer)
@@ -136,13 +146,18 @@ VTKViewer_Actor
   theRenderer->RemoveActor(this);
 }
 
+/*!
+  Used to obtain all dependent actors
+*/
 void
 VTKViewer_Actor
 ::GetChildActors(vtkActorCollection*) 
 {}
 
-
-//----------------------------------------------------------------------------
+/*!
+  Apply view transformation
+  \param theTransform - view transformation
+*/
 void
 VTKViewer_Actor
 ::SetTransform(VTKViewer_Transform* theTransform)
@@ -151,6 +166,9 @@ VTKViewer_Actor
 }
 
 
+/*!
+  To insert some additional filters and then sets the given #vtkMapper
+*/
 void
 VTKViewer_Actor
 ::SetMapper(vtkMapper* theMapper)
@@ -158,6 +176,9 @@ VTKViewer_Actor
   InitPipeLine(theMapper);
 }
 
+/*!
+  Initialization
+*/
 void
 VTKViewer_Actor
 ::InitPipeLine(vtkMapper* theMapper)
@@ -192,15 +213,23 @@ VTKViewer_Actor
   Superclass::SetMapper(theMapper);
 }
 
-
-//----------------------------------------------------------------------------
+/*!
+  Renders actor
+*/
 void
 VTKViewer_Actor
 ::Render(vtkRenderer *ren, vtkMapper* m)
 {
+  if(vtkDataSet* aDataSet = GetInput()){
+    static vtkFloatingPointType PERCENTS_OF_DETAILS = 0.50;
+    vtkIdType aNbOfPoints = vtkIdType(aDataSet->GetNumberOfPoints()*PERCENTS_OF_DETAILS);
+    if(aNbOfPoints > 0)
+      SetNumberOfCloudPoints(aNbOfPoints);
+  }
+
   if(myIsResolveCoincidentTopology){
     int aResolveCoincidentTopology = vtkMapper::GetResolveCoincidentTopology();
-    float aFactor, aUnit; 
+    vtkFloatingPointType aFactor, aUnit; 
     vtkMapper::GetResolveCoincidentTopologyPolygonOffsetParameters(aFactor,aUnit);
     
     vtkMapper::SetResolveCoincidentTopologyToPolygonOffset();
@@ -215,7 +244,10 @@ VTKViewer_Actor
   }
 }
 
-
+/*!
+  Set ResolveCoincidentTopology flag
+  \param theIsResolve - new flag value
+*/
 void
 VTKViewer_Actor
 ::SetResolveCoincidentTopology(bool theIsResolve) 
@@ -223,31 +255,45 @@ VTKViewer_Actor
   myIsResolveCoincidentTopology = theIsResolve;
 }
 
+/*!
+  Set polygon offset parameters
+  \param factor, units  - Opengl polygon offset parameters
+*/
 void
 VTKViewer_Actor
-::SetPolygonOffsetParameters(float factor, float units)
+::SetPolygonOffsetParameters(vtkFloatingPointType factor, 
+                            vtkFloatingPointType units)
 {
   myPolygonOffsetFactor = factor;
   myPolygonOffsetUnits = units;
 }
 
+/*!
+  Get polygon offset parameters
+  \param factor, units  - Opengl polygon offset parameters
+*/
 void
 VTKViewer_Actor
-::GetPolygonOffsetParameters(float& factor, float& units)
+::GetPolygonOffsetParameters(vtkFloatingPointType& factor, 
+                            vtkFloatingPointType& units)
 {
   factor = myPolygonOffsetFactor;
   units = myPolygonOffsetUnits;
 }
 
-
-//----------------------------------------------------------------------------
-float
+/*!
+  \return shrink factor
+*/
+vtkFloatingPointType
 VTKViewer_Actor
 ::GetShrinkFactor() 
 { 
   return 1.0;
 }
 
+/*!
+  \return true if the actor is shrunkable
+*/
 bool
 VTKViewer_Actor
 ::IsShrunkable() 
@@ -255,6 +301,9 @@ VTKViewer_Actor
   return false;
 }
 
+/*!
+  \return true if the actor is shrunk
+*/
 bool
 VTKViewer_Actor
 ::IsShrunk() 
@@ -262,18 +311,25 @@ VTKViewer_Actor
   return false;
 }
 
+/*!
+  Insert shrink filter into pipeline
+*/
 void
 VTKViewer_Actor
 ::SetShrink() 
 {} 
 
+/*!
+  Remove shrink filter from pipeline
+*/
 void
 VTKViewer_Actor
 ::UnShrink() 
 {}
 
-
-//----------------------------------------------------------------------------
+/*!
+  Allows to get initial #vtkDataSet
+*/
 vtkDataSet* 
 VTKViewer_Actor
 ::GetInput()
@@ -281,7 +337,9 @@ VTKViewer_Actor
   return myPassFilter.front()->GetOutput();
 }
 
-
+/*!
+  To calculatate last modified time
+*/
 unsigned long int
 VTKViewer_Actor
 ::GetMTime()
@@ -296,8 +354,10 @@ VTKViewer_Actor
   return mTime;
 }
 
-
-//----------------------------------------------------------------------------
+/*!
+  Set representation (VTK_SURFACE, VTK_POINTS, VTK_WIREFRAME and so on)
+  param theMode - new mode
+*/
 void
 VTKViewer_Actor
 ::SetRepresentation(int theMode) 
@@ -305,18 +365,25 @@ VTKViewer_Actor
   switch(myRepresentation){
   case VTK_POINTS : 
   case VTK_SURFACE : 
-    myProperty->DeepCopy(GetProperty());
+    myProperty->SetAmbient(GetProperty()->GetAmbient());
+    myProperty->SetDiffuse(GetProperty()->GetDiffuse());
+    myProperty->SetSpecular(GetProperty()->GetSpecular());
+    break;
   }    
+
   switch(theMode){
   case VTK_POINTS : 
   case VTK_SURFACE : 
-    GetProperty()->DeepCopy(myProperty);
+    GetProperty()->SetAmbient(myProperty->GetAmbient());
+    GetProperty()->SetDiffuse(myProperty->GetDiffuse());
+    GetProperty()->SetSpecular(myProperty->GetSpecular());
     break;
   default:
     GetProperty()->SetAmbient(1.0);
     GetProperty()->SetDiffuse(0.0);
     GetProperty()->SetSpecular(0.0);
   }
+
   switch(theMode){
   case 3 : 
     myGeomFilter->SetInside(true);
@@ -340,9 +407,13 @@ VTKViewer_Actor
     myGeomFilter->SetInside(false);
     break;
   }
+
   myRepresentation = theMode;
 }
 
+/*!
+  \return current representation mode
+*/
 int
 VTKViewer_Actor
 ::GetRepresentation()
@@ -350,8 +421,9 @@ VTKViewer_Actor
   return myRepresentation;
 }
 
-
-//----------------------------------------------------------------------------
+/*!
+  Maps VTK index of a node to corresponding object index
+*/
 int 
 VTKViewer_Actor
 ::GetNodeObjId(int theVtkID)
@@ -359,13 +431,19 @@ VTKViewer_Actor
   return theVtkID;
 }
 
-float* 
+/*!
+  Get coordinates of a node for given object index
+*/
+vtkFloatingPointType* 
 VTKViewer_Actor
 ::GetNodeCoord(int theObjID)
 {
   return GetInput()->GetPoint(theObjID);
 }
 
+/*!
+  Get corresponding #vtkCell for given object index
+*/
 vtkCell* 
 VTKViewer_Actor
 ::GetElemCell(int theObjID)
@@ -373,6 +451,9 @@ VTKViewer_Actor
   return GetInput()->GetCell(theObjID);
 }
 
+/*!
+  Maps VTK index of a cell to corresponding object index
+*/
 int
 VTKViewer_Actor
 ::GetElemObjId(int theVtkID) 
@@ -381,11 +462,9 @@ VTKViewer_Actor
 }
 
 
-//=================================================================================
-// function : GetObjDimension
-// purpose  : Return object dimension.
-//            Virtual method shoulb be redifined by derived classes
-//=================================================================================
+/*!
+  \return object dimension. Virtual method should be redifined by derived classes
+*/
 int
 VTKViewer_Actor
 ::GetObjDimension( const int theObjId )
@@ -395,7 +474,10 @@ VTKViewer_Actor
   return 0;
 }
 
-
+/*!
+  Infinitive means actor without size (point for example),
+  which is not taken into account in calculation of boundaries of the scene
+*/
 void
 VTKViewer_Actor
 ::SetInfinitive(bool theIsInfinite)
@@ -403,21 +485,34 @@ VTKViewer_Actor
   myIsInfinite = theIsInfinite;
 }
 
-
+/*!
+  \return infinive flag
+*/
 bool
 VTKViewer_Actor
 ::IsInfinitive()
 { 
-  static float MIN_DISTANCE = 1.0 / VTK_LARGE_FLOAT;
+  if(myIsInfinite)
+    return true;
 
-  if(myIsInfinite || GetLength() < MIN_DISTANCE)
+  static vtkFloatingPointType MAX_DISTANCE = 0.9*VTK_LARGE_FLOAT;
+  vtkFloatingPointType aBounds[6];
+  GetBounds(aBounds);
+  for(int i = 0; i < 6; i++)
+    if(fabs(aBounds[i]) > MAX_DISTANCE)
+      return true;
+  
+  static vtkFloatingPointType MIN_DISTANCE = 1.0/VTK_LARGE_FLOAT;
+  if(GetLength() < MIN_DISTANCE)
     return true;
-  else
-    return false;
+  
+  return false;
 }
 
-
-float* 
+/*!
+  \return current bounding box
+*/
+vtkFloatingPointType* 
 VTKViewer_Actor
 ::GetBounds()
 {
@@ -425,15 +520,17 @@ VTKViewer_Actor
 }
 
 
+/*!
+  \return current bounding box
+*/
 void
 VTKViewer_Actor
-::GetBounds(float theBounds[6])
+::GetBounds(vtkFloatingPointType theBounds[6])
 {
   Superclass::GetBounds(theBounds);
 }
 
 
-//----------------------------------------------------------------------------
 bool
 VTKViewer_Actor
 ::IsSetCamera() const 
@@ -450,7 +547,7 @@ VTKViewer_Actor
 
 void
 VTKViewer_Actor
-::SetSize( const float ) 
+::SetSize( const vtkFloatingPointType ) 
 {}
 
 
@@ -459,16 +556,16 @@ VTKViewer_Actor
 ::SetCamera( vtkCamera* ) 
 {}
 
-//----------------------------------------------------------------------------
+
 void
 VTKViewer_Actor
-::SetOpacity(float theOpacity)
+::SetOpacity(vtkFloatingPointType theOpacity)
 { 
   myOpacity = theOpacity;
   GetProperty()->SetOpacity(theOpacity);
 }
 
-float
+vtkFloatingPointType
 VTKViewer_Actor
 ::GetOpacity()
 {
@@ -476,25 +573,38 @@ VTKViewer_Actor
 }
 
 
+/*!
+  Change color
+*/
 void
 VTKViewer_Actor
-::SetColor(float r,float g,float b)
+::SetColor(vtkFloatingPointType r,
+          vtkFloatingPointType g,
+          vtkFloatingPointType b)
 {
   GetProperty()->SetColor(r,g,b);
 }
 
+/*!
+  Change color
+*/
 void
 VTKViewer_Actor
-::SetColor(const float theRGB[3])
+::SetColor(const vtkFloatingPointType theRGB[3])
 { 
   SetColor(theRGB[0],theRGB[1],theRGB[2]);
 }
 
+/*!
+  Get color
+*/
 void
 VTKViewer_Actor
-::GetColor(float& r,float& g,float& b)
+::GetColor(vtkFloatingPointType& r,
+          vtkFloatingPointType& g,
+          vtkFloatingPointType& b)
 {
-  float aColor[3];
+  vtkFloatingPointType aColor[3];
   GetProperty()->GetColor(aColor);
   r = aColor[0];
   g = aColor[1];
@@ -502,7 +612,9 @@ VTKViewer_Actor
 }
 
 
-//----------------------------------------------------------------------------
+/*!
+  \return display mode
+*/
 int
 VTKViewer_Actor
 ::getDisplayMode()
@@ -510,6 +622,9 @@ VTKViewer_Actor
   return myDisplayMode; 
 }
 
+/*!
+  Change display mode
+*/
 void
 VTKViewer_Actor
 ::setDisplayMode(int theMode)
@@ -519,7 +634,9 @@ VTKViewer_Actor
 }
 
 
-//----------------------------------------------------------------------------
+/*!
+  \return true if the descendant of the VTKViewer_Actor will implement its own highlight or not
+*/
 bool
 VTKViewer_Actor
 ::hasHighlight() 
@@ -527,6 +644,9 @@ VTKViewer_Actor
   return false; 
 } 
 
+/*!
+  \return true if the VTKViewer_Actor is already highlighted
+*/
 bool
 VTKViewer_Actor
 ::isHighlighted() 
@@ -534,6 +654,9 @@ VTKViewer_Actor
   return myIsHighlighted; 
 }
 
+/*!
+  Set preselection mode
+*/
 void
 VTKViewer_Actor
 ::SetPreSelected(bool thePreselect) 
@@ -541,8 +664,9 @@ VTKViewer_Actor
   myIsPreselected = thePreselect;
 }
 
-
-//----------------------------------------------------------------
+/*!
+  Just to update visibility of the highlight devices
+*/
 void
 VTKViewer_Actor
 ::highlight(bool theIsHighlight)
index 55711a8c018def10181c0c416ac865daa96ca9e2..37d109da639f36f2f7e8be506706ade2ac83926f 100755 (executable)
@@ -77,27 +77,31 @@ class VTKVIEWER_EXPORT VTKViewer_Actor : public vtkLODActor
   //! Change opacity
   virtual
   void
-  SetOpacity(float theOpacity);
+  SetOpacity(vtkFloatingPointType theOpacity);
 
   //! Get current opacity
   virtual
-  float 
+  vtkFloatingPointType 
   GetOpacity();
 
   //! Change color
   virtual
   void
-  SetColor(float r,float g,float b);
+  SetColor(vtkFloatingPointType r,
+          vtkFloatingPointType g,
+          vtkFloatingPointType b);
 
   //! Get current color
   virtual
   void
-  GetColor(float& r,float& g,float& b);
+  GetColor(vtkFloatingPointType& r,
+          vtkFloatingPointType& g,
+          vtkFloatingPointType& b);
 
   //! Change color
   virtual
   void
-  SetColor(const float theRGB[3]);
+  SetColor(const vtkFloatingPointType theRGB[3]);
 
   //----------------------------------------------------------------------------
   // For selection mapping purpose
@@ -108,7 +112,7 @@ class VTKVIEWER_EXPORT VTKViewer_Actor : public vtkLODActor
 
   //! Get coordinates of a node for given object index
   virtual
-  float*
+  vtkFloatingPointType*
   GetNodeCoord(int theObjID);
 
   //! Maps VTK index of a cell to corresponding object index
@@ -184,12 +188,12 @@ class VTKVIEWER_EXPORT VTKViewer_Actor : public vtkLODActor
     
   //! To calcualte current bounding box
   virtual
-  float
+  vtkFloatingPointType
   GetBounds();
 
   //! To calcualte current bounding box
   void
-  GetBounds(float bounds[6]);
+  GetBounds(vtkFloatingPointType bounds[6]);
 
   //----------------------------------------------------------------------------
   virtual
@@ -202,7 +206,7 @@ class VTKVIEWER_EXPORT VTKViewer_Actor : public vtkLODActor
 
   virtual
   void
-  SetSize( const float );
+  SetSize( const vtkFloatingPointType );
 
   virtual
   void 
@@ -215,11 +219,13 @@ class VTKVIEWER_EXPORT VTKViewer_Actor : public vtkLODActor
 
   //! Set ResolveCoincidentTopology parameters
   void
-  SetPolygonOffsetParameters(float factor, float units);
+  SetPolygonOffsetParameters(vtkFloatingPointType factor, 
+                            vtkFloatingPointType units);
 
   //! Get current ResolveCoincidentTopology parameters
   void
-  GetPolygonOffsetParameters(float& factor, float& units);
+  GetPolygonOffsetParameters(vtkFloatingPointType& factor, 
+                            vtkFloatingPointType& units);
 
   virtual
   void
@@ -228,7 +234,7 @@ class VTKVIEWER_EXPORT VTKViewer_Actor : public vtkLODActor
   //----------------------------------------------------------------------------
   //! Get current shrink factor
   virtual
-  float
+  vtkFloatingPointType
   GetShrinkFactor();
 
   //! Is the actor is shrunkable
@@ -295,12 +301,12 @@ class VTKVIEWER_EXPORT VTKViewer_Actor : public vtkLODActor
  protected:
   //----------------------------------------------------------------------------
   bool myIsResolveCoincidentTopology;
-  float myPolygonOffsetFactor;
-  float myPolygonOffsetUnits;
+  vtkFloatingPointType myPolygonOffsetFactor;
+  vtkFloatingPointType myPolygonOffsetUnits;
 
   std::string myName;
 
-  float myOpacity;
+  vtkFloatingPointType myOpacity;
   int myDisplayMode;
   bool myIsInfinite;
 
index 222d2f1ab9584e2756184b6e4180ca60d9021d8f..34967f0862311823a196012740ed4978b787eab1 100644 (file)
@@ -109,10 +109,6 @@ VTKViewer_AppendFilter
 }
 
 
-//==================================================================
-// function: DoMapping
-// purpose :
-//==================================================================
 void 
 VTKViewer_AppendFilter
 ::DoMapping()
@@ -138,7 +134,6 @@ VTKViewer_AppendFilter
   }
 }
 
-//---------------------------------------------------------------
 namespace
 {
   inline
@@ -170,7 +165,6 @@ VTKViewer_AppendFilter
 }
 
 
-//---------------------------------------------------------------
 vtkIdType 
 VTKViewer_AppendFilter
 ::GetCellOutputID(vtkIdType theInputID,
@@ -183,7 +177,6 @@ VTKViewer_AppendFilter
 }
 
 
-//---------------------------------------------------------------
 namespace
 {
   void
@@ -238,7 +231,6 @@ VTKViewer_AppendFilter
 }
 
 
-//---------------------------------------------------------------
 void
 VTKViewer_AppendFilter
 ::GetCellInputID(vtkIdType theOutputID,
@@ -254,7 +246,6 @@ VTKViewer_AppendFilter
 }
 
 
-//---------------------------------------------------------------
 void 
 VTKViewer_AppendFilter
 ::MakeOutput()
index ceaa3d3235a3ef5610dad5a56961443c670a6f0c..fde3273167c9a2d2b65bb8d80371673e331e7a77 100644 (file)
@@ -1,3 +1,21 @@
+// Copyright (C) 2005  CEA/DEN, EDF R&D, OPEN CASCADE, PRINCIPIA R&D
+//
+// This library is free software; you can redistribute it and/or
+// modify it under the terms of the GNU Lesser General Public
+// License as published by the Free Software Foundation; either
+// version 2.1 of the License.
+//
+// This library is distributed in the hope that it will be useful
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+// Lesser General Public License for more details.
+//
+// You should have received a copy of the GNU Lesser General Public
+// License along with this library; if not, write to the Free Software
+// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307 USA
+//
+// See http://www.salome-platform.org/
+//
 #ifndef VTKVIEWER_APPENDFILTER_H
 #define VTKVIEWER_APPENDFILTER_H
 
diff --git a/src/VTKViewer/VTKViewer_CellLocationsArray.cxx b/src/VTKViewer/VTKViewer_CellLocationsArray.cxx
new file mode 100644 (file)
index 0000000..777b7d9
--- /dev/null
@@ -0,0 +1,33 @@
+//  SALOME OBJECT : implementation of interactive object visualization for OCC and VTK viewers
+//
+//  Copyright (C) 2003  OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN,
+//  CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS 
+// 
+//  This library is free software; you can redistribute it and/or 
+//  modify it under the terms of the GNU Lesser General Public 
+//  License as published by the Free Software Foundation; either 
+//  version 2.1 of the License. 
+// 
+//  This library is distributed in the hope that it will be useful, 
+//  but WITHOUT ANY WARRANTY; without even the implied warranty of 
+//  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU 
+//  Lesser General Public License for more details. 
+// 
+//  You should have received a copy of the GNU Lesser General Public 
+//  License along with this library; if not, write to the Free Software 
+//  Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307 USA 
+// 
+//  See http://www.opencascade.org/SALOME/ or email : webmaster.salome@opencascade.org 
+//
+//
+//
+//  File   :
+//  Author :
+//  Module :
+//  $Header$
+
+#include "VTKViewer_CellLocationsArray.h"
+
+#include <vtkObjectFactory.h>
+
+vtkStandardNewMacro(VTKViewer_CellLocationsArray);
diff --git a/src/VTKViewer/VTKViewer_CellLocationsArray.h b/src/VTKViewer/VTKViewer_CellLocationsArray.h
new file mode 100644 (file)
index 0000000..67228ca
--- /dev/null
@@ -0,0 +1,42 @@
+// Copyright (C) 2005  OPEN CASCADE, CEA/DEN, EDF R&D, PRINCIPIA R&D
+// 
+// This library is free software; you can redistribute it and/or
+// modify it under the terms of the GNU Lesser General Public
+// License as published by the Free Software Foundation; either 
+// version 2.1 of the License.
+// 
+// This library is distributed in the hope that it will be useful 
+// but WITHOUT ANY WARRANTY; without even the implied warranty of 
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU 
+// Lesser General Public License for more details.
+//
+// You should have received a copy of the GNU Lesser General Public  
+// License along with this library; if not, write to the Free Software 
+// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307 USA
+//
+// See http://www.salome-platform.org/
+//
+
+#ifndef VTKVIEWER_CELLLOCATIONS_H
+#define VTKVIEWER_CELLLOCATIONS_H
+
+#include "VTKViewer.h"
+
+#if (VTK_MAJOR_VERSION >= 4) &&  (VTK_MINOR_VERSION >= 4)
+#  include <vtkIdTypeArray.h>
+#  define TCellLocationsArray vtkIdTypeArray
+#else
+#  include <vtkIntArray.h>
+#  define TCellLocationsArray vtkIntArray
+#endif
+
+struct VTKVIEWER_EXPORT VTKViewer_CellLocationsArray : TCellLocationsArray
+{
+  static VTKViewer_CellLocationsArray* New();
+  
+  vtkTypeMacro(VTKViewer_CellLocationsArray,TCellLocationsArray);
+};
+
+#undef TCellLocationsArray
+
+#endif
index 679e484289b2c5d38d31ad1f015b39ceeeeb15ca..5e0ede05501449677386fc826e27ea6c09c23ffe 100644 (file)
 
 #include "VTKViewer_ConvexTool.h"
 
-#include <vtkUnstructuredGrid.h>
-#include <vtkTriangle.h>
-#include <vtkConvexPointSet.h>
-#include <vtkUnstructuredGridWriter.h>
-#include <vtkMath.h>
-#include <vtkSmartPointer.h>
-
 #include <set>
-#include <iterator>
-#include <algorithm>
-#include <math.h>
-
-typedef vtkUnstructuredGrid TInput;
+#include <map>
 
-typedef std::set<vtkIdType> TUIDS; // unique ids 
-typedef std::map<vtkIdType,TUIDS> TPTOIDS; // id points -> unique ids
-
-namespace CONVEX_TOOL
-{
-  // all pairs
-  typedef std::pair<vtkIdType,vtkIdType> TPair;
-  typedef std::set<TPair> TSet;
-  
-  void
-  WriteToFile(vtkUnstructuredGrid* theDataSet, const std::string& theFileName)
-  {
-    vtkUnstructuredGridWriter* aWriter = vtkUnstructuredGridWriter::New();
-    aWriter->SetFileName(theFileName.c_str());
-    aWriter->SetInput(theDataSet);
-    aWriter->Write();
-    aWriter->Delete();
-  }
+#include <vtkUnstructuredGrid.h>
+#include <vtkGeometryFilter.h>
+#include <vtkDelaunay3D.h>
+#include <vtkGenericCell.h>
+#include <vtkPolyData.h>
+#include <vtkCellData.h>
+#include <vtkPoints.h>
+#include <vtkIdList.h>
+#include <vtkCell.h>
+#include <vtkPlane.h>
+#include <vtkMath.h>
 
-static float FACE_ANGLE_TOLERANCE=1.5;
-#define EPS 1.0e-38
-#define EPS_T 1.0e-3
-
-#ifdef _DEBUG_
-  static int MYDEBUG = 0;
-  static int MYDEBUG_REMOVE = 0;
-#else
-  static int MYDEBUG = 0;
-  static int MYDEBUG_REMOVE = 0;
-#endif
-
-/*! \fn static void GetCenter(TInput* theGrid,TCell theptIds,float *center)
- * \brief Calculation of geometry center.
- * \param theGrid - TInput cell.
- * \param theptIds - point ids.
- * \retval center - output array[3] with coordinates of geometry center.
- */
-static void GetCenter(vtkPoints* thePoints,float center[3])
+namespace
 {
-  float p[3];
-  center[0] = center[1] = center[2] = 0.0;
+  typedef std::vector<vtkIdType> TConnectivities;
 
-  int numPts = thePoints->GetNumberOfPoints();
-  if (numPts == 0) return;
-
-  // get the center of the cell
-  for (int i = 0; i < numPts; i++)
+  struct TPolygon
   {
-    thePoints->GetPoint(i, p);
-    for (int j = 0; j < 3; j++)
+    TConnectivities myConnectivities;
+    vtkFloatingPointType myOrigin[3];
+    vtkFloatingPointType myNormal[3];
+    TPolygon(const TConnectivities& theConnectivities,
+            vtkFloatingPointType theOrigin[3],
+            vtkFloatingPointType theNormal[3]):
+      myConnectivities(theConnectivities)
     {
-      center[j] += p[j];
+      myOrigin[0] = theOrigin[0];
+      myOrigin[1] = theOrigin[1];
+      myOrigin[2] = theOrigin[2];
+
+      myNormal[0] = theNormal[0];
+      myNormal[1] = theNormal[1];
+      myNormal[2] = theNormal[2];
     }
-  }
-  for (int j = 0; j < 3; j++)
-  {
-    center[j] /= numPts;
-  }
+  };
+
+  typedef std::vector<TPolygon> TPolygons;
 }
 
-/*! \fn static void ReverseIds(TCell &theIds)
- * \brief Reverse ids.
- * \param theIds - points ids.
- * \retval theIds - example input:(1,2,3,4) -> output:(4,3,2,1)
- */
-static void ReverseIds(TCell &theIds)
+/*!
+  Constructor
+*/
+VTKViewer_Triangulator
+::VTKViewer_Triangulator():
+  myInput(NULL),
+  myCellId(-1),
+  myShowInside(-1),
+  myAllVisible(-1),
+  myCellsVisibility(NULL),
+  myCellIds(vtkIdList::New())
+{}
+
+
+/*!
+  Destructor
+*/
+VTKViewer_Triangulator
+::~VTKViewer_Triangulator()
 {
-  int i;
-  vtkIdType tmp;
-  vtkIdType npts=theIds.size();
-
-  for(i=0;i<(npts/2);i++){
-    tmp = theIds[i];
-    theIds[i] = theIds[npts-i-1];
-    theIds[npts-i-1] = tmp;
-  }
+  myCellIds->Delete();
 }
 
-/*! \fn void GetFriends(const TPTOIDS p2faces,const TCellArray f2points,TPTOIDS& face2face_output)
- * \brief Caclulation of connected faces (faceId -> (faceId1,faceId2, ...))
- * \param p2faces - point to faces ids map.
- * \param f2points - faces to points ids map.
- * \retval face2face_output - faces to faces ids map.
- */
-void GetFriends(const TPTOIDS p2faces,const TCellArray f2points,TPTOIDS& face2face_output)
-{
-  TCellArray::const_iterator f2pIter = f2points.begin();
 
-  for( ; f2pIter!=f2points.end() ; f2pIter++ ){
-    vtkIdType faceId = f2pIter->first;
-    TCell face_points = f2pIter->second;
-    int nb_face_points = face_points.size();
-    
-    vtkIdType id1;
-    vtkIdType id2;
-    TPTOIDS::const_iterator faces1;
-    TPTOIDS::const_iterator faces2;
-    
-    id1 = face_points[0];
-    faces1 = p2faces.find(id1);
-    
-    TUIDS output_faces;
-      
-    for(int i=1 ; i<nb_face_points ; i++ ){
 
-      id2 = face_points[i];
+bool 
+VTKViewer_Triangulator
+::Execute(vtkUnstructuredGrid *theInput,
+         vtkCellData* thInputCD,
+         vtkIdType theCellId,
+         int theShowInside,
+         int theAllVisible,
+         const char* theCellsVisibility,
+         vtkPolyData *theOutput,
+         vtkCellData* theOutputCD,
+         int theStoreMapping,
+         std::vector<vtkIdType>& theVTK2ObjIds,
+         bool theIsCheckConvex)
+{
+  myInput = theInput;
+  myCellId = theCellId;
+  myShowInside = theShowInside;
+  myAllVisible = theAllVisible;
+  myCellsVisibility = theCellsVisibility;
 
-      faces2 = p2faces.find(id2);
-      
-      std::set_intersection(faces1->second.begin(), faces1->second.end(), faces2->second.begin(), faces2->second.end(),
-        std::inserter(output_faces,output_faces.begin()));
-      
-      id1 = id2;
-      faces1 = faces2;
-    }
-    id1 = face_points[0];
-    faces1 = p2faces.find(id1);
-    std::set_intersection(faces1->second.begin(), faces1->second.end(), faces2->second.begin(), faces2->second.end(),
-      std::inserter(output_faces,output_faces.begin()));
-    
-    output_faces.erase(faceId); // erase the face id for which we found friends
+  vtkPoints *aPoints = InitPoints();
+  vtkIdType aNumPts = GetNbOfPoints();
+  //cout<<"Triangulator - aNumPts = "<<aNumPts<<"\n";
 
-    if(MYDEBUG){
-      cout << "fId[" << faceId <<"]: ";
-      std::copy(output_faces.begin(), output_faces.end(), std::ostream_iterator<vtkIdType>(cout, " "));
-      cout << endl;
+  if(aNumPts == 0)
+    return true;
+
+  // To calculate the bary center of the cell
+  vtkFloatingPointType aCellCenter[3] = {0.0, 0.0, 0.0};
+  {
+    vtkFloatingPointType aPntCoord[3];
+    for (int aPntId = 0; aPntId < aNumPts; aPntId++) {
+      aPoints->GetPoint(GetPointId(aPntId),aPntCoord);
+      //cout<<"\taPntId = "<<aPntId<<" {"<<aPntCoord[0]<<", "<<aPntCoord[1]<<", "<<aPntCoord[2]<<"}\n";
+      aCellCenter[0] += aPntCoord[0];
+      aCellCenter[1] += aPntCoord[1];
+      aCellCenter[2] += aPntCoord[2];
     }
-    
-    face2face_output[faceId] = output_faces;
+    aCellCenter[0] /= aNumPts;
+    aCellCenter[1] /= aNumPts;
+    aCellCenter[2] /= aNumPts;
   }
-}
 
-/*! \fn bool IsConnectedFacesOnOnePlane( TInput* theGrid,vtkIdType theFId1, vtkIdType theFId2,TUIDS FpIds1, TUIDS FpIds2 )
- * \brief Check is connected faces on one plane.
- * \param theGrid - TInput
- * \param theFId1 - id of first face
- * \param theFId2 - id of second face
- * \param FpIds1  - first face points ids.
- * \param FpIds2  - second face points ids.
- * \return TRUE if two faces on one plane, else FALSE.
- */
-bool IsConnectedFacesOnOnePlane( TInput* theGrid,
-                                 vtkIdType theFId1, vtkIdType theFId2,
-                                TUIDS FpIds1, TUIDS FpIds2 )
-{
-  bool status = false;
-  TUIDS common_ids;
-  std::set_intersection(FpIds1.begin(), FpIds1.end(), FpIds2.begin(), FpIds2.end(),
-                       std::inserter(common_ids,common_ids.begin()));
-  
-  /*           Number of common ids = 2 (A1,A2)
-              
-  
-                _ _ _ _ _      _ _ _ _    vectors:
-               |         \   /         |   v1 {A2,A1}
-                          \ /              v2 {A1,B1}
-               |           | A2        |   v3 {A1,C1}
-                          |               
-              |           |           |
-                          |
-              |           | A1        |
-                         / \
-              |_ _ _ _ _/   \_ _ _ _ _|
-              B2        B1   C1        C2
-
-   */
-  TUIDS::iterator common_iter = common_ids.begin();
-  if(common_ids.size() == 2){
-    TUIDS::iterator loc_id1_0 = FpIds1.find(*(common_iter));
-    common_iter++;
-    TUIDS::iterator loc_id1_1 = FpIds1.find(*(common_iter));
-
-    TUIDS::iterator loc_id2_0 = FpIds1.begin();
-    TUIDS::iterator loc_id2_1 = FpIds2.begin();
-
-    vtkIdType A1 = *loc_id1_0;
-    vtkIdType A2 = *loc_id1_1;
-    vtkIdType B1;
-    vtkIdType C1;
-
-    for(;loc_id2_0!=FpIds1.end();loc_id2_0++)
-      if(*loc_id2_0 != A1 && *loc_id2_0!= A2){
-       B1 = *loc_id2_0;
-       break;
-      }
-    for(;loc_id2_1!=FpIds2.end();loc_id2_1++)
-      if(*loc_id2_1 != A1 && *loc_id2_1!= A2){
-       C1 = *loc_id2_1;
-       break;
-      }
-    if(MYDEBUG) cout <<endl;
-    if(MYDEBUG) cout << "FId_1="<<theFId1<<" FId_2="<<theFId2<<endl;
-    if(MYDEBUG) cout << "   A1="<<A1<<" A2="<<A2<<" B1="<<B1<<" C1="<<C1<<" ->";
-    float *p[4];
-    float v1[3],v2[3],v3[3];
-    p[0] = theGrid->GetPoint(A1);
-    p[1] = theGrid->GetPoint(A2);
-    p[2] = theGrid->GetPoint(B1);
-    p[3] = theGrid->GetPoint(C1);
-
-    for(int i=0;i<3;i++){
-      v1[i] = p[1][i] - p[0][i];
-      v2[i] = p[2][i] - p[0][i];
-      v3[i] = p[3][i] - p[0][i];
-    }
-    
-    
-    float vec_b1[3];
-    vtkMath::Cross(v2,v1,vec_b1);
-    float vec_b2[3];
-    vtkMath::Cross(v1,v3,vec_b2);
+  vtkFloatingPointType aCellLength = GetCellLength();
+  int aNumFaces = GetNumFaces();
 
-    float b1 = vtkMath::Norm(vec_b1);
+  static vtkFloatingPointType EPS = 1.0E-2;
+  vtkFloatingPointType aDistEps = aCellLength * EPS;
+  //cout<<"\taCellLength = "<<aCellLength<<"; aDistEps = "<<aDistEps<<"\n";
 
-    float b2 = vtkMath::Norm(vec_b2);
-    float aCos = vtkMath::Dot(vec_b1,vec_b2)/(b1*b2);
-    
-    float angle=90.0;
-    angle = aCos>=1.0 ? 0.0 : 180*acosf(aCos)/vtkMath::Pi();
-    
-    if( angle <= FACE_ANGLE_TOLERANCE)
-      status = true;
-    if (MYDEBUG){
-      for(int k=0;k<4;k++){
-       cout << " (";
-       for(int j=0;j<2;j++){
-         cout << p[k][j] << ",";
-       }
-       cout << p[k][2] << ")   ";
-      }
-      if(status) cout << "angle="<<angle<<" status="<<status<<endl;
-    }
-    
-  } else if (common_ids.size() >2){
-    // not implemented yet
-    if(MYDEBUG) cout << "Warning! VTKViewer_ConvexTool::IsConnectedFacesOnOnePlane()";
-  } else {
-    // one or no connection ... continue
-  }
+  // To initialize set of points that belong to the cell
+  typedef std::set<vtkIdType> TPointIds;
+  TPointIds anInitialPointIds;
+  for(vtkIdType aPntId = 0; aPntId < aNumPts; aPntId++)
+    anInitialPointIds.insert(GetPointId(aPntId));
   
-  return status;
-}
-
-/*! \fn void GetAllFacesOnOnePlane( TPTOIDS theFaces, vtkIdType faceId,TUIDS &new_faces, TCell &new_faces_v2 )
- * \brief Calculate faces which on one plane.
- * \param theFaces - 
- * \param faceId - 
- * \param new_faces - 
- * \param new_faces_v2 - 
- */
-void GetAllFacesOnOnePlane( TPTOIDS theFaces, vtkIdType faceId, 
-                            TUIDS &new_faces, TCell &new_faces_v2 )
-{
-  if (new_faces.find(faceId) != new_faces.end()) return;
+  // To initialize set of points by face that belong to the cell and backward
+  typedef std::set<vtkIdType> TFace2Visibility;
+  TFace2Visibility aFace2Visibility;
   
-  new_faces.insert(new_faces.begin(),faceId);
-  new_faces_v2.push_back(faceId);
-
-  TPTOIDS::const_iterator aIter1 = theFaces.find(faceId);
-  if(aIter1!=theFaces.end()){
-    TUIDS::const_iterator aIter2 = (aIter1->second).begin();
-    for(;aIter2!=(aIter1->second).end();aIter2++){
-      if (new_faces.find(*aIter2) != new_faces.end()) continue;
-      GetAllFacesOnOnePlane(theFaces,*aIter2,
-                           new_faces,new_faces_v2); // recurvise
-    }
-  }
-  return;
-}
+  typedef std::set<TPointIds> TFace2PointIds;
+  TFace2PointIds aFace2PointIds;
 
-/*! \fn void GetSumm(TCell v1,TCell v2,TCell &output)
- * \brief Gluing two faces (gluing points ids)
- * \param v1 - first face
- * \param v2 - second face
- * \param output - output face.
- */
-void GetSumm(TCell v1,TCell v2,TCell &output)
-{
-  output.clear();
-
-  if(MYDEBUG) cout << "========================================="<<endl;
-  if(MYDEBUG) cout << "v1:";
-  if(MYDEBUG) std::copy(v1.begin(), v1.end(), std::ostream_iterator<vtkIdType>(cout, " "));
-  if(MYDEBUG) cout << "\tv2:";
-  if(MYDEBUG) std::copy(v2.begin(), v2.end(), std::ostream_iterator<vtkIdType>(cout, " "));
-  if(MYDEBUG) cout << endl;
-  
-  TUIDS v1_set;
-  std::copy(v1.begin(), v1.end(), std::inserter(v1_set,v1_set.begin()));
-  TUIDS v2_set;
-  std::copy(v2.begin(), v2.end(), std::inserter(v2_set,v2_set.begin()));
-  TUIDS tmpIntersection;
-  std::set_intersection(v1_set.begin(),v1_set.end(),v2_set.begin(),v2_set.end(), std::inserter(tmpIntersection,tmpIntersection.begin()));
-  if(MYDEBUG) std::copy(tmpIntersection.begin(),tmpIntersection.end(), std::ostream_iterator<vtkIdType>(cout, " "));
-  if(MYDEBUG) cout << endl;
-
-  if(tmpIntersection.size() < 2)
-    if(MYDEBUG) cout << __FILE__ << "[" << __LINE__ << "]: Warning ! Wrong ids" << endl;
-  
-  TCell::iterator v1_iter = v1.begin();
-  
-  for(;v1_iter!=v1.end();v1_iter++){
-    
-    vtkIdType curr_id = *v1_iter;
-    
-    output.push_back(curr_id);
+  for (int aFaceId = 0; aFaceId < aNumFaces; aFaceId++) {
+    vtkCell* aFace = GetFace(aFaceId);
     
-    if(tmpIntersection.find(curr_id) != tmpIntersection.end()){
-      TCell::iterator v1_iter_tmp;
-      v1_iter_tmp = v1_iter;
-      v1_iter++;
-      if(v1_iter==v1.end()) v1_iter=v1.begin();
-
-      curr_id = *v1_iter;
-
-      if(tmpIntersection.find(curr_id) != tmpIntersection.end()){
-       TCell::iterator v2_iter = v2.begin();
-       for(;v2_iter!=v2.end();v2_iter++){
-         vtkIdType v2_id = *v2_iter;
-         if(tmpIntersection.find(v2_id) == tmpIntersection.end())
-           output.push_back(v2_id);
-       }
-      }
-      
-      v1_iter = v1_iter_tmp;
-      curr_id = *v1_iter;
+    GetCellNeighbors(theCellId, aFace, myCellIds);
+    if((!myAllVisible && !myCellsVisibility[myCellIds->GetId(0)]) || 
+       myCellIds->GetNumberOfIds() <= 0 || myShowInside)
+    {
+      TPointIds aPointIds;
+      vtkIdList *anIdList = aFace->PointIds;  
+      aPointIds.insert(anIdList->GetId(0));
+      aPointIds.insert(anIdList->GetId(1));
+      aPointIds.insert(anIdList->GetId(2));
       
+      aFace2PointIds.insert(aPointIds);
+      aFace2Visibility.insert(aFaceId);
     }
   }
 
-  if(MYDEBUG) cout << "Result: " ;
-  if(MYDEBUG) std::copy(output.begin(),output.end(),std::ostream_iterator<vtkIdType>(cout, " "));
-  if(MYDEBUG) cout << endl;
-}
-
-static void GetAndRemoveIdsOnOneLine(vtkPoints* points,
-                                    TUIDS input_points_ids,
-                                    TUIDS input_two_points_ids,
-                                    TUIDS& out_two_points_ids,
-                                    TUIDS& removed_points_ids){
-  if (MYDEBUG_REMOVE) cout << EPS <<endl;
-  float P[3][3];
-  vtkIdType current_points_ids[2];
-  if(MYDEBUG_REMOVE) 
-    if(input_two_points_ids.size()!=2) cout << "Error. Must be two ids in variable input_two_points_ids="<<input_two_points_ids.size()<<endl;
-  TUIDS::const_iterator aInPointsIter = input_two_points_ids.begin();
-  for(int i=0;i<2 && aInPointsIter!=input_two_points_ids.end();aInPointsIter++,i++){
-    current_points_ids[i] = *aInPointsIter;
-    if (MYDEBUG_REMOVE) cout << " " << *aInPointsIter;
-  }
-  if (MYDEBUG_REMOVE) cout << endl;
-  bool iscurrent_points_changed = false;
-  points->GetPoint(current_points_ids[0],P[0]);
-  points->GetPoint(current_points_ids[1],P[1]);
-  TUIDS::iterator aPointsIter = input_points_ids.begin();
-  for(;aPointsIter!=input_points_ids.end();aPointsIter++){
-    if(iscurrent_points_changed){
-      points->GetPoint(current_points_ids[0],P[0]);
-      points->GetPoint(current_points_ids[1],P[1]);
-      iscurrent_points_changed = false;
-      if (MYDEBUG_REMOVE) 
-       cout << " " << current_points_ids[0] << " " << current_points_ids[1] << endl;
-    }
-    // check: is point on line input_two_points_ids
-    points->GetPoint(*aPointsIter,P[2]);
-    if (MYDEBUG_REMOVE) {
-      cout << "\t" << current_points_ids[0] << ":"<<P[0][0]<<","<<P[0][1]<<","<<P[0][2]<<endl;
-      cout << "\t" << current_points_ids[1] << ":"<<P[1][0]<<","<<P[1][1]<<","<<P[1][2]<<endl;
-      cout << "\t" << *aPointsIter << ":"<<P[2][0]<<","<<P[2][1]<<","<<P[2][2]<<endl;
-    }
-  
-    // x-x1=(x2-x1)*t -> coeff[0][0] = (x-x1), coeff[0][1] = x2-x1
-    // y-y1=(y2-y1)*t -> coeff[1][0] = (y-y1), coeff[1][1] = y2-y1
-    // z-z1=(z2-z1)*t -> coeff[2][0] = (z-z1), coeff[2][1] = z2-z1
-    float coeff[3][2];
-    for(int i=0;i<3;i++){
-      coeff[i][0] = P[2][i]-P[0][i];
-      coeff[i][1] = P[1][i]-P[0][i];
-    }
-    bool isok_coord[3];
-    bool isok = true;
-    float t[3];
-    for(int i=0;i<3;i++){
-      isok_coord[i] = false;
-      if( fabs(coeff[i][0]) <= EPS && fabs(coeff[i][1]) <= EPS) {
-       isok_coord[i] = true;
-       continue;
-      }
-      if( fabs(coeff[i][1]) <= EPS && fabs(coeff[i][0]) > EPS) {isok = false;t[i]=1.0/EPS;break;}
-      t[i] = (coeff[i][0])/(coeff[i][1]);
-    }
-    for(int i=0;i<3;i++)
-      if (MYDEBUG_REMOVE) 
-       cout << __LINE__ << "          " 
-            << coeff[i][0] << ","<<coeff[i][1]
-            <<"   t="<<t[i]<<" isok_coord="<<isok_coord[i]<<endl;
-    if(!isok) continue;
-
-    if (!isok_coord[0] && !isok_coord[1]){
-      if (fabs(t[0]-t[1]) <= EPS_T) isok = true;
-      else isok = false;
-    }
-    if (MYDEBUG_REMOVE) cout << __LINE__ << "          1000 " << isok << endl;
-    if(!isok) continue;
-    if (!isok_coord[1] && !isok_coord[2]){
-      if (fabs(t[1] - t[2]) <= EPS_T) isok = true;
-      else isok = false;
-    }
-    if (MYDEBUG_REMOVE) cout << __LINE__ << "          2000 " << isok << endl;
-    if(!isok) continue;
-    if (!isok_coord[0] && !isok_coord[2]){
-      if (fabs(t[0] - t[2]) <= EPS_T) isok = true;
-      else isok = false;
-    }
-    if (MYDEBUG_REMOVE) cout << __LINE__ << "          3000 " << isok<<endl;
-    if(!isok) continue;
-    
-    float param[3]; // parametric coord for P[0],P[1],P[2] <--->t[0],t[1],t[2]
-    // anilize bounds of line
-    for(int i=0;i<3;i++){
-      for(int j=0;j<3;j++)
-       if(!isok_coord[j]) param[i] = (P[i][j]-P[0][j])/(P[1][j]-P[0][j]);
-    }
-    if (MYDEBUG_REMOVE) cout << "Params: " << param[0] << "," << param[1] << "," << param[2] << endl;
-    vtkIdType imax,imin;
-    float min,max;
-    for(vtkIdType i=0;i<3;i++)
-      if(!isok_coord[i]){
-       min = param[0];imin=0;
-       max = param[0];imax=0;
-       break;
-      }
-    for(vtkIdType i=0;i<3;i++){
-       if(min > param[i]) {min = param[i]; imin=i;}
-       if(max < param[i]) {max = param[i]; imax=i;}
-    }
-    if (MYDEBUG_REMOVE) 
-      cout << "\t min="<<min<<"  max="<<max<<" - "<<"imin="<<imin<<"  imax="<<imax<<endl;
-    // imin - index of left point
-    // imax - index of right point
-    
-    // add id to removed point
-    vtkIdType rem_id,id1,id2;
-    for(vtkIdType i=0;i<3;i++)
-      if (i!=imin && i!=imax) {rem_id = i; break;}
-    
-    if(rem_id == 0) {
-      rem_id = current_points_ids[0];
-      id1=current_points_ids[1];
-      id2=*aPointsIter;
-    }
-    else if (rem_id == 1) {
-      rem_id = current_points_ids[1];
-      id1=current_points_ids[0];
-      id2=*aPointsIter;
-    }
-    else if (rem_id == 2) {
-      rem_id = *aPointsIter;
-      id1=current_points_ids[0];
-      id2=current_points_ids[1];
-    }
-    if (MYDEBUG_REMOVE) 
-      cout << " " << current_points_ids[0] <<","<<current_points_ids[1]<<"---->"<<id1<<","<<id2<<endl;
-    if((current_points_ids[0] == id1 && current_points_ids[1] == id2) ||
-       (current_points_ids[0] == id2 && current_points_ids[1] == id1))
-      {}
-    else {
-      iscurrent_points_changed = true;
-      current_points_ids[0] = id1;
-      current_points_ids[1] = id2;
-    }
-    
-    removed_points_ids.insert(rem_id);
-  }
-  out_two_points_ids.insert(current_points_ids[0]);
-  out_two_points_ids.insert(current_points_ids[1]);
-}
-
-static vtkSmartPointer<vtkConvexPointSet> RemoveAllUnneededPoints(vtkConvexPointSet* convex){
-  vtkSmartPointer<vtkConvexPointSet> out = vtkConvexPointSet::New();
-  
-  TUIDS two_points,input_points,out_two_points_ids,removed_points_ids,loc_removed_points_ids;
-  vtkIdList* aPointIds = convex->GetPointIds();
-  int numIds = aPointIds->GetNumberOfIds();
-  if (numIds<2) return out;
-  TSet good_point_ids;
-  TSet aLists[numIds-2];
-  for(int i=0;i<numIds-2;i++){
-    for(int j=i+1;j<numIds-1;j++){
-      TPair aPair(i,j);
-      aLists[i].insert(aPair);
-    }
-  }
-  for(vtkIdType i=0;i<numIds-2;i++){
-    TUIDS::iterator aRemIter=removed_points_ids.find(i);
-    if(aRemIter!=removed_points_ids.end()) continue;
-    TSet::iterator aPairIter=aLists[i].begin();
-    loc_removed_points_ids.clear();
-    out_two_points_ids.clear();
-    input_points.clear();
-    two_points.clear();
-    for(;aPairIter!=aLists[i].end();aPairIter++){
-      vtkIdType aFirId = (*aPairIter).first;
-      vtkIdType aSecId = (*aPairIter).second;
-      aRemIter=removed_points_ids.find(aSecId);
-      if(aRemIter!=removed_points_ids.end()) continue;
-      TPair aPair1(aFirId,aSecId);
-      TPair aPair2(aSecId,aFirId);
-      TSet::iterator aGoodIter=good_point_ids.find(aPair1);
-      if(aGoodIter!=good_point_ids.end()) continue;
-      aGoodIter=good_point_ids.find(aPair2);
-      if(aGoodIter!=good_point_ids.end()) continue;
-      two_points.insert(aFirId);
-      two_points.insert(aSecId);
-      if (MYDEBUG_REMOVE) 
-       cout << "\nInput: " << aFirId<<":"<<aPointIds->GetId(aFirId) << "," << aSecId <<":"<<aPointIds->GetId(aSecId)<< "  --- ";
-      for(vtkIdType k=aSecId+1;k<numIds;k++) {
-       input_points.insert(k);
-       if (MYDEBUG_REMOVE) cout << k<<":"<<aPointIds->GetId(k) << ",";
-      }
-      if (MYDEBUG_REMOVE) {
-       cout << endl;
-       cout << "\t";
-       for(TUIDS::iterator aDelIter = loc_removed_points_ids.begin();aDelIter!=loc_removed_points_ids.end();aDelIter++) 
-         cout << *aDelIter<<",";
-       cout << endl;
-      }
-      GetAndRemoveIdsOnOneLine(convex->Points,
-                              input_points,
-                              two_points,
-                              out_two_points_ids,
-                              loc_removed_points_ids);
-      TUIDS::iterator aOutIter = out_two_points_ids.begin();
-      vtkIdType aFirst=*aOutIter;aOutIter++;vtkIdType aSecond=*aOutIter;
-      TPair aPair(aFirst,aSecond);
-      good_point_ids.insert(aPair);
-      if (MYDEBUG_REMOVE){
-       cout << "Output: ";
-       TUIDS::iterator aIter = out_two_points_ids.begin();
-       for(;aIter!=out_two_points_ids.end();aIter++)
-         cout << *aIter << ",";
-       cout << " --- ";
-      }
-      TUIDS::iterator aDelIter = loc_removed_points_ids.begin();
-      for(;aDelIter!=loc_removed_points_ids.end();aDelIter++){
-       removed_points_ids.insert(*aDelIter);
-       if (MYDEBUG_REMOVE) cout << *aDelIter << ",";
-      }
-      if (MYDEBUG_REMOVE) cout << endl;
-    }
-  }
-  if (MYDEBUG_REMOVE) {
-    cout << "============ Resultat ================" <<endl;
-    cout << "Removed:";
-    for(TUIDS::iterator aIter=removed_points_ids.begin();aIter!=removed_points_ids.end();aIter++)
-      cout << *aIter << ",";
-    cout << endl;
-  }
-  
-  TUIDS result_ids,all_ids;
-  for(vtkIdType i=0;i<numIds;i++) all_ids.insert(i);
-  std::set_difference(all_ids.begin(),
-                     all_ids.end(),
-                     removed_points_ids.begin(),
-                     removed_points_ids.end(),
-                     std::inserter(result_ids,result_ids.begin()));
-
-  out->Points->SetNumberOfPoints(result_ids.size());
-  out->PointIds->SetNumberOfIds(result_ids.size());
-  int aId=0;
-  if(MYDEBUG_REMOVE) cout << "Result out:";
-  for(TUIDS::iterator aIter=result_ids.begin();aIter!=result_ids.end();aIter++,aId++){
-    float P[3];
-    convex->Points->GetPoint(*aIter,P);
-    out->Points->SetPoint(aId,P);
-    out->PointIds->SetId(aId,aPointIds->GetId(*aIter));
-    if (MYDEBUG_REMOVE) cout << *aIter << ":" << aPointIds->GetId(*aIter) << " , ";
-  }
-  if(MYDEBUG_REMOVE) cout << endl;
-  out->Modified();
-  out->Initialize();
-  
-  return out;
-}
 
-void GetPolygonalFaces(vtkUnstructuredGrid* theGrid,int cellId,TCellArray &outputCellArray)
-{
-  if (theGrid->GetCellType(cellId) == VTK_CONVEX_POINT_SET){
-    // get vtkCell type = VTK_CONVEX_POINT_SET
-    if(vtkConvexPointSet* convex_in = static_cast<vtkConvexPointSet*>(theGrid->GetCell(cellId))){
-      vtkSmartPointer<vtkConvexPointSet> convex = RemoveAllUnneededPoints(convex_in);
-      TCellArray f2points;
-      float convex_center[3]; // convex center point coorinat
-      int aNbFaces = convex->GetNumberOfFaces();
-      int numPts = convex->GetNumberOfPoints();
-      if(MYDEBUG_REMOVE) cout << "aNbFaces="<<aNbFaces<<endl;
-      if(MYDEBUG_REMOVE) cout << "numPts="<<numPts<<endl;
-      TPTOIDS p2faces; // key=pointId , value facesIds set
-
-      GetCenter(convex->Points,convex_center);
-
-      for (vtkIdType faceId=0; faceId < aNbFaces; faceId++){
-       vtkCell *aFace = convex->GetFace(faceId);
-       int numFacePts = aFace->GetNumberOfPoints();
-       TCell aIds;
-
-        int i = 0;
-       for(i=0;i<numFacePts;i++)
-         aIds.push_back(aFace->GetPointId(i));
-
-       float v_a[3],v_b[3],v_convex2face[3]; // vectors
-       float *id_0,*id_1,*id_n;
-       /*=============================================
-                       ,+- - - -  _
-                  _   / id_n   |  v_b {id_0,id_n}
-                 v_b /            _
-                    /          |  v_a {id_0,id_1}
-                   /          
-                  /            |
-                 + id_0
-                  \
-                 _ \           |
-                v_a \
-                     \ id_1    |
-                      "+- - - -
-
-        ============================================*/ 
-       id_0 = theGrid->GetPoint(aIds[0]);
-       id_1 = theGrid->GetPoint(aIds[1]);
-       id_n = theGrid->GetPoint(aIds[numFacePts-1]);
-
-       for(i=0;i<3;i++){
-         v_a[i] = id_1[i] - id_0[i];
-         v_b[i] = id_n[i] - id_0[i];
-         v_convex2face[i] = id_0[i] - convex_center[i];
-       }
+  ::TPolygons aPolygons;
 
-       if (vtkMath::Determinant3x3(v_a,v_b,v_convex2face) < 0){
-         ReverseIds(aIds);
-       }
+  for (int aFaceId = 0; aFaceId < aNumFaces; aFaceId++) {
+    if(aFace2Visibility.find(aFaceId) == aFace2Visibility.end())
+      continue;
 
-       for(i=0;i<(int)aIds.size();i++){
-         TUIDS &acell = p2faces[aIds[i]];
-         acell.insert(faceId);
-       }
-       
-       f2points[faceId] = aIds;
+    vtkCell* aFace = GetFace(aFaceId);
 
-      }
-      
-      TPTOIDS face2face;
-      GetFriends(p2faces,f2points,face2face);
+    vtkIdList *anIdList = aFace->PointIds;
+    vtkIdType aNewPts[3] = {anIdList->GetId(0), anIdList->GetId(1), anIdList->GetId(2)};
+           
+    // To initialize set of points for the plane where the trinangle face belong to
+    TPointIds aPointIds;
+    aPointIds.insert(aNewPts[0]);
+    aPointIds.insert(aNewPts[1]);
+    aPointIds.insert(aNewPts[2]);
+
+    // To get know, if the points of the trinagle were already observed
+    bool anIsObserved = aFace2PointIds.find(aPointIds) == aFace2PointIds.end();
+    //cout<<"\taFaceId = "<<aFaceId<<"; anIsObserved = "<<anIsObserved;
+    //cout<<"; aNewPts = {"<<aNewPts[0]<<", "<<aNewPts[1]<<", "<<aNewPts[2]<<"}\n";
+    
+    if(!anIsObserved){
+      // To get coordinates of the points of the traingle face
+      vtkFloatingPointType aCoord[3][3];
+      aPoints->GetPoint(aNewPts[0],aCoord[0]);
+      aPoints->GetPoint(aNewPts[1],aCoord[1]);
+      aPoints->GetPoint(aNewPts[2],aCoord[2]);
       
-      TPTOIDS face2points;
+      // To calculate plane normal
+      vtkFloatingPointType aVector01[3] = { aCoord[1][0] - aCoord[0][0],
+                                           aCoord[1][1] - aCoord[0][1],
+                                           aCoord[1][2] - aCoord[0][2] };
       
-      // copy TCellArray::f2points to TPTOIDS::face2points
-      for(TCellArray::iterator f2points_iter=f2points.begin();
-         f2points_iter!=f2points.end();
-         f2points_iter++){
-       
-       TUIDS tmp;
-       for(TCell::iterator points_iter=(f2points_iter->second).begin();
-           points_iter!=(f2points_iter->second).end();
-           points_iter++)
-         tmp.insert(*points_iter);
-       
-       face2points[f2points_iter->first] = tmp;
-      } // end copy
-       
+      vtkFloatingPointType aVector02[3] = { aCoord[2][0] - aCoord[0][0],
+                                           aCoord[2][1] - aCoord[0][1],
+                                           aCoord[2][2] - aCoord[0][2] };
       
-      TPTOIDS new_face2faces; // which connected and in one plane
+      // To calculate the normal for the triangle
+      vtkFloatingPointType aNormal[3];
+      vtkMath::Cross(aVector02,aVector01,aNormal);
       
-      TPTOIDS::const_iterator aF2FIter = face2face.begin();
-      for(;aF2FIter!=face2face.end();aF2FIter++){
-       vtkIdType f_key = aF2FIter->first;
-       TUIDS &faces = new_face2faces[f_key];
-       //faces.insert(f_key);
-       TUIDS f_friends = aF2FIter->second;
-       TUIDS::const_iterator a_friends_iter = f_friends.begin();
-       for(;a_friends_iter!=f_friends.end();a_friends_iter++){
-         vtkIdType friend_id = *a_friends_iter;
-         if( IsConnectedFacesOnOnePlane(theGrid,f_key,friend_id,
-                                       (face2points.find(f_key))->second,
-                                       (face2points.find(friend_id))->second)){
-           faces.insert(friend_id);
-         } // end if
-         
-       } // end a_friends_iter
-      } // end aF2FIter
+      vtkMath::Normalize(aNormal);
       
-      if(MYDEBUG)
+      // To calculate what points belong to the plane
+      // To calculate bounds of the point set
+      vtkFloatingPointType aCenter[3] = {0.0, 0.0, 0.0};
       {
-       TPTOIDS::const_iterator new_face2face_iter = new_face2faces.begin();
-       cout << "Connected faces and on plane:" << endl;
-       for(;new_face2face_iter!=new_face2faces.end();new_face2face_iter++){
-         cout << "Group ["<<new_face2face_iter->first<<"] :";
-         TUIDS::const_iterator new_faces_iter = (new_face2face_iter->second).begin();
-         for(;new_faces_iter!=(new_face2face_iter->second).end();new_faces_iter++)
-           cout << " " << *new_faces_iter ;
-         cout << endl;
+       TPointIds::const_iterator anIter = anInitialPointIds.begin();
+       TPointIds::const_iterator anEndIter = anInitialPointIds.end();
+       for(; anIter != anEndIter; anIter++){
+         vtkFloatingPointType aPntCoord[3];
+         vtkIdType aPntId = *anIter;
+         aPoints->GetPoint(aPntId,aPntCoord);
+         vtkFloatingPointType aDist = vtkPlane::DistanceToPlane(aPntCoord,aNormal,aCoord[0]);
+         //cout<<"\t\taPntId = "<<aPntId<<" {"<<aPntCoord[0]<<", "<<aPntCoord[1]<<", "<<aPntCoord[2]<<"}; aDist = "<<aDist<<"\n";
+         if(fabs(aDist) < aDistEps){
+           aPointIds.insert(aPntId);
+           aCenter[0] += aPntCoord[0];
+           aCenter[1] += aPntCoord[1];
+           aCenter[2] += aPntCoord[2];
+         }
        }
+       int aNbPoints = aPointIds.size();
+       aCenter[0] /= aNbPoints;
+       aCenter[1] /= aNbPoints;
+       aCenter[2] /= aNbPoints;
       }
       
-      TPTOIDS output_newid2face;
-      TCellArray output_newid2face_v2;
+      //To sinchronize orientation of the cell and its face
+      vtkFloatingPointType aVectorC[3] = { aCenter[0] - aCellCenter[0],
+                                          aCenter[1] - aCellCenter[1],
+                                          aCenter[2] - aCellCenter[2] };
+      vtkMath::Normalize(aVectorC);
+      
+      vtkFloatingPointType aDot = vtkMath::Dot(aNormal,aVectorC);
+      //cout<<"\t\taNormal = {"<<aNormal[0]<<", "<<aNormal[1]<<", "<<aNormal[2]<<"}";
+      //cout<<"; aVectorC = {"<<aVectorC[0]<<", "<<aVectorC[1]<<", "<<aVectorC[2]<<"}\n";
+      //cout<<"\t\taDot = "<<aDot<<"\n";
+      if(aDot > 0){
+       aNormal[0] = -aNormal[0];
+       aNormal[1] = -aNormal[1];
+       aNormal[2] = -aNormal[2];
+      }
+      
+      // To calculate the primary direction for point set
+      vtkFloatingPointType aVector0[3] = { aCoord[0][0] - aCenter[0],
+                                          aCoord[0][1] - aCenter[1],
+                                          aCoord[0][2] - aCenter[2] };
+      vtkMath::Normalize(aVector0);
+      
+      //cout<<"\t\taCenter = {"<<aCenter[0]<<", "<<aCenter[1]<<", "<<aCenter[2]<<"}";
+      //cout<<"; aVector0 = {"<<aVector0[0]<<", "<<aVector0[1]<<", "<<aVector0[2]<<"}\n";
+      
+      // To calculate the set of points by face those that belong to the plane
+      TFace2PointIds aRemoveFace2PointIds;
       {
-       TUIDS already_in;
-       TUIDS already_in_tmp;
-       int k=0;
-       TPTOIDS::const_iterator new_face2face_iter = new_face2faces.begin();
-       for(;new_face2face_iter!=new_face2faces.end();new_face2face_iter++){
-         if(already_in.find(new_face2face_iter->first) != already_in.end())
-           continue;
-         if(new_face2face_iter->second.size() > 1)
-           continue;
-         
-         TCell &tmp_v2 = output_newid2face_v2[k];
-         tmp_v2.push_back(new_face2face_iter->first);
-         already_in.insert(new_face2face_iter->first);
+       TFace2PointIds::const_iterator anIter = aFace2PointIds.begin();
+       TFace2PointIds::const_iterator anEndIter = aFace2PointIds.end();
+       for(; anIter != anEndIter; anIter++){
+         const TPointIds& anIds = *anIter;
+         TPointIds anIntersection;
+         std::set_intersection(aPointIds.begin(),aPointIds.end(),
+                               anIds.begin(),anIds.end(),
+                               std::inserter(anIntersection,anIntersection.begin()));
          
-         TUIDS::const_iterator new_faces_iter = (new_face2face_iter->second).begin();
-         for(;new_faces_iter!=(new_face2face_iter->second).end();new_faces_iter++){
-           if(already_in.find(*new_faces_iter) != already_in.end()) continue;
-           already_in.insert(*new_faces_iter);
-           
-           already_in_tmp.clear();
-           already_in_tmp.insert(new_face2face_iter->first);
-
-           TUIDS &tmp = output_newid2face[k];
-           GetAllFacesOnOnePlane(new_face2faces,*new_faces_iter,
-                                 already_in_tmp,tmp_v2);
-           
-           for(TUIDS::const_iterator aIter=already_in_tmp.begin();
-               aIter!=already_in_tmp.end();
-               aIter++)
-             {
-               already_in.insert(*aIter);
-               tmp.insert(*aIter);
-             }
+         if(anIntersection == anIds){
+           aRemoveFace2PointIds.insert(anIds);
          }
-         k++;
        }
       }
       
-      if(MYDEBUG) {
-       cout << "++++++++++++++++++++++++++++++++++++++++++++++++++++++++++"<<endl;
-       {
-         TPTOIDS::const_iterator new_face2face_iter = output_newid2face.begin();
-         for(;new_face2face_iter!=output_newid2face.end();new_face2face_iter++){
-           cout << "Group ["<<new_face2face_iter->first<<"] :";
-           TUIDS::const_iterator new_faces_iter = (new_face2face_iter->second).begin();
-           for(;new_faces_iter!=(new_face2face_iter->second).end();new_faces_iter++)
-             cout << " " << *new_faces_iter ;
-           cout << endl;
-         }
-       }
-       cout << "++++++++++++++++++++++++++ +++++++++++++++++++++++++++++++"<<endl;
-       cout << "++++++++++++++++++++++++++ +++++++++++++++++++++++++++++++"<<endl;
-       cout << "+++++++++++++++++++++++ ++ ++ ++++++++++++++++++++++++++++"<<endl;
-       cout << "+++++++++++++++++++++++++   ++++++++++++++++++++++++++++++"<<endl;
-       cout << "++++++++++++++++++++++++++ +++++++++++++++++++++++++++++++"<<endl;
-       {
-         TCellArray::const_iterator new_face2face_iter = output_newid2face_v2.begin();
-         for(;new_face2face_iter!=output_newid2face_v2.end();new_face2face_iter++){
-           cout << "Group ["<<new_face2face_iter->first<<"] :";
-           TCell::const_iterator new_faces_iter = (new_face2face_iter->second).begin();
-           for(;new_faces_iter!=(new_face2face_iter->second).end();new_faces_iter++)
-             cout << " " << *new_faces_iter ;
-           cout << endl;
-         }
+      // To remove from the set of points by face those that belong to the plane
+      {
+       TFace2PointIds::const_iterator anIter = aRemoveFace2PointIds.begin();
+       TFace2PointIds::const_iterator anEndIter = aRemoveFace2PointIds.end();
+       for(; anIter != anEndIter; anIter++){
+         const TPointIds& anIds = *anIter;
+         aFace2PointIds.erase(anIds);
        }
       }
-      TCellArray output_new_face2ids;
-//       {
-//     TPTOIDS::const_iterator new_face2face_iter = output_newid2face.begin();
-//     for(;new_face2face_iter!=output_newid2face.end();new_face2face_iter++){
-         
-//       vtkIdType new_faceId = new_face2face_iter->first;
-//       TUIDS::const_iterator new_faces_iter = (new_face2face_iter->second).begin();
-//       vtkIdType fId0 = *new_faces_iter;
-//       TCellArray::const_iterator pIds0_iter = f2points.find(fId0);
-//       TCell pIds0 = pIds0_iter->second;
-//       TCell &output = output_new_face2ids[new_faceId];
-//       new_faces_iter++;
-//       if(new_face2face_iter->second.size() > 2 ){}
-//       for(;new_faces_iter!=(new_face2face_iter->second).end();new_faces_iter++){
-           
-//         vtkIdType faceId = *new_faces_iter;
-//         // find how much nodes in face (f2points)
-//         TCellArray::const_iterator pIds_iter = f2points.find(faceId);
-//         TCell pIds = pIds_iter->second;
-           
-//         GetSumm(pIds0,pIds,output);
-//         pIds0 = output;
-
-//       } // end new_faces_iter
-         
-//     } // new_face2face_iter
-//       }
       
+      // To sort the planar set of the points accrding to the angle
       {
-       TCellArray::const_iterator new_face2face_iter = output_newid2face_v2.begin();
-       for(;new_face2face_iter!=output_newid2face_v2.end();new_face2face_iter++){
+       typedef std::map<vtkFloatingPointType,vtkIdType> TSortedPointIds;
+       TSortedPointIds aSortedPointIds;
+       
+       TPointIds::const_iterator anIter = aPointIds.begin();
+       TPointIds::const_iterator anEndIter = aPointIds.end();
+       for(; anIter != anEndIter; anIter++){
+         vtkFloatingPointType aPntCoord[3];
+         vtkIdType aPntId = *anIter;
+         aPoints->GetPoint(aPntId,aPntCoord);
+         vtkFloatingPointType aVector[3] = { aPntCoord[0] - aCenter[0],
+                                             aPntCoord[1] - aCenter[1],
+                                             aPntCoord[2] - aCenter[2] };
+         vtkMath::Normalize(aVector);
          
-         vtkIdType new_faceId = new_face2face_iter->first;
-         TCell::const_iterator new_faces_iter = (new_face2face_iter->second).begin();
-         vtkIdType fId0 = *new_faces_iter;
-         TCellArray::const_iterator pIds0_iter = f2points.find(fId0);
-         TCell pIds0 = pIds0_iter->second;
-         TCell &output = output_new_face2ids[new_faceId];
-         new_faces_iter++;
-         if(new_face2face_iter->second.size() == 1 ){
-           TCellArray::const_iterator pIds_iter = f2points.find(fId0);
-           TCell pIds = pIds_iter->second;
-           output = pIds;
-           continue;
+         vtkFloatingPointType aCross[3];
+         vtkMath::Cross(aVector,aVector0,aCross);
+         bool aGreaterThanPi = vtkMath::Dot(aCross,aNormal) < 0;
+         vtkFloatingPointType aCosinus = vtkMath::Dot(aVector,aVector0);
+         if(aCosinus > 1.0)
+           aCosinus = 1.0;
+         if(aCosinus < -1.0)
+           aCosinus = -1.0;
+         static vtkFloatingPointType a2Pi = 2.0 * vtkMath::Pi();
+         vtkFloatingPointType anAngle = acos(aCosinus);
+         //cout<<"\t\t\taPntId = "<<aPntId<<" {"<<aPntCoord[0]<<", "<<aPntCoord[1]<<", "<<aPntCoord[2]<<"}";
+         //cout<<"; aGreaterThanPi = "<<aGreaterThanPi<<"; aCosinus = "<<aCosinus<<"; anAngle = "<<anAngle<<"\n";
+         if(aGreaterThanPi){
+           anAngle = a2Pi - anAngle;
+           //cout<<"\t\t\t\tanAngle = "<<anAngle<<"\n";
          }
-         for(;new_faces_iter!=(new_face2face_iter->second).end();new_faces_iter++){
-           
-           vtkIdType faceId = *new_faces_iter;
-           // find how much nodes in face (f2points)
-           TCellArray::const_iterator pIds_iter = f2points.find(faceId);
-           TCell pIds = pIds_iter->second;
-           
-           GetSumm(pIds0,pIds,output);
-           pIds0 = output;
+         aSortedPointIds[anAngle] = aPntId;
+       }
 
-         } // end new_faces_iter
-         
-       } // new_face2face_iter
+       if(!aSortedPointIds.empty()){
+         int aNumFacePts = aSortedPointIds.size();
+         ::TConnectivities aConnectivities(aNumFacePts);
+         TSortedPointIds::const_iterator anIter = aSortedPointIds.begin();
+         TSortedPointIds::const_iterator anEndIter = aSortedPointIds.end();
+         for(vtkIdType anId = 0; anIter != anEndIter; anIter++, anId++){
+           vtkIdType aPntId = anIter->second;
+           aConnectivities[anId] = GetConnectivity(aPntId);
+         }
+         aPolygons.push_back(::TPolygon(aConnectivities,aCenter,aNormal));
+       }
       }
-      
-      if(MYDEBUG) {
-       cout << "++++++++++++++++++++++++++++++++++++++++++++++++++++++++++"<<endl;
-       cout << "++++++++++++++++++++++++++++++++++++++++++++++++++++++++++"<<endl;
-       cout << "++++++++++++++++++++++++++++++++++++++++++++++++++++++++++"<<endl;
+    }
+  }
+  
+  if(aPolygons.empty())
+    return true;
+
+  // To check, whether the polygons give a convex polyhedron or not
+  if(theIsCheckConvex){
+    int aNbPolygons = aPolygons.size();
+    for (int aPolygonId = 0; aPolygonId < aNbPolygons; aPolygonId++) {
+      ::TPolygon& aPolygon = aPolygons[aPolygonId];
+      vtkFloatingPointType* aNormal = aPolygon.myNormal;
+      vtkFloatingPointType* anOrigin = aPolygon.myOrigin;
+      //cout<<"\taPolygonId = "<<aPolygonId<<"\n";
+      //cout<<"\t\taNormal = {"<<aNormal[0]<<", "<<aNormal[1]<<", "<<aNormal[2]<<"}";
+      //cout<<"; anOrigin = {"<<anOrigin[0]<<", "<<anOrigin[1]<<", "<<anOrigin[2]<<"}\n";
+      for(vtkIdType aPntId = 0; aPntId < aNumPts; aPntId++){
+       vtkFloatingPointType aPntCoord[3];
+       vtkIdType anId = GetPointId(aPntId);
+       aPoints->GetPoint(anId,aPntCoord);
+       vtkFloatingPointType aDist = vtkPlane::Evaluate(aNormal,anOrigin,aPntCoord);
+       //cout<<"\t\taPntId = "<<anId<<" {"<<aPntCoord[0]<<", "<<aPntCoord[1]<<", "<<aPntCoord[2]<<"}; aDist = "<<aDist<<"\n";
+       if(aDist < -aDistEps)
+         return false;
       }
-      outputCellArray = output_new_face2ids;//f2points;
     }
-  } else {
-    // not implemented
   }
+
+
+  // To pass resulting set of the polygons to the output
+  {
+    int aNbPolygons = aPolygons.size();
+    for (int aPolygonId = 0; aPolygonId < aNbPolygons; aPolygonId++) {
+      ::TPolygon& aPolygon = aPolygons[aPolygonId];
+      TConnectivities& aConnectivities = aPolygon.myConnectivities;
+      int aNbPoints = aConnectivities.size();
+      vtkIdType aNewCellId = theOutput->InsertNextCell(VTK_POLYGON,aNbPoints,&aConnectivities[0]);
+      if(theStoreMapping)
+       theVTK2ObjIds.push_back(theCellId);
+      theOutputCD->CopyData(thInputCD,theCellId,aNewCellId);
+    }
+  }
+
+  //cout<<"\tTriangulator - Ok\n";
+  return true;
 }
+
+/*!
+  Constructor
+*/
+VTKViewer_OrderedTriangulator
+::VTKViewer_OrderedTriangulator():
+  myCell(vtkGenericCell::New())
+{}
+
+/*!
+  Destructor
+*/
+VTKViewer_OrderedTriangulator
+::~VTKViewer_OrderedTriangulator()
+{
+  myCell->Delete();
+}
+
+vtkPoints*
+VTKViewer_OrderedTriangulator
+::InitPoints()
+{
+  myInput->GetCell(myCellId,myCell);
+  return myInput->GetPoints();
+}
+
+vtkIdType 
+VTKViewer_OrderedTriangulator
+::GetNbOfPoints()
+{
+  return myCell->GetNumberOfPoints();
+}
+
+vtkIdType 
+VTKViewer_OrderedTriangulator
+::GetPointId(vtkIdType thePointId)
+{
+  return myCell->GetPointId(thePointId);
+}
+
+vtkFloatingPointType 
+VTKViewer_OrderedTriangulator
+::GetCellLength()
+{
+  return sqrt(myCell->GetLength2());
+}
+
+vtkIdType 
+VTKViewer_OrderedTriangulator
+::GetNumFaces()
+{
+  return myCell->GetNumberOfFaces();
+}
+
+vtkCell*
+VTKViewer_OrderedTriangulator
+::GetFace(vtkIdType theFaceId)
+{
+  return myCell->GetFace(theFaceId);
+}
+
+void 
+VTKViewer_OrderedTriangulator
+::GetCellNeighbors(vtkIdType theCellId,
+                  vtkCell* theFace,
+                  vtkIdList* theCellIds)
+{
+  vtkIdList *anIdList = theFace->PointIds;  
+  myInput->GetCellNeighbors(theCellId, anIdList, theCellIds);
+}
+
+vtkIdType 
+VTKViewer_OrderedTriangulator
+::GetConnectivity(vtkIdType thePntId)
+{
+  return thePntId;
+}
+
+/*!
+  Constructor
+*/
+VTKViewer_DelaunayTriangulator
+::VTKViewer_DelaunayTriangulator():
+  myUnstructuredGrid(vtkUnstructuredGrid::New()),
+  myGeometryFilter(vtkGeometryFilter::New()),
+  myDelaunay3D(vtkDelaunay3D::New()),
+  myFaceIds(vtkIdList::New()),
+  myPoints(vtkPoints::New()),
+  myPolyData(NULL),
+  myPointIds(NULL)
+{
+  myDelaunay3D->SetInput(myUnstructuredGrid);
+  myGeometryFilter->SetInput(myDelaunay3D->GetOutput());
+}
+
+
+
+/*!
+  Destructor
+*/
+VTKViewer_DelaunayTriangulator
+::~VTKViewer_DelaunayTriangulator()
+{
+  myUnstructuredGrid->Delete();
+  myGeometryFilter->Delete();
+  myDelaunay3D->Delete();
+  myFaceIds->Delete();
+  myPoints->Delete();
+}
+
+
+vtkPoints* 
+VTKViewer_DelaunayTriangulator
+::InitPoints()
+{
+  myUnstructuredGrid->Initialize();
+  myUnstructuredGrid->Allocate();
+  myUnstructuredGrid->SetPoints(myPoints);
+
+  vtkIdType aNumPts;
+  myInput->GetCellPoints(myCellId,aNumPts,myPointIds); 
+  {
+    vtkFloatingPointType aPntCoord[3];
+    myPoints->SetNumberOfPoints(aNumPts);
+    vtkPoints *anInputPoints = myInput->GetPoints();
+    for (int aPntId = 0; aPntId < aNumPts; aPntId++) {
+      anInputPoints->GetPoint(myPointIds[aPntId],aPntCoord);
+      myPoints->SetPoint(aPntId,aPntCoord);
+    }
+  }
+
+  myGeometryFilter->Update();
+  myPolyData = myGeometryFilter->GetOutput();
+
+  return myPoints;
+}
+
+vtkIdType 
+VTKViewer_DelaunayTriangulator
+::GetNbOfPoints()
+{
+  return myPoints->GetNumberOfPoints();
+}
+
+vtkIdType 
+VTKViewer_DelaunayTriangulator
+::GetPointId(vtkIdType thePointId)
+{
+  return thePointId;
+}
+
+vtkFloatingPointType 
+VTKViewer_DelaunayTriangulator
+::GetCellLength()
+{
+  return myPolyData->GetLength();
+}
+
+vtkIdType 
+VTKViewer_DelaunayTriangulator
+::GetNumFaces()
+{
+  return myPolyData->GetNumberOfCells();
+}
+
+vtkCell*
+VTKViewer_DelaunayTriangulator
+::GetFace(vtkIdType theFaceId)
+{
+  return myPolyData->GetCell(theFaceId);
+}
+
+void 
+VTKViewer_DelaunayTriangulator
+::GetCellNeighbors(vtkIdType theCellId,
+                  vtkCell* theFace,
+                  vtkIdList* theCellIds)
+{
+  myFaceIds->Reset();
+  vtkIdList *anIdList = theFace->PointIds;  
+  myFaceIds->InsertNextId(myPointIds[anIdList->GetId(0)]);
+  myFaceIds->InsertNextId(myPointIds[anIdList->GetId(1)]);
+  myFaceIds->InsertNextId(myPointIds[anIdList->GetId(2)]);
+
+  myInput->GetCellNeighbors(theCellId, myFaceIds, theCellIds);
+}
+
+
+vtkIdType 
+VTKViewer_DelaunayTriangulator
+::GetConnectivity(vtkIdType thePntId)
+{
+  return myPointIds[thePntId];
 }
index ed303af03a6b80d110ea7e545acd8d8380789970..356d5f62396ee0d7046f876dd7a436afe93b16ed 100644 (file)
 #ifndef _VTKViewer_ConvexTool_H
 #define _VTKViewer_ConvexTool_H
 
-#include <vtkUnstructuredGrid.h>
+#include "VTKViewer.h"
+
 #include <vector>
-#include <map>
 
-typedef std::vector<vtkIdType> TCell; // ptsIds
-typedef std::map<vtkIdType,TCell> TCellArray; // CellId, TCell
+#include <vtkSystemIncludes.h>
+
+class vtkUnstructuredGrid;
+class vtkGeometryFilter;
+class vtkGenericCell;
+class vtkDelaunay3D;
+class vtkPolyData;
+class vtkCellData;
+class vtkPoints;
+class vtkIdList;
+class vtkCell;
+
+class VTKVIEWER_EXPORT VTKViewer_Triangulator
+{
+ public:
+  VTKViewer_Triangulator();
+
+  ~VTKViewer_Triangulator();
+
+  bool 
+  Execute(vtkUnstructuredGrid *theInput,
+         vtkCellData* thInputCD,
+         vtkIdType theCellId,
+         int theShowInside,
+         int theAllVisible,
+         const char* theCellsVisibility,
+         vtkPolyData *theOutput,
+         vtkCellData* theOutputCD,
+         int theStoreMapping,
+         std::vector<vtkIdType>& theVTK2ObjIds,
+         bool theIsCheckConvex);
+
+ protected:
+  vtkIdList* myCellIds;
+
+  vtkUnstructuredGrid *myInput;
+  vtkIdType myCellId;
+  int myShowInside;
+  int myAllVisible;
+  const char* myCellsVisibility;
+
+  virtual
+  vtkPoints* 
+  InitPoints() = 0;
+
+  virtual
+  vtkIdType 
+  GetNbOfPoints() = 0;
+
+  virtual
+  vtkIdType 
+  GetPointId(vtkIdType thePointId) = 0;
 
-/*! This package \namespace CONVEX_TOOL used for: 
- *  calculation of VTK_POLYGON cell array from VTK_TRIANGLE (triangulation)
- *  of VTK_CONVEX_POINT_SET cell type.
- */
-namespace CONVEX_TOOL
+  virtual
+  vtkFloatingPointType 
+  GetCellLength() = 0;
+
+  virtual
+  vtkIdType 
+  GetNumFaces() = 0;
+
+  virtual
+  vtkCell* 
+  GetFace(vtkIdType theFaceId) = 0;
+
+  virtual
+  void 
+  GetCellNeighbors(vtkIdType theCellId,
+                  vtkCell* theFace,
+                  vtkIdList* theCellIds) = 0;
+
+  virtual
+  vtkIdType 
+  GetConnectivity(vtkIdType thePntId) = 0;
+};
+
+
+class VTKVIEWER_EXPORT VTKViewer_OrderedTriangulator : public VTKViewer_Triangulator
 {
-  /*! \fn void CONVEX_TOOL::GetPolygonalFaces(vtkUnstructuredGrid* theCell,int cellId,TCellArray &outputCellArray)
-   *  \brief Main function.
-   *  \param theCell - vtkUnstructuredGrid cell pointer
-   *  \param cellId  - id of cell type VTK_CONVEX_POINT_SET
-   *  \retval outputCellArray - output array with new cells types VTK_POLYGON
-   */
-  void
-    WriteToFile(vtkUnstructuredGrid* theDataSet, const std::string& theFileName);
-  void GetPolygonalFaces(vtkUnstructuredGrid* theCell,int cellId,TCellArray &outputCellArray);
-}
+ public:
+
+  VTKViewer_OrderedTriangulator();
+
+  ~VTKViewer_OrderedTriangulator();
+
+ protected:
+  vtkGenericCell *myCell;
+
+  virtual
+  vtkPoints* 
+  InitPoints();
+
+  virtual
+  vtkIdType 
+  GetNbOfPoints();
+
+  vtkIdType 
+  GetPointId(vtkIdType thePointId);
+
+  virtual
+  vtkFloatingPointType 
+  GetCellLength();
+
+  virtual
+  vtkIdType 
+  GetNumFaces();
+
+  virtual
+  vtkCell* 
+  GetFace(vtkIdType theFaceId);
+
+  virtual
+  void 
+  GetCellNeighbors(vtkIdType theCellId,
+                  vtkCell* theFace,
+                  vtkIdList* theCellIds);
+
+  virtual
+  vtkIdType 
+  GetConnectivity(vtkIdType thePntId);
+};
+
+
+class VTKVIEWER_EXPORT VTKViewer_DelaunayTriangulator : public VTKViewer_Triangulator
+{
+ public:
+
+  VTKViewer_DelaunayTriangulator();
+
+  ~VTKViewer_DelaunayTriangulator();
+
+ protected:
+  vtkUnstructuredGrid* myUnstructuredGrid;
+  vtkGeometryFilter* myGeometryFilter;
+  vtkDelaunay3D* myDelaunay3D;
+  vtkPolyData* myPolyData;
+  vtkIdType *myPointIds;
+  vtkIdList* myFaceIds;
+  vtkPoints* myPoints;
+
+  virtual
+  vtkPoints* 
+  InitPoints();
+
+  virtual
+  vtkIdType 
+  GetNbOfPoints();
+
+  vtkIdType 
+  GetPointId(vtkIdType thePointId);
+
+  virtual
+  vtkFloatingPointType 
+  GetCellLength();
+
+  virtual
+  vtkIdType 
+  GetNumFaces();
+
+  virtual
+  vtkCell* 
+  GetFace(vtkIdType theFaceId);
+
+  virtual
+  void 
+  GetCellNeighbors(vtkIdType theCellId,
+                  vtkCell* theFace,
+                  vtkIdList* theCellIds);
+
+  virtual
+  vtkIdType 
+  GetConnectivity(vtkIdType thePntId);
+};
+
 
 #endif // _VTKViewer_ConvexTool_H
index 19672b7821794d8504d9bb707910d089dcd7302e..5dc5a433308e86c26bd3e2db99c27046251904fb 100755 (executable)
 
 
 #include "VTKViewer_ExtractUnstructuredGrid.h"
-//#include "utilities.h"
+#include "VTKViewer_CellLocationsArray.h"
 
 #include <vtkUnsignedCharArray.h>
 #include <vtkUnstructuredGrid.h>
 #include <vtkObjectFactory.h>
 #include <vtkCellArray.h>
-#include <vtkIntArray.h>
 #include <vtkIdList.h>
 #include <vtkCell.h>
 
@@ -234,7 +233,7 @@ void VTKViewer_ExtractUnstructuredGrid::Execute(){
        }
       }
       if((aNbElems = aConnectivity->GetNumberOfCells())){
-       vtkIntArray* aCellLocationsArray = vtkIntArray::New();
+       VTKViewer_CellLocationsArray* aCellLocationsArray = VTKViewer_CellLocationsArray::New();
        aCellLocationsArray->SetNumberOfComponents(1);
        aCellLocationsArray->SetNumberOfTuples(aNbElems);
        aConnectivity->InitTraversal();
@@ -323,7 +322,7 @@ void VTKViewer_ExtractUnstructuredGrid::Execute(){
       }
     }
     if((aNbElems = aConnectivity->GetNumberOfCells())){
-      vtkIntArray* aCellLocationsArray = vtkIntArray::New();
+      VTKViewer_CellLocationsArray* aCellLocationsArray = VTKViewer_CellLocationsArray::New();
       aCellLocationsArray->SetNumberOfComponents(1);
       aCellLocationsArray->SetNumberOfTuples(aNbElems);
       aConnectivity->InitTraversal();
index df096cf7aad3b6dc8110f782c955862ce3dc90a1..5c8cbf1af6d03e2b4470182dd219eb0a60a52869 100755 (executable)
@@ -27,6 +27,7 @@
 //  $Header$
 
 #include "VTKViewer_GeometryFilter.h"
+#include "VTKViewer_ConvexTool.h"
 
 #include <vtkSmartPointer.h>
 #include <vtkCellArray.h>
 #include <vtkVoxel.h>
 #include <vtkWedge.h>
 
-#include <vtkMath.h>
-#include <vtkPlane.h>
-#include <vtkDelaunay3D.h>
-#include <vtkGeometryFilter.h>
-
 #include <algorithm>
 #include <iterator>
 #include <vector>
@@ -62,9 +58,8 @@
   #endif
 #endif
 
-#define USE_ROBUST_TRIANGULATION
+//#define USE_ROBUST_TRIANGULATION
 
-//----------------------------------------------------------------------------
 vtkCxxRevisionMacro(VTKViewer_GeometryFilter, "$Revision$");
 vtkStandardNewMacro(VTKViewer_GeometryFilter);
 
@@ -81,7 +76,6 @@ VTKViewer_GeometryFilter
 {}
 
 
-//----------------------------------------------------------------------------
 void
 VTKViewer_GeometryFilter
 ::Execute()
@@ -102,7 +96,6 @@ VTKViewer_GeometryFilter
 }
 
 
-//----------------------------------------------------------------------------
 void
 VTKViewer_GeometryFilter
 ::UnstructuredGridExecute()
@@ -128,28 +121,19 @@ VTKViewer_GeometryFilter
   vtkPolyData *output = this->GetOutput();
   vtkPointData *outputPD = output->GetPointData();
   
-#ifdef USE_ROBUST_TRIANGULATION
-  vtkUnstructuredGrid* anUnstructuredGrid = vtkUnstructuredGrid::New();
-  vtkPoints* aDelaunayPoints = vtkPoints::New();
-
-  vtkDelaunay3D* aDelaunay3D = vtkDelaunay3D::New();
-  aDelaunay3D->SetInput(anUnstructuredGrid);
-  
-  vtkGeometryFilter* aGeometryFilter = vtkGeometryFilter::New();
-  aGeometryFilter->SetInput(aDelaunay3D->GetOutput());
-#endif
+  VTKViewer_OrderedTriangulator anOrderedTriangulator;
+  VTKViewer_DelaunayTriangulator aDelaunayTriangulator;
 
   vtkCellData *outputCD = output->GetCellData();
   vtkGenericCell *cell = vtkGenericCell::New();
 
-
   vtkIdList *cellIds = vtkIdList::New();
   vtkIdList *faceIds = vtkIdList::New();
 
   char *cellVis;
   vtkIdType newCellId;
   int faceId, *faceVerts, numFacePts;
-  float *x;
+  vtkFloatingPointType *x;
   int PixelConvert[4], aNewPts[VTK_CELL_SIZE];
   // ghost cell stuff
   unsigned char  updateLevel = (unsigned char)(output->GetUpdateGhostLevel());
@@ -306,299 +290,30 @@ VTKViewer_GeometryFilter
           break;
          
        case VTK_CONVEX_POINT_SET: {
-         //cout<<"cellId = "<<cellId<<"\n";
-
-         vtkIdType aNumPts;
-         vtkPoints *aPoints;
-#ifdef USE_ROBUST_TRIANGULATION
-         aPoints = aDelaunayPoints;
-         anUnstructuredGrid->Initialize();
-         anUnstructuredGrid->Allocate();
-         anUnstructuredGrid->SetPoints(aDelaunayPoints);
-
-         vtkIdType *aPts;
-         input->GetCellPoints(cellId,aNumPts,aPts); 
-         {
-           float aPntCoord[3];
-           aDelaunayPoints->SetNumberOfPoints(aNumPts);
-           vtkPoints *anInputPoints = input->GetPoints();
-           for (int aPntId = 0; aPntId < aNumPts; aPntId++) {
-             anInputPoints->GetPoint(aPts[aPntId],aPntCoord);
-             aDelaunayPoints->SetPoint(aPntId,aPntCoord);
-           }
-         }
-#else
-         input->GetCell(cellId,cell);
-         aPoints = input->GetPoints();
-         aNumPts = cell->GetNumberOfPoints();
-#endif
-         // To calculate the bary center of the cell
-         float aCellCenter[3] = {0.0, 0.0, 0.0};
-         {
-           float aPntCoord[3];
-           for (int aPntId = 0; aPntId < aNumPts; aPntId++) {
-#ifdef USE_ROBUST_TRIANGULATION
-             aPoints->GetPoint(aPntId,aPntCoord);
-#else
-             aPoints->GetPoint(cell->GetPointId(aPntId),aPntCoord);
-#endif
-             //cout<<"\t\taPntId = "<<aPntId<<" {"<<aPntCoord[0]<<", "<<aPntCoord[1]<<", "<<aPntCoord[2]<<"}\n";
-             aCellCenter[0] += aPntCoord[0];
-             aCellCenter[1] += aPntCoord[1];
-             aCellCenter[2] += aPntCoord[2];
-           }
-           aCellCenter[0] /= aNumPts;
-           aCellCenter[1] /= aNumPts;
-           aCellCenter[2] /= aNumPts;
-         }
-
-#ifdef USE_ROBUST_TRIANGULATION
-         aGeometryFilter->Update();
-         vtkPolyData* aPolyData = aGeometryFilter->GetOutput();
-
-         float aCellLength = aPolyData->GetLength();
-          int aNumFaces = aPolyData->GetNumberOfCells();
-#else
-         float aCellLength = sqrt(cell->GetLength2());
-          int aNumFaces = cell->GetNumberOfFaces();
-#endif
-         
-         static float EPS = 1.0E-5;
-         float aDistEps = aCellLength * EPS;
-
-         // To initialize set of points that belong to the cell
-         typedef std::set<vtkIdType> TPointIds;
-         TPointIds anInitialPointIds;
-         for(vtkIdType aPntId = 0; aPntId < aNumPts; aPntId++){
-#ifdef USE_ROBUST_TRIANGULATION
-           anInitialPointIds.insert(aPntId);
-#else
-           anInitialPointIds.insert(cell->GetPointId(aPntId));
-#endif
-         }
-
-         // To initialize set of points by face that belong to the cell and backward
-         typedef std::set<vtkIdType> TFace2Visibility;
-         TFace2Visibility aFace2Visibility;
-
-         typedef std::set<TPointIds> TFace2PointIds;
-         TFace2PointIds aFace2PointIds;
-
-          for (int aFaceId = 0; aFaceId < aNumFaces; aFaceId++) {
-#ifdef USE_ROBUST_TRIANGULATION
-            vtkCell* aFace = aPolyData->GetCell(aFaceId);
-#else
-            vtkCell* aFace = cell->GetFace(aFaceId);
-#endif
-           vtkIdList *anIdList = aFace->PointIds;  
-           aNewPts[0] = anIdList->GetId(0);
-           aNewPts[1] = anIdList->GetId(1);
-           aNewPts[2] = anIdList->GetId(2);
-
-#ifdef USE_ROBUST_TRIANGULATION
-            faceIds->Reset();
-            faceIds->InsertNextId(aPts[aNewPts[0]]);
-            faceIds->InsertNextId(aPts[aNewPts[1]]);
-            faceIds->InsertNextId(aPts[aNewPts[2]]);
-            input->GetCellNeighbors(cellId, faceIds, cellIds);
-#else
-            input->GetCellNeighbors(cellId, anIdList, cellIds);
-#endif
-           if((!allVisible && !cellVis[cellIds->GetId(0)]) || 
-              cellIds->GetNumberOfIds() <= 0 ||
-              myShowInside)
-           {
-             TPointIds aPointIds;
-             aPointIds.insert(aNewPts[0]);
-             aPointIds.insert(aNewPts[1]);
-             aPointIds.insert(aNewPts[2]);
-
-             aFace2PointIds.insert(aPointIds);
-             aFace2Visibility.insert(aFaceId);
-           }
-         }
-
-          for (int aFaceId = 0; aFaceId < aNumFaces; aFaceId++) {
-            if(aFace2Visibility.find(aFaceId) == aFace2Visibility.end())
-             continue;
-
-#ifdef USE_ROBUST_TRIANGULATION
-            vtkCell* aFace = aPolyData->GetCell(aFaceId);
-#else
-            vtkCell* aFace = cell->GetFace(aFaceId);
-#endif
-           vtkIdList *anIdList = aFace->PointIds;
-           aNewPts[0] = anIdList->GetId(0);
-           aNewPts[1] = anIdList->GetId(1);
-           aNewPts[2] = anIdList->GetId(2);
-           
-           // To initialize set of points for the plane where the trinangle face belong to
-           TPointIds aPointIds;
-           aPointIds.insert(aNewPts[0]);
-           aPointIds.insert(aNewPts[1]);
-           aPointIds.insert(aNewPts[2]);
-
-           // To get know, if the points of the trinagle were already observed
-           bool anIsObserved = aFace2PointIds.find(aPointIds) == aFace2PointIds.end();
-           //cout<<"\taFaceId = "<<aFaceId<<"; anIsObserved = "<<anIsObserved;
-           //cout<<"; aNewPts = {"<<aNewPts[0]<<", "<<aNewPts[1]<<", "<<aNewPts[2]<<"}\n";
-             
-           if(!anIsObserved){
-             // To get coordinates of the points of the traingle face
-             float aCoord[3][3];
-             aPoints->GetPoint(aNewPts[0],aCoord[0]);
-             aPoints->GetPoint(aNewPts[1],aCoord[1]);
-             aPoints->GetPoint(aNewPts[2],aCoord[2]);
-             
-             // To calculate plane normal
-             float aVector01[3] = { aCoord[1][0] - aCoord[0][0],
-                                    aCoord[1][1] - aCoord[0][1],
-                                    aCoord[1][2] - aCoord[0][2] };
-             
-             float aVector02[3] = { aCoord[2][0] - aCoord[0][0],
-                                    aCoord[2][1] - aCoord[0][1],
-                                    aCoord[2][2] - aCoord[0][2] };
+         bool anIsOk = anOrderedTriangulator.Execute(input,
+                                                     cd,
+                                                     cellId,
+                                                     myShowInside,
+                                                     allVisible,
+                                                     cellVis,
+                                                     output,
+                                                     outputCD,
+                                                     myStoreMapping,
+                                                     myVTK2ObjIds,
+                                                     true);
+         if(!anIsOk)
+           aDelaunayTriangulator.Execute(input,
+                                         cd,
+                                         cellId,
+                                         myShowInside,
+                                         allVisible,
+                                         cellVis,
+                                         output,
+                                         outputCD,
+                                         myStoreMapping,
+                                         myVTK2ObjIds,
+                                         false);
              
-             float aCross21[3];
-             vtkMath::Cross(aVector02,aVector01,aCross21);
-             
-             vtkMath::Normalize(aCross21);
-             
-             // To calculate what points belong to the plane
-             // To calculate bounds of the point set
-             float aCenter[3] = {0.0, 0.0, 0.0};
-             {
-               TPointIds::const_iterator anIter = anInitialPointIds.begin();
-               TPointIds::const_iterator anEndIter = anInitialPointIds.end();
-               for(; anIter != anEndIter; anIter++){
-                 float aPntCoord[3];
-                 vtkIdType aPntId = *anIter;
-                 aPoints->GetPoint(aPntId,aPntCoord);
-                 float aDist = vtkPlane::DistanceToPlane(aPntCoord,aCross21,aCoord[0]);
-                 //cout<<"\t\taPntId = "<<aPntId<<" {"<<aPntCoord[0]<<", "<<aPntCoord[1]<<", "<<aPntCoord[2]<<"}; aDist = "<<aDist<<"\n";
-                 if(fabs(aDist) < aDistEps){
-                   aPointIds.insert(aPntId);
-                   aCenter[0] += aPntCoord[0];
-                   aCenter[1] += aPntCoord[1];
-                   aCenter[2] += aPntCoord[2];
-                 }
-               }
-               int aNbPoints = aPointIds.size();
-               aCenter[0] /= aNbPoints;
-               aCenter[1] /= aNbPoints;
-               aCenter[2] /= aNbPoints;
-             }
-             
-             // To calculate the primary direction for point set
-             float aVector0[3] = { aCoord[0][0] - aCenter[0],
-                                   aCoord[0][1] - aCenter[1],
-                                   aCoord[0][2] - aCenter[2] };
-
-             //To sinchronize orientation of the cell and its face
-             float aVectorC[3] = { aCenter[0] - aCellCenter[0],
-                                   aCenter[1] - aCellCenter[1],
-                                   aCenter[2] - aCellCenter[2] };
-             vtkMath::Normalize(aVectorC);
-
-             float aDot = vtkMath::Dot(aCross21,aVectorC);
-             //cout<<"\t\taCross21 = {"<<aCross21[0]<<", "<<aCross21[1]<<", "<<aCross21[2]<<"}";
-             //cout<<"; aVectorC = {"<<aVectorC[0]<<", "<<aVectorC[1]<<", "<<aVectorC[2]<<"}\n";
-             //cout<<"\t\taDot = "<<aDot<<"\n";
-             if(aDot > 0){
-               aCross21[0] = -aCross21[0];
-               aCross21[1] = -aCross21[1];
-               aCross21[2] = -aCross21[2];
-             }
-               
-             vtkMath::Normalize(aVector0);
-             
-             //cout<<"\t\taCenter = {"<<aCenter[0]<<", "<<aCenter[1]<<", "<<aCenter[2]<<"}";
-             //cout<<"; aVector0 = {"<<aVector0[0]<<", "<<aVector0[1]<<", "<<aVector0[2]<<"}\n";
-
-             // To calculate the set of points by face those that belong to the plane
-             TFace2PointIds aRemoveFace2PointIds;
-             {
-               TFace2PointIds::const_iterator anIter = aFace2PointIds.begin();
-               TFace2PointIds::const_iterator anEndIter = aFace2PointIds.end();
-               for(; anIter != anEndIter; anIter++){
-                 const TPointIds& anIds = *anIter;
-                 TPointIds anIntersection;
-                 std::set_intersection(aPointIds.begin(),aPointIds.end(),
-                                       anIds.begin(),anIds.end(),
-                                       std::inserter(anIntersection,anIntersection.begin()));
-
-                 if(anIntersection == anIds){
-                   aRemoveFace2PointIds.insert(anIds);
-                 }
-               }
-             }
-
-             // To remove from the set of points by face those that belong to the plane
-             {
-               TFace2PointIds::const_iterator anIter = aRemoveFace2PointIds.begin();
-               TFace2PointIds::const_iterator anEndIter = aRemoveFace2PointIds.end();
-               for(; anIter != anEndIter; anIter++){
-                 const TPointIds& anIds = *anIter;
-                 aFace2PointIds.erase(anIds);
-               }
-             }
-
-             // To sort the planar set of the points accrding to the angle
-             {
-               typedef std::map<float,vtkIdType> TSortedPointIds;
-               TSortedPointIds aSortedPointIds;
-
-               TPointIds::const_iterator anIter = aPointIds.begin();
-               TPointIds::const_iterator anEndIter = aPointIds.end();
-               for(; anIter != anEndIter; anIter++){
-                 float aPntCoord[3];
-                 vtkIdType aPntId = *anIter;
-                 aPoints->GetPoint(aPntId,aPntCoord);
-                 float aVector[3] = { aPntCoord[0] - aCenter[0],
-                                      aPntCoord[1] - aCenter[1],
-                                      aPntCoord[2] - aCenter[2] };
-                 vtkMath::Normalize(aVector);
-
-                 float aCross[3];
-                 vtkMath::Cross(aVector,aVector0,aCross);
-                 bool aGreaterThanPi = vtkMath::Dot(aCross,aCross21) < 0;
-                 float aCosinus = vtkMath::Dot(aVector,aVector0);
-                 if(aCosinus > 1.0)
-                   aCosinus = 1.0;
-                 if(aCosinus < -1.0)
-                   aCosinus = -1.0;
-                 static float a2Pi = 2.0 * vtkMath::Pi();
-                 float anAngle = acos(aCosinus);
-                 //cout<<"\t\taPntId = "<<aPntId<<" {"<<aPntCoord[0]<<", "<<aPntCoord[1]<<", "<<aPntCoord[2]<<"}";
-                 //cout<<"; aGreaterThanPi = "<<aGreaterThanPi<<"; aCosinus = "<<aCosinus<<"; anAngle = "<<anAngle<<"\n";
-                 if(aGreaterThanPi)
-                   anAngle = a2Pi - anAngle;
-                 aSortedPointIds[anAngle] = aPntId;
-                 //cout<<"\t\t\tanAngle = "<<anAngle<<"\n";
-               }
-               if(!aSortedPointIds.empty()){
-                 aCellType = VTK_POLYGON;
-                 int numFacePts = aSortedPointIds.size();
-                 std::vector<vtkIdType> aConnectivities(numFacePts);
-                 TSortedPointIds::const_iterator anIter = aSortedPointIds.begin();
-                 TSortedPointIds::const_iterator anEndIter = aSortedPointIds.end();
-                 for(vtkIdType anId = 0; anIter != anEndIter; anIter++, anId++){
-                   vtkIdType aPntId = anIter->second;
-#ifdef USE_ROBUST_TRIANGULATION
-                   aConnectivities[anId] = aPts[aPntId];
-#else
-                   aConnectivities[anId] = aPntId;
-#endif
-                 }
-                 newCellId = output->InsertNextCell(aCellType,numFacePts,&aConnectivities[0]);
-                 if(myStoreMapping)
-                   myVTK2ObjIds.push_back(cellId);
-                 outputCD->CopyData(cd,cellId,newCellId);
-               }
-             }
-           }
-         }
-
          break;
        }
         case VTK_TETRA: {
@@ -1029,14 +744,6 @@ VTKViewer_GeometryFilter
   vtkDebugMacro(<<"Extracted " << input->GetNumberOfPoints() << " points,"
   << output->GetNumberOfCells() << " cells.");
 
-#ifdef USE_ROBUST_TRIANGULATION
-  anUnstructuredGrid->Delete();
-  aDelaunayPoints->Delete();
-
-  aDelaunay3D->Delete();
-  aGeometryFilter->Delete();
-#endif
-
   cell->Delete();
 
   cellIds->Delete();
@@ -1049,7 +756,6 @@ VTKViewer_GeometryFilter
 }
 
 
-//----------------------------------------------------------------------------
 void
 VTKViewer_GeometryFilter
 ::SetInside(int theShowInside)
@@ -1069,7 +775,6 @@ VTKViewer_GeometryFilter
 }
 
 
-//----------------------------------------------------------------------------
 void 
 VTKViewer_GeometryFilter
 ::SetWireframeMode(int theIsWireframeMode)
@@ -1089,7 +794,6 @@ VTKViewer_GeometryFilter
 }
 
 
-//----------------------------------------------------------------------------
 void
 VTKViewer_GeometryFilter
 ::SetStoreMapping(int theStoreMapping)
@@ -1109,7 +813,6 @@ VTKViewer_GeometryFilter
 }
 
 
-//----------------------------------------------------------------------------
 vtkIdType VTKViewer_GeometryFilter::GetElemObjId(int theVtkID){
   if(myVTK2ObjIds.empty() || theVtkID > myVTK2ObjIds.size()) return -1;
 #if defined __GNUC_2__
index 1f69e6085d76aa66a8681c7474371e4dfb807a97..c40cf8d900c0da31e3cea8d81a0987e9c29244a7 100644 (file)
 #include "VTKViewer_Actor.h"
 #include "VTKViewer_Utilities.h"
 #include "VTKViewer_Trihedron.h"
-#include "VTKViewer_RectPicker.h"
 #include "VTKViewer_ViewWindow.h"
 #include "VTKViewer_RenderWindow.h"
-#include "VTKViewer_CellRectPicker.h"
 #include "VTKViewer_RenderWindowInteractor.h"
 
 //#include "SALOME_Actor.h"
@@ -86,10 +84,10 @@ static int GetEdgeId(vtkPicker *thePicker, SALOME_Actor *theActor, int theObjId)
   return anEdgeId;
 }
 */
-//----------------------------------------------------------------------------
+
 vtkStandardNewMacro(VTKViewer_InteractorStyle);
 
-//----------------------------------------------------------------------------
+
 /*!Constructor.*/
 VTKViewer_InteractorStyle::VTKViewer_InteractorStyle()
 {
@@ -108,14 +106,14 @@ VTKViewer_InteractorStyle::VTKViewer_InteractorStyle()
   OnSelectionModeChanged();
 }
 
-//----------------------------------------------------------------------------
+
 /*!Destructor.*/
 VTKViewer_InteractorStyle::~VTKViewer_InteractorStyle() 
 {
   m_ViewWnd->RemoveActor(myPreSelectionActor);
 }
 
-//----------------------------------------------------------------------------
+
 /*!Set preselection properties.
  *\param theRed   - red color.
  *\param theGreen - green color.
@@ -132,7 +130,7 @@ void VTKViewer_InteractorStyle::setPreselectionProp(const double& theRed, const
   myPreSelectionActor->GetProperty()->SetPointSize(theWidth);
 }
 
-//----------------------------------------------------------------------------
+
 /*!Set render window interactor
  *\param theInteractor - interactor.
  */
@@ -141,7 +139,7 @@ void VTKViewer_InteractorStyle::SetInteractor(vtkRenderWindowInteractor *theInte
   Superclass::SetInteractor(theInteractor);
 }
 
-//----------------------------------------------------------------------------
+
 /*!Set view window.
  *\param theViewWnd - SALOME VTKViewer_ViewWindow
  */
@@ -151,7 +149,7 @@ void VTKViewer_InteractorStyle::setViewWnd(VTKViewer_ViewWindow* theViewWnd ){
   myPreSelectionActor->Delete();
 }
 
-//----------------------------------------------------------------------------
+
 /*!Set GUI window.
  *\param theWindow - QWidget window.
  */
@@ -159,15 +157,14 @@ void VTKViewer_InteractorStyle::setGUIWindow(QWidget* theWindow){
   myGUIWindow = theWindow;
 }
 
-//----------------------------------------------------------------------------
-/*!Set triedron.
+
+/*!Set trihedron.
  *\param theTrihedron - SALOME VTKViewer_Trihedron
  */
 void VTKViewer_InteractorStyle::setTriedron(VTKViewer_Trihedron* theTrihedron){
   m_Trihedron = theTrihedron;
 }
 
-//----------------------------------------------------------------------------
 /*!Rotate camera.
  *\param dx - 
  *\param dy - 
@@ -199,7 +196,6 @@ void VTKViewer_InteractorStyle::RotateXY(int dx, int dy)
   myGUIWindow->update();
 }
 
-//----------------------------------------------------------------------------
 void VTKViewer_InteractorStyle::PanXY(int x, int y, int oldX, int oldY)
 {
   TranslateView(x, y, oldX, oldY);   
@@ -208,7 +204,6 @@ void VTKViewer_InteractorStyle::PanXY(int x, int y, int oldX, int oldY)
 }
 
 
-//----------------------------------------------------------------------------
 /*! Move the position of the camera along the direction of projection. (dx,dy)*/
 void VTKViewer_InteractorStyle::DollyXY(int dx, int dy)
 {
@@ -231,8 +226,6 @@ void VTKViewer_InteractorStyle::DollyXY(int dx, int dy)
   myGUIWindow->update();
 }
 
-//----------------------------------------------------------------------------
-/*!*/
 void VTKViewer_InteractorStyle::SpinXY(int x, int y, int oldX, int oldY)
 {
   vtkCamera *cam;
@@ -259,7 +252,6 @@ void VTKViewer_InteractorStyle::SpinXY(int x, int y, int oldX, int oldY)
 }
 
 
-//----------------------------------------------------------------------------
 /*!On mouse move event.
  *\param ctrl  - CTRL (not used)
  *\param shift - SHIFT (on/off - integer 0/1)
@@ -278,7 +270,6 @@ void VTKViewer_InteractorStyle::OnMouseMove(int vtkNotUsed(ctrl),
 }
 
 
-//----------------------------------------------------------------------------
 /*!On Left button down event.
  *\param ctrl  - CTRL  (on/off - integer 0/1)
  *\param shift - SHIFT (on/off - integer 0/1)
@@ -315,7 +306,6 @@ void VTKViewer_InteractorStyle::OnLeftButtonDown(int ctrl, int shift,
 }
 
 
-//----------------------------------------------------------------------------
 /*!On left button up event.
  *\param ctrl  - CTRL  (not used)
  *\param shift - SHIFT (on/off - integer 0/1)
@@ -336,7 +326,6 @@ void VTKViewer_InteractorStyle::OnLeftButtonUp(int vtkNotUsed(ctrl),
 }
 
 
-//----------------------------------------------------------------------------
 /*!On left button up event.
  *\param ctrl  - CTRL  (on/off - integer 0/1)
  *\param shift - SHIFT (on/off - integer 0/1)
@@ -374,7 +363,6 @@ void VTKViewer_InteractorStyle::OnMiddleButtonDown(int ctrl,
 }
 
 
-//----------------------------------------------------------------------------
 /*!On middle button up event.
  *\param ctrl  - CTRL  (not used)
  *\param shift - SHIFT (on/off - integer 0/1)
@@ -395,7 +383,6 @@ void VTKViewer_InteractorStyle::OnMiddleButtonUp(int vtkNotUsed(ctrl),
 }
 
 
-//----------------------------------------------------------------------------
 /*!On right button down event.
  *\param ctrl  - CTRL  (on/off - integer 0/1)
  *\param shift - SHIFT (on/off - integer 0/1)
@@ -432,7 +419,6 @@ void VTKViewer_InteractorStyle::OnRightButtonDown(int ctrl,
   }
 }
 
-//----------------------------------------------------------------------------
 /*!On right button up event.
  *\param ctrl  - CTRL  (not used)
  *\param shift - SHIFT (on/off - integer 0/1)
@@ -452,8 +438,7 @@ void VTKViewer_InteractorStyle::OnRightButtonUp(int vtkNotUsed(ctrl),
   }
 }
 
-//----------------------------------------------------------------------------
-/** @name XPM - x pixmaps. */
+/*! @name XPM - x pixmaps. */
 //@{
 /*!Image Zoom cursor*/
 const char* imageZoomCursor[] = { 
@@ -534,7 +519,6 @@ const char* imageRotateCursor[] = {
 "................................"};
 //@}
 
-//----------------------------------------------------------------------------
 /*! Loads cursors for viewer operations - zoom, pan, etc...*/
 void VTKViewer_InteractorStyle::loadCursors()
 {
@@ -549,7 +533,6 @@ void VTKViewer_InteractorStyle::loadCursors()
 }
 
 
-//----------------------------------------------------------------------------
 /*! event filter - controls mouse and keyboard events during viewer operations*/
 bool VTKViewer_InteractorStyle::eventFilter(QObject* object, QEvent* event)
 {
@@ -563,7 +546,6 @@ bool VTKViewer_InteractorStyle::eventFilter(QObject* object, QEvent* event)
 }
 
 
-//----------------------------------------------------------------------------
 /*! starts Zoom operation (e.g. through menu command)*/
 void VTKViewer_InteractorStyle::startZoom()
 {
@@ -578,7 +560,6 @@ void VTKViewer_InteractorStyle::startZoom()
 }
 
 
-//----------------------------------------------------------------------------
 /*! starts Pan operation (e.g. through menu command)*/
 void VTKViewer_InteractorStyle::startPan()
 {
@@ -592,7 +573,6 @@ void VTKViewer_InteractorStyle::startPan()
   qApp->installEventFilter(this);
 }
 
-//----------------------------------------------------------------------------
 /*! starts Rotate operation (e.g. through menu command)*/
 void VTKViewer_InteractorStyle::startRotate()
 {
@@ -607,7 +587,6 @@ void VTKViewer_InteractorStyle::startRotate()
 }
 
 
-//----------------------------------------------------------------------------
 /*! starts Spin operation (e.g. through menu command)*/
 void VTKViewer_InteractorStyle::startSpin()
 {
@@ -623,7 +602,6 @@ void VTKViewer_InteractorStyle::startSpin()
 
 
 
-//----------------------------------------------------------------------------
 /*! starts Fit Area operation (e.g. through menu command)*/
 void VTKViewer_InteractorStyle::startFitArea()
 {
@@ -638,7 +616,6 @@ void VTKViewer_InteractorStyle::startFitArea()
 }
 
 
-//----------------------------------------------------------------------------
 /*!View fit all.*/
 void  VTKViewer_InteractorStyle::ViewFitAll() {
   int aTriedronWasVisible = false;
@@ -660,7 +637,6 @@ void  VTKViewer_InteractorStyle::ViewFitAll() {
 }
 
 
-//----------------------------------------------------------------------------
 /*! starts Global Panning operation (e.g. through menu command)*/
 void VTKViewer_InteractorStyle::startGlobalPan()
 {
@@ -684,7 +660,6 @@ void VTKViewer_InteractorStyle::startGlobalPan()
 }
 
 
-//----------------------------------------------------------------------------
 /*!\retval TRUE if needs redrawing*/
 bool VTKViewer_InteractorStyle::needsRedrawing()
 {
@@ -696,7 +671,6 @@ bool VTKViewer_InteractorStyle::needsRedrawing()
 }
 
 
-//----------------------------------------------------------------------------
 /*! fits viewer contents to rectangle
  *\param left - left side
  *\param top  - top side
@@ -735,7 +709,6 @@ void VTKViewer_InteractorStyle::fitRect(const int left,
 }
 
 
-//----------------------------------------------------------------------------
 /*! starts viewer operation (!internal usage!)*/
 void VTKViewer_InteractorStyle::startOperation(int operation)
 {
@@ -764,7 +737,6 @@ void VTKViewer_InteractorStyle::startOperation(int operation)
 }
 
 
-//----------------------------------------------------------------------------
 /*! sets proper cursor for window when viewer operation is activated*/
 void VTKViewer_InteractorStyle::setCursor(const int operation)
 {
@@ -805,7 +777,6 @@ void VTKViewer_InteractorStyle::setCursor(const int operation)
 }
 
 
-//----------------------------------------------------------------------------
 /*! called when viewer operation started (!put necessary initialization here!)*/
 void VTKViewer_InteractorStyle::onStartOperation()
 {
@@ -832,7 +803,6 @@ void VTKViewer_InteractorStyle::onStartOperation()
 }
 
 
-//----------------------------------------------------------------------------
 /*! called when viewer operation finished (!put necessary post-processing here!)*/
 void VTKViewer_InteractorStyle::onFinishOperation() 
 {
@@ -1366,17 +1336,17 @@ void VTKViewer_InteractorStyle::Place(const int theX, const int theY)
 void VTKViewer_InteractorStyle::TranslateView(int toX, int toY, int fromX, int fromY)
 {
   vtkCamera *cam = this->CurrentRenderer->GetActiveCamera();
-  double viewFocus[4], focalDepth, viewPoint[3];
-  float newPickPoint[4], oldPickPoint[4], motionVector[3];
+  vtkFloatingPointType viewFocus[4], focalDepth, viewPoint[3];
+  vtkFloatingPointType newPickPoint[4], oldPickPoint[4], motionVector[3];
   cam->GetFocalPoint(viewFocus);
 
   this->ComputeWorldToDisplay(viewFocus[0], viewFocus[1],
                              viewFocus[2], viewFocus);
   focalDepth = viewFocus[2];
 
-  this->ComputeDisplayToWorld(double(toX), double(toY),
+  this->ComputeDisplayToWorld(vtkFloatingPointType(toX), vtkFloatingPointType(toY),
                              focalDepth, newPickPoint);
-  this->ComputeDisplayToWorld(double(fromX),double(fromY),
+  this->ComputeDisplayToWorld(vtkFloatingPointType(fromX),vtkFloatingPointType(fromY),
                              focalDepth, oldPickPoint);
   
   // camera motion is reversed
@@ -1400,17 +1370,17 @@ bool VTKViewer_InteractorStyle::IsInRect(vtkActor* theActor,
                                               const int left, const int top, 
                                               const int right, const int bottom)
 {
-  float* aBounds = theActor->GetBounds();
-  float aMin[3], aMax[3];
+  vtkFloatingPointType* aBounds = theActor->GetBounds();
+  vtkFloatingPointType aMin[3], aMax[3];
   ComputeWorldToDisplay(aBounds[0], aBounds[2], aBounds[4], aMin);
   ComputeWorldToDisplay(aBounds[1], aBounds[3], aBounds[5], aMax);
   if (aMin[0] > aMax[0]) {
-    float aBuf = aMin[0];
+    vtkFloatingPointType aBuf = aMin[0];
     aMin[0] = aMax[0];
     aMax[0] = aBuf;
   }
   if (aMin[1] > aMax[1]) {
-    float aBuf = aMin[1];
+    vtkFloatingPointType aBuf = aMin[1];
     aMin[1] = aMax[1];
     aMax[1] = aBuf;    
   }
@@ -1424,17 +1394,17 @@ bool VTKViewer_InteractorStyle::IsInRect(vtkCell* theCell,
                                               const int left, const int top, 
                                               const int right, const int bottom)
 {
-  float* aBounds = theCell->GetBounds();
-  float aMin[3], aMax[3];
+  vtkFloatingPointType* aBounds = theCell->GetBounds();
+  vtkFloatingPointType aMin[3], aMax[3];
   ComputeWorldToDisplay(aBounds[0], aBounds[2], aBounds[4], aMin);
   ComputeWorldToDisplay(aBounds[1], aBounds[3], aBounds[5], aMax);
   if (aMin[0] > aMax[0]) {
-    float aBuf = aMin[0];
+    vtkFloatingPointType aBuf = aMin[0];
     aMin[0] = aMax[0];
     aMax[0] = aBuf;
   }
   if (aMin[1] > aMax[1]) {
-    float aBuf = aMin[1];
+    vtkFloatingPointType aBuf = aMin[1];
     aMin[1] = aMax[1];
     aMax[1] = aBuf;    
   }
@@ -1443,11 +1413,11 @@ bool VTKViewer_InteractorStyle::IsInRect(vtkCell* theCell,
 }
 
 /*!Checks: is given point \a thePoint in rectangle*/
-bool VTKViewer_InteractorStyle::IsInRect(float* thePoint, 
-                                              const int left, const int top, 
-                                              const int right, const int bottom)
+bool VTKViewer_InteractorStyle::IsInRect(vtkFloatingPointType* thePoint, 
+                                        const int left, const int top, 
+                                        const int right, const int bottom)
 {
-  float aPnt[3];
+  vtkFloatingPointType aPnt[3];
   ComputeWorldToDisplay(thePoint[0], thePoint[1], thePoint[2], aPnt);
 
   return ((aPnt[0]>left) && (aPnt[0]<right) && (aPnt[1]>bottom) && (aPnt[1]<top));
index ed3f08d99fd1ec5bcd8d30b5c0de6b3996f6ece2..65aecade467a942a2f160da9f84041c5eae0b2fb 100644 (file)
@@ -121,13 +121,13 @@ class VTKVIEWER_EXPORT VTKViewer_InteractorStyle : public QObject, public vtkInt
   bool IsInRect(vtkCell* theCell, 
                const int left, const int top, 
                const int right, const int bottom);
-  bool IsInRect(float* thePoint, 
+  bool IsInRect(vtkFloatingPointType* thePoint, 
                const int left, const int top, 
                const int right, const int bottom);
 
   int State;
-  float MotionFactor;
-  float RadianToDegree;                 // constant: for conv from deg to rad
+  vtkFloatingPointType MotionFactor;
+  vtkFloatingPointType RadianToDegree;                 // constant: for conv from deg to rad
   double myScale;
 
   VTKViewer_Actor *myPreViewActor, *myPreSelectionActor, *mySelectedActor;
index 698a54b3ea5bfcbb735605f774d5ca14e40893d1..ed9c9d8d8dee2cdefa9b7ffc9de77583888d9fcf 100755 (executable)
 
 using namespace std;
 
-//----------------------------------------------------------------------------
+
 vtkStandardNewMacro(VTKViewer_RectPicker);
 
-//----------------------------------------------------------------------------
+
 /*!Constructor. Do nothing*/
 VTKViewer_RectPicker::VTKViewer_RectPicker()
 {
 }
 
-//----------------------------------------------------------------------------
+
 /*!Perform pick operation with selection rectangle provided. Normally the 
  * first two values for the selection top-left and right-bottom points are 
  * x-y pixel coordinate, and the third value is =0. 
@@ -428,7 +428,7 @@ char GetIntersectionPoint(const float start[3], const float end[3],
   return result;
 }
 
-//----------------------------------------------------------------------------
+
 /*! Bounding box intersection with hexahedron. Origin[4][4] starts the ray from corner points, 
  * dir[4][3] is the vector components of the ray in the x-y-z directions. 
  * (Notes: the intersection ray dir[4][3] is NOT normalized.)
@@ -725,7 +725,6 @@ char VTKViewer_RectPicker::HitBBox (float bounds[6], float origin[4][4], float d
   return inside;
 }
 
-//----------------------------------------------------------------------------
 /*! Position of point relative to hexahedron. p1[4][4] is the corner points of top face, 
  * p2[4][4] is the corner points of bottom face. 
  * \retval The method returns a non-zero value, if the point is inside.
@@ -851,7 +850,6 @@ char VTKViewer_RectPicker::PointInside (float p[3], float p1[4][4], float p2[4][
   return inside;
 }
 
-//----------------------------------------------------------------------------
 float VTKViewer_RectPicker::IntersectWithHex(float p1[4][4], float p2[4][4], float tol, 
                                             vtkAssemblyPath *path, vtkProp3D *prop3D, 
                                             vtkAbstractMapper3D *mapper)
index a6ccdfd6aefa3aead1baff25a7519249b2bcc9c5..d8e7735ffcfe179a5e1b4145d234128165551cfe 100755 (executable)
@@ -136,7 +136,7 @@ void VTKViewer_RenderWindow::wheelEvent(QWheelEvent* event)
 void VTKViewer_RenderWindow::onChangeBackgroundColor()
 {
   //float red, green, blue;
-  float backint[3];
+  vtkFloatingPointType backint[3];
 
   vtkRendererCollection * theRenderers = myRW->GetRenderers();
   theRenderers->InitTraversal();
index daf93e15cb6c35a3af2ed82fcc1730827aab5d9e..2c15afb72cc866e92ba84682ec3f8b643997da02 100755 (executable)
@@ -118,6 +118,11 @@ VTKViewer_RenderWindowInteractor::~VTKViewer_RenderWindowInteractor()
   myPointPicker->Delete();
 }
 
+/*!
+  Print interactor to stream
+  \param os - stream
+  \param indent
+*/
 void VTKViewer_RenderWindowInteractor::PrintSelf(ostream& os, vtkIndent indent) 
 {
   vtkRenderWindowInteractor::PrintSelf(os, indent) ;
@@ -214,34 +219,6 @@ void VTKViewer_RenderWindowInteractor::SetInteractorStyle(vtkInteractorObserver
   vtkRenderWindowInteractor::SetInteractorStyle(theInteractor);
 }
 
-
-/*
-void VTKViewer_RenderWindowInteractor::SetSelectionMode(Selection_Mode theMode)
-{
-  myCellActor->SetVisibility(false);
-  myEdgeActor->SetVisibility(false);
-  myPointActor->SetVisibility(false);
-
-  switch(theMode){
-  case ActorSelection:
-    this->SetPicker(myBasicPicker);
-    break;
-  case NodeSelection:
-    this->SetPicker(myPointPicker);
-    break;
-  case CellSelection:
-  case EdgeSelection:
-  case FaceSelection:
-  case VolumeSelection:
-  case EdgeOfCellSelection:
-    this->SetPicker(myCellPicker);
-    break;
-  }
-
-  myInteractorStyle->OnSelectionModeChanged();
-}
-*/
-
 /*!Sets selection properties.
  *\param theRed - red component of color
  *\param theGreen - green component of color
@@ -351,8 +328,9 @@ int VTKViewer_RenderWindowInteractor::CreateTimer(int vtkNotUsed(timertype))
   return 1 ;
 }
 
-/**@see CreateTimer(int )
- *\retval 1
+/*! 
+  \sa CreateTimer(int )
+  \retval 1
  */
 int VTKViewer_RenderWindowInteractor::DestroyTimer(void)
 {
@@ -623,6 +601,9 @@ void VTKViewer_RenderWindowInteractor::Display( VTKViewer_Actor* theActor, bool
     emit RenderWindowModified();
 }
 
+/*!
+  default key press event (empty implementation)
+*/
 void VTKViewer_RenderWindowInteractor::KeyPressed(QKeyEvent *event)
 {
   /// NOT_IMPLEMENTED
@@ -698,7 +679,7 @@ void VTKViewer_RenderWindowInteractor::setActorData(const TColStd_IndexedMapOfIn
                                                    TUpdateActor theFun)
 {
   (*theFun)(theMapIndex,theMapActor,theActor);
-  float aPos[3];
+  vtkFloatingPointType aPos[3];
   theMapActor->GetPosition(aPos);
   theActor->SetPosition(aPos);
 }
index c65699a9a790d6a2d1bcd925c57cb97f19aeff2a..c485a7092c7b628906315a4d7f38e9fdfdbbf4dd 100755 (executable)
@@ -55,13 +55,13 @@ void VTKViewer_ShrinkFilter::Execute()
   int i, j, numIds, abort=0;
   vtkIdType cellId, numCells, numPts;
   vtkIdType oldId, newId;
-  float center[3], *p, pt[3];
+  vtkFloatingPointType center[3], *p, pt[3];
   vtkPointData *pd, *outPD;;
   vtkIdList *ptIds, *newPtIds;
   vtkDataSet *input= this->GetInput();
   vtkUnstructuredGrid *output = this->GetOutput();
   vtkIdType tenth;
-  float decimal;
+  vtkFloatingPointType decimal;
 
   vtkDebugMacro(<<"Shrinking cells");
 
index a6670cb87132b9745aa267d52ed53bdd2d6150e5..daf3997d5b57e01509bb9fd9b0faf24b8d2fc21f 100755 (executable)
@@ -44,7 +44,10 @@ VTKViewer_UnScaledActor::VTKViewer_UnScaledActor()
   Bounds[1] = Bounds[3] = Bounds[5] = -VTK_LARGE_FLOAT;
 }
 
-float* 
+/*!
+  \return bounding box
+*/
+vtkFloatingPointType* 
 VTKViewer_UnScaledActor
 ::GetBounds()
 {
@@ -65,19 +68,20 @@ void VTKViewer_UnScaledActor::SetSize(int theSize)
 void VTKViewer_UnScaledActor::Render(vtkRenderer *theRenderer)
 {
   if(theRenderer){
-    float P[2][3] = {{-1.0, -1.0, 0.0},{+1.0, +1.0, 0.0}};
+    vtkFloatingPointType P[2][3] = {{-1.0, -1.0, 0.0},{+1.0, +1.0, 0.0}};
     theRenderer->ViewToWorld(P[0][0],P[0][1],P[0][2]);
     theRenderer->ViewToWorld(P[1][0],P[1][1],P[1][2]);
-    float aWorldDiag = sqrt((P[1][0]-P[0][0])*(P[1][0]-P[0][0])+
-                            (P[1][1]-P[0][1])*(P[1][1]-P[0][1])+
-                            (P[1][2]-P[0][2])*(P[1][2]-P[0][2]));
+    vtkFloatingPointType aWorldDiag = sqrt((P[1][0]-P[0][0])*(P[1][0]-P[0][0])+
+                                          (P[1][1]-P[0][1])*(P[1][1]-P[0][1])+
+                                          (P[1][2]-P[0][2])*(P[1][2]-P[0][2]));
     int* aSize = theRenderer->GetRenderWindow()->GetSize();
-    float aWinDiag = sqrt(float(aSize[0]*aSize[0]+aSize[1]*aSize[1]));
+    vtkFloatingPointType aWinDiag = sqrt(vtkFloatingPointType(aSize[0]*aSize[0]+aSize[1]*aSize[1]));
     vtkDataSet* aDataSet = GetMapper()->GetInput();
-    float aLength = aDataSet->GetLength();
-    float aPrecision = 1.0E-3;
-    float anOldScale = GetScale()[0];
-    float aScale = mySize*aWorldDiag/aWinDiag/aLength*sqrt(float(aSize[0])/float(aSize[1]));
+    aDataSet->Update();
+    vtkFloatingPointType aLength = aDataSet->GetLength();
+    vtkFloatingPointType aPrecision = 1.0E-3;
+    vtkFloatingPointType anOldScale = GetScale()[0];
+    vtkFloatingPointType aScale = mySize*aWorldDiag/aWinDiag/aLength*sqrt(vtkFloatingPointType(aSize[0])/vtkFloatingPointType(aSize[1]));
     if(fabs(aScale - anOldScale)/aScale > aPrecision){
       SetScale(aScale);
     }
@@ -104,6 +108,9 @@ void VTKViewer_LineActor::Render(vtkRenderer *theRenderer)
   vtkFollower::Render(theRenderer);
 }
 
+/*!
+  Constructor
+*/
 VTKViewer_Axis::VTKViewer_Axis()
 {
   /*! \li Initialize the Line pipe-line representation*/
@@ -152,6 +159,9 @@ VTKViewer_Axis::VTKViewer_Axis()
   myVisibility = VTKViewer_Trihedron::eOn;
 }
 
+/*!
+  Destructor
+*/
 VTKViewer_Axis::~VTKViewer_Axis()
 {
   /*! \li Destroy of the Label pipe-line representation */
@@ -179,6 +189,9 @@ VTKViewer_Axis::~VTKViewer_Axis()
   myLineSource->Delete();
 }
 
+/*! Add to renderer
+ * \param theRenderer - vtkRenderer pointer
+ */
 void VTKViewer_Axis::AddToRender(vtkRenderer* theRenderer){
   /*! \li Order of the calls are important*/
   theRenderer->AddActor(myLineActor);
@@ -186,6 +199,9 @@ void VTKViewer_Axis::AddToRender(vtkRenderer* theRenderer){
   theRenderer->AddActor(myArrowActor);
 }
 
+/*! Remove actor of acis from \a theRenderer which are in myPresent.
+ * \param theRenderer - vtkRenderer pointer
+ */
 void VTKViewer_Axis::RemoveFromRender(vtkRenderer* theRenderer){
   /*! \li Order of the calls are important*/
   theRenderer->RemoveActor(myLineActor);
@@ -193,6 +209,7 @@ void VTKViewer_Axis::RemoveFromRender(vtkRenderer* theRenderer){
   theRenderer->RemoveActor(myArrowActor);
 }
 
+/*! Sets visibility for all Axis to \a theVis*/
 void VTKViewer_Axis::SetVisibility(VTKViewer_Trihedron::TVisibility theVis)
 {
   switch(theVis){
@@ -213,20 +230,25 @@ void VTKViewer_Axis::SetVisibility(VTKViewer_Trihedron::TVisibility theVis)
   myVisibility = theVis;
 }
 
-//****************************************************************
+/*! Set camera for myLabelActor
+ */
 void VTKViewer_Axis::SetCamera(vtkCamera* theCamera){
   myLabelActor->SetCamera(theCamera);
 }
 
+/*! Sets \a theProperty for actors: myLineActor,myLabelActor,myArrowActor
+ */
 void VTKViewer_Axis::SetProperty(vtkProperty* theProperty){
   myLabelActor->SetProperty(theProperty);
   myArrowActor->SetProperty(theProperty);
   myLineActor->SetProperty(theProperty);
 }
 
-void VTKViewer_Axis::SetSize(float theSize)
+/*! Set size of VTKViewer_Axis
+ */
+void VTKViewer_Axis::SetSize(vtkFloatingPointType theSize)
 {
-  float aPosition[3] = {myDir[0]*theSize, myDir[1]*theSize, myDir[2]*theSize};
+  vtkFloatingPointType aPosition[3] = {myDir[0]*theSize, myDir[1]*theSize, myDir[2]*theSize};
   myLineSource->SetPoint2(aPosition);
   
   myArrowActor->SetPosition(0.0,0.0,0.0);
@@ -318,16 +340,22 @@ VTKViewer_ZAxis::VTKViewer_ZAxis()
 
 vtkStandardNewMacro(VTKViewer_Trihedron);
 
+/*!
+  Constructor
+*/
 VTKViewer_Trihedron::VTKViewer_Trihedron()
 {
   myPresent = vtkActorCollection::New();
   myAxis[0] = VTKViewer_XAxis::New();
   myAxis[1] = VTKViewer_YAxis::New();
   myAxis[2] = VTKViewer_ZAxis::New();
-  static float aSize = 100;
+  static vtkFloatingPointType aSize = 100;
   SetSize(aSize);
 }
 
+/*!
+  Destructor
+*/
 VTKViewer_Trihedron::~VTKViewer_Trihedron()
 {
   myPresent->RemoveAllItems();
@@ -336,24 +364,34 @@ VTKViewer_Trihedron::~VTKViewer_Trihedron()
     myAxis[i]->Delete();
 }
 
-void VTKViewer_Trihedron::SetSize(float theSize)
+/*! Set size of axes
+ */
+void VTKViewer_Trihedron::SetSize(vtkFloatingPointType theSize)
 {
   mySize = theSize;
   for(int i = 0; i < 3; i++)
     myAxis[i]->SetSize(theSize);
 }
 
+/*! Set visibility of axes
+ */
 void VTKViewer_Trihedron::SetVisibility(TVisibility theVis)
 {
   for(int i = 0; i < 3; i++)
     myAxis[i]->SetVisibility(theVis);
 }
 
+/*!
+  \return visibility of first axis
+*/
 VTKViewer_Trihedron::TVisibility VTKViewer_Trihedron::GetVisibility()
 {
   return myAxis[0]->GetVisibility();
 }
 
+/*! Add to render all Axis
+ * \param theRenderer - vtkRenderer pointer
+ */
 void VTKViewer_Trihedron::AddToRender(vtkRenderer* theRenderer)
 {
   vtkCamera* aCamera = theRenderer->GetActiveCamera();
@@ -363,6 +401,9 @@ void VTKViewer_Trihedron::AddToRender(vtkRenderer* theRenderer)
   }
 }
 
+/*! Remove all actors from \a theRenderer which are in myPresent.
+ * \param theRenderer - vtkRenderer pointer
+ */
 void VTKViewer_Trihedron::RemoveFromRender(vtkRenderer* theRenderer)
 {
   myPresent->InitTraversal();
@@ -372,6 +413,9 @@ void VTKViewer_Trihedron::RemoveFromRender(vtkRenderer* theRenderer)
     myAxis[i]->RemoveFromRender(theRenderer);
 }
 
+/*! Return count of visible actors.
+ * \param theRenderer - vtkRenderer pointer
+ */
 int VTKViewer_Trihedron::GetVisibleActorCount(vtkRenderer* theRenderer)
 {
   //TVisibility aVis = GetVisibility();
index e40e3bc903d064567b99e27c8fd5c7e329d852c2..b92cf02f607031df33527d2acedb53672a96f062 100755 (executable)
@@ -52,7 +52,7 @@ public:
   /*!Create new instance of VTKViewer_UnScaledActor.*/
   static VTKViewer_UnScaledActor *New();
   
-  virtual float* GetBounds();
+  virtual vtkFloatingPointType* GetBounds();
   virtual void SetSize(int theSize);
   virtual void Render(vtkRenderer *theRenderer);
 
@@ -111,7 +111,6 @@ protected:
   VTKViewer_UnScaledActor* ArrowActor;
 };
 
-//****************************************************************
 /*!This class provide support trihedron object in vtk viewer.*/
 class VTKVIEWER_EXPORT VTKVIEWER_EXPORT VTKViewer_Trihedron : public vtkObject
 {
@@ -133,14 +132,14 @@ public:
   static VTKViewer_Trihedron *New();
   
   /*!Sets size of trihedron.
-   * \param theSize - float value
+   * \param theSize - vtkFloatingPointType value
    */
-  virtual void        SetSize(float theSize);
+  virtual void        SetSize(vtkFloatingPointType theSize);
 
   /*! Get size of trihedron.
-   * \retval mySize - float value
+   * \retval mySize - vtkFloatingPointType value
    */
-  virtual float       GetSize() { return mySize;}
+  virtual vtkFloatingPointType  GetSize() { return mySize;}
   
   enum TVisibility{eOff, eOn, eOnlyLineOn};
   
@@ -182,10 +181,9 @@ protected:
   VTKViewer_Axis*     myAxis[3];
   
   /*! Common size for trihedron, for each axis.*/
-  float               mySize;
+  vtkFloatingPointType mySize;
 };
 
-//****************************************************************
 /*!The base class for concreate Axis.
  * Its only duty is to give correct initialization and destruction
  * of its pipe-lines
@@ -225,7 +223,7 @@ public:
   
   /*! Set size of VTKViewer_Axis
    */
-  virtual void SetSize(float theSize);
+  virtual void SetSize(vtkFloatingPointType theSize);
   
   /*! Get label actor.
    * \retval Return myLabelActor.
@@ -248,7 +246,7 @@ protected:
   /*! \var myRot[3]
    * Orientation vector
    */
-  float myDir[3], myRot[3];
+  vtkFloatingPointType myDir[3], myRot[3];
   
   /*! VTKViewer_LineActor actor pointer
    */
index 723eea3fcc6cded3798b7ea3b5c3ce6b394c20b6..6f5a701ff0adc8290ee51e9f9138cfb7cfa8429a 100755 (executable)
 //
 // See http://www.salome-platform.org/
 //
+
+#include "VTKViewer_Utilities.h"
 #include "VTKViewer_Actor.h"
 
+#include <algorithm>
+
 // VTK Includes
 #include <vtkMath.h>
 #include <vtkCamera.h>
 #include <vtkRenderer.h>
 #include <vtkRenderWindow.h>
-#include "VTKViewer_Utilities.h"
 
+using namespace std;
 
-/*!@see vtkRenderer::ResetCamera(float bounds[6]) method*/
-void ResetCamera(vtkRenderer* theRenderer, int theUsingZeroFocalPoint)
+/*!@see vtkRenderer::ResetCamera(vtkFloatingPointType bounds[6]) method*/
+void 
+ResetCamera(vtkRenderer* theRenderer, 
+           int theUsingZeroFocalPoint)
 {  
   if(!theRenderer)
     return;
@@ -36,20 +42,20 @@ void ResetCamera(vtkRenderer* theRenderer, int theUsingZeroFocalPoint)
   if(!aCamera) 
     return;
 
-  float aBounds[6];
+  vtkFloatingPointType aBounds[6];
   int aCount = ComputeVisiblePropBounds(theRenderer,aBounds);
 
   if(theUsingZeroFocalPoint || aCount){
-    static float MIN_DISTANCE = 1.0 / VTK_LARGE_FLOAT;
+    static vtkFloatingPointType MIN_DISTANCE = 1.0 / VTK_LARGE_FLOAT;
 
-    float aLength = aBounds[1]-aBounds[0];
+    vtkFloatingPointType aLength = aBounds[1]-aBounds[0];
     aLength = max((aBounds[3]-aBounds[2]),aLength);
     aLength = max((aBounds[5]-aBounds[4]),aLength);
     
     if(aLength < MIN_DISTANCE)
       return;
 
-    float aWidth = 
+    vtkFloatingPointType aWidth = 
       sqrt((aBounds[1]-aBounds[0])*(aBounds[1]-aBounds[0]) +
           (aBounds[3]-aBounds[2])*(aBounds[3]-aBounds[2]) +
           (aBounds[5]-aBounds[4])*(aBounds[5]-aBounds[4]));
@@ -57,10 +63,10 @@ void ResetCamera(vtkRenderer* theRenderer, int theUsingZeroFocalPoint)
     if(aWidth < MIN_DISTANCE)
       return;
 
-    double aViewPlaneNormal[3];
+    vtkFloatingPointType aViewPlaneNormal[3];
     aCamera->GetViewPlaneNormal(aViewPlaneNormal);
     
-    float aCenter[3] = {0.0, 0.0, 0.0};
+    vtkFloatingPointType aCenter[3] = {0.0, 0.0, 0.0};
     if(!theUsingZeroFocalPoint){
       aCenter[0] = (aBounds[0] + aBounds[1])/2.0;
       aCenter[1] = (aBounds[2] + aBounds[3])/2.0;
@@ -68,11 +74,11 @@ void ResetCamera(vtkRenderer* theRenderer, int theUsingZeroFocalPoint)
     }
     aCamera->SetFocalPoint(aCenter[0],aCenter[1],aCenter[2]);
     
-    double aViewAngle = aCamera->GetViewAngle();
-    float aDistance = 2.0*aWidth/tan(aViewAngle*vtkMath::Pi()/360.0);
+    vtkFloatingPointType aViewAngle = aCamera->GetViewAngle();
+    vtkFloatingPointType aDistance = 2.0*aWidth/tan(aViewAngle*vtkMath::Pi()/360.0);
     
     // check view-up vector against view plane normal
-    double aViewUp[3];
+    vtkFloatingPointType aViewUp[3];
     aCamera->GetViewUp(aViewUp);
     if(fabs(vtkMath::Dot(aViewUp,aViewPlaneNormal)) > 0.999)
       aCamera->SetViewUp(-aViewUp[2], aViewUp[0], aViewUp[1]);
@@ -85,7 +91,7 @@ void ResetCamera(vtkRenderer* theRenderer, int theUsingZeroFocalPoint)
     // find size of the window
     int* aWinSize = theRenderer->GetSize();
     if(aWinSize[0] < aWinSize[1]) 
-      aWidth *= float(aWinSize[1])/float(aWinSize[0]);
+      aWidth *= vtkFloatingPointType(aWinSize[1])/vtkFloatingPointType(aWinSize[0]);
     
     if(theUsingZeroFocalPoint) 
       aWidth *= sqrt(2.0);
@@ -97,10 +103,11 @@ void ResetCamera(vtkRenderer* theRenderer, int theUsingZeroFocalPoint)
 }
 
 /*! Compute the bounds of the visible props*/
-int ComputeVisiblePropBounds(vtkRenderer* theRenderer, float theBounds[6])
+int
+ComputeVisiblePropBounds(vtkRenderer* theRenderer, 
+                        vtkFloatingPointType theBounds[6])
 {
-  float      *bounds;
-  int        aCount=0;
+  int aCount = 0;
   
   theBounds[0] = theBounds[2] = theBounds[4] = VTK_LARGE_FLOAT;
   theBounds[1] = theBounds[3] = theBounds[5] = -VTK_LARGE_FLOAT;
@@ -108,53 +115,40 @@ int ComputeVisiblePropBounds(vtkRenderer* theRenderer, float theBounds[6])
   // loop through all props
   vtkActorCollection* aCollection = theRenderer->GetActors();
   aCollection->InitTraversal();
-  while (vtkActor* prop = aCollection->GetNextActor()) {
+  while (vtkActor* aProp = aCollection->GetNextActor()) {
     // if it's invisible, or has no geometry, we can skip the rest 
-    if ( prop->GetVisibility() )
-    {
-      if(VTKViewer_Actor* anActor = VTKViewer_Actor::SafeDownCast(prop))
-        if(anActor->IsInfinitive()) continue;
-        bounds = prop->GetBounds();
-        // make sure we haven't got bogus bounds
-        if ( bounds != NULL &&
-          bounds[0] > -VTK_LARGE_FLOAT && bounds[1] < VTK_LARGE_FLOAT &&
-          bounds[2] > -VTK_LARGE_FLOAT && bounds[3] < VTK_LARGE_FLOAT &&
-          bounds[4] > -VTK_LARGE_FLOAT && bounds[5] < VTK_LARGE_FLOAT )
-        {
-          aCount++;
-          
-          if (bounds[0] < theBounds[0])
-          {
-            theBounds[0] = bounds[0]; 
-          }
-          if (bounds[1] > theBounds[1])
-          {
-            theBounds[1] = bounds[1]; 
-          }
-          if (bounds[2] < theBounds[2])
-          {
-            theBounds[2] = bounds[2]; 
-          }
-          if (bounds[3] > theBounds[3])
-          {
-            theBounds[3] = bounds[3]; 
-          }
-          if (bounds[4] < theBounds[4])
-          {
-            theBounds[4] = bounds[4]; 
-          }
-          if (bounds[5] > theBounds[5])
-          {
-            theBounds[5] = bounds[5]; 
-          }
-        }//not bogus
+    if(aProp->GetVisibility() && aProp->GetMapper()){
+      if(VTKViewer_Actor* anActor = VTKViewer_Actor::SafeDownCast(aProp))
+        if(anActor->IsInfinitive())
+         continue;
+       
+      vtkFloatingPointType *aBounds = aProp->GetBounds();
+      static vtkFloatingPointType MAX_DISTANCE = 0.9*VTK_LARGE_FLOAT;
+      // make sure we haven't got bogus bounds
+      if ( aBounds != NULL &&
+          aBounds[0] > -MAX_DISTANCE && aBounds[1] < MAX_DISTANCE &&
+          aBounds[2] > -MAX_DISTANCE && aBounds[3] < MAX_DISTANCE &&
+          aBounds[4] > -MAX_DISTANCE && aBounds[5] < MAX_DISTANCE )
+      {
+       aCount++;
+
+       theBounds[0] = min(aBounds[0],theBounds[0]);
+       theBounds[2] = min(aBounds[2],theBounds[2]);
+       theBounds[4] = min(aBounds[4],theBounds[4]);
+
+       theBounds[1] = max(aBounds[1],theBounds[1]);
+       theBounds[3] = max(aBounds[3],theBounds[3]);
+       theBounds[5] = max(aBounds[5],theBounds[5]);
+
+      }//not bogus
     }
   }
   return aCount;
 }
 
-/*!@see vtkRenderer::ResetCameraClippingRange(float bounds[6]) method*/
-void ResetCameraClippingRange(vtkRenderer* theRenderer)
+/*!@see vtkRenderer::ResetCameraClippingRange(vtkFloatingPointType bounds[6]) method*/
+void
+ResetCameraClippingRange(vtkRenderer* theRenderer)
 {
   if(!theRenderer || !theRenderer->VisibleActorCount()) return;
   
@@ -164,28 +158,28 @@ void ResetCameraClippingRange(vtkRenderer* theRenderer)
   }
   
   // Find the plane equation for the camera view plane
-  double vn[3];
+  vtkFloatingPointType vn[3];
   anActiveCamera->GetViewPlaneNormal(vn);
-  double  position[3];
+  vtkFloatingPointType  position[3];
   anActiveCamera->GetPosition(position);
   
-  float bounds[6];
+  vtkFloatingPointType bounds[6];
   theRenderer->ComputeVisiblePropBounds(bounds);
   
-  double center[3];
+  vtkFloatingPointType center[3];
   center[0] = (bounds[0] + bounds[1])/2.0;
   center[1] = (bounds[2] + bounds[3])/2.0;
   center[2] = (bounds[4] + bounds[5])/2.0;
   
-  double width = sqrt((bounds[1]-bounds[0])*(bounds[1]-bounds[0]) +
+  vtkFloatingPointType width = sqrt((bounds[1]-bounds[0])*(bounds[1]-bounds[0]) +
     (bounds[3]-bounds[2])*(bounds[3]-bounds[2]) +
     (bounds[5]-bounds[4])*(bounds[5]-bounds[4]));
   
-  double distance = sqrt((position[0]-center[0])*(position[0]-center[0]) +
+  vtkFloatingPointType distance = sqrt((position[0]-center[0])*(position[0]-center[0]) +
        (position[1]-center[1])*(position[1]-center[1]) +
        (position[2]-center[2])*(position[2]-center[2]));
   
-  float range[2] = {distance - width/2.0, distance + width/2.0};
+  vtkFloatingPointType range[2] = {distance - width/2.0, distance + width/2.0};
   
   // Do not let the range behind the camera throw off the calculation.
   if (range[0] < 0.0) range[0] = 0.0;
@@ -194,23 +188,26 @@ void ResetCameraClippingRange(vtkRenderer* theRenderer)
 }
 
 /*!Compute trihedron size.*/
-bool ComputeTrihedronSize( vtkRenderer* theRenderer,double& theNewSize,
-                          const double theSize, const float theSizeInPercents )
+bool
+ComputeTrihedronSize( vtkRenderer* theRenderer,
+                     vtkFloatingPointType& theNewSize,
+                     const vtkFloatingPointType theSize, 
+                     const vtkFloatingPointType theSizeInPercents )
 {
   // calculating diagonal of visible props of the renderer
-  float bnd[ 6 ];
+  vtkFloatingPointType bnd[ 6 ];
   if ( ComputeVisiblePropBounds( theRenderer, bnd ) == 0 )
   {
     bnd[ 1 ] = bnd[ 3 ] = bnd[ 5 ] = 100;
     bnd[ 0 ] = bnd[ 2 ] = bnd[ 4 ] = 0;
   }
-  float aLength = 0;
+  vtkFloatingPointType aLength = 0;
 
   aLength = bnd[ 1 ]-bnd[ 0 ];
   aLength = max( ( bnd[ 3 ] - bnd[ 2 ] ),aLength );
   aLength = max( ( bnd[ 5 ] - bnd[ 4 ] ),aLength );
 
-  static float EPS_SIZE = 5.0E-3;
+  static vtkFloatingPointType EPS_SIZE = 5.0E-3;
   theNewSize = aLength * theSizeInPercents / 100.0;
 
   // if the new trihedron size have sufficient difference, then apply the value
index 6341e885d67ed3ca98f3b3898fd16ec1785567f9..a189fd89cf7df8684af46de306e58e9b77ee4368 100755 (executable)
 #ifndef VTKVIEWER_UTILITIES_H
 #define VTKVIEWER_UTILITIES_H
 
-#include <VTKViewer.h>
+#include "VTKViewer.h"
 
 class vtkRenderer;
 
-VTKVIEWER_EXPORT extern void  ResetCamera(vtkRenderer* theRenderer, int theUsingZeroFocalPoint = false);
-VTKVIEWER_EXPORT extern int   ComputeVisiblePropBounds(vtkRenderer* theRenderer, float theBounds[6]);
-VTKVIEWER_EXPORT extern void  ResetCameraClippingRange(vtkRenderer* theRenderer);
-VTKVIEWER_EXPORT extern bool  ComputeTrihedronSize(vtkRenderer* theRenderer, double& theNewSize
-                                 const double theSize, const float theSizeInPercents);
+VTKVIEWER_EXPORT 
+extern
+void
+ResetCamera(vtkRenderer* theRenderer
+           int theUsingZeroFocalPoint = false);
 
-#ifndef max
-#define max(a,b)            (((a) > (b)) ? (a) : (b))
-#endif
+VTKVIEWER_EXPORT
+extern
+int
+ComputeVisiblePropBounds(vtkRenderer* theRenderer, 
+                        vtkFloatingPointType theBounds[6]);
 
-#ifndef min
-#define min(a,b)            (((a) < (b)) ? (a) : (b))
-#endif
+VTKVIEWER_EXPORT
+extern
+void
+ResetCameraClippingRange(vtkRenderer* theRenderer);
+VTKVIEWER_EXPORT
+extern
+bool
+ComputeTrihedronSize(vtkRenderer* theRenderer, 
+                    vtkFloatingPointType& theNewSize, 
+                    const vtkFloatingPointType theSize, 
+                    const vtkFloatingPointType theSizeInPercents);
 
 #endif
index b4e62266a9534a3462347a17284940fd3beac44f..31ea5439148189bb1432a582ffa4961ab206b342 100755 (executable)
@@ -1751,6 +1751,11 @@ void VTKViewer_VectorText::Execute()
   newPolys->Delete();
 }
   
+/*!
+  Print text to stream
+  \param os - stream
+  \param indent
+*/
 void VTKViewer_VectorText::PrintSelf(ostream& os, vtkIndent indent)
 {
   this->Superclass::PrintSelf(os,indent);
index 14459080395a8d0d7d87ecde8075d59c494ae263..44eef236bc350eae9ac09f712bcad75b319cfe78 100755 (executable)
@@ -387,7 +387,7 @@ void VTKViewer_ViewWindow::onResetView()
   ::ResetCamera(myRenderer,true);  
   if(aTriedronIsVisible) myTrihedron->VisibilityOn();
   else myTrihedron->VisibilityOff();
-  static float aCoeff = 3.0;
+  static vtkFloatingPointType aCoeff = 3.0;
   aCamera->SetParallelScale(aCoeff*aCamera->GetParallelScale());
   Repaint();
 }
@@ -409,7 +409,7 @@ void VTKViewer_ViewWindow::setBackgroundColor( const QColor& color )
 /*!Returns background of the viewport*/
 QColor VTKViewer_ViewWindow::backgroundColor() const
 {
-  float backint[3];
+  vtkFloatingPointType backint[3];
   if ( myRenderer ) {
     myRenderer->GetBackground( backint );
     return QColor(int(backint[0]*255), int(backint[1]*255), int(backint[2]*255));
@@ -443,11 +443,11 @@ void VTKViewer_ViewWindow::onAdjustTrihedron(){
   int aVisibleNum = myTrihedron->GetVisibleActorCount(myRenderer);
   if(aVisibleNum){
     // calculating diagonal of visible props of the renderer
-    float bnd[6];
+    vtkFloatingPointType bnd[6];
     myTrihedron->VisibilityOff();
     ::ComputeVisiblePropBounds(myRenderer,bnd);
     myTrihedron->VisibilityOn();
-    float aLength = 0;
+    vtkFloatingPointType aLength = 0;
     static bool CalcByDiag = false;
     if(CalcByDiag){
       aLength = sqrt((bnd[1]-bnd[0])*(bnd[1]-bnd[0])+
@@ -459,13 +459,13 @@ void VTKViewer_ViewWindow::onAdjustTrihedron(){
       aLength = max((bnd[5]-bnd[4]),aLength);
     }
    
-    static float aSizeInPercents = 105;
+    static vtkFloatingPointType aSizeInPercents = 105;
     QString aSetting;// = SUIT_CONFIG->getSetting("Viewer:TrihedronSize");
     if(!aSetting.isEmpty()) aSizeInPercents = aSetting.toFloat();
 
-    static float EPS_SIZE = 5.0E-3;
-    float aSize = myTrihedron->GetSize();
-    float aNewSize = aLength*aSizeInPercents/100.0;
+    static vtkFloatingPointType EPS_SIZE = 5.0E-3;
+    vtkFloatingPointType aSize = myTrihedron->GetSize();
+    vtkFloatingPointType aNewSize = aLength*aSizeInPercents/100.0;
     // if the new trihedron size have sufficient difference, then apply the value
     if(fabs(aNewSize-aSize) > aSize*EPS_SIZE || fabs(aNewSize-aSize) > aNewSize*EPS_SIZE){
       myTrihedron->SetSize(aNewSize);
@@ -580,7 +580,7 @@ QString VTKViewer_ViewWindow::getVisualParameters()
   return retStr;
 }
 
-/* The method restors visual parameters of this view from a formated string
+/*! The method restors visual parameters of this view from a formated string
  */
 void VTKViewer_ViewWindow::setVisualParameters( const QString& parameters )
 {
diff --git a/src/VTKViewer/resources/VTKViewerM_images.po b/src/VTKViewer/resources/VTKViewerM_images.po
deleted file mode 100644 (file)
index ce2c6c7..0000000
+++ /dev/null
@@ -1,40 +0,0 @@
-#  VISU VISUGUI : GUI of VISU component
-#
-#  Copyright (C) 2003  OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN,
-#  CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS 
-# 
-#  This library is free software; you can redistribute it and/or 
-#  modify it under the terms of the GNU Lesser General Public 
-#  License as published by the Free Software Foundation; either 
-#  version 2.1 of the License. 
-# 
-#  This library is distributed in the hope that it will be useful, 
-#  but WITHOUT ANY WARRANTY; without even the implied warranty of 
-#  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU 
-#  Lesser General Public License for more details. 
-# 
-#  You should have received a copy of the GNU Lesser General Public 
-#  License along with this library; if not, write to the Free Software 
-#  Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307 USA 
-# 
-#  See http://www.opencascade.org/SALOME/ or email : webmaster.salome@opencascade.org 
-#
-#
-#
-#  File   : 
-#  Module : 
-
-msgid ""
-msgstr ""
-"Project-Id-Version: PROJECT VERSION\n"
-"POT-Creation-Date: 2002-05-28 10:57:43 AM CEST\n"
-"PO-Revision-Date: 2005-05-10 15:20+0400\n"
-"Last-Translator: FULLNAME <EMAIL@ADDRESS>\n"
-"Content-Type: text/plain; charset=iso-8859-1\n"
-
-
-msgid "ICON_SVTK_SCALING"
-msgstr "view_scaling.png"
-
-msgid "ICON_GRADUATED_AXES"
-msgstr "view_graduated_axes.png"
diff --git a/src/VTKViewer/resources/VTKViewerM_msg_en.po b/src/VTKViewer/resources/VTKViewerM_msg_en.po
deleted file mode 100644 (file)
index d5e8cc2..0000000
+++ /dev/null
@@ -1,108 +0,0 @@
-msgid ""
-msgstr ""
-"Project-Id-Version: PROJECT VERSION\n"
-"POT-Creation-Date: 2002-02-22 16:56:46 CET\n"
-"PO-Revision-Date: 2005-06-27 12:38+0400\n"
-"Last-Translator: FULLNAME <EMAIL@ADDRESS>\n"
-"Content-Type: text/plain; charset=iso-8859-1\n"
-
-#: SVTK_NonIsometricDlg.cxx
-
-msgid "SVTK_NonIsometricDlg::MEN_SCALING"
-msgstr "Scaling"
-
-msgid "SVTK_NonIsometricDlg::O&K"
-msgstr ""
-
-msgid "SVTK_NonIsometricDlg::&Apply"
-msgstr ""
-
-msgid "SVTK_NonIsometricDlg::&Cancel"
-msgstr ""
-
-msgid "SVTK_NonIsometricDlg::&Reset"
-msgstr ""
-
-msgid "SVTK_NonIsometricDlg::DLG_TITLE"
-msgstr "Scaling"
-
-msgid "SVTK_NonIsometricDlg::LBL_X"
-msgstr "X :"
-
-msgid "SVTK_NonIsometricDlg::LBL_Y"
-msgstr "Y :"
-
-msgid "SVTK_NonIsometricDlg::LBL_Z"
-msgstr "Z :"
-
-msgid "SVTK_MainWindow::MNU_SVTK_SCALING"
-msgstr "Scaling"
-
-msgid "SVTK_MainWindow::DSC_SVTK_SCALING"
-msgstr "Scaling"
-
-msgid "SVTK_FontWidget::ARIAL"
-msgstr "Arial"
-
-msgid "SVTK_FontWidget::COURIER"
-msgstr "Courier"
-
-msgid "SVTK_FontWidget::TIMES"
-msgstr "Times"
-
-msgid "SVTK_FontWidget::BOLD"
-msgstr "Bold"
-
-msgid "SVTK_FontWidget::ITALIC"
-msgstr "Italic"
-
-msgid "SVTK_FontWidget::SHADOW"
-msgstr "Shadow"
-
-msgid "SVTK_CubeAxesDlg::CAPTION"
-msgstr "Graduated axes"
-
-msgid "SVTK_CubeAxesDlg::X_AXIS"
-msgstr "X axis"
-
-msgid "SVTK_CubeAxesDlg::Y_AXIS"
-msgstr "Y axis"
-
-msgid "SVTK_CubeAxesDlg::Z_AXIS"
-msgstr "Z axis"
-
-msgid "SVTK_CubeAxesDlg::IS_VISIBLE"
-msgstr "Is visible"
-
-msgid "SVTK_AxisWidget::AXIS_NAME"
-msgstr "Axis name"
-
-msgid "SVTK_AxisWidget::IS_VISIBLE"
-msgstr "Is visible"
-
-msgid "SVTK_AxisWidget::NAME"
-msgstr "Name"
-
-msgid "SVTK_AxisWidget::FONT"
-msgstr "Font"
-
-msgid "SVTK_AxisWidget::LABELS"
-msgstr "Labels"
-
-msgid "SVTK_AxisWidget::NUMBER"
-msgstr "Number"
-
-msgid "SVTK_AxisWidget::OFFSET"
-msgstr "Offset"
-
-msgid "SVTK_AxisWidget::TICK_MARKS"
-msgstr "Tick marks"
-
-msgid "SVTK_AxisWidget::LENGTH"
-msgstr "Length"
-
-msgid "SVTK_MainWindow::MNU_SVTK_GRADUATED_AXES"
-msgstr "Graduated axes"
-
-msgid "SVTK_MainWindow::DSC_SVTK_GRADUATED_AXES"
-msgstr "Graduated axes"
\ No newline at end of file
index 603fbb3c09a26c9cc07f4a6d15cf5352d9c05958..8d0210f4a3154eb9d8ed3960cdbbd516b6609d20 100755 (executable)
@@ -131,9 +131,6 @@ msgstr "Cannot save file"
 msgid "ERROR"
 msgstr "Error"
 
-msgid "BUT_OK"
-msgstr "Ok"
-
 msgid "VTKViewer_Viewer::MEN_DUMP_VIEW"
 msgstr "Dump view..."
 
diff --git a/src/VTKViewer/resources/view_update_rate.png b/src/VTKViewer/resources/view_update_rate.png
new file mode 100755 (executable)
index 0000000..3d01ad1
Binary files /dev/null and b/src/VTKViewer/resources/view_update_rate.png differ