X-Git-Url: http://git.salome-platform.org/gitweb/?p=modules%2Fsmesh.git;a=blobdiff_plain;f=src%2FSMESHGUI%2FSMESHGUI_MeshDlg.h;h=dc846e183c08189ab03f237764cdf68ac9e4b8e2;hp=f83b77c48ef9d75c912d8b8945b6265e6caee91f;hb=refs%2Ftags%2FV8_3_0a2;hpb=2754c581d371f9bf52b3c538a7bde55f10f6523c diff --git a/src/SMESHGUI/SMESHGUI_MeshDlg.h b/src/SMESHGUI/SMESHGUI_MeshDlg.h index f83b77c48..dc846e183 100644 --- a/src/SMESHGUI/SMESHGUI_MeshDlg.h +++ b/src/SMESHGUI/SMESHGUI_MeshDlg.h @@ -1,57 +1,57 @@ -// Copyright (C) 2005 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, +// Copyright (C) 2007-2016 CEA/DEN, EDF R&D, OPEN CASCADE +// +// Copyright (C) 2003-2007 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 +// License as published by the Free Software Foundation; either +// version 2.1 of the License, or (at your option) any later version. +// +// 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 +// 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/ +// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com // -/** -* SMESH SMESHGUI -* -* Copyright (C) 2005 CEA/DEN, EDF R&D -* -* -* -* File : SMESHGUI_MeshDlg.h -* Author : Sergey LITONIN -* Module : SMESH -*/ +// SMESH SMESHGUI : GUI for SMESH component +// File : SMESHGUI_MeshDlg.h +// Author : Sergey LITONIN, Open CASCADE S.A.S. +// +#ifndef SMESHGUI_MESHDLG_H +#define SMESHGUI_MESHDLG_H -#ifndef SMESHGUI_MeshDlg_H -#define SMESHGUI_MeshDlg_H +// SMESH includes +#include "SMESH_SMESHGUI.hxx" #include "SMESHGUI_Dialog.h" -#include -#include -#include + +// Qt includes +#include +#include +#include class SMESHGUI_MeshTab; -class QTabWidget; -class QLineEdit; +class QAction; class QComboBox; +class QListWidget; +class QMenu; +class QTabWidget; class QToolButton; -class QString; -class QPopupMenu; +class QtxToolButton; /*! * \brief Dialog for mech creation or editing * * This dialog is used for mech creation or editing. */ -class SMESHGUI_MeshDlg : public SMESHGUI_Dialog +class SMESHGUI_EXPORT SMESHGUI_MeshDlg : public SMESHGUI_Dialog { Q_OBJECT @@ -60,10 +60,10 @@ public: enum Controls { Obj, Mesh, Geom }; /*! Describes dimensions */ - enum Dimensions { Dim1D = 0, Dim2D, Dim3D }; + enum Dimensions { Dim0D = 0, Dim1D, Dim2D, Dim3D }; public: - SMESHGUI_MeshDlg( const bool theToCreate, const bool theIsMesh ); + SMESHGUI_MeshDlg( const bool, const bool ); virtual ~SMESHGUI_MeshDlg(); SMESHGUI_MeshTab* tab( const int ) const; @@ -71,81 +71,98 @@ public: void setCurrentTab( const int ); void setMaxHypoDim( const int ); void setHypoSets( const QStringList& ); + void setGeomPopupEnabled( const bool ); + void disableTab(const int); + void enableTab(const int); + bool isTabEnabled(const int) const; + int getActiveObject(); + void setAvailableMeshType(const QStringList& ); + int currentMeshType(); + void setCurrentMeshType( const int ); + void setTitile( const bool, const bool ); signals: - void hypoSet( const QString& ); + void geomSelectionByMesh( bool ); + void selectMeshType( const int, const int ); private slots: - - void onHypoSetPopup( int ); - void onHypoSetButton(); - -private: - - QMap< int, SMESHGUI_MeshTab* > myTabs; - QTabWidget* myTabWg; - QPopupMenu* myHypoSetPopup; + void onHypoSetPopup( QAction* ); + void onGeomPopup( QAction* ); + void onGeomSelectionButton( bool ); + void onChangedMeshType( const int ); + + private: + QMap myTabs; + QTabWidget* myTabWg; + QToolButton* myHypoSetButton; + QMenu* myGeomPopup; + QComboBox* myMeshType; }; /*! - * \brief Tab for tab widget containing controls for definition of + * \brief Tab for tab widget containing controls for definition of * algorithms and hypotheses -*/ + */ -class SMESHGUI_MeshTab : public QFrame +class SMESHGUI_EXPORT SMESHGUI_MeshTab : public QFrame { Q_OBJECT - -public: + + public: /*! To differ main algorithms, hypotheses and additional ones*/ enum HypType - { + { Algo = 0, //!< algorithms MainHyp, //!< main hypothesis - AddHyp //!< additional hypothesis - }; - + AddHyp, //!< additional hypothesis + MoreAddHyp //! since several additional hypothesis are possible, the 2-nd, 3-d etc + // additional hypotheses are coded as being of HypType (AddHyp + 1), (AddHyp + 2) etc. + // Nb of HypType's after MainHyp is returned by SMESHGUI_MeshTab::nbAddHypTypes() + }; + public: SMESHGUI_MeshTab( QWidget* ); virtual ~SMESHGUI_MeshTab(); void setAvailableHyps( const int, const QStringList& ); - void setExistingHyps( const int, const QStringList& ); + void setExistingHyps( const int, const QStringList&, bool=false); void addHyp( const int, const QString& ); - void renameHyp( const int, const int, const QString& ); + //void renameHyp( const int, const int, const QString& ); void setCurrentHyp( const int, const int ); int currentHyp( const int ) const; + int nbAddHypTypes() const; void reset(); signals: - - void createHyp( const int theHypType, const int theIndex ); - //!< Emited when "Create hypothesis" button clicked - void editHyp( const int theHypType, const int theIndex ); - //!< Emited when "Edit hypothesis" button clicked + void createHyp( const int, const int ); + //!< Emitted when "Create hypothesis" button clicked + void editHyp( const int, const int ); + //!< Emitted when "Edit hypothesis" button clicked + void selectAlgo( const int ); + //!< Emitted when an algorithm is selected private slots: - void onCreateHyp(); void onEditHyp(); void onHyp( int ); - void onPopupItem( int ); - -private: - - QMap< int, QComboBox* > myHyp; - QMap< int, QToolButton* > myCreateHyp; - QMap< int, QToolButton* > myEditHyp; - - QMap< int, QStringList > myAvailableHyps; - QMap< int, QStringList > myExistingHyps; - - QPopupMenu* myPopup; -}; + void onMoreAddHyp(); + void onLessAddHyp(); -#endif +private: + + void addItem( const QString& txt, const int type, const int index, const bool isGroup=false ); + int getCurrentIndex( const int type, const bool curByType=false) const; + QMap myAvailableHypTypes; + QMap myHypCombo; + QMap myCreateHypBtn; + QMap myEditHypBtn; + QToolButton* myMoreAddHypBtn; + QToolButton* myLessAddHypBtn; + QListWidget* myAddHypList; // 2-nd, etc. additional hyps +}; +#endif // SMESHGUI_MESHDLG_H