X-Git-Url: http://review.tizen.org/git/?a=blobdiff_plain;f=dali%2Finternal%2Fwindow-system%2Fcommon%2Fwindow-impl.h;h=d0d6866f1b086fbaed3346f74ef2ba78bbfd74a0;hb=f79805402bf8bd9b7ceb4561d4c089411fb5927f;hp=2270a4bc67af178981fb73e1678bf00f19ed46b4;hpb=0ec1636c3a1f053d723f332b72d05e660864a283;p=platform%2Fcore%2Fuifw%2Fdali-adaptor.git diff --git a/dali/internal/window-system/common/window-impl.h b/dali/internal/window-system/common/window-impl.h old mode 100755 new mode 100644 index 2270a4b..d0d6866 --- a/dali/internal/window-system/common/window-impl.h +++ b/dali/internal/window-system/common/window-impl.h @@ -2,7 +2,7 @@ #define DALI_INTERNAL_WINDOWSYSTEM_COMMON_WINDOW_IMPL_H /* - * Copyright (c) 2020 Samsung Electronics Co., Ltd. + * Copyright (c) 2023 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. @@ -19,19 +19,21 @@ */ // EXTERNAL INCLUDES -#include -#include #include -#include +#include +#include +#include #include +#include +#include // INTERNAL INCLUDES -#include -#include #include #include #include #include +#include +#include namespace Dali { @@ -48,9 +50,9 @@ class WindowRenderSurface; class WindowBase; class Window; -using WindowPtr = IntrusivePtr< Window >; -using OrientationPtr = IntrusivePtr< Orientation >; -using EventHandlerPtr = IntrusivePtr< EventHandler >; +using WindowPtr = IntrusivePtr; +using OrientationPtr = IntrusivePtr; +using EventHandlerPtr = IntrusivePtr; /** * Window provides a surface to render onto with orientation & indicator properties. @@ -58,22 +60,27 @@ using EventHandlerPtr = IntrusivePtr< EventHandler >; class Window : public Dali::Internal::Adaptor::SceneHolder, public EventHandler::Observer, public ConnectionTracker { public: - typedef Dali::Window::FocusChangeSignalType FocusChangeSignalType; - typedef Dali::Window::ResizeSignalType ResizeSignalType; - typedef Dali::DevelWindow::VisibilityChangedSignalType VisibilityChangedSignalType; - typedef Dali::DevelWindow::TransitionEffectEventSignalType TransitionEffectEventSignalType; + typedef Dali::Window::FocusChangeSignalType FocusChangeSignalType; + typedef Dali::Window::ResizeSignalType ResizeSignalType; + typedef Dali::DevelWindow::VisibilityChangedSignalType VisibilityChangedSignalType; + typedef Dali::DevelWindow::TransitionEffectEventSignalType TransitionEffectEventSignalType; typedef Dali::DevelWindow::KeyboardRepeatSettingsChangedSignalType KeyboardRepeatSettingsChangedSignalType; - typedef Signal< void () > SignalType; + typedef Dali::DevelWindow::AuxiliaryMessageSignalType AuxiliaryMessageSignalType; + typedef Dali::DevelWindow::AccessibilityHighlightSignalType AccessibilityHighlightSignalType; + typedef Dali::DevelWindow::MovedSignalType MovedSignalType; + typedef Dali::DevelWindow::OrientationChangedSignalType OrientationChangedSignalType; + typedef Signal SignalType; /** * @brief Create a new Window. This should only be called once by the Application class * @param[in] positionSize The position and size of the window * @param[in] name The window title * @param[in] className The window class name + * @param[in] type Window type. * @param[in] isTransparent Whether window is transparent * @return A newly allocated Window */ - static Window* New(const PositionSize& positionSize, const std::string& name, const std::string& className, bool isTransparent = false); + static Window* New(const PositionSize& positionSize, const std::string& name, const std::string& className, Dali::WindowType type, bool isTransparent = false); /** * @brief Create a new Window. This should only be called once by the Application class @@ -81,15 +88,16 @@ public: * @param[in] positionSize The position and size of the window * @param[in] name The window title * @param[in] className The window class name + * @param[in] type Window type. * @param[in] isTransparent Whether window is transparent * @return A newly allocated Window */ - static Window* New(Any surface, const PositionSize& positionSize, const std::string& name, const std::string& className, bool isTransparent = false); + static Window* New(Any surface, const PositionSize& positionSize, const std::string& name, const std::string& className, Dali::WindowType type, bool isTransparent = false); /** * @copydoc Dali::Window::SetClass() */ - void SetClass( std::string name, std::string className ); + void SetClass(std::string name, std::string className); /** * @brief Gets the window class name. @@ -113,6 +121,36 @@ public: void Activate(); /** + * @copydoc Dali::DevelWindow::Maximize() + */ + void Maximize(bool maximize); + + /** + * @copydoc Dali::DevelWindow::IsMaximized() + */ + bool IsMaximized() const; + + /** + * @copydoc Dali::DevelWindow::SetMaximumSize() + */ + void SetMaximumSize(Dali::Window::WindowSize size); + + /** + * @copydoc Dali::DevelWindow::Minimize() + */ + void Minimize(bool minimize); + + /** + * @copydoc Dali::DevelWindow::IsMinimized() + */ + bool IsMinimized() const; + + /** + * @copydoc Dali::DevelWindow::SetMimimumSize() + */ + void SetMimimumSize(Dali::Window::WindowSize size); + + /** * @copydoc Dali::Window::GetLayerCount() */ uint32_t GetLayerCount() const; @@ -120,7 +158,7 @@ public: /** * @copydoc Dali::Window::GetLayer() */ - Dali::Layer GetLayer( uint32_t depth ) const; + Dali::Layer GetLayer(uint32_t depth) const; /** * @copydoc Dali::DevelWindow::GetRenderTaskList() @@ -128,29 +166,35 @@ public: Dali::RenderTaskList GetRenderTaskList() const; /** + * @brief Get window resource ID assigned by window manager + * @return The resource ID of the window + */ + std::string GetNativeResourceId() const; + + /** * @copydoc Dali::Window::AddAvailableOrientation() */ - void AddAvailableOrientation(Dali::Window::WindowOrientation orientation); + void AddAvailableOrientation(WindowOrientation orientation); /** * @copydoc Dali::Window::RemoveAvailableOrientation() */ - void RemoveAvailableOrientation(Dali::Window::WindowOrientation orientation); + void RemoveAvailableOrientation(WindowOrientation orientation); /** * @copydoc Dali::Window::SetPreferredOrientation() */ - void SetPreferredOrientation(Dali::Window::WindowOrientation orientation); + void SetPreferredOrientation(WindowOrientation orientation); /** * @copydoc Dali::Window::GetPreferredOrientation() */ - Dali::Window::WindowOrientation GetPreferredOrientation(); + WindowOrientation GetPreferredOrientation(); /** * @copydoc Dali::Window::SetAcceptFocus() */ - void SetAcceptFocus( bool accept ); + void SetAcceptFocus(bool accept); /** * @copydoc Dali::Window::IsFocusAcceptable() @@ -175,62 +219,62 @@ public: /** * @copydoc Dali::Window::GetSupportedAuxiliaryHint() */ - std::string GetSupportedAuxiliaryHint( unsigned int index ) const; + std::string GetSupportedAuxiliaryHint(unsigned int index) const; /** * @copydoc Dali::Window::AddAuxiliaryHint() */ - unsigned int AddAuxiliaryHint( const std::string& hint, const std::string& value ); + unsigned int AddAuxiliaryHint(const std::string& hint, const std::string& value); /** * @copydoc Dali::Window::RemoveAuxiliaryHint() */ - bool RemoveAuxiliaryHint( unsigned int id ); + bool RemoveAuxiliaryHint(unsigned int id); /** * @copydoc Dali::Window::SetAuxiliaryHintValue() */ - bool SetAuxiliaryHintValue( unsigned int id, const std::string& value ); + bool SetAuxiliaryHintValue(unsigned int id, const std::string& value); /** * @copydoc Dali::Window::GetAuxiliaryHintValue() */ - std::string GetAuxiliaryHintValue( unsigned int id ) const; + std::string GetAuxiliaryHintValue(unsigned int id) const; /** * @copydoc Dali::Window::GetAuxiliaryHintId() */ - unsigned int GetAuxiliaryHintId( const std::string& hint ) const; + unsigned int GetAuxiliaryHintId(const std::string& hint) const; /** * @copydoc Dali::Window::SetInputRegion() */ - void SetInputRegion( const Rect< int >& inputRegion ); + void SetInputRegion(const Rect& inputRegion); /** * @copydoc Dali::Window::SetType() */ - void SetType( Dali::Window::Type type ); + void SetType(WindowType type); /** * @copydoc Dali::Window::GetType() const */ - Dali::Window::Type GetType() const; + WindowType GetType() const; /** * @copydoc Dali::Window::SetNotificationLevel() */ - bool SetNotificationLevel( Dali::Window::NotificationLevel::Type level ); + WindowOperationResult SetNotificationLevel(WindowNotificationLevel level); /** * @copydoc Dali::Window::GetNotificationLevel() */ - Dali::Window::NotificationLevel::Type GetNotificationLevel() const; + WindowNotificationLevel GetNotificationLevel() const; /** * @copydoc Dali::Window::SetOpaqueState() */ - void SetOpaqueState( bool opaque ); + void SetOpaqueState(bool opaque); /** * @copydoc Dali::Window::IsOpaqueState() @@ -240,17 +284,17 @@ public: /** * @copydoc Dali::Window::SetScreenOffMode() */ - bool SetScreenOffMode(Dali::Window::ScreenOffMode::Type screenOffMode); + WindowOperationResult SetScreenOffMode(WindowScreenOffMode screenOffMode); /** * @copydoc Dali::Window::GetScreenOffMode() */ - Dali::Window::ScreenOffMode::Type GetScreenOffMode() const; + WindowScreenOffMode GetScreenOffMode() const; /** * @copydoc Dali::Window::SetBrightness() */ - bool SetBrightness( int brightness ); + WindowOperationResult SetBrightness(int brightness); /** * @copydoc Dali::Window::GetBrightness() @@ -260,7 +304,7 @@ public: /** * @copydoc Dali::Window::SetSize() */ - void SetSize( Dali::Window::WindowSize size ); + void SetSize(Dali::Window::WindowSize size); /** * @copydoc Dali::Window::GetSize() @@ -270,7 +314,7 @@ public: /** * @copydoc Dali::Window::SetPosition() */ - void SetPosition( Dali::Window::WindowPosition position ); + void SetPosition(Dali::Window::WindowPosition position); /** * @copydoc Dali::Window::GetPosition() @@ -280,7 +324,17 @@ public: /** * @copydoc Dali::DevelWindow::SetPositionSize() */ - void SetPositionSize( PositionSize positionSize ); + void SetPositionSize(PositionSize positionSize); + + /** + * @copydoc Dali::DevelWindow::GetPositionSize() + */ + PositionSize GetPositionSize() const; + + /** + * @copydoc Dali::Window::SetLayout() + */ + void SetLayout(unsigned int numCols, unsigned int numRows, unsigned int column, unsigned int row, unsigned int colSpan, unsigned int rowSpan); /** * @copydoc Dali::Window::GetRootLayer() @@ -290,37 +344,42 @@ public: /** * @copydoc Dali::Window::SetTransparency() */ - void SetTransparency( bool transparent ); + void SetTransparency(bool transparent); /** * @copydoc Dali::KeyGrab::GrabKey() */ - bool GrabKey( Dali::KEY key, KeyGrab::KeyGrabMode grabMode ); + bool GrabKey(Dali::KEY key, KeyGrab::KeyGrabMode grabMode); /** * @copydoc Dali::KeyGrab::UngrabKey() */ - bool UngrabKey( Dali::KEY key ); + bool UngrabKey(Dali::KEY key); /** * @copydoc Dali::KeyGrab::GrabKeyList() */ - bool GrabKeyList( const Dali::Vector< Dali::KEY >& key, const Dali::Vector< KeyGrab::KeyGrabMode >& grabMode, Dali::Vector< bool >& result ); + bool GrabKeyList(const Dali::Vector& key, const Dali::Vector& grabMode, Dali::Vector& result); /** * @copydoc Dali::KeyGrab::UngrabKeyList() */ - bool UngrabKeyList( const Dali::Vector< Dali::KEY >& key, Dali::Vector< bool >& result ); + bool UngrabKeyList(const Dali::Vector& key, Dali::Vector& result); /** * @copydoc Dali::DevelWindow::Get() */ - static Dali::Window Get( Dali::Actor actor ); + static Dali::Window Get(Dali::Actor actor); /** - * @copydoc Dali::DevelWindow::SetParent() + * @copydoc Dali::DevelWindow::SetParent(Window window, Window parent) */ - void SetParent( Dali::Window& parent ); + void SetParent(Dali::Window& parent); + + /** + * @copydoc Dali::DevelWindow::SetParent(Window window, Window parent, bool belowParent) + */ + void SetParent(Dali::Window& parent, bool belowParent); /** * @copydoc Dali::DevelWindow::Unparent() @@ -335,16 +394,42 @@ public: /** * @copydoc Dali::DevelWindow::GetCurrentOrientation() */ - Dali::Window::WindowOrientation GetCurrentOrientation() const; + WindowOrientation GetCurrentOrientation() const; + + /** + * @copydoc Dali::DevelWindow::GetPhysicalOrientation() + */ + int GetPhysicalOrientation() const; /** * @copydoc Dali::DevelWindow::SetAvailableOrientations() */ - void SetAvailableOrientations( const Dali::Vector& orientations ); + void SetAvailableOrientations(const Dali::Vector& orientations); -public: // Dali::Internal::Adaptor::SceneHolder + /** + * @copydoc Dali::DevelWindow::SetPositionSizeWithOrientation() + */ + void SetPositionSizeWithOrientation(PositionSize positionSize, WindowOrientation orientation); + + /** + * @brief Emit the accessibility highlight signal. + * The highlight indicates that it is an object to interact with the user regardless of focus. + * After setting the highlight on the object, you can do things that the object can do, such as + * giving or losing focus. + * + * @param[in] highlight If window needs to grab or clear highlight. + */ + void EmitAccessibilityHighlightSignal(bool highlight); /** + * @brief Sets the render notification trigger to call when render thread is completed a frame + * + * @param[in] renderNotification to use + */ + void SetRenderNotification(TriggerEventInterface *renderNotification); + +public: // Dali::Internal::Adaptor::SceneHolder + /** * @copydoc Dali::Internal::Adaptor::SceneHolder::GetNativeHandle */ Dali::Any GetNativeHandle() const override; @@ -359,9 +444,58 @@ public: // Dali::Internal::Adaptor::SceneHolder */ int32_t GetNativeId() const; -private: + /** + * @copydoc Dali::DevelWindow::RequestMoveToServer() + */ + void RequestMoveToServer(); + + /** + * @copydoc Dali::DevelWindow::RequestResizeToServer() + */ + void RequestResizeToServer(WindowResizeDirection direction); + + /** + * @copydoc Dali::DevelWindow::EnableFloatingMode() + */ + void EnableFloatingMode(bool enable); + + /** + * @copydoc Dali::DevelWindow::IncludeInputRegion() + */ + void IncludeInputRegion(const Rect& inputRegion); /** + * @copydoc Dali::DevelWindow::ExcludeInputRegion() + */ + void ExcludeInputRegion(const Rect& inputRegion); + + /** + * @copydoc Dali::DevelWindow::SetNeedsRotationCompletedAcknowledgement() + */ + void SetNeedsRotationCompletedAcknowledgement(bool needAcknowledgement); + + /** + * @copydoc Dali::DevelWindow::SendRotationCompletedAcknowledgement() + */ + void SendRotationCompletedAcknowledgement(); + + /** + * @copydoc Dali::DevelWindow::IsWindowRotating() + */ + bool IsWindowRotating() const; + + /** + * @copydoc Dali::DevelWindow::GetLastKeyEvent() + */ + const Dali::KeyEvent& GetLastKeyEvent() const; + + /** + * @copydoc Dali::DevelWindow::GetLastTouchEvent() + */ + const Dali::TouchEvent& GetLastTouchEvent() const; + +private: + /** * @brief Enumeration for orietation mode. * The Orientation Mode is related to screen size. * If screen width is longer than height, the Orientation Mode will have LANDSCAPE. @@ -387,17 +521,22 @@ private: /** * Second stage initialization */ - void Initialize(Any surface, const PositionSize& positionSize, const std::string& name, const std::string& className); + void Initialize(Any surface, const PositionSize& positionSize, const std::string& name, const std::string& className, WindowType type); /** * Called when the window becomes iconified or deiconified. */ - void OnIconifyChanged( bool iconified ); + void OnIconifyChanged(bool iconified); + + /** + * Called when the window becomes maximized or unmaximized. + */ + void OnMaximizeChanged(bool maximized); /** * Called when the window focus is changed. */ - void OnFocusChanged( bool focusIn ); + void OnFocusChanged(bool focusIn); /** * Called when the output is transformed. @@ -412,7 +551,7 @@ private: /** * Called when the window receives a Transition effect-start/end event. */ - void OnTransitionEffectEvent( DevelWindow::EffectState state, DevelWindow::EffectType type ); + void OnTransitionEffectEvent(WindowEffectState state, WindowEffectType type); /** * @brief Called when window receives a keyboard repeat event. @@ -425,36 +564,86 @@ private: void OnWindowRedrawRequest(); /** + * @brief Called when the window is resized or moved by display server. + * + * @param[in] positionSize the updated window's position and size. + */ + void OnUpdatePositionSize(Dali::PositionSize& positionSize); + + /** + * @brief Called when display server sent the auxiliary message. + * + * @param[in] key the auxiliary message's key. + * @param[in] value the auxiliary message's value. + * @param[in] options the auxiliary message's options. This is the list of string. + */ + void OnAuxiliaryMessage(const std::string& key, const std::string& value, const Property::Array& options); + + /** + * @brief Called when Accessibility is enabled. + * + * This method is to register the window to accessibility bridge. + */ + void OnAccessibilityEnabled(); + + /** + * @brief Called when Accessibility is disabled. + * + * This method is to remove the window from accessibility bridge. + */ + void OnAccessibilityDisabled(); + + /** + * Called when the window rotation is finished. + * + * This signal is emmit when window rotation is finisehd and WindowRotationCompleted() is called. + */ + void OnRotationFinished(); + + /** * @brief Set available orientation to window base. */ - void SetAvailableAnlges( const std::vector< int >& angles ); + void SetAvailableAnlges(const std::vector& angles); /** * @brief Convert from window orientation to angle using OrientationMode. */ - int ConvertToAngle( Dali::Window::WindowOrientation orientation ); + int ConvertToAngle(WindowOrientation orientation); /** * @brief Convert from angle to window orientation using OrientationMode. */ - Dali::Window::WindowOrientation ConvertToOrientation( int angle ) const; + WindowOrientation ConvertToOrientation(int angle) const; /** * @brief Check available window orientation for Available orientation. */ - bool IsOrientationAvailable( Dali::Window::WindowOrientation orientation ) const; + bool IsOrientationAvailable(WindowOrientation orientation) const; -private: // Dali::Internal::Adaptor::SceneHolder + /** + * @brief Return the rect value to recalulate with the default system coordinates. + * + * Some native window APIs work the geometry value based on the default system coordinates. + * IncludeInputRegion() and ExcludeInputRegion() are one of them. + * When the window is rotated, current window's geometry already were set with the rotated angle. + * If IncludeInputRegion() or ExcludeInputRegion() are called with rotated angle by application, + * the rect's area should be re-calcuated on the default system coordinates. + * + * @param[in] rect the window's current position and size with current window rotation angle. + * @return the re-calculated rect on the default system coordinates. + */ + Rect RecalculateRect(const Rect& rect); +private: // Dali::Internal::Adaptor::SceneHolder /** * @copydoc Dali::Internal::Adaptor::SceneHolder::OnAdaptorSet */ - void OnAdaptorSet( Dali::Adaptor& adaptor ) override; + void OnAdaptorSet(Dali::Adaptor& adaptor) override; /** * @copydoc Dali::Internal::Adaptor::SceneHolder::OnSurfaceSet */ - void OnSurfaceSet( Dali::RenderSurfaceInterface* surface ) override; + void OnSurfaceSet(Dali::RenderSurfaceInterface* surface) override; /** * @copydoc Dali::Internal::Adaptor::SceneHolder::OnPause @@ -467,96 +656,138 @@ private: // Dali::Internal::Adaptor::SceneHolder void OnResume() override; /** - * @copydoc Dali::Internal::Adaptor::SceneHolder::RecalculateTouchPosition + * @copydoc Dali::Internal::Adaptor::SceneHolder::RecalculatePosition */ - void RecalculateTouchPosition( Integration::Point& point ) override; + Vector2 RecalculatePosition(const Vector2& position) override; private: // Dali::Internal::Adaptor::EventHandler::Observer - /** * @copydoc Dali::Internal::Adaptor::EventHandler::Observer::OnTouchPoint */ - void OnTouchPoint( Dali::Integration::Point& point, int timeStamp ) override; + void OnTouchPoint(Dali::Integration::Point& point, int timeStamp) override; /** * @copydoc Dali::Internal::Adaptor::EventHandler::Observer::OnWheelEvent */ - void OnWheelEvent( Dali::Integration::WheelEvent& wheelEvent ) override; + void OnWheelEvent(Dali::Integration::WheelEvent& wheelEvent) override; /** * @copydoc Dali::Internal::Adaptor::EventHandler::Observer::OnKeyEvent */ - void OnKeyEvent( Dali::Integration::KeyEvent& keyEvent ) override; + void OnKeyEvent(Dali::Integration::KeyEvent& keyEvent) override; /** * @copydoc Dali::Internal::Adaptor::EventHandler::Observer::OnRotation */ - void OnRotation( const RotationEvent& rotation ) override; + void OnRotation(const RotationEvent& rotation) override; public: // Signals - /** * @copydoc Dali::Window::FocusChangeSignal() */ - FocusChangeSignalType& FocusChangeSignal() { return mFocusChangeSignal; } + FocusChangeSignalType& FocusChangeSignal() + { + return mFocusChangeSignal; + } /** * @copydoc Dali::Window::ResizedSignal() */ - ResizeSignalType& ResizeSignal() { return mResizeSignal; } + ResizeSignalType& ResizeSignal() + { + return mResizeSignal; + } /** * This signal is emitted when the window is requesting to be deleted */ - SignalType& DeleteRequestSignal() { return mDeleteRequestSignal; } + SignalType& DeleteRequestSignal() + { + return mDeleteRequestSignal; + } /** * @copydoc Dali::DevelWindow::VisibilityChangedSignal() */ - VisibilityChangedSignalType& VisibilityChangedSignal() { return mVisibilityChangedSignal; } + VisibilityChangedSignalType& VisibilityChangedSignal() + { + return mVisibilityChangedSignal; + } /** * @copydoc Dali::Window::SignalEventProcessingFinished() */ - Dali::DevelWindow::EventProcessingFinishedSignalType& EventProcessingFinishedSignal() { return mScene.EventProcessingFinishedSignal(); } + Dali::DevelWindow::EventProcessingFinishedSignalType& EventProcessingFinishedSignal() + { + return mScene.EventProcessingFinishedSignal(); + } /** * @copydoc Dali::DevelWindow::TransitionEffectEventSignal() */ - TransitionEffectEventSignalType& TransitionEffectEventSignal() { return mTransitionEffectEventSignal; } + TransitionEffectEventSignalType& TransitionEffectEventSignal() + { + return mTransitionEffectEventSignal; + } /** * @copydoc Dali::DevelWindow::KeyboardRepeatSettingsChangedSignal() */ - KeyboardRepeatSettingsChangedSignalType& KeyboardRepeatSettingsChangedSignal() { return mKeyboardRepeatSettingsChangedSignal; } + KeyboardRepeatSettingsChangedSignalType& KeyboardRepeatSettingsChangedSignal() + { + return mKeyboardRepeatSettingsChangedSignal; + } -private: + /** + * @copydoc Dali::DevelWindow::AuxiliaryMessageSignal() + */ + AuxiliaryMessageSignalType& AuxiliaryMessageSignal() + { + return mAuxiliaryMessageSignal; + } + + /** + * @copydoc Dali::DevelWindow::AccessibilityHighlightSignal() + */ + AccessibilityHighlightSignalType& AccessibilityHighlightSignal() + { + return mAccessibilityHighlightSignal; + } - WindowRenderSurface* mWindowSurface; ///< The window rendering surface - WindowBase* mWindowBase; - std::string mName; - std::string mClassName; - bool mIsTransparent:1; - bool mIsFocusAcceptable:1; - bool mIconified:1; - bool mOpaqueState:1; - bool mResizeEnabled:1; - Dali::Window::Type mType; - Dali::Window mParentWindow; + /** + * @copydoc Dali::DevelWindow::MovedSignal() + */ + MovedSignalType& MovedSignal() + { + return mMovedSignal; + } - OrientationPtr mOrientation; - std::vector< int > mAvailableAngles; - int mPreferredAngle; + /** + * @copydoc Dali::DevelWindow::OrientationChangedSignal() + */ + OrientationChangedSignalType& OrientationChangedSignal() + { + return mOrientationChangedSignal; + } - int mRotationAngle; ///< The angle of the rotation - int mWindowWidth; ///< The width of the window - int mWindowHeight; ///< The height of the window +private: + WindowRenderSurface* mWindowSurface; ///< The window rendering surface + WindowBase* mWindowBase; + std::string mName; + std::string mClassName; + Dali::Window mParentWindow; - EventHandlerPtr mEventHandler; ///< The window events handler + OrientationPtr mOrientation; + std::vector mAvailableAngles; + int mPreferredAngle; - OrientationMode mOrientationMode; + int mRotationAngle; ///< The angle of the rotation + int mWindowWidth; ///< The width of the window + int mWindowHeight; ///< The height of the window + int mNativeWindowId; ///< The Native Window Id - int mNativeWindowId; ///< The Native Window Id + EventHandlerPtr mEventHandler; ///< The window events handler + OrientationMode mOrientationMode; ///< The physical screen mode is portrait or landscape // Signals SignalType mDeleteRequestSignal; @@ -565,23 +796,39 @@ private: VisibilityChangedSignalType mVisibilityChangedSignal; TransitionEffectEventSignalType mTransitionEffectEventSignal; KeyboardRepeatSettingsChangedSignalType mKeyboardRepeatSettingsChangedSignal; + AuxiliaryMessageSignalType mAuxiliaryMessageSignal; + AccessibilityHighlightSignalType mAccessibilityHighlightSignal; + MovedSignalType mMovedSignal; + OrientationChangedSignalType mOrientationChangedSignal; + + Dali::KeyEvent mLastKeyEvent; + Dali::TouchEvent mLastTouchEvent; + + bool mIsTransparent : 1; + bool mIsFocusAcceptable : 1; + bool mIconified : 1; + bool mMaximized : 1; + bool mOpaqueState : 1; + bool mWindowRotationAcknowledgement : 1; + bool mFocused : 1; + bool mIsWindowRotating : 1; ///< The window rotating flag. }; } // namespace Adaptor -} // namepsace Internal +} // namespace Internal // Helpers for public-api forwarding methods inline Internal::Adaptor::Window& GetImplementation(Dali::Window& window) { - DALI_ASSERT_ALWAYS( window && "Window handle is empty" ); + DALI_ASSERT_ALWAYS(window && "Window handle is empty"); BaseObject& object = window.GetBaseObject(); return static_cast(object); } inline const Internal::Adaptor::Window& GetImplementation(const Dali::Window& window) { - DALI_ASSERT_ALWAYS( window && "Window handle is empty" ); + DALI_ASSERT_ALWAYS(window && "Window handle is empty"); const BaseObject& object = window.GetBaseObject(); return static_cast(object); }