mirror of
https://github.com/Drezil/imgui.git
synced 2024-11-15 09:27:00 +00:00
267 lines
6.9 KiB
C++
267 lines
6.9 KiB
C++
// 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 <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
|
|
//-------------------------------------------------------------------------
|
|
|
|
//-------------------------------------------------------------------------
|
|
// 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()
|
|
//-------------------------------------------------------------------------
|
|
|