#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.
#include <wayland-egl.h>
#include <xkbcommon/xkbcommon.h>
-#ifdef DALI_ELDBUS_AVAILABLE
-#include <Eldbus.h>
-#endif
-
namespace Dali
{
namespace Internal
*/
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);
-#endif
-
/**
* @brief Called when a keymap is changed.
*/
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;
*/
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 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<int>& angles) override;
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()
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<int> RecalculateInputRect(const Rect<int>& rect);
protected:
// Undefined
Dali::Vector<Ecore_Event_Handler*> 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;
std::vector<std::string> mSupportedAuxiliaryHints;
+ // It is based on the default system coordinates.
Dali::PositionSize mWindowPositionSize;
- AuxiliaryHints mAuxiliaryHints;
+
+ AuxiliaryHints mAuxiliaryHints;
WindowType mType;
int mNotificationLevel;
bool mVisible : 1;
bool mOwnSurface;
bool mBrightnessChangeDone;
-
-#ifdef DALI_ELDBUS_AVAILABLE
- Eldbus_Connection* mSystemConnection;
-#endif // DALI_ELDBUS_AVAILABLE
};
} // namespace Adaptor