/*
- * Copyright (c) 2015 Samsung Electronics Co., Ltd.
+ * Copyright (c) 2020 Samsung Electronics Co., Ltd.
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
#include <dali/public-api/events/key-event.h>
// INTERNAL INCLUDES
-#include <dali/devel-api/events/key-event-devel.h>
-#include <dali/devel-api/common/map-wrapper.h>
+#include <dali/internal/event/events/key-event-impl.h>
namespace Dali
{
-
-namespace
+KeyEvent::KeyEvent()
+: BaseHandle()
{
-const unsigned int MODIFIER_SHIFT = 0x1;
-const unsigned int MODIFIER_CTRL = 0x2;
-const unsigned int MODIFIER_ALT = 0x4;
-const int KEY_INVALID_CODE = -1;
+}
-struct KeyEventImpl
-{
- std::string deviceName;
-};
+KeyEvent::KeyEvent(const KeyEvent& rhs) = default;
-typedef std::map< KeyEvent*, KeyEventImpl*> KeyEventMap;
-typedef KeyEventMap::const_iterator KeyEventMapIter;
+KeyEvent::KeyEvent(KeyEvent&& rhs) noexcept = default;
+KeyEvent::~KeyEvent() = default;
-KeyEventMap keyEventImplMap;
+KeyEvent& KeyEvent::operator=(const KeyEvent& rhs) = default;
-}
+KeyEvent& KeyEvent::operator=(KeyEvent&& rhs) noexcept = default;
-KeyEvent::KeyEvent()
-: keyPressedName(""),
- keyPressed(""),
- keyCode(KEY_INVALID_CODE),
- keyModifier(0),
- time(0),
- state(KeyEvent::Down)
+bool KeyEvent::IsShiftModifier() const
{
- KeyEventImpl* impl = new KeyEventImpl;
- keyEventImplMap[this] = impl;
+ return GetImplementation(*this).IsShiftModifier();
}
-KeyEvent::KeyEvent(const std::string& keyName, const std::string& keyString, int keyCode, int keyModifier,unsigned long timeStamp, const State& keyState)
-: keyPressedName(keyName),
- keyPressed(keyString),
- keyCode(keyCode),
- keyModifier(keyModifier),
- time(timeStamp),
- state(keyState)
+bool KeyEvent::IsCtrlModifier() const
{
- KeyEventImpl* impl = new KeyEventImpl;
- keyEventImplMap[this] = impl;
+ return GetImplementation(*this).IsCtrlModifier();
}
-KeyEvent::~KeyEvent()
+bool KeyEvent::IsAltModifier() const
{
- delete keyEventImplMap[this];
- keyEventImplMap.erase( this );
+ return GetImplementation(*this).IsAltModifier();
}
-bool KeyEvent::IsShiftModifier() const
+const std::string& KeyEvent::GetCompose() const
{
- if ((MODIFIER_SHIFT & keyModifier) == MODIFIER_SHIFT)
- {
- return true;
- }
-
- return false;
+ return GetImplementation(*this).GetCompose();
}
-bool KeyEvent::IsCtrlModifier() const
+const std::string& KeyEvent::GetDeviceName() const
{
- if ((MODIFIER_CTRL & keyModifier) == MODIFIER_CTRL)
- {
- return true;
- }
-
- return false;
+ return GetImplementation(*this).GetDeviceName();
}
-bool KeyEvent::IsAltModifier() const
+Device::Class::Type KeyEvent::GetDeviceClass() const
{
- if ((MODIFIER_ALT & keyModifier) == MODIFIER_ALT)
- {
- return true;
- }
+ return GetImplementation(*this).GetDeviceClass();
+}
- return false;
+Device::Subclass::Type KeyEvent::GetDeviceSubclass() const
+{
+ return GetImplementation(*this).GetDeviceSubclass();
}
-std::string DevelKeyEvent::GetDeviceName( KeyEvent& keyEvent )
+const std::string& KeyEvent::GetKeyName() const
{
- KeyEventMapIter search;
+ return GetImplementation(*this).GetKeyName();
+}
- search = keyEventImplMap.find( &keyEvent );
+const std::string& KeyEvent::GetKeyString() const
+{
+ return GetImplementation(*this).GetKeyString();
+}
- std::string result = "";
+const std::string& KeyEvent::GetLogicalKey() const
+{
+ return GetImplementation(*this).GetLogicalKey();
+}
- if( search != keyEventImplMap.end())
- {
- result = search->second->deviceName;
- }
+int32_t KeyEvent::GetKeyCode() const
+{
+ return GetImplementation(*this).GetKeyCode();
+}
- return result;
+int32_t KeyEvent::GetKeyModifier() const
+{
+ return GetImplementation(*this).GetKeyModifier();
}
-void DevelKeyEvent::SetDeviceName( KeyEvent& keyEvent, std::string deviceName )
+unsigned long KeyEvent::GetTime() const
{
- KeyEventMapIter search = keyEventImplMap.find( &keyEvent );
+ return GetImplementation(*this).GetTime();
+}
- if( search != keyEventImplMap.end())
- {
- search->second->deviceName = deviceName;
- }
+KeyEvent::State KeyEvent::GetState() const
+{
+ return GetImplementation(*this).GetState();
}
+KeyEvent::KeyEvent(Internal::KeyEvent* internal)
+: BaseHandle(internal)
+{
+}
} // namespace Dali