X-Git-Url: http://git.salome-platform.org/gitweb/?a=blobdiff_plain;f=src%2FXGUI%2FXGUI_InspectionPanel.h;h=3f980ea42071aecdc69ee4e293b909f51ef6fdae;hb=a77dbd7613ee788b69415a11c06542387f38371b;hp=27ea2a8b2910db0364639c571fedc110dee3dfbc;hpb=83df328d655f4fc01bedd7a4ebcfd410178e656f;p=modules%2Fshaper.git diff --git a/src/XGUI/XGUI_InspectionPanel.h b/src/XGUI/XGUI_InspectionPanel.h index 27ea2a8b2..3f980ea42 100644 --- a/src/XGUI/XGUI_InspectionPanel.h +++ b/src/XGUI/XGUI_InspectionPanel.h @@ -1,4 +1,4 @@ -// Copyright (C) 2014-2017 CEA/DEN, EDF R&D +// Copyright (C) 2014-2019 CEA/DEN, EDF R&D // // This library is free software; you can redistribute it and/or // modify it under the terms of the GNU Lesser General Public @@ -12,10 +12,9 @@ // // 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 +// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA // -// See http://www.salome-platform.org/ or -// email : webmaster.salome@opencascade.com +// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com // #ifndef XGUI_INSPECTIONPANEL_H_ @@ -25,19 +24,45 @@ #include +#include + class XGUI_SelectionMgr; class QLineEdit; class QTableWidget; class QLabel; class QTextBrowser; +class QVBoxLayout; +class QResizeEvent; + +class TopoDS_Shape; + +class GeomAPI_Vertex; +class GeomAPI_Edge; +class GeomAPI_Wire; +class GeomAPI_Face; +class GeomAPI_Shell; +class GeomAPI_Solid; +class GeomAPI_Shape; + +class GeomAPI_Pln; +class GeomAPI_Sphere; +class GeomAPI_Cylinder; +class GeomAPI_Cone; +class GeomAPI_Torus; +class GeomAPI_Box; /// Internal name of property panel widget const static char* INSPECTION_PANEL = "inspection_panel_dock"; +/** +* \ingroup GUI +* A class which represents an inspection panel: to show content of currently selected objects +*/ class XGUI_EXPORT XGUI_InspectionPanel : public QDockWidget { Q_OBJECT public: + /// Type of selected objects enum SudShape { ShapeId, CompoundId, @@ -55,41 +80,112 @@ public: /// \param theMgr operation manager XGUI_InspectionPanel(QWidget* theParent, XGUI_SelectionMgr* theMgr); + // Destructor virtual ~XGUI_InspectionPanel(); + +private slots: + /// A slot to react on selection changed + void onSelectionChanged(); + +private: + /// Set counts of a sub-shapes + /// \param theId an id of sub-shape type + /// \param theVal a number of sub-shapes of corresponded type void setSubShapeValue(SudShape theId, int theVal); + /// Set name of current selection + /// \param theName the name void setName(const QString& theName); - // Set of type parameters - void setCylinderType(double theX, double theY, double theZ, - double theDX, double theDY, double theDZ, double theRadius, double theHeight); + /// Set content of selected shape into table + /// \param theShape the shape + void setShapeContent(const TopoDS_Shape& theShape); - void setSphereType(double theX, double theY, double theZ, double theRadius); + /// Set parameters of the selected shape + /// \param theShape the shape + void setShapeParams(const TopoDS_Shape& theShape); - void setBoxType(double theX, double theY, double theZ, - double theXsize, double theYsize, double theZsize); + /// Clear content of the window + void clearContent(); - void setRotatedBoxType(double theX, double theY, double theZ, - double theZaxisX, double theZaxisY, double theZaxisZ, - double theXaxisX, double theXaxisY, double theXaxisZ, - double theXsize, double theYsize, double theZsize); + /// Show parameters of a vertex + /// \param theVertex the vertex + void fillVertex(const std::shared_ptr& theVertex); - void setPlaneType(double theX, double theY, double theZ, - double theDX, double theDY, double theDZ); + /// Show parameters of a edge + /// \param theEdge the edge + void fillEdge(const std::shared_ptr& theEdge); - void setVertexType(double theX, double theY, double theZ); + /// Show parameters of a wire + /// \param theWire the wire + void fillWire(const std::shared_ptr& theWire); -private slots: - void onSelectionChanged(); + /// Show parameters of a face + /// \param theFace the face + void fillFace(const std::shared_ptr& theFace); -private: - XGUI_SelectionMgr* mySelectionMgr; + /// Show parameters of a shell + /// \param theShell the shell + void fillShell(const std::shared_ptr& theShell); + + /// Show parameters of a solid + /// \param theSolid the solid + void fillSolid(const std::shared_ptr& theSolid); + + /// Show parameters of a compound + /// \param theShape the compound + void fillContainer(const std::shared_ptr& theShape); - QLineEdit* myNameEdt; - QTableWidget* mySubShapesTab; - QLabel* myTypeLbl; - QTextBrowser* myTypeParams; + /// Show parameters of a plane + /// \param theTitle a title of the object + /// \param thePlane the plane + void setPlaneType(const QString& theTitle, const std::shared_ptr& thePlane); + + /// Show parameters of a sphere + /// \param theTitle a title of the object + /// \param theSphere the sphere + void setSphereType(const QString& theTitle, const std::shared_ptr& theSphere); + + /// Show parameters of a cylinder + /// \param theTitle a title of the object + /// \param theCyl the cylinder + void setCylinderType(const QString& theTitle, const std::shared_ptr& theCyl); + + /// Show parameters of a cone + /// \param theTitle a title of the object + /// \param theCone the cone + void setConeType(const QString& theTitle, const std::shared_ptr& theCone); + + /// Show parameters of a torus + /// \param theTitle a title of the object + /// \param theTorus the torus + void setTorusType(const QString& theTitle, const std::shared_ptr& theTorus); + + /// Show parameters of a box + /// \param theTitle a title of the object + /// \param theBox the box + void setBoxType(const QString& theTitle, const std::shared_ptr& theBox); + + /// Show parameters of a rotated box + /// \param theTitle a title of the object + /// \param theBox the box + void setRotatedBoxType(const QString& theTitle, const std::shared_ptr& theBox); + + + /// Set text into parameters area + /// \param theText the text + void setParamsText(const QString& theText); + +private: + XGUI_SelectionMgr* mySelectionMgr; //> selection manager + + QLineEdit* myNameEdt; //> Name field + QTableWidget* mySubShapesTab; //> table of sub-shapes + QLabel* myTypeLbl; //> label of a type + QTextBrowser* myTypeParams; //> parameters area + QVBoxLayout* myMainLayout; //> main layout + //QWidget* myMainWidget; //> main widget }; #endif \ No newline at end of file