X-Git-Url: http://git.salome-platform.org/gitweb/?a=blobdiff_plain;f=src%2FSMESHGUI%2FSMESHGUI_Hypotheses.h;h=6b88c0c3c0771eeb756a3411b6e16aac218833f5;hb=25db37c904d526979e171cc30528e49feea5af7c;hp=932226296c953d8706b0340d9d9c297b18f18db1;hpb=c3bf92bd87b770fd81631a3853f7f5bb1ac6a4e8;p=modules%2Fsmesh.git diff --git a/src/SMESHGUI/SMESHGUI_Hypotheses.h b/src/SMESHGUI/SMESHGUI_Hypotheses.h index 932226296..6b88c0c3c 100644 --- a/src/SMESHGUI/SMESHGUI_Hypotheses.h +++ b/src/SMESHGUI/SMESHGUI_Hypotheses.h @@ -1,74 +1,186 @@ -// SMESH SMESHGUI : GUI for SMESH component +// SMESH SMESHGUI : GUI for SMESH component // -// Copyright (C) 2003 CEA -// -// 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 or email : webmaster.salome@opencascade.org +// Copyright (C) 2003 CEA // +// 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. // -// File : SMESHGUI_Hypotheses.h -// Author : Julia DOROVSKIKH -// Module : SMESH -// $Header$ +// 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/ or email : webmaster.salome@opencascade.com +// +// File : SMESHGUI_Hypotheses.h +// Author : Julia DOROVSKIKH, Open CASCADE S.A.S. +// + +#ifndef SMESHGUI_HYPOTHESES_H +#define SMESHGUI_HYPOTHESES_H -#ifndef SMESHGUI_Hypotheses_HeaderFile -#define SMESHGUI_Hypotheses_HeaderFile +// SMESH includes +#include "SMESH_SMESHGUI.hxx" +// Qt includes +#include +#include + +// IDL includes +#include #include CORBA_SERVER_HEADER(SMESH_Hypothesis) -// QT Includes -#include -#include +class QEventLoop; -//================================================================================= -// class : SMESHGUI_GenericHypothesisCreator -// purpose : -//================================================================================= -class SMESHGUI_GenericHypothesisCreator +/*! + * \brief Auxiliary class for creation of hypotheses +*/ +class SMESHGUI_EXPORT 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( SMESH::SMESH_Hypothesis_ptr, + const QString&, QWidget* ); + void create( bool, const QString&, QWidget* ); + void edit( SMESH::SMESH_Hypothesis_ptr, + const QString&, QWidget* ); + + virtual bool checkParams() const = 0; + virtual void onReject(); + + QString hypType() const; + QString hypName() const; + bool isCreation() const; + +protected: + typedef struct + { + QString myName; + QVariant myValue; + + } StdParam; + + typedef QList ListOfStdParams; + typedef QList ListOfWidgets; + + SMESH::SMESH_Hypothesis_var hypothesis() const; + SMESH::SMESH_Hypothesis_var initParamsHypothesis() const; + const ListOfWidgets& widgets() const; + ListOfWidgets& changeWidgets(); + QtxDialog* dlg() const; + + 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 int ) 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 slots: + virtual void onDialogFinished( int ); + +private: + bool editHypothesis( SMESH::SMESH_Hypothesis_ptr, + const QString&, QWidget* ); + +private: + SMESH::SMESH_Hypothesis_var myHypo, myInitParamsHypo; + QString myHypName; + QString myHypType; + ListOfWidgets myParamWidgets; + bool myIsCreate; + QtxDialog* myDlg; + QEventLoop* myEventLoop; }; -//================================================================================= -// 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(); + virtual void reject(); + void onHelp(); + +private: + SMESHGUI_GenericHypothesisCreator* myCreator; + QLabel* myIconLabel; + QLabel* myTypeLabel; + QString myHelpFileName; +}; + +/*! + * \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) - {}; - - QString PluginName; - QString ServerLibName; - QString ClientLibName; - QString Label; - QString IconId; +public: + HypothesisData( const QString&, const QString&, const QString&, + const QString&, const QString&, const QString&, + const QList&, const bool, + const QStringList&, const QStringList&, + const QStringList&, const QStringList&, + const bool = true ); + + QString TypeName; //!< hypothesis type name + QString PluginName; //!< plugin name + QString ServerLibName; //!< server library name + QString ClientLibName; //!< client library name + QString Label; //!< label + QString IconId; //!< icon identifier + QList Dim; //!< list of supported dimensions (see SMESH::Dimension enumeration) + bool IsAux; //!< TRUE if given hypothesis is auxiliary one, FALSE otherwise + bool IsNeedGeometry; //!< TRUE if for given hypothesis need shape, FALSE otherwise + + // for algorithm only: dependencies algo <-> algo and algo -> hypos + QStringList NeededHypos; //!< list of obligatory hypotheses + QStringList OptionalHypos;//!< list of optional hypotheses + QStringList InputTypes; //!< list of element types required as a prerequisite + QStringList OutputTypes; //!< list of types of generated elements +}; + +/*! + * \brief Class containing set of hypotheses + * + * Actually it contains list of hypo types + */ +class HypothesesSet +{ +public: + HypothesesSet( const QString& ); + HypothesesSet( const QString&, const QStringList&, const QStringList& ); + + QString HypoSetName; + QStringList HypoList, AlgoList; }; -#endif +#endif // SMESHGUI_HYPOTHESES_H