]> SALOME platform Git repositories - modules/shaper.git/blob - src/ModuleBase/ModuleBase_IPropertyPanel.h
Salome HOME
Redesign of operations architecture
[modules/shaper.git] / src / ModuleBase / ModuleBase_IPropertyPanel.h
1 /*
2  * ModuleBase_IPropertyPanel.h
3  *
4  *  Created on: Oct 01, 2014
5  *      Author: vsv
6  */
7
8 #ifndef ModuleBase_PROPERTYPANEL_H_
9 #define ModuleBase_PROPERTYPANEL_H_
10
11 #include "ModuleBase.h"
12
13 #include <QDockWidget>
14 #include <QKeyEvent>
15
16 class ModuleBase_ModelWidget;
17
18 class MODULEBASE_EXPORT ModuleBase_IPropertyPanel : public QDockWidget
19 {
20 Q_OBJECT
21 public:
22   ModuleBase_IPropertyPanel(QWidget* theParent) : QDockWidget(theParent) {}
23
24   /// Returns currently active widget
25   virtual ModuleBase_ModelWidget* activeWidget() const = 0;
26
27   /// Returns all property panel's widget created by WidgetFactory
28   virtual const QList<ModuleBase_ModelWidget*>& modelWidgets() const = 0;
29
30 signals:
31   /// The signal about key release on the control, that corresponds to the attribute
32   /// \param theEvent key release event
33   void keyReleased(QKeyEvent* theEvent);
34
35   /// The signal about the widget activation
36   /// \param theWidget the activated widget
37   void widgetActivated(ModuleBase_ModelWidget* theWidget);
38
39   /// Emited when there is no next widget
40   void noMoreWidgets();
41
42 public slots:
43   /// Activate the next widget in the property panel
44   /// \param theWidget a widget. The next widget should be activated
45   virtual void activateNextWidget(ModuleBase_ModelWidget* theWidget) = 0;
46
47   /// Activate the next from current widget in the property panel
48   virtual void activateNextWidget() = 0;
49 };
50
51 #endif