ShowWidget
ShowWidget
#Overview
name: ShowWidget
The value of this variable can be defined or overridden in .ini config files. 1
.ini config file referencing this setting variable.
It is referenced in 23
C++ source files.
#Summary
#Usage in the C++ source code
The purpose of ShowWidget is to control the visibility of a widget in various viewport contexts within Unreal Engine 5. This setting is primarily used in editor and debug scenarios to toggle the display of UI elements or tools within a viewport.
ShowWidget is utilized across several Unreal Engine subsystems and modules, including:
- Level Editor
- Sequencer
- Niagara (FX system)
- Hair Strands Editor
- Display Cluster Configurator
- UV Editor
- Viewport Interaction system
The value of this variable is typically set through function calls, such as ShowWidget(bool bShow)
, which allows developers to programmatically control widget visibility. It’s often toggled when switching between different view modes or editor states.
ShowWidget interacts with other variables and flags, such as:
- bShowWidget (the actual boolean storage for the setting)
- EngineShowFlags (for controlling various rendering features)
- ViewMode settings
Developers should be aware of the following when using ShowWidget:
- It affects the visibility of editor widgets, which can impact user interaction with the viewport.
- It’s often toggled when entering or exiting game view mode.
- Some systems automatically manage this setting based on the current editor state.
Best practices for using ShowWidget include:
- Ensure proper state management when switching between different viewport modes.
- Consider the impact on user experience when hiding or showing widgets.
- Use in conjunction with other viewport and engine show flags for consistent behavior.
- Remember to restore the widget visibility when exiting special modes or states.
By carefully managing the ShowWidget setting, developers can create more intuitive and clean editor interfaces while still providing necessary tools and information when needed.
#Setting Variables
#References In INI files
Location: <Workspace>/Engine/Config/BaseEditorPerProjectUserSettings.ini:496, section: [FEditorModeTools]
- INI Section:
FEditorModeTools
- Raw value:
True
- Is Array:
False
#References in C++ code
#Callsites
This variable is referenced in the following C++ source code:
#Loc: <Workspace>/Engine/Plugins/Editor/UVEditor/Source/UVEditor/Private/UVEditor2DViewportClient.cpp:151
Scope (from outer to inner):
file
function FUVEditor2DViewportClient::FUVEditor2DViewportClient
Source code excerpt:
, ViewportButtonsAPI(ViewportButtonsAPIIn), UVTool2DViewportAPI(UVTool2DViewportAPIIn)
{
ShowWidget(false);
// Don't draw the little XYZ drawing in the corner.
bDrawAxes = false;
// We want our near clip plane to be quite close so that we can zoom in further.
OverrideNearClipPlane(KINDA_SMALL_NUMBER);
#Loc: <Workspace>/Engine/Plugins/Experimental/Avalanche/Source/AvalancheLevelViewport/Private/Widgets/SAvaLevelViewportStatusBarButtons.cpp:1383
Scope (from outer to inner):
file
function FReply SAvaLevelViewportStatusBarButtons::ToggleGameView
Source code excerpt:
if (!bNewGameModeValue)
{
FrameAndClient.ViewportClient->ShowWidget(true);
}
return FReply::Handled();
}
return FReply::Unhandled();
#Loc: <Workspace>/Engine/Plugins/FX/Niagara/Source/NiagaraEditor/Private/Customizations/SimCache/NiagaraRenderTargetVolumeSimCacheVisualizer.cpp:189
Scope (from outer to inner):
file
function FNiagaraVolumeTextureViewportClient::FNiagaraVolumeTextureViewportClient
Source code excerpt:
DrawHelper.GridColorMinor = FColor(64,64,64);
DrawHelper.PerspectiveGridSize = UE_OLD_HALF_WORLD_MAX1;
//ShowWidget(false);
SetViewMode(VMI_Lit);
EngineShowFlags.SetSnap(0);
OverrideNearClipPlane(1.0f);
#Loc: <Workspace>/Engine/Plugins/FX/Niagara/Source/NiagaraEditor/Private/Widgets/AssetBrowser/NiagaraAssetBrowserPreview.cpp:55
Scope (from outer to inner):
file
function FNiagaraAssetPreviewViewportClient::FNiagaraAssetPreviewViewportClient
Source code excerpt:
DrawHelper.GridColorMinor = FColor(64,64,64);
DrawHelper.PerspectiveGridSize = UE_OLD_HALF_WORLD_MAX1;
ShowWidget(false);
FEditorViewportClient::SetViewMode(VMI_Lit);
EngineShowFlags.SetSnap(0);
OverrideNearClipPlane(1.0f);
#Loc: <Workspace>/Engine/Plugins/FX/Niagara/Source/NiagaraEditor/Private/Widgets/SNiagaraSimCacheViewport.cpp:48
Scope (from outer to inner):
file
function FNiagaraSimCacheViewportClient::FNiagaraSimCacheViewportClient
Source code excerpt:
DrawHelper.GridColorMinor = FColor(64,64,64);
DrawHelper.PerspectiveGridSize = UE_OLD_HALF_WORLD_MAX1;
ShowWidget(false);
FEditorViewportClient::SetViewMode(VMI_Lit);
EngineShowFlags.SetSnap(0);
OverrideNearClipPlane(1.0f);
#Loc: <Workspace>/Engine/Plugins/FX/Niagara/Source/NiagaraEditor/Private/Widgets/SNiagaraSystemViewport.cpp:109
Scope (from outer to inner):
file
function FNiagaraSystemViewportClient::FNiagaraSystemViewportClient
Source code excerpt:
DrawHelper.GridColorMinor = FColor(64,64,64);
DrawHelper.PerspectiveGridSize = UE_OLD_HALF_WORLD_MAX1;
ShowWidget(false);
FEditorViewportClient::SetViewMode(VMI_Lit);
EngineShowFlags.SetSnap(0);
OverrideNearClipPlane(1.0f);
#Loc: <Workspace>/Engine/Plugins/FX/Niagara/Source/NiagaraEditor/Private/Widgets/SNiagaraSystemViewport.cpp:1253
Scope (from outer to inner):
file
function FNiagaraBaselineViewportClient::FNiagaraBaselineViewportClient
Source code excerpt:
DrawHelper.GridColorMinor = FColor(64,64,64);
DrawHelper.PerspectiveGridSize = UE_OLD_HALF_WORLD_MAX1;
ShowWidget(false);
SetViewMode(VMI_Lit);
EngineShowFlags.SetSnap(0);
OverrideNearClipPlane(1.0f);
#Loc: <Workspace>/Engine/Plugins/Runtime/HairStrands/Source/HairStrandsEditor/Private/Widgets/SGroomEditorViewport.cpp:64
Scope (from outer to inner):
file
function FGroomEditorViewportClient::FGroomEditorViewportClient
Source code excerpt:
DrawHelper.GridColorMinor = FColor(64,64,64);
DrawHelper.PerspectiveGridSize = UE_OLD_HALF_WORLD_MAX1;
ShowWidget(false);
SetViewMode(VMI_Lit);
EngineShowFlags.DisableAdvancedFeatures();
EngineShowFlags.SetSnap(0);
EngineShowFlags.SetTemporalAA(true);
#Loc: <Workspace>/Engine/Plugins/Runtime/nDisplay/Source/DisplayClusterConfigurator/Private/Views/Viewport/DisplayClusterConfiguratorSCSEditorViewportClient.cpp:59
Scope (from outer to inner):
file
function FDisplayClusterConfiguratorSCSEditorViewportClient::FDisplayClusterConfiguratorSCSEditorViewportClient
Source code excerpt:
const UDisplayClusterConfiguratorEditorSettings* DisplayClusterSettings = GetDefault<UDisplayClusterConfiguratorEditorSettings>();
ShowWidget(true);
SetViewMode(VMI_Lit);
SyncEditorSettings();
EngineShowFlags.AntiAliasing = DisplayClusterSettings->bEditorEnableAA;
#Loc: <Workspace>/Engine/Plugins/Runtime/nDisplay/Source/DisplayClusterLightCardEditor/Private/Viewport/DisplayClusterLightCardEditorViewportClient.cpp:113
Scope (from outer to inner):
file
function FDisplayClusterLightCardEditorViewportClient::FDisplayClusterLightCardEditorViewportClient
Source code excerpt:
Widget->SetSnapEnabled(true);
ShowWidget(true);
SetViewMode(VMI_Unlit);
ViewportType = LVT_Perspective;
bSetListenerPosition = false;
bUseNumpadCameraControl = false;
#Loc: <Workspace>/Engine/Source/Editor/LevelEditor/Private/SLevelViewport.cpp:2057
Scope (from outer to inner):
file
function void SLevelViewport::ToggleGameView
Source code excerpt:
// LevelViewportClient->bShowWidget is set to "false" when entering game mode
// Need to turn it back to "true" when exiting game mode
LevelViewportClient->ShowWidget(true);
}
}
}
bool SLevelViewport::CanToggleGameView() const
{
#Loc: <Workspace>/Engine/Source/Editor/LevelEditor/Private/SLevelViewport.cpp:2858
Scope (from outer to inner):
file
function void SLevelViewport::OnActorSelectionChanged
Source code excerpt:
// In game mode, selecting any actor should make LevelViewportClient->bShowWidget be "true"
LevelViewportClient->ShowWidget(true);
LevelViewportClient->EngineShowFlags.SetSelection(true);
LevelViewportClient->EngineShowFlags.SetSelectionOutline(GetDefault<ULevelEditorViewportSettings>()->bUseSelectionOutline);
}
bNeedToUpdatePreviews = true;
}
#Loc: <Workspace>/Engine/Source/Editor/Sequencer/Private/Sequencer.cpp:4647
Scope (from outer to inner):
file
function void FSequencer::FCachedViewState::RestoreViewState
Source code excerpt:
if (GameViewStates[Index].Value == false)
{
LevelVC->ShowWidget(true);
}
}
}
}
GameViewStates.Empty();
}
#Loc: <Workspace>/Engine/Source/Editor/Sequencer/Private/Sequencer.cpp:5862
Scope (from outer to inner):
file
function void FSequencer::SaveCurrentMovieScene
Source code excerpt:
if (bIsInGameView == false)
{
GCurrentLevelEditingViewportClient->ShowWidget(true);
}
Viewport->Draw();
}
OnPreSaveEvent.Broadcast(*this);
#Loc: <Workspace>/Engine/Source/Editor/UnrealEd/Private/EditorModeManager.cpp:126
Scope (from outer to inner):
file
function void FEditorModeTools::LoadConfig
Source code excerpt:
void FEditorModeTools::LoadConfig(void)
{
GConfig->GetBool(TEXT("FEditorModeTools"),TEXT("ShowWidget"),bShowWidget,
GEditorPerProjectIni);
static constexpr bool bGetRawValue = true;
int32 CoordSystemAsInt = (int32)GetCoordSystem(bGetRawValue);
GConfig->GetInt(TEXT("FEditorModeTools"),TEXT("CoordSystem"), CoordSystemAsInt,
GEditorPerProjectIni);
#Loc: <Workspace>/Engine/Source/Editor/UnrealEd/Private/EditorModeManager.cpp:151
Scope (from outer to inner):
file
function void FEditorModeTools::SaveConfig
Source code excerpt:
void FEditorModeTools::SaveConfig(void)
{
GConfig->SetBool(TEXT("FEditorModeTools"), TEXT("ShowWidget"), bShowWidget, GEditorPerProjectIni);
static constexpr bool bGetRawValue = true;
GConfig->SetInt(TEXT("FEditorModeTools"), TEXT("CoordSystem"), (int32)GetCoordSystem(bGetRawValue), GEditorPerProjectIni);
SaveWidgetSettings();
}
#Loc: <Workspace>/Engine/Source/Editor/UnrealEd/Private/EditorViewportClient.cpp:5362
Scope (from outer to inner):
file
function void FEditorViewportClient::ShowWidget
Source code excerpt:
void FEditorViewportClient::ShowWidget(const bool bShow)
{
bShowWidget = bShow;
}
void FEditorViewportClient::MoveViewportCamera(const FVector& InDrag, const FRotator& InRot, bool bDollyCamera)
{
#Loc: <Workspace>/Engine/Source/Editor/UnrealEd/Private/EditorViewportClient.cpp:6387
Scope (from outer to inner):
file
function void FEditorViewportClient::SetGameView
Source code excerpt:
EngineShowFlags.SetModeWidgets(true); // Enable "Mode Widgets" by default when entering game mode
EngineShowFlags.SetSelection(false);
ShowWidget(false); // Hide the widget
}
EngineShowFlags.SetSelectionOutline(bGameViewEnable ? false : GetDefault<ULevelEditorViewportSettings>()->bUseSelectionOutline);
ApplyViewMode(GetViewMode(), IsPerspective(), EngineShowFlags);
#Loc: <Workspace>/Engine/Source/Editor/UnrealEd/Public/EditorViewportClient.h:1306
Scope (from outer to inner):
file
class class FEditorViewportClient : public FCommonViewportClient, public FViewElementDrawer, public FGCObject
Source code excerpt:
/** Show or hide the widget. */
UNREALED_API void ShowWidget(const bool bShow);
UNREALED_API bool GetShowWidget() const { return bShowWidget; }
/**
* Returns whether or not the flight camera is active
*
* @return true if the flight camera is active
#Loc: <Workspace>/Engine/Source/Editor/ViewportInteraction/Private/ViewportWorldInteraction.cpp:370
Scope (from outer to inner):
file
function void UViewportWorldInteraction::Shutdown
Source code excerpt:
if (DefaultOptionalViewportClient != nullptr)
{
DefaultOptionalViewportClient->ShowWidget(true);
DefaultOptionalViewportClient = nullptr;
}
AppTimeEntered = FTimespan::Zero();
for ( UViewportInteractor* Interactor : Interactors )
#Loc: <Workspace>/Engine/Source/Editor/ViewportInteraction/Private/ViewportWorldInteraction.cpp:561
Scope (from outer to inner):
file
function void UViewportWorldInteraction::SetDefaultOptionalViewportClient
Source code excerpt:
{
DefaultOptionalViewportClient = InEditorViewportClient.Get();
DefaultOptionalViewportClient->ShowWidget(false);
}
}
void UViewportWorldInteraction::PairInteractors( UViewportInteractor* FirstInteractor, UViewportInteractor* SecondInteractor )
{
FirstInteractor->SetOtherInteractor( SecondInteractor );
#Loc: <Workspace>/Engine/Source/Editor/ViewportInteraction/Private/ViewportWorldInteraction.cpp:3740
Scope (from outer to inner):
file
function void UViewportWorldInteraction::UseLegacyInteractions
Source code excerpt:
if (DefaultOptionalViewportClient != nullptr)
{
DefaultOptionalViewportClient->ShowWidget(true);
}
for (UViewportInteractor* Interactor : Interactors)
{
Interactor->Shutdown();
Interactor->MarkAsGarbage();
}
#Loc: <Workspace>/Engine/Source/Editor/ViewportInteraction/Private/ViewportWorldInteraction.cpp:3797
Scope (from outer to inner):
file
function void UViewportWorldInteraction::UseVWInteractions
Source code excerpt:
if (DefaultOptionalViewportClient != nullptr)
{
DefaultOptionalViewportClient->ShowWidget(false);
}
// Start with the default transformer
SetTransformer(nullptr);
// Spawn the transform gizmo