#define DALI_INTERNAL_WINDOWSYSTEM_TIZENWAYLAND_WINDOW_BASE_ECORE_WL2_H
/*
- * Copyright (c) 2018 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.
// EXTERNAL HEADERS
#include <Ecore.h>
#include <Ecore_Wl2.h>
+#include <input-method-client-protocol.h>
#include <tizen-extension-client-protocol.h>
#include <wayland-egl.h>
-
-#ifdef DALI_ELDBUS_AVAILABLE
-#include <Eldbus.h>
-#endif
+#include <xkbcommon/xkbcommon.h>
namespace Dali
{
{
namespace Adaptor
{
-
class WindowRenderSurface;
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
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.
*/
void OnFontSizeChanged();
-#ifdef DALI_ELDBUS_AVAILABLE
/**
- * @brief Called when Ecore ElDBus accessibility event is received.
+ * @brief Called when a transition effect-start/end event is received.
*/
- void OnEcoreElDBusAccessibilityNotification( void* context, const Eldbus_Message* message );
-#endif
+ 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);
+
+ /**
+ * @brief Called when a keymap is changed.
+ */
+ 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);
-public:
+ /**
+ * @brief Gets the key code by keyName.
+ */
+ void GetKeyCode(std::string keyName, int32_t& keyCode);
+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::SetAvailableOrientations()
+ * @copydoc Dali::Internal::Adaptor::WindowBase::Maximize()
*/
- virtual void SetAvailableOrientations( const std::vector< Dali::Window::WindowOrientation >& orientations ) override;
+ void Maximize(bool maximize) override;
/**
- * @copydoc Dali::Internal::Adaptor::WindowBase::SetPreferredOrientation()
+ * @copydoc Dali::Internal::Adaptor::WindowBase::IsMaximized()
*/
- virtual void SetPreferredOrientation( Dali::Window::WindowOrientation orientation ) override;
+ 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<int>& 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<int>& 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<Dali::KEY>& key, const Dali::Vector<KeyGrab::KeyGrabMode>& grabMode, Dali::Vector<bool>& 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<Dali::KEY>& key, Dali::Vector<bool>& 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;
/**
- * Second stage initialization
+ * @copydoc Dali::Internal::Adaptor::WindowBase::CreateFramePresentedSyncFence()
*/
- void Initialize( PositionSize positionSize, Any surface, bool isTransparent );
+ int CreateFramePresentedSyncFence() override;
/**
- * Initialize Ecore ElDBus
+ * @copydoc Dali::Internal::Adaptor::WindowBase::SetPositionSizeWithAngle()
*/
- void InitializeEcoreElDBus();
+ void SetPositionSizeWithAngle(PositionSize positionSize, int angle) override;
/**
- * @brief Create window
+ * @copydoc Dali::Internal::Adaptor::WindowBase::InitializeIme()
*/
- void CreateWindow( PositionSize positionSize );
+ void InitializeIme() override;
-protected:
+ /**
+ * @copydoc Dali::Internal::Adaptor::WindowBase::ImeWindowReadyToRender()
+ */
+ void ImeWindowReadyToRender() override;
- // Undefined
- WindowBaseEcoreWl2(const WindowBaseEcoreWl2&) = delete;
+ /**
+ * @copydoc Dali::Internal::Adaptor::WindowBase::RequestMoveToServer()
+ */
+ void RequestMoveToServer() override;
- // Undefined
- WindowBaseEcoreWl2& operator=(const WindowBaseEcoreWl2& rhs) = delete;
+ /**
+ * @copydoc Dali::Internal::Adaptor::WindowBase::RequestResizeToServer()
+ */
+ void RequestResizeToServer(WindowResizeDirection direction) override;
-private:
+ /**
+ * @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<int>& inputRegion) override;
- typedef std::vector< std::pair< std::string, std::string > > AuxiliaryHints;
+ /**
+ * @copydoc Dali::Internal::Adaptor::WindowBase::ExcludeInputRegion()
+ */
+ void ExcludeInputRegion(const Rect<int>& inputRegion) override;
- Dali::Vector< Ecore_Event_Handler* > mEcoreEventHandler;
+private:
+ /**
+ * Second stage initialization
+ */
+ void Initialize(PositionSize positionSize, Any surface, bool isTransparent);
- 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;
+ /**
+ * @brief Create window
+ */
+ void CreateWindow(PositionSize positionSize);
- std::vector< std::string > mSupportedAuxiliaryHints;
- AuxiliaryHints mAuxiliaryHints;
+ /**
+ * @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.
+ */
+ 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);
- int mNotificationLevel;
- uint32_t mNotificationChangeState;
- bool mNotificationLevelChangeDone;
- int mScreenOffMode;
- uint32_t mScreenOffModeChangeState;
- bool mScreenOffModeChangeDone;
+ /**
+ * @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<int> RecalculateInputRect(const Rect<int>& rect);
- int mBrightness;
- uint32_t mBrightnessChangeState;
- bool mBrightnessChangeDone;
+protected:
+ // Undefined
+ WindowBaseEcoreWl2(const WindowBaseEcoreWl2&) = delete;
- bool mOwnSurface;
+ // Undefined
+ WindowBaseEcoreWl2& operator=(const WindowBaseEcoreWl2& rhs) = delete;
- volatile uint32_t mMoveResizeSerial;
- uint32_t mLastSubmittedMoveResizeSerial;
+private:
+ typedef std::vector<std::pair<std::string, std::string> > AuxiliaryHints;
+ Dali::Vector<Ecore_Event_Handler*> mEcoreEventHandler;
+ Ecore_Wl2_Window* mEcoreWindow;
+
+ wl_surface* mWlSurface;
+#ifdef OVER_TIZEN_VERSION_7
+ zwp_input_panel_v1* mWlInputPanel;
+#else
+ wl_input_panel* mWlInputPanel;
+#endif
+ wl_output* mWlOutput;
+#ifdef OVER_TIZEN_VERSION_7
+ zwp_input_panel_surface_v1* mWlInputPanelSurface;
+#else
+ wl_input_panel_surface* mWlInputPanelSurface;
+#endif
-#ifdef DALI_ELDBUS_AVAILABLE
- Eldbus_Connection* mSystemConnection;
-#endif // DALI_ELDBUS_AVAILABLE
+ 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;
+
+ // It is based on the default system coordinates.
+ 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;
};
} // namespace Adaptor
-} // namespace internal
+} // namespace Internal
} // namespace Dali