Commit Graph

26 Commits

Author SHA1 Message Date
b58d17177e Update UnrealImGui to version 1.91.5-docking 2024-11-23 17:43:08 -05:00
Steve Streeting
5dc3b1f222 Remove "Handler Down" debug message 2023-07-11 16:30:58 +01:00
ben
cb89223375 Merged changes from WiggleWizard
Removed ImPlot stuff from WiggleWizard
Also has some changes on sharing mouse input
2022-04-01 11:41:38 -07:00
ben
91825ac883 Messing around trying to get input sharing to work 2022-03-26 07:45:04 -07:00
WiggleWizard
e96a11abcf Updated the way keys are handled to the new way ImGui now deals with input even though old input API works and is somewhat functional I'd rather be inline with latest standards. Also added all known keys to proxy for passing to ImGui for IsKeyDown/IsKeyPressed/IsKeyReleased routines. Code's a ugly and architecture not exactly perfect but works for the most part, will revisit when I get some time. 2022-02-25 21:40:13 +00:00
Sebastian
9eed8f93b9 Fixed a crash in the input handler caused by invalidated by hot-reload instance trying to unregister a delegate. 2020-07-31 09:54:05 +01:00
Sebastian
d4ffe9443f Enforced IWYU-style PCH model:
- Removed explicit PCH.
- Fixed includes to compile for all supported engine versions, including non-unity builds.
- Configured build.cs to treat ImGui as an engine module and added stricter compilation rules.
2020-06-25 10:52:46 +01:00
Sebastian
04e6f9d844 Removed dependency on headers included in the PCH and fixed any non-unity issues. 2020-06-14 21:50:26 +01:00
Sebastian
bbd2c01071 Replaced includes of monolithic headers. 2020-06-14 20:21:49 +01:00
Sebastian
95d27334fe Updated input handler to ignore fake mouse events potentially raised when touch input is unhandled. 2019-08-08 18:06:07 +01:00
Sebastian
5f1dc964cf Added support for touch input (experimental and right now only non-shared):
- Added to SImGuiWidget and FImGuiInputHandler handling of touch started, move and ended events.
- Events are passed to FImGuiInputState to be copied to ImGui IO as a mouse move and left button down.
- Added one frame lag between touch ending event and ending processing, to allow ImGui handle mouse-up event.
2019-08-01 21:41:12 +01:00
kkawachi
5e4b7084de Fixed build errors when the plugin is placed in the engine directory. (#19)
Merged 4 commits fixing build errors when compiling this as an engine plugin:
- Changed include directives to use full paths (ex. <ICursor.h> -> <GenericPlatform/ICursor.h>).
- Added categories to FImGuiKeyInfo properties (required for all blueprint exposed types in engine plugins).
- Added explicit configuration of PCHUsage (without that it is assumed to be UseExplicitOrSharedPCHs in engine plugins and UseSharedPCHs in game ones) - amended to work also in the older engine versions.
2019-07-27 18:45:25 +01:00
Sebastian
979903722a Moved the whole input handling from SImGuiWidget to UImGuiInputHandler:
- Moved responsibility for updating input state from the widget to the input handler.
- Changed the widget to fully delegate input events to the input handler and only manage its own input state.
- Changed the input handler interface to allow handling of all the necessary input events.
- Changed the input handler interface to use FReply as a response type and removed obsolete FImGuiInputResponse.
2019-06-30 18:25:58 +01:00
Sebastian
6eb66bf021 Renamed ImGuiSettings.h/cpp to ImGuiModuleSettings.h/cpp to keep it more consistent with conventions used in module. 2018-12-08 21:15:20 +00:00
Sebastian
09572a8ef9 Refactorization of ImGui settings:
- Divided ImGui settings into UImGuiSettings persistent object and FImGuiModuleSettings proxy that provides interface for other classes and handles delayed loading of UImGuiSettings.
- Removed from FImGuiModuleProperties and FImGuiModuleCommands direct dependencies on UImGuiSettings.
- Simplified FImGuiModuleProperties making it more robust when moving data after hot-reloading.
- Inverted binding logic by injecting FImGuiModuleProperties and FImGuiModuleCommands into FImGuiModuleSettings and letting it take care of synchronization. Dependencies are setup by module manager.
- Added to module manager FImGuiModuleSettings and interface to access it.
- Cleaned interface of FImGuiInputHandlerFactory and removed direct dependency on settings.
2018-12-08 21:03:18 +00:00
Sebastian
0bf940de81 Modified UImGuiInputHandler::OnKeyDown to only handle command bindings if keyboard input is not shared and to leave it for DebugExec if it is. 2018-12-04 19:41:22 +00:00
Sebastian
f4718e404a Introduced input sharing properties:
- Added properties defining whether keyboard or gamepad input should be shared between ImGui and game.
- Added interface and commands to dynamically change introduced properties.
- Updated ImGui Input Handler to base default input responses on sharing properties.
2018-12-02 18:42:28 +00:00
Sebastian
209a594616 Replaced module properties singleton with instance created as part of module manager:
- Removed ImGui Module Properties singleton interface and released construction constraints.
- Added ImGui Module Properties to ImGui Module Manager.
- Moved ImGui Demo to ImGui Module Manager.
- ImGui Demo and ImGui Module Commands keep reference to ImGui Module Manager that gives them access to properties.
2018-11-25 20:36:55 +00:00
Sebastian
70db3c7b20 Replaced console variables in FImGuiModuleProperties with plain variables. Added console commands to toggle states of those properties. 2018-11-25 19:11:48 +00:00
Sebastian
e00c1ff9e3 Renamed SwitchInputMode to ToggleInput command and interface to provide a better consistency with the engine and between module functions.
Note that this commit contains a minor breaking change for custom implementations of UImGuiInputHandler.
- Changed "ImGui.SwitchInputMode" command name to "ImGui.ToggleInput".
- Changed SwitchInputModeKey property in settings to ToggleInput.
- Added temporary mechanism protecting from losing data by moving it from SwitchInputModeKey to ToggleInput and removing deprecated entry from the default config file.
- Renamed UImGuiInputHandler protected function from IsSwitchInputModeEvent to IsToggleInputEvent, so custom implementations of that class may require update.
2018-11-24 21:16:25 +00:00
Sebastian
c5f3759664 Moved console variables and commands to wrapper objects:
- Moved property variables to ImGui Module Properties.
- Moved console command to ImGui Module Commands (one for now but more will be added).
- ImGui Module Commands is created by ImGui Module Manager, what means that commands are registered after module is loaded and unregistered when it is unloaded.
- Updated settings to allow more convenient use: Added global pointer to default object and event raised when it is loaded.
2018-11-24 19:54:01 +00:00
Sebastian
fc6fd2e498 Clean-up in debug code:
- Added common debug config file for module-wide debug symbols and loggers.
- Added IMGUI_MODULE_DEVELOPER symbol to enable or disable module developer mode, that is intended to add additional module debug options hidden from normal usage.
- ImGui Widget debug is only available in developer mode because in normal usage it adds noise to ImGui console variables while not being very useful.
- Merged LogImGuiInputHandler and LogImGuiInputHandlerFactory loggers as they are part of the same feature.
- Renamed LogImGuiInputState to LogImGuiInput.
2018-10-30 22:25:48 +00:00
Sebastian
20a7675787 Clean-up: Added a header file for backward compatibility symbols. Keeping rules in one place should help with tracking, help to maintain consistency and reduce clutter in implementation files. 2018-08-10 22:20:33 +01:00
Sebastian
a90f217ab3 Added 'ImGui.SwitchInputMode' command and configurable key binding to DebugExecBindings. 2018-07-30 22:05:59 +01:00
Sebastian
eabff7b839 Replaced in ImGui Input Handler hard-coded assumptions about console open and stop play session shortcuts with values taken from input settings and input binding manager. Testing functions are available for inheriting classes. 2018-07-10 20:21:35 +01:00
Sebastian
5968c3ce84 Added ImGui Input Handler and ImGui Settings:
- Added ImGui Input Handler class that allows to customize handling of the keyboard and gamepad input.
- Added ImGui Settings to allow specify custom input handler implementation.
- Added editor support for ImGui Settings.
- Input handling in ImGui Widget is divided for querying the handler (more customizable) and actual input processing based on the handler’s response (fixed and simplified).
- Removed a need for checking console state in different input handling functions in ImGui Widget by suppressing keyboard focus support when console is opened.
2018-07-10 17:40:57 +01:00