// Copyright Epic Games, Inc. All Rights Reserved. #pragma once #include "CoreMinimal.h" #include "SourceControlViewportUtils.h" #include "Types/SlateEnums.h" class SLevelViewport; class FLevelEditorViewportClient; class UToolMenu; class SWidget; // Adds an options menu to the Viewport's SHOW pill. class FSourceControlViewportMenu : public TSharedFromThis { public: FSourceControlViewportMenu(); ~FSourceControlViewportMenu(); public: void Init(); void SetEnabled(bool bInEnabled); private: void InsertViewportMenu(); void PopulateViewportMenu(UToolMenu* InMenu); void PopulateRevisionControlMenu(UToolMenu* InMenu); void RemoveViewportMenu(); private: void ShowAll(TWeakPtr Viewport); void HideAll(TWeakPtr Viewport); void ToggleHighlight(TWeakPtr Viewport, ESourceControlStatus Status); bool IsHighlighted(TWeakPtr Viewport, ESourceControlStatus Status) const; void OnOpacityCommitted(uint8 NewValue, ETextCommit::Type CommitType, TWeakPtr Viewport); void SetOpacityValue(uint8 NewValue, TWeakPtr Viewport); uint8 GetOpacityValue(TWeakPtr Viewport) const; private: void RecordToggleEvent(const FString& Param, bool bEnabled) const; };