// Copyright (c) 2012-2024 Wojciech Figat. All rights reserved. #pragma once #include "Engine/Core/Math/Vector2.h" #include "Engine/Core/Types/String.h" /// /// Specifies the initial position of a window. /// API_ENUM() enum class WindowStartPosition { /// /// The window is centered within the bounds of its parent window or center screen if has no parent window specified. /// CenterParent, /// /// The windows is centered on the current display, and has the dimensions specified in the windows's size. /// CenterScreen, /// /// The position of the form is determined by the Position property. /// Manual, }; /// /// Settings for new window. /// API_STRUCT(NoDefault) struct CreateWindowSettings { DECLARE_SCRIPTING_TYPE_MINIMAL(CreateWindowSettings); /// /// The native parent window pointer. /// API_FIELD() Window* Parent = nullptr; /// /// The title. /// API_FIELD() String Title; /// /// The custom start position. /// API_FIELD() Float2 Position = Float2(100, 400); /// /// The client size. /// API_FIELD() Float2 Size = Float2(640, 480); /// /// The minimum size. /// API_FIELD() Float2 MinimumSize = Float2(1, 1); /// /// The maximum size. Set to 0 to use unlimited size. /// API_FIELD() Float2 MaximumSize = Float2(0, 0); /// /// The start position mode. /// API_FIELD() WindowStartPosition StartPosition = WindowStartPosition::Manual; /// /// True if show window fullscreen on show. /// API_FIELD() bool Fullscreen = false; /// /// Enable/disable window border. /// API_FIELD() bool HasBorder = true; /// /// Enable/disable window transparency support. Required to change window opacity property. /// API_FIELD() bool SupportsTransparency = false; /// /// True if show window on taskbar, otherwise it will be hidden. /// API_FIELD() bool ShowInTaskbar = true; /// /// Auto activate window after show. /// API_FIELD() bool ActivateWhenFirstShown = true; /// /// Allow window to capture input. /// API_FIELD() bool AllowInput = true; /// /// Allow window minimize action. /// API_FIELD() bool AllowMinimize = true; /// /// Allow window maximize action. /// API_FIELD() bool AllowMaximize = true; /// /// Enable/disable drag and drop actions over the window. /// API_FIELD() bool AllowDragAndDrop = false; /// /// True if window topmost, otherwise false as default layout. /// API_FIELD() bool IsTopmost = false; /// /// True if it's a regular window, false for tooltips, contextmenu and other utility windows. /// API_FIELD() bool IsRegularWindow = true; /// /// Enable/disable window sizing frame. /// API_FIELD() bool HasSizingFrame = true; /// /// Enable/disable window auto-show after the first paint. /// API_FIELD() bool ShowAfterFirstPaint = true; /// /// The custom data (platform dependant). /// API_FIELD() void* Data = nullptr; };