Files
2025-05-18 13:04:45 +08:00

38 lines
897 B
C++

// Copyright Epic Games, Inc. All Rights Reserved.
#pragma once
#include "CoreMinimal.h"
class SWidget;
class SWindow;
enum class EPopupMethod : uint8;
/**
* Represents a popup menu.
*/
class IMenu
{
public:
DECLARE_MULTICAST_DELEGATE_OneParam(FOnMenuDismissed, TSharedRef<IMenu> /*DismissedMenu*/);
virtual ~IMenu() { }
virtual EPopupMethod GetPopupMethod() const = 0;
virtual TSharedPtr<SWindow> GetParentWindow() const = 0;
virtual TSharedPtr<SWindow> GetOwnedWindow() const = 0;
virtual TSharedPtr<SWidget> GetContent() const = 0;
virtual FOnMenuDismissed& GetOnMenuDismissed() = 0;
virtual bool UsingApplicationMenuStack() const = 0;
virtual void Dismiss() = 0;
};
class IMenuHost
{
public:
virtual TSharedPtr<SWindow> GetMenuWindow() const = 0;
virtual void OnMenuDismissed() = 0;
virtual bool UsingApplicationMenuStack() const = 0;
bool bShowMenuBackground = true;
};