return GetImplementation(window).IsAlwaysOnTop();
}
+void SetToBottom(Window window, bool toBottom)
+{
+ GetImplementation(window).SetToBottom(toBottom);
+}
+
+bool IsBottom(Window window)
+{
+ return GetImplementation(window).IsBottom();
+}
+
Any GetNativeBuffer(Window window)
{
return GetImplementation(window).GetNativeBuffer();
/**
* @brief Enables or disables the window always is on top.
+ *
*
* @param[in] window The window instance.
* @param[in] alwaysOnTop true to enable the window always is on top, false to disable.
/**
* @brief Returns whether the window always is on top.
*
+ * This is valid between windows that have no notification level or a notification level of 'none'.
+ * If it has a notification level, this will not do anything.
+ *
* @param[in] window The window instance.
* @return True if the window always is on top, false otherwise.
*/
DALI_ADAPTOR_API bool IsAlwaysOnTop(Window window);
+/**
+ * @brief Enables or disables the window's layer is changed to the bottom.
+ *
+ * @param[in] window The window instance.
+ * @param[in] toBottom true to change the window layer to the bottom.
+ */
+DALI_ADAPTOR_API void SetToBottom(Window window, bool toBottom);
+
+/**
+ * @brief Returns whether the window layer is the bottom or not.
+ *
+ * @param[in] window The window instance.
+ * @return True if the window layer is the bottom, false otherwise.
+ */
+DALI_ADAPTOR_API bool IsBottom(Window window);
+
/**
* @brief Gets the native buffer of the window.
*
return false;
}
+void WindowBaseAndroid::SetToBottom(bool toBottom)
+{
+}
+
+bool WindowBaseAndroid::IsBottom()
+{
+ return false;
+}
+
Any WindowBaseAndroid::GetNativeBuffer() const
{
return 0;
*/
bool IsAlwaysOnTop() override;
+ /**
+ * @copydoc Dali::Internal::Adaptor::WindowBase::SetToBottom()
+ */
+ void SetToBottom(bool toBottom) override;
+
+ /**
+ * @copydoc Dali::Internal::Adaptor::WindowBase::IsBottom()
+ */
+ bool IsBottom() override;
+
/**
* @copydoc Dali::Internal::Adaptor::WindowBase::GetNativeBuffer()
*/
/**
* @brief Enables or disables the window always is on top.
*
+ * This is valid between windows that have no notification level or a notification level of 'none'.
+ * If it has a notification level, this will not do anything.
+ *
* @param[in] alwaysOnTop true to enable the window always is on top, false to disable.
*/
virtual void SetAlwaysOnTop(bool alwaysOnTop) = 0;
*/
virtual bool IsAlwaysOnTop() = 0;
+ /**
+ * @brief Enables or disables the window's layer is changed to the bottom.
+ *
+ * @param[in] toBottom true to change the window layer to the bottom.
+ */
+ virtual void SetToBottom(bool toBottom) = 0;
+
+ /**
+ * @brief Returns whether the window layer is the bottom or not.
+ *
+ * @return True if the window layer is the bottom, false otherwise.
+ */
+ virtual bool IsBottom() = 0;
+
/**
* @brief Get native buffer of window.
* @return The native window buffer handle
return mWindowBase->IsAlwaysOnTop();
}
+void Window::SetToBottom(bool toBottom)
+{
+ mWindowBase->SetToBottom(toBottom);
+}
+
+bool Window::IsBottom()
+{
+ return mWindowBase->IsBottom();
+}
+
Dali::Any Window::GetNativeBuffer() const
{
return mWindowBase->GetNativeBuffer();
*/
bool IsAlwaysOnTop();
+ /**
+ * @copydoc Dali::DevelWindow::SetToBottom()
+ */
+ void SetToBottom(bool toBottom);
+
+ /**
+ * @copydoc Dali::DevelWindow::IsBottom()
+ */
+ bool IsBottom();
+
/**
* @copydoc Dali::DevelWindow::GetNativeBuffer()
*/
*/
bool IsAlwaysOnTop() override;
+ /**
+ * @copydoc Dali::Internal::Adaptor::WindowBase::SetToBottom()
+ */
+ void SetToBottom(bool toBottom) override;
+
+ /**
+ * @copydoc Dali::Internal::Adaptor::WindowBase::IsBottom()
+ */
+ bool IsBottom() override;
+
/**
* @brief Sets front buffer rendering to the window.
* @param[in] enable True to enable front buffer rendering mode, False to otherwise.
return false;
}
+void WindowBaseCocoa::SetToBottom(bool toBottom)
+{
+}
+
+bool WindowBaseCocoa::IsBottom()
+{
+ return false;
+}
+
Any WindowBaseCocoa::GetNativeBuffer() const
{
return 0;
mOwnSurface(false),
mBrightnessChangeDone(true),
mIsFrontBufferRendering(false),
- mIsIMEWindowInitialized(false)
+ mIsIMEWindowInitialized(false),
+ mToBottom(false)
{
Initialize(positionSize, surface, isTransparent);
}
DALI_LOG_RELEASE_INFO("ecore_wl2_window_pin_mode_set, window: [%p], flag [%d]\n", mEcoreWindow, alwaysOnTop);
START_DURATION_CHECK();
ecore_wl2_window_pin_mode_set(mEcoreWindow, alwaysOnTop);
+ ecore_wl2_window_commit(mEcoreWindow, EINA_TRUE);
FINISH_DURATION_CHECK("ecore_wl2_window_pin_mode_set");
}
return ret;
}
+void WindowBaseEcoreWl2::SetToBottom(bool toBottom)
+{
+ START_DURATION_CHECK();
+ mToBottom = toBottom;
+ if(toBottom)
+ {
+ DALI_LOG_RELEASE_INFO("ecore_wl2_window_stack_mode_set, window: [%p], flag[%d] ECORE_WL2_WINDOW_STACK_BELOW\n", mEcoreWindow, toBottom);
+ ecore_wl2_window_stack_mode_set(mEcoreWindow, ECORE_WL2_WINDOW_STACK_BELOW);
+ }
+ else
+ {
+ DALI_LOG_RELEASE_INFO("ecore_wl2_window_stack_mode_set, window: [%p], flag[%d] ECORE_WL2_WINDOW_STACK_NONE\n", mEcoreWindow, toBottom);
+ ecore_wl2_window_stack_mode_set(mEcoreWindow, ECORE_WL2_WINDOW_STACK_NONE);
+ }
+ ecore_wl2_window_commit(mEcoreWindow, EINA_TRUE);
+ FINISH_DURATION_CHECK("ecore_wl2_window_pin_mode_set");
+}
+
+bool WindowBaseEcoreWl2::IsBottom()
+{
+ return mToBottom;
+}
+
Any WindowBaseEcoreWl2::GetNativeBuffer() const
{
DALI_LOG_RELEASE_INFO("Get wl_egl_window, ecore_window: [%p], wl_egl_window [%p]\n", mEcoreWindow, mEglWindow);
*/
bool IsAlwaysOnTop() override;
+ /**
+ * @copydoc Dali::Internal::Adaptor::WindowBase::SetToBottom()
+ */
+ void SetToBottom(bool toBottom) override;
+
+ /**
+ * @copydoc Dali::Internal::Adaptor::WindowBase::IsBottom()
+ */
+ bool IsBottom() override;
+
/**
* @copydoc Dali::Internal::Adaptor::WindowBase::GetNativeBuffer()
*/
bool mBrightnessChangeDone;
bool mIsFrontBufferRendering;
bool mIsIMEWindowInitialized;
+ bool mToBottom;
};
} // namespace Adaptor
return false;
}
+void WindowBaseEcoreX::SetToBottom(bool toBottom)
+{
+}
+
+bool WindowBaseEcoreX::IsBottom()
+{
+ return false;
+}
+
Any WindowBaseEcoreX::GetNativeBuffer() const
{
return 0;
*/
bool IsAlwaysOnTop() override;
+ /**
+ * @copydoc Dali::Internal::Adaptor::WindowBase::SetToBottom()
+ */
+ void SetToBottom(bool toBottom) override;
+
+ /**
+ * @copydoc Dali::Internal::Adaptor::WindowBase::IsBottom()
+ */
+ bool IsBottom() override;
+
/**
* @copydoc Dali::Internal::Adaptor::WindowBase::GetNativeBuffer()
*/
return false;
}
+void WindowBaseWin::SetToBottom(bool toBottom)
+{
+}
+
+bool WindowBaseWin::IsBottom()
+{
+ return false;
+}
+
Any WindowBaseWin::GetNativeBuffer() const
{
return 0;
*/
bool IsAlwaysOnTop() override;
+ /**
+ * @copydoc Dali::Internal::Adaptor::WindowBase::SetToBottom()
+ */
+ void SetToBottom(bool toBottom) override;
+
+ /**
+ * @copydoc Dali::Internal::Adaptor::WindowBase::IsBottom()
+ */
+ bool IsBottom() override;
+
/**
* @copydoc Dali::Internal::Adaptor::WindowBase::GetNativeBuffer()
*/
return false;
}
+void WindowBaseX::SetToBottom(bool toBottom)
+{
+}
+
+bool WindowBaseX::IsBottom()
+{
+ return false;
+}
+
Any WindowBaseX::GetNativeBuffer()
{
return 0;
*/
bool IsAlwaysOnTop() override;
+ /**
+ * @copydoc Dali::Internal::Adaptor::WindowBase::SetToBottom()
+ */
+ void SetToBottom(bool toBottom) override;
+
+ /**
+ * @copydoc Dali::Internal::Adaptor::WindowBase::IsBottom()
+ */
+ bool IsBottom() override;
+
/**
* @copydoc Dali::Internal::Adaptor::WindowBase::GetNativeBuffer()
*/