Merge branch 'devel/master' into tizen
[platform/core/uifw/dali-core.git] / dali / public-api / events / device.h
1 #ifndef DALI_DEVICE_H
2 #define DALI_DEVICE_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 namespace Dali
22 {
23 /**
24  * @addtogroup dali_core_events
25  * @{
26  */
27
28 /**
29  * @brief Information about device types
30  *
31  * These types are for widget viewer applications.
32  * A widget viewer application by Dali have to deliver events to widget applications
33  * Server for handling events actually delivers any events to widget applications
34  * The server needs to know input device information such as type to deliver events of proper type to widget applications
35  * @SINCE_1_2.60
36  */
37 namespace Device
38 {
39 /**
40  * @brief Categorization type about input Device
41  * @SINCE_1_2.60
42  */
43 namespace Class
44 {
45 /**
46  * @brief An enum of Device Class types.
47  * @SINCE_1_2.60
48  */
49 enum Type
50 {
51   NONE,     ///< Not a device. @SINCE_1_2.60
52   USER,     ///< The user/seat (the user themselves). @SINCE_1_2.60
53   KEYBOARD, ///< A regular keyboard, numberpad or attached buttons. @SINCE_1_2.60
54   MOUSE,    ///< A mouse, trackball or touchpad relative motion device. @SINCE_1_2.60
55   TOUCH,    ///< A touchscreen with fingers or stylus. @SINCE_1_2.60
56   PEN,      ///< A special pen device. @SINCE_1_2.60
57   POINTER,  ///< A pointing device based on laser, infrared or similar technology. @SINCE_1_2.60
58   GAMEPAD   ///< A gamepad controller or joystick. @SINCE_1_2.60
59 };
60
61 } // namespace Class
62
63 /**
64  * @brief Subcategorization type about input device.
65  * @SINCE_1_2.60
66  */
67 namespace Subclass
68 {
69 /**
70  * @brief An enum of Device Subclass types.
71  * @SINCE_1_2.60
72  */
73 enum Type
74 {
75   NONE,             ///< Not a device. @SINCE_1_2.60
76   FINGER,           ///< The normal flat of your finger. @SINCE_1_2.60
77   FINGERNAIL,       ///< A fingernail. @SINCE_1_2.60
78   KNUCKLE,          ///< A Knuckle. @SINCE_1_2.60
79   PALM,             ///< The palm of a users hand. @SINCE_1_2.60
80   HAND_SIDE,        ///< The side of your hand. @SINCE_1_2.60
81   HAND_FLAT,        ///< The flat of your hand. @SINCE_1_2.60
82   PEN_TIP,          ///< The tip of a pen. @SINCE_1_2.60
83   TRACKPAD,         ///< A trackpad style mouse. @SINCE_1_2.60
84   TRACKPOINT,       ///< A trackpoint style mouse. @SINCE_1_2.60
85   TRACKBALL,        ///< A trackball style mouse. @SINCE_1_2.60
86   REMOCON,          ///< A remote controller. @SINCE_1_2.61
87   VIRTUAL_KEYBOARD, ///< A virtual keyboard. @SINCE_1_2.61
88 };
89
90 } // namespace Subclass
91
92 } // namespace Device
93
94 /**
95  * @}
96  */
97 } // namespace Dali
98
99 #endif //DALI_KEY_EVENT_DEVEL_H