linuxsdlminimizemaximizeborderless

SDL How to check if window is maximized or minimized


I'm trying to make a borderless window that can be maximized and minimized, but I can't get any information on how to get the current state of the window (if it's minimized or maximized) and how to use it.

(edit) rough snippets of the code:


SDL_Rect minimize_area = {0,0,20,20};
Button minimize_window_button = Button(minimize_area);

SDL_Rect maximize_area = {0,0,20,20};
Button maximize_window_button = Button(maximize_area);

SDL_Rect close_area = {0,0,20,20};
Button close_window_button = Button(close_area);

// Program loop
while ( SDL_PollEvent( &event ) ) {
    case SDL_MOUSEBUTTONDOWN:
        if (event.button.button == SDL_BUTTON_LEFT) {
            mouse.updateMousePosition();
            if (close_window_button.mouseInDstRect(mouse.pos.x, mouse.pos.y)) running = false;
            if (maximize_window_button.mouseInDstRect(mouse.pos.x, mouse.pos.y)) {
                if (/* WAY TO KNOW IF THE WINDOW IS MAXIMIZED */) {
                    SDL_MaximizeWindow(window);
                } else {
                    SDL_RestoreWindow(window);
                }
            }
            if (minimize_window_button.mouseInDstRect(mouse.pos.x, mouse.pos.y)) {
                if (/* WAY TO KNOW IF WINDOW IS MINIMIZED or UNMINIMIZED */) {
                    SDL_MinimizeWindow(window);
                } else {
                    SDL_RestoreWindow(window);
                }
            }

        }

        SDL_Log("click!");
        break;
}




Solution

  • SDL_GetWindowFlags(), check the SDL_WINDOW_MINIMIZED & SDL_WINDOW_MAXIMIZED bits.