| // 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() |
| //------------------------------------------------------------------------- |
| |