2018-02-06 13:55:35 +00: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 16:21:34 +00:00
|
|
|
#ifndef QSK_INPUT_CONTEXT_H
|
|
|
|
#define QSK_INPUT_CONTEXT_H
|
|
|
|
|
2018-04-26 12:42:33 +00:00
|
|
|
#include "QskGlobal.h"
|
2017-07-21 16:21:34 +00:00
|
|
|
#include <qpa/qplatforminputcontext.h>
|
|
|
|
#include <memory>
|
|
|
|
|
2018-04-26 12:42:33 +00:00
|
|
|
class QskTextPredictor;
|
2018-04-27 11:48:51 +00:00
|
|
|
class QskInputPanel;
|
2018-04-30 08:03:51 +00:00
|
|
|
class QskPopup;
|
|
|
|
class QskWindow;
|
2018-04-03 18:15:20 +00:00
|
|
|
class QQuickItem;
|
2018-04-20 06:52:26 +00:00
|
|
|
|
2018-04-26 12:42:33 +00:00
|
|
|
class QSK_EXPORT QskInputContext : public QPlatformInputContext
|
2017-07-21 16:21:34 +00:00
|
|
|
{
|
|
|
|
Q_OBJECT
|
|
|
|
|
|
|
|
using Inherited = QPlatformInputContext;
|
|
|
|
|
|
|
|
public:
|
|
|
|
QskInputContext();
|
2018-04-01 10:47:44 +00:00
|
|
|
virtual ~QskInputContext();
|
|
|
|
|
|
|
|
virtual bool isValid() const override;
|
2018-04-04 10:05:01 +00:00
|
|
|
virtual bool hasCapability( Capability ) const override;
|
2018-04-01 10:47:44 +00:00
|
|
|
|
|
|
|
virtual void update( Qt::InputMethodQueries ) override;
|
|
|
|
virtual void invokeAction( QInputMethod::Action, int ) override;
|
2017-07-21 16:21:34 +00:00
|
|
|
|
2018-04-01 10:47:44 +00:00
|
|
|
virtual QRectF keyboardRect() const override;
|
|
|
|
virtual bool isAnimating() const override;
|
2017-07-21 16:21:34 +00:00
|
|
|
|
2018-04-01 10:47:44 +00:00
|
|
|
virtual void showInputPanel() override;
|
|
|
|
virtual void hideInputPanel() override;
|
|
|
|
virtual bool isInputPanelVisible() const override;
|
|
|
|
|
2018-04-04 10:05:01 +00:00
|
|
|
virtual void reset() override;
|
|
|
|
virtual void commit() override;
|
|
|
|
|
2018-04-01 10:47:44 +00:00
|
|
|
virtual void setFocusObject( QObject* ) override;
|
|
|
|
|
|
|
|
virtual QLocale locale() const override;
|
2018-04-04 10:05:01 +00:00
|
|
|
virtual Qt::LayoutDirection inputDirection() const override;
|
2018-03-30 08:15:05 +00:00
|
|
|
|
2018-04-26 12:42:33 +00:00
|
|
|
void registerPredictor( const QLocale&, QskTextPredictor* );
|
|
|
|
QskTextPredictor* registeredPredictor( const QLocale& );
|
2018-04-02 15:01:04 +00:00
|
|
|
|
2018-04-03 18:15:20 +00:00
|
|
|
Q_INVOKABLE QQuickItem* inputItem();
|
|
|
|
|
2018-04-04 10:05:01 +00:00
|
|
|
virtual bool filterEvent( const QEvent* ) override;
|
|
|
|
|
2018-04-27 11:48:51 +00:00
|
|
|
static void setInputPanel( QskInputPanel* );
|
|
|
|
static QskInputPanel* inputPanel();
|
2017-07-21 16:21:34 +00:00
|
|
|
|
2018-04-27 11:48:51 +00:00
|
|
|
protected:
|
2018-04-11 06:58:14 +00:00
|
|
|
virtual bool eventFilter( QObject*, QEvent* ) override;
|
|
|
|
|
2018-04-30 08:03:51 +00:00
|
|
|
virtual QskPopup* createEmbeddingPopup( QskInputPanel* );
|
|
|
|
virtual QskWindow* createEmbeddingWindow( QskInputPanel* );
|
|
|
|
|
2017-07-21 16:21:34 +00:00
|
|
|
private:
|
2018-04-01 10:47:44 +00:00
|
|
|
class PrivateData;
|
|
|
|
std::unique_ptr< PrivateData > m_data;
|
2017-07-21 16:21:34 +00:00
|
|
|
};
|
|
|
|
|
2018-04-27 11:48:51 +00:00
|
|
|
|
2018-03-30 16:31:13 +00:00
|
|
|
#endif
|