qskinny/inputcontext/QskInputContext.h

69 lines
1.9 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_CONTEXT_H
#define QSK_INPUT_CONTEXT_H
#include <qpa/qplatforminputcontext.h>
#include <memory>
class QskInputCompositionModel;
2018-04-03 20:15:20 +02:00
class QQuickItem;
2018-04-04 15:19:51 +02:00
class QInputMethodQueryEvent;
2017-07-21 18:21:34 +02:00
class QskInputContext : public QPlatformInputContext
{
Q_OBJECT
using Inherited = QPlatformInputContext;
public:
QskInputContext();
2018-04-01 12:47:44 +02:00
virtual ~QskInputContext();
virtual bool isValid() const override;
2018-04-04 12:05:01 +02:00
virtual bool hasCapability( Capability ) const override;
2018-04-01 12:47:44 +02:00
virtual void update( Qt::InputMethodQueries ) override;
virtual void invokeAction( QInputMethod::Action, int ) override;
2017-07-21 18:21:34 +02:00
2018-04-01 12:47:44 +02:00
virtual QRectF keyboardRect() const override;
virtual bool isAnimating() const override;
2017-07-21 18:21:34 +02:00
2018-04-01 12:47:44 +02:00
virtual void showInputPanel() override;
virtual void hideInputPanel() override;
virtual bool isInputPanelVisible() const override;
2018-04-04 12:05:01 +02:00
virtual void reset() override;
virtual void commit() override;
2018-04-01 12:47:44 +02:00
virtual void setFocusObject( QObject* ) override;
virtual QLocale locale() const override;
2018-04-04 12:05:01 +02:00
virtual Qt::LayoutDirection inputDirection() const override;
2018-04-02 17:01:04 +02:00
void setCompositionModel( const QLocale&, QskInputCompositionModel* );
2018-04-03 20:15:20 +02:00
Q_INVOKABLE QQuickItem* inputItem();
2018-04-04 12:05:01 +02:00
virtual bool filterEvent( const QEvent* ) override;
2018-04-04 15:19:51 +02:00
QInputMethodQueryEvent queryInputMethod( Qt::InputMethodQueries ) const;
void sendEventToInputItem( QEvent* ) const;
2017-07-21 18:21:34 +02:00
private Q_SLOTS:
void handleCandidatesChanged();
2018-04-04 20:19:47 +02:00
void setInputPanel( QQuickItem* );
2017-07-21 18:21:34 +02:00
private:
2018-04-04 15:19:51 +02:00
void setInputItem( QQuickItem* );
2018-04-01 12:47:44 +02:00
QskInputCompositionModel* compositionModel() const;
class PrivateData;
std::unique_ptr< PrivateData > m_data;
2017-07-21 18:21:34 +02:00
};
#endif