+// Copyright (C) 2014-20xx CEA/DEN, EDF R&D
+
// File: ModuleBase_WidgetEditor.h
// Created: 25 Apr 2014
// Author: Natalia ERMOLAEVA
*/
class MODULEBASE_EXPORT ModuleBase_WidgetEditor : public ModuleBase_WidgetDoubleValue
{
- Q_OBJECT
-public:
+Q_OBJECT
+ public:
/// Constructor
- /// \theParent the parent object
- /// \theParent the parent object
- /// \theData the widget configuation. The attribute of the model widget is obtained from
+ /// \param theParent the parent object
+ /// \param theData the widget configuation. The attribute of the model widget is obtained from
ModuleBase_WidgetEditor(QWidget* theParent, const Config_WidgetAPI* theData);
/// Constructor
- /// \theParent the parent object
- /// \theParent the parent object
- /// \theData the widget configuation. The attribute of the model widget is obtained from
+ /// \param theParent the parent object
+ /// \param theAttribute The attribute of the model widget
ModuleBase_WidgetEditor(QWidget* theParent, const std::string& theAttribute);
/// Destructor
virtual ~ModuleBase_WidgetEditor();
- /// Set focus to the first control of the current widget. The focus policy of the control is checked.
+ /// Set focus to the first control of the current widget.
+ /// The focus policy of the control is checked.
/// If the widget has the NonFocus focus policy, it is skipped.
- virtual void focusTo();
+ /// \return the state whether the widget can accept the focus
+ virtual bool focusTo();
+
+ /// Shous popup window under cursor for data editing
+ /// \param theSendSignals a flag whether the signals should be sent or the value
+ /// is to be applyed directly
+ /// \return true if the editor value is accepted
+ bool showPopupEditor(const bool theSendSignals = true);
- /// Creates an editor for the real value and set the new value to the feature
- /// \param theFeature the model feature
- /// \param theAttribute the feature attribute
- static void editFeatureValue(FeaturePtr theFeature, const std::string theAttribute);
+ /// Set current cursor position
+ /// \param theX the X coordinate
+ /// \param theY the Y coordinate
+ void setCursorPosition(const int theX, const int theY);
private:
- FeaturePtr myFeature; ///< the current widget feature
- QStringList myFeatureKinds; ///< the kinds of possible features
+ /// Show editor
+ /// \param theOutValue a result value
+ /// \param theOutText a result text
+ /// \return true if the editor value is accepted
+ bool editedValue(double& theOutValue, QString& theOutText);
+
+ private:
+ ///< the current widget feature
+ FeaturePtr myFeature;
+
+ ///< the kinds of possible features
+ QStringList myFeatureKinds;
+
+ int myXPosition, myYPosition;
};
#endif