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;
|
|||
|
};
|