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=af8054f79909f964a5f384a5bb9bfd854bb195fe;hb=c27edea5b2055d47aab448d7e6e50c4f86c5c876;hp=f5fd0eadd03a90ad70dff75f2d9445d2c287f6e8;hpb=c23f41f9fdf76101f801442e032ad0a6b7a6a969;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 f5fd0ea..af8054f 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) 2022 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. @@ -29,10 +29,6 @@ #include #include -#ifdef DALI_ELDBUS_AVAILABLE -#include -#endif - namespace Dali { namespace Internal @@ -120,6 +116,11 @@ public: void OnMouseWheel(void* data, int type, void* event); /** + * @brief Called when a mouse in or out is received. + */ + void OnMouseInOut(void* data, int type, void* event, Dali::DevelWindow::MouseInOutEvent::Type action); + + /** * @brief Called when a detent rotation event is recevied. */ void OnDetentRotation(void* data, int type, void* event); @@ -176,12 +177,23 @@ public: */ void OnEcoreEventWindowAuxiliaryMessage(void* event); -#ifdef DALI_ELDBUS_AVAILABLE /** - * @brief Called when Ecore ElDBus accessibility event is received. + * @brief Called when window has been moved by then display server. + * To move the window by display server, RequestMoveToServer() should be called. + * After the moving job is completed, this function will be called. + * + * @param[in] the completed event's data. It has the latest window geometry data. */ - void OnEcoreElDBusAccessibilityNotification(void* context, const Eldbus_Message* message); -#endif + void OnMoveCompleted(void* event); + + /** + * @brief Called when window has been resized by then display server. + * To resize the window by display server, RequestResizeToServer() should be called. + * After the resizing job is completed, this function will be called. + * + * @param[in] the completed event's data. It has the latest window geometry data. + */ + void OnResizeCompleted(void* event); /** * @brief Called when a keymap is changed. @@ -230,6 +242,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; @@ -280,6 +297,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() */ void SetClass(const std::string& name, const std::string& className) override; @@ -300,6 +322,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; @@ -435,9 +487,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() @@ -526,14 +578,41 @@ 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 @@ -551,7 +630,7 @@ private: #ifdef OVER_TIZEN_VERSION_7 zwp_input_panel_v1* mWlInputPanel; #else - wl_input_panel* mWlInputPanel; + wl_input_panel* mWlInputPanel; #endif wl_output* mWlOutput; #ifdef OVER_TIZEN_VERSION_7 @@ -569,8 +648,10 @@ private: std::vector mSupportedAuxiliaryHints; + // It is based on the default system coordinates. Dali::PositionSize mWindowPositionSize; - AuxiliaryHints mAuxiliaryHints; + + AuxiliaryHints mAuxiliaryHints; WindowType mType; int mNotificationLevel; @@ -591,10 +672,6 @@ private: bool mVisible : 1; bool mOwnSurface; bool mBrightnessChangeDone; - -#ifdef DALI_ELDBUS_AVAILABLE - Eldbus_Connection* mSystemConnection; -#endif // DALI_ELDBUS_AVAILABLE }; } // namespace Adaptor