Updated all code to new format
[platform/core/uifw/dali-adaptor.git] / dali / internal / input / windows / input-method-context-impl-win.cpp
old mode 100755 (executable)
new mode 100644 (file)
index 5df001d..3308f60
@@ -1,5 +1,5 @@
 /*\r
- * Copyright (c) 2018 Samsung Electronics Co., Ltd.\r
+ * Copyright (c) 2021 Samsung Electronics Co., Ltd.\r
  *\r
  * Licensed under the Apache License, Version 2.0 (the "License");\r
  * you may not use this file except in compliance with the License.\r
 #include <dali/internal/input/windows/input-method-context-impl-win.h>\r
 \r
 // EXTERNAL INCLUDES\r
+#include <dali/devel-api/common/singleton-service.h>\r
+#include <dali/integration-api/debug.h>\r
 #include <dali/public-api/events/key-event.h>\r
-#include <dali/public-api/adaptor-framework/key.h>\r
 #include <dali/public-api/object/type-registry.h>\r
-#include <dali/integration-api/debug.h>\r
 \r
 // INTERNAL INCLUDES\r
-#include <dali/integration-api/adaptor.h>\r
+#include <dali/integration-api/adaptor-framework/adaptor.h>\r
 #include <dali/internal/adaptor/common/adaptor-impl.h>\r
-#include <dali/internal/system/common/locale-utils.h>\r
-#include <dali/internal/system/common/singleton-service-impl.h>\r
-#include <dali/internal/input/common/virtual-keyboard-impl.h>\r
 #include <dali/internal/input/common/key-impl.h>\r
+#include <dali/internal/input/common/virtual-keyboard-impl.h>\r
+#include <dali/internal/system/common/locale-utils.h>\r
+#include <dali/public-api/adaptor-framework/key.h>\r
 \r
 namespace Dali\r
 {\r
-\r
 namespace Internal\r
 {\r
-\r
 namespace Adaptor\r
 {\r
+namespace\r
+{\r
+#if defined(DEBUG_ENABLED)\r
+Debug::Filter* gLogFilter = Debug::Filter::New(Debug::NoLogging, false, "LOG_INPUT_METHOD_CONTEXT");\r
+#endif\r
+} // namespace\r
 \r
-InputMethodContextPtr InputMethodContextWin::New( Dali::Actor actor )\r
+InputMethodContextPtr InputMethodContextWin::New(Dali::Actor actor)\r
 {\r
   InputMethodContextPtr manager;\r
 \r
-  if ( actor && Adaptor::IsAvailable() )\r
+  if(actor && Adaptor::IsAvailable())\r
   {\r
-    manager = new InputMethodContextWin( actor );\r
+    manager = new InputMethodContextWin(actor);\r
   }\r
 \r
   return manager;\r
@@ -57,15 +61,14 @@ void InputMethodContextWin::Finalize()
 {\r
 }\r
 \r
-InputMethodContextWin::InputMethodContextWin( Dali::Actor actor )\r
-: mWin32Window( 0 ),\r
-  mIMFCursorPosition( 0 ),\r
+InputMethodContextWin::InputMethodContextWin(Dali::Actor actor)\r
+: mWin32Window(0),\r
+  mIMFCursorPosition(0),\r
   mSurroundingText(),\r
-  mRestoreAfterFocusLost( false ),\r
-  mIdleCallbackConnected( false )\r
+  mRestoreAfterFocusLost(false),\r
+  mIdleCallbackConnected(false)\r
 {\r
-\r
-  actor.OnStageSignal().Connect( this, &InputMethodContextWin::OnStaged );\r
+  actor.OnSceneSignal().Connect(this, &InputMethodContextWin::OnStaged);\r
 }\r
 \r
 InputMethodContextWin::~InputMethodContextWin()\r
@@ -75,18 +78,18 @@ InputMethodContextWin::~InputMethodContextWin()
 \r
 void InputMethodContextWin::Initialize()\r
 {\r
-  CreateContext( mWin32Window );\r
+  CreateContext(mWin32Window);\r
   ConnectCallbacks();\r
 }\r
 \r
-void InputMethodContextWin::CreateContext( WinWindowHandle winHandle )\r
+void InputMethodContextWin::CreateContext(WinWindowHandle winHandle)\r
 {\r
-  DALI_LOG_INFO( gLogFilter, Debug::General, "InputMethodContextWin::CreateContext\n" );\r
+  DALI_LOG_INFO(gLogFilter, Debug::General, "InputMethodContextWin::CreateContext\n");\r
 }\r
 \r
 void InputMethodContextWin::DeleteContext()\r
 {\r
-  DALI_LOG_INFO( gLogFilter, Debug::General, "InputMethodContextWin::DeleteContext\n" );\r
+  DALI_LOG_INFO(gLogFilter, Debug::General, "InputMethodContextWin::DeleteContext\n");\r
 }\r
 \r
 // Callbacks for predicitive text support.\r
@@ -111,12 +114,12 @@ void InputMethodContextWin::Deactivate()
 \r
 void InputMethodContextWin::Reset()\r
 {\r
-  DALI_LOG_INFO( gLogFilter, Debug::General, "InputMethodContextWin::Reset\n" );\r
+  DALI_LOG_INFO(gLogFilter, Debug::General, "InputMethodContextWin::Reset\n");\r
 }\r
 \r
 ImfContext* InputMethodContextWin::GetContext()\r
 {\r
-  DALI_LOG_INFO( gLogFilter, Debug::General, "InputMethodContextWin::GetContext\n" );\r
+  DALI_LOG_INFO(gLogFilter, Debug::General, "InputMethodContextWin::GetContext\n");\r
 \r
   return NULL;\r
 }\r
@@ -126,7 +129,7 @@ bool InputMethodContextWin::RestoreAfterFocusLost() const
   return mRestoreAfterFocusLost;\r
 }\r
 \r
-void InputMethodContextWin::SetRestoreAfterFocusLost( bool toggle )\r
+void InputMethodContextWin::SetRestoreAfterFocusLost(bool toggle)\r
 {\r
   mRestoreAfterFocusLost = toggle;\r
 }\r
@@ -136,26 +139,26 @@ void InputMethodContextWin::SetRestoreAfterFocusLost( bool toggle )
  * We are still predicting what the user is typing.  The latest string is what the InputMethodContext module thinks\r
  * the user wants to type.\r
  */\r
