// 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
+// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com
//
//
//
#ifndef SMESHGUI_Hypotheses_HeaderFile
#define SMESHGUI_Hypotheses_HeaderFile
+#include "SMESH_SMESHGUI.hxx"
+
#include <SALOMEconfig.h>
#include CORBA_SERVER_HEADER(SMESH_Hypothesis)
/*!
* \brief Auxiliary class for creation of hypotheses
*/
-class SMESHGUI_GenericHypothesisCreator : public QObject
+class SMESHGUI_EXPORT SMESHGUI_GenericHypothesisCreator : public QObject
{
Q_OBJECT
public:
- SMESHGUI_GenericHypothesisCreator( const QString& );
+ SMESHGUI_GenericHypothesisCreator( const QString& theHypType );
virtual ~SMESHGUI_GenericHypothesisCreator();
- void create( const bool isAlgo, QWidget* );
- void edit( SMESH::SMESH_Hypothesis_ptr, QWidget* );
- void create( SMESH::SMESH_Hypothesis_ptr, QWidget* );
+ void create( SMESH::SMESH_Hypothesis_ptr, const QString&, QWidget*);
+ void create( bool isAlgo, const QString&, QWidget*);
+ void edit( SMESH::SMESH_Hypothesis_ptr, const QString&, QWidget*);
+
virtual bool checkParams() const = 0;
+ virtual void onReject();
- QString hypType() const;
- bool isCreation() const;
+ QString hypType() const;
+ QString hypName() const;
+ bool isCreation() const;
protected:
typedef struct
SMESH::SMESH_Hypothesis_var initParamsHypothesis() const;
const ListOfWidgets& widgets() const;
ListOfWidgets& changeWidgets();
+ QtxDialog* dlg() const { return myDlg; }
virtual QFrame* buildFrame () = 0;
QFrame* buildStdFrame ();
bool getStdParamFromDlg( ListOfStdParams& ) const;
static QString stdParamValues( const ListOfStdParams& );
virtual void attuneStdWidget( QWidget*, const int ) const;
- virtual QWidget* getCustomWidget( const StdParam &, QWidget* ) 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 void onValueChanged();
private:
- bool editHypothesis( SMESH::SMESH_Hypothesis_ptr, QWidget* );
+ 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;
};
class SMESHGUI_HypothesisDlg : public QtxDialog
SMESHGUI_HypothesisDlg( SMESHGUI_GenericHypothesisCreator*, QWidget* );
virtual ~SMESHGUI_HypothesisDlg();
- void setHIcon( const QPixmap& );
- void setCustomFrame( QFrame* );
- void setType( const QString& );
+ 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;
QVBoxLayout* myLayout;
- QLabel *myIconLabel, *myTypeLabel;
+ QLabel* myIconLabel;
+ QLabel* myTypeLabel;
+ QString myHelpFileName;
};
/*!
class HypothesisData
{
public:
- HypothesisData( const QString& thePluginName,
+ HypothesisData( const QString& theTypeName,
+ const QString& thePluginName,
const QString& theServerLibName,
const QString& theClientLibName,
const QString& theLabel,
const QString& theIconId,
const QValueList<int>& theDim,
- const bool theIsAux )
-: PluginName( thePluginName ),
- ServerLibName( theServerLibName ),
- ClientLibName( theClientLibName ),
- Label( theLabel ),
- IconId( theIconId ),
- Dim( theDim ),
- IsAux( theIsAux )
- {};
-
+ const bool theIsAux,
+ const QStringList& theNeededHypos,
+ const QStringList& theOptionalHypos,
+ const QStringList& theInputTypes,
+ const QStringList& theOutputTypes,
+ const bool theIsNeedGeometry = true)
+ : TypeName( theTypeName ),
+ PluginName( thePluginName ),
+ ServerLibName( theServerLibName ),
+ ClientLibName( theClientLibName ),
+ Label( theLabel ),
+ IconId( theIconId ),
+ Dim( theDim ),
+ IsAux( theIsAux ),
+ NeededHypos( theNeededHypos ), OptionalHypos( theOptionalHypos ),
+ InputTypes( theInputTypes ), OutputTypes( theOutputTypes ),
+ IsNeedGeometry( theIsNeedGeometry )
+ {};
+
+ QString TypeName; //!< hypothesis type name
QString PluginName; //!< plugin name
QString ServerLibName; //!< server library name
QString ClientLibName; //!< client library name
QString IconId; //!< icon identifier
QValueList<int> 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
};
/*!