mirror of
https://github.com/kevinporetti/UnrealImGui.git
synced 2025-01-18 16:30:32 +00:00
75 lines
2.0 KiB
C++
75 lines
2.0 KiB
C++
#pragma once
|
|
|
|
#include "ImGuiModuleManager.h"
|
|
#include "Framework/Application/IInputProcessor.h"
|
|
|
|
class FImGuiModuleManager;
|
|
|
|
class FImGuiInputPreprocessor : public IInputProcessor
|
|
{
|
|
public:
|
|
FImGuiInputPreprocessor(FImGuiModuleManager& InModuleManager)
|
|
: ModuleManager(InModuleManager)
|
|
{
|
|
}
|
|
|
|
virtual void Tick(const float DeltaTime, FSlateApplication& SlateApp, TSharedRef<ICursor> Cursor) override
|
|
{
|
|
}
|
|
|
|
virtual bool HandleKeyDownEvent(FSlateApplication& SlateApp, const FKeyEvent& InKeyEvent) override
|
|
{
|
|
return false;
|
|
}
|
|
|
|
virtual bool
|
|
HandleAnalogInputEvent(FSlateApplication& SlateApp, const FAnalogInputEvent& InAnalogInputEvent) override
|
|
{
|
|
return false;
|
|
}
|
|
|
|
virtual bool HandleMouseMoveEvent(FSlateApplication& SlateApp, const FPointerEvent& InPointerEvent) override
|
|
{
|
|
const bool bIsWindowHovered = ImGui::IsWindowHovered();
|
|
FImGuiContextProxy* Proxy = ModuleManager.GetContextManager().GetContextProxy(0);
|
|
if (Proxy)
|
|
{
|
|
GEngine->AddOnScreenDebugMessage(10, 0, Proxy->WantsMouseCapture() ? FColor::Green : FColor::Red, TEXT("Move Capture"));
|
|
}
|
|
else
|
|
{
|
|
GEngine->AddOnScreenDebugMessage(10, 0, FColor::Red, TEXT("No proxy"));
|
|
}
|
|
|
|
GEngine->AddOnScreenDebugMessage(1, 0, bIsWindowHovered ? FColor::Green : FColor::Red, TEXT("Move Hover"));
|
|
return false;
|
|
}
|
|
|
|
virtual bool HandleMouseButtonDownEvent(FSlateApplication& SlateApp, const FPointerEvent& InPointerEvent) override
|
|
{
|
|
//if (ModuleManager.GetProperties().IsMouseInputShared())
|
|
{
|
|
const bool bIsWindowHovered = ImGui::IsWindowHovered();
|
|
GEngine->AddOnScreenDebugMessage(2, 10, bIsWindowHovered ? FColor::Green : FColor::Red, TEXT("Click Hover"));
|
|
return bIsWindowHovered;
|
|
}
|
|
return false;
|
|
}
|
|
|
|
virtual bool
|
|
HandleMouseButtonDoubleClickEvent(FSlateApplication& SlateApp, const FPointerEvent& InPointerEvent) override
|
|
{
|
|
return false;
|
|
}
|
|
|
|
virtual const TCHAR* GetDebugName() const override { return TEXT("CommonInput"); }
|
|
|
|
private:
|
|
bool IsRelevantInput(FSlateApplication& SlateApp, const FInputEvent& InputEvent)
|
|
{
|
|
return false;
|
|
}
|
|
|
|
FImGuiModuleManager& ModuleManager;
|
|
};
|