X-Git-Url: http://review.tizen.org/git/?a=blobdiff_plain;f=dali%2Finternal%2Fwindow-system%2Ftizen-wayland%2Fecore-wl2%2Fwindow-base-ecore-wl2.h;h=ee2ed72e25dba963bf843b64c00716b9c4008042;hb=2a3cd3da0c514177fe60d9048cff40fca49191e1;hp=9c71f528370bfe5487cf1b6fdeb905573f1dea69;hpb=97d956df063bcac946699f8483efda6546c2f99a;p=platform%2Fcore%2Fuifw%2Fdali-adaptor.git diff --git a/dali/internal/window-system/tizen-wayland/ecore-wl2/window-base-ecore-wl2.h b/dali/internal/window-system/tizen-wayland/ecore-wl2/window-base-ecore-wl2.h index 9c71f52..ee2ed72 100644 --- a/dali/internal/window-system/tizen-wayland/ecore-wl2/window-base-ecore-wl2.h +++ b/dali/internal/window-system/tizen-wayland/ecore-wl2/window-base-ecore-wl2.h @@ -2,7 +2,7 @@ #define DALI_INTERNAL_WINDOWSYSTEM_TIZENWAYLAND_WINDOW_BASE_ECORE_WL2_H /* - * Copyright (c) 2021 Samsung Electronics Co., Ltd. + * Copyright (c) 2022 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. @@ -29,10 +29,6 @@ #include #include -#ifdef DALI_ELDBUS_AVAILABLE -#include -#endif - namespace Dali { namespace Internal @@ -169,12 +165,12 @@ public: */ void OnEcoreEventWindowRedrawRequest(); -#ifdef DALI_ELDBUS_AVAILABLE /** - * @brief Called when Ecore ElDBus accessibility event is received. + * @brief Called when window's auxiliary is changed then display server send the changed message. + * + * @param[in] auxiliary's message data. It has key, value and integer list data. */ - void OnEcoreElDBusAccessibilityNotification(void* context, const Eldbus_Message* message); -#endif + void OnEcoreEventWindowAuxiliaryMessage(void* event); /** * @brief Called when a keymap is changed. @@ -223,6 +219,11 @@ public: int GetNativeWindowId() override; /** + * @copydoc Dali::Internal::Adaptor::WindowBase::GetNativeWindowResourceId() + */ + std::string GetNativeWindowResourceId() override; + + /** * @copydoc Dali::Internal::Adaptor::WindowBase::CreateEglWindow() */ EGLNativeWindowType CreateEglWindow(int width, int height) override; @@ -272,6 +273,11 @@ public: */ void MoveResize(PositionSize positionSize) override; + /** + * @copydoc Dali::Internal::Adaptor::WindowBase::SetLayout() + */ + void SetLayout(unsigned int numCols, unsigned int numRows, unsigned int column, unsigned int row, unsigned int colSpan, unsigned int rowSpan) override; + /** * @copydoc Dali::Internal::Adaptor::WindowBase::SetClass() */ @@ -293,6 +299,36 @@ public: void Activate() override; /** + * @copydoc Dali::Internal::Adaptor::WindowBase::Maximize() + */ + void Maximize(bool maximize) override; + + /** + * @copydoc Dali::Internal::Adaptor::WindowBase::IsMaximized() + */ + bool IsMaximized() const override; + + /** + * @copydoc Dali::Internal::Adaptor::WindowBase::SetMaximumSize() + */ + void SetMaximumSize(Dali::Window::WindowSize size) override; + + /** + * @copydoc Dali::Internal::Adaptor::WindowBase::Minimize() + */ + void Minimize(bool minimize) override; + + /** + * @copydoc Dali::Internal::Adaptor::WindowBase::IsMinimized() + */ + bool IsMinimized() const override; + + /** + * @copydoc Dali::Internal::Adaptor::WindowBase::SetMimimumSize() + */ + void SetMimimumSize(Dali::Window::WindowSize size) override; + + /** * @copydoc Dali::Internal::Adaptor::WindowBase::SetAvailableAnlges() */ void SetAvailableAnlges(const std::vector& angles) override; @@ -428,9 +464,9 @@ public: void GetDpi(unsigned int& dpiHorizontal, unsigned int& dpiVertical) override; /** - * @copydoc Dali::Internal::Adaptor::WindowBase::GetOrientation() + * @copydoc Dali::Internal::Adaptor::WindowBase::GetWindowRotationAngle() */ - int GetOrientation() const override; + int GetWindowRotationAngle() const override; /** * @copydoc Dali::Internal::Adaptor::WindowBase::GetScreenRotationAngle() @@ -455,7 +491,7 @@ public: /** * @copydoc Dali::Internal::Adaptor::WindowBase::SetParent() */ - void SetParent(WindowBase* parentWinBase) override; + void SetParent(WindowBase* parentWinBase, bool belowParent) override; /** * @copydoc Dali::Internal::Adaptor::WindowBase::CreateFrameRenderedSyncFence() @@ -502,6 +538,16 @@ public: */ bool IsFloatingModeEnabled() const override; + /** + * @copydoc Dali::Internal::Adaptor::WindowBase::IncludeInputRegion() + */ + void IncludeInputRegion(const Rect& inputRegion) override; + + /** + * @copydoc Dali::Internal::Adaptor::WindowBase::ExcludeInputRegion() + */ + void ExcludeInputRegion(const Rect& inputRegion) override; + private: /** * Second stage initialization @@ -509,14 +555,42 @@ private: void Initialize(PositionSize positionSize, Any surface, bool isTransparent); /** - * Initialize Ecore ElDBus + * @brief Create window */ - void InitializeEcoreElDBus(); + void CreateWindow(PositionSize positionSize); /** - * @brief Create window + * @brief Return the window's position and size to recalulate with the default system coordinates. + * It is used when window is moved or resized for native ecore wayland window system. + * + * @param[in] positionSize the window's current position and size with current oriented window's coordinates. + * @return the re-calculated window's position and size on the default system coordinates. */ - void CreateWindow(PositionSize positionSize); + PositionSize RecalculatePositionSizeToSystem(PositionSize positionSize); + + /** + * @brief Return the window's position and size to recalulate with current oriented window's coordinates. + * It is used when window is moved or resized for dali and uppler layer framework. + * + * @param[in] positionSize the window's current position and size with the default system coordinates. + * @return the re-calculated window's position and size on current oriented window's coordinates. + */ + PositionSize RecalculatePositionSizeToCurrentOrientation(PositionSize positionSize); + + + /** + * @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 RecalculateInputRect(const Rect& rect); protected: // Undefined @@ -530,10 +604,18 @@ private: Dali::Vector mEcoreEventHandler; Ecore_Wl2_Window* mEcoreWindow; - wl_surface* mWlSurface; + wl_surface* mWlSurface; +#ifdef OVER_TIZEN_VERSION_7 + zwp_input_panel_v1* mWlInputPanel; +#else wl_input_panel* mWlInputPanel; - wl_output* mWlOutput; +#endif + wl_output* mWlOutput; +#ifdef OVER_TIZEN_VERSION_7 + zwp_input_panel_surface_v1* mWlInputPanelSurface; +#else wl_input_panel_surface* mWlInputPanelSurface; +#endif wl_egl_window* mEglWindow; wl_display* mDisplay; @@ -544,8 +626,10 @@ private: std::vector mSupportedAuxiliaryHints; + // It is based on the default system coordinates. Dali::PositionSize mWindowPositionSize; - AuxiliaryHints mAuxiliaryHints; + + AuxiliaryHints mAuxiliaryHints; WindowType mType; int mNotificationLevel; @@ -566,10 +650,6 @@ private: bool mVisible : 1; bool mOwnSurface; bool mBrightnessChangeDone; - -#ifdef DALI_ELDBUS_AVAILABLE - Eldbus_Connection* mSystemConnection; -#endif // DALI_ELDBUS_AVAILABLE }; } // namespace Adaptor