// dear imgui, v1.64 WIP // (widgets code) #if defined(_MSC_VER) && !defined(_CRT_SECURE_NO_WARNINGS) #define _CRT_SECURE_NO_WARNINGS #endif #include "imgui.h" #ifndef IMGUI_DEFINE_MATH_OPERATORS #define IMGUI_DEFINE_MATH_OPERATORS #endif #include "imgui_internal.h" #include // 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 //------------------------------------------------------------------------- //------------------------------------------------------------------------- // 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: Menus // - BeginMainMenuBar() // - EndMainMenuBar() // - BeginMenuBar() // - EndMenuBar() // - BeginMenu() // - EndMenu() // - MenuItem() //-------------------------------------------------------------------------