1 #ifndef DALI_WHEEL_EVENT_H
2 #define DALI_WHEEL_EVENT_H
5 * Copyright (c) 2019 Samsung Electronics Co., Ltd.
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
11 * http://www.apache.org/licenses/LICENSE-2.0
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.
22 #include <cstdint> // uint32_t
25 #include <dali/public-api/common/dali-common.h>
26 #include <dali/public-api/math/vector2.h>
32 * @addtogroup dali_core_events
37 * @brief The wheel event structure is used to store a wheel rolling, it facilitates
38 * processing of the wheel rolling and passing to other libraries like Toolkit.
40 * There is a key modifier which relates to keys like alt, shift and control functions are
41 * supplied to check if they have been pressed when the wheel is being rolled.
43 * We support a mouse device and there may be another custom device that support the wheel event. The device type is specified as \e type.
44 * The mouse wheel event can be sent to the specific actor but the custom wheel event will be sent to the stage.
47 struct DALI_CORE_API WheelEvent
52 * @brief Enumeration for specifying the type of the wheel event.
57 MOUSE_WHEEL, ///< Mouse wheel event @SINCE_1_0.0
58 CUSTOM_WHEEL ///< Custom wheel event @SINCE_1_0.0
62 * @brief Default constructor.
71 * @param[in] type The type of the wheel event
72 * @param[in] direction The direction of wheel rolling (0 = default vertical wheel, 1 = horizontal wheel)
73 * @param[in] modifiers Modifier keys pressed during the event (such as shift, alt and control)
74 * @param[in] point The co-ordinates of the cursor relative to the top-left of the screen
75 * @param[in] z The offset of rolling (positive value means roll down or clockwise, and negative value means roll up or counter-clockwise)
76 * @param[in] timeStamp The time the wheel is being rolled
78 WheelEvent( Type type, int32_t direction, uint32_t modifiers, Vector2 point, int32_t z, uint32_t timeStamp );
87 * @brief Checks to see if Shift key modifier has been supplied.
90 * @return True if shift modifier
92 bool IsShiftModifier() const;
95 * @brief Checks to see if Ctrl (control) key modifier has been supplied.
98 * @return True if ctrl modifier
100 bool IsCtrlModifier() const;
103 * @brief Checks to see if Alt key modifier has been supplied.
106 * @return True if alt modifier
108 bool IsAltModifier() const;
113 * @brief Type of the event.
120 * @brief The direction in which the wheel is being rolled.
122 * 0 means the default vertical wheel, and 1 means horizontal wheel.
127 * @brief Modifier keys pressed during the event (such as shift, alt and control).
132 * @brief The co-ordinates of the cursor relative to the top-left of the screen
133 * when the wheel is being rolled.
138 * @brief The offset of the wheel rolling, where positive value means rolling down or clockwise
139 * and negative value means rolling up or counter-clockwise.
144 * @brief The time when the wheel is being rolled.
155 #endif // DALI_WHEEL_EVENT_H