Tweak comments and indexes

This commit is contained in:
omar 2018-08-31 09:50:14 +02:00
parent 8a216fe756
commit 38cfcf9fbc
4 changed files with 102 additions and 79 deletions

View File

@ -35,7 +35,7 @@ HOW TO UPDATE?
Changes: 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. 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. - 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. Re-ordered some of the code remaining in imgui.cpp in cleared chunks.
@ -44,7 +44,9 @@ Changes:
If you have any modifications to imgui.cpp, it is suggested that you first update to 1.63, then 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, 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. 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 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. disclose you may also contact me privately.

112
imgui.cpp
View File

@ -19,32 +19,58 @@
/* /*
Index Index of this file:
- 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
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 MISSION STATEMENT
================= =================
@ -472,11 +498,6 @@
- 2014/08/28 (1.09) - changed the behavior of IO.PixelCenterOffset following various rendering fixes - 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 FREQUENTLY ASKED QUESTIONS (FAQ), TIPS
====================================== ======================================
@ -879,6 +900,11 @@ static void* SettingsHandlerWindow_ReadOpen(ImGuiContext*, ImGuiSetti
static void SettingsHandlerWindow_ReadLine(ImGuiContext*, ImGuiSettingsHandler*, void* entry, const char* line); static void SettingsHandlerWindow_ReadLine(ImGuiContext*, ImGuiSettingsHandler*, void* entry, const char* line);
static void SettingsHandlerWindow_WriteAll(ImGuiContext* imgui_ctx, ImGuiSettingsHandler* handler, ImGuiTextBuffer* buf); 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 namespace ImGui
{ {
static bool BeginChildEx(const char* name, ImGuiID id, const ImVec2& size_arg, bool border, ImGuiWindowFlags flags); static bool BeginChildEx(const char* name, ImGuiID id, const ImVec2& size_arg, bool border, ImGuiWindowFlags flags);
@ -899,14 +925,6 @@ static void UpdateMouseWheel();
static void UpdateManualResize(ImGuiWindow* window, const ImVec2& size_auto_fit, int* border_held, int resize_grip_count, ImU32 resize_grip_col[4]); static void UpdateManualResize(ImGuiWindow* window, const ImVec2& size_auto_fit, int* border_held, int resize_grip_count, ImU32 resize_grip_col[4]);
} }
//-----------------------------------------------------------------------------
// 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 // Context and Memory Allocators
//----------------------------------------------------------------------------- //-----------------------------------------------------------------------------
@ -937,7 +955,7 @@ static void (*GImAllocatorFreeFunc)(void* ptr, void* user_data) = FreeWrapper;
static void* GImAllocatorUserData = NULL; static void* GImAllocatorUserData = NULL;
//----------------------------------------------------------------------------- //-----------------------------------------------------------------------------
// User facing structures // User facing main structures
//----------------------------------------------------------------------------- //-----------------------------------------------------------------------------
ImGuiStyle::ImGuiStyle() ImGuiStyle::ImGuiStyle()
@ -1301,7 +1319,7 @@ ImU32 ImHash(const void* data, int data_size, ImU32 seed)
} }
//----------------------------------------------------------------------------- //-----------------------------------------------------------------------------
// ImText* helpers // HELPERS/UTILITIES (ImText* helpers)
//----------------------------------------------------------------------------- //-----------------------------------------------------------------------------
// Convert UTF-8 to 32-bits character, process single character input. // Convert UTF-8 to 32-bits character, process single character input.
@ -2034,10 +2052,11 @@ bool ImGuiListClipper::Step()
} }
//----------------------------------------------------------------------------- //-----------------------------------------------------------------------------
// ImGuiWindow // MAIN CODE
// (This type has very few helper methods but otherwise is mostly a dumb struct) // (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) ImGuiWindow::ImGuiWindow(ImGuiContext* context, const char* name)
: DrawListInst(&context->DrawListSharedData) : DrawListInst(&context->DrawListSharedData)
{ {
@ -2145,11 +2164,6 @@ ImGuiID ImGuiWindow::GetIDFromRectangle(const ImRect& r_abs)
return id; return id;
} }
//-----------------------------------------------------------------------------
// MAIN CODE
// (this category is still too large and badly ordered, needs some tidying up)
//-----------------------------------------------------------------------------
static void SetCurrentWindow(ImGuiWindow* window) static void SetCurrentWindow(ImGuiWindow* window)
{ {
ImGuiContext& g = *GImGui; ImGuiContext& g = *GImGui;
@ -6337,7 +6351,7 @@ void ImGui::Unindent(float indent_w)
} }
//----------------------------------------------------------------------------- //-----------------------------------------------------------------------------
// TOOLTIP // TOOLTIPS
//----------------------------------------------------------------------------- //-----------------------------------------------------------------------------
void ImGui::BeginTooltip() void ImGui::BeginTooltip()
@ -8884,7 +8898,7 @@ static void ImeSetInputScreenPosFn_DefaultImpl(int, int) {}
#endif #endif
//----------------------------------------------------------------------------- //-----------------------------------------------------------------------------
// HELP, METRICS // METRICS/DEBUG WINDOW
//----------------------------------------------------------------------------- //-----------------------------------------------------------------------------
void ImGui::ShowMetricsWindow(bool* p_open) void ImGui::ShowMetricsWindow(bool* p_open)

View File

@ -1,14 +1,21 @@
// dear imgui, v1.64 WIP // dear imgui, v1.64 WIP
// (drawing and font code) // (drawing and font code)
// Index of this file: /*
// - Default styles
// - ImDrawList Index of this file:
// - ImDrawData - Cruft for stb_truetype/stb_rectpack implementation
// - ImFontAtlas - Style functions (default style)
// - Internal Render Helpers - ImDrawList
// - ImFont - ImDrawData
// - Default font data - ShadeVertsXXX helpers functions
- ImFontConfig
- ImFontAtlas
- ImFont
- Internal Render Helpers
- Default font data
*/
#if defined(_MSC_VER) && !defined(_CRT_SECURE_NO_WARNINGS) #if defined(_MSC_VER) && !defined(_CRT_SECURE_NO_WARNINGS)
#define _CRT_SECURE_NO_WARNINGS #define _CRT_SECURE_NO_WARNINGS

