You cannot select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and dots ('.'), can be up to 35 characters long. Letters must be lowercase.
266 lines
6.9 KiB
266 lines
6.9 KiB
// 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() |
|
//------------------------------------------------------------------------- |
|
|
|
|