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