X-Git-Url: http://review.tizen.org/git/?a=blobdiff_plain;f=dali%2Fpublic-api%2Fadaptor-framework%2Fwindow.cpp;h=d82b0c67c8aa2dfb9d5d38f0134f88d05f13cbe3;hb=c633ee11a612c45148c0d274474d04ec47e0a021;hp=34eb7b088217af733e7fbe7e8e92a8c035bb2669;hpb=5285ea200c4b02668d42366649988fb2965e81c9;p=platform%2Fcore%2Fuifw%2Fdali-adaptor.git diff --git a/dali/public-api/adaptor-framework/window.cpp b/dali/public-api/adaptor-framework/window.cpp index 34eb7b0..d82b0c6 100644 --- a/dali/public-api/adaptor-framework/window.cpp +++ b/dali/public-api/adaptor-framework/window.cpp @@ -1,5 +1,5 @@ /* - * Copyright (c) 2017 Samsung Electronics Co., Ltd. + * Copyright (c) 2019 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 +// EXTERNAL INCLUDES +#include + // INTERNAL INCLUDES #include #include @@ -26,26 +29,42 @@ namespace Dali { +class DALI_INTERNAL DragAndDropDetector : public BaseHandle {}; // Empty class only required to compile Deprecated API GetDragAndDropDetector + Window Window::New(PositionSize posSize, const std::string& name, bool isTransparent) { - Internal::Adaptor::Window* windowImpl = Internal::Adaptor::Window::New(posSize, name, "", isTransparent); - - Dali::Adaptor& adaptor = Internal::Adaptor::Adaptor::Get(); - Dali::Window window = Dali::Window( windowImpl ); - Internal::Adaptor::Adaptor::GetImplementation( adaptor ).AddWindow( &window, name, "", isTransparent ); - - return Window(window); + return Dali::Window::New(posSize, name, "", isTransparent); } Window Window::New(PositionSize posSize, const std::string& name, const std::string& className, bool isTransparent) { - Internal::Adaptor::Window* windowImpl = Internal::Adaptor::Window::New(posSize, name, className, isTransparent); + Window newWindow; + + const bool isAdaptorAvailable = Dali::Adaptor::IsAvailable(); + bool isNewWindowAllowed = true; - Dali::Adaptor& adaptor = Internal::Adaptor::Adaptor::Get(); - Dali::Window window = Dali::Window( windowImpl ); - Internal::Adaptor::Adaptor::GetImplementation( adaptor ).AddWindow( &window, name, className, isTransparent ); + if (isAdaptorAvailable) + { + Dali::Adaptor& adaptor = Internal::Adaptor::Adaptor::Get(); + isNewWindowAllowed = Internal::Adaptor::Adaptor::GetImplementation(adaptor).IsMultipleWindowSupported(); + } - return Window(window); + if (!isNewWindowAllowed) + { + DALI_LOG_ERROR("This device can't support multiple windows.\n"); + } + Internal::Adaptor::Window* window = Internal::Adaptor::Window::New(posSize, name, className, isTransparent); + + Integration::SceneHolder sceneHolder = Integration::SceneHolder(window); + + if (isAdaptorAvailable) + { + Dali::Adaptor& adaptor = Internal::Adaptor::Adaptor::Get(); + Internal::Adaptor::Adaptor::GetImplementation(adaptor).AddWindow(sceneHolder, name, className, isTransparent); + } + newWindow = Window(window); + + return newWindow; } Window::Window() @@ -67,6 +86,41 @@ Window& Window::operator=(const Window& rhs) return *this; } +void Window::Add( Dali::Actor actor ) +{ + GetImplementation( *this ).Add( actor ); +} + +void Window::Remove( Dali::Actor actor ) +{ + GetImplementation( *this ).Remove( actor ); +} + +void Window::SetBackgroundColor( const Vector4& color ) +{ + GetImplementation( *this ).SetBackgroundColor( color ); +} + +Vector4 Window::GetBackgroundColor() const +{ + return GetImplementation( *this ).GetBackgroundColor(); +} + +Layer Window::GetRootLayer() const +{ + return GetImplementation( *this ).GetRootLayer(); +} + +uint32_t Window::GetLayerCount() const +{ + return GetImplementation( *this ).GetLayerCount(); +} + +Layer Window::GetLayer( uint32_t depth ) const +{ + return GetImplementation( *this ).GetLayer( depth ); +} + void Window::ShowIndicator( IndicatorVisibleMode visibleMode ) { DALI_LOG_WARNING_NOFN("DEPRECATION WARNING: ShowIndicator is deprecated and will be removed from next release.\n" ); @@ -125,7 +179,7 @@ void Window::RemoveAvailableOrientation( WindowOrientation orientation ) GetImplementation(*this).RemoveAvailableOrientation( orientation ); } -void Window::SetPreferredOrientation( Dali::Window::WindowOrientation orientation ) +void Window::SetPreferredOrientation( WindowOrientation orientation ) { GetImplementation(*this).SetPreferredOrientation( orientation ); } @@ -137,7 +191,9 @@ Dali::Window::WindowOrientation Window::GetPreferredOrientation() DragAndDropDetector Window::GetDragAndDropDetector() const { - return GetImplementation(*this).GetDragAndDropDetector(); + DALI_LOG_WARNING_NOFN("DEPRECATION WARNING: GetDragAndDropDetector is deprecated and will be removed from the next release.\n" ); + DALI_ASSERT_ALWAYS( &GetImplementation( *this ) == GetObjectPtr() && "Empty Handle" ); + return Dali::DragAndDropDetector(); } Any Window::GetNativeHandle() const @@ -147,9 +203,15 @@ Any Window::GetNativeHandle() const Window::FocusSignalType& Window::FocusChangedSignal() { + DALI_LOG_WARNING_NOFN("DEPRECATION WARNING: FocusChangedSignal is deprecated and will be removed from next release.\n" ); return GetImplementation(*this).FocusChangedSignal(); } +Window::FocusChangeSignalType& Window::FocusChangeSignal() +{ + return GetImplementation(*this).FocusChangeSignal(); +} + void Window::SetAcceptFocus( bool accept ) { GetImplementation(*this).SetAcceptFocus( accept ); @@ -267,9 +329,15 @@ int Window::GetBrightness() const Window::ResizedSignalType& Window::ResizedSignal() { + DALI_LOG_WARNING_NOFN("DEPRECATION WARNING: ResizedSignal is deprecated and will be removed from next release.\n" ); return GetImplementation(*this).ResizedSignal(); } +Window::ResizeSignalType& Window::ResizeSignal() +{ + return GetImplementation(*this).ResizeSignal(); +} + void Window::SetSize( Window::WindowSize size ) { GetImplementation(*this).SetSize( size );