Files
UnrealEngine/Engine/Source/Developer/SourceControlViewport/Private/SourceControlViewportMenu.h
Brandyn / Techy fcc1b09210 init
2026-04-04 15:40:51 -05:00

44 lines
1.3 KiB
C++

// 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<FSourceControlViewportMenu, ESPMode::ThreadSafe>
{
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<SLevelViewport> Viewport);
void HideAll(TWeakPtr<SLevelViewport> Viewport);
void ToggleHighlight(TWeakPtr<SLevelViewport> Viewport, ESourceControlStatus Status);
bool IsHighlighted(TWeakPtr<SLevelViewport> Viewport, ESourceControlStatus Status) const;
void OnOpacityCommitted(uint8 NewValue, ETextCommit::Type CommitType, TWeakPtr<SLevelViewport> Viewport);
void SetOpacityValue(uint8 NewValue, TWeakPtr<SLevelViewport> Viewport);
uint8 GetOpacityValue(TWeakPtr<SLevelViewport> Viewport) const;
private:
void RecordToggleEvent(const FString& Param, bool bEnabled) const;
};