FreeRDP
Loading...
Searching...
No Matches
sdl_win32.hpp
1
19#pragma once
20
21#include <SDL3/SDL.h>
22
23#include <vector>
24
25/* Restack windows without activation. */
26bool sdl_win32_restack_windows(const std::vector<SDL_Window*>& topToBottom);
27
28/* A native move (or size, `wmszEdge` = WMSZ_*) loop can run for this window. */
29[[nodiscard]] bool sdl_win32_can_move_size(SDL_Window* window, bool move, int wmszEdge);
30
31/* Run native move/size loop (blocking). */
32void sdl_win32_run_move_size(SDL_Window* window, bool move, int wmszEdge);
33
34/* Give a toplevel the native (invisible) sizing frame, without a caption. */
35bool sdl_win32_use_native_frame(SDL_Window* window);
36
37/* Place a native-frame window by its client rect; false for other windows. */
38bool sdl_win32_set_client_rect(SDL_Window* window, const SDL_Rect& rect);
39
40/* Callbacks invoked during native modal loop dispatch. */
42{
43 void* userdata = nullptr;
44 void (*redraw)(void* userdata) = nullptr;
45 void (*sizing)(void* userdata, SDL_WindowID id, int wmszEdge, bool end) = nullptr;
46};
47void sdl_win32_set_size_move_handler(const SdlWin32SizeMoveHandler& handler);
48
49/* Post the left button release the move/size loop consumed. */
50bool sdl_win32_send_left_button_release(SDL_Window* window);