License conversion from Flora to Apache 2.0
[platform/core/uifw/dali-core.git] / dali / public-api / events / key-event.cpp
1 /*
2  * Copyright (c) 2014 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/key-event.h>
20
21 namespace Dali
22 {
23
24 namespace
25 {
26 const unsigned int MODIFIER_SHIFT = 0x1;
27 const unsigned int MODIFIER_CTRL  = 0x2;
28 const unsigned int MODIFIER_ALT   = 0x4;
29 const int KEY_INVALID_CODE = -1;
30
31 }
32
33 KeyEvent::KeyEvent()
34 : keyPressedName(""),
35   keyPressed(""),
36   keyCode(KEY_INVALID_CODE),
37   keyModifier(0),
38   state(KeyEvent::Down)
39 {
40 }
41
42 KeyEvent::KeyEvent(const std::string& keyName, const std::string& keyString, int keyCode, int keyModifier,unsigned long timeStamp, const State& keyState)
43 : keyPressedName(keyName),
44   keyPressed(keyString),
45   keyCode(keyCode),
46   keyModifier(keyModifier),
47   time(timeStamp),
48   state(keyState)
49 {
50 }
51
52 KeyEvent::~KeyEvent()
53 {
54 }
55
56 bool KeyEvent::IsShiftModifier() const
57 {
58   if ((MODIFIER_SHIFT & keyModifier) == MODIFIER_SHIFT)
59   {
60     return true;
61   }
62
63   return false;
64 }
65
66 bool KeyEvent::IsCtrlModifier() const
67 {
68   if ((MODIFIER_CTRL & keyModifier) == MODIFIER_CTRL)
69   {
70     return true;
71   }
72
73   return false;
74 }
75
76 bool KeyEvent::IsAltModifier() const
77 {
78   if ((MODIFIER_ALT & keyModifier) == MODIFIER_ALT)
79   {
80     return true;
81   }
82
83   return false;
84 }
85
86 } // namespace Dali