https://github.com/frozen-projects/windowsystem
UE5 external window creation system with runtime file drag drop support.
https://github.com/frozen-projects/windowsystem
drag-and-drop file import metaverse runtime ue4 ue4-plugin ue5 ue5-plugin ui ui-components unreal unreal-engine unrealengine userinterface widget window windows
Last synced: 10 months ago
JSON representation
UE5 external window creation system with runtime file drag drop support.
- Host: GitHub
- URL: https://github.com/frozen-projects/windowsystem
- Owner: Frozen-Projects
- License: other
- Created: 2022-05-23T18:58:23.000Z (over 3 years ago)
- Default Branch: main
- Last Pushed: 2025-04-02T11:33:22.000Z (10 months ago)
- Last Synced: 2025-04-11T05:14:39.587Z (10 months ago)
- Topics: drag-and-drop, file, import, metaverse, runtime, ue4, ue4-plugin, ue5, ue5-plugin, ui, ui-components, unreal, unreal-engine, unrealengine, userinterface, widget, window, windows
- Language: C++
- Homepage:
- Size: 3.35 MB
- Stars: 14
- Watchers: 1
- Forks: 1
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
# PURPOSES AND FEATURES:
- Runtime external window creation with UMG support.
- Runtime **Save and Select File Dialogs**
- File drag drop supports for main game window and external windows. It returns, content paths and content locations.
- If operating system is **Windows 11**, created windows will have **rounded corners**.
- Hover, window move and close detection events.
# USAGE:
- Place **BP_Template_WinMan** to world. This is your window manager.
- It is in **Plugins/WindowSystem/Content/BPs**
- You can create a new one based on your needs.
- It has to be only **one manager actor** in scene.
- Create and construct your widget.
- **Spawn Actor From Class** (use **EachWindow** class)
- Connect your manager and widget to **Spawn Actor From Class**
- Set your settings
- You have to give a unique tag **(optionally meaningful)** to your window.
- All window control functions are virtual functions of spawned EachWindow class object.
- You can access all created windows with **Manager->MAP_Windows (FName, AEachWindow)**. If you know the tag of window which you want to control, you can access it from this map.
- If you want to enable file drag drop feature for created window, you have two options.
- You can enable it when set enable **bIsFileDropEnabled** boolean on **Spawn Actor from Class**
- You can enable it in the future with **Set File Drag Drop Support** function.
- If you want to enable file drag drop feature for main window, just enable **bAllowMainWindow** boolean anytime.
# DISCLAIMER
- If you close your window accidentally, you will lost your widget as well. This can trigger errors and even crashes with other mechanics which depends on these widgets.
- If you use **HideFromTaskBar** features and accidentally throw your window to the backward, you will have to bring it back with **Bring Window Front**
# ADDITIONAL CONTROL FUNCTIONS FOR WINDOWS
- Take Screenshot of Window
- **(Variable)** WindowTag
- **(UMG Widget Variable)** ContentWidget
- Set Window Opacity
- Set Window State **(Minimmized / Restored / Maximized)
- Set Window Shape **(Give new position and or size with an animation)**
- Set Window Position
- Set Window Title
- Get Window State **(returns enums Minimized / Restored / Maximized)**
- Get Window Position **(return screen position as FVector2D)**
- Get Window Title
- Is Window Top Most
- Bring Window Front
- Toggle Top Most Option
- Toggle Show On Task Bar
- Toggle Opacity
- Set File Drag Drop Support
- **(Event)** On Window Hovered
- **(Event)** On Window Moved
- **(Event)** On Window Closed
# ADDITINAL FUNCTIONS FOR GENERAL USAGE
- Get Main Window Title
- Set Main Window Title
- Select File Dialog
- Save File Dialog
# WINDOW VARIABLES:
- Is Top Most
- Has Close
- We recommend to set this false. Because if user close a runtime generated window, all contents and its referances will be gone. So, use it with cautious.
- Force Volatile
- Preserve Aspect Ratio
- When user change size of that window, should window preserve it's aspect ratio or not.
- Minimized
- Create window as minimized or not.
- Supports Maximize
- Supports Minimize
- Set Mirror Window
- In Window Tag (You should absolutely set this with a meaningful and unique tag without space. Because we use this to record and get windows)
- In Window Title
- If you give a title, it will be visible on window's title bar.
- It is different than WindowTag as variable aspect but you can use same value.
- You can use more readable values with it.
- In Tooltip
- When user hovered that window, there will be additional information as tooltip.
- Window Size
- Minimum Size
- Minimum acceptable size for that window.
- Window Position
- Border Thick
- Thickness between frame and UMG content.
- In Opacity
- Initial opacity value of that window.
# PLATFORM:
- This plugin created only for **Windows** operating system and **Unreal Engine 5.**