#include "PartSet.h"
#include "PartSet_Filters.h"
-#include "PartSet_SketcherMgr.h"
#include <ModuleBase_IModule.h>
#include <ModuleBase_Definitions.h>
#include <TopoDS_Shape.hxx>
#include <QMap>
+#include <QMenu>
#include <QObject>
#include <string>
class ModuleBase_Operation;
class ModuleBase_IViewWindow;
+class PartSet_MenuMgr;
+class PartSet_SketcherMgr;
+
+class QAction;
/**
* \ingroup Modules
virtual ~PartSet_Module();
/// Creates custom widgets for property panel
- virtual QWidget* createWidgetByType(const std::string& theType, QWidget* theParent,
- Config_WidgetAPI* theWidgetApi, std::string theParentId,
- QList<ModuleBase_ModelWidget*>& theModelWidgets);
+ virtual ModuleBase_ModelWidget* createWidgetByType(const std::string& theType, QWidget* theParent,
+ Config_WidgetAPI* theWidgetApi, std::string theParentId);
/// Call back forlast tuning of property panel before operation performance
virtual void propertyPanelDefined(ModuleBase_Operation* theOperation);
/// \param theOperation a stopped operation
virtual void operationStopped(ModuleBase_Operation* theOperation);
+ /// Realizes some functionality by an operation start
+ /// \param theOperation a started operation
+ virtual ModuleBase_Operation* currentOperation() const;
+
+ /// Returns True if there are available Undos and the sketch manager allows undo
+ /// \return the boolean result
+ virtual bool canUndo() const;
+
+ //! Returns True if there are available Redos and the sketch manager allows redo
+ /// \return the boolean result
+ virtual bool canRedo() const;
+
/// Returns whether the object can be displayed at the bounds of the active operation.
/// Display only current operation results for usual operation and ask the sketcher manager
/// if it is a sketch operation
/// \param theObject a model object
virtual bool canDisplayObject(const ObjectPtr& theObject) const;
+ /// Add menu atems for viewer into the given menu
+ /// \param theMenu a popup menu to be shown in the viewer
+ /// \param theStdActions a map of standard actions
+ /// \return true if items are added and there is no necessity to provide standard menu
+ virtual bool addViewerItems(QMenu* theMenu, const QMap<QString, QAction*>& theStdActions) const;
+
+ /// Returns whether the mouse enter the viewer's window
+ /// \return true if items are added and there is no necessity to provide standard menu
+ bool isMouseOverWindow();
+
+ PartSet_SketcherMgr* sketchMgr() const { return mySketchMgr; }
+
public slots:
/// SLOT, that is called by no more widget signal emitted by property panel
/// Set a specific flag to restart the sketcher operation
void onNoMoreWidgets();
+ /// Slolt called on object display
+ /// \param theObject a data object
+ /// \param theAIS a presentation object
+ virtual void onObjectDisplayed(ObjectPtr theObject, AISObjectPtr theAIS);
+
protected slots:
/// Called when previous operation is finished
virtual void onSelectionChanged();
/// It commits the operation of it is can be committed
void onOperationActivatedByPreselection();
-
protected:
/// Register validators for this module
virtual void registerValidators();
/// Processing of vertex selected
void onVertexSelected();
+ /// Called on transformation in current viewer
+ /// \param theTrsfType type of tranformation
+ void onViewTransformed(int theTrsfType = 2);
+
private:
/// Breaks sequense of automatically resterted operations
void breakOperationSequence();
+ //! Delete features
+ virtual bool deleteObjects();
+
private:
QString myLastOperationId;
FeaturePtr myLastFeature;
Handle(PartSet_GlobalFilter) myDocumentShapeFilter;
PartSet_SketcherMgr* mySketchMgr;
+
+ PartSet_MenuMgr* myMenuMgr;
+
+ int myVisualLayerId;
};
#endif