/// Returns the feature preview shape
/// \param theFeature the feature object to obtain the preview
- boost::shared_ptr<GeomAPI_Shape> preview(boost::shared_ptr<ModelAPI_Feature> theFeature) const;
+ static boost::shared_ptr<GeomAPI_Shape> preview(FeaturePtr theFeature);
/// Returns the map of the operation previews including the nested feature previews
/// \return the map of feature to the feature preview
- virtual std::map<boost::shared_ptr<ModelAPI_Feature>, boost::shared_ptr<GeomAPI_Shape> > subPreview() const;
+ virtual std::map<FeaturePtr, boost::shared_ptr<GeomAPI_Shape> > subPreview() const;
/// Returns the operation local selection mode
/// \param theFeature the feature object to get the selection mode
/// \return the selection mode
- virtual std::list<int> getSelectionModes(boost::shared_ptr<ModelAPI_Feature> theFeature) const = 0;
+ virtual std::list<int> getSelectionModes(FeaturePtr theFeature) const;
/// Initializes some fields accorging to the feature
/// \param theSelected the list of selected presentations
/// \param theHighlighted the list of highlighted presentations
- virtual void init(boost::shared_ptr<ModelAPI_Feature> theFeature,
+ virtual void init(FeaturePtr theFeature,
const std::list<XGUI_ViewerPrs>& theSelected,
const std::list<XGUI_ViewerPrs>& theHighlighted) {}
/// Returns the operation sketch feature
/// \returns the sketch instance
- virtual boost::shared_ptr<ModelAPI_Feature> sketch() const = 0;
+ virtual FeaturePtr sketch() const = 0;
/// Processes the mouse pressed in the point
/// \param theEvent the mouse event
/// \param theKey a key value
virtual void keyReleased(const int theKey);
+ virtual void keyReleased(std::string theName, QKeyEvent* theEvent);
+
+ /// Emits a signal about the operation start. This signal has an information about the feature.
+ /// If the provided feature is empty, the current operation feature is used.
+ /// \param theType a type of an operation started
+ /// theFeature the operation argument
+ void restartOperation(const std::string& theType,
+ FeaturePtr theFeature = FeaturePtr());
+
signals:
+ /// signal about the request to launch operation
+ /// theName the operation name
+ /// theFeature the operation argument
+ void launchOperation(std::string theName, FeaturePtr theFeature);
+ /// signal about the focus activated
+ /// theName the attribute name
+ void focusActivated(const std::string& theAttibuteName);
+
/// Signal about the feature construing is finished
/// \param theFeature the result feature
/// \param theMode the mode of the feature modification
- void featureConstructed(boost::shared_ptr<ModelAPI_Feature> theFeature,
+ void featureConstructed(FeaturePtr theFeature,
int theMode);
/// Signal about the features should be selected
/// \param theSelected the list of selected presentations
void featureSelected(const std::list<XGUI_ViewerPrs>& theSelected);
- /// signal about the request to launch operation
- /// theName the operation name
- /// theFeature the operation argument
- void launchOperation(std::string theName, boost::shared_ptr<ModelAPI_Feature> theFeature);
/// signal to enable/disable multi selection in the viewer
/// \param theEnabled the boolean state
void multiSelectionEnabled(bool theEnabled);
/// Creates an operation new feature
/// In addition to the default realization it appends the created line feature to
/// the sketch feature
+ /// \param theFlushMessage the flag whether the create message should be flushed
/// \returns the created feature
- virtual boost::shared_ptr<ModelAPI_Feature> createFeature();
+ virtual FeaturePtr createFeature(const bool theFlushMessage = true);
};
#endif