1 // SMESH SMESHGUI : GUI for SMESH component
3 // Copyright (C) 2003 CEA
5 // This library is free software; you can redistribute it and/or
6 // modify it under the terms of the GNU Lesser General Public
7 // License as published by the Free Software Foundation; either
8 // version 2.1 of the License.
10 // This library is distributed in the hope that it will be useful,
11 // but WITHOUT ANY WARRANTY; without even the implied warranty of
12 // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
13 // Lesser General Public License for more details.
15 // You should have received a copy of the GNU Lesser General Public
16 // License along with this library; if not, write to the Free Software
17 // Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
19 // See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com
23 // File : SMESHGUI_Hypotheses.h
24 // Author : Julia DOROVSKIKH
28 #ifndef SMESHGUI_Hypotheses_HeaderFile
29 #define SMESHGUI_Hypotheses_HeaderFile
31 #include "SMESH_SMESHGUI.hxx"
33 #include <SALOMEconfig.h>
34 #include CORBA_SERVER_HEADER(SMESH_Hypothesis)
36 #include <QtxDialog.h>
43 * \brief Auxiliary class for creation of hypotheses
45 class SMESHGUI_EXPORT SMESHGUI_GenericHypothesisCreator : public QObject
50 SMESHGUI_GenericHypothesisCreator( const QString& theHypType );
51 virtual ~SMESHGUI_GenericHypothesisCreator();
53 void create( SMESH::SMESH_Hypothesis_ptr, const QString&, QWidget*);
54 void create( bool isAlgo, const QString&, QWidget*);
55 void edit( SMESH::SMESH_Hypothesis_ptr, const QString&, QWidget*);
57 virtual bool checkParams() const = 0;
58 virtual void onReject();
60 QString hypType() const;
61 QString hypName() const;
62 bool isCreation() const;
72 typedef QValueList<StdParam> ListOfStdParams;
73 typedef QPtrList<QWidget> ListOfWidgets;
75 SMESH::SMESH_Hypothesis_var hypothesis() const;
76 SMESH::SMESH_Hypothesis_var initParamsHypothesis() const;
77 const ListOfWidgets& widgets() const;
78 ListOfWidgets& changeWidgets();
79 QtxDialog* dlg() const { return myDlg; }
81 virtual QFrame* buildFrame () = 0;
82 QFrame* buildStdFrame ();
83 virtual void retrieveParams() const = 0;
84 virtual QString storeParams () const = 0;
85 virtual bool stdParams ( ListOfStdParams& ) const;
86 bool getStdParamFromDlg( ListOfStdParams& ) const;
87 static QString stdParamValues( const ListOfStdParams& );
88 virtual void attuneStdWidget( QWidget*, const int ) const;
89 virtual QWidget* getCustomWidget( const StdParam &, QWidget*, const int ) const;
90 virtual bool getParamFromCustomWidget( StdParam& , QWidget* ) const;
91 virtual QString caption() const;
92 virtual QPixmap icon() const;
93 virtual QString type() const;
96 virtual void onValueChanged();
99 bool editHypothesis( SMESH::SMESH_Hypothesis_ptr, const QString&, QWidget* );
102 SMESH::SMESH_Hypothesis_var myHypo, myInitParamsHypo;
105 ListOfWidgets myParamWidgets;
110 class SMESHGUI_HypothesisDlg : public QtxDialog
115 SMESHGUI_HypothesisDlg( SMESHGUI_GenericHypothesisCreator*, QWidget* );
116 virtual ~SMESHGUI_HypothesisDlg();
118 void setHIcon( const QPixmap& );
119 void setCustomFrame( QFrame* );
120 void setType( const QString& );
123 virtual void accept();
124 virtual void reject();
128 SMESHGUI_GenericHypothesisCreator* myCreator;
129 QVBoxLayout* myLayout;
132 QString myHelpFileName;
136 * \brief Class containing information about hypothesis
141 HypothesisData( const QString& theTypeName,
142 const QString& thePluginName,
143 const QString& theServerLibName,
144 const QString& theClientLibName,
145 const QString& theLabel,
146 const QString& theIconId,
147 const QValueList<int>& theDim,
149 const QStringList& theNeededHypos,
150 const QStringList& theOptionalHypos,
151 const QStringList& theInputTypes,
152 const QStringList& theOutputTypes,
153 const bool theIsNeedGeometry = true)
154 : TypeName( theTypeName ),
155 PluginName( thePluginName ),
156 ServerLibName( theServerLibName ),
157 ClientLibName( theClientLibName ),
162 NeededHypos( theNeededHypos ), OptionalHypos( theOptionalHypos ),
163 InputTypes( theInputTypes ), OutputTypes( theOutputTypes ),
164 IsNeedGeometry( theIsNeedGeometry )
167 QString TypeName; //!< hypothesis type name
168 QString PluginName; //!< plugin name
169 QString ServerLibName; //!< server library name
170 QString ClientLibName; //!< client library name
171 QString Label; //!< label
172 QString IconId; //!< icon identifier
173 QValueList<int> Dim; //!< list of supported dimensions (see SMESH::Dimension enumeration)
174 bool IsAux; //!< TRUE if given hypothesis is auxiliary one, FALSE otherwise
175 bool IsNeedGeometry; //!< TRUE if for given hypothesis need shape, FALSE otherwise
177 // for algorithm only: dependencies algo <-> algo and algo -> hypos
178 QStringList NeededHypos; //!< list of obligatory hypotheses
179 QStringList OptionalHypos;//!< list of optional hypotheses
180 QStringList InputTypes; //!< list of element types required as a prerequisite
181 QStringList OutputTypes; //!< list of types of generated elements
185 * \brief Class containing set of hypotheses
187 * Actually it contains list of hypo types
192 HypothesesSet( const QString& theSetName )
193 : HypoSetName( theSetName ) {};
194 HypothesesSet( const QString& theSetName,
195 const QStringList& theHypoList,
196 const QStringList& theAlgoList )
197 : HypoSetName( theSetName ), HypoList(theHypoList), AlgoList(theAlgoList) {};
199 QStringList HypoList, AlgoList;