Add default value into window member data
[platform/core/uifw/dali-adaptor.git] / adaptors / wayland / window-impl-wl.cpp
index 808ae52..4d59200 100644 (file)
@@ -104,11 +104,11 @@ struct Window::EventHandler
 };
 
 
-Window* Window::New(const PositionSize& posSize, const std::string& name, bool isTransparent)
+Window* Window::New(const PositionSize& posSize, const std::string& name, const std::string& className, bool isTransparent)
 {
   Window* window = new Window();
   window->mIsTransparent = isTransparent;
-  window->Initialize(posSize, name);
+  window->Initialize(posSize, name, className);
   return window;
 }
 
@@ -148,28 +148,6 @@ RenderSurface* Window::GetSurface()
   return mSurface;
 }
 
-void Window::SetIndicatorStyle( Dali::Window::IndicatorStyle style )
-{
-  mIndicatorStyle = style;
-}
-
-void Window::ShowIndicator( bool show )
-{
-  DALI_LOG_TRACE_METHOD_FMT( gWindowLogFilter, "%s\n", show?"SHOW":"HIDE" );
-  DALI_ASSERT_DEBUG(mOverlay);
-
-  if(show)
-  {
-    mIndicatorVisible = Dali::Window::VISIBLE;
-  }
-  else
-  {
-    mIndicatorVisible = Dali::Window::INVISIBLE;
-  }
-
-  DoShowIndicator( mIndicatorOrientation );
-}
-
 void Window::ShowIndicator( Dali::Window::IndicatorVisibleMode visibleMode )
 {
   DALI_LOG_TRACE_METHOD_FMT( gWindowLogFilter, "visible : %d\n", visibleMode );
@@ -201,7 +179,6 @@ void Window::SetClass(std::string name, std::string klass)
 
 Window::Window()
 : mSurface(NULL),
-  mIndicatorStyle(Dali::Window::CHANGEABLE_COLOR),
   mIndicatorVisible(Dali::Window::VISIBLE),
   mIndicatorIsShown(false),
   mShowRotatedIndicatorOnClose(false),
@@ -213,7 +190,9 @@ Window::Window()
   mNextIndicatorOrientation(Dali::Window::PORTRAIT),
   mIndicatorOpacityMode(Dali::Window::OPAQUE),
   mOverlay(NULL),
-  mAdaptor(NULL)
+  mAdaptor(NULL),
+  mEventHandler(NULL),
+  mPreferredOrientation(Dali::Window::PORTRAIT)
 {
 }
 
@@ -221,6 +200,12 @@ Window::~Window()
 {
   delete mEventHandler;
 
+  if( mIndicator )
+  {
+    mIndicator->Close();
+    delete mIndicator;
+  }
+
   if ( mAdaptor )
   {
     mAdaptor->RemoveObserver( *this );
@@ -231,12 +216,16 @@ Window::~Window()
   delete mSurface;
 }
 
-void Window::Initialize(const PositionSize& windowPosition, const std::string& name)
+void Window::Initialize(const PositionSize& windowPosition, const std::string& name, const std::string& className)
 {
   // create an Wayland window by default
   Any surface;
-  Any display;
-  mSurface = new ECore::WindowRenderSurface( windowPosition, surface, display, name, mIsTransparent );
+  ECore::WindowRenderSurface* windowSurface = new ECore::WindowRenderSurface( windowPosition, surface, name, mIsTransparent );
+  SetClass( name, className );
+  windowSurface->Map();
+
+  mSurface = windowSurface;
+
   mOrientation = Orientation::New(this);
 
   // create event handler for Wayland window
@@ -249,7 +238,7 @@ void Window::DoShowIndicator( Dali::Window::WindowOrientation lastOrientation )
   {
     if( mIndicatorVisible != Dali::Window::INVISIBLE )
     {
-      mIndicator = new Indicator( mAdaptor, mIndicatorOrientation, mIndicatorStyle, this );
+      mIndicator = new Indicator( mAdaptor, mIndicatorOrientation, this );
       mIndicator->SetOpacityMode( mIndicatorOpacityMode );
       Dali::Actor actor = mIndicator->GetActor();
       SetIndicatorActorRotation();
@@ -321,6 +310,11 @@ void Window::IndicatorClosed( Indicator* indicator )
   }
 }
 
+void Window::IndicatorVisibilityChanged(bool isVisible)
+{
+  mIndicatorVisibilityChangedSignal.Emit(isVisible);
+}
+
 void Window::SetIndicatorActorRotation()
 {
   DALI_LOG_TRACE_METHOD( gWindowLogFilter );
@@ -332,22 +326,22 @@ void Window::SetIndicatorActorRotation()
     case Dali::Window::PORTRAIT:
       actor.SetParentOrigin( ParentOrigin::TOP_CENTER );
       actor.SetAnchorPoint(  AnchorPoint::TOP_CENTER );
-      actor.SetRotation( Degree(0), Vector3::ZAXIS );
+      actor.SetOrientation( Degree(0), Vector3::ZAXIS );
       break;
     case Dali::Window::PORTRAIT_INVERSE:
       actor.SetParentOrigin( ParentOrigin::BOTTOM_CENTER );
       actor.SetAnchorPoint(  AnchorPoint::TOP_CENTER );
-      actor.SetRotation( Degree(180), Vector3::ZAXIS );
+      actor.SetOrientation( Degree(180), Vector3::ZAXIS );
       break;
     case Dali::Window::LANDSCAPE:
       actor.SetParentOrigin( ParentOrigin::CENTER_LEFT );
       actor.SetAnchorPoint(  AnchorPoint::TOP_CENTER );
-      actor.SetRotation( Degree(270), Vector3::ZAXIS );
+      actor.SetOrientation( Degree(270), Vector3::ZAXIS );
       break;
     case Dali::Window::LANDSCAPE_INVERSE:
       actor.SetParentOrigin( ParentOrigin::CENTER_RIGHT );
       actor.SetAnchorPoint(  AnchorPoint::TOP_CENTER );
-      actor.SetRotation( Degree(90), Vector3::ZAXIS );
+      actor.SetOrientation( Degree(90), Vector3::ZAXIS );
       break;
   }
 }
@@ -369,6 +363,18 @@ Dali::DragAndDropDetector Window::GetDragAndDropDetector() const
   return mDragAndDropDetector;
 }
 
+Dali::Any Window::GetNativeHandle() const
+{
+  if(mEventHandler)
+  {
+    return mEventHandler->mEcoreWindow;
+  }
+  else
+  {
+    return Dali::Any();
+  }
+}
+
 void Window::OnStart()
 {
   DoShowIndicator( mIndicatorOrientation );
@@ -405,11 +411,6 @@ void Window::OnDestroy()
   mAdaptor = NULL;
 }
 
-OrientationPtr Window::GetOrientation()
-{
-  return mOrientation;
-}
-
 void Window::AddAvailableOrientation(Dali::Window::WindowOrientation orientation)
 {
   bool found = false;