b04ed5e7f96dcef3af9b990ee63effbf6fc16da0
[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) 2017 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 /**
41  * @brief Categorization type about input Device
42  * @SINCE_1_2.60
43  */
44 namespace Class
45 {
46
47 /**
48  * @brief An enum of Device Class types.
49  * @SINCE_1_2.60
50  */
51 enum Type
52 {
53   NONE,      ///< Not a device. @SINCE_1_2.60
54   USER,      ///< The user/seat (the user themselves). @SINCE_1_2.60
55   KEYBOARD,  ///< A regular keyboard, numberpad or attached buttons. @SINCE_1_2.60
56   MOUSE,     ///< A mouse, trackball or touchpad relative motion device. @SINCE_1_2.60
57   TOUCH,     ///< A touchscreen with fingers or stylus. @SINCE_1_2.60
58   PEN,       ///< A special pen device. @SINCE_1_2.60
59   POINTER,   ///< A pointing device based on laser, infrared or similar technology. @SINCE_1_2.60
60   GAMEPAD    ///< A gamepad controller or joystick. @SINCE_1_2.60
61 };
62
63 } // namespace Class
64
65 /**
66  * @brief Subcategorization type about input device.
67  * @SINCE_1_2.60
68  */
69 namespace Subclass
70 {
71
72 /**
73  * @brief An enum of Device Subclass types.
74  * @SINCE_1_2.60
75  */
76 enum Type
77 {
78   NONE, ///< Not a device. @SINCE_1_2.60
79   FINGER, ///< The normal flat of your finger. @SINCE_1_2.60
80   FINGERNAIL, ///< A fingernail. @SINCE_1_2.60
81   KNUCKLE, ///< A Knuckle. @SINCE_1_2.60
82   PALM, ///< The palm of a users hand. @SINCE_1_2.60
83   HAND_SIDE, ///< The side of your hand. @SINCE_1_2.60
84   HAND_FLAT, ///< The flat of your hand. @SINCE_1_2.60
85   PEN_TIP, ///< The tip of a pen. @SINCE_1_2.60
86   TRACKPAD, ///< A trackpad style mouse. @SINCE_1_2.60
87   TRACKPOINT, //< A trackpoint style mouse. @SINCE_1_2.60
88   TRACKBALL, ///< A trackball style mouse. @SINCE_1_2.60
89 };
90
91 } // namespace Subclass
92
93 } // namespace Device
94
95 /**
96  * @}
97  */
98 } // namespace Dali
99
100 #endif  //DALI_KEY_EVENT_DEVEL_H