Skip to content

Commit

Permalink
Log/Capture: renaming ImGuiLogType to ImGuiLogFlags
Browse files Browse the repository at this point in the history
  • Loading branch information
ocornut committed Oct 30, 2024
1 parent 9a0dff1 commit a4fcc93
Show file tree
Hide file tree
Showing 2 changed files with 29 additions and 24 deletions.
33 changes: 17 additions & 16 deletions imgui.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -4007,7 +4007,7 @@ ImGuiContext::ImGuiContext(ImFontAtlas* shared_font_atlas)
memset(LocalizationTable, 0, sizeof(LocalizationTable));

LogEnabled = false;
LogType = ImGuiLogType_None;
LogFlags = ImGuiLogFlags_None;
LogNextPrefix = LogNextSuffix = NULL;
LogFile = NULL;
LogLinePosY = FLT_MAX;
Expand Down Expand Up @@ -14324,15 +14324,16 @@ void ImGui::LogRenderedText(const ImVec2* ref_pos, const char* text, const char*
}

// Start logging/capturing text output
void ImGui::LogBegin(ImGuiLogType type, int auto_open_depth)
void ImGui::LogBegin(ImGuiLogFlags flags, int auto_open_depth)
{
ImGuiContext& g = *GImGui;
ImGuiWindow* window = g.CurrentWindow;
IM_ASSERT(g.LogEnabled == false);
IM_ASSERT(g.LogFile == NULL);
IM_ASSERT(g.LogBuffer.empty());
IM_ASSERT(g.LogFile == NULL && g.LogBuffer.empty());
IM_ASSERT(ImIsPowerOfTwo(flags & ImGuiLogFlags_OutputMask_)); // Check that only 1 type flag is used

g.LogEnabled = g.ItemUnclipByLog = true;
g.LogType = type;
g.LogFlags = flags;
g.LogNextPrefix = g.LogNextSuffix = NULL;
g.LogDepthRef = window->DC.TreeDepth;
g.LogDepthToExpand = ((auto_open_depth >= 0) ? auto_open_depth : g.LogDepthToExpandDefault);
Expand All @@ -14355,7 +14356,7 @@ void ImGui::LogToTTY(int auto_open_depth)
return;
IM_UNUSED(auto_open_depth);
#ifndef IMGUI_DISABLE_TTY_FUNCTIONS
LogBegin(ImGuiLogType_TTY, auto_open_depth);
LogBegin(ImGuiLogFlags_OutputTTY, auto_open_depth);
g.LogFile = stdout;
#endif
}
Expand All @@ -14381,7 +14382,7 @@ void ImGui::LogToFile(int auto_open_depth, const char* filename)
return;
}

LogBegin(ImGuiLogType_File, auto_open_depth);
LogBegin(ImGuiLogFlags_OutputFile, auto_open_depth);
g.LogFile = f;
}

Expand All @@ -14391,15 +14392,15 @@ void ImGui::LogToClipboard(int auto_open_depth)
ImGuiContext& g = *GImGui;
if (g.LogEnabled)
return;
LogBegin(ImGuiLogType_Clipboard, auto_open_depth);
LogBegin(ImGuiLogFlags_OutputClipboard, auto_open_depth);
}

void ImGui::LogToBuffer(int auto_open_depth)
{
ImGuiContext& g = *GImGui;
if (g.LogEnabled)
return;
LogBegin(ImGuiLogType_Buffer, auto_open_depth);
LogBegin(ImGuiLogFlags_OutputBuffer, auto_open_depth);
}

void ImGui::LogFinish()
Expand All @@ -14409,29 +14410,29 @@ void ImGui::LogFinish()
return;

LogText(IM_NEWLINE);
switch (g.LogType)
switch (g.LogFlags & ImGuiLogFlags_OutputMask_)
{
case ImGuiLogType_TTY:
case ImGuiLogFlags_OutputTTY:
#ifndef IMGUI_DISABLE_TTY_FUNCTIONS
fflush(g.LogFile);
#endif
break;
case ImGuiLogType_File:
case ImGuiLogFlags_OutputFile:
ImFileClose(g.LogFile);
break;
case ImGuiLogType_Buffer:
case ImGuiLogFlags_OutputBuffer:
break;
case ImGuiLogType_Clipboard:
case ImGuiLogFlags_OutputClipboard:
if (!g.LogBuffer.empty())
SetClipboardText(g.LogBuffer.begin());
break;
case ImGuiLogType_None:
default:
IM_ASSERT(0);
break;
}

