~michael-sheldon/ubuntu-keyboard/fix-oxide-dismiss-test

« back to all changes in this revision

Viewing changes to src/plugin/inputmethod.h

  • Committer: Thomas Moenicke
  • Date: 2013-07-19 12:05:07 UTC
  • Revision ID: thomas.moenicke@canonical.com-20130719120507-lzw5oq50xm567x0j
initial commit

Show diffs side-by-side

added added

removed removed

Lines of Context:
 
1
/*
 
2
 * This file is part of Maliit Plugins
 
3
 *
 
4
 * Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). All rights reserved.
 
5
 *
 
6
 * Contact: Mohammad Anwari <Mohammad.Anwari@nokia.com>
 
7
 *
 
8
 * Redistribution and use in source and binary forms, with or without modification,
 
9
 * are permitted provided that the following conditions are met:
 
10
 *
 
11
 * Redistributions of source code must retain the above copyright notice, this list
 
12
 * of conditions and the following disclaimer.
 
13
 * Redistributions in binary form must reproduce the above copyright notice, this list
 
14
 * of conditions and the following disclaimer in the documentation and/or other materials
 
15
 * provided with the distribution.
 
16
 * Neither the name of Nokia Corporation nor the names of its contributors may be
 
17
 * used to endorse or promote products derived from this software without specific
 
18
 * prior written permission.
 
19
 *
 
20
 * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY
 
21
 * EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
 
22
 * MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL
 
23
 * THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
 
24
 * EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
 
25
 * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
 
26
 * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
 
27
 * OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
 
28
 * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
 
29
 *
 
30
 */
 
31
 
 
32
#ifndef MALIIT_KEYBOARD_INPUTMETHOD_H
 
33
#define MALIIT_KEYBOARD_INPUTMETHOD_H
 
34
 
 
35
#include <maliit/plugins/abstractinputmethod.h>
 
36
#include <maliit/plugins/abstractinputmethodhost.h>
 
37
#include <maliit/plugins/keyoverride.h>
 
38
#include <QtGui>
 
39
 
 
40
namespace MaliitKeyboard {
 
41
 
 
42
class InputMethodPrivate;
 
43
 
 
44
class InputMethod
 
45
    : public MAbstractInputMethod
 
46
{
 
47
    Q_OBJECT
 
48
    Q_DISABLE_COPY(InputMethod)
 
49
    Q_DECLARE_PRIVATE(InputMethod)
 
50
 
 
51
public:
 
52
    explicit InputMethod(MAbstractInputMethodHost *host);
 
53
    virtual ~InputMethod();
 
54
 
 
55
    //! \reimp
 
56
    virtual void show();
 
57
    Q_SLOT virtual void hide();
 
58
    virtual void setPreedit(const QString &preedit,
 
59
                            int cursor_position);
 
60
    virtual void switchContext(Maliit::SwitchDirection direction,
 
61
                               bool animated);
 
62
    virtual QList<MAbstractInputMethod::MInputMethodSubView>
 
63
    subViews(Maliit::HandlerState state = Maliit::OnScreen) const;
 
64
    virtual void setActiveSubView(const QString &id,
 
65
                                  Maliit::HandlerState state = Maliit::OnScreen);
 
66
    virtual QString activeSubView(Maliit::HandlerState state = Maliit::OnScreen) const;
 
67
    virtual void handleFocusChange(bool focusIn);
 
68
    virtual void handleAppOrientationChanged(int angle);
 
69
    virtual bool imExtensionEvent(MImExtensionEvent *event);
 
70
    virtual void setKeyOverrides(const QMap<QString, QSharedPointer<MKeyOverride> > &overrides);
 
71
    //! \reimp_end
 
72
 
 
73
    Q_SLOT void onLeftLayoutSelected();
 
74
    Q_SLOT void onRightLayoutSelected();
 
75
    Q_SLOT void deviceOrientationChanged(Qt::ScreenOrientation orientation);
 
76
 
 
77
    Q_SLOT void updateWordEngine();
 
78
 
 
79
    Q_PROPERTY(bool predictionEnabled READ predictionEnabled NOTIFY predictionEnabledChanged)
 
80
 
 
81
    bool predictionEnabled();
 
82
    void update();
 
83
 
 
84
Q_SIGNALS:
 
85
    void predictionEnabledChanged();
 
86
 
 
87
private:
 
88
    void registerStyleSetting(MAbstractInputMethodHost *host);
 
89
    void registerFeedbackSetting(MAbstractInputMethodHost *host);
 
90
    void registerAutoCorrectSetting(MAbstractInputMethodHost *host);
 
91
    void registerAutoCapsSetting(MAbstractInputMethodHost *host);
 
92
    void registerWordEngineSetting(MAbstractInputMethodHost *host);
 
93
    void registerHideWordRibbonInPortraitModeSetting(MAbstractInputMethodHost *host);
 
94
 
 
95
    Q_SLOT void onScreenSizeChange(const QSize &size);
 
96
    Q_SLOT void onStyleSettingChanged();
 
97
    Q_SLOT void onFeedbackSettingChanged();
 
98
    Q_SLOT void onAutoCorrectSettingChanged();
 
99
    Q_SLOT void onAutoCapsSettingChanged();
 
100
    Q_SLOT void onWordEngineSettingChanged();
 
101
    Q_SLOT void onHideWordRibbonInPortraitModeSettingChanged();
 
102
    Q_SLOT void updateKey(const QString &key_id,
 
103
                          const MKeyOverride::KeyOverrideAttributes changed_attributes);
 
104
    Q_SLOT void onKeyboardClosed();
 
105
 
 
106
    Q_SLOT void onLayoutWidthChanged(int width);
 
107
    Q_SLOT void onLayoutHeightChanged(int height);
 
108
#ifdef EXTENDED_SURFACE_TEMP_DISABLED
 
109
    Q_SLOT void onExtendedLayoutWidthChanged(int width);
 
110
    Q_SLOT void onExtendedLayoutHeightChanged(int height);
 
111
    Q_SLOT void onExtendedLayoutOriginChanged(const QPoint &origin);
 
112
    Q_SLOT void onMagnifierLayoutWidthChanged(int width);
 
113
    Q_SLOT void onMagnifierLayoutHeightChanged(int height);
 
114
    Q_SLOT void onMagnifierLayoutOriginChanged(const QPoint &origin);
 
115
#endif
 
116
 
 
117
    Q_SLOT void onHideAnimationFinished();
 
118
    Q_SIGNAL void wordEngineEnabledChanged(bool wordEngineEnabled);
 
119
 
 
120
    const QScopedPointer<InputMethodPrivate> d_ptr;
 
121
};
 
122
 
 
123
} // namespace MaliitKeyboard
 
124
 
 
125
#endif // MALIIT_KEYBOARD_INPUTMETHOD_H