#include <internal/widget_view/widget_view_impl.h>
// EXTERNAL INCLUDES
+#include <dali/public-api/object/type-registry.h>
+#include <dali/public-api/object/type-registry-helper.h>
#include <dali/integration-api/debug.h>
#include <system_info.h>
#include <cynara-client.h>
#include <unistd.h>
#include <widget_errno.h>
#include <widget_instance.h>
+#include <screen_connector_watcher.h>
namespace Dali
{
Integration::Log::Filter* gWidgetViewManagerLogging = Integration::Log::Filter::New( Debug::Verbose, false, "LOG_WIDGET_VIEW_MANAGER" );
#endif
+BaseHandle Create()
+{
+ return Dali::BaseHandle();
+}
+
+DALI_TYPE_REGISTRATION_BEGIN( Dali::WidgetView::WidgetViewManager, Dali::BaseHandle, Create );
+
static bool IsWidgetFeatureEnabled()
{
static bool feature = false;
WidgetViewManager::~WidgetViewManager()
{
+ screen_connector_watcher_fini();
widget_instance_unlisten_event( WidgetViewManager::WidgetEventCallback );
widget_instance_fini();
}
return WIDGET_ERROR_PERMISSION_DENIED;
}
- // create compositor
- mCompositor = Pepper::Compositor::New( application, name );
-
- mCompositor.ObjectViewAddedSignal().Connect( this, &WidgetViewManager::OnObjectViewAdded );
- mCompositor.ObjectViewDeletedSignal().Connect( this, &WidgetViewManager::OnObjectViewDeleted );
+ // Binds tizen remote surface manager & connects callback
+ if( screen_connector_watcher_init() < 0 )
+ {
+ return WIDGET_ERROR_FAULT;
+ }
// init widget service
widget_instance_init( name.c_str() );
DALI_LOG_INFO( gWidgetViewManagerLogging, Debug::Verbose, "WidgetViewManager::Initialize: success.\n" );
- setenv("WAYLAND_DISPLAY", mCompositor.GetName().c_str(), 1);
-
return WIDGET_ERROR_NONE;
}
-Dali::WidgetView::WidgetView WidgetViewManager::AddWidget( const std::string& widgetId, const std::string& contentInfo, int width, int height, double updatePeriod )
+Dali::WidgetView::WidgetView WidgetViewManager::AddWidget( const std::string& widgetId, const std::string& contentInfo, int width, int height, float updatePeriod )
{
// Add a new widget view
Dali::WidgetView::WidgetView widgetView = Dali::WidgetView::WidgetView::New( widgetId, contentInfo, width, height, updatePeriod );
- std::string instanceId = widgetView.GetInstanceId();
+ std::string instanceId;
+ Property::Value value = widgetView.GetProperty( Dali::WidgetView::WidgetView::Property::INSTANCE_ID );
+ value.Get( instanceId );
if( !instanceId.empty() )
{
return widgetView;
}
-void WidgetViewManager::OnObjectViewAdded( Pepper::Compositor compositor, Pepper::ObjectView objectView )
-{
- std::string appId = objectView.GetAppId(); // widget instance id
-
- if( mWidgetViewContainer.size() > 0)
- {
- WidgetViewIter iter = mWidgetViewContainer.find( appId );
- if( iter != mWidgetViewContainer.end() )
- {
- Dali::WidgetView::WidgetView widgetView = iter->second;
-
- Dali::WidgetView::GetImplementation( widgetView ).AddObjectView( objectView );
- }
- }
-
- DALI_LOG_INFO( gWidgetViewManagerLogging, Debug::Verbose, "WidgetViewManager::OnObjectViewAdded: ObjectView is added!\n" );
-}
-
-void WidgetViewManager::OnObjectViewDeleted( Pepper::Compositor compositor, Pepper::ObjectView objectView )
-{
- std::string appId = objectView.GetAppId(); // widget instance id
-
- // Remove from map
- if( mWidgetViewContainer.size() > 0)
- {
- WidgetViewIter iter = mWidgetViewContainer.find( appId );
- if( iter != mWidgetViewContainer.end() )
- {
- Dali::WidgetView::WidgetView widgetView = iter->second;
-
- Dali::WidgetView::GetImplementation( widgetView ).RemoveObjectView();
-
- mWidgetViewContainer.erase( iter );
- }
- }
-
- DALI_LOG_INFO( gWidgetViewManagerLogging, Debug::Verbose, "WidgetViewManager::OnObjectViewDeleted: ObjectView is deleted!\n" );
-}
-
int WidgetViewManager::WidgetEventCallback( const char* widgetId, const char* instanceId, int event, void* data )
{
WidgetViewManager* widgetViewManager = static_cast< WidgetViewManager* >( data );