UE 4ノート--右クリックメニューを作成する

1475 ワード

UE 4ノート--右クリックメニューFVRSMainFrameCommandsセクションを作成し、UEソースコードのFmainFrameCommandsコードを表示します.
FReply SVRSTutorialButton::OnMouseButtonDown(const FGeometry& MyGeometry, const FPointerEvent& MouseEvent)
{
	if (MouseEvent.GetEffectingButton() == EKeys::RightMouseButton)
	{
		const bool bInShouldCloseWindowAfterMenuSelection = true;
		FMenuBuilder MenuBuilder(bInShouldCloseWindowAfterMenuSelection, FVRSMainFrameCommands::ActionList);

		MenuBuilder.AddMenuEntry(FVRSMainFrameCommands::Get().Edit_Clone);
		MenuBuilder.AddMenuEntry(FVRSMainFrameCommands::Get().Group_Group);
		MenuBuilder.AddMenuEntry(FVRSMainFrameCommands::Get().Group_Ungroup);
		MenuBuilder.AddMenuEntry(FVRSMainFrameCommands::Get().Edit_Copy);
		MenuBuilder.AddMenuEntry(FVRSMainFrameCommands::Get().Edit_Paste);
		MenuBuilder.AddMenuEntry(FVRSMainFrameCommands::Get().Edit_Delete);
		MenuBuilder.AddMenuEntry(FVRSMainFrameCommands::Get().Edit_MirrorX);
		MenuBuilder.AddMenuEntry(FVRSMainFrameCommands::Get().Edit_MirrorY);
		MenuBuilder.AddMenuEntry(FVRSMainFrameCommands::Get().Edit_SnapFloor);
		MenuBuilder.AddMenuEntry(FVRSMainFrameCommands::Get().Edit_Detail);

		FWidgetPath WidgetPath = MouseEvent.GetEventPath() != nullptr ? *MouseEvent.GetEventPath() : FWidgetPath();
		FSlateApplication::Get().PushMenu(SharedThis(this), WidgetPath, MenuBuilder.MakeWidget(), FSlateApplication::Get().GetCursorPos(), FPopupTransitionEffect::ContextMenu);
	}
	return FReply::Handled();
}