|
@@ -11,15 +11,256 @@
|
|
|
#endif
|
|
|
#include "imgui_internal.h"
|
|
|
|
|
|
+#include <ctype.h> // toupper, isprint
|
|
|
+
|
|
|
+// Visual Studio warnings
|
|
|
+#ifdef _MSC_VER
|
|
|
+#pragma warning (disable: 4127) // condition expression is constant
|
|
|
+#pragma warning (disable: 4996) // 'This function or variable may be unsafe': strcpy, strdup, sprintf, vsnprintf, sscanf, fopen
|
|
|
+#endif
|
|
|
+
|
|
|
+// Clang/GCC warnings with -Weverything
|
|
|
+#ifdef __clang__
|
|
|
+#pragma clang diagnostic ignored "-Wformat-nonliteral" // warning : format string is not a string literal // passing non-literal to vsnformat(). yes, user passing incorrect format strings can crash the code.
|
|
|
+#pragma clang diagnostic ignored "-Wsign-conversion" // warning : implicit conversion changes signedness //
|
|
|
+#elif defined(__GNUC__)
|
|
|
+#pragma GCC diagnostic ignored "-Wformat-nonliteral" // warning: format not a string literal, format string not checked
|
|
|
+#if __GNUC__ >= 8
|
|
|
+#pragma GCC diagnostic ignored "-Wclass-memaccess" // warning: 'memset/memcpy' clearing/writing an object of type 'xxxx' with no trivial copy-assignment; use assignment or value-initialization instead
|
|
|
+#endif
|
|
|
+#endif
|
|
|
+
|
|
|
//-------------------------------------------------------------------------
|
|
|
// Forward Declarations
|
|
|
//-------------------------------------------------------------------------
|
|
|
|
|
|
//-------------------------------------------------------------------------
|
|
|
-// Shared Utilities
|
|
|
+// SHARED UTILITIES
|
|
|
+//-------------------------------------------------------------------------
|
|
|
+
|
|
|
+//-------------------------------------------------------------------------
|
|
|
+// WIDGETS: Text
|
|
|
+// - TextUnformatted()
|
|
|
+// - Text()
|
|
|
+// - TextV()
|
|
|
+// - TextColored()
|
|
|
+// - TextColoredV()
|
|
|
+// - TextDisabled()
|
|
|
+// - TextDisabledV()
|
|
|
+// - TextWrapped()
|
|
|
+// - TextWrappedV()
|
|
|
+// - LabelText()
|
|
|
+// - LabelTextV()
|
|
|
+// - BulletText()
|
|
|
+// - BulletTextV()
|
|
|
+//-------------------------------------------------------------------------
|
|
|
+
|
|
|
+
|
|
|
+//-------------------------------------------------------------------------
|
|
|
+// WIDGETS: Main
|
|
|
+// - ButtonBehavior() [Internal]
|
|
|
+// - Button()
|
|
|
+// - SmallButton()
|
|
|
+// - InvisibleButton()
|
|
|
+// - ArrowButton()
|
|
|
+// - CloseButton() [Internal]
|
|
|
+// - CollapseButton() [Internal]
|
|
|
+// - Image()
|
|
|
+// - ImageButton()
|
|
|
+// - Checkbox()
|
|
|
+// - CheckboxFlags()
|
|
|
+// - RadioButton()
|
|
|
+// - ProgressBar()
|
|
|
+// - Bullet()
|
|
|
+//-------------------------------------------------------------------------
|
|
|
+
|
|
|
+
|
|
|
+//-------------------------------------------------------------------------
|
|
|
+// WIDGETS: Combo Box
|
|
|
+// - BeginCombo()
|
|
|
+// - EndCombo()
|
|
|
+// - Combo()
|
|
|
+//-------------------------------------------------------------------------
|
|
|
+
|
|
|
+
|
|
|
+//-------------------------------------------------------------------------
|
|
|
+// WIDGETS: Data Type and Data Formatting Helpers [Internal]
|
|
|
+// - PatchFormatStringFloatToInt()
|
|
|
+// - DataTypeFormatString()
|
|
|
+// - DataTypeApplyOp()
|
|
|
+// - DataTypeApplyOpFromText()
|
|
|
+// - GetMinimumStepAtDecimalPrecision
|
|
|
+// - RoundScalarWithFormat<>()
|
|
|
+//-------------------------------------------------------------------------
|
|
|
+
|
|
|
+
|
|
|
//-------------------------------------------------------------------------
|
|
|
+// WIDGETS: Drags
|
|
|
+// - DragBehaviorT<>() [Internal]
|
|
|
+// - DragBehavior() [Internal]
|
|
|
+// - DragScalar()
|
|
|
+// - DragScalarN()
|
|
|
+// - DragFloat()
|
|
|
+// - DragFloat2()
|
|
|
+// - DragFloat3()
|
|
|
+// - DragFloat4()
|
|
|
+// - DragFloatRange2()
|
|
|
+// - DragInt()
|
|
|
+// - DragInt2()
|
|
|
+// - DragInt3()
|
|
|
+// - DragInt4()
|
|
|
+// - DragIntRange2()
|
|
|
+//-------------------------------------------------------------------------
|
|
|
+
|
|
|
+
|
|
|
+//-------------------------------------------------------------------------
|
|
|
+// WIDGETS: Sliders
|
|
|
+// - SliderBehaviorT<>() [Internal]
|
|
|
+// - SliderBehavior() [Internal]
|
|
|
+// - SliderScalar()
|
|
|
+// - SliderScalarN()
|
|
|
+// - SliderFloat()
|
|
|
+// - SliderFloat2()
|
|
|
+// - SliderFloat3()
|
|
|
+// - SliderFloat4()
|
|
|
+// - SliderAngle()
|
|
|
+// - SliderInt()
|
|
|
+// - SliderInt2()
|
|
|
+// - SliderInt3()
|
|
|
+// - SliderInt4()
|
|
|
+// - VSliderScalar()
|
|
|
+// - VSliderFloat()
|
|
|
+// - VSliderInt()
|
|
|
+//-------------------------------------------------------------------------
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+//-------------------------------------------------------------------------
|
|
|
+// WIDGETS: Inputs (_excepted InputText_)
|
|
|
+// - ImParseFormatFindStart()
|
|
|
+// - ImParseFormatFindEnd()
|
|
|
+// - ImParseFormatTrimDecorations()
|
|
|
+// - ImParseFormatPrecision()
|
|
|
+// - InputScalarAsWidgetReplacement() [Internal]
|
|
|
+// - InputScalar()
|
|
|
+// - InputScalarN()
|
|
|
+// - InputFloat()
|
|
|
+// - InputFloat2()
|
|
|
+// - InputFloat3()
|
|
|
+// - InputFloat4()
|
|
|
+// - InputInt()
|
|
|
+// - InputInt2()
|
|
|
+// - InputInt3()
|
|
|
+// - InputInt4()
|
|
|
+// - InputDouble()
|
|
|
+//-------------------------------------------------------------------------
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+//-------------------------------------------------------------------------
|
|
|
+// WIDGETS: InputText
|
|
|
+// - InputText()
|
|
|
+// - InputTextMultiline()
|
|
|
+// - InputTextEx() [Internal]
|
|
|
+//-------------------------------------------------------------------------
|
|
|
+
|
|
|
+
|
|
|
+//-------------------------------------------------------------------------
|
|
|
+// WIDGETS: Color Editor / Picker
|
|
|
+// - ColorEdit3()
|
|
|
+// - ColorEdit4()
|
|
|
+// - ColorPicker3()
|
|
|
+// - RenderColorRectWithAlphaCheckerboard() [Internal]
|
|
|
+// - ColorPicker4()
|
|
|
+// - ColorButton()
|
|
|
+// - SetColorEditOptions()
|
|
|
+// - ColorTooltip() [Internal]
|
|
|
+// - ColorEditOptionsPopup() [Internal]
|
|
|
+// - ColorPickerOptionsPopup() [Internal]
|
|
|
+//-------------------------------------------------------------------------
|
|
|
+
|
|
|
+
|
|
|
+//-------------------------------------------------------------------------
|
|
|
+// WIDGETS: Trees
|
|
|
+// - TreeNode()
|
|
|
+// - TreeNodeV()
|
|
|
+// - TreeNodeEx()
|
|
|
+// - TreeNodeExV()
|
|
|
+// - TreeNodeBehavior() [Internal]
|
|
|
+// - TreePush()
|
|
|
+// - TreePop()
|
|
|
+// - TreeAdvanceToLabelPos()
|
|
|
+// - GetTreeNodeToLabelSpacing()
|
|
|
+// - SetNextTreeNodeOpen()
|
|
|
+// - CollapsingHeader()
|
|
|
+//-------------------------------------------------------------------------
|
|
|
+
|
|
|
+
|
|
|
+//-------------------------------------------------------------------------
|
|
|
+// WIDGETS: Selectables
|
|
|
+// - Selectable()
|
|
|
+//-------------------------------------------------------------------------
|
|
|
+
|
|
|
+
|
|
|
+//-------------------------------------------------------------------------
|
|
|
+// WIDGETS: List Box
|
|
|
+// - ListBox()
|
|
|
+// - ListBoxHeader()
|
|
|
+// - ListBoxFooter()
|
|
|
+//-------------------------------------------------------------------------
|
|
|
+
|
|
|
+
|
|
|
+//-------------------------------------------------------------------------
|
|
|
+// WIDGETS: Data Plotting
|
|
|
+// - PlotEx() [Internal]
|
|
|
+// - PlotLines()
|
|
|
+// - PlotHistogram()
|
|
|
+//-------------------------------------------------------------------------
|
|
|
+
|
|
|
+
|
|
|
+//-------------------------------------------------------------------------
|
|
|
+// WIDGETS: Value() helpers
|
|
|
+// - Value()
|
|
|
+//-------------------------------------------------------------------------
|
|
|
+
|
|
|
|
|
|
//-------------------------------------------------------------------------
|
|
|
-// Widgets
|
|
|
+// WIDGETS: Menus
|
|
|
+// - BeginMainMenuBar()
|
|
|
+// - EndMainMenuBar()
|
|
|
+// - BeginMenuBar()
|
|
|
+// - EndMenuBar()
|
|
|
+// - BeginMenu()
|
|
|
+// - EndMenu()
|
|
|
+// - MenuItem()
|
|
|
//-------------------------------------------------------------------------
|
|
|
|