Skip to content

Commit d99ea5d

Browse files
authored
Add cl_hide_menu_bar console flag (#120)
* add cl_hide_menu_bar console flag Signed-off-by: Mateusz Żak <[email protected]>
1 parent e881667 commit d99ea5d

File tree

2 files changed

+21
-4
lines changed

2 files changed

+21
-4
lines changed

Gems/ImGuiProvider/Code/Source/Clients/ImGuiProviderSystemComponent.cpp

Lines changed: 17 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -2,6 +2,7 @@
22
#include "ImGuiProviderSystemComponent.h"
33
#include <Atom/Feature/ImGui/SystemBus.h>
44
#include <AzCore/Component/EntityId.h>
5+
#include <AzCore/Console/IConsole.h>
56
#include <AzCore/Debug/Trace.h>
67
#include <AzCore/base.h>
78
#include <AzCore/std/algorithm.h>
@@ -12,6 +13,7 @@
1213
#include <AzCore/std/utility/pair.h>
1314
#include <AzFramework/Viewport/ViewportBus.h>
1415
#include <ImGui/ImGuiPass.h>
16+
1517
#include <ImGuiBus.h>
1618
#include <ImGuiProvider/ImGuiProviderBus.h>
1719
#include <ImGuiProvider/ImGuiProviderTypeIds.h>
@@ -23,6 +25,8 @@
2325
namespace ImGuiProvider
2426
{
2527

28+
AZ_CVAR(bool, cl_hide_menu_bar, false, nullptr, AZ::ConsoleFunctorFlags::Null, "Hide Menu Bar if the flag is enabled");
29+
2630
AZ_COMPONENT_IMPL(ImGuiProviderSystemComponent, "ImGuiProviderSystemComponent", ImGuiProviderSystemComponentTypeId);
2731

2832
void ImGuiProviderSystemComponent::Reflect(AZ::ReflectContext* context)
@@ -77,14 +81,23 @@ namespace ImGuiProvider
7781
AZ::ComponentApplicationBus::Broadcast(&AZ::ComponentApplicationBus::Events::QueryApplicationType, appType);
7882
m_appInEditor = appType.IsEditor();
7983

80-
ImGuiProviderRequestBus::Handler::BusConnect();
81-
AZ::TickBus::Handler::BusConnect();
84+
if (!cl_hide_menu_bar)
85+
{
86+
ImGuiProviderRequestBus::Handler::BusConnect();
87+
AZ::TickBus::Handler::BusConnect();
88+
}
8289
}
8390

8491
void ImGuiProviderSystemComponent::Deactivate()
8592
{
86-
AZ::TickBus::Handler::BusDisconnect();
87-
ImGuiProviderRequestBus::Handler::BusDisconnect();
93+
if (AZ::TickBus::Handler::BusIsConnected())
94+
{
95+
AZ::TickBus::Handler::BusDisconnect();
96+
}
97+
if (ImGuiProviderRequestBus::Handler::BusIsConnected())
98+
{
99+
ImGuiProviderRequestBus::Handler::BusDisconnect();
100+
}
88101
AZStd::vector<ImGuiFeaturePath> features;
89102
for (auto& feature : m_registeredFeatures)
90103
{

readme.md

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -382,6 +382,10 @@ This gem adds support for displaying user defined ImGui GUI. Users can define th
382382

383383
Below example on how to register new feature during component activation:
384384

385+
Visibility of the GUI menu bar can be overridden at the app start using `-cl_hide_menu_bar=1`.
386+
Setting the flag effectively disables the GUI.
387+
388+
385389
```cpp
386390
void ExampleComponent::Activate()
387391
{

0 commit comments

Comments
 (0)