X-Git-Url: http://git.salome-platform.org/gitweb/?p=modules%2Fsmesh.git;a=blobdiff_plain;f=src%2FStdMeshersGUI%2FStdMeshersGUI_DistrTable.h;h=e5db44b56f39a2edce51612769debd1155d84fa1;hp=6f6ca829aad3fa4d860692b1acb186b0636237ef;hb=7eda9ca931ed2a11cb5e4637e4ffe19f5c061115;hpb=6b471bcc54cbeb90f0d977323db8c76d3d2cce09 diff --git a/src/StdMeshersGUI/StdMeshersGUI_DistrTable.h b/src/StdMeshersGUI/StdMeshersGUI_DistrTable.h index 6f6ca829a..e5db44b56 100644 --- a/src/StdMeshersGUI/StdMeshersGUI_DistrTable.h +++ b/src/StdMeshersGUI/StdMeshersGUI_DistrTable.h @@ -1,127 +1,84 @@ -// SMESH StdMeshersGUI +// Copyright (C) 2007-2016 CEA/DEN, EDF R&D, OPEN CASCADE // -// Copyright (C) 2003 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 -// 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.opencascade.org/SALOME/ or email : webmaster.salome@opencascade.org +// 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, 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. // -// File : StdMeshersGUI_DistrTable.h -// 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 : StdMeshersGUI_DistrTable.h +// Author : Open CASCADE S.A.S. +// +#ifndef STDMESHERSGUI_DISTRTABLE_H +#define STDMESHERSGUI_DISTRTABLE_H -#ifndef StdMesherGUI_DistrTable_Header -#define StdMesherGUI_DistrTable_Header +// SMESH includes +#include "SMESH_StdMeshersGUI.hxx" -#include +// Qt includes +#include +#include +#include +// IDL includes #include #include CORBA_SERVER_HEADER(SMESH_Mesh) -class QButton; -class QDoubleValidator; - -/*! - * \brief Values corresponding to buttons for table resize - */ -typedef enum { INSERT_ROW, REMOVE_ROW } TableButton; +class QPushButton; -/*! - * \brief This class represents custom table. It has only double values and - editor for every cell has validator - */ -class StdMeshersGUI_DistrTable : public QTable +class StdMeshersGUI_DistrTableFrame : public QWidget { Q_OBJECT - -public: - StdMeshersGUI_DistrTable( const int rows, QWidget* = 0, const char* = 0 ); - virtual ~StdMeshersGUI_DistrTable(); - -/*! - * \brief Hides current editor of cell - */ - void stopEditing( const bool accept ); - - virtual QSize sizeHint() const; - - static void sortData( SMESH::double_array& ); - - void data( SMESH::double_array& ); - void setData( const SMESH::double_array& ); - -protected: - virtual QWidget* createEditor( int, int, bool ) const; - virtual bool eventFilter( QObject*, QEvent* ); - virtual void keyPressEvent( QKeyEvent* ); - virtual void edit( const int, const int ); - -private slots: - void onEdit( TableButton, int ); -private: - QDoubleValidator *myArgV, *myFuncV; -}; + enum { ArgColumn, FuncColumn }; + class Table; + class SpinBoxDelegate; -/*! - * \brief This class represents frame for table and buttons - */ -class StdMeshersGUI_DistrTableFrame : public QFrame -{ - Q_OBJECT + typedef SMESH::double_array DataArray; public: - StdMeshersGUI_DistrTableFrame( QWidget* ); + typedef enum { InsertRowBtn, RemoveRowBtn } TableButton; + + StdMeshersGUI_DistrTableFrame( QWidget* = 0 ); ~StdMeshersGUI_DistrTableFrame(); - StdMeshersGUI_DistrTable* table() const; + void showButton( const TableButton, const bool ); + bool isButtonShown( const TableButton ) const; -/*! - * \brief Changes shown state of some button for table resize - */ - void setShown( const TableButton, const bool ); + void data( DataArray& ) const; + void setData( const DataArray& ); + + void setFuncMinValue( double ); -/*! - * \brief Returns shown state of some button for table resize - */ - bool isShown( const TableButton ) const; - private: - QButton* button( const TableButton ) const; + QPushButton* button( const TableButton ) const; private slots: - void onButtonClicked(); - + void onInsert(); + void onRemove(); + signals: -/*! - * \brief This signal is emitted if some of button for table resize is clicked - * Second parameter is current row. Take into account that - * this object resize table ( returned by table() ) automatically - */ - void toEdit( TableButton, int ); - void valueChanged( int, int ); + void valueChanged( int, int ); + void currentChanged( int, int ); private: - QButton *myInsertRow, *myRemoveRow; - StdMeshersGUI_DistrTable *myTable; + QMap myButtons; + Table* myTable; }; - -#endif - +#endif // STDMESHERSGUI_DISTRTABLE_H