#pragma once

#include "CoreMinimal.h"

struct FToolMenuEntry;
struct FToolUIActionChoice;
class FBlueprintEditor;
// Utility class that uses the C++ template explicit-instantiation
// loophole to access private members of engine classes.
// See WingHacks.cpp for details on the technique.
class WingHacks
{
public:
	// Access FToolMenuEntry::Action (private member).
	static const FToolUIActionChoice& GetAction(const FToolMenuEntry& Entry);

	// Check whether FToolMenuEntry::Command (private member) is set.
	static bool HasCommand(const FToolMenuEntry& Entry);

	// Check FBlueprintEditor::bWasOpenedInDefaultsMode (private member).
	static bool WasOpenedInDefaultsMode(FBlueprintEditor* Editor);
};