View File

@ -1,22 +1,26 @@
// dear imgui, v1.64 WIP // dear imgui, v1.64 WIP
// (widgets code) // (widgets code)
// Index of this file: /*
// - Widgets: Text, etc.
// - Widgets: Button, Image, Checkbox, RadioButton, ProgressBar, Bullet, etc. Index of this file:
// - Widgets: ComboBox - Widgets: Text, etc.
// - Data Type and Data Formatting Helpers - Widgets: Button, Image, Checkbox, RadioButton, ProgressBar, Bullet, etc.
// - Widgets: DragScalar, DragFloat, DragInt, etc. - Widgets: ComboBox
// - Widgets: SliderScalar, SliderFloat, SliderInt, etc. - Data Type and Data Formatting Helpers
// - Widgets: InputScalar, InputFloat, InputInt, etc. - Widgets: DragScalar, DragFloat, DragInt, etc.
// - Widgets: InputText, InputTextMultiline - Widgets: SliderScalar, SliderFloat, SliderInt, etc.
// - Widgets: ColorEdit, ColorPicker, ColorButton, etc. - Widgets: InputScalar, InputFloat, InputInt, etc.
// - Widgets: TreeNode, TreePush, TreePop, etc. - Widgets: InputText, InputTextMultiline
// - Widgets: Selectable - Widgets: ColorEdit, ColorPicker, ColorButton, etc.
// - Widgets: ListBox - Widgets: TreeNode, TreePush, TreePop, etc.
// - Widgets: PlotLines, PlotHistogram - Widgets: Selectable
// - Widgets: Value - Widgets: ListBox
// - Widgets: MenuItem, BeginMenu, EndMenu, etc. - Widgets: PlotLines, PlotHistogram
- Widgets: Value
- Widgets: MenuItem, BeginMenu, EndMenu, etc.
*/
#if defined(_MSC_VER) && !defined(_CRT_SECURE_NO_WARNINGS) #if defined(_MSC_VER) && !defined(_CRT_SECURE_NO_WARNINGS)
#define _CRT_SECURE_NO_WARNINGS #define _CRT_SECURE_NO_WARNINGS
@ -96,10 +100,6 @@ static bool SliderBehaviorT(const ImRect& bb, ImGuiID id, ImGuiDataT
} }
//-------------------------------------------------------------------------
// SHARED UTILITIES
//-------------------------------------------------------------------------
//------------------------------------------------------------------------- //-------------------------------------------------------------------------
// WIDGETS: Text // WIDGETS: Text
// - TextUnformatted() // - TextUnformatted()