qskinny/inputcontext/QskInputCompositionModel.h

55 lines
1.3 KiB
C
Raw Normal View History

2018-02-06 14:55:35 +01:00
/******************************************************************************
* QSkinny - Copyright (C) 2016 Uwe Rathmann
* This file may be used under the terms of the QSkinny License, Version 1.0
*****************************************************************************/
2017-07-21 18:21:34 +02:00
#ifndef QSK_INPUT_COMPOSITION_MODEL_H
#define QSK_INPUT_COMPOSITION_MODEL_H
#include <QObject>
#include <memory>
2018-03-14 17:30:39 +01:00
class QInputMethodEvent;
2018-04-04 15:19:51 +02:00
class QskInputContext;
2017-07-21 18:21:34 +02:00
class QskInputCompositionModel : public QObject
{
Q_OBJECT
public:
2018-04-04 15:19:51 +02:00
QskInputCompositionModel( QskInputContext* context );
2017-07-21 18:21:34 +02:00
virtual ~QskInputCompositionModel();
// to determine whether to show the suggestion bar:
virtual bool supportsSuggestions() const;
2017-07-21 18:21:34 +02:00
void commit( const QString& );
virtual void commitCandidate( int );
2017-07-21 18:21:34 +02:00
void composeKey( Qt::Key );
void clearPreedit();
virtual int candidateCount() const;
virtual QString candidate( int ) const;
2017-07-21 18:21:34 +02:00
protected:
// Used for text composition
virtual bool hasIntermediate() const;
virtual QString polishPreedit( const QString& preedit );
2018-04-04 15:19:51 +02:00
QskInputContext* context() const;
2017-07-21 18:21:34 +02:00
Q_SIGNALS:
void candidatesChanged();
private:
2018-03-14 17:30:39 +01:00
void sendCompositionEvent( QInputMethodEvent* e );
2018-04-04 15:19:51 +02:00
void sendKeyEvents( int key );
2017-07-21 18:21:34 +02:00
class PrivateData;
std::unique_ptr< PrivateData > m_data;
};
#endif