X-Git-Url: http://git.salome-platform.org/gitweb/?a=blobdiff_plain;f=src%2FSMESHGUI%2FSMESHGUI_Hypotheses.h;h=d47422a4a1c1456c24803f42b90c47c6ac9d5474;hb=5309d564cb25bce0159bf722cd6347c06f7bc13f;hp=85a621791352a3c0e44b500b07b6e12d93fa7da0;hpb=e4737e85f0da6d3f90fd08f6be1c2825195fe16f;p=modules%2Fsmesh.git diff --git a/src/SMESHGUI/SMESHGUI_Hypotheses.h b/src/SMESHGUI/SMESHGUI_Hypotheses.h index 85a621791..d47422a4a 100644 --- a/src/SMESHGUI/SMESHGUI_Hypotheses.h +++ b/src/SMESHGUI/SMESHGUI_Hypotheses.h @@ -31,45 +31,141 @@ #include #include CORBA_SERVER_HEADER(SMESH_Hypothesis) -// QT Includes -#include -#include - -//================================================================================= -// class : SMESHGUI_GenericHypothesisCreator -// purpose : -//================================================================================= -class SMESHGUI_GenericHypothesisCreator +#include +#include + +class QVBoxLayout; +class QPixmap; + +/*! + * \brief Auxiliary class for creation of hypotheses +*/ +class SMESHGUI_GenericHypothesisCreator : public QObject { - public: - virtual void CreateHypothesis (const bool isAlgo, QWidget* parent) = 0; - virtual void EditHypothesis (SMESH::SMESH_Hypothesis_ptr theHyp) = 0; + Q_OBJECT + +public: + SMESHGUI_GenericHypothesisCreator( const QString& ); + virtual ~SMESHGUI_GenericHypothesisCreator(); + + void create( const bool isAlgo, QWidget* ); + void edit( SMESH::SMESH_Hypothesis_ptr, QWidget* ); + void create( SMESH::SMESH_Hypothesis_ptr, QWidget* ); + virtual bool checkParams() const = 0; + + QString hypType() const; + bool isCreation() const; + +protected: + typedef struct + { + QString myName; + QVariant myValue; + + } StdParam; + + typedef QValueList ListOfStdParams; + typedef QPtrList ListOfWidgets; + + SMESH::SMESH_Hypothesis_var hypothesis() const; + SMESH::SMESH_Hypothesis_var initParamsHypothesis() const; + const ListOfWidgets& widgets() const; + ListOfWidgets& changeWidgets(); + + virtual QFrame* buildFrame () = 0; + QFrame* buildStdFrame (); + virtual void retrieveParams() const = 0; + virtual QString storeParams () const = 0; + virtual bool stdParams ( ListOfStdParams& ) const; + bool getStdParamFromDlg( ListOfStdParams& ) const; + static QString stdParamValues( const ListOfStdParams& ); + virtual void attuneStdWidget( QWidget*, const int ) const; + virtual QWidget* getCustomWidget( const StdParam &, QWidget* ) const; + virtual bool getParamFromCustomWidget( StdParam& , QWidget* ) const; + virtual QString caption() const; + virtual QPixmap icon() const; + virtual QString type() const; + +protected slots: + virtual void onValueChanged(); + +private: + bool editHypothesis( SMESH::SMESH_Hypothesis_ptr, QWidget* ); + +private: + SMESH::SMESH_Hypothesis_var myHypo, myInitParamsHypo; + QString myHypType; + ListOfWidgets myParamWidgets; + bool myIsCreate; }; -//================================================================================= -// class : HypothesisData -// purpose : -//================================================================================= +class SMESHGUI_HypothesisDlg : public QtxDialog +{ + Q_OBJECT + +public: + SMESHGUI_HypothesisDlg( SMESHGUI_GenericHypothesisCreator*, QWidget* ); + virtual ~SMESHGUI_HypothesisDlg(); + + void setHIcon( const QPixmap& ); + void setCustomFrame( QFrame* ); + void setType( const QString& ); + +protected slots: + virtual void accept(); + +private: + SMESHGUI_GenericHypothesisCreator* myCreator; + QVBoxLayout* myLayout; + QLabel *myIconLabel, *myTypeLabel; +}; + +/*! + * \brief Class containing information about hypothesis +*/ class HypothesisData { public: - HypothesisData (const QString& aPluginName, - const QString& aServerLibName, - const QString& aClientLibName, - const QString& aLabel, - const QString& anIconId) : - PluginName(aPluginName), - ServerLibName(aServerLibName), - ClientLibName(aClientLibName), - Label(aLabel), - IconId(anIconId) + HypothesisData( const QString& thePluginName, + const QString& theServerLibName, + const QString& theClientLibName, + const QString& theLabel, + const QString& theIconId, + const QValueList& theDim, + const bool theIsAux ) +: PluginName( thePluginName ), + ServerLibName( theServerLibName ), + ClientLibName( theClientLibName ), + Label( theLabel ), + IconId( theIconId ), + Dim( theDim ), + IsAux( theIsAux ) {}; - QString PluginName; - QString ServerLibName; - QString ClientLibName; - QString Label; - QString IconId; + QString PluginName; //!< plugin name + QString ServerLibName; //!< server library name + QString ClientLibName; //!< client library name + QString Label; //!< label + QString IconId; //!< icon identifier + QValueList Dim; //!< list of supported dimensions (see SMESH::Dimension enumeration) + bool IsAux; //!< TRUE if given hypothesis is auxiliary one, FALSE otherwise }; +/*! + * \brief Class containing set of hypotheses + * + * Actually it contains list of hypo types + */ +class HypothesesSet +{ + public: + HypothesesSet( const QString& theSetName ) + : HypoSetName( theSetName ) {}; + HypothesesSet( const QString& theSetName, + const QStringList& theHypoList, + const QStringList& theAlgoList ) + : HypoSetName( theSetName ), HypoList(theHypoList), AlgoList(theAlgoList) {}; + QString HypoSetName; + QStringList HypoList, AlgoList; +}; #endif