-void InputMethodContextWin::PreEditChanged( void*, ImfContext* imfContext, void* eventInfo )\r
+void InputMethodContextWin::PreEditChanged(void*, ImfContext* imfContext, void* eventInfo)\r
 {\r
-  DALI_LOG_INFO( gLogFilter, Debug::General, "InputMethodContextWin::PreEditChanged\n" );\r
+  DALI_LOG_INFO(gLogFilter, Debug::General, "InputMethodContextWin::PreEditChanged\n");\r
 }\r
 \r
-void InputMethodContextWin::CommitReceived( void*, ImfContext* imfContext, void* eventInfo )\r
+void InputMethodContextWin::CommitReceived(void*, ImfContext* imfContext, void* eventInfo)\r
 {\r
-  DALI_LOG_INFO( gLogFilter, Debug::General, "InputMethodContextWin::CommitReceived\n" );\r
+  DALI_LOG_INFO(gLogFilter, Debug::General, "InputMethodContextWin::CommitReceived\n");\r
 \r
-  if ( Dali::Adaptor::IsAvailable() )\r
+  if(Dali::Adaptor::IsAvailable())\r
   {\r
-    const std::string keyString( static_cast<char*>( eventInfo ) );\r
+    const std::string keyString(static_cast<char*>(eventInfo));\r
 \r
-    Dali::InputMethodContext handle( this );\r
-    Dali::InputMethodContext::EventData eventData( Dali::InputMethodContext::COMMIT, keyString, 0, 0 );\r
-    Dali::InputMethodContext::CallbackData callbackData = mEventSignal.Emit( handle, eventData );\r
+    Dali::InputMethodContext               handle(this);\r
+    Dali::InputMethodContext::EventData    eventData(Dali::InputMethodContext::COMMIT, keyString, 0, 0);\r
+    Dali::InputMethodContext::CallbackData callbackData = mEventSignal.Emit(handle, eventData);\r
 \r
-    if( callbackData.update )\r
+    if(callbackData.update)\r
     {\r
-      mIMFCursorPosition = static_cast<int>( callbackData.cursorPosition );\r
+      mIMFCursorPosition = static_cast<int>(callbackData.cursorPosition);\r
 \r
       NotifyCursorPosition();\r
     }\r
@@ -167,25 +170,25 @@ void InputMethodContextWin::CommitReceived( void*, ImfContext* imfContext, void*
  * Here the InputMethodContext module wishes to know the string we are working with and where within the string the cursor is\r
  * We need to signal the application to tell us this information.\r
  */\r
-bool InputMethodContextWin::RetrieveSurrounding( void* data, ImfContext* imfContext, char** text, int* cursorPosition )\r
+bool InputMethodContextWin::RetrieveSurrounding(void* data, ImfContext* imfContext, char** text, int* cursorPosition)\r
 {\r
-  DALI_LOG_INFO( gLogFilter, Debug::General, "InputMethodContextWin::RetrieveSurrounding\n" );\r
+  DALI_LOG_INFO(gLogFilter, Debug::General, "InputMethodContextWin::RetrieveSurrounding\n");\r
 \r
-  Dali::InputMethodContext::EventData imfData( Dali::InputMethodContext::GET_SURROUNDING, std::string(), 0, 0 );\r
-  Dali::InputMethodContext handle( this );\r
-  Dali::InputMethodContext::CallbackData callbackData = mEventSignal.Emit( handle, imfData );\r
+  Dali::InputMethodContext::EventData    imfData(Dali::InputMethodContext::GET_SURROUNDING, std::string(), 0, 0);\r
+  Dali::InputMethodContext               handle(this);\r
+  Dali::InputMethodContext::CallbackData callbackData = mEventSignal.Emit(handle, imfData);\r
 \r
-  if( callbackData.update )\r
+  if(callbackData.update)\r
   {\r
-    if( text )\r
+    if(text)\r
     {\r
-      *text = strdup( callbackData.currentText.c_str() );\r
+      *text = strdup(callbackData.currentText.c_str());\r
     }\r
 \r
-    if( cursorPosition )\r
+    if(cursorPosition)\r
     {\r
-      mIMFCursorPosition = static_cast<int>( callbackData.cursorPosition );\r
-      *cursorPosition = mIMFCursorPosition;\r
+      mIMFCursorPosition = static_cast<int>(callbackData.cursorPosition);\r
+      *cursorPosition    = mIMFCursorPosition;\r
     }\r
   }\r
 \r
@@ -196,51 +199,51 @@ bool InputMethodContextWin::RetrieveSurrounding( void* data, ImfContext* imfCont
  * Called when an InputMethodContext delete surrounding event is received.\r
  * Here we tell the application that it should delete a certain range.\r
  */\r
-void InputMethodContextWin::DeleteSurrounding( void* data, ImfContext* imfContext, void* eventInfo )\r
+void InputMethodContextWin::DeleteSurrounding(void* data, ImfContext* imfContext, void* eventInfo)\r
 {\r
-  DALI_LOG_INFO( gLogFilter, Debug::General, "InputMethodContextWin::DeleteSurrounding\n" );\r
+  DALI_LOG_INFO(gLogFilter, Debug::General, "InputMethodContextWin::DeleteSurrounding\n");\r
 }\r
 \r
 void InputMethodContextWin::NotifyCursorPosition()\r
 {\r
-  DALI_LOG_INFO( gLogFilter, Debug::General, "InputMethodContextWin::NotifyCursorPosition\n" );\r
+  DALI_LOG_INFO(gLogFilter, Debug::General, "InputMethodContextWin::NotifyCursorPosition\n");\r
 }\r
 \r
-void InputMethodContextWin::SetCursorPosition( unsigned int cursorPosition )\r
+void InputMethodContextWin::SetCursorPosition(unsigned int cursorPosition)\r
 {\r
-  DALI_LOG_INFO( gLogFilter, Debug::General, "InputMethodContextWin::SetCursorPosition\n" );\r
+  DALI_LOG_INFO(gLogFilter, Debug::General, "InputMethodContextWin::SetCursorPosition\n");\r
 \r
-  mIMFCursorPosition = static_cast<int>( cursorPosition );\r
+  mIMFCursorPosition = static_cast<int>(cursorPosition);\r
 }\r
 \r
 unsigned int InputMethodContextWin::GetCursorPosition() const\r
 {\r
-  DALI_LOG_INFO( gLogFilter, Debug::General, "InputMethodContextWin::GetCursorPosition\n" );\r
+  DALI_LOG_INFO(gLogFilter, Debug::General, "InputMethodContextWin::GetCursorPosition\n");\r
 \r
-  return static_cast<unsigned int>( mIMFCursorPosition );\r
+  return static_cast<unsigned int>(mIMFCursorPosition);\r
 }\r
 \r
-void InputMethodContextWin::SetSurroundingText( const std::string& text )\r
+void InputMethodContextWin::SetSurroundingText(const std::string& text)\r
 {\r
-  DALI_LOG_INFO( gLogFilter, Debug::General, "InputMethodContextWin::SetSurroundingText\n" );\r
+  DALI_LOG_INFO(gLogFilter, Debug::General, "InputMethodContextWin::SetSurroundingText\n");\r
 \r
   mSurroundingText = text;\r
 }\r
 \r
 const std::string& InputMethodContextWin::GetSurroundingText() const\r
 {\r
-  DALI_LOG_INFO( gLogFilter, Debug::General, "InputMethodContextWin::GetSurroundingText\n" );\r
+  DALI_LOG_INFO(gLogFilter, Debug::General, "InputMethodContextWin::GetSurroundingText\n");\r
 \r
   return mSurroundingText;\r
 }\r
 \r
-void InputMethodContextWin::NotifyTextInputMultiLine( bool multiLine )\r
+void InputMethodContextWin::NotifyTextInputMultiLine(bool multiLine)\r
 {\r
 }\r
 \r
 Dali::InputMethodContext::TextDirection InputMethodContextWin::GetTextDirection()\r
 {\r
-  Dali::InputMethodContext::TextDirection direction ( Dali::InputMethodContext::LeftToRight );\r
+  Dali::InputMethodContext::TextDirection direction(Dali::InputMethodContext::LEFT_TO_RIGHT);\r
 \r
   return direction;\r
 }\r
@@ -251,63 +254,63 @@ Rect<int> InputMethodContextWin::GetInputMethodArea()
 \r
   width = height = xPos = yPos = 0;\r
 \r
-  return Rect<int>(xPos,yPos,width,height);\r
+  return Rect<int>(xPos, yPos, width, height);\r
 }\r
 \r
-void InputMethodContextWin::ApplyOptions( const InputMethodOptions& options )\r
+void InputMethodContextWin::ApplyOptions(const InputMethodOptions& options)\r
 {\r
   using namespace Dali::InputMethod::Category;\r
 \r
   int index;\r
 \r
-  if ( mOptions.CompareAndSet(PANEL_LAYOUT, options, index) )\r
+  if(mOptions.CompareAndSet(PANEL_LAYOUT, options, index))\r
   {\r
   }\r
-  if ( mOptions.CompareAndSet(BUTTON_ACTION, options, index) )\r
+  if(mOptions.CompareAndSet(BUTTON_ACTION, options, index))\r
   {\r
   }\r
-  if ( mOptions.CompareAndSet(AUTO_CAPITALIZE, options, index) )\r
+  if(mOptions.CompareAndSet(AUTO_CAPITALIZE, options, index))\r
   {\r
   }\r
-  if ( mOptions.CompareAndSet(VARIATION, options, index) )\r
+  if(mOptions.CompareAndSet(VARIATION, options, index))\r
   {\r
   }\r
 }\r
 \r
-void InputMethodContextWin::SetInputPanelData( const std::string& data )\r
+void InputMethodContextWin::SetInputPanelData(const std::string& data)\r
 {\r
-  DALI_LOG_INFO( gLogFilter, Debug::General, "InputMethodContextWin::SetInputPanelData\n" );\r
+  DALI_LOG_INFO(gLogFilter, Debug::General, "InputMethodContextWin::SetInputPanelData\n");\r
 }\r
 \r
-void InputMethodContextWin::GetInputPanelData( std::string& data )\r
+void InputMethodContextWin::GetInputPanelData(std::string& data)\r
 {\r
-  DALI_LOG_INFO( gLogFilter, Debug::General, "InputMethodContextWin::GetInputPanelData\n" );\r
+  DALI_LOG_INFO(gLogFilter, Debug::General, "InputMethodContextWin::GetInputPanelData\n");\r
 }\r
 \r
 Dali::InputMethodContext::State InputMethodContextWin::GetInputPanelState()\r
 {\r
-  DALI_LOG_INFO( gLogFilter, Debug::General, "InputMethodContextWin::GetInputPanelState\n" );\r
+  DALI_LOG_INFO(gLogFilter, Debug::General, "InputMethodContextWin::GetInputPanelState\n");\r
   return Dali::InputMethodContext::DEFAULT;\r
 }\r
 \r
-void InputMethodContextWin::SetReturnKeyState( bool visible )\r
+void InputMethodContextWin::SetReturnKeyState(bool visible)\r
 {\r
-  DALI_LOG_INFO( gLogFilter, Debug::General, "InputMethodContextWin::SetReturnKeyState\n" );\r
+  DALI_LOG_INFO(gLogFilter, Debug::General, "InputMethodContextWin::SetReturnKeyState\n");\r
 }\r
 \r
-void InputMethodContextWin::AutoEnableInputPanel( bool enabled )\r
+void InputMethodContextWin::AutoEnableInputPanel(bool enabled)\r
 {\r
-  DALI_LOG_INFO( gLogFilter, Debug::General, "InputMethodContextWin::AutoEnableInputPanel\n" );\r
+  DALI_LOG_INFO(gLogFilter, Debug::General, "InputMethodContextWin::AutoEnableInputPanel\n");\r
 }\r
 \r
 void InputMethodContextWin::ShowInputPanel()\r
 {\r
-  DALI_LOG_INFO( gLogFilter, Debug::General, "InputMethodContextWin::ShowInputPanel\n" );\r
+  DALI_LOG_INFO(gLogFilter, Debug::General, "InputMethodContextWin::ShowInputPanel\n");\r
 }\r
 \r
 void InputMethodContextWin::HideInputPanel()\r
 {\r
-  DALI_LOG_INFO( gLogFilter, Debug::General, "InputMethodContextWin::HideInputPanel\n" );\r
+  DALI_LOG_INFO(gLogFilter, Debug::General, "InputMethodContextWin::HideInputPanel\n");\r
 }\r
 \r
 Dali::InputMethodContext::KeyboardType InputMethodContextWin::GetKeyboardType()\r
@@ -317,65 +320,76 @@ Dali::InputMethodContext::KeyboardType InputMethodContextWin::GetKeyboardType()
 \r
 std::string InputMethodContextWin::GetInputPanelLocale()\r
 {\r
-  DALI_LOG_INFO( gLogFilter, Debug::General, "InputMethodContextWin::GetInputPanelLocale\n" );\r
+  DALI_LOG_INFO(gLogFilter, Debug::General, "InputMethodContextWin::GetInputPanelLocale\n");\r
 \r
   std::string locale = "";\r
   return locale;\r
 }\r
 \r
-void InputMethodContextWin::SetContentMIMETypes( const std::string& mimeTypes )\r
+void InputMethodContextWin::SetContentMIMETypes(const std::string& mimeTypes)\r
 {\r
-  DALI_LOG_INFO( gLogFilter, Debug::General, "InputMethodContextWin::SetContentMIMETypes\n" );\r
+  DALI_LOG_INFO(gLogFilter, Debug::General, "InputMethodContextWin::SetContentMIMETypes\n");\r
 }\r
 \r
-bool InputMethodContextWin::FilterEventKey( const Dali::KeyEvent& keyEvent )\r
+bool InputMethodContextWin::FilterEventKey(const Dali::KeyEvent& keyEvent)\r
 {\r
-  bool eventHandled( false );\r
+  bool eventHandled(false);\r
 \r
-  if ( ! KeyLookup::IsDeviceButton( keyEvent.keyPressedName.c_str() ))\r
+  if(!KeyLookup::IsDeviceButton(keyEvent.GetKeyName().c_str()))\r
   {\r
     //check whether it's key down or key up event\r
-    if ( keyEvent.state == KeyEvent::Down )\r
+    if(keyEvent.GetState() == Dali::KeyEvent::DOWN)\r
     {\r
-      eventHandled = ProcessEventKeyDown( keyEvent );\r
+      eventHandled = ProcessEventKeyDown(keyEvent);\r
     }\r
-    else if ( keyEvent.state == KeyEvent::Up )\r
+    else if(keyEvent.GetState() == Dali::KeyEvent::UP)\r
     {\r
-      eventHandled = ProcessEventKeyUp( keyEvent );\r
+      eventHandled = ProcessEventKeyUp(keyEvent);\r
     }\r
   }\r
 \r
   return eventHandled;\r
 }\r
 \r
-void InputMethodContextWin::SetInputPanelLanguage( Dali::InputMethodContext::InputPanelLanguage language )\r
+void InputMethodContextWin::SetInputPanelLanguage(Dali::InputMethodContext::InputPanelLanguage language)\r
 {\r
-  DALI_LOG_INFO( gLogFilter, Debug::General, "InputMethodContextWin::SetInputPanelLanguage\n" );\r
+  DALI_LOG_INFO(gLogFilter, Debug::General, "InputMethodContextWin::SetInputPanelLanguage\n");\r
 }\r
 \r
 Dali::InputMethodContext::InputPanelLanguage InputMethodContextWin::GetInputPanelLanguage() const\r
 {\r
-  DALI_LOG_INFO( gLogFilter, Debug::General, "InputMethodContextWin::GetInputPanelLanguage\n" );\r
+  DALI_LOG_INFO(gLogFilter, Debug::General, "InputMethodContextWin::GetInputPanelLanguage\n");\r
   return Dali::InputMethodContext::InputPanelLanguage::AUTOMATIC;\r
 }\r
 \r
-bool InputMethodContextWin::ProcessEventKeyDown( const KeyEvent& keyEvent )\r
+void InputMethodContextWin::SetInputPanelPosition(unsigned int x, unsigned int y)\r
+{\r
+  DALI_LOG_INFO(gLogFilter, Debug::General, "InputMethodContextWin::SetInputPanelPosition\n");\r
+}\r
+\r
+void InputMethodContextWin::GetPreeditStyle(Dali::InputMethodContext::PreEditAttributeDataContainer& attrs) const\r
 {\r
-  bool eventHandled( false );\r
+  DALI_LOG_INFO(gLogFilter, Debug::General, "InputMethodContextWin::GetPreeditStyle\n");\r
+  attrs = mPreeditAttrs;\r
+}\r
+\r
+bool InputMethodContextWin::ProcessEventKeyDown(const Dali::KeyEvent& keyEvent)\r
+{\r
+  bool eventHandled(false);\r
   return eventHandled;\r
 }\r
 \r
-bool InputMethodContextWin::ProcessEventKeyUp( const KeyEvent& keyEvent )\r
+bool InputMethodContextWin::ProcessEventKeyUp(const Dali::KeyEvent& keyEvent)\r
 {\r
-  bool eventHandled( false );\r
+  bool eventHandled(false);\r
   return eventHandled;\r
 }\r
 \r
-void InputMethodContextWin::OnStaged( Dali::Actor actor )\r
+void InputMethodContextWin::OnStaged(Dali::Actor actor)\r
 {\r
-  WinWindowHandle winWindow( AnyCast< WinWindowHandle >( Dali::Integration::SceneHolder::Get( actor ).GetNativeHandle() ) );\r
+  WinWindowHandle winWindow(AnyCast<WinWindowHandle>(Dali::Integration::SceneHolder::Get(actor).GetNativeHandle()));\r
 \r
-  if( mWin32Window != winWindow )\r
+  if(mWin32Window != winWindow)\r
   {\r
     mWin32Window = winWindow;\r
 \r
@@ -385,9 +399,8 @@ void InputMethodContextWin::OnStaged( Dali::Actor actor )
   }\r
 }\r
 \r
-} // Adaptor\r
-\r
-} // Internal\r
+} // namespace Adaptor\r
 \r
-} // Dali\r
+} // namespace Internal\r
 \r
+} // namespace Dali\r