2
* This file is part of Maliit Plugins
4
* Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). All rights reserved.
6
* Contact: Mohammad Anwari <Mohammad.Anwari@nokia.com>
8
* Redistribution and use in source and binary forms, with or without modification,
9
* are permitted provided that the following conditions are met:
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.
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.
32
#ifndef MALIIT_KEYBOARD_LAYOUTUPDATER_H
33
#define MALIIT_KEYBOARD_LAYOUTUPDATER_H
35
#include "keyboardloader.h"
37
#include "models/key.h"
38
#include "models/wordcandidate.h"
39
#include "logic/layouthelper.h"
40
#include "logic/style.h"
44
namespace MaliitKeyboard {
47
class LayoutUpdaterPrivate;
53
Q_DISABLE_COPY(LayoutUpdater)
54
Q_DECLARE_PRIVATE(LayoutUpdater)
55
Q_PROPERTY(bool wordRibbonVisible READ isWordRibbonVisible
56
WRITE setWordRibbonVisible
57
NOTIFY wordRibbonVisibleChanged)
60
explicit LayoutUpdater(QObject *parent = 0);
61
virtual ~LayoutUpdater();
65
QStringList keyboardIds() const;
66
QString activeKeyboardId() const;
67
void setActiveKeyboardId(const QString &id);
68
QString keyboardTitle(const QString &id) const;
70
void setLayout(LayoutHelper *layout);
71
Q_SLOT void setOrientation(LayoutHelper::Orientation orientation);
73
void setStyle(const SharedStyle &style);
75
bool isWordRibbonVisible() const;
76
Q_SLOT void setWordRibbonVisible(bool visible);
77
Q_SIGNAL void wordRibbonVisibleChanged(bool visible);
79
Key modifyKey(const Key &key,
80
KeyDescription::State state) const;
82
// Key signal handlers:
83
Q_SLOT void onKeyPressed(const Key &key);
84
Q_SLOT void onKeyLongPressed(const Key &key);
85
Q_SLOT void onKeyReleased(const Key &key);
86
Q_SLOT void onKeyAreaPressed(Logic::LayoutHelper::Panel panel);
87
Q_SLOT void onKeyAreaReleased(Logic::LayoutHelper::Panel panel);
88
Q_SLOT void onKeyEntered(const Key &key);
89
Q_SLOT void onKeyExited(const Key &key);
90
Q_SLOT void clearActiveKeysAndMagnifier();
91
Q_SLOT void resetOnKeyboardClosed();
92
Q_SLOT void onWordCandidatesChanged(const WordCandidateList &candidates);
94
// ExtendedKeyArea signal handlers:
95
Q_SLOT void onExtendedKeysShown(const Key &main_key);
97
// WordCandidate signal handlers:
98
Q_SLOT void onWordCandidatePressed(const WordCandidate &candidate);
99
Q_SLOT void onWordCandidateReleased(const WordCandidate &candidate);
101
Q_SIGNAL void wordCandidateSelected(const QString &candidate);
102
Q_SIGNAL void userCandidateSelected(const QString &candidate);
104
Q_SIGNAL void addToUserDictionary();
106
Q_SIGNAL void keyboardTitleChanged(const QString &title);
107
Q_SIGNAL void languageChanged(const QString& languageId);
110
Q_SIGNAL void shiftPressed();
111
Q_SIGNAL void shiftReleased();
112
Q_SIGNAL void autoCapsActivated();
113
Q_SIGNAL void shiftCancelled();
115
Q_SLOT void syncLayoutToView();
116
Q_SLOT void onKeyboardsChanged();
118
Q_SIGNAL void symKeyReleased();
119
Q_SIGNAL void symSwitcherReleased();
121
Q_SLOT void switchToMainView();
122
Q_SLOT void switchToPrimarySymView();
123
Q_SLOT void switchToSecondarySymView();
125
Q_SIGNAL void deadkeyPressed();
126
Q_SIGNAL void deadkeyReleased();
127
Q_SIGNAL void deadkeyCancelled();
129
Q_SLOT void switchToAccentedView();
131
const QScopedPointer<LayoutUpdaterPrivate> d_ptr;
134
}} // namespace Logic, MaliitKeyboard
136
#endif // MALIIT_KEYBOARD_LAYOUTUPDATER_H