Add Window.IsAlwaysOnTop property
This commit is contained in:
@@ -164,6 +164,15 @@ void WindowBase::SetIsVisible(bool isVisible)
|
||||
}
|
||||
}
|
||||
|
||||
bool WindowBase::IsAlwaysOnTop() const
|
||||
{
|
||||
return false;
|
||||
}
|
||||
|
||||
void WindowBase::SetIsAlwaysOnTop(bool isAlwaysOnTop)
|
||||
{
|
||||
}
|
||||
|
||||
String WindowBase::ToString() const
|
||||
{
|
||||
return GetTitle();
|
||||
|
||||
@@ -157,6 +157,17 @@ public:
|
||||
return _maximized;
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Gets a value that indicates whether a window is always on top of other windows.
|
||||
/// </summary>
|
||||
API_PROPERTY() virtual bool IsAlwaysOnTop() const;
|
||||
|
||||
/// <summary>
|
||||
/// Sets a value that indicates whether a window is always on top of other windows.
|
||||
/// </summary>
|
||||
/// <param name="isAlwaysOnTop">True if always on top.</param>
|
||||
API_PROPERTY() virtual void SetIsAlwaysOnTop(bool isAlwaysOnTop);
|
||||
|
||||
/// <summary>
|
||||
/// Gets the native window handle.
|
||||
/// </summary>
|
||||
|
||||
@@ -849,6 +849,19 @@ void SDLWindow::SetIsFullscreen(bool isFullscreen)
|
||||
WindowBase::SetIsFullscreen(isFullscreen);
|
||||
}
|
||||
|
||||
bool SDLWindow::IsAlwaysOnTop() const
|
||||
{
|
||||
SDL_WindowFlags flags = SDL_GetWindowFlags(_window);
|
||||
return (flags & SDL_WINDOW_ALWAYS_ON_TOP) != 0;
|
||||
}
|
||||
|
||||
void SDLWindow::SetIsAlwaysOnTop(bool isAlwaysOnTop)
|
||||
{
|
||||
if (!SDL_SetWindowAlwaysOnTop(_window, isAlwaysOnTop))
|
||||
LOG(Warning, "SDL_SetWindowAlwaysOnTop failed: {0}", String(SDL_GetError()));
|
||||
// Not sure if this should change _settings.IsTopmost to reflect the new value?
|
||||
}
|
||||
|
||||
Float2 SDLWindow::GetPosition() const
|
||||
{
|
||||
Int2 topLeftBorder;
|
||||
|
||||
@@ -90,6 +90,8 @@ public:
|
||||
void SetPosition(const Float2& position) override;
|
||||
void SetClientPosition(const Float2& position) override;
|
||||
void SetIsFullscreen(bool isFullscreen) override;
|
||||
bool IsAlwaysOnTop() const override;
|
||||
void SetIsAlwaysOnTop(bool isAlwaysOnTop) override;
|
||||
Float2 GetPosition() const override;
|
||||
Float2 GetSize() const override;
|
||||
Float2 GetClientSize() const override;
|
||||
|
||||
Reference in New Issue
Block a user