Tweak comments and indexes
diff --git a/docs/CHANGELOG.txt b/docs/CHANGELOG.txt
index 4f8be90..4f55e90 100644
--- a/docs/CHANGELOG.txt
+++ b/docs/CHANGELOG.txt
@@ -35,7 +35,7 @@
Changes:
-- Moved Readme, Changelog and Todo files to the docs/ folder.
+- Moved README, CHANGELOG and TODO files to the docs/ folder.
If you are updating dear imgui by copying files, take the chance to delete the old files.
- Added imgui_widgets.cpp file, extracted and moved widgets code out of imgui.cpp into imgui_widgets.cpp.
Re-ordered some of the code remaining in imgui.cpp in cleared chunks.
@@ -44,7 +44,9 @@
If you have any modifications to imgui.cpp, it is suggested that you first update to 1.63, then
isolate your patches. You can peak at imgui_widgets.cpp from 1.64 to get a sense of what is included in it,
then separate your changes into several patches that can more easily be applied to 1.64 on a per-file basis.
-- As a reminder, if you have any change to imgui.cpp it is a good habit to discuss them on the github
+ What I found worked nicely for me, was to open the diff of the old patches in an interactive merge/diff tool,
+ search for the corresponding function in the new code and apply the chunks manually.
+- As a reminder, if you have any change to imgui.cpp it is a good habit to discuss them on the github,
so a solution applicable on the Master branch can be found. If your company has changes that you cannot
disclose you may also contact me privately.
diff --git a/imgui.cpp b/imgui.cpp
index 4597f94..d4ffa10 100644
--- a/imgui.cpp
+++ b/imgui.cpp
@@ -19,32 +19,58 @@
/*
- Index
- - MISSION STATEMENT
- - END-USER GUIDE
- - PROGRAMMER GUIDE (read me!)
- - Read first
- - How to update to a newer version of Dear ImGui
- - Getting started with integrating Dear ImGui in your code/engine
- - Using gamepad/keyboard navigation controls [BETA]
- - API BREAKING CHANGES (read me when you update!)
- - ISSUES & TODO LIST
- - FREQUENTLY ASKED QUESTIONS (FAQ), TIPS
- - How can I tell whether to dispatch mouse/keyboard to imgui or to my application?
- - How can I display an image? What is ImTextureID, how does it works?
- - How can I have multiple widgets with the same label or without a label? A primer on labels and the ID Stack.
- - How can I use my own math types instead of ImVec2/ImVec4?
- - How can I load a different font than the default?
- - How can I easily use icons in my application?
- - How can I load multiple fonts?
- - How can I display and input non-latin characters such as Chinese, Japanese, Korean, Cyrillic?
- - How can I use the drawing facilities without an ImGui window? (using ImDrawList API)
- - I integrated Dear ImGui in my engine and the text or lines are blurry..
- - I integrated Dear ImGui in my engine and some elements are clipping or disappearing when I move windows around..
- - How can I help?
- - ISSUES & TODO-LIST
- - CODE
+Index of this file:
+DOCUMENTATION
+- MISSION STATEMENT
+- END-USER GUIDE
+- PROGRAMMER GUIDE (read me!)
+ - Read first
+ - How to update to a newer version of Dear ImGui
+ - Getting started with integrating Dear ImGui in your code/engine
+ - Using gamepad/keyboard navigation controls [BETA]
+- API BREAKING CHANGES (read me when you update!)
+- FREQUENTLY ASKED QUESTIONS (FAQ), TIPS
+ - How can I tell whether to dispatch mouse/keyboard to imgui or to my application?
+ - How can I display an image? What is ImTextureID, how does it works?
+ - How can I have multiple widgets with the same label or without a label? A primer on labels and the ID Stack.
+ - How can I use my own math types instead of ImVec2/ImVec4?
+ - How can I load a different font than the default?
+ - How can I easily use icons in my application?
+ - How can I load multiple fonts?
+ - How can I display and input non-latin characters such as Chinese, Japanese, Korean, Cyrillic?
+ - How can I use the drawing facilities without an ImGui window? (using ImDrawList API)
+ - I integrated Dear ImGui in my engine and the text or lines are blurry..
+ - I integrated Dear ImGui in my engine and some elements are clipping or disappearing when I move windows around..
+ - How can I help?
+
+CODE
+- Forward Declarations
+- Context and Memory Allocators
+- User facing structures (ImGuiStyle, ImGuiIO)
+- Helper/Utilities (ImXXX functions, Color functions)
+- ImGuiStorage
+- ImGuiTextFilter
+- ImGuiTextBuffer
+- ImGuiListClipper
+- Main Code (most of the code! lots of stuff, needs tidying up)
+- Tooltips
+- Popups
+- Navigation
+- Columns
+- Drag and Drop
+- Logging
+- Settings
+- Platform Dependent Helpers
+- Metrics/Debug window
+
+*/
+
+//-----------------------------------------------------------------------------
+// Documentation
+//-----------------------------------------------------------------------------
+
+/*
MISSION STATEMENT
=================
@@ -472,11 +498,6 @@
- 2014/08/28 (1.09) - changed the behavior of IO.PixelCenterOffset following various rendering fixes
- ISSUES & TODO-LIST
- ==================
- See TODO.txt
-
-
FREQUENTLY ASKED QUESTIONS (FAQ), TIPS
======================================
@@ -879,6 +900,11 @@
static void SettingsHandlerWindow_ReadLine(ImGuiContext*, ImGuiSettingsHandler*, void* entry, const char* line);
static void SettingsHandlerWindow_WriteAll(ImGuiContext* imgui_ctx, ImGuiSettingsHandler* handler, ImGuiTextBuffer* buf);
+// Platform Dependents default implementation for IO functions
+static const char* GetClipboardTextFn_DefaultImpl(void* user_data);
+static void SetClipboardTextFn_DefaultImpl(void* user_data, const char* text);
+static void ImeSetInputScreenPosFn_DefaultImpl(int x, int y);
+
namespace ImGui
{
static bool BeginChildEx(const char* name, ImGuiID id, const ImVec2& size_arg, bool border, ImGuiWindowFlags flags);
@@ -900,14 +926,6 @@
}
//-----------------------------------------------------------------------------
-// Platform dependent default implementations
-//-----------------------------------------------------------------------------
-
-static const char* GetClipboardTextFn_DefaultImpl(void* user_data);
-static void SetClipboardTextFn_DefaultImpl(void* user_data, const char* text);
-static void ImeSetInputScreenPosFn_DefaultImpl(int x, int y);
-
-//-----------------------------------------------------------------------------
// Context and Memory Allocators
//-----------------------------------------------------------------------------
@@ -937,7 +955,7 @@
static void* GImAllocatorUserData = NULL;
//-----------------------------------------------------------------------------
-// User facing structures
+// User facing main structures
//-----------------------------------------------------------------------------
ImGuiStyle::ImGuiStyle()
@@ -1301,7 +1319,7 @@
}
//-----------------------------------------------------------------------------
-// ImText* helpers
+// HELPERS/UTILITIES (ImText* helpers)
//-----------------------------------------------------------------------------
// Convert UTF-8 to 32-bits character, process single character input.
@@ -2034,10 +2052,11 @@
}
//-----------------------------------------------------------------------------
-// ImGuiWindow
-// (This type has very few helper methods but otherwise is mostly a dumb struct)
+// MAIN CODE
+// (this category is still too large and badly ordered, needs some tidying up)
//-----------------------------------------------------------------------------
+// ImGuiWindow is mostly a dumb struct. It merely has a constructor and a few helper methods
ImGuiWindow::ImGuiWindow(ImGuiContext* context, const char* name)
: DrawListInst(&context->DrawListSharedData)
{
@@ -2145,11 +2164,6 @@
return id;
}
-//-----------------------------------------------------------------------------
-// MAIN CODE
-// (this category is still too large and badly ordered, needs some tidying up)
-//-----------------------------------------------------------------------------
-
static void SetCurrentWindow(ImGuiWindow* window)
{
ImGuiContext& g = *GImGui;
@@ -6337,7 +6351,7 @@
}
//-----------------------------------------------------------------------------
-// TOOLTIP
+// TOOLTIPS
//-----------------------------------------------------------------------------
void ImGui::BeginTooltip()
@@ -8884,7 +8898,7 @@
#endif
//-----------------------------------------------------------------------------
-// HELP, METRICS
+// METRICS/DEBUG WINDOW
//-----------------------------------------------------------------------------
void ImGui::ShowMetricsWindow(bool* p_open)
diff --git a/imgui_draw.cpp b/imgui_draw.cpp
index 7aa37ff..dc3617a 100644
--- a/imgui_draw.cpp
+++ b/imgui_draw.cpp
@@ -1,14 +1,21 @@
// dear imgui, v1.64 WIP
// (drawing and font code)
-// Index of this file:
-// - Default styles
-// - ImDrawList
-// - ImDrawData
-// - ImFontAtlas
-// - Internal Render Helpers
-// - ImFont
-// - Default font data
+/*
+
+Index of this file:
+- Cruft for stb_truetype/stb_rectpack implementation
+- Style functions (default style)
+- ImDrawList
+- ImDrawData
+- ShadeVertsXXX helpers functions
+- ImFontConfig
+- ImFontAtlas
+- ImFont
+- Internal Render Helpers
+- Default font data
+
+*/
#if defined(_MSC_VER) && !defined(_CRT_SECURE_NO_WARNINGS)
#define _CRT_SECURE_NO_WARNINGS
diff --git a/imgui_widgets.cpp b/imgui_widgets.cpp
index d848c6c..67a8a59 100644
--- a/imgui_widgets.cpp
+++ b/imgui_widgets.cpp
@@ -1,22 +1,26 @@
// dear imgui, v1.64 WIP
// (widgets code)
-// Index of this file:
-// - Widgets: Text, etc.
-// - Widgets: Button, Image, Checkbox, RadioButton, ProgressBar, Bullet, etc.
-// - Widgets: ComboBox
-// - Data Type and Data Formatting Helpers
-// - Widgets: DragScalar, DragFloat, DragInt, etc.
-// - Widgets: SliderScalar, SliderFloat, SliderInt, etc.
-// - Widgets: InputScalar, InputFloat, InputInt, etc.
-// - Widgets: InputText, InputTextMultiline
-// - Widgets: ColorEdit, ColorPicker, ColorButton, etc.
-// - Widgets: TreeNode, TreePush, TreePop, etc.
-// - Widgets: Selectable
-// - Widgets: ListBox
-// - Widgets: PlotLines, PlotHistogram
-// - Widgets: Value
-// - Widgets: MenuItem, BeginMenu, EndMenu, etc.
+/*
+
+Index of this file:
+- Widgets: Text, etc.
+- Widgets: Button, Image, Checkbox, RadioButton, ProgressBar, Bullet, etc.
+- Widgets: ComboBox
+- Data Type and Data Formatting Helpers
+- Widgets: DragScalar, DragFloat, DragInt, etc.
+- Widgets: SliderScalar, SliderFloat, SliderInt, etc.
+- Widgets: InputScalar, InputFloat, InputInt, etc.
+- Widgets: InputText, InputTextMultiline
+- Widgets: ColorEdit, ColorPicker, ColorButton, etc.
+- Widgets: TreeNode, TreePush, TreePop, etc.
+- Widgets: Selectable
+- Widgets: ListBox
+- Widgets: PlotLines, PlotHistogram
+- Widgets: Value
+- Widgets: MenuItem, BeginMenu, EndMenu, etc.
+
+*/
#if defined(_MSC_VER) && !defined(_CRT_SECURE_NO_WARNINGS)
#define _CRT_SECURE_NO_WARNINGS
@@ -97,10 +101,6 @@
}
//-------------------------------------------------------------------------
-// SHARED UTILITIES
-//-------------------------------------------------------------------------
-
-//-------------------------------------------------------------------------
// WIDGETS: Text
// - TextUnformatted()
// - Text()