Salome HOME
Sources formated according to the codeing standards
[modules/shaper.git] / src / XGUI / XGUI_PropertyPanel.h
index 546ae19b780fe7e2c62d30b3d3f90bc6b5a9a3b0..7331bc53136ecdec2a184c985c090f6ec397408d 100644 (file)
 #include <QDockWidget>
 #include <QList>
 
-class XGUI_EXPORT XGUI_PropertyPanel: public QDockWidget
+class QKeyEvent;
+class QVBoxLayout;
+
+class XGUI_EXPORT XGUI_PropertyPanel : public QDockWidget
 {
-  Q_OBJECT
-public:
+Q_OBJECT
+ public:
   XGUI_PropertyPanel(QWidget* theParent);
   virtual ~XGUI_PropertyPanel();
 
   QWidget* contentWidget();
   void setModelWidgets(const QList<ModuleBase_ModelWidget*>& theWidgets);
+  const QList<ModuleBase_ModelWidget*>& modelWidgets() const;
+
+  void cleanContent();
+
+ protected:
+  virtual bool eventFilter(QObject *theObject, QEvent *theEvent);
 
-public slots:
-  void updateContentWidget(boost::shared_ptr<ModelAPI_Feature> theFeature);
+ public slots:
+  void updateContentWidget(FeaturePtr theFeature);
+  /// slot to activate the next widget in the property panel
+  /// \param theWidget a widget. The next widget should be activated
+  void onActivateNextWidget(ModuleBase_ModelWidget* theWidget);
+  // Enables / disables "ok" ("accept") button
+  void setAcceptEnabled(bool);
 
-private:
+signals:
+  /// The signal about key release on the control, that corresponds to the attribute
+  /// \param theAttributeName a name of the attribute
+  /// \param theEvent key release event
+  void keyReleased(const std::string& theAttributeName, QKeyEvent* theEvent);
+  /// The signal about the widget activation
+  /// \param theWidget the activated widget
+  void widgetActivated(ModuleBase_ModelWidget* theWidget);
+
+  /// Signal about the point 2d set to the feature
+  /// \param the feature
+  /// \param the attribute of the feature
+  void storedPoint2D(ObjectPtr theFeature, const std::string& theAttribute);
+
+ private:
   QWidget* myCustomWidget;
 
   QList<ModuleBase_ModelWidget*> myWidgets;
+
+  QVBoxLayout* myMainLayout;
 };
 
 #endif /* XGUI_PROPERTYPANEL_H_ */