qskinny/src/controls/QskTextInput.h

120 lines
3.0 KiB
C
Raw Normal View History

2024-12-18 11:37:18 +00:00
/******************************************************************************
* QSkinny - Copyright (C) The authors
* SPDX-License-Identifier: BSD-3-Clause
*****************************************************************************/
#ifndef QSK_TEXT_INPUT_H
#define QSK_TEXT_INPUT_H
#include "QskAbstractTextInput.h"
2024-12-18 11:37:18 +00:00
#include "QskTextOptions.h"
class QValidator;
class QSK_EXPORT QskTextInput : public QskAbstractTextInput
2024-12-18 11:37:18 +00:00
{
Q_OBJECT
Q_PROPERTY( QString displayText READ displayText NOTIFY displayTextChanged )
Q_PROPERTY( int maximumLength READ maxLength
WRITE setMaxLength NOTIFY maximumLengthChanged )
Q_PROPERTY( QString inputMask READ inputMask
WRITE setInputMask NOTIFY inputMaskChanged )
Q_PROPERTY( bool acceptableInput READ hasAcceptableInput
NOTIFY acceptableInputChanged)
Q_PROPERTY( bool autoScroll READ autoScroll
WRITE setAutoScroll NOTIFY autoScrollChanged )
2024-12-18 11:37:18 +00:00
Q_PROPERTY( EchoMode echoMode READ echoMode
WRITE setEchoMode NOTIFY echoModeChanged )
Q_PROPERTY( QString passwordCharacter READ passwordCharacter
WRITE setPasswordCharacter RESET resetPasswordCharacter
NOTIFY passwordCharacterChanged )
Q_PROPERTY( int passwordMaskDelay READ passwordMaskDelay
WRITE setPasswordMaskDelay RESET resetPasswordMaskDelay
NOTIFY passwordMaskDelayChanged )
Q_PROPERTY( QValidator* validator READ validator
WRITE setValidator NOTIFY validatorChanged )
using Inherited = QskAbstractTextInput;
2024-12-18 11:37:18 +00:00
public:
QSK_SUBCONTROLS( Text, TextPanel )
QSK_STATES( Error )
2024-12-18 11:37:18 +00:00
enum EchoMode : quint8
{
Normal,
NoEcho,
Password,
PasswordEchoOnEdit
};
Q_ENUM( EchoMode )
QskTextInput( QQuickItem* parent = nullptr );
2024-12-18 11:37:18 +00:00
~QskTextInput() override;
int maxLength() const;
void setMaxLength( int );
QValidator* validator() const;
void setValidator( QValidator* );
QString inputMask() const;
void setInputMask( const QString& );
bool autoScroll() const;
void setAutoScroll( bool );
2024-12-18 11:37:18 +00:00
EchoMode echoMode() const;
void setEchoMode( EchoMode );
QString passwordCharacter() const;
void setPasswordCharacter( const QString& );
void resetPasswordCharacter();
int passwordMaskDelay() const;
void setPasswordMaskDelay( int );
void resetPasswordMaskDelay();
QString displayText() const;
bool hasAcceptableInput() const;
bool fixup();
void ensureVisible( int position );
Q_SIGNALS:
void maximumLengthChanged( int );
void autoScrollChanged( bool );
2024-12-18 11:37:18 +00:00
void echoModeChanged( EchoMode );
void passwordMaskDelayChanged();
void passwordCharacterChanged();
void validatorChanged( const QValidator* );
2024-12-18 11:37:18 +00:00
void inputMaskChanged( const QString& );
void acceptableInputChanged( bool );
void displayTextChanged();
2024-12-18 11:37:18 +00:00
protected:
QskAspect::Subcontrol substitutedSubcontrol(
QskAspect::Subcontrol ) const override;
2024-12-18 11:37:18 +00:00
private:
class PrivateData;
std::unique_ptr< PrivateData > m_data;
};
#endif