Making DALi public API typesafe using guaranteed types; uint8_t, uint32_t
[platform/core/uifw/dali-core.git] / dali / public-api / events / wheel-event.cpp
1 /*
2  * Copyright (c) 2018 Samsung Electronics Co., Ltd.
3  *
4  * Licensed under the Apache License, Version 2.0 (the "License");
5  * you may not use this file except in compliance with the License.
6  * You may obtain a copy of the License at
7  *
8  * http://www.apache.org/licenses/LICENSE-2.0
9  *
10  * Unless required by applicable law or agreed to in writing, software
11  * distributed under the License is distributed on an "AS IS" BASIS,
12  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13  * See the License for the specific language governing permissions and
14  * limitations under the License.
15  *
16  */
17
18 // CLASS HEADER
19 #include <dali/public-api/events/wheel-event.h>
20
21 namespace Dali
22 {
23
24 namespace
25 {
26 const uint32_t MODIFIER_SHIFT = 0x1;
27 const uint32_t MODIFIER_CTRL  = 0x2;
28 const uint32_t MODIFIER_ALT   = 0x4;
29
30 }
31
32 WheelEvent::WheelEvent()
33 : type( MOUSE_WHEEL ),
34   direction( 0 ),
35   modifiers( 0 ),
36   point( Vector2::ZERO ),
37   z( 0 ),
38   timeStamp( 0 )
39 {
40 }
41
42 WheelEvent::WheelEvent( Type type, int32_t direction, uint32_t modifiers, Vector2 point, int32_t z, uint32_t timeStamp )
43 : type( type ),
44   direction( direction ),
45   modifiers( modifiers ),
46   point( point ),
47   z( z ),
48   timeStamp( timeStamp )
49 {
50 }
51
52 WheelEvent::~WheelEvent()
53 {
54 }
55
56 bool WheelEvent::IsShiftModifier() const
57 {
58   if ((MODIFIER_SHIFT & modifiers) == MODIFIER_SHIFT)
59   {
60     return true;
61   }
62
63   return false;
64 }
65
66 bool WheelEvent::IsCtrlModifier() const
67 {
68   if ((MODIFIER_CTRL & modifiers) == MODIFIER_CTRL)
69   {
70     return true;
71   }
72
73   return false;
74 }
75
76 bool WheelEvent::IsAltModifier() const
77 {
78   if ((MODIFIER_ALT & modifiers) == MODIFIER_ALT)
79   {
80     return true;
81   }
82
83   return false;
84 }
85
86 } // namespace Dali