UDocumentation UE5.7 10.02.2026 (Source)
API documentation for Unreal Engine 5.7
LinuxWindow.h
Go to the documentation of this file.
1// Copyright Epic Games, Inc. All Rights Reserved.
2
3#pragma once
4
5#include "CoreTypes.h"
6#include "Logging/LogMacros.h"
9
10#include <SDL3/SDL.h>
11
14
18
20
22
28{
29public:
31
41
43
45
48
51
54
57
60
63
66
69
72
75
78
81
84
87
92
106
111
112public:
113 APPLICATIONCORE_API virtual void ReshapeWindow( int32 X, int32 Y, int32 Width, int32 Height ) override;
114
115 virtual void* GetOSWindowHandle() const override { return HWnd; }
116
117 // not finished
118 APPLICATIONCORE_API virtual bool GetFullScreenInfo( int32& X, int32& Y, int32& Width, int32& Height ) const override;
119
120 APPLICATIONCORE_API virtual void MoveWindowTo ( int32 X, int32 Y ) override;
121
122 APPLICATIONCORE_API virtual void BringToFront( bool bForce = false ) override;
123
124 APPLICATIONCORE_API virtual void Destroy() override;
125
126 APPLICATIONCORE_API virtual void Minimize() override;
127
128 APPLICATIONCORE_API virtual void Maximize() override;
129
130 APPLICATIONCORE_API virtual void Restore() override;
131
132 APPLICATIONCORE_API virtual void Show() override;
133
134 APPLICATIONCORE_API virtual void Hide() override;
135
137
138 virtual EWindowMode::Type GetWindowMode() const override { return WindowMode; }
139
140 APPLICATIONCORE_API virtual bool IsMaximized() const override;
141
142 APPLICATIONCORE_API virtual bool IsVisible() const override;
143
144 APPLICATIONCORE_API virtual bool IsMinimized() const override;
145
146 APPLICATIONCORE_API virtual bool GetRestoredDimensions(int32& X, int32& Y, int32& Width, int32& Height) override;
147
148 APPLICATIONCORE_API virtual void SetWindowFocus() override;
149
150 APPLICATIONCORE_API virtual void SetOpacity( const float InOpacity ) override;
151
152 APPLICATIONCORE_API virtual void Enable( bool bEnable ) override;
153
154 APPLICATIONCORE_API virtual bool IsPointInWindow( int32 X, int32 Y ) const override;
155
156 APPLICATIONCORE_API virtual int32 GetWindowBorderSize() const override;
157
158 APPLICATIONCORE_API virtual bool IsForegroundWindow() const override;
164 APPLICATIONCORE_API virtual void SetText(const TCHAR* const Text) override;
165
167 APPLICATIONCORE_API virtual void AdjustCachedSize( FVector2D& Size ) const override;
168
169 virtual float GetDPIScaleFactor() const override
170 {
171 return DPIScaleFactor;
172 }
173
174 virtual void SetDPIScaleFactor(float Value) override
175 {
176 DPIScaleFactor = Value;
177 }
178
186
192
193private:
194
199
200private:
201
202 FLinuxApplication* OwningApplication;
203
205 SDL_HWindow HWnd;
206
208 int32 RegionWidth;
209 int32 RegionHeight;
210
212 EWindowMode::Type WindowMode;
213
214 RECT PreFullscreenWindowRect;
215
220 int32 VirtualWidth;
221 int32 VirtualHeight;
222
224 bool bIsVisible;
225
227 bool bWasFullscreen;
228
230 bool bIsPopupWindow;
231
233 bool bIsTooltipWindow;
234
236 bool bIsConsoleWindow;
237
239 bool bIsDialogWindow;
240
242 bool bIsNotificationWindow;
243
245 bool bIsTopLevelWindow;
246
248 bool bIsDragAndDropWindow;
249
251 bool bIsUtilityWindow;
252
254 bool bIsPointerInsideWindow;
255
257 uint32 WindowSDLID;
258
260 TSharedPtr< FLinuxWindow > ParentWindow;
261 static APPLICATIONCORE_API SDL_HitTestResult HitTest( SDL_Window *SDLwin, const SDL_Point *point, void *data );
262
264 int32 LeftBorderWidth;
265
267 int32 TopBorderHeight;
268
270 bool bValidNativePropertiesCache;
271
276 float DPIScaleFactor;
277};
FPlatformTypes::TCHAR TCHAR
Either ANSICHAR or WIDECHAR, depending on whether the platform supports wide characters or the requir...
Definition Platform.h:1135
FPlatformTypes::int32 int32
A 32-bit signed integer.
Definition Platform.h:1125
UE_FORCEINLINE_HINT TSharedRef< CastToType, Mode > StaticCastSharedRef(TSharedRef< CastFromType, Mode > const &InSharedRef)
Definition SharedPointer.h:127
#define X(Name, Desc)
Definition FormatStringSan.h:47
EWindowActivationPolicy
Definition GenericWindowDefinition.h:51
SDL_Window * SDL_HWindow
Definition LinuxWindow.h:19
#define DECLARE_LOG_CATEGORY_EXTERN(CategoryName, DefaultVerbosity, CompileTimeVerbosity)
Definition LogMacros.h:361
uint32 Size
Definition VulkanMemory.cpp:4034
uint32_t uint32
Definition binka_ue_file_header.h:6
Definition GenericWindow.h:94
Definition LinuxApplication.h:25
Definition LinuxWindow.h:28
virtual APPLICATIONCORE_API void SetWindowFocus() override
Definition LinuxWindow.cpp:819
APPLICATIONCORE_API EWindowActivationPolicy GetActivationPolicy() const
Definition LinuxWindow.cpp:926
APPLICATIONCORE_API const TSharedPtr< FLinuxWindow > & GetParent() const
Definition LinuxWindow.cpp:957
virtual APPLICATIONCORE_API void Minimize() override
Definition LinuxWindow.cpp:523
virtual APPLICATIONCORE_API bool IsPointInWindow(int32 X, int32 Y) const override
Definition LinuxWindow.cpp:850
virtual APPLICATIONCORE_API void BringToFront(bool bForce=false) override
Definition LinuxWindow.cpp:492
virtual APPLICATIONCORE_API void ReshapeWindow(int32 X, int32 Y, int32 Width, int32 Height) override
Definition LinuxWindow.cpp:605
virtual APPLICATIONCORE_API bool GetRestoredDimensions(int32 &X, int32 &Y, int32 &Width, int32 &Height) override
Definition LinuxWindow.cpp:810
APPLICATIONCORE_API bool IsUtilityWindow() const
Definition LinuxWindow.cpp:921
APPLICATIONCORE_API void LogInfo()
Definition LinuxWindow.cpp:941
APPLICATIONCORE_API void AfterNativeResize()
virtual APPLICATIONCORE_API void Show() override
Definition LinuxWindow.cpp:541
virtual APPLICATIONCORE_API bool IsVisible() const override
Definition LinuxWindow.cpp:804
APPLICATIONCORE_API uint32 GetID() const
Definition LinuxWindow.cpp:936
APPLICATIONCORE_API bool BeginNativeMove()
virtual EWindowMode::Type GetWindowMode() const override
Definition LinuxWindow.h:138
APPLICATIONCORE_API bool IsRegularWindow() const
Definition LinuxWindow.cpp:881
virtual APPLICATIONCORE_API int32 GetWindowBorderSize() const override
Definition LinuxWindow.cpp:859
virtual APPLICATIONCORE_API void Maximize() override
Definition LinuxWindow.cpp:529
APPLICATIONCORE_API void GetNativeBordersSize(int32 &OutLeftBorderWidth, int32 &OutTopBorderHeight) const
Definition LinuxWindow.cpp:962
virtual APPLICATIONCORE_API void Restore() override
Definition LinuxWindow.cpp:535
APPLICATIONCORE_API void EndNativeMove()
NativeResizeDirection
Definition LinuxWindow.h:94
@ InvalidDirection
Definition LinuxWindow.h:104
@ ResizeNorthEast
Definition LinuxWindow.h:99
@ ResizeSouthEast
Definition LinuxWindow.h:97
@ ResizeSouthWest
Definition LinuxWindow.h:95
@ ResizeNorth
Definition LinuxWindow.h:100
@ ResizeSouth
Definition LinuxWindow.h:96
@ ResizeEast
Definition LinuxWindow.h:98
@ ResizeWest
Definition LinuxWindow.h:102
@ ResizeNorthWest
Definition LinuxWindow.h:101
APPLICATIONCORE_API bool IsNotificationWindow() const
Definition LinuxWindow.cpp:896
virtual APPLICATIONCORE_API bool IsForegroundWindow() const override
Definition LinuxWindow.cpp:864
APPLICATIONCORE_API void AfterNativeMove()
virtual APPLICATIONCORE_API bool IsMinimized() const override
Definition LinuxWindow.cpp:798
static APPLICATIONCORE_API TSharedRef< FLinuxWindow > Make()
Definition LinuxWindow.cpp:38
APPLICATIONCORE_API bool IsTopLevelWindow() const
Definition LinuxWindow.cpp:901
virtual float GetDPIScaleFactor() const override
Definition LinuxWindow.h:169
APPLICATIONCORE_API bool IsDragAndDropWindow() const
Definition LinuxWindow.cpp:916
virtual APPLICATIONCORE_API void SetWindowMode(EWindowMode::Type NewWindowMode) override
Definition LinuxWindow.cpp:672
APPLICATIONCORE_API bool BeginNativeResize(NativeResizeDirection Direction)
virtual void SetDPIScaleFactor(float Value) override
Definition LinuxWindow.h:174
APPLICATIONCORE_API void EndNativeResize()
virtual void * GetOSWindowHandle() const override
Definition LinuxWindow.h:115
virtual APPLICATIONCORE_API void AdjustCachedSize(FVector2D &Size) const override
Definition LinuxWindow.cpp:740
virtual APPLICATIONCORE_API bool GetFullScreenInfo(int32 &X, int32 &Y, int32 &Width, int32 &Height) const override
Definition LinuxWindow.cpp:773
APPLICATIONCORE_API bool IsModalWindow() const
Definition LinuxWindow.cpp:906
APPLICATIONCORE_API ~FLinuxWindow()
Definition LinuxWindow.cpp:31
virtual APPLICATIONCORE_API void SetText(const TCHAR *const Text) override
Definition LinuxWindow.cpp:876
APPLICATIONCORE_API bool IsPopupMenuWindow() const
Definition LinuxWindow.cpp:886
virtual APPLICATIONCORE_API void MoveWindowTo(int32 X, int32 Y) override
Definition LinuxWindow.cpp:471
virtual APPLICATIONCORE_API void Hide() override
Definition LinuxWindow.cpp:556
APPLICATIONCORE_API bool IsNativeResizing() const
APPLICATIONCORE_API bool IsDialogWindow() const
Definition LinuxWindow.cpp:911
virtual APPLICATIONCORE_API void SetOpacity(const float InOpacity) override
Definition LinuxWindow.cpp:833
APPLICATIONCORE_API bool IsNativeMoving() const
APPLICATIONCORE_API bool IsTooltipWindow() const
Definition LinuxWindow.cpp:891
APPLICATIONCORE_API void CacheNativeProperties()
Definition LinuxWindow.cpp:969
virtual APPLICATIONCORE_API bool IsMaximized() const override
Definition LinuxWindow.cpp:792
APPLICATIONCORE_API SDL_HWindow GetHWnd() const
Definition LinuxWindow.cpp:67
virtual APPLICATIONCORE_API void Destroy() override
Definition LinuxWindow.cpp:507
APPLICATIONCORE_API bool IsFocusWhenFirstShown() const
Definition LinuxWindow.cpp:931
Definition SharedPointer.h:153
Type
Definition GenericWindow.h:17
Definition GenericWindowDefinition.h:64
Definition AndroidSystemIncludes.h:36