+// Copyright (C) 2014-20xx CEA/DEN, EDF R&D
+
// File: ModuleBase_WidgetEditor.h
// Created: 25 Apr 2014
// Author: Natalia ERMOLAEVA
#define ModuleBase_WidgetEditor_H
#include <ModuleBase.h>
-#include "ModuleBase_ModelWidget.h"
+#include "ModuleBase_WidgetDoubleValue.h"
#include <QObject>
#include <QStringList>
* \ingroup GUI
* \brief Custom widget. An abstract class to be redefined to fill with some GUI controls
*/
-class MODULEBASE_EXPORT ModuleBase_WidgetEditor : public ModuleBase_ModelWidget
+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
+ /// \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();
- /// Saves the internal parameters to the given feature
- /// \param theFeature a model feature to be changed
- virtual bool storeValue(FeaturePtr theFeature) const;
-
- virtual bool restoreValue(FeaturePtr theFeature);
-
/// 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();
- /// Returns the internal parent wiget control, that can be shown anywhere
- /// \returns the widget
- QWidget* getControl() const;
+ /// 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);
- /// Returns list of widget controls
- /// \return a control list
- virtual QList<QWidget*> getControls() const;
+ void setCursorPosition(const int theX, const int theY);
private:
- FeaturePtr myFeature; ///< the current widget feature
- QStringList myFeatureKinds; ///< the kinds of possible features
- double myValue;
+ /// 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