From e64fc16d6a84ee1b58064177212368bfcd58aa9e Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Hatvani=20Tam=C3=A1s?= Date: Wed, 15 Apr 2026 10:19:24 +0200 Subject: [PATCH] removeflags function for window class --- SakuraCore/src/Window.cpp | 49 +++++++++++++++++++++++++++++++++++++++ 1 file changed, 49 insertions(+) diff --git a/SakuraCore/src/Window.cpp b/SakuraCore/src/Window.cpp index daaa391..25f63b9 100644 --- a/SakuraCore/src/Window.cpp +++ b/SakuraCore/src/Window.cpp @@ -146,6 +146,55 @@ void Window::AddFlags(std::span flags) { } } +void Window::RemoveFlags(std::span flags) { + for (auto &flag : flags) { + switch (flag) { + case SDL_WINDOW_FULLSCREEN: + SDL_SetWindowFullscreen(m_Handle, false); + break; + case SDL_WINDOW_HIDDEN: + SDL_HideWindow(m_Handle); + break; + case SDL_WINDOW_BORDERLESS: + SDL_SetWindowBordered(m_Handle, true); + break; + case SDL_WINDOW_RESIZABLE: + SDL_SetWindowResizable(m_Handle, false); + break; + case SDL_WINDOW_MINIMIZED: + case SDL_WINDOW_MAXIMIZED: + SDL_RestoreWindow(m_Handle); + break; + case SDL_WINDOW_MOUSE_GRABBED: + SDL_SetWindowMouseGrab(m_Handle, false); + break; + case SDL_WINDOW_MOUSE_CAPTURE: + SDL_SetWindowMouseGrab(m_Handle, false); + break; + case SDL_WINDOW_MOUSE_RELATIVE_MODE: + SDL_SetWindowRelativeMouseMode(m_Handle, false); + break; + case SDL_WINDOW_MODAL: + SDL_SetWindowModal(m_Handle, false); + break; + case SDL_WINDOW_ALWAYS_ON_TOP: + SDL_SetWindowAlwaysOnTop(m_Handle, false); + break; + case SDL_WINDOW_KEYBOARD_GRABBED: + SDL_SetWindowKeyboardGrab(m_Handle, false); + break; + case SDL_WINDOW_NOT_FOCUSABLE: + SDL_SetWindowFocusable(m_Handle, true); + break; + default: + LOG_WARN("You can only use this when creating a window or the flag is readonly"); + break; + } + + *m_Flags |= flag; + } +} + void Window::Resize() { SDL_GetWindowSize(m_Handle, &m_Data.width, &m_Data.height); SDL_SetWindowSize(m_Handle, m_Data.width, m_Data.height);