Files
UnrealEngine/Engine/Source/Editor/UnrealEd/Public/SViewportToolBar.h
2025-05-18 13:04:45 +08:00

70 lines
2.0 KiB
C++

// Copyright Epic Games, Inc. All Rights Reserved.
#pragma once
#include "Animation/CurveSequence.h"
#include "CoreMinimal.h"
#include "Editor/UnrealEdTypes.h"
#include "Engine/EngineBaseTypes.h"
#include "Internationalization/Text.h"
#include "Templates/SharedPointer.h"
#include "Widgets/DeclarativeSyntaxSupport.h"
#include "Widgets/SCompoundWidget.h"
class SMenuAnchor;
struct FSlateBrush;
/**
* A level viewport toolbar widget that is placed in a viewport
*/
class SViewportToolBar : public SCompoundWidget
{
public:
SLATE_BEGIN_ARGS( SViewportToolBar ){}
SLATE_END_ARGS()
UNREALED_API void Construct( const FArguments& InArgs );
/**
* @return The currently open pull down menu if there is one
*/
UNREALED_API TWeakPtr<SMenuAnchor> GetOpenMenu() const;
/**
* Sets the open menu to a new menu and closes any currently opened one
*
* @param NewMenu The new menu that is opened
*/
UNREALED_API void SetOpenMenu( TSharedPtr< SMenuAnchor >& NewMenu );
/** @return Whether the given viewmode is supported. */
UNREALED_API virtual bool IsViewModeSupported(EViewModeIndex ViewModeIndex) const;
protected:
/**
* Returns the label for the "Camera" tool bar menu based on based viewport type
*
* @param ViewportType The Viewport type we want the label for
*
* @return Label to use for this menu label
*/
UE_DEPRECATED(5.6, "Please use UE::UnrealEd::GetCameraSubmenuLabelFromViewportType instead.")
UNREALED_API virtual FText GetCameraMenuLabelFromViewportType(const ELevelViewportType ViewportType) const;
/**
* Returns the label icon for the "Camera" tool bar menu, which changes depending on the viewport type
*
* @param ViewportType The Viewport type we want the icon for
*
* @return Label icon to use for this menu label
*/
UNREALED_API virtual const FSlateBrush* GetCameraMenuLabelIconFromViewportType(const ELevelViewportType ViewportType) const;
private:
/** The pulldown menu that is open if any */
TWeakPtr< SMenuAnchor > OpenedMenu;
};