Salome HOME
Sources formated according to the codeing standards
[modules/shaper.git] / src / XGUI / XGUI_PropertyPanel.h
index 92de955c1be82289da83263a317104d10e7afb08..7331bc53136ecdec2a184c985c090f6ec397408d 100644 (file)
@@ -8,28 +8,60 @@
 #ifndef XGUI_PROPERTYPANEL_H_
 #define XGUI_PROPERTYPANEL_H_
 
-#include <ModuleBase_IModelWidget.h>
+#include "XGUI.h"
+
+#include <ModuleBase_ModelWidget.h>
 
 #include <QDockWidget>
 #include <QList>
 
-class 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_IModelWidget*>& theWidgets);
+  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();
+ 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_IModelWidget*> myWidgets;
+  QList<ModuleBase_ModelWidget*> myWidgets;
+
+  QVBoxLayout* myMainLayout;
 };
 
 #endif /* XGUI_PROPERTYPANEL_H_ */