1 // File: ModuleBase_WidgetShapeSelector.h
2 // Created: 2 June 2014
3 // Author: Vitaly Smetannikov
5 #ifndef ModuleBase_WidgetShapeSelector_H
6 #define ModuleBase_WidgetShapeSelector_H
8 #include "ModuleBase.h"
9 #include "ModuleBase_ModelWidget.h"
11 #include <ModelAPI_Object.h>
13 #include <TopAbs_ShapeEnum.hxx>
15 #include <QStringList>
18 class Config_WidgetAPI;
23 class ModuleBase_IWorkshop;
25 class MODULEBASE_EXPORT ModuleBase_WidgetShapeSelector : public ModuleBase_ModelWidget
29 static TopAbs_ShapeEnum shapeType(const QString& theType);
31 ModuleBase_WidgetShapeSelector(QWidget* theParent, ModuleBase_IWorkshop* theWorkshop,
32 const Config_WidgetAPI* theData, const std::string& theParentId);
34 virtual ~ModuleBase_WidgetShapeSelector();
36 /// Saves the internal parameters to the given feature
37 /// \param theObject a model feature to be changed
38 virtual bool storeValue() const;
40 virtual bool restoreValue();
42 virtual bool focusTo();
44 /// Returns the internal parent wiget control, that can be shown anywhere
45 /// \returns the widget
46 QWidget* getControl() const
51 /// Returns list of widget controls
52 /// \return a control list
53 virtual QList<QWidget*> getControls() const;
55 ObjectPtr selectedFeature() const
57 return mySelectedObject;
60 /// Set the given wrapped value to the current widget
61 /// This value should be processed in the widget according to the needs
62 /// \param theValue the wrapped widget value
63 virtual bool setValue(ModuleBase_WidgetValue* theValue);
67 /// Activate or deactivate selection
68 void activateSelection(bool toActivate);
71 void onSelectionChanged();
74 bool eventFilter(QObject* theObj, QEvent* theEvent);
77 void updateSelectionName();
78 void raisePanel() const;
79 bool isAccepted(const ObjectPtr theObject) const;
81 // Set the given object as a value of the widget
82 void setObject(ObjectPtr theObj);
86 QLineEdit* myTextLine;
87 //QToolButton* myActivateBtn;
89 ModuleBase_IWorkshop* myWorkshop;
91 ObjectPtr mySelectedObject;
92 QStringList myShapeTypes;
95 QPalette myInactivePalet;