Salome HOME
Update the "Colors / Size" dialog.
[modules/smesh.git] / src / SMESHGUI / SMESHGUI_MeshInfo.h
index 0229a7f9206a0035a297c54dbe0bb48d0b645f3b..a63e205cfa26e2e4e26c82f4a7bb48b2f7bb7939 100644 (file)
 #include <QList>
 #include <QMap>
 #include <QSet>
+#include <QTreeWidget>
 #include <QVector>
 
 #include <SALOMEconfig.h>
 #include CORBA_SERVER_HEADER(SMESH_Mesh)
+#include CORBA_SERVER_HEADER(SMESH_Group)
 
 class QButtonGroup;
 class QLabel;
@@ -44,8 +46,6 @@ class QLineEdit;
 class QPushButton;
 class QTabWidget;
 class QTextBrowser;
-class QTreeWidget;
-class QTreeWidgetItem;
 class SMESH_Actor;
 class SMDS_MeshNode;
 class SMDS_MeshElement;
@@ -80,6 +80,7 @@ class SMESHGUI_EXPORT SMESHGUI_MeshInfo : public QFrame
     i3DHexahedrons,
     i3DPyramids,
     i3DPrisms,
+    i3DHexaPrisms,
     i3DPolyhedrons,
     i3DEnd,
     iElementsEnd   = i3DEnd
@@ -110,8 +111,12 @@ private:
   void     setFontAttributes( QWidget*, int, bool = true );
   void     setFieldsVisible( int, int, bool );
 
+private slots:
+  void loadMesh();
+
 private:
-  iwlist   myWidgets;
+  iwlist       myWidgets;
+  QPushButton* myLoadBtn;
 };
 
 class SMESHGUI_EXPORT SMESHGUI_ElemInfo : public QWidget
@@ -185,6 +190,8 @@ class SMESHGUI_EXPORT SMESHGUI_TreeElemInfo : public SMESHGUI_ElemInfo
 {
   class ItemDelegate;
 
+  enum { Bold = 0x01, All = 0x80 };
+
 public:
   SMESHGUI_TreeElemInfo( QWidget* = 0 );
 
@@ -193,12 +200,53 @@ protected:
   void             clearInternal();
 
 private:
-  QTreeWidgetItem* createItem( QTreeWidgetItem* = 0, int = 100 );
+  QTreeWidgetItem* createItem( QTreeWidgetItem* = 0, int = 0 );
   
 private:
   QTreeWidget*     myInfo;
 };
 
+class GrpComputor: public QObject
+{
+  Q_OBJECT;
+
+public:
+  GrpComputor( SMESH::SMESH_GroupBase_ptr, QTreeWidgetItem*, QObject* );
+  QTreeWidgetItem* getItem() { return myItem; }
+
+public slots:
+  void compute();
+
+private:
+  SMESH::SMESH_GroupBase_var myGroup;
+  QTreeWidgetItem*           myItem;
+};
+
+class SMESHGUI_EXPORT SMESHGUI_AddInfo : public QTreeWidget
+{
+  Q_OBJECT;
+
+  enum { Bold = 0x01, All = 0x80 };
+
+public:
+  SMESHGUI_AddInfo( QWidget* = 0 );
+  ~SMESHGUI_AddInfo();
+
+  void             showInfo( SMESH::SMESH_IDSource_ptr );
+  //  void             clear();
+private slots:
+  void             changeLoadToCompute();
+
+private:
+  QTreeWidgetItem* createItem( QTreeWidgetItem* = 0, int = 0 );
+  void             meshInfo( SMESH::SMESH_Mesh_ptr, QTreeWidgetItem* );
+  void             subMeshInfo( SMESH::SMESH_subMesh_ptr, QTreeWidgetItem* );
+  void             groupInfo( SMESH::SMESH_GroupBase_ptr, QTreeWidgetItem* );
+
+private:
+  QList<GrpComputor*> myComputors;
+};
+
 class SMESHGUI_EXPORT SMESHGUI_MeshInfoDlg : public QDialog
 { 
   Q_OBJECT;
@@ -209,7 +257,8 @@ public:
   //! Information type
   enum { 
     BaseInfo,  //!< base mesh information
-    ElemInfo   //!< mesh element information
+    ElemInfo,  //!< mesh element information
+    AddInfo    //!< additional information
   };
 
   SMESHGUI_MeshInfoDlg( QWidget* = 0, int = BaseInfo );
@@ -237,6 +286,7 @@ private:
   QButtonGroup*      myMode;
   QLineEdit*         myID;
   SMESHGUI_ElemInfo* myElemInfo;   
+  SMESHGUI_AddInfo*  myAddInfo;
   SMESH_Actor*       myActor;
 };