Maliit Plugins  0.92.5
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator
layoutupdater.h
Go to the documentation of this file.
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_LAYOUTUPDATER_H
33 #define MALIIT_KEYBOARD_LAYOUTUPDATER_H
34 
35 #include "keyboardloader.h"
36 
37 #include "models/key.h"
38 #include "models/wordcandidate.h"
39 #include "models/layout.h"
40 #include "logic/style.h"
41 
42 #include <QtCore>
43 
44 namespace MaliitKeyboard {
45 
46 class LayoutUpdaterPrivate;
47 
49  : public QObject
50 {
51  Q_OBJECT
52  Q_DISABLE_COPY(LayoutUpdater)
53  Q_DECLARE_PRIVATE(LayoutUpdater)
54 
55 public:
56  explicit LayoutUpdater(QObject *parent = 0);
57  virtual ~LayoutUpdater();
58 
59  void init();
60 
61  QStringList keyboardIds() const;
62  QString activeKeyboardId() const;
63  void setActiveKeyboardId(const QString &id);
64  QString keyboardTitle(const QString &id) const;
65 
66  void setLayout(const SharedLayout &layout);
67  Q_SLOT void setOrientation(Layout::Orientation orientation);
68 
69  void setStyle(const SharedStyle &style);
70 
71  // Key signal handlers:
72  Q_SLOT void onKeyPressed(const Key &key,
73  const SharedLayout &layout);
74  Q_SLOT void onKeyLongPressed(const Key &key,
75  const SharedLayout &layout);
76  Q_SLOT void onKeyReleased(const Key &key,
77  const SharedLayout &layout);
78  Q_SLOT void onKeyAreaPressed(Layout::Panel panel, const SharedLayout &layout);
79  Q_SLOT void onKeyAreaReleased(Layout::Panel panel, const SharedLayout &layout);
80  Q_SLOT void onKeyEntered(const Key &key,
81  const SharedLayout &layout);
82  Q_SLOT void onKeyExited(const Key &key,
83  const SharedLayout &layout);
84  Q_SLOT void clearActiveKeysAndMagnifier();
85  Q_SLOT void resetOnKeyboardClosed();
86  Q_SLOT void onCandidatesUpdated(const QStringList &candidates);
87 
88  // WordCandidate signal handlers:
89  Q_SLOT void onWordCandidatePressed(const WordCandidate &candidate,
90  const SharedLayout &layout);
91  Q_SLOT void onWordCandidateReleased(const WordCandidate &candidate,
92  const SharedLayout &layout);
93 
94  Q_SIGNAL void layoutChanged(const SharedLayout &layout);
95  Q_SIGNAL void keysChanged(const SharedLayout &layout);
96  Q_SIGNAL void wordCandidatesChanged(const SharedLayout &layout);
97  Q_SIGNAL void wordCandidateSelected(const QString &candidate);
98 
99 private:
100  Q_SIGNAL void shiftPressed();
101  Q_SIGNAL void shiftReleased();
102  Q_SIGNAL void autoCapsActivated();
103  Q_SIGNAL void shiftCancelled();
104 
105  Q_SLOT void syncLayoutToView();
106  Q_SLOT void onKeyboardsChanged();
107 
108  Q_SIGNAL void symKeyReleased();
109  Q_SIGNAL void symSwitcherReleased();
110 
111  Q_SLOT void switchToMainView();
112  Q_SLOT void switchToPrimarySymView();
113  Q_SLOT void switchToSecondarySymView();
114 
115  Q_SIGNAL void deadkeyPressed();
116  Q_SIGNAL void deadkeyReleased();
117  Q_SIGNAL void deadkeyCancelled();
118 
119  Q_SLOT void switchToAccentedView();
120 
121  Q_SLOT void applyProfile();
122 
123  const QScopedPointer<LayoutUpdaterPrivate> d_ptr;
124 };
125 
126 } // namespace MaliitKeyboard
127 
128 #endif // MALIIT_KEYBOARD_LAYOUTUPDATER_H