g.LogEnabled = g.ItemUnclipByLog = false;
g.LogType = ImGuiLogType_None;
g.LogFlags = ImGuiLogFlags_None;
g.LogFile = NULL;
g.LogBuffer.clear();
}
Expand Down
20 changes: 12 additions & 8 deletions imgui_internal.h
Original file line number Diff line number Diff line change
Expand Up @@ -177,6 +177,7 @@ typedef int ImGuiDebugLogFlags; // -> enum ImGuiDebugLogFlags_ // F
typedef int ImGuiFocusRequestFlags; // -> enum ImGuiFocusRequestFlags_ // Flags: for FocusWindow()
typedef int ImGuiItemStatusFlags; // -> enum ImGuiItemStatusFlags_ // Flags: for g.LastItemData.StatusFlags
typedef int ImGuiOldColumnFlags; // -> enum ImGuiOldColumnFlags_ // Flags: for BeginColumns()
typedef int ImGuiLogFlags; // -> enum ImGuiLogFlags_ // Flags: for LogBegin() text capturing function
typedef int ImGuiNavRenderCursorFlags; // -> enum ImGuiNavRenderCursorFlags_//Flags: for RenderNavCursor()
typedef int ImGuiNavMoveFlags; // -> enum ImGuiNavMoveFlags_ // Flags: for navigation requests
typedef int ImGuiNextItemDataFlags; // -> enum ImGuiNextItemDataFlags_ // Flags: for SetNextItemXXX() functions
Expand Down Expand Up @@ -989,13 +990,16 @@ enum ImGuiLayoutType_
ImGuiLayoutType_Vertical = 1
};

enum ImGuiLogType
// Flags for LogBegin() text capturing function
enum ImGuiLogFlags_
{
ImGuiLogType_None = 0,
ImGuiLogType_TTY,
ImGuiLogType_File,
ImGuiLogType_Buffer,
ImGuiLogType_Clipboard,
ImGuiLogFlags_None = 0,

ImGuiLogFlags_OutputTTY = 1 << 0,
ImGuiLogFlags_OutputFile = 1 << 1,
ImGuiLogFlags_OutputBuffer = 1 << 2,
ImGuiLogFlags_OutputClipboard = 1 << 3,
ImGuiLogFlags_OutputMask_ = ImGuiLogFlags_OutputTTY | ImGuiLogFlags_OutputFile | ImGuiLogFlags_OutputBuffer | ImGuiLogFlags_OutputClipboard,
};

// X/Y enums are fixed to 0/1 so they may be used to index ImVec2
Expand Down Expand Up @@ -2316,7 +2320,7 @@ struct ImGuiContext

// Capture/Logging
bool LogEnabled; // Currently capturing
ImGuiLogType LogType; // Capture target
ImGuiLogFlags LogFlags; // Capture flags/type
ImFileHandle LogFile; // If != NULL log to stdout/ file
ImGuiTextBuffer LogBuffer; // Accumulation buffer when log to clipboard. This is pointer so our GImGui static constructor doesn't call heap allocators.
const char* LogNextPrefix;
Expand Down Expand Up @@ -3067,7 +3071,7 @@ namespace ImGui
IMGUI_API void EndDisabledOverrideReenable();

// Logging/Capture
IMGUI_API void LogBegin(ImGuiLogType type, int auto_open_depth); // -> BeginCapture() when we design v2 api, for now stay under the radar by using the old name.
IMGUI_API void LogBegin(ImGuiLogFlags flags, int auto_open_depth); // -> BeginCapture() when we design v2 api, for now stay under the radar by using the old name.
IMGUI_API void LogToBuffer(int auto_open_depth = -1); // Start logging/capturing to internal buffer
IMGUI_API void LogRenderedText(const ImVec2* ref_pos, const char* text, const char* text_end = NULL);
IMGUI_API void LogSetNextTextDecoration(const char* prefix, const char* suffix);
Expand Down

0 comments on commit a4fcc93

Please sign in to comment.