6#include <imgui_internal.h>
51 GuiWindow(std::shared_ptr<ConsoleVariable> consoleVariable, std::shared_ptr<Window> window,
52 const std::string& visibilityCvar,
bool isVisible,
const std::string& name, ImVec2 originalSize,
53 uint32_t windowFlags);
62 GuiWindow(
const std::string& consoleVariable,
bool isVisible,
const std::string& name, ImVec2 originalSize);
64 GuiWindow(
const std::string& consoleVariable,
bool isVisible,
const std::string& name, ImVec2 originalSize,
65 uint32_t windowFlags);
73 GuiWindow(
const std::string& consoleVariable,
bool isVisible,
const std::string& name);
82 GuiWindow(
const std::string& consoleVariable,
const std::string& name, ImVec2 originalSize, uint32_t windowFlags);
90 GuiWindow(
const std::string& consoleVariable,
const std::string& name, ImVec2 originalSize);
97 GuiWindow(
const std::string& consoleVariable,
const std::string& name);
129 void OnInit(
const nlohmann::json& initArgs = {})
override;
135 std::string mVisibilityConsoleVariable;
136 ImVector<ImRect> mGroupPanelLabelStack;
137 ImVec2 mOriginalSize;
138 uint32_t mWindowFlags;
139 std::shared_ptr<ConsoleVariable> mConsoleVariable;
140 std::shared_ptr<Window> mWindow;
Abstract base class for all visible GUI elements (windows, menu bars, overlays).
Definition GuiElement.h:34
A floating ImGui window managed by the Ship Gui layer.
Definition GuiWindow.h:39
void BeginGroupPanel(const char *name, const ImVec2 &size)
Begins a visually grouped labelled panel.
void SyncVisibilityConsoleVariable()
Reads the CVar and updates mIsVisible accordingly.
GuiWindow(const std::string &consoleVariable, const std::string &name)
Minimal constructor deriving visibility from CVar.
void Draw() override
Calls ImGui::Begin(), invokes DrawElement(), and calls ImGui::End().
GuiWindow(const std::string &consoleVariable, bool isVisible, const std::string &name)
Minimal constructor using default size and flags.
GuiWindow(const std::string &consoleVariable, const std::string &name, ImVec2 originalSize)
Constructor deriving visibility from CVar, with default flags.
GuiWindow(std::shared_ptr< ConsoleVariable > consoleVariable, std::shared_ptr< Window > window, const std::string &visibilityCvar, bool isVisible, const std::string &name, ImVec2 originalSize, uint32_t windowFlags)
Full constructor with constructor-injected dependencies, explicit size and window flags.
void EndGroupPanel(float minHeight)
Ends the previously opened group panel, adding a bottom margin.
GuiWindow(const std::string &consoleVariable, const std::string &name, ImVec2 originalSize, uint32_t windowFlags)
Constructor deriving initial visibility from the CVar value.
GuiWindow(const std::string &consoleVariable, bool isVisible, const std::string &name, ImVec2 originalSize, uint32_t windowFlags)
void SetVisibility(bool visible) override
Overrides SetVisibility to also write the new state to the backing CVar.
std::shared_ptr< Window > GetWindow() const
Returns the Window this GuiWindow belongs to.
void OnInit(const nlohmann::json &initArgs={}) override
Component initialization hook.
GuiWindow(const std::string &consoleVariable, bool isVisible, const std::string &name, ImVec2 originalSize)
Constructor with explicit size, using default ImGui window flags.
Core namespace for the libultraship engine framework.
Definition gfx_direct3d_common.h:14