qskinny/src/controls/QskSpinBox.h

50 lines
1.4 KiB
C
Raw Normal View History

2023-02-17 12:01:56 +01:00
/******************************************************************************
2023-02-17 14:05:05 +01:00
* QSkinny - Copyright (C) 2016 Uwe Rathmann
* This file may be used under the terms of the QSkinny License, Version 1.0
2023-02-17 12:01:56 +01:00
*****************************************************************************/
2023-02-17 14:05:05 +01:00
#ifndef QSK_SPIN_BOX_H
#define QSK_SPIN_BOX_H
2023-02-17 12:01:56 +01:00
#include <QskBoundedInput.h>
class QSK_EXPORT QskSpinBox : public QskBoundedInput
{
2023-02-17 14:05:05 +01:00
Q_OBJECT
Q_PROPERTY(qreal value READ value NOTIFY valueChanged)
using Inherited = QskBoundedInput;
2023-02-17 12:01:56 +01:00
public:
2023-02-17 14:05:05 +01:00
QSK_SUBCONTROLS(Inc, Dec, IncText, DecText, TextPanel, Text, Layout)
QSK_STATES( Pressed )
2023-02-17 12:01:56 +01:00
2023-02-17 14:05:05 +01:00
explicit QskSpinBox( QQuickItem* parent = nullptr );
~QskSpinBox() override;
2023-02-17 12:01:56 +01:00
2023-02-17 14:05:05 +01:00
void increment( qreal offset ) override;
qreal value() const;
2023-02-17 12:01:56 +01:00
Q_SIGNALS:
2023-02-17 14:05:05 +01:00
void valueChanged( qreal );
void focusIndexChanged( int );
2023-02-17 12:01:56 +01:00
private:
2023-02-17 14:05:05 +01:00
void hoverEnterEvent( QHoverEvent* ) override;
void hoverLeaveEvent( QHoverEvent* ) override;
void hoverMoveEvent( QHoverEvent* ) override;
2023-02-17 12:01:56 +01:00
2023-02-17 14:05:05 +01:00
void mouseReleaseEvent( QMouseEvent* ) override;
void mousePressEvent( QMouseEvent* ) override;
2023-02-17 12:01:56 +01:00
2023-02-17 14:05:05 +01:00
void keyPressEvent( QKeyEvent* ) override;
void keyReleaseEvent( QKeyEvent* ) override;
2023-02-17 12:01:56 +01:00
2023-02-17 14:05:05 +01:00
void focusInEvent( QFocusEvent* ) override;
QRectF focusIndicatorRect() const override;
2023-02-17 12:01:56 +01:00
2023-02-17 14:05:05 +01:00
class PrivateData;
std::unique_ptr<PrivateData> m_data;
2023-02-17 12:01:56 +01:00
};
2023-02-17 14:05:05 +01:00
#endif