Avoid execessive Pushback when Dali::Vector<char> used as file buffer container
[platform/core/uifw/dali-adaptor.git] / dali / public-api / adaptor-framework / input-method.h
1 #ifndef DALI_INPUT_MEHTOD_H
2 #define DALI_INPUT_MEHTOD_H
3
4 /*
5  * Copyright (c) 2020 Samsung Electronics Co., Ltd.
6  *
7  * Licensed under the Apache License, Version 2.0 (the "License");
8  * you may not use this file except in compliance with the License.
9  * You may obtain a copy of the License at
10  *
11  * http://www.apache.org/licenses/LICENSE-2.0
12  *
13  * Unless required by applicable law or agreed to in writing, software
14  * distributed under the License is distributed on an "AS IS" BASIS,
15  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
16  * See the License for the specific language governing permissions and
17  * limitations under the License.
18  *
19  */
20
21 // INTERNAL INCLUDES
22 #include <dali/public-api/dali-adaptor-common.h>
23
24 namespace Dali
25 {
26 /**
27  * @addtogroup dali_adaptor_framework
28  * @{
29  */
30
31 /**
32  * @brief Enumeration for input method.
33  * @SINCE_1_0.0
34  */
35 namespace InputMethod
36 {
37 /**
38  * @brief Enumeration for settings that can be changed in the system Input Method.
39  *
40  * Key types of map to change virtual keyboard settings in INPUT_METHOD_SETTINGS property.
41  * @SINCE_1_3.20
42  */
43 namespace Category
44 {
45 /**
46 * @brief Enumeration for Category type.
47 *
48 * @SINCE_1_3.20
49 */
50 enum Type
51 {
52   PANEL_LAYOUT,    ///< Set Keyboard layout @SINCE_1_3.20
53   BUTTON_ACTION,   ///< Set Button Action @SINCE_1_3.20
54   AUTO_CAPITALIZE, ///< Set Auto capitalize of input @SINCE_1_3.20
55   VARIATION        ///< Set variation @SINCE_1_3.20
56 };
57
58 } // namespace Category
59
60 ///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
61 /////////////////////////// The enumerations below is to set each type of Category. ///////////////////////////////////
62 ///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
63
64 /**
65  * @brief Sets Input panel (virtual keyboard) layout types.
66  *
67  * @SINCE_1_3.20
68  */
69 namespace PanelLayout
70 {
71 /**
72 * @brief Enumeration for PanelLayout type.
73 *
74 * @SINCE_1_3.20
75 */
76 enum Type
77 {
78   NORMAL,      ///< Default layout @SINCE_1_3.20
79   NUMBER,      ///< Number layout @SINCE_1_3.20
80   EMAIL,       ///< Email layout @SINCE_1_3.20
81   URL,         ///< URL layout @SINCE_1_3.20
82   PHONENUMBER, ///< Phone Number layout @SINCE_1_3.20
83   IP,          ///< IP layout @SINCE_1_3.20
84   MONTH,       ///< Month layout @SINCE_1_3.20
85   NUMBER_ONLY, ///< Number Only layout @SINCE_1_3.20
86   HEX,         ///< Hexadecimal layout @SINCE_1_3.20
87   TERMINAL,    ///< Command-line terminal layout including ESC, Alt, Ctrl key, so on (no auto-correct, no auto-capitalization) @SINCE_1_3.20
88   PASSWORD,    ///< Like normal, but no auto-correct, no auto-capitalization etc @SINCE_1_3.20
89   DATE_TIME,   ///< Date and time layout @SINCE_1_3.20
90   EMOTICON     ///< Emoticon layout @SINCE_1_3.20
91 };
92
93 } // namespace PanelLayout
94
95 /**
96  * @brief Enumeration for specifying what the Input Method "action" button functionality is set to.
97  *
98  * The 'Action' button is traditionally the [RETURN] or [DONE] button.
99  * Not all these actions are supported by all systems.
100  * Setting a custom label will still require one of these actions to be set.
101  * @SINCE_1_3.20
102  */
103 namespace ButtonAction
104 {
105 /**
106 * @brief Enumeration for ButtonAction type.
107 *
108 * @SINCE_1_3.20
109 */
110 enum Type
111 {
112   DEFAULT,     ///< Default action @SINCE_1_3.20
113   DONE,        ///< Done @SINCE_1_3.20
114   GO,          ///< Go action @SINCE_1_3.20
115   JOIN,        ///< Join action @SINCE_1_3.20
116   LOGIN,       ///< Login action @SINCE_1_3.20
117   NEXT,        ///< Next action @SINCE_1_3.20
118   PREVIOUS,    ///< Previous action @SINCE_1_3.20
119   SEARCH,      ///< Search action @SINCE_1_3.20
120   SEND,        ///< Send action @SINCE_1_3.20
121   SIGNIN,      ///< Sign in action @SINCE_1_3.20
122   UNSPECIFIED, ///< Unspecified action @SINCE_1_3.20
123   NONE         ///< Nothing to do @SINCE_1_3.20
124 };
125
126 } // namespace ButtonAction
127
128 /**
129  * @brief Sets Autocapitalization Types.
130  *
131  * @SINCE_1_3.20
132  */
133 namespace AutoCapital
134 {
135 /**
136 * @brief Enumeration for AutoCapital type.
137 *
138 * @SINCE_1_3.20
139 */
140 enum Type
141 {
142   NONE,         ///< No auto-capitalization when typing @SINCE_1_3.20
143   WORD,         ///< Autocapitalize each word typed @SINCE_1_3.20
144   SENTENCE,     ///< Autocapitalize the start of each sentence @SINCE_1_3.20
145   ALL_CHARACTER ///< Autocapitalize all letters @SINCE_1_3.20
146 };
147
148 } // namespace AutoCapital
149
150 /////////////////////////// VARIATION based on PANEL_LAYOUT //////////////////////////////////
151
152 /**
153  * @brief Available variation for Normal layout.
154  *
155  * @SINCE_1_3.20
156  */
157 namespace NormalLayout
158 {
159 /**
160 * @brief Enumeration for NormalLayout Variation type.
161 *
162 * @SINCE_1_3.20
163 */
164 enum Type
165 {
166   NORMAL,          ///< The plain normal layout @SINCE_1_3.20
167   WITH_FILENAME,   ///< Filename layout. Symbols such as '/' should be disabled @SINCE_1_3.20
168   WITH_PERSON_NAME ///< The name of a person @SINCE_1_3.20
169 };
170
171 } // namespace NormalLayout
172
173 /**
174  * @brief Available variation for Number only layout.
175  *
176  * @SINCE_1_3.20
177  */
178 namespace NumberOnlyLayout
179 {
180 /**
181 * @brief Enumeration for NumberOnlyLayout Variation type.
182 *
183 * @SINCE_1_3.20
184 */
185 enum Type
186 {
187   NORMAL,                 ///< The plain normal number layout @SINCE_1_3.20
188   WITH_SIGNED,            ///< The number layout to allow a positive or negative sign at the start @SINCE_1_3.20
189   WITH_DECIMAL,           ///< The number layout to allow decimal point to provide fractional value @SINCE_1_3.20
190   WITH_SIGNED_AND_DECIMAL ///< The number layout to allow decimal point and negative sign @SINCE_1_3.20
191 };
192
193 } // namespace NumberOnlyLayout
194
195 /**
196  * @brief Available variation for Password layout.
197  *
198  * @SINCE_1_3.20
199  */
200 namespace PasswordLayout
201 {
202 /**
203 * @brief Enumeration for PasswordLayout Variation type.
204 *
205 * @SINCE_1_3.20
206 */
207 enum Type
208 {
209   NORMAL,          ///< The normal password layout @SINCE_1_3.20
210   WITH_NUMBER_ONLY ///< The password layout to allow only number @SINCE_1_3.20
211 };
212
213 } // namespace PasswordLayout
214
215 } // namespace InputMethod
216
217 /**
218  * @}
219  */
220 } // namespace Dali
221
222 #endif // DALI_INPUT_MEHTOD_H