X-Git-Url: http://review.tizen.org/git/?a=blobdiff_plain;f=dali%2Finternal%2Fwindow-system%2Fubuntu-x11%2Fwindow-base-ecore-x.h;h=d2a2b81ca1f8d57a10c2e3d7da998b8b05f25bea;hb=f79805402bf8bd9b7ceb4561d4c089411fb5927f;hp=031445ea05cc5867d8d9cdc08527f54e2c1b6392;hpb=53d13fdca18066d83e9c287207ff713f1a36e514;p=platform%2Fcore%2Fuifw%2Fdali-adaptor.git diff --git a/dali/internal/window-system/ubuntu-x11/window-base-ecore-x.h b/dali/internal/window-system/ubuntu-x11/window-base-ecore-x.h index 031445e..d2a2b81 100644 --- a/dali/internal/window-system/ubuntu-x11/window-base-ecore-x.h +++ b/dali/internal/window-system/ubuntu-x11/window-base-ecore-x.h @@ -2,7 +2,7 @@ #define DALI_INTERNAL_WINDOWSYSTEM_ECOREX_WINDOW_BASE_ECORE_X_H /* - * Copyright (c) 2019 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. @@ -22,8 +22,8 @@ #include // EXTERNAL HEADERS -#include #include +#include namespace Dali { @@ -31,18 +31,16 @@ namespace Internal { namespace Adaptor { - /** * WindowBaseEcoreX class provides an WindowBase EcoreX implementation. */ class WindowBaseEcoreX : public WindowBase { public: - /** * @brief Constructor */ - WindowBaseEcoreX( PositionSize positionSize, Any surface, bool isTransparent ); + WindowBaseEcoreX(PositionSize positionSize, Any surface, bool isTransparent); /** * @brief Destructor @@ -50,11 +48,15 @@ public: virtual ~WindowBaseEcoreX(); public: + /** + * @brief Called when the window configuration is changed. + */ + void OnWindowConfigure(void* event); /** * @brief Called when the window property is changed. */ - Eina_Bool OnWindowPropertyChanged( void* data, int type, void* event ); + Eina_Bool OnWindowPropertyChanged(void* data, int type, void* event); /** * @brief Called when the window receives a delete request @@ -64,316 +66,418 @@ public: /** * @brief Called when the window gains focus. */ - void OnFocusIn( void* data, int type, void* event ); + void OnFocusIn(void* data, int type, void* event); /** * @brief Called when the window loses focus. */ - void OnFocusOut( void* data, int type, void* event ); + void OnFocusOut(void* data, int type, void* event); /** * @brief Called when the window is damaged. */ - void OnWindowDamaged( void* data, int type, void* event ); + void OnWindowDamaged(void* data, int type, void* event); /** * @brief Called when a touch down is received. */ - void OnMouseButtonDown( void* data, int type, void* event ); + void OnMouseButtonDown(void* data, int type, void* event); /** * @brief Called when a touch up is received. */ - void OnMouseButtonUp( void* data, int type, void* event ); + void OnMouseButtonUp(void* data, int type, void* event); /** * @brief Called when a touch motion is received. */ - void OnMouseButtonMove( void* data, int type, void* event ); + void OnMouseButtonMove(void* data, int type, void* event); /** * @brief Called when a mouse wheel is received. */ - void OnMouseWheel( void* data, int type, void* event ); + void OnMouseWheel(void* data, int type, void* event); /** * @brief Called when a key down is received. */ - void OnKeyDown( void* data, int type, void* event ); + void OnKeyDown(void* data, int type, void* event); /** * @brief Called when a key up is received. */ - void OnKeyUp( void* data, int type, void* event ); + void OnKeyUp(void* data, int type, void* event); /** * @brief Called when the source window notifies us the content in clipboard is selected. */ - void OnSelectionClear( void* data, int type, void* event ); + void OnSelectionClear(void* data, int type, void* event); /** * @brief Called when the source window sends us about the selected content. */ - void OnSelectionNotify( void* data, int type, void* event ); + void OnSelectionNotify(void* data, int type, void* event); public: - /** * @copydoc Dali::Internal::Adaptor::WindowBase::GetNativeWindow() */ - virtual Any GetNativeWindow() override; + Any GetNativeWindow() override; /** * @copydoc Dali::Internal::Adaptor::WindowBase::GetNativeWindowId() */ - virtual int GetNativeWindowId() override; + int GetNativeWindowId() override; + + /** + * @copydoc Dali::Internal::Adaptor::WindowBase::GetNativeWindowResourceId() + */ + std::string GetNativeWindowResourceId() override; /** * @copydoc Dali::Internal::Adaptor::WindowBase::CreateEglWindow() */ - virtual EGLNativeWindowType CreateEglWindow( int width, int height ) override; + EGLNativeWindowType CreateEglWindow(int width, int height) override; /** * @copydoc Dali::Internal::Adaptor::WindowBase::DestroyEglWindow() */ - virtual void DestroyEglWindow() override; + void DestroyEglWindow() override; /** * @copydoc Dali::Internal::Adaptor::WindowBase::SetEglWindowRotation() */ - virtual void SetEglWindowRotation( int angle ) override; + void SetEglWindowRotation(int angle) override; /** * @copydoc Dali::Internal::Adaptor::WindowBase::SetEglWindowBufferTransform() */ - virtual void SetEglWindowBufferTransform( int angle ) override; + void SetEglWindowBufferTransform(int angle) override; /** * @copydoc Dali::Internal::Adaptor::WindowBase::SetEglWindowTransform() */ - virtual void SetEglWindowTransform( int angle ) override; + void SetEglWindowTransform(int angle) override; /** * @copydoc Dali::Internal::Adaptor::WindowBase::ResizeEglWindow() */ - virtual void ResizeEglWindow( PositionSize positionSize ) override; + void ResizeEglWindow(PositionSize positionSize) override; /** * @copydoc Dali::Internal::Adaptor::WindowBase::IsEglWindowRotationSupported() */ - virtual bool IsEglWindowRotationSupported() override; + bool IsEglWindowRotationSupported() override; /** * @copydoc Dali::Internal::Adaptor::WindowBase::Move() */ - virtual void Move( PositionSize positionSize ) override; + void Move(PositionSize positionSize) override; /** * @copydoc Dali::Internal::Adaptor::WindowBase::Resize() */ - virtual void Resize( PositionSize positionSize ) override; + void Resize(PositionSize positionSize) override; /** * @copydoc Dali::Internal::Adaptor::WindowBase::MoveResize() */ - virtual void MoveResize( PositionSize positionSize ) override; + 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() */ - virtual void SetClass( const std::string& name, const std::string& className ) override; + void SetClass(const std::string& name, const std::string& className) override; /** * @copydoc Dali::Internal::Adaptor::WindowBase::Raise() */ - virtual void Raise() override; + void Raise() override; /** * @copydoc Dali::Internal::Adaptor::WindowBase::Lower() */ - virtual void Lower() override; + void Lower() override; /** * @copydoc Dali::Internal::Adaptor::WindowBase::Activate() */ - virtual void Activate() override; + 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::SetAvailableOrientations() + * @copydoc Dali::Internal::Adaptor::WindowBase::SetMaximumSize() */ - virtual void SetAvailableOrientations( const std::vector< Dali::Window::WindowOrientation >& orientations ) override; + void SetMaximumSize(Dali::Window::WindowSize size) override; /** - * @copydoc Dali::Internal::Adaptor::WindowBase::SetPreferredOrientation() + * @copydoc Dali::Internal::Adaptor::WindowBase::Minimize() */ - virtual void SetPreferredOrientation( Dali::Window::WindowOrientation orientation ) override; + 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; + + /** + * @copydoc Dali::Internal::Adaptor::WindowBase::SetPreferredAngle() + */ + void SetPreferredAngle(int angle) override; /** * @copydoc Dali::Internal::Adaptor::WindowBase::SetAcceptFocus() */ - virtual void SetAcceptFocus( bool accept ) override; + void SetAcceptFocus(bool accept) override; /** * @copydoc Dali::Internal::Adaptor::WindowBase::Show() */ - virtual void Show() override; + void Show() override; /** * @copydoc Dali::Internal::Adaptor::WindowBase::Hide() */ - virtual void Hide() override; + void Hide() override; /** * @copydoc Dali::Internal::Adaptor::WindowBase::GetSupportedAuxiliaryHintCount() */ - virtual unsigned int GetSupportedAuxiliaryHintCount() const override; + unsigned int GetSupportedAuxiliaryHintCount() const override; /** * @copydoc Dali::Internal::Adaptor::WindowBase::GetSupportedAuxiliaryHint() */ - virtual std::string GetSupportedAuxiliaryHint( unsigned int index ) const override; + std::string GetSupportedAuxiliaryHint(unsigned int index) const override; /** * @copydoc Dali::Internal::Adaptor::WindowBase::AddAuxiliaryHint() */ - virtual unsigned int AddAuxiliaryHint( const std::string& hint, const std::string& value ) override; + unsigned int AddAuxiliaryHint(const std::string& hint, const std::string& value) override; /** * @copydoc Dali::Internal::Adaptor::WindowBase::RemoveAuxiliaryHint() */ - virtual bool RemoveAuxiliaryHint( unsigned int id ) override; + bool RemoveAuxiliaryHint(unsigned int id) override; /** * @copydoc Dali::Internal::Adaptor::WindowBase::SetAuxiliaryHintValue() */ - virtual bool SetAuxiliaryHintValue( unsigned int id, const std::string& value ) override; + bool SetAuxiliaryHintValue(unsigned int id, const std::string& value) override; /** * @copydoc Dali::Internal::Adaptor::WindowBase::GetAuxiliaryHintValue() */ - virtual std::string GetAuxiliaryHintValue( unsigned int id ) const override; + std::string GetAuxiliaryHintValue(unsigned int id) const override; /** * @copydoc Dali::Internal::Adaptor::WindowBase::GetAuxiliaryHintId() */ - virtual unsigned int GetAuxiliaryHintId( const std::string& hint ) const override; + unsigned int GetAuxiliaryHintId(const std::string& hint) const override; /** * @copydoc Dali::Internal::Adaptor::WindowBase::SetInputRegion() */ - virtual void SetInputRegion( const Rect< int >& inputRegion ) override; + void SetInputRegion(const Rect& inputRegion) override; /** * @copydoc Dali::Internal::Adaptor::WindowBase::SetType() */ - virtual void SetType( Dali::Window::Type type ) override; + void SetType(Dali::WindowType type) override; + + /** + * @copydoc Dali::Internal::Adaptor::WindowBase::GetType() + */ + Dali::WindowType GetType() const override; /** * @copydoc Dali::Internal::Adaptor::WindowBase::SetNotificationLevel() */ - virtual bool SetNotificationLevel( Dali::Window::NotificationLevel::Type level ) override; + Dali::WindowOperationResult SetNotificationLevel(Dali::WindowNotificationLevel level) override; /** * @copydoc Dali::Internal::Adaptor::WindowBase::GetNotificationLevel() */ - virtual Dali::Window::NotificationLevel::Type GetNotificationLevel() const override; + Dali::WindowNotificationLevel GetNotificationLevel() const override; /** * @copydoc Dali::Internal::Adaptor::WindowBase::SetOpaqueState() */ - virtual void SetOpaqueState( bool opaque ) override; + void SetOpaqueState(bool opaque) override; /** * @copydoc Dali::Internal::Adaptor::WindowBase::SetScreenOffMode() */ - virtual bool SetScreenOffMode(Dali::Window::ScreenOffMode::Type screenOffMode) override; + Dali::WindowOperationResult SetScreenOffMode(WindowScreenOffMode screenOffMode) override; /** * @copydoc Dali::Internal::Adaptor::WindowBase::GetScreenOffMode() */ - virtual Dali::Window::ScreenOffMode::Type GetScreenOffMode() const override; + WindowScreenOffMode GetScreenOffMode() const override; /** * @copydoc Dali::Internal::Adaptor::WindowBase::SetBrightness() */ - virtual bool SetBrightness( int brightness ) override; + Dali::WindowOperationResult SetBrightness(int brightness) override; /** * @copydoc Dali::Internal::Adaptor::WindowBase::GetBrightness() */ - virtual int GetBrightness() const override; + int GetBrightness() const override; /** * @copydoc Dali::Internal::Adaptor::WindowBase::GrabKey() */ - virtual bool GrabKey( Dali::KEY key, KeyGrab::KeyGrabMode grabMode ) override; + bool GrabKey(Dali::KEY key, KeyGrab::KeyGrabMode grabMode) override; /** * @copydoc Dali::Internal::Adaptor::WindowBase::UngrabKey() */ - virtual bool UngrabKey( Dali::KEY key ) override; + bool UngrabKey(Dali::KEY key) override; /** * @copydoc Dali::Internal::Adaptor::WindowBase::GrabKeyList() */ - virtual bool GrabKeyList( const Dali::Vector< Dali::KEY >& key, const Dali::Vector< KeyGrab::KeyGrabMode >& grabMode, Dali::Vector< bool >& result ) override; + bool GrabKeyList(const Dali::Vector& key, const Dali::Vector& grabMode, Dali::Vector& result) override; /** * @copydoc Dali::Internal::Adaptor::WindowBase::UngrabKeyList() */ - virtual bool UngrabKeyList( const Dali::Vector< Dali::KEY >& key, Dali::Vector< bool >& result ) override; + bool UngrabKeyList(const Dali::Vector& key, Dali::Vector& result) override; /** * @copydoc Dali::Internal::Adaptor::WindowBase::GetDpi() */ - virtual void GetDpi( unsigned int& dpiHorizontal, unsigned int& dpiVertical ) override; + void GetDpi(unsigned int& dpiHorizontal, unsigned int& dpiVertical) override; + + /** + * @copydoc Dali::Internal::Adaptor::WindowBase::GetWindowRotationAngle() + */ + int GetWindowRotationAngle() const override; /** * @copydoc Dali::Internal::Adaptor::WindowBase::GetScreenRotationAngle() */ - virtual int GetScreenRotationAngle() override; + int GetScreenRotationAngle() override; /** * @copydoc Dali::Internal::Adaptor::WindowBase::SetWindowRotationAngle() */ - virtual void SetWindowRotationAngle( int degree ) override; + void SetWindowRotationAngle(int degree) override; /** * @copydoc Dali::Internal::Adaptor::WindowBase::WindowRotationCompleted() */ - virtual void WindowRotationCompleted( int degree, int width, int height ) override; + void WindowRotationCompleted(int degree, int width, int height) override; /** * @copydoc Dali::Internal::Adaptor::WindowBase::SetTransparency() */ - virtual void SetTransparency( bool transparent ) override; + void SetTransparency(bool transparent) override; /** * @copydoc Dali::Internal::Adaptor::WindowBase::SetParent() */ - virtual void SetParent( WindowBase* parentWinBase ) override; + void SetParent(WindowBase* parentWinBase, bool belowParent) override; -private: + /** + * @copydoc Dali::Internal::Adaptor::WindowBase::CreateFrameRenderedSyncFence() + */ + int CreateFrameRenderedSyncFence() override; + + /** + * @copydoc Dali::Internal::Adaptor::WindowBase::CreateFramePresentedSyncFence() + */ + int CreateFramePresentedSyncFence() override; + + /** + * @copydoc Dali::Internal::Adaptor::WindowBase::SetPositionSizeWithAngle() + */ + void SetPositionSizeWithAngle(PositionSize positionSize, int angle) override; + + /** + * @copydoc Dali::Internal::Adaptor::WindowBase::InitializeIme() + */ + void InitializeIme() override; + + /** + * @copydoc Dali::Internal::Adaptor::WindowBase::ImeWindowReadyToRender() + */ + void ImeWindowReadyToRender() override; + + /** + * @copydoc Dali::Internal::Adaptor::WindowBase::RequestMoveToServer() + */ + void RequestMoveToServer() override; /** + * @copydoc Dali::Internal::Adaptor::WindowBase::RequestResizeToServer() + */ + void RequestResizeToServer(WindowResizeDirection direction) override; + + /** + * @copydoc Dali::Internal::Adaptor::WindowBase::EnableFloatingMode() + */ + void EnableFloatingMode(bool enable) override; + + /** + * @copydoc Dali::Internal::Adaptor::WindowBase::IsFloatingModeEnabled() + */ + 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 */ - void Initialize( PositionSize positionSize, Any surface, bool isTransparent ); + void Initialize(PositionSize positionSize, Any surface, bool isTransparent); /** * @brief Get the surface id if the surface parameter is not empty * @param surface Any containing a surface id, or can be empty * @return surface id, or zero if surface is empty */ - unsigned int GetSurfaceId( Any surface ) const; + unsigned int GetSurfaceId(Any surface) const; /** * @brief Create window */ - void CreateWindow( PositionSize positionSize, bool isTransparent ); + void CreateWindow(PositionSize positionSize, bool isTransparent); protected: - // Undefined WindowBaseEcoreX(const WindowBaseEcoreX&) = delete; @@ -381,17 +485,17 @@ protected: WindowBaseEcoreX& operator=(const WindowBaseEcoreX& rhs) = delete; private: - - Dali::Vector< Ecore_Event_Handler* > mEcoreEventHandler; - Ecore_X_Window mEcoreWindow; ///< Native window handle - bool mOwnSurface:1; ///< Whether we own the surface (responsible for deleting it) - bool mIsTransparent; ///< Whether the window is transparent (32 bit or 24 bit) - bool mRotationAppSet:1; + Dali::Vector mEcoreEventHandler; + Ecore_X_Window mEcoreWindow; ///< Native window handle + bool mOwnSurface : 1; ///< Whether we own the surface (responsible for deleting it) + bool mIsTransparent; ///< Whether the window is transparent (32 bit or 24 bit) + bool mRotationAppSet : 1; + int mWindowRotationAngle; }; } // namespace Adaptor -} // namespace internal +} // namespace Internal } // namespace Dali