/*
- * Copyright (c) 2015 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.
// INTERNAL INCLUDES
#include <singleton-service-impl.h>
#include <adaptor-impl.h>
-
+#include <string.h>
namespace Dali
{
TypeRegistration IMF_MANAGER_TYPE( typeid(Dali::ImfManager), typeid(Dali::BaseHandle), Create );
+}
+void ImfManager::Finalize()
+{
+ DALI_LOG_INFO( gLogFilter, Debug::General, "ImfManager::Finalize\n" );
+ if ( mInited )
+ {
+ DisconnectCallbacks();
+ mInited = false;
+ }
}
+
bool ImfManager::IsAvailable()
{
bool available( false );
Dali::ImfManager ImfManager::Get()
{
Dali::ImfManager manager;
+ ImfManager *imfManager = NULL;
Dali::SingletonService service( SingletonService::Get() );
if (! service )
if( handle )
{
// If so, downcast the handle
- manager = Dali::ImfManager( dynamic_cast< ImfManager* >( handle.GetObjectPtr() ) );
+ imfManager = dynamic_cast< ImfManager* >( handle.GetObjectPtr() );
+ manager = Dali::ImfManager( imfManager );
}
else if ( Adaptor::IsAvailable() )
{
// Create instance and register singleton only if the adaptor is available
- manager = Dali::ImfManager( new ImfManager() );
+ imfManager = new ImfManager();
+ manager = Dali::ImfManager( imfManager );
service.Register( typeid( manager ), manager );
}
else
{
DALI_LOG_ERROR("Failed to get native window handle\n");
}
+
+ if ( ( imfManager != NULL ) && !imfManager->mInited )
+ {
+ imfManager->ConnectCallbacks();
+ imfManager->mInited = true;
+ }
+
return manager;
}
+
ImfManager::ImfManager()
: mTextInputManager( TextInputManager::Get() ),
mPreEditCursorPosition( 0 ),
mEditCursorPosition( 0 ),
+ mInited( false ),
mRestoreAfterFocusLost( false )
{
- ConnectCallbacks();
}
+
ImfManager::~ImfManager()
{
- DisconnectCallbacks();
+ Finalize();
}
void ImfManager::ConnectCallbacks()
void ImfManager::DeleteSurroundingText( int index, unsigned int length )
{
- DALI_LOG_INFO( gLogFilter, Debug::General, "ImfManager::DeleteSurroundingText %d %d \n" index, length );
+ DALI_LOG_INFO( gLogFilter, Debug::General, "ImfManager::DeleteSurroundingText %d %d \n", index, length );
Dali::ImfManager::ImfEventData imfData( Dali::ImfManager::DELETESURROUNDING, std::string(),index, length );
Dali::ImfManager handle( this );
return mSurroundingText;
}
+void ImfManager::NotifyTextInputMultiLine( bool multiLine )
+{
+}
+
+Dali::Rect< int > ImfManager::GetInputMethodArea()
+{
+ TextInputManager::SeatInfo& info = mTextInputManager.GetLastActiveSeat();
+ return info.mInputPanelDimensions;
+}
+
+void ImfManager::ApplyOptions(const InputMethodOptions& options)
+{
+}
+
+void ImfManager::SetInputPanelData( const std::string& data )
+{
+}
+
+void ImfManager::GetInputPanelData( std::string& data )
+{
+}
+
+Dali::ImfManager::State ImfManager::GetInputPanelState()
+{
+ return Dali::ImfManager::DEFAULT;
+}
+
+void ImfManager::SetReturnKeyState( bool visible )
+{
+}
+
+void ImfManager::AutoEnableInputPanel( bool enabled )
+{
+}
+
+void ImfManager::ShowInputPanel()
+{
+}
+
+void ImfManager::HideInputPanel()
+{
+}
+
+Dali::ImfManager::KeyboardType ImfManager::GetKeyboardType()
+{
+ return Dali::ImfManager::KeyboardType::SOFTWARE_KEYBOARD;
+}
+
+std::string ImfManager::GetInputPanelLocale()
+{
+ return NULL;
+}
+
+Dali::ImfManager::TextDirection ImfManager::GetTextDirection()
+{
+ TextInputManager::SeatInfo& info = mTextInputManager.GetLastActiveSeat();
+ return (Dali::ImfManager::TextDirection)info.mTextDirection;
+}
+
} // Adaptor
} // Internal