Maliit Plugins
0.92.5
Main Page
Namespaces
Classes
Files
File List
File Members
All
Classes
Namespaces
Files
Functions
Variables
Typedefs
Enumerations
Enumerator
maliit-keyboard
lib
models
layout.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_LAYOUT_H
33
#define MALIIT_KEYBOARD_LAYOUT_H
34
35
#include "
key.h
"
36
#include "
keyarea.h
"
37
#include "
wordribbon.h
"
38
39
#include <QtCore>
40
41
namespace
MaliitKeyboard {
42
43
class
Layout
;
44
typedef
QSharedPointer<Layout>
SharedLayout
;
45
46
// TODO: Implement hit test on Layout, one to check whether key was hit, one to check whether word candidate was hit.
47
// Should return invalid key/wc, or found key/wc.
48
// Would be used by Glass.
49
class
Layout
50
{
51
public
:
52
enum
Orientation
{
53
Landscape
,
54
Portrait
55
};
56
57
enum
Alignment
{
58
Left
,
59
Top
,
60
Right
,
61
Bottom
62
};
63
64
enum
Panel
{
65
LeftPanel
,
66
RightPanel
,
67
CenterPanel
,
68
ExtendedPanel
,
69
NumPanels
70
};
71
72
Q_ENUMS(
Orientation
)
73
Q_ENUMS(
Panel
)
74
75
private:
76
QSize
m_screen_size
;
77
QPoint
m_origin
;
78
QPoint
m_extended_panel_offset
;
79
Orientation
m_orientation
;
80
Alignment
m_alignment
;
81
Panel
m_active_panel
;
82
KeyArea
m_left
;
83
KeyArea
m_right
;
84
KeyArea
m_center
;
85
KeyArea
m_extended
;
86
WordRibbon
m_ribbon
;
87
88
struct {
89
QVector<Key>
left
;
90
QVector<Key>
right
;
91
QVector<Key>
center
;
92
QVector<Key>
extended
;
93
}
m_active_keys
;
94
95
Key
m_magnifier_key
;
96
QPoint
m_magnifier_key_origin
;
97
98
public
:
99
explicit
Layout
();
100
101
QSize
screenSize
()
const
;
102
void
setScreenSize
(
const
QSize &size);
103
104
QPoint
extendedPanelOffset
()
const
;
105
void
setExtendedPanelOffset
(
const
QPoint &offset);
106
107
Orientation
orientation
()
const
;
108
void
setOrientation
(
Orientation
orientation
);
109
110
Alignment
alignment
()
const
;
111
void
setAlignment
(
Alignment
alignment
);
112
113
Panel
activePanel
()
const
;
114
void
setActivePanel
(
Panel
panel);
115
QRect
geometry
(
Panel
panel)
const
;
116
117
KeyArea
activeKeyArea
()
const
;
118
void
setActiveKeyArea
(
const
KeyArea
&active);
119
QRect
activeKeyAreaGeometry
()
const
;
120
121
KeyArea
leftPanel
()
const
;
122
void
setLeftPanel
(
const
KeyArea
&
left
);
123
QRect
leftPanelGeometry
()
const
;
124
125
KeyArea
rightPanel
()
const
;
126
void
setRightPanel
(
const
KeyArea
&
right
);
127
QRect
rightPanelGeometry
()
const
;
128
129
KeyArea
centerPanel
()
const
;
130
void
setCenterPanel
(
const
KeyArea
&
center
);
131
QRect
centerPanelGeometry
()
const
;
132
133
KeyArea
extendedPanel
()
const
;
134
void
setExtendedPanel
(
const
KeyArea
&
extended
);
135
QRect
extendedPanelGeometry
()
const
;
136
QPoint
extendedPanelOrigin
()
const
;
137
138
WordRibbon
wordRibbon
()
const
;
139
void
setWordRibbon
(
const
WordRibbon
&ribbon);
140
QRect
wordRibbonGeometry
()
const
;
141
142
QVector<Key>
activeKeys
()
const
;
143
void
clearActiveKeys
();
144
void
appendActiveKey
(
const
Key
&key);
145
void
removeActiveKey
(
const
Key
&key);
146
147
Key
magnifierKey
()
const
;
148
QPoint
magnifierKeyOrigin
()
const
;
149
void
setMagnifierKey
(
const
Key
&key);
150
void
clearMagnifierKey
();
151
152
private
:
153
// TODO: Move into .cpp file instead.
154
KeyArea
lookup
(
Panel
panel)
const
;
155
QPoint
origin
()
const
;
156
QPoint
panelOrigin
()
const
;
157
};
158
159
}
// namespace MaliitKeyboard
160
161
#endif // MALIIT_KEYBOARD_LAYOUT_H
Generated on Fri Nov 2 2012 06:52:52 for Maliit Plugins by
1.8.1.1