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=3df827b23acc90c1e53f3a494aac5dddd42ddd1b;hb=48c9e9bc261f916df267ab502fd58c0587679cec;hp=3108032faa4a4deb1c2024cad0d80d7daee09ff1;hpb=b6c0fd19182faf643e0f519c37959f89f37a964f;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 3108032..3df827b 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) 2018 Samsung Electronics Co., Ltd. + * Copyright (c) 2021 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. @@ -24,6 +24,7 @@ // EXTERNAL HEADERS #include #include +#include #include #include #include @@ -38,7 +39,6 @@ namespace Internal { namespace Adaptor { - class WindowRenderSurface; class WindowRenderSurfaceEcoreWl2; @@ -48,11 +48,10 @@ class WindowRenderSurfaceEcoreWl2; class WindowBaseEcoreWl2 : public WindowBase { public: - /** * @brief Constructor */ - WindowBaseEcoreWl2( PositionSize positionSize, Any surface, bool isTransparent ); + WindowBaseEcoreWl2(PositionSize positionSize, Any surface, bool isTransparent); /** * @brief Destructor @@ -60,91 +59,90 @@ public: virtual ~WindowBaseEcoreWl2(); public: - /** * @brief Called when the window iconify state is changed. */ - Eina_Bool OnIconifyStateChanged( void* data, int type, void* event ); + Eina_Bool OnIconifyStateChanged(void* data, int type, void* event); /** * @brief Called when the window gains focus. */ - Eina_Bool OnFocusIn( void* data, int type, void* event ); + Eina_Bool OnFocusIn(void* data, int type, void* event); /** * @brief Called when the window loses focus. */ - Eina_Bool OnFocusOut( void* data, int type, void* event ); + Eina_Bool OnFocusOut(void* data, int type, void* event); /** * @brief Called when the output is transformed. */ - Eina_Bool OnOutputTransform( void* data, int type, void* event ); + Eina_Bool OnOutputTransform(void* data, int type, void* event); /** * @brief Called when the output transform should be ignored. */ - Eina_Bool OnIgnoreOutputTransform( void* data, int type, void* event ); + Eina_Bool OnIgnoreOutputTransform(void* data, int type, void* event); /** * @brief Called when a rotation event is recevied. */ - void OnRotation( void* data, int type, void* event ); + void OnRotation(void* data, int type, void* event); /** * @brief Called when a configure event is recevied. */ - void OnConfiguration( void* data, int type, void* event ); + void OnConfiguration(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 touch is canceled. */ - void OnMouseButtonCancel( void* data, int type, void* event ); + void OnMouseButtonCancel(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 detent rotation event is recevied. */ - void OnDetentRotation( void* data, int type, void* event ); + void OnDetentRotation(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 OnDataSend( void* data, int type, void* event ); + void OnDataSend(void* data, int type, void* event); /** * @brief Called when the source window sends us about the selected content. */ - void OnDataReceive( void* data, int type, void* event ); + void OnDataReceive(void* data, int type, void* event); /** * @brief Called when a font name is changed. @@ -159,58 +157,69 @@ public: /** * @brief Called when a transition effect-start/end event is received. */ - void OnTransitionEffectEvent( DevelWindow::EffectState state, DevelWindow::EffectType type ); + void OnTransitionEffectEvent(WindowEffectState state, WindowEffectType type); /** * @brief Called when a keyboard repeat event is changed. */ void OnKeyboardRepeatSettingsChanged(); + /** + * @brief Called when a window redraw is requested. + */ + void OnEcoreEventWindowRedrawRequest(); + + /** + * @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 OnEcoreEventWindowAuxiliaryMessage(void* event); + + #ifdef DALI_ELDBUS_AVAILABLE /** * @brief Called when Ecore ElDBus accessibility event is received. */ - void OnEcoreElDBusAccessibilityNotification( void* context, const Eldbus_Message* message ); + void OnEcoreElDBusAccessibilityNotification(void* context, const Eldbus_Message* message); #endif /** * @brief Called when a keymap is changed. */ - void KeymapChanged(void *data, int type, void *event); + void KeymapChanged(void* data, int type, void* event); /** * @brief RegistryGlobalCallback */ - void RegistryGlobalCallback( void* data, struct wl_registry *registry, uint32_t name, const char* interface, uint32_t version ); + void RegistryGlobalCallback(void* data, struct wl_registry* registry, uint32_t name, const char* interface, uint32_t version); /** * @brief RegistryGlobalCallbackRemove */ - void RegistryGlobalCallbackRemove( void* data, struct wl_registry* registry, uint32_t id ); + void RegistryGlobalCallbackRemove(void* data, struct wl_registry* registry, uint32_t id); /** * @brief TizenPolicyNotificationChangeDone */ - void TizenPolicyNotificationChangeDone(void* data, struct tizen_policy* tizenPolicy, struct wl_surface* surface, int32_t level, uint32_t state ); + void TizenPolicyNotificationChangeDone(void* data, struct tizen_policy* tizenPolicy, struct wl_surface* surface, int32_t level, uint32_t state); /** * @brief TizenPolicyScreenModeChangeDone */ - void TizenPolicyScreenModeChangeDone( void* data, struct tizen_policy* tizenPolicy, struct wl_surface* surface, uint32_t mode, uint32_t state ); + void TizenPolicyScreenModeChangeDone(void* data, struct tizen_policy* tizenPolicy, struct wl_surface* surface, uint32_t mode, uint32_t state); /** * @brief DisplayPolicyBrightnessChangeDone */ - void DisplayPolicyBrightnessChangeDone( void* data, struct tizen_display_policy *displayPolicy, struct wl_surface* surface, int32_t brightness, uint32_t state ); - + void DisplayPolicyBrightnessChangeDone(void* data, struct tizen_display_policy* displayPolicy, struct wl_surface* surface, int32_t brightness, uint32_t state); /** * @brief Gets the key code by keyName. */ - void GetKeyCode( std::string keyName, int32_t& keyCode ); + void GetKeyCode(std::string keyName, int32_t& keyCode); public: - /** * @copydoc Dali::Internal::Adaptor::WindowBase::GetNativeWindow() */ @@ -224,7 +233,7 @@ public: /** * @copydoc Dali::Internal::Adaptor::WindowBase::CreateEglWindow() */ - EGLNativeWindowType CreateEglWindow( int width, int height ) override; + EGLNativeWindowType CreateEglWindow(int width, int height) override; /** * @copydoc Dali::Internal::Adaptor::WindowBase::DestroyEglWindow() @@ -234,22 +243,22 @@ public: /** * @copydoc Dali::Internal::Adaptor::WindowBase::SetEglWindowRotation() */ - void SetEglWindowRotation( int angle ) override; + void SetEglWindowRotation(int angle) override; /** * @copydoc Dali::Internal::Adaptor::WindowBase::SetEglWindowBufferTransform() */ - void SetEglWindowBufferTransform( int angle ) override; + void SetEglWindowBufferTransform(int angle) override; /** * @copydoc Dali::Internal::Adaptor::WindowBase::SetEglWindowTransform() */ - void SetEglWindowTransform( int angle ) override; + void SetEglWindowTransform(int angle) override; /** * @copydoc Dali::Internal::Adaptor::WindowBase::ResizeEglWindow() */ - void ResizeEglWindow( PositionSize positionSize ) override; + void ResizeEglWindow(PositionSize positionSize) override; /** * @copydoc Dali::Internal::Adaptor::WindowBase::IsEglWindowRotationSupported() @@ -259,22 +268,22 @@ public: /** * @copydoc Dali::Internal::Adaptor::WindowBase::Move() */ - void Move( PositionSize positionSize ) override; + void Move(PositionSize positionSize) override; /** * @copydoc Dali::Internal::Adaptor::WindowBase::Resize() */ - void Resize( PositionSize positionSize ) override; + void Resize(PositionSize positionSize) override; /** * @copydoc Dali::Internal::Adaptor::WindowBase::MoveResize() */ - void MoveResize( PositionSize positionSize ) override; + void MoveResize(PositionSize positionSize) override; /** * @copydoc Dali::Internal::Adaptor::WindowBase::SetClass() */ - 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() @@ -294,17 +303,17 @@ public: /** * @copydoc Dali::Internal::Adaptor::WindowBase::SetAvailableAnlges() */ - void SetAvailableAnlges( const std::vector< int >& angles ) override; + void SetAvailableAnlges(const std::vector& angles) override; /** * @copydoc Dali::Internal::Adaptor::WindowBase::SetPreferredAngle() */ - void SetPreferredAngle( int angle ) override; + void SetPreferredAngle(int angle) override; /** * @copydoc Dali::Internal::Adaptor::WindowBase::SetAcceptFocus() */ - void SetAcceptFocus( bool accept ) override; + void SetAcceptFocus(bool accept) override; /** * @copydoc Dali::Internal::Adaptor::WindowBase::Show() @@ -324,72 +333,77 @@ public: /** * @copydoc Dali::Internal::Adaptor::WindowBase::GetSupportedAuxiliaryHint() */ - std::string GetSupportedAuxiliaryHint( unsigned int index ) const override; + std::string GetSupportedAuxiliaryHint(unsigned int index) const override; /** * @copydoc Dali::Internal::Adaptor::WindowBase::AddAuxiliaryHint() */ - 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() */ - bool RemoveAuxiliaryHint( unsigned int id ) override; + bool RemoveAuxiliaryHint(unsigned int id) override; /** * @copydoc Dali::Internal::Adaptor::WindowBase::SetAuxiliaryHintValue() */ - 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() */ - std::string GetAuxiliaryHintValue( unsigned int id ) const override; + std::string GetAuxiliaryHintValue(unsigned int id) const override; /** * @copydoc Dali::Internal::Adaptor::WindowBase::GetAuxiliaryHintId() */ - unsigned int GetAuxiliaryHintId( const std::string& hint ) const override; + unsigned int GetAuxiliaryHintId(const std::string& hint) const override; /** * @copydoc Dali::Internal::Adaptor::WindowBase::SetInputRegion() */ - void SetInputRegion( const Rect< int >& inputRegion ) override; + void SetInputRegion(const Rect& inputRegion) override; /** * @copydoc Dali::Internal::Adaptor::WindowBase::SetType() */ - 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() */ - bool SetNotificationLevel( Dali::Window::NotificationLevel::Type level ) override; + Dali::WindowOperationResult SetNotificationLevel(Dali::WindowNotificationLevel level) override; /** * @copydoc Dali::Internal::Adaptor::WindowBase::GetNotificationLevel() */ - Dali::Window::NotificationLevel::Type GetNotificationLevel() const override; + Dali::WindowNotificationLevel GetNotificationLevel() const override; /** * @copydoc Dali::Internal::Adaptor::WindowBase::SetOpaqueState() */ - void SetOpaqueState( bool opaque ) override; + void SetOpaqueState(bool opaque) override; /** * @copydoc Dali::Internal::Adaptor::WindowBase::SetScreenOffMode() */ - bool SetScreenOffMode(Dali::Window::ScreenOffMode::Type screenOffMode) override; + Dali::WindowOperationResult SetScreenOffMode(WindowScreenOffMode screenOffMode) override; /** * @copydoc Dali::Internal::Adaptor::WindowBase::GetScreenOffMode() */ - Dali::Window::ScreenOffMode::Type GetScreenOffMode() const override; + WindowScreenOffMode GetScreenOffMode() const override; /** * @copydoc Dali::Internal::Adaptor::WindowBase::SetBrightness() */ - bool SetBrightness( int brightness ) override; + Dali::WindowOperationResult SetBrightness(int brightness) override; /** * @copydoc Dali::Internal::Adaptor::WindowBase::GetBrightness() @@ -399,27 +413,32 @@ public: /** * @copydoc Dali::Internal::Adaptor::WindowBase::GrabKey() */ - bool GrabKey( Dali::KEY key, KeyGrab::KeyGrabMode grabMode ) override; + bool GrabKey(Dali::KEY key, KeyGrab::KeyGrabMode grabMode) override; /** * @copydoc Dali::Internal::Adaptor::WindowBase::UngrabKey() */ - bool UngrabKey( Dali::KEY key ) override; + bool UngrabKey(Dali::KEY key) override; /** * @copydoc Dali::Internal::Adaptor::WindowBase::GrabKeyList() */ - 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() */ - 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() */ - void GetDpi( unsigned int& dpiHorizontal, unsigned int& dpiVertical ) override; + void GetDpi(unsigned int& dpiHorizontal, unsigned int& dpiVertical) override; + + /** + * @copydoc Dali::Internal::Adaptor::WindowBase::GetOrientation() + */ + int GetOrientation() const override; /** * @copydoc Dali::Internal::Adaptor::WindowBase::GetScreenRotationAngle() @@ -429,22 +448,22 @@ public: /** * @copydoc Dali::Internal::Adaptor::WindowBase::SetWindowRotationAngle() */ - void SetWindowRotationAngle( int degree ) override; + void SetWindowRotationAngle(int degree) override; /** * @copydoc Dali::Internal::Adaptor::WindowBase::WindowRotationCompleted() */ - void WindowRotationCompleted( int degree, int width, int height ) override; + void WindowRotationCompleted(int degree, int width, int height) override; /** * @copydoc Dali::Internal::Adaptor::WindowBase::SetTransparency() */ - void SetTransparency( bool transparent ) override; + void SetTransparency(bool transparent) override; /** * @copydoc Dali::Internal::Adaptor::WindowBase::SetParent() */ - void SetParent( WindowBase* parentWinBase ) override; + void SetParent(WindowBase* parentWinBase, bool belowParent) override; /** * @copydoc Dali::Internal::Adaptor::WindowBase::CreateFrameRenderedSyncFence() @@ -456,12 +475,56 @@ public: */ int CreateFramePresentedSyncFence() override; -private: + /** + * @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); /** * Initialize Ecore ElDBus @@ -471,10 +534,9 @@ private: /** * @brief Create window */ - void CreateWindow( PositionSize positionSize ); + void CreateWindow(PositionSize positionSize); protected: - // Undefined WindowBaseEcoreWl2(const WindowBaseEcoreWl2&) = delete; @@ -482,51 +544,55 @@ protected: WindowBaseEcoreWl2& operator=(const WindowBaseEcoreWl2& rhs) = delete; private: - - typedef std::vector< std::pair< std::string, std::string > > AuxiliaryHints; - - Dali::Vector< Ecore_Event_Handler* > mEcoreEventHandler; - - Ecore_Wl2_Window* mEcoreWindow; - wl_surface* mWlSurface; - wl_egl_window* mEglWindow; - wl_display* mDisplay; - wl_event_queue* mEventQueue; - tizen_policy* mTizenPolicy; - tizen_display_policy* mTizenDisplayPolicy; - xkb_keymap* mKeyMap; - - std::vector< std::string > mSupportedAuxiliaryHints; - AuxiliaryHints mAuxiliaryHints; - - int mNotificationLevel; - uint32_t mNotificationChangeState; - bool mNotificationLevelChangeDone; - - int mScreenOffMode; - uint32_t mScreenOffModeChangeState; - bool mScreenOffModeChangeDone; - - int mBrightness; - uint32_t mBrightnessChangeState; - bool mBrightnessChangeDone; - - bool mVisible:1; - Dali::PositionSize mWindowPositionSize; - - bool mOwnSurface; - - volatile uint32_t mMoveResizeSerial; - uint32_t mLastSubmittedMoveResizeSerial; + typedef std::vector > AuxiliaryHints; + Dali::Vector mEcoreEventHandler; + Ecore_Wl2_Window* mEcoreWindow; + + wl_surface* mWlSurface; + wl_input_panel* mWlInputPanel; + wl_output* mWlOutput; + wl_input_panel_surface* mWlInputPanelSurface; + + wl_egl_window* mEglWindow; + wl_display* mDisplay; + wl_event_queue* mEventQueue; + tizen_policy* mTizenPolicy; + tizen_display_policy* mTizenDisplayPolicy; + xkb_keymap* mKeyMap; + + std::vector mSupportedAuxiliaryHints; + + Dali::PositionSize mWindowPositionSize; + AuxiliaryHints mAuxiliaryHints; + + WindowType mType; + int mNotificationLevel; + int mScreenOffMode; + int mBrightness; + int mWindowRotationAngle; + int mScreenRotationAngle; + int mSupportedPreProtation; + + uint32_t mNotificationChangeState; + uint32_t mScreenOffModeChangeState; + uint32_t mBrightnessChangeState; + uint32_t mLastSubmittedMoveResizeSerial; + volatile uint32_t mMoveResizeSerial; + + bool mNotificationLevelChangeDone; + bool mScreenOffModeChangeDone; + bool mVisible : 1; + bool mOwnSurface; + bool mBrightnessChangeDone; #ifdef DALI_ELDBUS_AVAILABLE - Eldbus_Connection* mSystemConnection; + Eldbus_Connection* mSystemConnection; #endif // DALI_ELDBUS_AVAILABLE }; } // namespace Adaptor -} // namespace internal +} // namespace Internal } // namespace Dali