/* * Copyright (c) Contributors to the Open 3D Engine Project. * For complete copyright and license terms please see the LICENSE at the root of this distribution. * * SPDX-License-Identifier: Apache-2.0 OR MIT * */ #ifndef CRYINCLUDE_EDITOR_CONTROLS_NUMBERCTRL_H #define CRYINCLUDE_EDITOR_CONTROLS_NUMBERCTRL_H #pragma once // NumberCtrl.h : header file // #if !defined(Q_MOC_RUN) #include #endif class QNumberCtrl : public QDoubleSpinBox { Q_OBJECT public: QNumberCtrl(QWidget* parent = nullptr); bool IsDragging() const { return m_bDragged; } //! If called will enable undo with given text when control is modified. void EnableUndo(const QString& undoText); void SetRange(double newMin, double maxRange); Q_SIGNALS: void dragStarted(); void dragFinished(); void valueUpdated(); void valueChanged(); void mouseReleased(); void mousePressed(); protected: void changeEvent(QEvent* event) override; void focusInEvent(QFocusEvent* event) override; void mousePressEvent(QMouseEvent* event) override; void mouseMoveEvent(QMouseEvent* event) override; void mouseReleaseEvent(QMouseEvent* event) override; private: void onEditingFinished(); void onValueChanged(double d); bool m_bMouseDown; bool m_bDragged; QPoint m_mousePos; bool m_bUndoEnabled; double m_prevValue; QString m_undoText; }; #endif // CRYINCLUDE_EDITOR_CONTROLS_NUMBERCTRL_H