Salome HOME
Update SketchPlugin_Projection feature (issue #1459)
[modules/shaper.git] / src / ModuleBase / ModuleBase_WidgetAction.h
1 // Copyright (C) 2014-20xx CEA/DEN, EDF R&D
2
3 // File:        ModuleBase_WidgetAction.h
4 // Created:     15 Apr 2016
5 // Author:      Natalia Ermolaeva
6
7 #ifndef ModuleBase_WidgetAction_H
8 #define ModuleBase_WidgetAction_H
9
10 #include "ModuleBase.h"
11 #include "ModuleBase_ModelWidget.h"
12
13 class Config_WidgetAPI;
14 class QWidget;
15 class QToolButton;
16
17 /**
18 * \ingroup GUI
19 * Implementation of widget for feature action (tool button)
20 */ 
21 class MODULEBASE_EXPORT ModuleBase_WidgetAction : public ModuleBase_ModelWidget
22 {
23 Q_OBJECT
24  public:
25   /// Constructor
26   /// \param theParent the parent object
27   /// \param theData the widget configuation. The attribute of the model widget is obtained from
28   ModuleBase_WidgetAction(QWidget* theParent, const Config_WidgetAPI* theData);
29
30   virtual ~ModuleBase_WidgetAction();
31
32   /// Returns list of widget controls
33   /// \return a control list
34   virtual QList<QWidget*> getControls() const;
35
36 protected:
37   /// Do nothing
38   /// \return True in success
39   virtual bool storeValueCustom();
40
41   /// Do nothing
42   virtual bool restoreValueCustom();
43
44 protected slots:
45   /// Listens the button click and call the customAction function of the current feature
46   void onActionClicked();
47
48 private:
49   QToolButton* myButton; ///< action button
50   std::string myActionID; ///< action index
51 };
52
53 #endif