[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 ed46ccf..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
 {
 
@@ -25,40 +28,59 @@ namespace Integration
 {
 
 KeyEvent::KeyEvent()
-: Event(Key),
+: Event( Key ),
   keyName(),
+  logicalKey(),
   keyString(),
-  keyCode(-1),
-  keyModifier(0),
-  time(0),
-  state(KeyEvent::Down),
-  deviceName("")
+  keyCode( -1 ),
+  keyModifier( 0 ),
+  time( 0 ),
+  state( KeyEvent::Down ),
+  compose( "" ),
+  deviceName( "" ),
+  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 )
-: Event(Key),
-  keyName(keyName),
-  keyString(keyString),
-  keyCode(keyCode),
-  keyModifier(keyModifier),
-  time(timeStamp),
-  state(keyState),
-  deviceName(deviceName)
+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 )
 {
 }
 
 KeyEvent::KeyEvent( const Dali::KeyEvent& event )
-: Event(Key),
+: 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 ) ),
-  deviceName("")
+  compose( "" ),
+  deviceName( "" ),
+  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()