[5.0] Add GetLogicalKey API in DevelKeyEvent
[platform/core/uifw/dali-core.git] / dali / integration-api / events / key-event-integ.cpp
old mode 100644 (file)
new mode 100755 (executable)
index 79da685..db7e1bc
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2014 Samsung Electronics Co., Ltd.
+ * Copyright (c) 2017 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.
@@ -18,6 +18,9 @@
 // CLASS HEADER
 #include <dali/integration-api/events/key-event-integ.h>
 
+// INTERNAL INCLUDES
+#include <dali/internal/event/events/key-event-impl.h>
+
 namespace Dali
 {
 
@@ -27,27 +30,31 @@ namespace Integration
 KeyEvent::KeyEvent()
 : Event( Key ),
   keyName(),
+  logicalKey(),
   keyString(),
   keyCode( -1 ),
   keyModifier( 0 ),
   time( 0 ),
   state( KeyEvent::Down ),
+  compose( "" ),
   deviceName( "" ),
-  deviceClass( DevelDevice::Class::NONE ),
-  deviceSubclass( DevelDevice::Subclass::NONE )
+  deviceClass( Device::Class::NONE ),
+  deviceSubclass( Device::Subclass::NONE )
 {
 }
 
-KeyEvent::KeyEvent( const std::string& keyName, const std::string& keyString, int keyCode, int keyModifier,
-                    unsigned long timeStamp, const State& keyState, const std::string deviceName,
-                    const DevelDevice::Class::Type deviceClass, const DevelDevice::Subclass::Type deviceSubclass )
+KeyEvent::KeyEvent( const std::string& keyName, const std::string& logicalKey, const std::string& keyString, int keyCode, int keyModifier,
+                    unsigned long timeStamp, const State& keyState, const std::string& compose, const std::string& deviceName,
+                    const Device::Class::Type deviceClass, const Device::Subclass::Type deviceSubclass )
 : Event( Key ),
   keyName( keyName ),
+  logicalKey( logicalKey ),
   keyString( keyString ),
   keyCode( keyCode ),
   keyModifier( keyModifier ),
   time( timeStamp ),
   state( keyState ),
+  compose( compose ),
   deviceName( deviceName ),
   deviceClass( deviceClass ),
   deviceSubclass( deviceSubclass )
@@ -57,15 +64,23 @@ KeyEvent::KeyEvent( const std::string& keyName, const std::string& keyString, in
 KeyEvent::KeyEvent( const Dali::KeyEvent& event )
 : Event( Key ),
   keyName( event.keyPressedName ),
+  logicalKey( "" ),
   keyString( event.keyPressed ),
   keyCode( event.keyCode ),
   keyModifier( event.keyModifier ),
   time( event.time ),
   state( static_cast< Integration::KeyEvent::State >( event.state ) ),
+  compose( "" ),
   deviceName( "" ),
-  deviceClass( DevelDevice::Class::NONE ),
-  deviceSubclass( DevelDevice::Subclass::NONE )
+  deviceClass( Device::Class::NONE ),
+  deviceSubclass( Device::Subclass::NONE )
 {
+  const Internal::KeyEventImpl* keyEventImpl = GetImplementation( &event );
+  logicalKey = keyEventImpl->GetLogicalKey();
+  compose = keyEventImpl->GetCompose();
+  deviceName = keyEventImpl->GetDeviceName();
+  deviceClass = keyEventImpl->GetDeviceClass();
+  deviceSubclass = keyEventImpl->GetDeviceSubclass();
 }
 
 KeyEvent::~KeyEvent()