Elaztek Developer Hub
Blamite Game Engine - blam!  00346.12.11.21.0529.blamite
The core library for the Blamite Game Engine.
imgui_internal.h
Go to the documentation of this file.
1 // dear imgui, v1.74 WIP
2 // (internal structures/api)
3 
4 // You may use this file to debug, understand or extend ImGui features but we don't provide any guarantee of forward compatibility!
5 // Set:
6 // #define IMGUI_DEFINE_MATH_OPERATORS
7 // To implement maths operators for ImVec2 (disabled by default to not collide with using IM_VEC2_CLASS_EXTRA along with your own math types+operators)
8 
9 /*
10 
11 Index of this file:
12 // Header mess
13 // Forward declarations
14 // STB libraries includes
15 // Context pointer
16 // Generic helpers
17 // Misc data structures
18 // Main imgui context
19 // Tab bar, tab item
20 // Internal API
21 
22 */
23 
24 #pragma once
25 
26 //-----------------------------------------------------------------------------
27 // Header mess
28 //-----------------------------------------------------------------------------
29 
30 #ifndef IMGUI_VERSION
31 #error Must include imgui.h before imgui_internal.h
32 #endif
33 
34 #include <stdio.h> // FILE*
35 #include <stdlib.h> // NULL, malloc, free, qsort, atoi, atof
36 #include <math.h> // sqrtf, fabsf, fmodf, powf, floorf, ceilf, cosf, sinf
37 #include <limits.h> // INT_MIN, INT_MAX
38 
39 // Visual Studio warnings
40 #ifdef _MSC_VER
41 #pragma warning (push)
42 #pragma warning (disable: 4251) // class 'xxx' needs to have dll-interface to be used by clients of struct 'xxx' // when IMGUI_API is set to__declspec(dllexport)
43 #endif
44 
45 // Clang/GCC warnings with -Weverything
46 #if defined(__clang__)
47 #pragma clang diagnostic push
48 #pragma clang diagnostic ignored "-Wunused-function" // for stb_textedit.h
49 #pragma clang diagnostic ignored "-Wmissing-prototypes" // for stb_textedit.h
50 #pragma clang diagnostic ignored "-Wold-style-cast"
51 #if __has_warning("-Wzero-as-null-pointer-constant")
52 #pragma clang diagnostic ignored "-Wzero-as-null-pointer-constant"
53 #endif
54 #if __has_warning("-Wdouble-promotion")
55 #pragma clang diagnostic ignored "-Wdouble-promotion"
56 #endif
57 #elif defined(__GNUC__)
58 #pragma GCC diagnostic push
59 #pragma GCC diagnostic ignored "-Wpragmas" // warning: unknown option after '#pragma GCC diagnostic' kind
60 #pragma GCC diagnostic ignored "-Wclass-memaccess" // [__GNUC__ >= 8] warning: 'memset/memcpy' clearing/writing an object of type 'xxxx' with no trivial copy-assignment; use assignment or value-initialization instead
61 #endif
62 
63 //-----------------------------------------------------------------------------
64 // Forward declarations
65 //-----------------------------------------------------------------------------
66 
67 struct ImRect; // An axis-aligned rectangle (2 points)
68 struct ImDrawDataBuilder; // Helper to build a ImDrawData instance
69 struct ImDrawListSharedData; // Data shared between all ImDrawList instances
70 struct ImGuiColorMod; // Stacked color modifier, backup of modified data so we can restore it
71 struct ImGuiColumnData; // Storage data for a single column
72 struct ImGuiColumns; // Storage data for a columns set
73 struct ImGuiContext; // Main Dear ImGui context
74 struct ImGuiDataTypeInfo; // Type information associated to a ImGuiDataType enum
75 struct ImGuiGroupData; // Stacked storage data for BeginGroup()/EndGroup()
76 struct ImGuiInputTextState; // Internal state of the currently focused/edited text input box
77 struct ImGuiItemHoveredDataBackup; // Backup and restore IsItemHovered() internal data
78 struct ImGuiMenuColumns; // Simple column measurement, currently used for MenuItem() only
79 struct ImGuiNavMoveResult; // Result of a directional navigation move query result
80 struct ImGuiNextWindowData; // Storage for SetNextWindow** functions
81 struct ImGuiNextItemData; // Storage for SetNextItem** functions
82 struct ImGuiPopupData; // Storage for current popup stack
83 struct ImGuiSettingsHandler; // Storage for one type registered in the .ini file
84 struct ImGuiStyleMod; // Stacked style modifier, backup of modified data so we can restore it
85 struct ImGuiTabBar; // Storage for a tab bar
86 struct ImGuiTabItem; // Storage for a tab item (within a tab bar)
87 struct ImGuiWindow; // Storage for one window
88 struct ImGuiWindowTempData; // Temporary storage for one window (that's the data which in theory we could ditch at the end of the frame)
89 struct ImGuiWindowSettings; // Storage for window settings stored in .ini file (we keep one of those even if the actual window wasn't instanced during this session)
90 
91 // Use your programming IDE "Go to definition" facility on the names of the center columns to find the actual flags/enum lists.
92 typedef int ImGuiLayoutType; // -> enum ImGuiLayoutType_ // Enum: Horizontal or vertical
93 typedef int ImGuiButtonFlags; // -> enum ImGuiButtonFlags_ // Flags: for ButtonEx(), ButtonBehavior()
94 typedef int ImGuiColumnsFlags; // -> enum ImGuiColumnsFlags_ // Flags: BeginColumns()
95 typedef int ImGuiDragFlags; // -> enum ImGuiDragFlags_ // Flags: for DragBehavior()
96 typedef int ImGuiItemFlags; // -> enum ImGuiItemFlags_ // Flags: for PushItemFlag()
97 typedef int ImGuiItemStatusFlags; // -> enum ImGuiItemStatusFlags_ // Flags: for DC.LastItemStatusFlags
98 typedef int ImGuiNavHighlightFlags; // -> enum ImGuiNavHighlightFlags_ // Flags: for RenderNavHighlight()
99 typedef int ImGuiNavDirSourceFlags; // -> enum ImGuiNavDirSourceFlags_ // Flags: for GetNavInputAmount2d()
100 typedef int ImGuiNavMoveFlags; // -> enum ImGuiNavMoveFlags_ // Flags: for navigation requests
101 typedef int ImGuiNextItemDataFlags; // -> enum ImGuiNextItemDataFlags_ // Flags: for SetNextItemXXX() functions
102 typedef int ImGuiNextWindowDataFlags; // -> enum ImGuiNextWindowDataFlags_// Flags: for SetNextWindowXXX() functions
103 typedef int ImGuiSeparatorFlags; // -> enum ImGuiSeparatorFlags_ // Flags: for SeparatorEx()
104 typedef int ImGuiSliderFlags; // -> enum ImGuiSliderFlags_ // Flags: for SliderBehavior()
105 typedef int ImGuiTextFlags; // -> enum ImGuiTextFlags_ // Flags: for TextEx()
106 
107 //-------------------------------------------------------------------------
108 // STB libraries includes
109 //-------------------------------------------------------------------------
110 
111 namespace ImStb
112 {
113 
114 #undef STB_TEXTEDIT_STRING
115 #undef STB_TEXTEDIT_CHARTYPE
116 #define STB_TEXTEDIT_STRING ImGuiInputTextState
117 #define STB_TEXTEDIT_CHARTYPE ImWchar
118 #define STB_TEXTEDIT_GETWIDTH_NEWLINE -1.0f
119 #define STB_TEXTEDIT_UNDOSTATECOUNT 99
120 #define STB_TEXTEDIT_UNDOCHARCOUNT 999
121 #include "imstb_textedit.h"
122 
123 } // namespace ImStb
124 
125 //-----------------------------------------------------------------------------
126 // Context pointer
127 //-----------------------------------------------------------------------------
128 
129 #ifndef GImGui
130 extern IMGUI_API ImGuiContext* GImGui; // Current implicit context pointer
131 #endif
132 
133 //-----------------------------------------------------------------------------
134 // Generic helpers
135 //-----------------------------------------------------------------------------
136 
137 #define IM_PI 3.14159265358979323846f
138 #ifdef _WIN32
139 #define IM_NEWLINE "\r\n" // Play it nice with Windows users (2018/05 news: Microsoft announced that Notepad will finally display Unix-style carriage returns!)
140 #else
141 #define IM_NEWLINE "\n"
142 #endif
143 #define IM_TABSIZE (4)
144 #define IM_STATIC_ASSERT(_COND) typedef char static_assertion_##__line__[(_COND)?1:-1]
145 #define IM_F32_TO_INT8_UNBOUND(_VAL) ((int)((_VAL) * 255.0f + ((_VAL)>=0 ? 0.5f : -0.5f))) // Unsaturated, for display purpose
146 #define IM_F32_TO_INT8_SAT(_VAL) ((int)(ImSaturate(_VAL) * 255.0f + 0.5f)) // Saturated, always output 0..255
147 
148 // Debug Logging
149 #ifndef IMGUI_DEBUG_LOG
150 #define IMGUI_DEBUG_LOG(_FMT,...) printf("[%05d] " _FMT, GImGui->FrameCount, __VA_ARGS__)
151 #endif
152 
153 // Enforce cdecl calling convention for functions called by the standard library, in case compilation settings changed the default to e.g. __vectorcall
154 #ifdef _MSC_VER
155 #define IMGUI_CDECL __cdecl
156 #else
157 #define IMGUI_CDECL
158 #endif
159 
160 // Helpers: UTF-8 <> wchar
161 IMGUI_API int ImTextStrToUtf8(char* buf, int buf_size, const ImWchar* in_text, const ImWchar* in_text_end); // return output UTF-8 bytes count
162 IMGUI_API int ImTextCharFromUtf8(unsigned int* out_char, const char* in_text, const char* in_text_end); // read one character. return input UTF-8 bytes count
163 IMGUI_API int ImTextStrFromUtf8(ImWchar* buf, int buf_size, const char* in_text, const char* in_text_end, const char** in_remaining = NULL); // return input UTF-8 bytes count
164 IMGUI_API int ImTextCountCharsFromUtf8(const char* in_text, const char* in_text_end); // return number of UTF-8 code-points (NOT bytes count)
165 IMGUI_API int ImTextCountUtf8BytesFromChar(const char* in_text, const char* in_text_end); // return number of bytes to express one char in UTF-8
166 IMGUI_API int ImTextCountUtf8BytesFromStr(const ImWchar* in_text, const ImWchar* in_text_end); // return number of bytes to express string in UTF-8
167 
168 // Helpers: Misc
169 IMGUI_API ImU32 ImHashData(const void* data, size_t data_size, ImU32 seed = 0);
170 IMGUI_API ImU32 ImHashStr(const char* data, size_t data_size = 0, ImU32 seed = 0);
171 IMGUI_API void* ImFileLoadToMemory(const char* filename, const char* file_open_mode, size_t* out_file_size = NULL, int padding_bytes = 0);
172 IMGUI_API FILE* ImFileOpen(const char* filename, const char* file_open_mode);
173 static inline bool ImCharIsBlankA(char c) { return c == ' ' || c == '\t'; }
174 static inline bool ImCharIsBlankW(unsigned int c) { return c == ' ' || c == '\t' || c == 0x3000; }
175 static inline bool ImIsPowerOfTwo(int v) { return v != 0 && (v & (v - 1)) == 0; }
176 static inline int ImUpperPowerOfTwo(int v) { v--; v |= v >> 1; v |= v >> 2; v |= v >> 4; v |= v >> 8; v |= v >> 16; v++; return v; }
177 #define ImQsort qsort
178 #ifndef IMGUI_DISABLE_OBSOLETE_FUNCTIONS
179 static inline ImU32 ImHash(const void* data, int size, ImU32 seed = 0) { return size ? ImHashData(data, (size_t)size, seed) : ImHashStr((const char*)data, 0, seed); } // [moved to ImHashStr/ImHashData in 1.68]
180 #endif
181 
182 // Helpers: Geometry
183 IMGUI_API ImVec2 ImLineClosestPoint(const ImVec2& a, const ImVec2& b, const ImVec2& p);
184 IMGUI_API bool ImTriangleContainsPoint(const ImVec2& a, const ImVec2& b, const ImVec2& c, const ImVec2& p);
185 IMGUI_API ImVec2 ImTriangleClosestPoint(const ImVec2& a, const ImVec2& b, const ImVec2& c, const ImVec2& p);
186 IMGUI_API void ImTriangleBarycentricCoords(const ImVec2& a, const ImVec2& b, const ImVec2& c, const ImVec2& p, float& out_u, float& out_v, float& out_w);
187 IMGUI_API ImGuiDir ImGetDirQuadrantFromDelta(float dx, float dy);
188 
189 // Helpers: String
190 IMGUI_API int ImStricmp(const char* str1, const char* str2);
191 IMGUI_API int ImStrnicmp(const char* str1, const char* str2, size_t count);
192 IMGUI_API void ImStrncpy(char* dst, const char* src, size_t count);
193 IMGUI_API char* ImStrdup(const char* str);
194 IMGUI_API char* ImStrdupcpy(char* dst, size_t* p_dst_size, const char* str);
195 IMGUI_API const char* ImStrchrRange(const char* str_begin, const char* str_end, char c);
196 IMGUI_API int ImStrlenW(const ImWchar* str);
197 IMGUI_API const char* ImStreolRange(const char* str, const char* str_end); // End end-of-line
198 IMGUI_API const ImWchar*ImStrbolW(const ImWchar* buf_mid_line, const ImWchar* buf_begin); // Find beginning-of-line
199 IMGUI_API const char* ImStristr(const char* haystack, const char* haystack_end, const char* needle, const char* needle_end);
200 IMGUI_API void ImStrTrimBlanks(char* str);
201 IMGUI_API int ImFormatString(char* buf, size_t buf_size, const char* fmt, ...) IM_FMTARGS(3);
202 IMGUI_API int ImFormatStringV(char* buf, size_t buf_size, const char* fmt, va_list args) IM_FMTLIST(3);
203 IMGUI_API const char* ImParseFormatFindStart(const char* format);
204 IMGUI_API const char* ImParseFormatFindEnd(const char* format);
205 IMGUI_API const char* ImParseFormatTrimDecorations(const char* format, char* buf, size_t buf_size);
206 IMGUI_API int ImParseFormatPrecision(const char* format, int default_value);
207 
208 // Helpers: ImVec2/ImVec4 operators
209 // We are keeping those disabled by default so they don't leak in user space, to allow user enabling implicit cast operators between ImVec2 and their own types (using IM_VEC2_CLASS_EXTRA etc.)
210 // We unfortunately don't have a unary- operator for ImVec2 because this would needs to be defined inside the class itself.
211 #ifdef IMGUI_DEFINE_MATH_OPERATORS
212 static inline ImVec2 operator*(const ImVec2& lhs, const float rhs) { return ImVec2(lhs.x*rhs, lhs.y*rhs); }
213 static inline ImVec2 operator/(const ImVec2& lhs, const float rhs) { return ImVec2(lhs.x/rhs, lhs.y/rhs); }
214 static inline ImVec2 operator+(const ImVec2& lhs, const ImVec2& rhs) { return ImVec2(lhs.x+rhs.x, lhs.y+rhs.y); }
215 static inline ImVec2 operator-(const ImVec2& lhs, const ImVec2& rhs) { return ImVec2(lhs.x-rhs.x, lhs.y-rhs.y); }
216 static inline ImVec2 operator*(const ImVec2& lhs, const ImVec2& rhs) { return ImVec2(lhs.x*rhs.x, lhs.y*rhs.y); }
217 static inline ImVec2 operator/(const ImVec2& lhs, const ImVec2& rhs) { return ImVec2(lhs.x/rhs.x, lhs.y/rhs.y); }
218 static inline ImVec2& operator+=(ImVec2& lhs, const ImVec2& rhs) { lhs.x += rhs.x; lhs.y += rhs.y; return lhs; }
219 static inline ImVec2& operator-=(ImVec2& lhs, const ImVec2& rhs) { lhs.x -= rhs.x; lhs.y -= rhs.y; return lhs; }
220 static inline ImVec2& operator*=(ImVec2& lhs, const float rhs) { lhs.x *= rhs; lhs.y *= rhs; return lhs; }
221 static inline ImVec2& operator/=(ImVec2& lhs, const float rhs) { lhs.x /= rhs; lhs.y /= rhs; return lhs; }
222 static inline ImVec4 operator+(const ImVec4& lhs, const ImVec4& rhs) { return ImVec4(lhs.x+rhs.x, lhs.y+rhs.y, lhs.z+rhs.z, lhs.w+rhs.w); }
223 static inline ImVec4 operator-(const ImVec4& lhs, const ImVec4& rhs) { return ImVec4(lhs.x-rhs.x, lhs.y-rhs.y, lhs.z-rhs.z, lhs.w-rhs.w); }
224 static inline ImVec4 operator*(const ImVec4& lhs, const ImVec4& rhs) { return ImVec4(lhs.x*rhs.x, lhs.y*rhs.y, lhs.z*rhs.z, lhs.w*rhs.w); }
225 #endif
226 
227 // Helpers: Maths
228 // - Wrapper for standard libs functions. (Note that imgui_demo.cpp does _not_ use them to keep the code easy to copy)
229 #ifndef IMGUI_DISABLE_MATH_FUNCTIONS
230 static inline float ImFabs(float x) { return fabsf(x); }
231 static inline float ImSqrt(float x) { return sqrtf(x); }
232 static inline float ImPow(float x, float y) { return powf(x, y); }
233 static inline double ImPow(double x, double y) { return pow(x, y); }
234 static inline float ImFmod(float x, float y) { return fmodf(x, y); }
235 static inline double ImFmod(double x, double y) { return fmod(x, y); }
236 static inline float ImCos(float x) { return cosf(x); }
237 static inline float ImSin(float x) { return sinf(x); }
238 static inline float ImAcos(float x) { return acosf(x); }
239 static inline float ImAtan2(float y, float x) { return atan2f(y, x); }
240 static inline double ImAtof(const char* s) { return atof(s); }
241 static inline float ImFloorStd(float x) { return floorf(x); } // we already uses our own ImFloor() { return (float)(int)v } internally so the standard one wrapper is named differently (it's used by stb_truetype)
242 static inline float ImCeil(float x) { return ceilf(x); }
243 #endif
244 // - ImMin/ImMax/ImClamp/ImLerp/ImSwap are used by widgets which support for variety of types: signed/unsigned int/long long float/double
245 // (Exceptionally using templates here but we could also redefine them for variety of types)
246 template<typename T> static inline T ImMin(T lhs, T rhs) { return lhs < rhs ? lhs : rhs; }
247 template<typename T> static inline T ImMax(T lhs, T rhs) { return lhs >= rhs ? lhs : rhs; }
248 template<typename T> static inline T ImClamp(T v, T mn, T mx) { return (v < mn) ? mn : (v > mx) ? mx : v; }
249 template<typename T> static inline T ImLerp(T a, T b, float t) { return (T)(a + (b - a) * t); }
250 template<typename T> static inline void ImSwap(T& a, T& b) { T tmp = a; a = b; b = tmp; }
251 template<typename T> static inline T ImAddClampOverflow(T a, T b, T mn, T mx) { if (b < 0 && (a < mn - b)) return mn; if (b > 0 && (a > mx - b)) return mx; return a + b; }
252 template<typename T> static inline T ImSubClampOverflow(T a, T b, T mn, T mx) { if (b > 0 && (a < mn + b)) return mn; if (b < 0 && (a > mx + b)) return mx; return a - b; }
253 // - Misc maths helpers
254 static inline ImVec2 ImMin(const ImVec2& lhs, const ImVec2& rhs) { return ImVec2(lhs.x < rhs.x ? lhs.x : rhs.x, lhs.y < rhs.y ? lhs.y : rhs.y); }
255 static inline ImVec2 ImMax(const ImVec2& lhs, const ImVec2& rhs) { return ImVec2(lhs.x >= rhs.x ? lhs.x : rhs.x, lhs.y >= rhs.y ? lhs.y : rhs.y); }
256 static inline ImVec2 ImClamp(const ImVec2& v, const ImVec2& mn, ImVec2 mx) { return ImVec2((v.x < mn.x) ? mn.x : (v.x > mx.x) ? mx.x : v.x, (v.y < mn.y) ? mn.y : (v.y > mx.y) ? mx.y : v.y); }
257 static inline ImVec2 ImLerp(const ImVec2& a, const ImVec2& b, float t) { return ImVec2(a.x + (b.x - a.x) * t, a.y + (b.y - a.y) * t); }
258 static inline ImVec2 ImLerp(const ImVec2& a, const ImVec2& b, const ImVec2& t) { return ImVec2(a.x + (b.x - a.x) * t.x, a.y + (b.y - a.y) * t.y); }
259 static inline ImVec4 ImLerp(const ImVec4& a, const ImVec4& b, float t) { return ImVec4(a.x + (b.x - a.x) * t, a.y + (b.y - a.y) * t, a.z + (b.z - a.z) * t, a.w + (b.w - a.w) * t); }
260 static inline float ImSaturate(float f) { return (f < 0.0f) ? 0.0f : (f > 1.0f) ? 1.0f : f; }
261 static inline float ImLengthSqr(const ImVec2& lhs) { return lhs.x*lhs.x + lhs.y*lhs.y; }
262 static inline float ImLengthSqr(const ImVec4& lhs) { return lhs.x*lhs.x + lhs.y*lhs.y + lhs.z*lhs.z + lhs.w*lhs.w; }
263 static inline float ImInvLength(const ImVec2& lhs, float fail_value) { float d = lhs.x*lhs.x + lhs.y*lhs.y; if (d > 0.0f) return 1.0f / ImSqrt(d); return fail_value; }
264 static inline float ImFloor(float f) { return (float)(int)f; }
265 static inline ImVec2 ImFloor(const ImVec2& v) { return ImVec2((float)(int)v.x, (float)(int)v.y); }
266 static inline int ImModPositive(int a, int b) { return (a + b) % b; }
267 static inline float ImDot(const ImVec2& a, const ImVec2& b) { return a.x * b.x + a.y * b.y; }
268 static inline ImVec2 ImRotate(const ImVec2& v, float cos_a, float sin_a) { return ImVec2(v.x * cos_a - v.y * sin_a, v.x * sin_a + v.y * cos_a); }
269 static inline float ImLinearSweep(float current, float target, float speed) { if (current < target) return ImMin(current + speed, target); if (current > target) return ImMax(current - speed, target); return current; }
270 static inline ImVec2 ImMul(const ImVec2& lhs, const ImVec2& rhs) { return ImVec2(lhs.x * rhs.x, lhs.y * rhs.y); }
271 
272 // Helper: ImBoolVector. Store 1-bit per value.
273 // Note that Resize() currently clears the whole vector.
275 {
278  void Resize(int sz) { Storage.resize((sz + 31) >> 5); memset(Storage.Data, 0, (size_t)Storage.Size * sizeof(Storage.Data[0])); }
279  void Clear() { Storage.clear(); }
280  bool GetBit(int n) const { int off = (n >> 5); int mask = 1 << (n & 31); return (Storage[off] & mask) != 0; }
281  void SetBit(int n, bool v) { int off = (n >> 5); int mask = 1 << (n & 31); if (v) Storage[off] |= mask; else Storage[off] &= ~mask; }
282 };
283 
284 // Helper: ImPool<>. Basic keyed storage for contiguous instances, slow/amortized insertion, O(1) indexable, O(Log N) queries by ID over a dense/hot buffer,
285 // Honor constructor/destructor. Add/remove invalidate all pointers. Indexes have the same lifetime as the associated object.
286 typedef int ImPoolIdx;
287 template<typename T>
289 {
290  ImVector<T> Data; // Contiguous data
291  ImGuiStorage Map; // ID->Index
292  ImPoolIdx FreeIdx; // Next free idx to use
293 
294  ImPool() { FreeIdx = 0; }
295  ~ImPool() { Clear(); }
296  T* GetByKey(ImGuiID key) { int idx = Map.GetInt(key, -1); return (idx != -1) ? &Data[idx] : NULL; }
297  T* GetByIndex(ImPoolIdx n) { return &Data[n]; }
298  ImPoolIdx GetIndex(const T* p) const { IM_ASSERT(p >= Data.Data && p < Data.Data + Data.Size); return (ImPoolIdx)(p - Data.Data); }
299  T* GetOrAddByKey(ImGuiID key) { int* p_idx = Map.GetIntRef(key, -1); if (*p_idx != -1) return &Data[*p_idx]; *p_idx = FreeIdx; return Add(); }
300  bool Contains(const T* p) const { return (p >= Data.Data && p < Data.Data + Data.Size); }
301  void Clear() { for (int n = 0; n < Map.Data.Size; n++) { int idx = Map.Data[n].val_i; if (idx != -1) Data[idx].~T(); } Map.Clear(); Data.clear(); FreeIdx = 0; }
302  T* Add() { int idx = FreeIdx; if (idx == Data.Size) { Data.resize(Data.Size + 1); FreeIdx++; } else { FreeIdx = *(int*)&Data[idx]; } IM_PLACEMENT_NEW(&Data[idx]) T(); return &Data[idx]; }
303  void Remove(ImGuiID key, const T* p) { Remove(key, GetIndex(p)); }
304  void Remove(ImGuiID key, ImPoolIdx idx) { Data[idx].~T(); *(int*)&Data[idx] = FreeIdx; FreeIdx = idx; Map.SetInt(key, -1); }
305  void Reserve(int capacity) { Data.reserve(capacity); Map.Data.reserve(capacity); }
306  int GetSize() const { return Data.Size; }
307 };
308 
309 //-----------------------------------------------------------------------------
310 // Misc data structures
311 //-----------------------------------------------------------------------------
312 
314 {
316  ImGuiButtonFlags_Repeat = 1 << 0, // hold to repeat
317  ImGuiButtonFlags_PressedOnClickRelease = 1 << 1, // [Default] return true on click + release on same item
318  ImGuiButtonFlags_PressedOnClick = 1 << 2, // return true on click (default requires click+release)
319  ImGuiButtonFlags_PressedOnRelease = 1 << 3, // return true on release (default requires click+release)
320  ImGuiButtonFlags_PressedOnDoubleClick = 1 << 4, // return true on double-click (default requires click+release)
321  ImGuiButtonFlags_FlattenChildren = 1 << 5, // allow interactions even if a child window is overlapping
322  ImGuiButtonFlags_AllowItemOverlap = 1 << 6, // require previous frame HoveredId to either match id or be null before being usable, use along with SetItemAllowOverlap()
323  ImGuiButtonFlags_DontClosePopups = 1 << 7, // disable automatically closing parent popup on press // [UNUSED]
324  ImGuiButtonFlags_Disabled = 1 << 8, // disable interactions
325  ImGuiButtonFlags_AlignTextBaseLine = 1 << 9, // vertically align button to match text baseline - ButtonEx() only // FIXME: Should be removed and handled by SmallButton(), not possible currently because of DC.CursorPosPrevLine
326  ImGuiButtonFlags_NoKeyModifiers = 1 << 10, // disable interaction if a key modifier is held
327  ImGuiButtonFlags_NoHoldingActiveID = 1 << 11, // don't set ActiveId while holding the mouse (ImGuiButtonFlags_PressedOnClick only)
328  ImGuiButtonFlags_PressedOnDragDropHold = 1 << 12, // press when held into while we are drag and dropping another item (used by e.g. tree nodes, collapsing headers)
329  ImGuiButtonFlags_NoNavFocus = 1 << 13, // don't override navigation focus when activated
330  ImGuiButtonFlags_NoHoveredOnNav = 1 << 14 // don't report as hovered when navigated on
331 };
332 
334 {
337 };
338 
340 {
343 };
344 
346 {
347  // Default: 0
349  ImGuiColumnsFlags_NoBorder = 1 << 0, // Disable column dividers
350  ImGuiColumnsFlags_NoResize = 1 << 1, // Disable resizing columns when clicking on the dividers
351  ImGuiColumnsFlags_NoPreserveWidths = 1 << 2, // Disable column width preservation when adjusting columns
352  ImGuiColumnsFlags_NoForceWithinWindow = 1 << 3, // Disable forcing columns to fit within window
353  ImGuiColumnsFlags_GrowParentContentsSize= 1 << 4 // (WIP) Restore pre-1.51 behavior of extending the parent window contents size but _without affecting the columns width at all_. Will eventually remove.
354 };
355 
356 // Extend ImGuiSelectableFlags_
358 {
359  // NB: need to be in sync with last value of ImGuiSelectableFlags_
363  ImGuiSelectableFlags_DrawFillAvailWidth = 1 << 23, // FIXME: We may be able to remove this (added in 6251d379 for menus)
364  ImGuiSelectableFlags_DrawHoveredWhenHeld= 1 << 24, // Always show active when held, even is not hovered. This concept could probably be renamed/formalized somehow.
366 };
367 
368 // Extend ImGuiTreeNodeFlags_
370 {
372 };
373 
375 {
377  ImGuiSeparatorFlags_Horizontal = 1 << 0, // Axis default to current layout type, so generally Horizontal unless e.g. in a menu bar
380 };
381 
382 // Transient per-window flags, reset at the beginning of the frame. For child window, inherited from parent on first Begin().
383 // This is going to be exposed in imgui.h when stabilized enough.
385 {
386  ImGuiItemFlags_NoTabStop = 1 << 0, // false
387  ImGuiItemFlags_ButtonRepeat = 1 << 1, // false // Button() will return true multiple times based on io.KeyRepeatDelay and io.KeyRepeatRate settings.
388  ImGuiItemFlags_Disabled = 1 << 2, // false // [BETA] Disable interactions but doesn't affect visuals yet. See github.com/ocornut/imgui/issues/211
389  ImGuiItemFlags_NoNav = 1 << 3, // false
391  ImGuiItemFlags_SelectableDontClosePopup = 1 << 5, // false // MenuItem/Selectable() automatically closes current Popup window
392  ImGuiItemFlags_MixedValue = 1 << 6, // false // [BETA] Represent a mixed/indeterminate value, generally multi-selection where values differ. Currently only supported by Checkbox() (later should support all sorts of widgets)
394 };
395 
396 // Storage for LastItem data
398 {
402  ImGuiItemStatusFlags_Edited = 1 << 2, // Value exposed by item was edited in the current frame (should match the bool return value of most widgets)
403  ImGuiItemStatusFlags_ToggledSelection = 1 << 3, // Set when Selectable(), TreeNode() reports toggling a selection. We can't report "Selected" because reporting the change allows us to handle clipping with less issues.
404  ImGuiItemStatusFlags_HasDeactivated = 1 << 4, // Set if the widget/group is able to provide data for the ImGuiItemStatusFlags_Deactivated flag.
405  ImGuiItemStatusFlags_Deactivated = 1 << 5 // Only valid if ImGuiItemStatusFlags_HasDeactivated is set.
406 
407 #ifdef IMGUI_ENABLE_TEST_ENGINE
408  , // [imgui_tests only]
409  ImGuiItemStatusFlags_Openable = 1 << 10, //
410  ImGuiItemStatusFlags_Opened = 1 << 11, //
411  ImGuiItemStatusFlags_Checkable = 1 << 12, //
412  ImGuiItemStatusFlags_Checked = 1 << 13 //
413 #endif
414 };
415 
417 {
420 };
421 
422 // FIXME: this is in development, not exposed/functional as a generic feature yet.
423 // Horizontal/Vertical enums are fixed to 0/1 so they may be used to index ImVec2
425 {
428 };
429 
431 {
437 };
438 
439 // X/Y enums are fixed to 0/1 so they may be used to index ImVec2
441 {
445 };
446 
448 {
451 };
452 
454 {
458  ImGuiInputSource_NavKeyboard, // Only used occasionally for storage, not tested/handled by most code
461 };
462 
463 // FIXME-NAV: Clarify/expose various repeat delay/rate
465 {
472 };
473 
475 {
479  ImGuiNavHighlightFlags_AlwaysDraw = 1 << 2, // Draw rectangular highlight if (g.NavId == id) _even_ when using the mouse.
481 };
482 
484 {
489 };
490 
492 {
494  ImGuiNavMoveFlags_LoopX = 1 << 0, // On failed request, restart from opposite side
496  ImGuiNavMoveFlags_WrapX = 1 << 2, // On failed request, request from opposite side one line down (when NavDir==right) or one line up (when NavDir==left)
497  ImGuiNavMoveFlags_WrapY = 1 << 3, // This is not super useful for provided for completeness
498  ImGuiNavMoveFlags_AllowCurrentNavId = 1 << 4, // Allow scoring and considering the current NavId as a move target candidate. This is used when the move source is offset (e.g. pressing PageDown actually needs to send a Up move request, if we are pressing PageDown from the bottom-most item we need to stay in place)
499  ImGuiNavMoveFlags_AlsoScoreVisibleSet = 1 << 5, // Store alternate result in NavMoveResultLocalVisibleSet that only comprise elements that are already fully visible.
501 };
502 
504 {
508 };
509 
511 {
512  ImGuiNavLayer_Main = 0, // Main scrolling layer
513  ImGuiNavLayer_Menu = 1, // Menu layer (access with Alt/ImGuiNavInput_Menu)
515 };
516 
518 {
521 };
522 
523 // 1D vector (this odd construct is used to facilitate the transition between 1D and 2D, and the maintenance of some branches/patches)
524 struct ImVec1
525 {
526  float x;
527  ImVec1() { x = 0.0f; }
528  ImVec1(float _x) { x = _x; }
529 };
530 
531 // 2D vector (half-size integer)
532 struct ImVec2ih
533 {
534  short x, y;
535  ImVec2ih() { x = y = 0; }
536  ImVec2ih(short _x, short _y) { x = _x; y = _y; }
537 };
538 
539 // 2D axis aligned bounding-box
540 // NB: we can't rely on ImVec2 math operators being available here
542 {
543  ImVec2 Min; // Upper-left
544  ImVec2 Max; // Lower-right
545 
546  ImRect() : Min(FLT_MAX,FLT_MAX), Max(-FLT_MAX,-FLT_MAX) {}
547  ImRect(const ImVec2& min, const ImVec2& max) : Min(min), Max(max) {}
548  ImRect(const ImVec4& v) : Min(v.x, v.y), Max(v.z, v.w) {}
549  ImRect(float x1, float y1, float x2, float y2) : Min(x1, y1), Max(x2, y2) {}
550 
551  ImVec2 GetCenter() const { return ImVec2((Min.x + Max.x) * 0.5f, (Min.y + Max.y) * 0.5f); }
552  ImVec2 GetSize() const { return ImVec2(Max.x - Min.x, Max.y - Min.y); }
553  float GetWidth() const { return Max.x - Min.x; }
554  float GetHeight() const { return Max.y - Min.y; }
555  ImVec2 GetTL() const { return Min; } // Top-left
556  ImVec2 GetTR() const { return ImVec2(Max.x, Min.y); } // Top-right
557  ImVec2 GetBL() const { return ImVec2(Min.x, Max.y); } // Bottom-left
558  ImVec2 GetBR() const { return Max; } // Bottom-right
559  bool Contains(const ImVec2& p) const { return p.x >= Min.x && p.y >= Min.y && p.x < Max.x && p.y < Max.y; }
560  bool Contains(const ImRect& r) const { return r.Min.x >= Min.x && r.Min.y >= Min.y && r.Max.x <= Max.x && r.Max.y <= Max.y; }
561  bool Overlaps(const ImRect& r) const { return r.Min.y < Max.y && r.Max.y > Min.y && r.Min.x < Max.x && r.Max.x > Min.x; }
562  void Add(const ImVec2& p) { if (Min.x > p.x) Min.x = p.x; if (Min.y > p.y) Min.y = p.y; if (Max.x < p.x) Max.x = p.x; if (Max.y < p.y) Max.y = p.y; }
563  void Add(const ImRect& r) { if (Min.x > r.Min.x) Min.x = r.Min.x; if (Min.y > r.Min.y) Min.y = r.Min.y; if (Max.x < r.Max.x) Max.x = r.Max.x; if (Max.y < r.Max.y) Max.y = r.Max.y; }
564  void Expand(const float amount) { Min.x -= amount; Min.y -= amount; Max.x += amount; Max.y += amount; }
565  void Expand(const ImVec2& amount) { Min.x -= amount.x; Min.y -= amount.y; Max.x += amount.x; Max.y += amount.y; }
566  void Translate(const ImVec2& d) { Min.x += d.x; Min.y += d.y; Max.x += d.x; Max.y += d.y; }
567  void TranslateX(float dx) { Min.x += dx; Max.x += dx; }
568  void TranslateY(float dy) { Min.y += dy; Max.y += dy; }
569  void ClipWith(const ImRect& r) { Min = ImMax(Min, r.Min); Max = ImMin(Max, r.Max); } // Simple version, may lead to an inverted rectangle, which is fine for Contains/Overlaps test but not for display.
570  void ClipWithFull(const ImRect& r) { Min = ImClamp(Min, r.Min, r.Max); Max = ImClamp(Max, r.Min, r.Max); } // Full version, ensure both points are fully clipped.
571  void Floor() { Min.x = (float)(int)Min.x; Min.y = (float)(int)Min.y; Max.x = (float)(int)Max.x; Max.y = (float)(int)Max.y; }
572  bool IsInverted() const { return Min.x > Max.x || Min.y > Max.y; }
573 };
574 
575 // Type information associated to one ImGuiDataType. Retrieve with DataTypeGetInfo().
577 {
578  size_t Size; // Size in byte
579  const char* PrintFmt; // Default printf format for the type
580  const char* ScanFmt; // Default scanf format for the type
581 };
582 
583 // Stacked color modifier, backup of modified data so we can restore it
585 {
588 };
589 
590 // Stacked style modifier, backup of modified data so we can restore it. Data type inferred from the variable.
592 {
594  union { int BackupInt[2]; float BackupFloat[2]; };
595  ImGuiStyleMod(ImGuiStyleVar idx, int v) { VarIdx = idx; BackupInt[0] = v; }
596  ImGuiStyleMod(ImGuiStyleVar idx, float v) { VarIdx = idx; BackupFloat[0] = v; }
597  ImGuiStyleMod(ImGuiStyleVar idx, ImVec2 v) { VarIdx = idx; BackupFloat[0] = v.x; BackupFloat[1] = v.y; }
598 };
599 
600 // Stacked storage data for BeginGroup()/EndGroup()
602 {
611  bool EmitItem;
612 };
613 
614 // Simple column measurement, currently used for MenuItem() only.. This is very short-sighted/throw-away code and NOT a generic helper.
616 {
617  float Spacing;
618  float Width, NextWidth;
619  float Pos[3], NextWidths[3];
620 
622  void Update(int count, float spacing, bool clear);
623  float DeclColumns(float w0, float w1, float w2);
624  float CalcExtraSpace(float avail_w);
625 };
626 
627 // Internal state of the currently focused/edited text input box
629 {
630  ImGuiID ID; // widget id owning the text state
631  int CurLenW, CurLenA; // we need to maintain our buffer length in both UTF-8 and wchar format. UTF-8 len is valid even if TextA is not.
632  ImVector<ImWchar> TextW; // edit buffer, we need to persist but can't guarantee the persistence of the user-provided buffer. so we copy into own buffer.
633  ImVector<char> TextA; // temporary UTF8 buffer for callbacks and other operations. this is not updated in every code-path! size=capacity.
634  ImVector<char> InitialTextA; // backup of end-user buffer at the time of focus (in UTF-8, unaltered)
635  bool TextAIsValid; // temporary UTF8 buffer is not initially valid before we make the widget active (until then we pull the data from user argument)
636  int BufCapacityA; // end-user buffer capacity
637  float ScrollX; // horizontal scrolling/offset
638  ImStb::STB_TexteditState Stb; // state for stb_textedit.h
639  float CursorAnim; // timer for cursor blink, reset on every user action so the cursor reappears immediately
640  bool CursorFollow; // set when we want scrolling to follow the current cursor position (not always!)
641  bool SelectedAllMouseLock; // after a double-click to select all, we ignore further mouse drags to update selection
642  ImGuiInputTextFlags UserFlags; // Temporarily set while we call user's callback
644  void* UserCallbackData; // "
645 
646  ImGuiInputTextState() { memset(this, 0, sizeof(*this)); }
647  void ClearText() { CurLenW = CurLenA = 0; TextW[0] = 0; TextA[0] = 0; CursorClamp(); }
648  void ClearFreeMemory() { TextW.clear(); TextA.clear(); InitialTextA.clear(); }
649  int GetUndoAvailCount() const { return Stb.undostate.undo_point; }
650  int GetRedoAvailCount() const { return STB_TEXTEDIT_UNDOSTATECOUNT - Stb.undostate.redo_point; }
651  void OnKeyPressed(int key); // Cannot be inline because we call in code in stb_textedit.h implementation
652 
653  // Cursor & Selection
654  void CursorAnimReset() { CursorAnim = -0.30f; } // After a user-input the cursor stays on for a while without blinking
655  void CursorClamp() { Stb.cursor = ImMin(Stb.cursor, CurLenW); Stb.select_start = ImMin(Stb.select_start, CurLenW); Stb.select_end = ImMin(Stb.select_end, CurLenW); }
656  bool HasSelection() const { return Stb.select_start != Stb.select_end; }
657  void ClearSelection() { Stb.select_start = Stb.select_end = Stb.cursor; }
658  void SelectAll() { Stb.select_start = 0; Stb.cursor = Stb.select_end = CurLenW; Stb.has_preferred_x = 0; }
659 };
660 
661 // Windows data saved in imgui.ini file
663 {
664  char* Name;
668  bool Collapsed;
669 
670  ImGuiWindowSettings() { Name = NULL; ID = 0; Pos = Size = ImVec2ih(0, 0); Collapsed = false; }
671 };
672 
674 {
675  const char* TypeName; // Short description stored in .ini file. Disallowed characters: '[' ']'
676  ImGuiID TypeHash; // == ImHashStr(TypeName)
677  void* (*ReadOpenFn)(ImGuiContext* ctx, ImGuiSettingsHandler* handler, const char* name); // Read: Called when entering into a new ini entry e.g. "[Window][Name]"
678  void (*ReadLineFn)(ImGuiContext* ctx, ImGuiSettingsHandler* handler, void* entry, const char* line); // Read: Called for every line of text within an ini entry
679  void (*WriteAllFn)(ImGuiContext* ctx, ImGuiSettingsHandler* handler, ImGuiTextBuffer* out_buf); // Write: Output every entries into 'out_buf'
680  void* UserData;
681 
682  ImGuiSettingsHandler() { memset(this, 0, sizeof(*this)); }
683 };
684 
685 // Storage for current popup stack
687 {
688  ImGuiID PopupId; // Set on OpenPopup()
689  ImGuiWindow* Window; // Resolved on BeginPopup() - may stay unresolved if user never calls OpenPopup()
690  ImGuiWindow* SourceWindow; // Set on OpenPopup() copy of NavWindow at the time of opening the popup
691  int OpenFrameCount; // Set on OpenPopup()
692  ImGuiID OpenParentId; // Set on OpenPopup(), we need this to differentiate multiple menu sets from each others (e.g. inside menu bar vs loose menu items)
693  ImVec2 OpenPopupPos; // Set on OpenPopup(), preferred popup position (typically == OpenMousePos when using mouse)
694  ImVec2 OpenMousePos; // Set on OpenPopup(), copy of mouse position at the time of opening popup
695 
697 };
698 
700 {
701  float OffsetNorm; // Column start offset, normalized 0.0 (far left) -> 1.0 (far right)
703  ImGuiColumnsFlags Flags; // Not exposed
705 
707 };
708 
710 {
715  int Current;
716  int Count;
717  float OffMinX, OffMaxX; // Offsets from HostWorkRect.Min.x
719  float HostCursorPosY; // Backup of CursorPos at the time of BeginColumns()
720  float HostCursorMaxPosX; // Backup of CursorMaxPos at the time of BeginColumns()
721  ImRect HostClipRect; // Backup of ClipRect at the time of BeginColumns()
722  ImRect HostWorkRect; // Backup of WorkRect at the time of BeginColumns()
724 
726  void Clear()
727  {
728  ID = 0;
730  IsFirstFrame = false;
731  IsBeingResized = false;
732  Current = 0;
733  Count = 1;
734  OffMinX = OffMaxX = 0.0f;
735  LineMinY = LineMaxY = 0.0f;
736  HostCursorPosY = 0.0f;
737  HostCursorMaxPosX = 0.0f;
738  Columns.clear();
739  }
740 };
741 
742 // Data shared between all ImDrawList instances
744 {
745  ImVec2 TexUvWhitePixel; // UV of white pixel in the atlas
746  ImFont* Font; // Current/default font (optional, for simplified AddText overload)
747  float FontSize; // Current/default font size (optional, for simplified AddText overload)
749  ImVec4 ClipRectFullscreen; // Value for PushClipRectFullscreen()
750  ImDrawListFlags InitialFlags; // Initial flags at the beginning of the frame (it is possible to alter flags on a per-drawlist basis afterwards)
751 
752  // Const data
753  // FIXME: Bake rounded corners fill/borders in atlas
754  ImVec2 CircleVtx12[12];
755 
757 };
758 
760 {
761  ImVector<ImDrawList*> Layers[2]; // Global layers for: regular, tooltip
762 
763  void Clear() { for (int n = 0; n < IM_ARRAYSIZE(Layers); n++) Layers[n].resize(0); }
764  void ClearFreeMemory() { for (int n = 0; n < IM_ARRAYSIZE(Layers); n++) Layers[n].clear(); }
766 };
767 
769 {
770  ImGuiID ID; // Best candidate
771  ImGuiID SelectScopeId;// Best candidate window current selectable group ID
772  ImGuiWindow* Window; // Best candidate window
773  float DistBox; // Best candidate box distance to current NavId
774  float DistCenter; // Best candidate center distance to current NavId
775  float DistAxial;
776  ImRect RectRel; // Best candidate bounding box in window relative space
777 
779  void Clear() { ID = SelectScopeId = 0; Window = NULL; DistBox = DistCenter = DistAxial = FLT_MAX; RectRel = ImRect(); }
780 };
781 
783 {
792 };
793 
794 // Storage for SetNexWindow** functions
796 {
809  float BgAlphaVal;
810  ImVec2 MenuBarOffsetMinVal; // *Always on* This is not exposed publicly, so we don't clear it.
811 
812  ImGuiNextWindowData() { memset(this, 0, sizeof(*this)); }
814 };
815 
817 {
821 };
822 
824 {
826  float Width; // Set by SetNextItemWidth().
827  bool OpenVal; // Set by SetNextItemOpen() function.
829 
830  ImGuiNextItemData() { memset(this, 0, sizeof(*this)); }
832 };
833 
834 //-----------------------------------------------------------------------------
835 // Tabs
836 //-----------------------------------------------------------------------------
837 
839 {
840  int Index;
841  float Width;
842 };
843 
845 {
846  void* Ptr; // Either field can be set, not both. e.g. Dock node tab bars are loose while BeginTabBar() ones are in a pool.
847  int Index; // Usually index in a main pool.
848 
849  ImGuiPtrOrIndex(void* ptr) { Ptr = ptr; Index = -1; }
850  ImGuiPtrOrIndex(int index) { Ptr = NULL; Index = index; }
851 };
852 
853 //-----------------------------------------------------------------------------
854 // Main imgui context
855 //-----------------------------------------------------------------------------
856 
858 {
860  bool FrameScopeActive; // Set by NewFrame(), cleared by EndFrame()
861  bool FrameScopePushedImplicitWindow; // Set by NewFrame(), cleared by EndFrame()
862  bool FontAtlasOwnedByContext; // Io.Fonts-> is owned by the ImGuiContext and will be destructed along with it.
865  ImFont* Font; // (Shortcut) == FontStack.empty() ? IO.Font : FontStack.back()
866  float FontSize; // (Shortcut) == FontBaseSize * g.CurrentWindow->FontWindowScale == window->FontSize(). Text height for current window.
867  float FontBaseSize; // (Shortcut) == IO.FontGlobalScale * Font->Scale * Font->FontSize. Base text height.
869  double Time;
873 
874  // Windows state
875  ImVector<ImGuiWindow*> Windows; // Windows, sorted in display order, back to front
876  ImVector<ImGuiWindow*> WindowsFocusOrder; // Windows, sorted in focus order, back to front
881  ImGuiWindow* CurrentWindow; // Being drawn into
882  ImGuiWindow* HoveredWindow; // Will catch mouse inputs
883  ImGuiWindow* HoveredRootWindow; // Will catch mouse inputs (for focus/move only)
884  ImGuiWindow* MovingWindow; // Track the window we clicked on (in order to preserve focus). The actually window that is moved is generally MovingWindow->RootWindow.
888 
889  // Item/widgets state and tracking information
890  ImGuiID HoveredId; // Hovered widget
893  float HoveredIdTimer; // Measure contiguous hovering time
894  float HoveredIdNotActiveTimer; // Measure contiguous hovering time where the item has not been active
895  ImGuiID ActiveId; // Active widget
896  ImGuiID ActiveIdIsAlive; // Active widget has been seen this frame (we can't use a bool as the ActiveId may change within the frame)
898  bool ActiveIdIsJustActivated; // Set at the time of activation for one frame
899  bool ActiveIdAllowOverlap; // Active widget allows another widget to steal active id (generally for overlapping widgets, but not always)
900  bool ActiveIdHasBeenPressedBefore; // Track whether the active id led to a press (this is to allow changing between PressOnClick and PressOnRelease without pressing twice). Used by range_select branch.
901  bool ActiveIdHasBeenEditedBefore; // Was the value associated to the widget Edited over the course of the Active state.
903  int ActiveIdAllowNavDirFlags; // Active widget allows using directional navigation (e.g. can activate a button and move away from it)
905  ImVec2 ActiveIdClickOffset; // Clicked offset from upper-left corner, if applicable (currently only set by ButtonBehavior)
907  ImGuiInputSource ActiveIdSource; // Activating with mouse or nav (gamepad/keyboard)
912 
913  ImGuiID LastActiveId; // Store the last non-zero ActiveId, useful for animation.
914  float LastActiveIdTimer; // Store the last non-zero ActiveId timer since the beginning of activation, useful for animation.
915 
916  // Next window/item data
917  ImGuiNextWindowData NextWindowData; // Storage for SetNextWindow** functions
918  ImGuiNextItemData NextItemData; // Storage for SetNextItem** functions
919 
920  // Shared stacks
921  ImVector<ImGuiColorMod> ColorModifiers; // Stack for PushStyleColor()/PopStyleColor()
922  ImVector<ImGuiStyleMod> StyleModifiers; // Stack for PushStyleVar()/PopStyleVar()
923  ImVector<ImFont*> FontStack; // Stack for PushFont()/PopFont()
924  ImVector<ImGuiPopupData>OpenPopupStack; // Which popups are open (persistent)
925  ImVector<ImGuiPopupData>BeginPopupStack; // Which level of BeginPopup() we are in (reset every frame)
926 
927  // Navigation data (for gamepad/keyboard)
928  ImGuiWindow* NavWindow; // Focused window for navigation. Could be called 'FocusWindow'
929  ImGuiID NavId; // Focused item for navigation
930  ImGuiID NavActivateId; // ~~ (g.ActiveId == 0) && IsNavInputPressed(ImGuiNavInput_Activate) ? NavId : 0, also set when calling ActivateItem()
931  ImGuiID NavActivateDownId; // ~~ IsNavInputDown(ImGuiNavInput_Activate) ? NavId : 0
932  ImGuiID NavActivatePressedId; // ~~ IsNavInputPressed(ImGuiNavInput_Activate) ? NavId : 0
933  ImGuiID NavInputId; // ~~ IsNavInputPressed(ImGuiNavInput_Input) ? NavId : 0
934  ImGuiID NavJustTabbedId; // Just tabbed to this id.
935  ImGuiID NavJustMovedToId; // Just navigated to this id (result of a successfully MoveRequest).
936  ImGuiID NavJustMovedToMultiSelectScopeId; // Just navigated to this select scope id (result of a successfully MoveRequest).
937  ImGuiID NavNextActivateId; // Set by ActivateItem(), queued until next frame.
938  ImGuiInputSource NavInputSource; // Keyboard or Gamepad mode? THIS WILL ONLY BE None or NavGamepad or NavKeyboard.
939  ImRect NavScoringRectScreen; // Rectangle used for scoring, in screen space. Based of window->DC.NavRefRectRel[], modified for directional navigation scoring.
940  int NavScoringCount; // Metrics for debugging
941  ImGuiWindow* NavWindowingTarget; // When selecting a window (holding Menu+FocusPrev/Next, or equivalent of CTRL-TAB) this window is temporarily displayed top-most.
942  ImGuiWindow* NavWindowingTargetAnim; // Record of last valid NavWindowingTarget until DimBgRatio and NavWindowingHighlightAlpha becomes 0.0f
947  ImGuiNavLayer NavLayer; // Layer we are navigating on. For now the system is hard-coded for 0=main contents and 1=menu/title bar, may expose layers later.
948  int NavIdTabCounter; // == NavWindow->DC.FocusIdxTabCounter at time of NavId processing
949  bool NavIdIsAlive; // Nav widget has been seen this frame ~~ NavRefRectRel is valid
950  bool NavMousePosDirty; // When set we will update mouse position if (io.ConfigFlags & ImGuiConfigFlags_NavEnableSetMousePos) if set (NB: this not enabled by default)
951  bool NavDisableHighlight; // When user starts using mouse, we hide gamepad/keyboard highlight (NB: but they are still available, which is why NavDisableHighlight isn't always != NavDisableMouseHover)
952  bool NavDisableMouseHover; // When user starts using gamepad/keyboard, we hide mouse hovering highlight until mouse is touched again.
953  bool NavAnyRequest; // ~~ NavMoveRequest || NavInitRequest
954  bool NavInitRequest; // Init request for appearing window to select first item
958  bool NavMoveFromClampedRefRect; // Set by manual scrolling, if we scroll to a point where NavId isn't visible we reset navigation from visible items
959  bool NavMoveRequest; // Move request for this frame
961  ImGuiNavForward NavMoveRequestForward; // None / ForwardQueued / ForwardActive (this is used to navigate sibling parent menus from a child menu)
962  ImGuiDir NavMoveDir, NavMoveDirLast; // Direction of the move request (left/right/up/down), direction of the previous move request
963  ImGuiDir NavMoveClipDir; // FIXME-NAV: Describe the purpose of this better. Might want to rename?
964  ImGuiNavMoveResult NavMoveResultLocal; // Best move request candidate within NavWindow
965  ImGuiNavMoveResult NavMoveResultLocalVisibleSet; // Best move request candidate within NavWindow that are mostly visible (when using ImGuiNavMoveFlags_AlsoScoreVisibleSet flag)
966  ImGuiNavMoveResult NavMoveResultOther; // Best move request candidate within NavWindow's flattened hierarchy (when using ImGuiWindowFlags_NavFlattened flag)
967 
968  // Tabbing system (older than Nav, active even if Nav is disabled. FIXME-NAV: This needs a redesign!)
971  int FocusRequestCurrCounterAll; // Any item being requested for focus, stored as an index (we on layout to be stable between the frame pressing TAB and the next frame, semi-ouch)
972  int FocusRequestCurrCounterTab; // Tab item being requested for focus, stored as an index
973  int FocusRequestNextCounterAll; // Stored for next frame
976 
977  // Render
978  ImDrawData DrawData; // Main ImDrawData instance to pass render information to the user
980  float DimBgRatio; // 0.0..1.0 animation when fading in a dimming background (for modal window and CTRL+TAB list)
981  ImDrawList BackgroundDrawList; // First draw list to be rendered.
982  ImDrawList ForegroundDrawList; // Last draw list to be rendered. This is where we the render software mouse cursor (if io.MouseDrawCursor is set) and most debug overlays.
984 
985  // Drag and Drop
995  float DragDropAcceptIdCurrRectSurface; // Target item surface (we resolve overlapping targets by prioritizing the smaller surface)
996  ImGuiID DragDropAcceptIdCurr; // Target item id (set at the time of accepting the payload)
997  ImGuiID DragDropAcceptIdPrev; // Target item id from previous frame (we need to store this to allow for overlapping drag and drop targets)
998  int DragDropAcceptFrameCount; // Last time a target expressed a desire to accept the source
999  ImVector<unsigned char> DragDropPayloadBufHeap; // We don't expose the ImVector<> directly
1000  unsigned char DragDropPayloadBufLocal[8]; // Local buffer for small payloads
1001 
1002  // Tab bars
1007 
1008  // Widget state
1012  ImGuiID TempInputTextId; // Temporary text input when CTRL+clicking on a slider, etc.
1013  ImGuiColorEditFlags ColorEditOptions; // Store user options for color edit widgets
1018  float DragCurrentAccum; // Accumulator for dragging modification. Always high-precision, not rounded by end-user precision settings
1019  float DragSpeedDefaultRatio; // If speed == 0.0f, uses (max-min) * DragSpeedDefaultRatio
1020  float ScrollbarClickDeltaToGrabCenter; // Distance between mouse and center of grab box, normalized in parent space. Use storage?
1022  ImVector<char> PrivateClipboard; // If no custom clipboard handler is defined
1023 
1024  // Range-Select/Multi-Select
1025  // [This is unused in this branch, but left here to facilitate merging/syncing multiple branches]
1027 
1028  // Platform support
1029  ImVec2 PlatformImePos; // Cursor position request & last passed to the OS Input Method Editor
1031 
1032  // Settings
1034  float SettingsDirtyTimer; // Save .ini Settings to memory when time reaches zero
1035  ImGuiTextBuffer SettingsIniData; // In memory .ini settings
1036  ImVector<ImGuiSettingsHandler> SettingsHandlers; // List of .ini settings handlers
1037  ImVector<ImGuiWindowSettings> SettingsWindows; // ImGuiWindow .ini settings entries (parsed from the last loaded .ini file and maintained on saving)
1038 
1039  // Logging
1042  FILE* LogFile; // If != NULL log to stdout/ file
1043  ImGuiTextBuffer LogBuffer; // Accumulation buffer when log to clipboard. This is pointer so our GImGui static constructor doesn't call heap allocators.
1048  int LogDepthToExpandDefault; // Default/stored value for LogDepthMaxExpand if not specified in the LogXXX function call.
1049 
1050  // Debug Tools
1052  ImGuiID DebugItemPickerBreakID; // Will call IM_DEBUG_BREAK() when encountering this id
1053 
1054  // Misc
1055  float FramerateSecPerFrame[120]; // Calculate estimate of framerate for user over the last 2 seconds.
1058  int WantCaptureMouseNextFrame; // Explicit capture via CaptureKeyboardFromApp()/CaptureMouseFromApp() sets those flags
1061  char TempBuffer[1024*3+1]; // Temporary text buffer
1062 
1064  {
1065  Initialized = false;
1067  Font = NULL;
1068  FontSize = FontBaseSize = 0.0f;
1069  FontAtlasOwnedByContext = shared_font_atlas ? false : true;
1070  IO.Fonts = shared_font_atlas ? shared_font_atlas : IM_NEW(ImFontAtlas)();
1071  Time = 0.0f;
1072  FrameCount = 0;
1074 
1075  WindowsActiveCount = 0;
1076  CurrentWindow = NULL;
1077  HoveredWindow = NULL;
1079  MovingWindow = NULL;
1080  WheelingWindow = NULL;
1081  WheelingWindowTimer = 0.0f;
1082 
1083  HoveredId = 0;
1084  HoveredIdAllowOverlap = false;
1087  ActiveId = 0;
1088  ActiveIdIsAlive = 0;
1089  ActiveIdTimer = 0.0f;
1090  ActiveIdIsJustActivated = false;
1091  ActiveIdAllowOverlap = false;
1095  ActiveIdAllowNavDirFlags = 0x00;
1097  ActiveIdClickOffset = ImVec2(-1,-1);
1098  ActiveIdWindow = NULL;
1100 
1105 
1106  LastActiveId = 0;
1107  LastActiveIdTimer = 0.0f;
1108 
1109  NavWindow = NULL;
1114  NavScoringCount = 0;
1117  NavWindowingToggleLayer = false;
1119  NavIdTabCounter = INT_MAX;
1120  NavIdIsAlive = false;
1121  NavMousePosDirty = false;
1122  NavDisableHighlight = true;
1123  NavDisableMouseHover = false;
1124  NavAnyRequest = false;
1125  NavInitRequest = false;
1126  NavInitRequestFromMove = false;
1127  NavInitResultId = 0;
1128  NavMoveFromClampedRefRect = false;
1129  NavMoveRequest = false;
1130  NavMoveRequestFlags = 0;
1133 
1137  FocusTabPressed = false;
1138 
1139  DimBgRatio = 0.0f;
1140  BackgroundDrawList._OwnerName = "##Background"; // Give it a name for debugging
1141  ForegroundDrawList._OwnerName = "##Foreground"; // Give it a name for debugging
1143 
1145  DragDropSourceFlags = 0;
1147  DragDropMouseButton = -1;
1148  DragDropTargetId = 0;
1149  DragDropAcceptFlags = 0;
1154 
1155  CurrentTabBar = NULL;
1156 
1157  LastValidMousePos = ImVec2(0.0f, 0.0f);
1158  TempInputTextId = 0;
1160  ColorEditLastHue = 0.0f;
1162  DragCurrentAccumDirty = false;
1163  DragCurrentAccum = 0.0f;
1164  DragSpeedDefaultRatio = 1.0f / 100.0f;
1167 
1168  MultiSelectScopeId = 0;
1169 
1170  PlatformImePos = PlatformImeLastPos = ImVec2(FLT_MAX, FLT_MAX);
1171 
1172  SettingsLoaded = false;
1173  SettingsDirtyTimer = 0.0f;
1174 
1175  LogEnabled = false;
1177  LogFile = NULL;
1178  LogLinePosY = FLT_MAX;
1179  LogLineFirstItem = false;
1180  LogDepthRef = 0;
1182 
1183  DebugItemPickerActive = false;
1185 
1186  memset(FramerateSecPerFrame, 0, sizeof(FramerateSecPerFrame));
1190  memset(TempBuffer, 0, sizeof(TempBuffer));
1191  }
1192 };
1193 
1194 //-----------------------------------------------------------------------------
1195 // ImGuiWindow
1196 //-----------------------------------------------------------------------------
1197 
1198 // Transient per-window data, reset at the beginning of the frame. This used to be called ImGuiDrawContext, hence the DC variable name in ImGuiWindow.
1199 // FIXME: That's theory, in practice the delimitation between ImGuiWindow and ImGuiWindowTempData is quite tenuous and could be reconsidered.
1201 {
1202  ImVec2 CursorPos; // Current emitting position, in absolute coordinates.
1204  ImVec2 CursorStartPos; // Initial position after Begin(), generally ~ window position + WindowPadding.
1205  ImVec2 CursorMaxPos; // Used to implicitly calculate the size of our contents, always growing during the frame. Used to calculate window->ContentSize at the beginning of next frame
1208  float CurrLineTextBaseOffset; // Baseline offset (0.0f by default on a new line, generally == style.FramePadding.y when a framed item has been added).
1210  int TreeDepth; // Current tree depth.
1211  ImU32 TreeMayJumpToParentOnPopMask; // Store a copy of !g.NavIdIsAlive for TreeDepth 0..31.. Could be turned into a ImU64 if necessary.
1212  ImGuiID LastItemId; // ID for last item
1213  ImGuiItemStatusFlags LastItemStatusFlags; // Status flags for last item (see ImGuiItemStatusFlags_)
1214  ImRect LastItemRect; // Interaction rect for last item
1215  ImRect LastItemDisplayRect; // End-user display rect for last item (only valid if LastItemStatusFlags & ImGuiItemStatusFlags_HasDisplayRect)
1216  ImGuiNavLayer NavLayerCurrent; // Current layer, 0..31 (we currently only use 0..1)
1217  int NavLayerCurrentMask; // = (1 << NavLayerCurrent) used by ItemAdd prior to clipping.
1218  int NavLayerActiveMask; // Which layer have been written to (result from previous frame)
1219  int NavLayerActiveMaskNext; // Which layer have been written to (buffer for current frame)
1221  bool NavHasScroll; // Set when scrolling can be used (ScrollMax > 0.0f)
1222  bool MenuBarAppending; // FIXME: Remove this
1223  ImVec2 MenuBarOffset; // MenuBarOffset.x is sort of equivalent of a per-layer CursorPos.x, saved/restored as we switch to the menu bar. The only situation when MenuBarOffset.y is > 0 if when (SafeAreaPadding.y > FramePadding.y), often used on TVs.
1225  ImGuiStorage* StateStorage; // Current persistent per-window storage (store e.g. tree node open/close state)
1227  ImGuiLayoutType ParentLayoutType; // Layout type of parent window at the time of Begin()
1228  int FocusCounterAll; // Counter for focus/tabbing system. Start at -1 and increase as assigned via FocusableItemRegister() (FIXME-NAV: Needs redesign)
1229  int FocusCounterTab; // (same, but only count widgets which you can Tab through)
1230 
1231  // We store the current settings outside of the vectors to increase memory locality (reduce cache misses). The vectors are rarely modified. Also it allows us to not heap allocate for short-lived windows which are not using those settings.
1232  ImGuiItemFlags ItemFlags; // == ItemFlagsStack.back() [empty == ImGuiItemFlags_Default]
1233  float ItemWidth; // == ItemWidthStack.back(). 0.0: default, >0.0: width in pixels, <0.0: align xx pixels to the right of window
1234  float TextWrapPos; // == TextWrapPosStack.back() [empty == -1.0f]
1239  short StackSizesBackup[6]; // Store size of various stacks for asserting
1240 
1241  ImVec1 Indent; // Indentation / start position from left of window (increased by TreePush/TreePop, etc.)
1243  ImVec1 ColumnsOffset; // Offset to the current column (if ColumnsCurrent > 0). FIXME: This and the above should be a stack to allow use cases like Tree->Column->Tree. Need revamp columns API.
1244  ImGuiColumns* CurrentColumns; // Current columns set
1245 
1247  {
1248  CursorPos = CursorPosPrevLine = CursorStartPos = CursorMaxPos = ImVec2(0.0f, 0.0f);
1249  CurrLineSize = PrevLineSize = ImVec2(0.0f, 0.0f);
1250  CurrLineTextBaseOffset = PrevLineTextBaseOffset = 0.0f;
1251  TreeDepth = 0;
1252  TreeMayJumpToParentOnPopMask = 0x00;
1253  LastItemId = 0;
1254  LastItemStatusFlags = 0;
1255  LastItemRect = LastItemDisplayRect = ImRect();
1256  NavLayerActiveMask = NavLayerActiveMaskNext = 0x00;
1257  NavLayerCurrent = ImGuiNavLayer_Main;
1258  NavLayerCurrentMask = (1 << ImGuiNavLayer_Main);
1259  NavHideHighlightOneFrame = false;
1260  NavHasScroll = false;
1261  MenuBarAppending = false;
1262  MenuBarOffset = ImVec2(0.0f, 0.0f);
1263  StateStorage = NULL;
1264  LayoutType = ParentLayoutType = ImGuiLayoutType_Vertical;
1265  FocusCounterAll = FocusCounterTab = -1;
1266 
1267  ItemFlags = ImGuiItemFlags_Default_;
1268  ItemWidth = 0.0f;
1269  TextWrapPos = -1.0f;
1270  memset(StackSizesBackup, 0, sizeof(StackSizesBackup));
1271 
1272  Indent = ImVec1(0.0f);
1273  GroupOffset = ImVec1(0.0f);
1274  ColumnsOffset = ImVec1(0.0f);
1275  CurrentColumns = NULL;
1276  }
1277 };
1278 
1279 // Storage for one window
1281 {
1282  char* Name;
1283  ImGuiID ID; // == ImHash(Name)
1284  ImGuiWindowFlags Flags; // See enum ImGuiWindowFlags_
1285  ImVec2 Pos; // Position (always rounded-up to nearest pixel)
1286  ImVec2 Size; // Current size (==SizeFull or collapsed title bar size)
1287  ImVec2 SizeFull; // Size when non collapsed
1288  ImVec2 ContentSize; // Size of contents/scrollable client area (calculated from the extents reach of the cursor) from previous frame. Does not include window decoration or window padding.
1289  ImVec2 ContentSizeExplicit; // Size of contents/scrollable client area explicitly request by the user via SetNextWindowContentSize().
1290  ImVec2 WindowPadding; // Window padding at the time of Begin().
1291  float WindowRounding; // Window rounding at the time of Begin().
1292  float WindowBorderSize; // Window border size at the time of Begin().
1293  int NameBufLen; // Size of buffer storing Name. May be larger than strlen(Name)!
1294  ImGuiID MoveId; // == window->GetID("#MOVE")
1295  ImGuiID ChildId; // ID of corresponding item in parent window (for navigation to return from child window to parent window)
1298  ImVec2 ScrollTarget; // target scroll position. stored as cursor position with scrolling canceled out, so the highest point is always 0.0f. (FLT_MAX for no change)
1299  ImVec2 ScrollTargetCenterRatio; // 0.0f = scroll so that target position is at top, 0.5f = scroll so that target position is centered
1300  ImVec2 ScrollbarSizes; // Size taken by scrollbars on each axis
1301  bool ScrollbarX, ScrollbarY; // Are scrollbars visible?
1302  bool Active; // Set to true on Begin(), unless Collapsed
1304  bool WriteAccessed; // Set to true when any widget access the current window
1305  bool Collapsed; // Set when collapsing window to become only title-bar
1307  bool SkipItems; // Set when items can safely be all clipped (e.g. window not visible or collapsed)
1308  bool Appearing; // Set during the frame where the window is appearing (or re-appearing)
1309  bool Hidden; // Do not display (== (HiddenFrames*** > 0))
1310  bool HasCloseButton; // Set when the window has a close button (p_open != NULL)
1311  signed char ResizeBorderHeld; // Current border being held for resize (-1: none, otherwise 0-3)
1312  short BeginCount; // Number of Begin() during the current frame (generally 0 or 1, 1+ if appending via multiple Begin/End pairs)
1313  short BeginOrderWithinParent; // Order within immediate parent window, if we are a child window. Otherwise 0.
1314  short BeginOrderWithinContext; // Order within entire imgui context. This is mostly used for debugging submission order related issues.
1315  ImGuiID PopupId; // ID in the popup stack when this window is used as a popup/menu (because we use generic Name/ID for recycling)
1316  ImS8 AutoFitFramesX, AutoFitFramesY;
1320  int HiddenFramesCanSkipItems; // Hide the window for N frames
1321  int HiddenFramesCannotSkipItems; // Hide the window for N frames while allowing items to be submitted so we can measure their size
1322  ImGuiCond SetWindowPosAllowFlags; // store acceptable condition flags for SetNextWindowPos() use.
1323  ImGuiCond SetWindowSizeAllowFlags; // store acceptable condition flags for SetNextWindowSize() use.
1324  ImGuiCond SetWindowCollapsedAllowFlags; // store acceptable condition flags for SetNextWindowCollapsed() use.
1325  ImVec2 SetWindowPosVal; // store window position when using a non-zero Pivot (position set needs to be processed when we know the window size)
1326  ImVec2 SetWindowPosPivot; // store window pivot for positioning. ImVec2(0,0) when positioning from top-left corner; ImVec2(0.5f,0.5f) for centering; ImVec2(1,1) for bottom right.
1327 
1328  ImVector<ImGuiID> IDStack; // ID stack. ID are hashes seeded with the value at the top of the stack. (In theory this should be in the TempData structure)
1329  ImGuiWindowTempData DC; // Temporary per-window data, reset at the beginning of the frame. This used to be called ImGuiDrawContext, hence the "DC" variable name.
1330 
1331  // The best way to understand what those rectangles are is to use the 'Metrics -> Tools -> Show windows rectangles' viewer.
1332  // The main 'OuterRect', omitted as a field, is window->Rect().
1333  ImRect OuterRectClipped; // == Window->Rect() just after setup in Begin(). == window->Rect() for root window.
1334  ImRect InnerRect; // Inner rectangle (omit title bar, menu bar, scroll bar)
1335  ImRect InnerClipRect; // == InnerRect shrunk by WindowPadding*0.5f on each side, clipped within viewport or parent clip rect.
1336  ImRect WorkRect; // Cover the whole scrolling region, shrunk by WindowPadding*1.0f on each side. This is meant to replace ContentsRegionRect over time (from 1.71+ onward).
1337  ImRect ClipRect; // Current clipping/scissoring rectangle, evolve as we are using PushClipRect(), etc. == DrawList->clip_rect_stack.back().
1338  ImRect ContentsRegionRect; // FIXME: This is currently confusing/misleading. It is essentially WorkRect but not handling of scrolling. We currently rely on it as right/bottom aligned sizing operation need some size to rely on.
1339 
1340  int LastFrameActive; // Last frame number the window was Active.
1341  float LastTimeActive; // Last timestamp the window was Active (using float as we don't need high precision there)
1343  ImGuiMenuColumns MenuColumns; // Simplified columns storage for menu items
1346  float FontWindowScale; // User scale multiplier per-window, via SetWindowFontScale()
1347  int SettingsIdx; // Index into SettingsWindow[] (indices are always valid as we only grow the array from the back)
1348 
1349  ImDrawList* DrawList; // == &DrawListInst (for backward compatibility reason with code using imgui_internal.h we keep this a pointer)
1351  ImGuiWindow* ParentWindow; // If we are a child _or_ popup window, this is pointing to our parent. Otherwise NULL.
1352  ImGuiWindow* RootWindow; // Point to ourself or first ancestor that is not a child window.
1353  ImGuiWindow* RootWindowForTitleBarHighlight; // Point to ourself or first ancestor which will display TitleBgActive color when this window is active.
1354  ImGuiWindow* RootWindowForNav; // Point to ourself or first ancestor which doesn't have the NavFlattened flag.
1355 
1356  ImGuiWindow* NavLastChildNavWindow; // When going to the menu bar, we remember the child window we came from. (This could probably be made implicit if we kept g.Windows sorted by last focused including child window.)
1357  ImGuiID NavLastIds[ImGuiNavLayer_COUNT]; // Last known NavId for this window, per layer (0/1)
1358  ImRect NavRectRel[ImGuiNavLayer_COUNT]; // Reference rectangle, in window relative space
1359 
1363 
1364 public:
1365  ImGuiWindow(ImGuiContext* context, const char* name);
1366  ~ImGuiWindow();
1367 
1368  ImGuiID GetID(const char* str, const char* str_end = NULL);
1369  ImGuiID GetID(const void* ptr);
1370  ImGuiID GetID(int n);
1371  ImGuiID GetIDNoKeepAlive(const char* str, const char* str_end = NULL);
1372  ImGuiID GetIDNoKeepAlive(const void* ptr);
1373  ImGuiID GetIDNoKeepAlive(int n);
1374  ImGuiID GetIDFromRectangle(const ImRect& r_abs);
1375 
1376  // We don't use g.FontSize because the window may be != g.CurrentWidow.
1377  ImRect Rect() const { return ImRect(Pos.x, Pos.y, Pos.x+Size.x, Pos.y+Size.y); }
1378  float CalcFontSize() const { ImGuiContext& g = *GImGui; float scale = g.FontBaseSize * FontWindowScale; if (ParentWindow) scale *= ParentWindow->FontWindowScale; return scale; }
1379  float TitleBarHeight() const { ImGuiContext& g = *GImGui; return (Flags & ImGuiWindowFlags_NoTitleBar) ? 0.0f : CalcFontSize() + g.Style.FramePadding.y * 2.0f; }
1380  ImRect TitleBarRect() const { return ImRect(Pos, ImVec2(Pos.x + SizeFull.x, Pos.y + TitleBarHeight())); }
1381  float MenuBarHeight() const { ImGuiContext& g = *GImGui; return (Flags & ImGuiWindowFlags_MenuBar) ? DC.MenuBarOffset.y + CalcFontSize() + g.Style.FramePadding.y * 2.0f : 0.0f; }
1382  ImRect MenuBarRect() const { float y1 = Pos.y + TitleBarHeight(); return ImRect(Pos.x, y1, Pos.x + SizeFull.x, y1 + MenuBarHeight()); }
1383 };
1384 
1385 // Backup and restore just enough data to be able to use IsItemHovered() on item A after another B in the same window has overwritten the data.
1387 {
1392 
1396 };
1397 
1398 //-----------------------------------------------------------------------------
1399 // Tab bar, tab item
1400 //-----------------------------------------------------------------------------
1401 
1402 // Extend ImGuiTabBarFlags_
1404 {
1405  ImGuiTabBarFlags_DockNode = 1 << 20, // Part of a dock node [we don't use this in the master branch but it facilitate branch syncing to keep this around]
1407  ImGuiTabBarFlags_SaveSettings = 1 << 22 // FIXME: Settings are handled by the docking system, this only request the tab bar to mark settings dirty when reordering tabs
1408 };
1409 
1410 // Extend ImGuiTabItemFlags_
1412 {
1413  ImGuiTabItemFlags_NoCloseButton = 1 << 20 // Store whether p_open is set or not, which we need to recompute WidthContents during layout.
1414 };
1415 
1416 // Storage for one active tab item (sizeof() 26~32 bytes)
1418 {
1422  int LastFrameSelected; // This allows us to infer an ordered list of the last activated tabs with little maintenance
1423  int NameOffset; // When Window==NULL, offset to name within parent ImGuiTabBar::TabsNames
1424  float Offset; // Position relative to beginning of tab
1425  float Width; // Width currently displayed
1426  float WidthContents; // Width of actual contents, stored during BeginTabItem() call
1427 
1429 };
1430 
1431 // Storage for a tab bar (sizeof() 92~96 bytes)
1433 {
1435  ImGuiID ID; // Zero for tab-bars used by docking
1436  ImGuiID SelectedTabId; // Selected tab
1438  ImGuiID VisibleTabId; // Can occasionally be != SelectedTabId (e.g. when previewing contents for CTRL+TAB preview)
1442  float LastTabContentHeight; // Record the height of contents submitted below the tab bar
1443  float OffsetMax; // Distance from BarRect.Min.x, locked during layout
1444  float OffsetMaxIdeal; // Ideal offset if all tabs were visible and not clipped
1445  float OffsetNextTab; // Distance from BarRect.Min.x, incremented with each BeginTabItem() call, not used if ImGuiTabBarFlags_Reorderable if set.
1455  short LastTabItemIdx; // For BeginTabItem()/EndTabItem()
1456  ImVec2 FramePadding; // style.FramePadding locked at the time of BeginTabBar()
1457  ImGuiTextBuffer TabsNames; // For non-docking tab bar we re-append names in a contiguous buffer.
1458 
1459  ImGuiTabBar();
1460  int GetTabOrder(const ImGuiTabItem* tab) const { return Tabs.index_from_ptr(tab); }
1461  const char* GetTabName(const ImGuiTabItem* tab) const
1462  {
1463  IM_ASSERT(tab->NameOffset != -1 && tab->NameOffset < TabsNames.Buf.Size);
1464  return TabsNames.Buf.Data + tab->NameOffset;
1465  }
1466 };
1467 
1468 //-----------------------------------------------------------------------------
1469 // Internal API
1470 // No guarantee of forward compatibility here.
1471 //-----------------------------------------------------------------------------
1472 
1473 namespace ImGui
1474 {
1475  // We should always have a CurrentWindow in the stack (there is an implicit "Debug" window)
1476  // If this ever crash because g.CurrentWindow is NULL it means that either
1477  // - ImGui::NewFrame() has never been called, which is illegal.
1478  // - You are calling ImGui functions after ImGui::EndFrame()/ImGui::Render() and before the next ImGui::NewFrame(), which is also illegal.
1482  IMGUI_API ImGuiWindow* FindWindowByName(const char* name);
1483  IMGUI_API void FocusWindow(ImGuiWindow* window);
1484  IMGUI_API void FocusTopMostWindowUnderOne(ImGuiWindow* under_this_window, ImGuiWindow* ignore_window);
1490  IMGUI_API bool IsWindowChildOf(ImGuiWindow* window, ImGuiWindow* potential_parent);
1493  IMGUI_API void SetWindowPos(ImGuiWindow* window, const ImVec2& pos, ImGuiCond cond = 0);
1494  IMGUI_API void SetWindowSize(ImGuiWindow* window, const ImVec2& size, ImGuiCond cond = 0);
1495  IMGUI_API void SetWindowCollapsed(ImGuiWindow* window, bool collapsed, ImGuiCond cond = 0);
1498 
1500  inline ImFont* GetDefaultFont() { ImGuiContext& g = *GImGui; return g.IO.FontDefault ? g.IO.FontDefault : g.IO.Fonts->Fonts[0]; }
1501  inline ImDrawList* GetForegroundDrawList(ImGuiWindow*) { ImGuiContext& g = *GImGui; return &g.ForegroundDrawList; } // This seemingly unnecessary wrapper simplifies compatibility between the 'master' and 'docking' branches.
1502 
1503  // Init
1504  IMGUI_API void Initialize(ImGuiContext* context);
1505  IMGUI_API void Shutdown(ImGuiContext* context); // Since 1.60 this is a _private_ function. You can call DestroyContext() to destroy the context created by CreateContext().
1506 
1507  // NewFrame
1512 
1513  // Settings
1519  IMGUI_API ImGuiSettingsHandler* FindSettingsHandler(const char* type_name);
1520 
1521  // Scrolling
1522  IMGUI_API void SetScrollX(ImGuiWindow* window, float new_scroll_x);
1523  IMGUI_API void SetScrollY(ImGuiWindow* window, float new_scroll_y);
1524  IMGUI_API void SetScrollFromPosX(ImGuiWindow* window, float local_x, float center_x_ratio = 0.5f);
1525  IMGUI_API void SetScrollFromPosY(ImGuiWindow* window, float local_y, float center_y_ratio = 0.5f);
1526  IMGUI_API ImVec2 ScrollToBringRectIntoView(ImGuiWindow* window, const ImRect& item_rect);
1527 
1528  // Basic Accessors
1530  inline ImGuiID GetActiveID() { ImGuiContext& g = *GImGui; return g.ActiveId; }
1531  inline ImGuiID GetFocusID() { ImGuiContext& g = *GImGui; return g.NavId; }
1532  IMGUI_API void SetActiveID(ImGuiID id, ImGuiWindow* window);
1533  IMGUI_API void SetFocusID(ImGuiID id, ImGuiWindow* window);
1534  IMGUI_API void ClearActiveID();
1536  IMGUI_API void SetHoveredID(ImGuiID id);
1537  IMGUI_API void KeepAliveID(ImGuiID id);
1538  IMGUI_API void MarkItemEdited(ImGuiID id);
1539  IMGUI_API void PushOverrideID(ImGuiID id);
1540 
1541  // Basic Helpers for widget code
1542  IMGUI_API void ItemSize(const ImVec2& size, float text_offset_y = 0.0f);
1543  IMGUI_API void ItemSize(const ImRect& bb, float text_offset_y = 0.0f);
1544  IMGUI_API bool ItemAdd(const ImRect& bb, ImGuiID id, const ImRect* nav_bb = NULL);
1545  IMGUI_API bool ItemHoverable(const ImRect& bb, ImGuiID id);
1546  IMGUI_API bool IsClippedEx(const ImRect& bb, ImGuiID id, bool clip_even_when_logged);
1547  IMGUI_API bool FocusableItemRegister(ImGuiWindow* window, ImGuiID id); // Return true if focus is requested
1549  IMGUI_API ImVec2 CalcItemSize(ImVec2 size, float default_w, float default_h);
1550  IMGUI_API float CalcWrapWidthForPos(const ImVec2& pos, float wrap_pos_x);
1551  IMGUI_API void PushMultiItemsWidths(int components, float width_full);
1552  IMGUI_API void PushItemFlag(ImGuiItemFlags option, bool enabled);
1553  IMGUI_API void PopItemFlag();
1554  IMGUI_API bool IsItemToggledSelection(); // Was the last item selection toggled? (after Selectable(), TreeNode() etc. We only returns toggle _event_ in order to handle clipping correctly)
1556  IMGUI_API void ShrinkWidths(ImGuiShrinkWidthItem* items, int count, float width_excess);
1557 
1558  // Logging/Capture
1559  IMGUI_API void LogBegin(ImGuiLogType type, int auto_open_depth); // -> BeginCapture() when we design v2 api, for now stay under the radar by using the old name.
1560  IMGUI_API void LogToBuffer(int auto_open_depth = -1); // Start logging/capturing to internal buffer
1561 
1562  // Popups, Modals, Tooltips
1563  IMGUI_API void OpenPopupEx(ImGuiID id);
1564  IMGUI_API void ClosePopupToLevel(int remaining, bool restore_focus_to_window_under_popup);
1565  IMGUI_API void ClosePopupsOverWindow(ImGuiWindow* ref_window, bool restore_focus_to_window_under_popup);
1566  IMGUI_API bool IsPopupOpen(ImGuiID id); // Test for id within current popup stack level (currently begin-ed into); this doesn't scan the whole popup stack!
1567  IMGUI_API bool BeginPopupEx(ImGuiID id, ImGuiWindowFlags extra_flags);
1568  IMGUI_API void BeginTooltipEx(ImGuiWindowFlags extra_flags, bool override_previous_tooltip = true);
1571  IMGUI_API ImVec2 FindBestWindowPosForPopupEx(const ImVec2& ref_pos, const ImVec2& size, ImGuiDir* last_dir, const ImRect& r_outer, const ImRect& r_avoid, ImGuiPopupPositionPolicy policy = ImGuiPopupPositionPolicy_Default);
1572 
1573  // Navigation
1574  IMGUI_API void NavInitWindow(ImGuiWindow* window, bool force_reinit);
1577  IMGUI_API void NavMoveRequestForward(ImGuiDir move_dir, ImGuiDir clip_dir, const ImRect& bb_rel, ImGuiNavMoveFlags move_flags);
1580  IMGUI_API ImVec2 GetNavInputAmount2d(ImGuiNavDirSourceFlags dir_sources, ImGuiInputReadMode mode, float slow_factor = 0.0f, float fast_factor = 0.0f);
1581  IMGUI_API int CalcTypematicPressedRepeatAmount(float t, float t_prev, float repeat_delay, float repeat_rate);
1582  IMGUI_API void ActivateItem(ImGuiID id); // Remotely activate a button, checkbox, tree node etc. given its unique ID. activation is queued and processed on the next frame when the item is encountered again.
1583  IMGUI_API void SetNavID(ImGuiID id, int nav_layer);
1584  IMGUI_API void SetNavIDWithRectRel(ImGuiID id, int nav_layer, const ImRect& rect_rel);
1585 
1586  // Inputs
1587  IMGUI_API bool IsMouseDragPastThreshold(int button, float lock_threshold = -1.0f);
1588  inline bool IsKeyPressedMap(ImGuiKey key, bool repeat = true) { const int key_index = GImGui->IO.KeyMap[key]; return (key_index >= 0) ? IsKeyPressed(key_index, repeat) : false; }
1589  inline bool IsNavInputDown(ImGuiNavInput n) { return GImGui->IO.NavInputs[n] > 0.0f; }
1590  inline bool IsNavInputPressed(ImGuiNavInput n, ImGuiInputReadMode mode) { return GetNavInputAmount(n, mode) > 0.0f; }
1591  inline bool IsNavInputPressedAnyOfTwo(ImGuiNavInput n1, ImGuiNavInput n2, ImGuiInputReadMode mode) { return (GetNavInputAmount(n1, mode) + GetNavInputAmount(n2, mode)) > 0.0f; }
1592 
1593  // Drag and Drop
1594  IMGUI_API bool BeginDragDropTargetCustom(const ImRect& bb, ImGuiID id);
1595  IMGUI_API void ClearDragDrop();
1597 
1598  // New Columns API (FIXME-WIP)
1599  IMGUI_API void BeginColumns(const char* str_id, int count, ImGuiColumnsFlags flags = 0); // setup number of columns. use an identifier to distinguish multiple column sets. close with EndColumns().
1600  IMGUI_API void EndColumns(); // close columns
1601  IMGUI_API void PushColumnClipRect(int column_index);
1604  IMGUI_API ImGuiID GetColumnsID(const char* str_id, int count);
1606  IMGUI_API float GetColumnOffsetFromNorm(const ImGuiColumns* columns, float offset_norm);
1607  IMGUI_API float GetColumnNormFromOffset(const ImGuiColumns* columns, float offset);
1608 
1609  // Tab Bars
1610  IMGUI_API bool BeginTabBarEx(ImGuiTabBar* tab_bar, const ImRect& bb, ImGuiTabBarFlags flags);
1612  IMGUI_API void TabBarRemoveTab(ImGuiTabBar* tab_bar, ImGuiID tab_id);
1613  IMGUI_API void TabBarCloseTab(ImGuiTabBar* tab_bar, ImGuiTabItem* tab);
1614  IMGUI_API void TabBarQueueChangeTabOrder(ImGuiTabBar* tab_bar, const ImGuiTabItem* tab, int dir);
1615  IMGUI_API bool TabItemEx(ImGuiTabBar* tab_bar, const char* label, bool* p_open, ImGuiTabItemFlags flags);
1616  IMGUI_API ImVec2 TabItemCalcSize(const char* label, bool has_close_button);
1617  IMGUI_API void TabItemBackground(ImDrawList* draw_list, const ImRect& bb, ImGuiTabItemFlags flags, ImU32 col);
1618  IMGUI_API bool TabItemLabelAndCloseButton(ImDrawList* draw_list, const ImRect& bb, ImGuiTabItemFlags flags, ImVec2 frame_padding, const char* label, ImGuiID tab_id, ImGuiID close_button_id);
1619 
1620  // Render helpers
1621  // AVOID USING OUTSIDE OF IMGUI.CPP! NOT FOR PUBLIC CONSUMPTION. THOSE FUNCTIONS ARE A MESS. THEIR SIGNATURE AND BEHAVIOR WILL CHANGE, THEY NEED TO BE REFACTORED INTO SOMETHING DECENT.
1622  // NB: All position are in absolute pixels coordinates (we are never using window coordinates internally)
1623  IMGUI_API void RenderText(ImVec2 pos, const char* text, const char* text_end = NULL, bool hide_text_after_hash = true);
1624  IMGUI_API void RenderTextWrapped(ImVec2 pos, const char* text, const char* text_end, float wrap_width);
1625  IMGUI_API void RenderTextClipped(const ImVec2& pos_min, const ImVec2& pos_max, const char* text, const char* text_end, const ImVec2* text_size_if_known, const ImVec2& align = ImVec2(0,0), const ImRect* clip_rect = NULL);
1626  IMGUI_API void RenderTextClippedEx(ImDrawList* draw_list, const ImVec2& pos_min, const ImVec2& pos_max, const char* text, const char* text_end, const ImVec2* text_size_if_known, const ImVec2& align = ImVec2(0, 0), const ImRect* clip_rect = NULL);
1627  IMGUI_API void RenderTextEllipsis(ImDrawList* draw_list, const ImVec2& pos_min, const ImVec2& pos_max, float clip_max_x, float ellipsis_max_x, const char* text, const char* text_end, const ImVec2* text_size_if_known);
1628  IMGUI_API void RenderFrame(ImVec2 p_min, ImVec2 p_max, ImU32 fill_col, bool border = true, float rounding = 0.0f);
1629  IMGUI_API void RenderFrameBorder(ImVec2 p_min, ImVec2 p_max, float rounding = 0.0f);
1630  IMGUI_API void RenderColorRectWithAlphaCheckerboard(ImVec2 p_min, ImVec2 p_max, ImU32 fill_col, float grid_step, ImVec2 grid_off, float rounding = 0.0f, int rounding_corners_flags = ~0);
1631  IMGUI_API void RenderCheckMark(ImVec2 pos, ImU32 col, float sz);
1632  IMGUI_API void RenderNavHighlight(const ImRect& bb, ImGuiID id, ImGuiNavHighlightFlags flags = ImGuiNavHighlightFlags_TypeDefault); // Navigation highlight
1633  IMGUI_API const char* FindRenderedTextEnd(const char* text, const char* text_end = NULL); // Find the optional ## from which we stop displaying text.
1634  IMGUI_API void LogRenderedText(const ImVec2* ref_pos, const char* text, const char* text_end = NULL);
1635 
1636  // Render helpers (those functions don't access any ImGui state!)
1637  IMGUI_API void RenderArrow(ImDrawList* draw_list, ImVec2 pos, ImU32 col, ImGuiDir dir, float scale = 1.0f);
1638  IMGUI_API void RenderBullet(ImDrawList* draw_list, ImVec2 pos, ImU32 col);
1639  IMGUI_API void RenderMouseCursor(ImDrawList* draw_list, ImVec2 pos, float scale, ImGuiMouseCursor mouse_cursor, ImU32 col_fill, ImU32 col_border, ImU32 col_shadow);
1640  IMGUI_API void RenderArrowPointingAt(ImDrawList* draw_list, ImVec2 pos, ImVec2 half_sz, ImGuiDir direction, ImU32 col);
1641  IMGUI_API void RenderRectFilledRangeH(ImDrawList* draw_list, const ImRect& rect, ImU32 col, float x_start_norm, float x_end_norm, float rounding);
1642 
1643 #ifndef IMGUI_DISABLE_OBSOLETE_FUNCTIONS
1644  // 2019/06/07: Updating prototypes of some of the internal functions. Leaving those for reference for a short while.
1645  inline void RenderArrow(ImVec2 pos, ImGuiDir dir, float scale=1.0f) { ImGuiWindow* window = GetCurrentWindow(); RenderArrow(window->DrawList, pos, GetColorU32(ImGuiCol_Text), dir, scale); }
1647 #endif
1648 
1649  // Widgets
1650  IMGUI_API void TextEx(const char* text, const char* text_end = NULL, ImGuiTextFlags flags = 0);
1651  IMGUI_API bool ButtonEx(const char* label, const ImVec2& size_arg = ImVec2(0,0), ImGuiButtonFlags flags = 0);
1652  IMGUI_API bool CloseButton(ImGuiID id, const ImVec2& pos);
1653  IMGUI_API bool CollapseButton(ImGuiID id, const ImVec2& pos);
1654  IMGUI_API bool ArrowButtonEx(const char* str_id, ImGuiDir dir, ImVec2 size_arg, ImGuiButtonFlags flags);
1655  IMGUI_API void Scrollbar(ImGuiAxis axis);
1656  IMGUI_API bool ScrollbarEx(const ImRect& bb, ImGuiID id, ImGuiAxis axis, float* p_scroll_v, float avail_v, float contents_v, ImDrawCornerFlags rounding_corners);
1659 
1660  // Widgets low-level behaviors
1661  IMGUI_API bool ButtonBehavior(const ImRect& bb, ImGuiID id, bool* out_hovered, bool* out_held, ImGuiButtonFlags flags = 0);
1662  IMGUI_API bool DragBehavior(ImGuiID id, ImGuiDataType data_type, void* v, float v_speed, const void* v_min, const void* v_max, const char* format, float power, ImGuiDragFlags flags);
1663  IMGUI_API bool SliderBehavior(const ImRect& bb, ImGuiID id, ImGuiDataType data_type, void* v, const void* v_min, const void* v_max, const char* format, float power, ImGuiSliderFlags flags, ImRect* out_grab_bb);
1664  IMGUI_API bool SplitterBehavior(const ImRect& bb, ImGuiID id, ImGuiAxis axis, float* size1, float* size2, float min_size1, float min_size2, float hover_extend = 0.0f, float hover_visibility_delay = 0.0f);
1665  IMGUI_API bool TreeNodeBehavior(ImGuiID id, ImGuiTreeNodeFlags flags, const char* label, const char* label_end = NULL);
1666  IMGUI_API bool TreeNodeBehaviorIsOpen(ImGuiID id, ImGuiTreeNodeFlags flags = 0); // Consume previous SetNextItemOpen() data, if any. May return true when logging
1668 
1669  // Template functions are instantiated in imgui_widgets.cpp for a finite number of types.
1670  // To use them externally (for custom widget) you may need an "extern template" statement in your code in order to link to existing instances and silence Clang warnings (see #2036).
1671  // e.g. " extern template IMGUI_API float RoundScalarWithFormatT<float, float>(const char* format, ImGuiDataType data_type, float v); "
1672  template<typename T, typename SIGNED_T, typename FLOAT_T> IMGUI_API bool DragBehaviorT(ImGuiDataType data_type, T* v, float v_speed, T v_min, T v_max, const char* format, float power, ImGuiDragFlags flags);
1673  template<typename T, typename SIGNED_T, typename FLOAT_T> IMGUI_API bool SliderBehaviorT(const ImRect& bb, ImGuiID id, ImGuiDataType data_type, T* v, T v_min, T v_max, const char* format, float power, ImGuiSliderFlags flags, ImRect* out_grab_bb);
1674  template<typename T, typename FLOAT_T> IMGUI_API float SliderCalcRatioFromValueT(ImGuiDataType data_type, T v, T v_min, T v_max, float power, float linear_zero_pos);
1675  template<typename T, typename SIGNED_T> IMGUI_API T RoundScalarWithFormatT(const char* format, ImGuiDataType data_type, T v);
1676 
1677  // Data type helpers
1679  IMGUI_API int DataTypeFormatString(char* buf, int buf_size, ImGuiDataType data_type, const void* data_ptr, const char* format);
1680  IMGUI_API void DataTypeApplyOp(ImGuiDataType data_type, int op, void* output, void* arg_1, const void* arg_2);
1681  IMGUI_API bool DataTypeApplyOpFromText(const char* buf, const char* initial_value_buf, ImGuiDataType data_type, void* data_ptr, const char* format);
1682 
1683  // InputText
1684  IMGUI_API bool InputTextEx(const char* label, const char* hint, char* buf, int buf_size, const ImVec2& size_arg, ImGuiInputTextFlags flags, ImGuiInputTextCallback callback = NULL, void* user_data = NULL);
1685  IMGUI_API bool TempInputTextScalar(const ImRect& bb, ImGuiID id, const char* label, ImGuiDataType data_type, void* data_ptr, const char* format);
1686  inline bool TempInputTextIsActive(ImGuiID id) { ImGuiContext& g = *GImGui; return (g.ActiveId == id && g.TempInputTextId == id); }
1687 
1688  // Color
1689  IMGUI_API void ColorTooltip(const char* text, const float* col, ImGuiColorEditFlags flags);
1690  IMGUI_API void ColorEditOptionsPopup(const float* col, ImGuiColorEditFlags flags);
1691  IMGUI_API void ColorPickerOptionsPopup(const float* ref_col, ImGuiColorEditFlags flags);
1692 
1693  // Plot
1694  IMGUI_API void PlotEx(ImGuiPlotType plot_type, const char* label, float (*values_getter)(void* data, int idx), void* data, int values_count, int values_offset, const char* overlay_text, float scale_min, float scale_max, ImVec2 frame_size);
1695 
1696  // Shade functions (write over already created vertices)
1697  IMGUI_API void ShadeVertsLinearColorGradientKeepAlpha(ImDrawList* draw_list, int vert_start_idx, int vert_end_idx, ImVec2 gradient_p0, ImVec2 gradient_p1, ImU32 col0, ImU32 col1);
1698  IMGUI_API void ShadeVertsLinearUV(ImDrawList* draw_list, int vert_start_idx, int vert_end_idx, const ImVec2& a, const ImVec2& b, const ImVec2& uv_a, const ImVec2& uv_b, bool clamp);
1699 
1700  // Debug Tools
1702 
1703 } // namespace ImGui
1704 
1705 // ImFontAtlas internals
1708 IMGUI_API void ImFontAtlasBuildSetupFont(ImFontAtlas* atlas, ImFont* font, ImFontConfig* font_config, float ascent, float descent);
1709 IMGUI_API void ImFontAtlasBuildPackCustomRects(ImFontAtlas* atlas, void* stbrp_context_opaque);
1711 IMGUI_API void ImFontAtlasBuildMultiplyCalcLookupTable(unsigned char out_table[256], float in_multiply_factor);
1712 IMGUI_API void ImFontAtlasBuildMultiplyRectAlpha8(const unsigned char table[256], unsigned char* pixels, int x, int y, int w, int h, int stride);
1713 
1714 // Debug Tools
1715 // Use 'Metrics->Tools->Item Picker' to break into the call-stack of a specific item.
1716 #ifndef IM_DEBUG_BREAK
1717 #if defined(__clang__)
1718 #define IM_DEBUG_BREAK() __builtin_debugtrap()
1719 #elif defined (_MSC_VER)
1720 #define IM_DEBUG_BREAK() __debugbreak()
1721 #else
1722 #define IM_DEBUG_BREAK() IM_ASSERT(0) // It is expected that you define IM_DEBUG_BREAK() into something that will break nicely in a debugger!
1723 #endif
1724 #endif // #ifndef IM_DEBUG_BREAK
1725 
1726 // Test Engine Hooks (imgui_tests)
1727 //#define IMGUI_ENABLE_TEST_ENGINE
1728 #ifdef IMGUI_ENABLE_TEST_ENGINE
1729 extern void ImGuiTestEngineHook_PreNewFrame(ImGuiContext* ctx);
1730 extern void ImGuiTestEngineHook_PostNewFrame(ImGuiContext* ctx);
1731 extern void ImGuiTestEngineHook_ItemAdd(ImGuiContext* ctx, const ImRect& bb, ImGuiID id);
1732 extern void ImGuiTestEngineHook_ItemInfo(ImGuiContext* ctx, ImGuiID id, const char* label, ImGuiItemStatusFlags flags);
1733 extern void ImGuiTestEngineHook_Log(ImGuiContext* ctx, const char* fmt, ...);
1734 #define IMGUI_TEST_ENGINE_ITEM_ADD(_BB, _ID) ImGuiTestEngineHook_ItemAdd(&g, _BB, _ID) // Register item bounding box
1735 #define IMGUI_TEST_ENGINE_ITEM_INFO(_ID, _LABEL, _FLAGS) ImGuiTestEngineHook_ItemInfo(&g, _ID, _LABEL, _FLAGS) // Register item label and status flags (optional)
1736 #define IMGUI_TEST_ENGINE_LOG(_FMT, ...) ImGuiTestEngineHook_Log(&g, _FMT, __VA_ARGS__) // Custom log entry from user land into test log
1737 #else
1738 #define IMGUI_TEST_ENGINE_ITEM_ADD(_BB, _ID) do { } while (0)
1739 #define IMGUI_TEST_ENGINE_ITEM_INFO(_ID, _LABEL, _FLAGS) do { } while (0)
1740 #define IMGUI_TEST_ENGINE_LOG(_FMT, ...) do { } while (0)
1741 #endif
1742 
1743 #if defined(__clang__)
1744 #pragma clang diagnostic pop
1745 #elif defined(__GNUC__)
1746 #pragma GCC diagnostic pop
1747 #endif
1748 
1749 #ifdef _MSC_VER
1750 #pragma warning (pop)
1751 #endif
ImGuiWindow::SetWindowPosAllowFlags
ImGuiCond SetWindowPosAllowFlags
Definition: imgui_internal.h:1322
ImGuiWindow::Appearing
bool Appearing
Definition: imgui_internal.h:1308
ImGuiNextItemData::Flags
ImGuiNextItemDataFlags Flags
Definition: imgui_internal.h:825
ImGuiDragFlags_
ImGuiDragFlags_
Definition: imgui_internal.h:339
ImGuiAxis_Y
@ ImGuiAxis_Y
Definition: imgui_internal.h:444
ImGui::TreeNodeBehaviorIsOpen
IMGUI_API bool TreeNodeBehaviorIsOpen(ImGuiID id, ImGuiTreeNodeFlags flags=0)
Definition: imgui_widgets.cpp:5138
ImGui::SeparatorEx
IMGUI_API void SeparatorEx(ImGuiSeparatorFlags flags)
Definition: imgui_widgets.cpp:1220
ImGui::SliderCalcRatioFromValueT
IMGUI_API float SliderCalcRatioFromValueT(ImGuiDataType data_type, T v, T v_min, T v_max, float power, float linear_zero_pos)
ImGuiNextWindowDataFlags_HasSizeConstraint
@ ImGuiNextWindowDataFlags_HasSizeConstraint
Definition: imgui_internal.h:789
ImGuiTabBar::WantLayout
bool WantLayout
Definition: imgui_internal.h:1453
ImGui::IsPopupOpen
IMGUI_API bool IsPopupOpen(const char *str_id)
Definition: imgui.cpp:7437
ImGuiWindow::WindowPadding
ImVec2 WindowPadding
Definition: imgui_internal.h:1290
ImGuiContext::ActiveIdSource
ImGuiInputSource ActiveIdSource
Definition: imgui_internal.h:907
ImGuiLogType_Clipboard
@ ImGuiLogType_Clipboard
Definition: imgui_internal.h:436
ImGuiContext::DragDropPayloadBufLocal
unsigned char DragDropPayloadBufLocal[8]
Definition: imgui_internal.h:1000
ImGuiAxis_None
@ ImGuiAxis_None
Definition: imgui_internal.h:442
ImGuiNavMoveFlags
int ImGuiNavMoveFlags
Definition: imgui_internal.h:100
ImGuiSettingsHandler
Definition: imgui_internal.h:673
ImGuiLogType
ImGuiLogType
Definition: imgui_internal.h:430
ImDrawListSharedData::InitialFlags
ImDrawListFlags InitialFlags
Definition: imgui_internal.h:750
ImGuiContext::NavIdTabCounter
int NavIdTabCounter
Definition: imgui_internal.h:948
ImRect::IsInverted
bool IsInverted() const
Definition: imgui_internal.h:572
ImVec4::x
float x
Definition: imgui.h:194
ImGuiWindow::HiddenFramesCanSkipItems
int HiddenFramesCanSkipItems
Definition: imgui_internal.h:1320
ImGuiWindow::LastTimeActive
float LastTimeActive
Definition: imgui_internal.h:1341
ImGuiContext::NavScoringCount
int NavScoringCount
Definition: imgui_internal.h:940
ImRect::ImRect
ImRect(float x1, float y1, float x2, float y2)
Definition: imgui_internal.h:549
ImVec2ih::ImVec2ih
ImVec2ih()
Definition: imgui_internal.h:535
ImGuiContext::ActiveIdIsJustActivated
bool ActiveIdIsJustActivated
Definition: imgui_internal.h:898
ImGuiWindowTempData::ParentLayoutType
ImGuiLayoutType ParentLayoutType
Definition: imgui_internal.h:1227
ImGuiColumns::IsFirstFrame
bool IsFirstFrame
Definition: imgui_internal.h:713
ImGuiWindow::SetWindowPosPivot
ImVec2 SetWindowPosPivot
Definition: imgui_internal.h:1326
ImGui::RenderTextClipped
IMGUI_API void RenderTextClipped(const ImVec2 &pos_min, const ImVec2 &pos_max, const char *text, const char *text_end, const ImVec2 *text_size_if_known, const ImVec2 &align=ImVec2(0, 0), const ImRect *clip_rect=NULL)
Definition: imgui.cpp:2458
ImGuiItemFlags_Disabled
@ ImGuiItemFlags_Disabled
Definition: imgui_internal.h:388
ImGuiWindow::MoveId
ImGuiID MoveId
Definition: imgui_internal.h:1294
ImGuiWindowSettings
Definition: imgui_internal.h:662
ImGuiContext::LastActiveIdTimer
float LastActiveIdTimer
Definition: imgui_internal.h:914
ImGuiColumns::LineMinY
float LineMinY
Definition: imgui_internal.h:718
ImGuiWindow::ChildId
ImGuiID ChildId
Definition: imgui_internal.h:1295
ImGui::ScrollbarEx
IMGUI_API bool ScrollbarEx(const ImRect &bb, ImGuiID id, ImGuiAxis axis, float *p_scroll_v, float avail_v, float contents_v, ImDrawCornerFlags rounding_corners)
Definition: imgui_widgets.cpp:787
ImGui::GetItemID
ImGuiID GetItemID()
Definition: imgui_internal.h:1529
ImGuiNavDirSourceFlags_PadLStick
@ ImGuiNavDirSourceFlags_PadLStick
Definition: imgui_internal.h:488
ImGuiPtrOrIndex::Index
int Index
Definition: imgui_internal.h:847
ImGuiContext::NavDisableHighlight
bool NavDisableHighlight
Definition: imgui_internal.h:951
ImGuiItemHoveredDataBackup::Restore
void Restore() const
Definition: imgui_internal.h:1395
ImVector::resize
void resize(int new_size)
Definition: imgui.h:1263
ImGuiContext::TabBars
ImPool< ImGuiTabBar > TabBars
Definition: imgui_internal.h:1004
ImGuiTabItem::ImGuiTabItem
ImGuiTabItem()
Definition: imgui_internal.h:1428
ImGui::GetNavInputAmount2d
IMGUI_API ImVec2 GetNavInputAmount2d(ImGuiNavDirSourceFlags dir_sources, ImGuiInputReadMode mode, float slow_factor=0.0f, float fast_factor=0.0f)
Definition: imgui.cpp:8232
ImGuiContext::ActiveIdPreviousFrameHasBeenEditedBefore
bool ActiveIdPreviousFrameHasBeenEditedBefore
Definition: imgui_internal.h:910
ImGuiNextWindowData::SizeCallbackUserData
void * SizeCallbackUserData
Definition: imgui_internal.h:808
ImGuiContext::FocusRequestNextWindow
ImGuiWindow * FocusRequestNextWindow
Definition: imgui_internal.h:970
ImGuiContext::ActiveId
ImGuiID ActiveId
Definition: imgui_internal.h:895
ImGuiTabBar
Definition: imgui_internal.h:1432
ImGuiContext::NavMoveResultLocalVisibleSet
ImGuiNavMoveResult NavMoveResultLocalVisibleSet
Definition: imgui_internal.h:965
ImGui::RenderTextWrapped
IMGUI_API void RenderTextWrapped(ImVec2 pos, const char *text, const char *text_end, float wrap_width)
Definition: imgui.cpp:2412
ImGuiContext::DragDropMouseButton
int DragDropMouseButton
Definition: imgui_internal.h:990
ImGuiSliderFlags_None
@ ImGuiSliderFlags_None
Definition: imgui_internal.h:335
ImGuiStorage::Clear
void Clear()
Definition: imgui.h:1670
ImVector::clear
void clear()
Definition: imgui.h:1251
ImGuiInputSource_Mouse
@ ImGuiInputSource_Mouse
Definition: imgui_internal.h:456
ImGui::DragBehavior
IMGUI_API bool DragBehavior(ImGuiID id, ImGuiDataType data_type, void *v, float v_speed, const void *v_min, const void *v_max, const char *format, float power, ImGuiDragFlags flags)
Definition: imgui_widgets.cpp:2024
ImGui::BeginColumns
IMGUI_API void BeginColumns(const char *str_id, int count, ImGuiColumnsFlags flags=0)
Definition: imgui_widgets.cpp:7369
ImGuiNavLayer_Main
@ ImGuiNavLayer_Main
Definition: imgui_internal.h:512
ImGuiCond
int ImGuiCond
Definition: imgui.h:133
ImGuiButtonFlags_AlignTextBaseLine
@ ImGuiButtonFlags_AlignTextBaseLine
Definition: imgui_internal.h:325
ImGuiTabBar::Tabs
ImVector< ImGuiTabItem > Tabs
Definition: imgui_internal.h:1434
ImGuiContext::DebugItemPickerBreakID
ImGuiID DebugItemPickerBreakID
Definition: imgui_internal.h:1052
ImGuiWindow::WasActive
bool WasActive
Definition: imgui_internal.h:1303
ImGuiNavLayer_Menu
@ ImGuiNavLayer_Menu
Definition: imgui_internal.h:513
ImHashStr
IMGUI_API ImU32 ImHashStr(const char *data, size_t data_size=0, ImU32 seed=0)
Definition: imgui.cpp:1535
ImGuiContext::LogType
ImGuiLogType LogType
Definition: imgui_internal.h:1041
ImGui::ShrinkWidths
IMGUI_API void ShrinkWidths(ImGuiShrinkWidthItem *items, int count, float width_excess)
Definition: imgui_widgets.cpp:1365
ImGui::TabBarRemoveTab
IMGUI_API void TabBarRemoveTab(ImGuiTabBar *tab_bar, ImGuiID tab_id)
Definition: imgui_widgets.cpp:6665
ImGuiInputTextState::CursorAnim
float CursorAnim
Definition: imgui_internal.h:639
ImGuiWindow::MenuColumns
ImGuiMenuColumns MenuColumns
Definition: imgui_internal.h:1343
ImGuiDir
int ImGuiDir
Definition: imgui.h:135
ImFormatString
IMGUI_API int ImFormatString(char *buf, size_t buf_size, const char *fmt,...) IM_FMTARGS(3)
Definition: imgui.cpp:1459
ImGui::PushItemFlag
IMGUI_API void PushItemFlag(ImGuiItemFlags option, bool enabled)
Definition: imgui.cpp:6268
ImGuiSelectableFlags_DrawHoveredWhenHeld
@ ImGuiSelectableFlags_DrawHoveredWhenHeld
Definition: imgui_internal.h:364
ImGuiSelectableFlags_SetNavIdOnHover
@ ImGuiSelectableFlags_SetNavIdOnHover
Definition: imgui_internal.h:365
ImGuiWindow::ColumnsStorage
ImVector< ImGuiColumns > ColumnsStorage
Definition: imgui_internal.h:1345
ImDrawListSharedData::Font
ImFont * Font
Definition: imgui_internal.h:746
ImGuiContext::DragDropPayload
ImGuiPayload DragDropPayload
Definition: imgui_internal.h:991
ImGuiLogType_Buffer
@ ImGuiLogType_Buffer
Definition: imgui_internal.h:435
ImGui::SetCurrentFont
IMGUI_API void SetCurrentFont(ImFont *font)
Definition: imgui.cpp:6235
ImGuiTextBuffer
Definition: imgui.h:1626
ImGuiNextWindowData::MenuBarOffsetMinVal
ImVec2 MenuBarOffsetMinVal
Definition: imgui_internal.h:810
ImRect::ImRect
ImRect()
Definition: imgui_internal.h:546
ImRect
Definition: imgui_internal.h:541
ImGuiNextItemDataFlags_None
@ ImGuiNextItemDataFlags_None
Definition: imgui_internal.h:818
ImGuiWindow::ClipRect
ImRect ClipRect
Definition: imgui_internal.h:1337
ImStrnicmp
IMGUI_API int ImStrnicmp(const char *str1, const char *str2, size_t count)
Definition: imgui.cpp:1341
ImGuiIO::FontDefault
ImFont * FontDefault
Definition: imgui.h:1362
ImGui::RenderBullet
IMGUI_API void RenderBullet(ImDrawList *draw_list, ImVec2 pos, ImU32 col)
Definition: imgui.cpp:2612
ImGuiInputSource
ImGuiInputSource
Definition: imgui_internal.h:453
ImGuiItemHoveredDataBackup::LastItemStatusFlags
ImGuiItemStatusFlags LastItemStatusFlags
Definition: imgui_internal.h:1389
ImGuiWindowTempData::CursorMaxPos
ImVec2 CursorMaxPos
Definition: imgui_internal.h:1205
ImGuiButtonFlags_NoNavFocus
@ ImGuiButtonFlags_NoNavFocus
Definition: imgui_internal.h:329
ImGuiWindow::AutoFitFramesY
ImS8 AutoFitFramesY
Definition: imgui_internal.h:1316
ImGuiContext::DragDropAcceptIdCurr
ImGuiID DragDropAcceptIdCurr
Definition: imgui_internal.h:996
ImGui::IsKeyPressedMap
bool IsKeyPressedMap(ImGuiKey key, bool repeat=true)
Definition: imgui_internal.h:1588
ImGuiNavDirSourceFlags_Keyboard
@ ImGuiNavDirSourceFlags_Keyboard
Definition: imgui_internal.h:486
ImGuiContext::NavActivatePressedId
ImGuiID NavActivatePressedId
Definition: imgui_internal.h:932
ImBoolVector
Definition: imgui_internal.h:274
ImGuiColumns::Current
int Current
Definition: imgui_internal.h:715
ImGuiWindow::ScrollbarSizes
ImVec2 ScrollbarSizes
Definition: imgui_internal.h:1300
ImGuiWindow::Flags
ImGuiWindowFlags Flags
Definition: imgui_internal.h:1284
ImGui::GetHoveredID
IMGUI_API ImGuiID GetHoveredID()
Definition: imgui.cpp:2919
ImGuiGroupData::BackupActiveIdPreviousFrameIsAlive
bool BackupActiveIdPreviousFrameIsAlive
Definition: imgui_internal.h:610
ImGuiStorage::GetInt
IMGUI_API int GetInt(ImGuiID key, int default_val=0) const
Definition: imgui.cpp:1957
ImTriangleClosestPoint
IMGUI_API ImVec2 ImTriangleClosestPoint(const ImVec2 &a, const ImVec2 &b, const ImVec2 &c, const ImVec2 &p)
Definition: imgui.cpp:1317
ImGuiWindow::PopupId
ImGuiID PopupId
Definition: imgui_internal.h:1315
ImGuiWindowTempData::ChildWindows
ImVector< ImGuiWindow * > ChildWindows
Definition: imgui_internal.h:1224
ImGuiContext::NavNextActivateId
ImGuiID NavNextActivateId
Definition: imgui_internal.h:937
ImParseFormatFindStart
const IMGUI_API char * ImParseFormatFindStart(const char *format)
Definition: imgui_widgets.cpp:2760
ImGuiWindow::WantCollapseToggle
bool WantCollapseToggle
Definition: imgui_internal.h:1306
ImGuiTabBar::CurrFrameVisible
int CurrFrameVisible
Definition: imgui_internal.h:1439
ImGuiPlotType_Histogram
@ ImGuiPlotType_Histogram
Definition: imgui_internal.h:450
ImGuiContext::WantCaptureMouseNextFrame
int WantCaptureMouseNextFrame
Definition: imgui_internal.h:1058
ImVector::index_from_ptr
int index_from_ptr(const T *it) const
Definition: imgui.h:1280
ImGuiWindow::StateStorage
ImGuiStorage StateStorage
Definition: imgui_internal.h:1344
ImVec4::z
float z
Definition: imgui.h:194
ImGuiInputTextState::InitialTextA
ImVector< char > InitialTextA
Definition: imgui_internal.h:634
ImGuiGroupData::BackupCurrLineSize
ImVec2 BackupCurrLineSize
Definition: imgui_internal.h:607
ImGuiNavMoveFlags_AllowCurrentNavId
@ ImGuiNavMoveFlags_AllowCurrentNavId
Definition: imgui_internal.h:498
ImVec1
Definition: imgui_internal.h:524
ImGui::GetColumnNormFromOffset
IMGUI_API float GetColumnNormFromOffset(const ImGuiColumns *columns, float offset)
Definition: imgui_widgets.cpp:7209
ImGuiNavInput
int ImGuiNavInput
Definition: imgui.h:137
ImStrdup
IMGUI_API char * ImStrdup(const char *str)
Definition: imgui.cpp:1357
ImGuiInputTextState::CursorClamp
void CursorClamp()
Definition: imgui_internal.h:655
ImGuiContext::SettingsIniData
ImGuiTextBuffer SettingsIniData
Definition: imgui_internal.h:1035
ImGuiContext::SettingsLoaded
bool SettingsLoaded
Definition: imgui_internal.h:1033
ImGui::ItemHoverable
IMGUI_API bool ItemHoverable(const ImRect &bb, ImGuiID id)
Definition: imgui.cpp:3103
ImGuiGroupData
Definition: imgui_internal.h:601
ImGuiSliderFlags_
ImGuiSliderFlags_
Definition: imgui_internal.h:333
ImGuiTabItem::ID
ImGuiID ID
Definition: imgui_internal.h:1419
ImGuiInputTextState
Definition: imgui_internal.h:628
ImGuiInputSource_Nav
@ ImGuiInputSource_Nav
Definition: imgui_internal.h:457
ImGui::MarkIniSettingsDirty
IMGUI_API void MarkIniSettingsDirty()
Definition: imgui.cpp:9374
ImGui::UpdateMouseMovingWindowEndFrame
IMGUI_API void UpdateMouseMovingWindowEndFrame()
Definition: imgui.cpp:3403
ImGui::NavMoveRequestTryWrapping
IMGUI_API void NavMoveRequestTryWrapping(ImGuiWindow *window, ImGuiNavMoveFlags move_flags)
Definition: imgui.cpp:8093
ImGuiInputTextState::SelectAll
void SelectAll()
Definition: imgui_internal.h:658
ImGuiNextWindowDataFlags_HasCollapsed
@ ImGuiNextWindowDataFlags_HasCollapsed
Definition: imgui_internal.h:788
ImDrawListFlags
int ImDrawListFlags
Definition: imgui.h:141
ImGuiWindow::BeginCount
short BeginCount
Definition: imgui_internal.h:1312
ImGuiColumnData::Flags
ImGuiColumnsFlags Flags
Definition: imgui_internal.h:703
ImGuiButtonFlags_PressedOnClick
@ ImGuiButtonFlags_PressedOnClick
Definition: imgui_internal.h:318
ImGuiSeparatorFlags
int ImGuiSeparatorFlags
Definition: imgui_internal.h:103
ImRect::ClipWith
void ClipWith(const ImRect &r)
Definition: imgui_internal.h:569
ImDrawDataBuilder::FlattenIntoSingleLayer
IMGUI_API void FlattenIntoSingleLayer()
Definition: imgui.cpp:4106
ImGuiContext::LogEnabled
bool LogEnabled
Definition: imgui_internal.h:1040
ImGuiContext::SettingsWindows
ImVector< ImGuiWindowSettings > SettingsWindows
Definition: imgui_internal.h:1037
ImGuiNavMoveFlags_WrapY
@ ImGuiNavMoveFlags_WrapY
Definition: imgui_internal.h:497
ImGuiContext::FramerateSecPerFrameIdx
int FramerateSecPerFrameIdx
Definition: imgui_internal.h:1056
ImGuiWindowTempData::CurrentColumns
ImGuiColumns * CurrentColumns
Definition: imgui_internal.h:1244
ImGuiContext::DragDropActive
bool DragDropActive
Definition: imgui_internal.h:986
ImGuiContext::FrameCount
int FrameCount
Definition: imgui_internal.h:870
ImGuiButtonFlags_Disabled
@ ImGuiButtonFlags_Disabled
Definition: imgui_internal.h:324
ImGui::IsNavInputDown
bool IsNavInputDown(ImGuiNavInput n)
Definition: imgui_internal.h:1589
ImGui::PopItemFlag
IMGUI_API void PopItemFlag()
Definition: imgui.cpp:6278
ImGuiColumnData::OffsetNormBeforeResize
float OffsetNormBeforeResize
Definition: imgui_internal.h:702
ImGuiTabBar::ReorderRequestTabId
ImGuiID ReorderRequestTabId
Definition: imgui_internal.h:1451
ImGuiGroupData::BackupGroupOffset
ImVec1 BackupGroupOffset
Definition: imgui_internal.h:606
ImGuiMouseCursor_Arrow
@ ImGuiMouseCursor_Arrow
Definition: imgui.h:1174
ImGuiWindowTempData::MenuBarOffset
ImVec2 MenuBarOffset
Definition: imgui_internal.h:1223
ImGuiGroupData::BackupCursorMaxPos
ImVec2 BackupCursorMaxPos
Definition: imgui_internal.h:604
ImGuiWindowFlags_NoTitleBar
@ ImGuiWindowFlags_NoTitleBar
Definition: imgui.h:714
ImBoolVector::Clear
void Clear()
Definition: imgui_internal.h:279
ImGuiInputSource_None
@ ImGuiInputSource_None
Definition: imgui_internal.h:455
ImGui::DataTypeFormatString
IMGUI_API int DataTypeFormatString(char *buf, int buf_size, ImGuiDataType data_type, const void *data_ptr, const char *format)
Definition: imgui_widgets.cpp:1681
ImGuiWindowTempData
Definition: imgui_internal.h:1200
ImGuiWindow::OuterRectClipped
ImRect OuterRectClipped
Definition: imgui_internal.h:1333
ImTriangleBarycentricCoords
IMGUI_API void ImTriangleBarycentricCoords(const ImVec2 &a, const ImVec2 &b, const ImVec2 &c, const ImVec2 &p, float &out_u, float &out_v, float &out_w)
Definition: imgui.cpp:1306
ImGui::CalcTypematicPressedRepeatAmount
IMGUI_API int CalcTypematicPressedRepeatAmount(float t, float t_prev, float repeat_delay, float repeat_rate)
Definition: imgui.cpp:4399
ImGui::TabItemLabelAndCloseButton
IMGUI_API bool TabItemLabelAndCloseButton(ImDrawList *draw_list, const ImRect &bb, ImGuiTabItemFlags flags, ImVec2 frame_padding, const char *label, ImGuiID tab_id, ImGuiID close_button_id)
Definition: imgui_widgets.cpp:7119
ImGuiNavMoveFlags_AlsoScoreVisibleSet
@ ImGuiNavMoveFlags_AlsoScoreVisibleSet
Definition: imgui_internal.h:499
ImVec4
Definition: imgui.h:192
ImGuiContext::NextWindowData
ImGuiNextWindowData NextWindowData
Definition: imgui_internal.h:917
ImGuiContext::DragDropAcceptFlags
ImGuiDragDropFlags DragDropAcceptFlags
Definition: imgui_internal.h:994
ImGuiWindow::AutoPosLastDirection
ImGuiDir AutoPosLastDirection
Definition: imgui_internal.h:1319
ImParseFormatPrecision
IMGUI_API int ImParseFormatPrecision(const char *format, int default_value)
Definition: imgui_widgets.cpp:2809
ImGuiWindowTempData::GroupOffset
ImVec1 GroupOffset
Definition: imgui_internal.h:1242
ImGui::DataTypeApplyOp
IMGUI_API void DataTypeApplyOp(ImGuiDataType data_type, int op, void *output, void *arg_1, const void *arg_2)
Definition: imgui_widgets.cpp:1704
ImGuiNavMoveResult::SelectScopeId
ImGuiID SelectScopeId
Definition: imgui_internal.h:771
ImGuiWindowTempData::FocusCounterAll
int FocusCounterAll
Definition: imgui_internal.h:1228
ImGuiMenuColumns::Spacing
float Spacing
Definition: imgui_internal.h:617
ImGuiContext::ActiveIdAllowNavDirFlags
int ActiveIdAllowNavDirFlags
Definition: imgui_internal.h:903
ImRect::Max
ImVec2 Max
Definition: imgui_internal.h:544
ImGuiNextWindowData::ImGuiNextWindowData
ImGuiNextWindowData()
Definition: imgui_internal.h:812
ImGuiContext::Time
double Time
Definition: imgui_internal.h:869
ImGuiColumns::HostCursorMaxPosX
float HostCursorMaxPosX
Definition: imgui_internal.h:720
ImGuiContext::DragDropAcceptFrameCount
int DragDropAcceptFrameCount
Definition: imgui_internal.h:998
ImGuiInputTextState::SelectedAllMouseLock
bool SelectedAllMouseLock
Definition: imgui_internal.h:641
ImGuiContext::NavJustMovedToId
ImGuiID NavJustMovedToId
Definition: imgui_internal.h:935
IM_FMTARGS
#define IM_FMTARGS(FMT)
Definition: imgui.h:72
ImGuiWindow::MemoryCompacted
bool MemoryCompacted
Definition: imgui_internal.h:1360
ImGui::IsKeyPressed
IMGUI_API bool IsKeyPressed(int user_key_index, bool repeat=true)
Definition: imgui.cpp:4419
ImGuiTabBarFlags_DockNode
@ ImGuiTabBarFlags_DockNode
Definition: imgui_internal.h:1405
ImPool::GetSize
int GetSize() const
Definition: imgui_internal.h:306
ImGuiNavMoveResult::ID
ImGuiID ID
Definition: imgui_internal.h:770
ImGuiInputTextState::CursorFollow
bool CursorFollow
Definition: imgui_internal.h:640
ImGui::TabBarFindTabByID
IMGUI_API ImGuiTabItem * TabBarFindTabByID(ImGuiTabBar *tab_bar, ImGuiID tab_id)
Definition: imgui_widgets.cpp:6655
ImGuiMouseCursor
int ImGuiMouseCursor
Definition: imgui.h:138
ImTextStrToUtf8
IMGUI_API int ImTextStrToUtf8(char *buf, int buf_size, const ImWchar *in_text, const ImWchar *in_text_end)
Definition: imgui.cpp:1774
ImGui::GcAwakeTransientWindowBuffers
IMGUI_API void GcAwakeTransientWindowBuffers(ImGuiWindow *window)
Definition: imgui.cpp:2825
ImGui::SetWindowCollapsed
IMGUI_API void SetWindowCollapsed(bool collapsed, ImGuiCond cond=0)
Definition: imgui.cpp:6690
ImGuiContext::WheelingWindow
ImGuiWindow * WheelingWindow
Definition: imgui_internal.h:885
ImGuiNavMoveFlags_ScrollToEdge
@ ImGuiNavMoveFlags_ScrollToEdge
Definition: imgui_internal.h:500
ImGuiGroupData::EmitItem
bool EmitItem
Definition: imgui_internal.h:611
ImGuiNextWindowData::SizeVal
ImVec2 SizeVal
Definition: imgui_internal.h:803
ImGui::RenderCheckMark
IMGUI_API void RenderCheckMark(ImVec2 pos, ImU32 col, float sz)
Definition: imgui.cpp:2617
ImFontConfig
Definition: imgui.h:2002
ImFormatStringV
IMGUI_API int ImFormatStringV(char *buf, size_t buf_size, const char *fmt, va_list args) IM_FMTLIST(3)
Definition: imgui.cpp:1477
ImGuiInputTextState::BufCapacityA
int BufCapacityA
Definition: imgui_internal.h:636
ImGui::RenderArrowPointingAt
IMGUI_API void RenderArrowPointingAt(ImDrawList *draw_list, ImVec2 pos, ImVec2 half_sz, ImGuiDir direction, ImU32 col)
Definition: imgui_draw.cpp:3063
ImGuiSelectableFlagsPrivate_
ImGuiSelectableFlagsPrivate_
Definition: imgui_internal.h:357
ImPool::FreeIdx
ImPoolIdx FreeIdx
Definition: imgui_internal.h:292
ImGuiContext::FontAtlasOwnedByContext
bool FontAtlasOwnedByContext
Definition: imgui_internal.h:862
ImGuiNavLayer_COUNT
@ ImGuiNavLayer_COUNT
Definition: imgui_internal.h:514
ImGuiTabBar::LastTabContentHeight
float LastTabContentHeight
Definition: imgui_internal.h:1442
ImGuiContext::FrameScopeActive
bool FrameScopeActive
Definition: imgui_internal.h:860
ImGuiWindow::Collapsed
bool Collapsed
Definition: imgui_internal.h:1305
ImGuiInputReadMode_Repeat
@ ImGuiInputReadMode_Repeat
Definition: imgui_internal.h:469
ImRect::ClipWithFull
void ClipWithFull(const ImRect &r)
Definition: imgui_internal.h:570
ImGui::KeepAliveID
IMGUI_API void KeepAliveID(ImGuiID id)
Definition: imgui.cpp:2925
ImGui::SetHoveredID
IMGUI_API void SetHoveredID(ImGuiID id)
Definition: imgui.cpp:2910
ImGuiNextWindowData::CollapsedVal
bool CollapsedVal
Definition: imgui_internal.h:805
ImGuiAxis_X
@ ImGuiAxis_X
Definition: imgui_internal.h:443
ImGuiStyleMod::ImGuiStyleMod
ImGuiStyleMod(ImGuiStyleVar idx, float v)
Definition: imgui_internal.h:596
ImGuiWindow::BeginOrderWithinParent
short BeginOrderWithinParent
Definition: imgui_internal.h:1313
ImGuiContext::ShrinkWidthBuffer
ImVector< ImGuiShrinkWidthItem > ShrinkWidthBuffer
Definition: imgui_internal.h:1006
ImDrawDataBuilder::Clear
void Clear()
Definition: imgui_internal.h:763
ImGuiTextFlags_None
@ ImGuiTextFlags_None
Definition: imgui_internal.h:418
ImGuiTabBarFlags_SaveSettings
@ ImGuiTabBarFlags_SaveSettings
Definition: imgui_internal.h:1407
ImGuiWindow::MenuBarRect
ImRect MenuBarRect() const
Definition: imgui_internal.h:1382
ImGuiContext::NavWindowingTarget
ImGuiWindow * NavWindowingTarget
Definition: imgui_internal.h:941
ImGuiNavHighlightFlags
int ImGuiNavHighlightFlags
Definition: imgui_internal.h:98
ImGuiContext::NavIdIsAlive
bool NavIdIsAlive
Definition: imgui_internal.h:949
ImVec1::x
float x
Definition: imgui_internal.h:526
ImGuiNavLayer
ImGuiNavLayer
Definition: imgui_internal.h:510
ImGui::DataTypeGetInfo
const IMGUI_API ImGuiDataTypeInfo * DataTypeGetInfo(ImGuiDataType data_type)
Definition: imgui_widgets.cpp:1675
ImGuiColumnsFlags_NoBorder
@ ImGuiColumnsFlags_NoBorder
Definition: imgui_internal.h:349
ImRect::GetHeight
float GetHeight() const
Definition: imgui_internal.h:554
ImGuiWindow::SetWindowSizeAllowFlags
ImGuiCond SetWindowSizeAllowFlags
Definition: imgui_internal.h:1323
ImGui::RenderNavHighlight
IMGUI_API void RenderNavHighlight(const ImRect &bb, ImGuiID id, ImGuiNavHighlightFlags flags=ImGuiNavHighlightFlags_TypeDefault)
Definition: imgui.cpp:2635
ImPool::Reserve
void Reserve(int capacity)
Definition: imgui_internal.h:305
ImGui::ItemAdd
IMGUI_API bool ItemAdd(const ImRect &bb, ImGuiID id, const ImRect *nav_bb=NULL)
Definition: imgui.cpp:3004
ImVec1::ImVec1
ImVec1()
Definition: imgui_internal.h:527
ImGuiNavDirSourceFlags_None
@ ImGuiNavDirSourceFlags_None
Definition: imgui_internal.h:485
ImGuiContext::NavScoringRectScreen
ImRect NavScoringRectScreen
Definition: imgui_internal.h:939
ImDrawList
Definition: imgui.h:1881
ImGuiIO
Definition: imgui.h:1338
ImGuiTabItemFlags_NoCloseButton
@ ImGuiTabItemFlags_NoCloseButton
Definition: imgui_internal.h:1413
ImGuiNavMoveResult::DistBox
float DistBox
Definition: imgui_internal.h:773
ImGuiWindowTempData::ItemWidth
float ItemWidth
Definition: imgui_internal.h:1233
ImGuiPopupData::PopupId
ImGuiID PopupId
Definition: imgui_internal.h:688
ImGuiContext::DragDropTargetRect
ImRect DragDropTargetRect
Definition: imgui_internal.h:992
ImPool::Data
ImVector< T > Data
Definition: imgui_internal.h:290
ImGuiStyleMod::VarIdx
ImGuiStyleVar VarIdx
Definition: imgui_internal.h:593
ImGuiWindowTempData::NavLayerCurrent
ImGuiNavLayer NavLayerCurrent
Definition: imgui_internal.h:1216
ImGui::RenderText
IMGUI_API void RenderText(ImVec2 pos, const char *text, const char *text_end=NULL, bool hide_text_after_hash=true)
Definition: imgui.cpp:2386
ImGuiNextItemDataFlags
int ImGuiNextItemDataFlags
Definition: imgui_internal.h:101
ImFontAtlas
Definition: imgui.h:2090
ImGui::RoundScalarWithFormatT
IMGUI_API T RoundScalarWithFormatT(const char *format, ImGuiDataType data_type, T v)
ImGuiSliderFlags
int ImGuiSliderFlags
Definition: imgui_internal.h:104
ImGuiWindow::ItemWidthDefault
float ItemWidthDefault
Definition: imgui_internal.h:1342
ImGui::GetCurrentWindowRead
ImGuiWindow * GetCurrentWindowRead()
Definition: imgui_internal.h:1479
ImDrawDataBuilder::ClearFreeMemory
void ClearFreeMemory()
Definition: imgui_internal.h:764
ImGui::FindRenderedTextEnd
const IMGUI_API char * FindRenderedTextEnd(const char *text, const char *text_end=NULL)
Definition: imgui.cpp:2373
ImGuiWindow::CalcFontSize
float CalcFontSize() const
Definition: imgui_internal.h:1378
ImGui::DataTypeApplyOpFromText
IMGUI_API bool DataTypeApplyOpFromText(const char *buf, const char *initial_value_buf, ImGuiDataType data_type, void *data_ptr, const char *format)
Definition: imgui_widgets.cpp:1756
ImGuiInputTextState::UserCallback
ImGuiInputTextCallback UserCallback
Definition: imgui_internal.h:643
ImGuiWindow::Rect
ImRect Rect() const
Definition: imgui_internal.h:1377
ImParseFormatFindEnd
const IMGUI_API char * ImParseFormatFindEnd(const char *format)
Definition: imgui_widgets.cpp:2773
ImBoolVector::GetBit
bool GetBit(int n) const
Definition: imgui_internal.h:280
ImGuiPopupPositionPolicy_ComboBox
@ ImGuiPopupPositionPolicy_ComboBox
Definition: imgui_internal.h:520
ImGuiContext::DragDropPayloadBufHeap
ImVector< unsigned char > DragDropPayloadBufHeap
Definition: imgui_internal.h:999
ImGuiButtonFlags_PressedOnRelease
@ ImGuiButtonFlags_PressedOnRelease
Definition: imgui_internal.h:319
ImGuiItemHoveredDataBackup::Backup
void Backup()
Definition: imgui_internal.h:1394
ImGuiContext::NavMoveRequest
bool NavMoveRequest
Definition: imgui_internal.h:959
ImGuiWindow::SizeFull
ImVec2 SizeFull
Definition: imgui_internal.h:1287
ImGui::ColorTooltip
IMGUI_API void ColorTooltip(const char *text, const float *col, ImGuiColorEditFlags flags)
Definition: imgui_widgets.cpp:4918
ImGuiWindow::MemoryDrawListIdxCapacity
int MemoryDrawListIdxCapacity
Definition: imgui_internal.h:1361
ImGuiNavMoveResult::RectRel
ImRect RectRel
Definition: imgui_internal.h:776
ImU32
unsigned int ImU32
Definition: imgui.h:165
ImVec2::x
float x
Definition: imgui.h:181
ImPool::GetOrAddByKey
T * GetOrAddByKey(ImGuiID key)
Definition: imgui_internal.h:299
ImGuiButtonFlags
int ImGuiButtonFlags
Definition: imgui_internal.h:93
ImGuiWindowTempData::LastItemStatusFlags
ImGuiItemStatusFlags LastItemStatusFlags
Definition: imgui_internal.h:1213
ImGui::FocusableItemRegister
IMGUI_API bool FocusableItemRegister(ImGuiWindow *window, ImGuiID id)
Definition: imgui.cpp:3148
ImGuiContext::WindowsById
ImGuiStorage WindowsById
Definition: imgui_internal.h:879
ImBoolVector::Storage
ImVector< int > Storage
Definition: imgui_internal.h:276
ImRect::GetWidth
float GetWidth() const
Definition: imgui_internal.h:553
ImGuiWindow::Hidden
bool Hidden
Definition: imgui_internal.h:1309
ImGuiInputTextState::UserFlags
ImGuiInputTextFlags UserFlags
Definition: imgui_internal.h:642
ImGui::ClearActiveID
IMGUI_API void ClearActiveID()
Definition: imgui.cpp:2905
ImGuiWindowTempData::ItemFlags
ImGuiItemFlags ItemFlags
Definition: imgui_internal.h:1232
ImGuiInputSource_NavGamepad
@ ImGuiInputSource_NavGamepad
Definition: imgui_internal.h:459
ImGui::FocusableItemUnregister
IMGUI_API void FocusableItemUnregister(ImGuiWindow *window)
Definition: imgui.cpp:3185
ImGuiNavMoveFlags_None
@ ImGuiNavMoveFlags_None
Definition: imgui_internal.h:493
ImGuiContext::ActiveIdHasBeenPressedBefore
bool ActiveIdHasBeenPressedBefore
Definition: imgui_internal.h:900
ImGuiContext::FontSize
float FontSize
Definition: imgui_internal.h:866
ImGuiContext::NavWindowingTimer
float NavWindowingTimer
Definition: imgui_internal.h:944
ImGuiNavForward
ImGuiNavForward
Definition: imgui_internal.h:503
ImGuiContext::Style
ImGuiStyle Style
Definition: imgui_internal.h:864
ImGuiInputTextState::GetRedoAvailCount
int GetRedoAvailCount() const
Definition: imgui_internal.h:650
ImGuiButtonFlags_NoHoveredOnNav
@ ImGuiButtonFlags_NoHoveredOnNav
Definition: imgui_internal.h:330
ImGuiTabBarFlags
int ImGuiTabBarFlags
Definition: imgui.h:152
ImGuiContext::ImGuiContext
ImGuiContext(ImFontAtlas *shared_font_atlas)
Definition: imgui_internal.h:1063
ImGuiColumns::Flags
ImGuiColumnsFlags Flags
Definition: imgui_internal.h:712
ImGuiIO::NavInputs
float NavInputs[ImGuiNavInput_COUNT]
Definition: imgui.h:1418
ImGui::NavMoveRequestCancel
IMGUI_API void NavMoveRequestCancel()
Definition: imgui.cpp:8074
ImPool::Contains
bool Contains(const T *p) const
Definition: imgui_internal.h:300
ImGuiNextWindowData::PosVal
ImVec2 PosVal
Definition: imgui_internal.h:801
ImGuiTextFlags_
ImGuiTextFlags_
Definition: imgui_internal.h:416
ImStrbolW
const IMGUI_API ImWchar * ImStrbolW(const ImWchar *buf_mid_line, const ImWchar *buf_begin)
Definition: imgui.cpp:1399
IMGUI_API
#define IMGUI_API
Definition: imgui.h:57
ImGuiContext::WheelingWindowTimer
float WheelingWindowTimer
Definition: imgui_internal.h:887
ImGuiContext::MultiSelectScopeId
ImGuiID MultiSelectScopeId
Definition: imgui_internal.h:1026
ImGuiStorage::Data
ImVector< ImGuiStoragePair > Data
Definition: imgui.h:1665
ImGuiContext::NavWindowingHighlightAlpha
float NavWindowingHighlightAlpha
Definition: imgui_internal.h:945
ImVec1::ImVec1
ImVec1(float _x)
Definition: imgui_internal.h:528
ImGuiItemFlags_NoNavDefaultFocus
@ ImGuiItemFlags_NoNavDefaultFocus
Definition: imgui_internal.h:390
ImVec2
Definition: imgui.h:179
ImGuiTextFlags_NoWidthForLargeClippedText
@ ImGuiTextFlags_NoWidthForLargeClippedText
Definition: imgui_internal.h:419
ImGuiContext::ActiveIdAllowOverlap
bool ActiveIdAllowOverlap
Definition: imgui_internal.h:899
ImGuiInputReadMode_RepeatFast
@ ImGuiInputReadMode_RepeatFast
Definition: imgui_internal.h:471
ImGui::SetScrollX
IMGUI_API void SetScrollX(float scroll_x)
Definition: imgui.cpp:7280
ImGui::FocusWindow
IMGUI_API void FocusWindow(ImGuiWindow *window)
Definition: imgui.cpp:6089
ImVec2ih::ImVec2ih
ImVec2ih(short _x, short _y)
Definition: imgui_internal.h:536
ImGuiContext::ActiveIdBlockNavInputFlags
int ActiveIdBlockNavInputFlags
Definition: imgui_internal.h:904
ImGuiTabBar::GetTabOrder
int GetTabOrder(const ImGuiTabItem *tab) const
Definition: imgui_internal.h:1460
ImFontAtlasBuildRegisterDefaultCustomRects
IMGUI_API void ImFontAtlasBuildRegisterDefaultCustomRects(ImFontAtlas *atlas)
Definition: imgui_draw.cpp:2101
ImGuiSettingsHandler::TypeName
const char * TypeName
Definition: imgui_internal.h:675
ImGuiContext::ActiveIdHasBeenEditedBefore
bool ActiveIdHasBeenEditedBefore
Definition: imgui_internal.h:901
ImFont
Definition: imgui.h:2180
ImGuiWindowTempData::TreeMayJumpToParentOnPopMask
ImU32 TreeMayJumpToParentOnPopMask
Definition: imgui_internal.h:1211
ImGuiContext::IO
ImGuiIO IO
Definition: imgui_internal.h:863
ImGuiTabItem::WidthContents
float WidthContents
Definition: imgui_internal.h:1426
ImRect::Contains
bool Contains(const ImVec2 &p) const
Definition: imgui_internal.h:559
ImGui::BeginTooltipEx
IMGUI_API void BeginTooltipEx(ImGuiWindowFlags extra_flags, bool override_previous_tooltip=true)
Definition: imgui.cpp:7384
ImGuiNavHighlightFlags_
ImGuiNavHighlightFlags_
Definition: imgui_internal.h:474
ImGuiPtrOrIndex
Definition: imgui_internal.h:844
ImGui::GetNavInputAmount
IMGUI_API float GetNavInputAmount(ImGuiNavInput n, ImGuiInputReadMode mode)
Definition: imgui.cpp:8210
ImGuiTabBar::BarRect
ImRect BarRect
Definition: imgui_internal.h:1441
ImGuiTabItem::LastFrameVisible
int LastFrameVisible
Definition: imgui_internal.h:1421
ImGui::GetColorU32
IMGUI_API ImU32 GetColorU32(ImGuiCol idx, float alpha_mul=1.0f)
Definition: imgui.cpp:1880
ImGuiContext::NavLayer
ImGuiNavLayer NavLayer
Definition: imgui_internal.h:947
ImGuiColumns::HostClipRect
ImRect HostClipRect
Definition: imgui_internal.h:721
ImGuiContext::NavInitResultRectRel
ImRect NavInitResultRectRel
Definition: imgui_internal.h:957
ImGuiInputTextFlags
int ImGuiInputTextFlags
Definition: imgui.h:150
ImGuiWindow::WindowBorderSize
float WindowBorderSize
Definition: imgui_internal.h:1292
ImGuiStorage::SetInt
IMGUI_API void SetInt(ImGuiID key, int val)
Definition: imgui.cpp:2017
ImGuiContext::ColorModifiers
ImVector< ImGuiColorMod > ColorModifiers
Definition: imgui_internal.h:921
ImGui::ClosePopupsOverWindow
IMGUI_API void ClosePopupsOverWindow(ImGuiWindow *ref_window, bool restore_focus_to_window_under_popup)
Definition: imgui.cpp:7518
ImGuiNextWindowDataFlags_HasPos
@ ImGuiNextWindowDataFlags_HasPos
Definition: imgui_internal.h:785
ImGui::FindSettingsHandler
IMGUI_API ImGuiSettingsHandler * FindSettingsHandler(const char *type_name)
Definition: imgui.cpp:9431
ImGuiWindow::ID
ImGuiID ID
Definition: imgui_internal.h:1283
ImGuiIO::Fonts
ImFontAtlas * Fonts
Definition: imgui.h:1359
ImGuiSeparatorFlags_SpanAllColumns
@ ImGuiSeparatorFlags_SpanAllColumns
Definition: imgui_internal.h:379
ImGui::SetNavID
IMGUI_API void SetNavID(ImGuiID id, int nav_layer)
Definition: imgui.cpp:2835
imstb_textedit.h
ImGui::CalcWrapWidthForPos
IMGUI_API float CalcWrapWidthForPos(const ImVec2 &pos, float wrap_pos_x)
Definition: imgui.cpp:3191
ImGuiTreeNodeFlags
int ImGuiTreeNodeFlags
Definition: imgui.h:154
ImGuiWindowTempData::FocusCounterTab
int FocusCounterTab
Definition: imgui_internal.h:1229
ImGuiContext::FocusTabPressed
bool FocusTabPressed
Definition: imgui_internal.h:975
ImDrawDataBuilder
Definition: imgui_internal.h:759
ImGui::GetForegroundDrawList
IMGUI_API ImDrawList * GetForegroundDrawList()
Definition: imgui.cpp:3334
ImGuiPtrOrIndex::ImGuiPtrOrIndex
ImGuiPtrOrIndex(int index)
Definition: imgui_internal.h:850
ImGuiWindow::SetWindowCollapsedAllowFlags
ImGuiCond SetWindowCollapsedAllowFlags
Definition: imgui_internal.h:1324
ImGuiContext::NavDisableMouseHover
bool NavDisableMouseHover
Definition: imgui_internal.h:952
ImGuiWindowTempData::CursorPosPrevLine
ImVec2 CursorPosPrevLine
Definition: imgui_internal.h:1203
ImGuiColumnsFlags
int ImGuiColumnsFlags
Definition: imgui_internal.h:94
ImGui::GetActiveID
ImGuiID GetActiveID()
Definition: imgui_internal.h:1530
ImGui::UpdateHoveredWindowAndCaptureFlags
IMGUI_API void UpdateHoveredWindowAndCaptureFlags()
Definition: imgui.cpp:3603
ImFontAtlasBuildPackCustomRects
IMGUI_API void ImFontAtlasBuildPackCustomRects(ImFontAtlas *atlas, void *stbrp_context_opaque)
Definition: imgui_draw.cpp:2125
ImGuiStyleMod::BackupInt
int BackupInt[2]
Definition: imgui_internal.h:594
ImGuiContext::NavMoveRequestForward
ImGuiNavForward NavMoveRequestForward
Definition: imgui_internal.h:961
ImGuiItemHoveredDataBackup
Definition: imgui_internal.h:1386
ImGuiNavMoveResult::DistCenter
float DistCenter
Definition: imgui_internal.h:774
ImGuiPopupPositionPolicy
ImGuiPopupPositionPolicy
Definition: imgui_internal.h:517
ImGuiWindowSettings::ID
ImGuiID ID
Definition: imgui_internal.h:665
ImGuiNavMoveResult::ImGuiNavMoveResult
ImGuiNavMoveResult()
Definition: imgui_internal.h:778
ImGuiSelectableFlags_PressedOnClick
@ ImGuiSelectableFlags_PressedOnClick
Definition: imgui_internal.h:361
ImGuiTabBar::SelectedTabId
ImGuiID SelectedTabId
Definition: imgui_internal.h:1436
ImGuiTabBar::ID
ImGuiID ID
Definition: imgui_internal.h:1435
ImFontAtlas::Fonts
ImVector< ImFont * > Fonts
Definition: imgui.h:2167
ImGuiNavMoveFlags_WrapX
@ ImGuiNavMoveFlags_WrapX
Definition: imgui_internal.h:496
ImGuiWindowTempData::TreeDepth
int TreeDepth
Definition: imgui_internal.h:1210
ImGuiButtonFlags_Repeat
@ ImGuiButtonFlags_Repeat
Definition: imgui_internal.h:316
ImGuiContext::LogDepthToExpand
int LogDepthToExpand
Definition: imgui_internal.h:1047
ImGuiWindow::ScrollbarY
bool ScrollbarY
Definition: imgui_internal.h:1301
ImRect::ImRect
ImRect(const ImVec4 &v)
Definition: imgui_internal.h:548
ImStrncpy
IMGUI_API void ImStrncpy(char *dst, const char *src, size_t count)
Definition: imgui.cpp:1348
ImGuiContext::NavWindowingToggleLayer
bool NavWindowingToggleLayer
Definition: imgui_internal.h:946
ImGuiItemStatusFlags_None
@ ImGuiItemStatusFlags_None
Definition: imgui_internal.h:399
ImGuiContext::DrawListSharedData
ImDrawListSharedData DrawListSharedData
Definition: imgui_internal.h:868
ImGui::TabItemCalcSize
IMGUI_API ImVec2 TabItemCalcSize(const char *label, bool has_close_button)
Definition: imgui_widgets.cpp:7080
ImGuiContext::ColorEditLastColor
float ColorEditLastColor[3]
Definition: imgui_internal.h:1015
ImGuiWindowTempData::CurrLineSize
ImVec2 CurrLineSize
Definition: imgui_internal.h:1206
ImGuiInputTextState::CursorAnimReset
void CursorAnimReset()
Definition: imgui_internal.h:654
ImGuiWindow::RootWindowForNav
ImGuiWindow * RootWindowForNav
Definition: imgui_internal.h:1354
ImGuiStyleMod::ImGuiStyleMod
ImGuiStyleMod(ImGuiStyleVar idx, ImVec2 v)
Definition: imgui_internal.h:597
ImGui::FindBestWindowPosForPopup
IMGUI_API ImVec2 FindBestWindowPosForPopup(ImGuiWindow *window)
Definition: imgui.cpp:7787
ImGuiButtonFlags_NoKeyModifiers
@ ImGuiButtonFlags_NoKeyModifiers
Definition: imgui_internal.h:326
ImRect::GetTL
ImVec2 GetTL() const
Definition: imgui_internal.h:555
ImGuiContext::LogDepthRef
int LogDepthRef
Definition: imgui_internal.h:1046
ImGuiNavDirSourceFlags_PadDPad
@ ImGuiNavDirSourceFlags_PadDPad
Definition: imgui_internal.h:487
ImGuiNavDirSourceFlags_
ImGuiNavDirSourceFlags_
Definition: imgui_internal.h:483
ImGui::GcCompactTransientWindowBuffers
IMGUI_API void GcCompactTransientWindowBuffers(ImGuiWindow *window)
Definition: imgui.cpp:2811
ImGuiWindowTempData::PrevLineTextBaseOffset
float PrevLineTextBaseOffset
Definition: imgui_internal.h:1209
ImGuiWindow::TitleBarHeight
float TitleBarHeight() const
Definition: imgui_internal.h:1379
ImGuiWindowTempData::NavHideHighlightOneFrame
bool NavHideHighlightOneFrame
Definition: imgui_internal.h:1220
ImGuiColumnsFlags_NoForceWithinWindow
@ ImGuiColumnsFlags_NoForceWithinWindow
Definition: imgui_internal.h:352
ImGuiTabItem::Flags
ImGuiTabItemFlags Flags
Definition: imgui_internal.h:1420
ImGuiColumns
Definition: imgui_internal.h:709
ImGuiStorage::GetIntRef
IMGUI_API int * GetIntRef(ImGuiID key, int default_val=0)
Definition: imgui.cpp:1987
ImGuiWindowTempData::Indent
ImVec1 Indent
Definition: imgui_internal.h:1241
ImGui::BeginPopupEx
IMGUI_API bool BeginPopupEx(ImGuiID id, ImGuiWindowFlags extra_flags)
Definition: imgui.cpp:7611
ImGuiColumnsFlags_NoResize
@ ImGuiColumnsFlags_NoResize
Definition: imgui_internal.h:350
ImGuiInputSource_COUNT
@ ImGuiInputSource_COUNT
Definition: imgui_internal.h:460
ImPool::GetByIndex
T * GetByIndex(ImPoolIdx n)
Definition: imgui_internal.h:297
ImGuiPopupData::OpenFrameCount
int OpenFrameCount
Definition: imgui_internal.h:691
ImGui::FindWindowByName
IMGUI_API ImGuiWindow * FindWindowByName(const char *name)
Definition: imgui.cpp:4852
ImHashData
IMGUI_API ImU32 ImHashData(const void *data, size_t data_size, ImU32 seed=0)
Definition: imgui.cpp:1519
ImGuiWindowSettings::Pos
ImVec2ih Pos
Definition: imgui_internal.h:666
ImGuiWindow::SetWindowPosVal
ImVec2 SetWindowPosVal
Definition: imgui_internal.h:1325
ImGuiWindow::ScrollTargetCenterRatio
ImVec2 ScrollTargetCenterRatio
Definition: imgui_internal.h:1299
ImGuiItemFlags
int ImGuiItemFlags
Definition: imgui_internal.h:96
ImGuiNavForward_ForwardActive
@ ImGuiNavForward_ForwardActive
Definition: imgui_internal.h:507
ImGuiNavMoveFlags_LoopX
@ ImGuiNavMoveFlags_LoopX
Definition: imgui_internal.h:494
ImGui::FindOrCreateWindowSettings
IMGUI_API ImGuiWindowSettings * FindOrCreateWindowSettings(const char *name)
Definition: imgui.cpp:9414
ImGuiNextItemData::ClearFlags
void ClearFlags()
Definition: imgui_internal.h:831
ImGuiColumns::Columns
ImVector< ImGuiColumnData > Columns
Definition: imgui_internal.h:723
ImGuiNavMoveFlags_LoopY
@ ImGuiNavMoveFlags_LoopY
Definition: imgui_internal.h:495
ImGuiButtonFlags_PressedOnDragDropHold
@ ImGuiButtonFlags_PressedOnDragDropHold
Definition: imgui_internal.h:328
ImGui::OpenPopupEx
IMGUI_API void OpenPopupEx(ImGuiID id)
Definition: imgui.cpp:7463
ImGuiContext::FrameScopePushedImplicitWindow
bool FrameScopePushedImplicitWindow
Definition: imgui_internal.h:861
ImGuiSettingsHandler::ReadLineFn
void(* ReadLineFn)(ImGuiContext *ctx, ImGuiSettingsHandler *handler, void *entry, const char *line)
Definition: imgui_internal.h:678
ImGuiSettingsHandler::ImGuiSettingsHandler
ImGuiSettingsHandler()
Definition: imgui_internal.h:682
ImGuiInputTextState::HasSelection
bool HasSelection() const
Definition: imgui_internal.h:656
ImGui::GetDefaultFont
ImFont * GetDefaultFont()
Definition: imgui_internal.h:1500
ImGuiWindow::DC
ImGuiWindowTempData DC
Definition: imgui_internal.h:1329
ImGuiWindowTempData::NavLayerActiveMaskNext
int NavLayerActiveMaskNext
Definition: imgui_internal.h:1219
y
font DisplayOffset y
Definition: README.txt:68
ImGuiContext::NavAnyRequest
bool NavAnyRequest
Definition: imgui_internal.h:953
NULL
Add a fourth parameter to bake specific font ranges NULL
Definition: README.txt:57
ImGuiLogType_File
@ ImGuiLogType_File
Definition: imgui_internal.h:434
ImGuiWindowTempData::LayoutType
ImGuiLayoutType LayoutType
Definition: imgui_internal.h:1226
ImGuiButtonFlags_PressedOnClickRelease
@ ImGuiButtonFlags_PressedOnClickRelease
Definition: imgui_internal.h:317
ImGuiWindow::WorkRect
ImRect WorkRect
Definition: imgui_internal.h:1336
ImGui::BringWindowToFocusFront
IMGUI_API void BringWindowToFocusFront(ImGuiWindow *window)
Definition: imgui.cpp:6045
ImGuiWindowTempData::TextWrapPosStack
ImVector< float > TextWrapPosStack
Definition: imgui_internal.h:1237
ImGuiContext::HoveredRootWindow
ImGuiWindow * HoveredRootWindow
Definition: imgui_internal.h:883
ImGui::DragBehaviorT
IMGUI_API bool DragBehaviorT(ImGuiDataType data_type, T *v, float v_speed, T v_min, T v_max, const char *format, float power, ImGuiDragFlags flags)
ImGuiContext::NavInputId
ImGuiID NavInputId
Definition: imgui_internal.h:933
ImGuiNextWindowData::SizeConstraintRect
ImRect SizeConstraintRect
Definition: imgui_internal.h:806
ImGui::MarkItemEdited
IMGUI_API void MarkItemEdited(ImGuiID id)
Definition: imgui.cpp:2934
ImGui::GetWindowAllowedExtentRect
IMGUI_API ImRect GetWindowAllowedExtentRect(ImGuiWindow *window)
Definition: imgui.cpp:7778
ImGuiItemStatusFlags_ToggledSelection
@ ImGuiItemStatusFlags_ToggledSelection
Definition: imgui_internal.h:403
ImGuiTabBar::Flags
ImGuiTabBarFlags Flags
Definition: imgui_internal.h:1450
ImGuiNextItemData::ImGuiNextItemData
ImGuiNextItemData()
Definition: imgui_internal.h:830
ImVec2ih::y
short y
Definition: imgui_internal.h:534
ImGuiWindow::LastFrameActive
int LastFrameActive
Definition: imgui_internal.h:1340
ImGuiPopupData::ImGuiPopupData
ImGuiPopupData()
Definition: imgui_internal.h:696
ImRect::TranslateY
void TranslateY(float dy)
Definition: imgui_internal.h:568
ImGuiWindow::Pos
ImVec2 Pos
Definition: imgui_internal.h:1285
ImGui::SetScrollFromPosY
IMGUI_API void SetScrollFromPosY(float local_y, float center_y_ratio=0.5f)
Definition: imgui.cpp:7331
ImGui::SetActiveID
IMGUI_API void SetActiveID(ImGuiID id, ImGuiWindow *window)
Definition: imgui.cpp:2854
ImGui::FindOrCreateColumns
IMGUI_API ImGuiColumns * FindOrCreateColumns(ImGuiWindow *window, ImGuiID id)
Definition: imgui_widgets.cpp:7343
ImGuiNextWindowData::PosPivotVal
ImVec2 PosPivotVal
Definition: imgui_internal.h:802
GImGui
IMGUI_API ImGuiContext * GImGui
Definition: imgui.cpp:1106
ImGuiWindow::HasCloseButton
bool HasCloseButton
Definition: imgui_internal.h:1310
ImGui::NavInitWindow
IMGUI_API void NavInitWindow(ImGuiWindow *window, bool force_reinit)
Definition: imgui.cpp:8167
ImGui::PushColumnsBackground
IMGUI_API void PushColumnsBackground()
Definition: imgui_widgets.cpp:7320
ImGuiShrinkWidthItem::Index
int Index
Definition: imgui_internal.h:840
ImGuiItemHoveredDataBackup::LastItemDisplayRect
ImRect LastItemDisplayRect
Definition: imgui_internal.h:1391
ImGuiStyle::FramePadding
ImVec2 FramePadding
Definition: imgui.h:1303
ImGuiContext::DragDropTargetId
ImGuiID DragDropTargetId
Definition: imgui_internal.h:993
ImGuiPopupData
Definition: imgui_internal.h:686
ImGuiInputTextState::Stb
ImStb::STB_TexteditState Stb
Definition: imgui_internal.h:638
ImGuiContext
Definition: imgui_internal.h:857
ImGuiDataTypeInfo::ScanFmt
const char * ScanFmt
Definition: imgui_internal.h:580
ImGuiContext::BackgroundDrawList
ImDrawList BackgroundDrawList
Definition: imgui_internal.h:981
ImGuiInputReadMode
ImGuiInputReadMode
Definition: imgui_internal.h:464
ImGuiLayoutType_Vertical
@ ImGuiLayoutType_Vertical
Definition: imgui_internal.h:427
ImGuiStyle
Definition: imgui.h:1290
ImGuiContext::ActiveIdWindow
ImGuiWindow * ActiveIdWindow
Definition: imgui_internal.h:906
ImGui::LogRenderedText
IMGUI_API void LogRenderedText(const ImVec2 *ref_pos, const char *text, const char *text_end=NULL)
Definition: imgui.cpp:9196
ImGuiNextWindowData::ClearFlags
void ClearFlags()
Definition: imgui_internal.h:813
ImGuiItemHoveredDataBackup::ImGuiItemHoveredDataBackup
ImGuiItemHoveredDataBackup()
Definition: imgui_internal.h:1393
ImGuiContext::NavMoveResultLocal
ImGuiNavMoveResult NavMoveResultLocal
Definition: imgui_internal.h:964
ImGuiDir_None
@ ImGuiDir_None
Definition: imgui.h:926
ImRect::GetBR
ImVec2 GetBR() const
Definition: imgui_internal.h:558
ImGuiWindowTempData::ItemWidthStack
ImVector< float > ItemWidthStack
Definition: imgui_internal.h:1236
ImGuiNextWindowData::ContentSizeVal
ImVec2 ContentSizeVal
Definition: imgui_internal.h:804
ImGuiColorMod
Definition: imgui_internal.h:584
ImGui::RenderMouseCursor
IMGUI_API void RenderMouseCursor(ImDrawList *draw_list, ImVec2 pos, float scale, ImGuiMouseCursor mouse_cursor, ImU32 col_fill, ImU32 col_border, ImU32 col_shadow)
Definition: imgui_draw.cpp:3041
ImGuiInputTextState::CurLenW
int CurLenW
Definition: imgui_internal.h:631
ImGui::EndColumns
IMGUI_API void EndColumns()
Definition: imgui_widgets.cpp:7496
ImGuiContext::FocusRequestCurrCounterAll
int FocusRequestCurrCounterAll
Definition: imgui_internal.h:971
ImGuiNextWindowDataFlags_
ImGuiNextWindowDataFlags_
Definition: imgui_internal.h:782
ImGuiShrinkWidthItem::Width
float Width
Definition: imgui_internal.h:841
ImGuiTabBarFlags_IsFocused
@ ImGuiTabBarFlags_IsFocused
Definition: imgui_internal.h:1406
ImGuiNextWindowData::PosCond
ImGuiCond PosCond
Definition: imgui_internal.h:798
ImGuiNavForward_None
@ ImGuiNavForward_None
Definition: imgui_internal.h:505
ImGuiDataType
int ImGuiDataType
Definition: imgui.h:134
ImGuiContext::DrawDataBuilder
ImDrawDataBuilder DrawDataBuilder
Definition: imgui_internal.h:979
ImGuiCol
int ImGuiCol
Definition: imgui.h:132
ImGuiContext::FontBaseSize
float FontBaseSize
Definition: imgui_internal.h:867
ImGuiWindowTempData::LastItemDisplayRect
ImRect LastItemDisplayRect
Definition: imgui_internal.h:1215
ImGuiInputTextState::ClearText
void ClearText()
Definition: imgui_internal.h:647
ImGui::IsNavInputPressed
bool IsNavInputPressed(ImGuiNavInput n, ImGuiInputReadMode mode)
Definition: imgui_internal.h:1590
ImGuiWindowTempData::StateStorage
ImGuiStorage * StateStorage
Definition: imgui_internal.h:1225
ImGuiContext::LogLineFirstItem
bool LogLineFirstItem
Definition: imgui_internal.h:1045
ImGuiInputSource_NavKeyboard
@ ImGuiInputSource_NavKeyboard
Definition: imgui_internal.h:458
ImGuiNextWindowData::SizeCond
ImGuiCond SizeCond
Definition: imgui_internal.h:799
IM_PLACEMENT_NEW
#define IM_PLACEMENT_NEW(_PTR)
Definition: imgui.h:1213
ImGuiContext::Initialized
bool Initialized
Definition: imgui_internal.h:859
ImGui::SetWindowSize
IMGUI_API void SetWindowSize(const ImVec2 &size, ImGuiCond cond=0)
Definition: imgui.cpp:6668
ImFontAtlasBuildMultiplyCalcLookupTable
IMGUI_API void ImFontAtlasBuildMultiplyCalcLookupTable(unsigned char out_table[256], float in_multiply_factor)
Definition: imgui_draw.cpp:1791
ImGuiContext::HoveredIdTimer
float HoveredIdTimer
Definition: imgui_internal.h:893
ImPool::Map
ImGuiStorage Map
Definition: imgui_internal.h:291
ImGuiColumns::LineMaxY
float LineMaxY
Definition: imgui_internal.h:718
ImGuiContext::FrameCountRendered
int FrameCountRendered
Definition: imgui_internal.h:872
ImGuiSettingsHandler::WriteAllFn
void(* WriteAllFn)(ImGuiContext *ctx, ImGuiSettingsHandler *handler, ImGuiTextBuffer *out_buf)
Definition: imgui_internal.h:679
ImGuiColumnsFlags_GrowParentContentsSize
@ ImGuiColumnsFlags_GrowParentContentsSize
Definition: imgui_internal.h:353
ImGuiColumns::Clear
void Clear()
Definition: imgui_internal.h:726
ImGuiInputTextState::ID
ImGuiID ID
Definition: imgui_internal.h:630
ImGuiTabItem::Offset
float Offset
Definition: imgui_internal.h:1424
ImGuiWindow::RootWindow
ImGuiWindow * RootWindow
Definition: imgui_internal.h:1352
ImGui
Definition: imgui_extensions.h:5
ImGuiContext::TempInputTextId
ImGuiID TempInputTextId
Definition: imgui_internal.h:1012
ImGui::GetScrollbarID
IMGUI_API ImGuiID GetScrollbarID(ImGuiWindow *window, ImGuiAxis axis)
Definition: imgui_widgets.cpp:776
ImPool::GetIndex
ImPoolIdx GetIndex(const T *p) const
Definition: imgui_internal.h:298
ImGuiContext::DrawData
ImDrawData DrawData
Definition: imgui_internal.h:978
ImVector::reserve
void reserve(int new_capacity)
Definition: imgui.h:1265
ImGuiButtonFlags_AllowItemOverlap
@ ImGuiButtonFlags_AllowItemOverlap
Definition: imgui_internal.h:322
ImGui::Shutdown
IMGUI_API void Shutdown(ImGuiContext *context)
Definition: imgui.cpp:3944
ImGuiTabBar::ScrollingAnim
float ScrollingAnim
Definition: imgui_internal.h:1446
ImGuiStyleVar
int ImGuiStyleVar
Definition: imgui.h:139
ImGuiContext::TooltipOverrideCount
int TooltipOverrideCount
Definition: imgui_internal.h:1021
ImGui::SliderBehaviorT
IMGUI_API bool SliderBehaviorT(const ImRect &bb, ImGuiID id, ImGuiDataType data_type, T *v, T v_min, T v_max, const char *format, float power, ImGuiSliderFlags flags, ImRect *out_grab_bb)
ImGuiContext::ActiveIdPreviousFrameWindow
ImGuiWindow * ActiveIdPreviousFrameWindow
Definition: imgui_internal.h:911
ImGuiContext::NavWindowingTargetAnim
ImGuiWindow * NavWindowingTargetAnim
Definition: imgui_internal.h:942
ImGuiNavHighlightFlags_None
@ ImGuiNavHighlightFlags_None
Definition: imgui_internal.h:476
ImGuiWindowTempData::MenuBarAppending
bool MenuBarAppending
Definition: imgui_internal.h:1222
ImStb
Definition: imgui_internal.h:111
ImGuiNextWindowDataFlags_HasSize
@ ImGuiNextWindowDataFlags_HasSize
Definition: imgui_internal.h:786
ImGuiColumns::IsBeingResized
bool IsBeingResized
Definition: imgui_internal.h:714
ImGui::ClearDragDrop
IMGUI_API void ClearDragDrop()
Definition: imgui.cpp:8881
ImGui::SetFocusID
IMGUI_API void SetFocusID(ImGuiID id, ImGuiWindow *window)
Definition: imgui.cpp:2883
ImGuiWindow::InnerRect
ImRect InnerRect
Definition: imgui_internal.h:1334
ImGuiPopupData::OpenParentId
ImGuiID OpenParentId
Definition: imgui_internal.h:692
ImGui::BringWindowToDisplayBack
IMGUI_API void BringWindowToDisplayBack(ImGuiWindow *window)
Definition: imgui.cpp:6074
ImGuiItemStatusFlags_HoveredRect
@ ImGuiItemStatusFlags_HoveredRect
Definition: imgui_internal.h:400
ImGui::TabItemEx
IMGUI_API bool TabItemEx(ImGuiTabBar *tab_bar, const char *label, bool *p_open, ImGuiTabItemFlags flags)
Definition: imgui_widgets.cpp:6870
ImGuiNextItemData::OpenCond
ImGuiCond OpenCond
Definition: imgui_internal.h:828
ImGuiTextBuffer::Buf
ImVector< char > Buf
Definition: imgui.h:1628
ImGuiWindowTempData::NavHasScroll
bool NavHasScroll
Definition: imgui_internal.h:1221
ImGui::TabBarQueueChangeTabOrder
IMGUI_API void TabBarQueueChangeTabOrder(ImGuiTabBar *tab_bar, const ImGuiTabItem *tab, int dir)
Definition: imgui_widgets.cpp:6717
ImGui::PushMultiItemsWidths
IMGUI_API void PushMultiItemsWidths(int components, float width_full)
Definition: imgui.cpp:6169
ImGuiTabItem::LastFrameSelected
int LastFrameSelected
Definition: imgui_internal.h:1422
ImGuiContext::LogDepthToExpandDefault
int LogDepthToExpandDefault
Definition: imgui_internal.h:1048
ImGui::TempInputTextScalar
IMGUI_API bool TempInputTextScalar(const ImRect &bb, ImGuiID id, const char *label, ImGuiDataType data_type, void *data_ptr, const char *format)
Definition: imgui_widgets.cpp:2833
ImGuiTabBar::OffsetMax
float OffsetMax
Definition: imgui_internal.h:1443
ImGuiNavForward_ForwardQueued
@ ImGuiNavForward_ForwardQueued
Definition: imgui_internal.h:506
ImGuiPayload
Definition: imgui.h:1519
ImGuiContext::DragDropWithinSourceOrTarget
bool DragDropWithinSourceOrTarget
Definition: imgui_internal.h:987
ImGuiWindowTempData::CurrLineTextBaseOffset
float CurrLineTextBaseOffset
Definition: imgui_internal.h:1208
ImGuiContext::LastValidMousePos
ImVec2 LastValidMousePos
Definition: imgui_internal.h:1009
ImGuiInputReadMode_Pressed
@ ImGuiInputReadMode_Pressed
Definition: imgui_internal.h:467
ImGui::ButtonBehavior
IMGUI_API bool ButtonBehavior(const ImRect &bb, ImGuiID id, bool *out_hovered, bool *out_held, ImGuiButtonFlags flags=0)
Definition: imgui_widgets.cpp:449
ImGuiDataTypeInfo::Size
size_t Size
Definition: imgui_internal.h:578
ImGuiContext::ColorEditOptions
ImGuiColorEditFlags ColorEditOptions
Definition: imgui_internal.h:1013
ImGuiWindowTempData::CursorPos
ImVec2 CursorPos
Definition: imgui_internal.h:1202
ImGuiNextWindowDataFlags_HasFocus
@ ImGuiNextWindowDataFlags_HasFocus
Definition: imgui_internal.h:790
ImGuiContext::NextItemData
ImGuiNextItemData NextItemData
Definition: imgui_internal.h:918
ImGuiColumnsFlags_None
@ ImGuiColumnsFlags_None
Definition: imgui_internal.h:348
ImGuiTabBar::LastTabItemIdx
short LastTabItemIdx
Definition: imgui_internal.h:1455
ImGuiNextItemDataFlags_HasWidth
@ ImGuiNextItemDataFlags_HasWidth
Definition: imgui_internal.h:819
ImGuiContext::MovingWindow
ImGuiWindow * MovingWindow
Definition: imgui_internal.h:884
ImGuiContext::FrameCountEnded
int FrameCountEnded
Definition: imgui_internal.h:871
ImGuiContext::CurrentWindowStack
ImVector< ImGuiWindow * > CurrentWindowStack
Definition: imgui_internal.h:878
ImGuiContext::DragDropSourceFrameCount
int DragDropSourceFrameCount
Definition: imgui_internal.h:989
ImGui::RenderTextClippedEx
IMGUI_API void RenderTextClippedEx(ImDrawList *draw_list, const ImVec2 &pos_min, const ImVec2 &pos_max, const char *text, const char *text_end, const ImVec2 *text_size_if_known, const ImVec2 &align=ImVec2(0, 0), const ImRect *clip_rect=NULL)
Definition: imgui.cpp:2430
ImGuiColumnData::ClipRect
ImRect ClipRect
Definition: imgui_internal.h:704
ImRect::Min
ImVec2 Min
Definition: imgui_internal.h:543
ImGui::CollapseButton
IMGUI_API bool CollapseButton(ImGuiID id, const ImVec2 &pos)
Definition: imgui_widgets.cpp:751
ImGuiTabItem::NameOffset
int NameOffset
Definition: imgui_internal.h:1423
ImGuiID
unsigned int ImGuiID
Definition: imgui.h:130
ImRect::Expand
void Expand(const float amount)
Definition: imgui_internal.h:564
ImGuiContext::DragCurrentAccumDirty
bool DragCurrentAccumDirty
Definition: imgui_internal.h:1017
ImGuiWindow
Definition: imgui_internal.h:1280
ImRect::Add
void Add(const ImRect &r)
Definition: imgui_internal.h:563
ImGuiWindow::ContentSize
ImVec2 ContentSize
Definition: imgui_internal.h:1288
ImGuiContext::HoveredIdAllowOverlap
bool HoveredIdAllowOverlap
Definition: imgui_internal.h:891
ImRect::Floor
void Floor()
Definition: imgui_internal.h:571
ImGuiContext::LastActiveId
ImGuiID LastActiveId
Definition: imgui_internal.h:913
ImGuiColumns::OffMinX
float OffMinX
Definition: imgui_internal.h:717
ImGui::Scrollbar
IMGUI_API void Scrollbar(ImGuiAxis axis)
Definition: imgui_widgets.cpp:878
ImGuiSeparatorFlags_Horizontal
@ ImGuiSeparatorFlags_Horizontal
Definition: imgui_internal.h:377
ImGui::SetScrollFromPosX
IMGUI_API void SetScrollFromPosX(float local_x, float center_x_ratio=0.5f)
Definition: imgui.cpp:7325
ImGuiWindowTempData::TextWrapPos
float TextWrapPos
Definition: imgui_internal.h:1234
ImGuiWindow::ScrollMax
ImVec2 ScrollMax
Definition: imgui_internal.h:1297
ImGuiContext::ColorEditLastHue
float ColorEditLastHue
Definition: imgui_internal.h:1014
ImGuiTabBar::TabsNames
ImGuiTextBuffer TabsNames
Definition: imgui_internal.h:1457
IM_ARRAYSIZE
#define IM_ARRAYSIZE(_ARR)
Definition: imgui.h:75
ImGuiInputTextState::TextW
ImVector< ImWchar > TextW
Definition: imgui_internal.h:632
ImGuiContext::NavJustMovedToMultiSelectScopeId
ImGuiID NavJustMovedToMultiSelectScopeId
Definition: imgui_internal.h:936
ImGui::IsMouseDragPastThreshold
IMGUI_API bool IsMouseDragPastThreshold(int button, float lock_threshold=-1.0f)
Definition: imgui.cpp:4491
ImGuiPtrOrIndex::ImGuiPtrOrIndex
ImGuiPtrOrIndex(void *ptr)
Definition: imgui_internal.h:849
ImGuiNavMoveResult::DistAxial
float DistAxial
Definition: imgui_internal.h:775
ImGuiSettingsHandler::TypeHash
ImGuiID TypeHash
Definition: imgui_internal.h:676
ImGuiKey
int ImGuiKey
Definition: imgui.h:136
ImGuiContext::ActiveIdTimer
float ActiveIdTimer
Definition: imgui_internal.h:897
ImGuiLayoutType
int ImGuiLayoutType
Definition: imgui_internal.h:89
ImGuiContext::WindowsSortBuffer
ImVector< ImGuiWindow * > WindowsSortBuffer
Definition: imgui_internal.h:877
ImGuiColumnsFlags_
ImGuiColumnsFlags_
Definition: imgui_internal.h:345
ImGuiColumnData::ImGuiColumnData
ImGuiColumnData()
Definition: imgui_internal.h:706
ImGui::TabItemBackground
IMGUI_API void TabItemBackground(ImDrawList *draw_list, const ImRect &bb, ImGuiTabItemFlags flags, ImU32 col)
Definition: imgui_widgets.cpp:7092
ImGuiContext::NavJustTabbedId
ImGuiID NavJustTabbedId
Definition: imgui_internal.h:934
ImGuiContext::WindowsActiveCount
int WindowsActiveCount
Definition: imgui_internal.h:880
ImGuiTabBar::PrevFrameVisible
int PrevFrameVisible
Definition: imgui_internal.h:1440
ImStrlenW
IMGUI_API int ImStrlenW(const ImWchar *str)
Definition: imgui.cpp:1384
ImGuiAxis
ImGuiAxis
Definition: imgui_internal.h:440
ImGuiPlotType_Lines
@ ImGuiPlotType_Lines
Definition: imgui_internal.h:449
ImGuiShrinkWidthItem
Definition: imgui_internal.h:838
ImTextCountUtf8BytesFromStr
IMGUI_API int ImTextCountUtf8BytesFromStr(const ImWchar *in_text, const ImWchar *in_text_end)
Definition: imgui.cpp:1790
ImGuiContext::NavMoveRequestFlags
ImGuiNavMoveFlags NavMoveRequestFlags
Definition: imgui_internal.h:960
ImGuiItemStatusFlags_Edited
@ ImGuiItemStatusFlags_Edited
Definition: imgui_internal.h:402
ImGui::LogToBuffer
IMGUI_API void LogToBuffer(int auto_open_depth=-1)
Definition: imgui.cpp:9305
ImGuiItemFlags_NoNav
@ ImGuiItemFlags_NoNav
Definition: imgui_internal.h:389
ImGuiTabBar::GetTabName
const char * GetTabName(const ImGuiTabItem *tab) const
Definition: imgui_internal.h:1461
ImGuiWindowTempData::ItemFlagsStack
ImVector< ImGuiItemFlags > ItemFlagsStack
Definition: imgui_internal.h:1235
ImGuiPopupData::SourceWindow
ImGuiWindow * SourceWindow
Definition: imgui_internal.h:690
ImVector< int >
ImGuiTreeNodeFlags_ClipLabelForTrailingButton
@ ImGuiTreeNodeFlags_ClipLabelForTrailingButton
Definition: imgui_internal.h:371
ImGui::PushOverrideID
IMGUI_API void PushOverrideID(ImGuiID id)
Definition: imgui.cpp:7020
ImGuiWindow::ContentsRegionRect
ImRect ContentsRegionRect
Definition: imgui_internal.h:1338
ImGuiNextWindowData::CollapsedCond
ImGuiCond CollapsedCond
Definition: imgui_internal.h:800
ImWchar
unsigned short ImWchar
Definition: imgui.h:131
ImGuiTabBar::ImGuiTabBar
ImGuiTabBar()
Definition: imgui_widgets.cpp:6330
ImGuiSeparatorFlags_
ImGuiSeparatorFlags_
Definition: imgui_internal.h:374
ImGuiItemFlags_
ImGuiItemFlags_
Definition: imgui_internal.h:384
ImGuiWindow::AutoFitChildAxises
ImS8 AutoFitChildAxises
Definition: imgui_internal.h:1317
ImDrawData
Definition: imgui.h:1979
ImGuiColumnData
Definition: imgui_internal.h:699
ImGui::ShadeVertsLinearUV
IMGUI_API void ShadeVertsLinearUV(ImDrawList *draw_list, int vert_start_idx, int vert_end_idx, const ImVec2 &a, const ImVec2 &b, const ImVec2 &uv_a, const ImVec2 &uv_b, bool clamp)
Definition: imgui_draw.cpp:1384
ImDrawDataBuilder::Layers
ImVector< ImDrawList * > Layers[2]
Definition: imgui_internal.h:761
ImParseFormatTrimDecorations
const IMGUI_API char * ImParseFormatTrimDecorations(const char *format, char *buf, size_t buf_size)
Definition: imgui_widgets.cpp:2795
ImGuiMenuColumns
Definition: imgui_internal.h:615
ImGui::BeginTabBarEx
IMGUI_API bool BeginTabBarEx(ImGuiTabBar *tab_bar, const ImRect &bb, ImGuiTabBarFlags flags)
Definition: imgui_widgets.cpp:6380
ImGuiTabBar::ScrollingTargetDistToVisibility
float ScrollingTargetDistToVisibility
Definition: imgui_internal.h:1448
ImGuiSizeCallback
void(* ImGuiSizeCallback)(ImGuiSizeCallbackData *data)
Definition: imgui.h:157
ImGuiInputTextState::TextA
ImVector< char > TextA
Definition: imgui_internal.h:633
ImGuiWindowTempData::PrevLineSize
ImVec2 PrevLineSize
Definition: imgui_internal.h:1207
ImGuiContext::FocusRequestCurrWindow
ImGuiWindow * FocusRequestCurrWindow
Definition: imgui_internal.h:969
ImGui::GetColumnsID
IMGUI_API ImGuiID GetColumnsID(const char *str_id, int count)
Definition: imgui_widgets.cpp:7356
ImGuiContext::ActiveIdPreviousFrame
ImGuiID ActiveIdPreviousFrame
Definition: imgui_internal.h:908
ImStricmp
IMGUI_API int ImStricmp(const char *str1, const char *str2)
Definition: imgui.cpp:1334
ImGui::GetContentRegionMaxAbs
IMGUI_API ImVec2 GetContentRegionMaxAbs()
Definition: imgui.cpp:6802
ImGui::TempInputTextIsActive
bool TempInputTextIsActive(ImGuiID id)
Definition: imgui_internal.h:1686
ImGui::IsWindowChildOf
IMGUI_API bool IsWindowChildOf(ImGuiWindow *window, ImGuiWindow *potential_parent)
Definition: imgui.cpp:6497
ImGuiWindow::SettingsIdx
int SettingsIdx
Definition: imgui_internal.h:1347
ImGui::TextEx
IMGUI_API void TextEx(const char *text, const char *text_end=NULL, ImGuiTextFlags flags=0)
Definition: imgui_widgets.cpp:130
ImGuiWindow::AutoFitOnlyGrows
bool AutoFitOnlyGrows
Definition: imgui_internal.h:1318
ImGuiItemFlags_MixedValue
@ ImGuiItemFlags_MixedValue
Definition: imgui_internal.h:392
ImGuiContext::Font
ImFont * Font
Definition: imgui_internal.h:865
ImGuiContext::PlatformImeLastPos
ImVec2 PlatformImeLastPos
Definition: imgui_internal.h:1030
ImGuiContext::SettingsHandlers
ImVector< ImGuiSettingsHandler > SettingsHandlers
Definition: imgui_internal.h:1036
ImGuiColorMod::BackupValue
ImVec4 BackupValue
Definition: imgui_internal.h:587
ImGuiContext::NavActivateId
ImGuiID NavActivateId
Definition: imgui_internal.h:930
ImGuiContext::ForegroundDrawList
ImDrawList ForegroundDrawList
Definition: imgui_internal.h:982
ImGuiStorage
Definition: imgui.h:1653
ImGuiContext::InputTextPasswordFont
ImFont InputTextPasswordFont
Definition: imgui_internal.h:1011
ImDrawListSharedData::CurveTessellationTol
float CurveTessellationTol
Definition: imgui_internal.h:748
ImTriangleContainsPoint
IMGUI_API bool ImTriangleContainsPoint(const ImVec2 &a, const ImVec2 &b, const ImVec2 &c, const ImVec2 &p)
Definition: imgui.cpp:1298
ImGui::TabBarCloseTab
IMGUI_API void TabBarCloseTab(ImGuiTabBar *tab_bar, ImGuiTabItem *tab)
Definition: imgui_widgets.cpp:6675
ImGui::ScrollToBringRectIntoView
IMGUI_API ImVec2 ScrollToBringRectIntoView(ImGuiWindow *window, const ImRect &item_rect)
Definition: imgui.cpp:7227
ImGuiNavHighlightFlags_TypeThin
@ ImGuiNavHighlightFlags_TypeThin
Definition: imgui_internal.h:478
ImStrchrRange
const IMGUI_API char * ImStrchrRange(const char *str_begin, const char *str_end, char c)
Definition: imgui.cpp:1378
ImGuiItemHoveredDataBackup::LastItemRect
ImRect LastItemRect
Definition: imgui_internal.h:1390
ImGuiContext::FocusRequestNextCounterAll
int FocusRequestNextCounterAll
Definition: imgui_internal.h:973
ImGuiInputTextCallback
int(* ImGuiInputTextCallback)(ImGuiInputTextCallbackData *data)
Definition: imgui.h:156
ImGuiWindowTempData::NavLayerCurrentMask
int NavLayerCurrentMask
Definition: imgui_internal.h:1217
ImGuiColumns::HostCursorPosY
float HostCursorPosY
Definition: imgui_internal.h:719
ImGuiContext::NavActivateDownId
ImGuiID NavActivateDownId
Definition: imgui_internal.h:931
ImGuiNavMoveResult::Clear
void Clear()
Definition: imgui_internal.h:779
ImGuiStyleMod::ImGuiStyleMod
ImGuiStyleMod(ImGuiStyleVar idx, int v)
Definition: imgui_internal.h:595
ImGui::GetFocusID
ImGuiID GetFocusID()
Definition: imgui_internal.h:1531
ImGuiContext::NavMoveClipDir
ImGuiDir NavMoveClipDir
Definition: imgui_internal.h:963
ImGuiContext::LogLinePosY
float LogLinePosY
Definition: imgui_internal.h:1044
ImGui::ItemSize
IMGUI_API void ItemSize(const ImVec2 &size, float text_offset_y=0.0f)
Definition: imgui.cpp:2968
ImGuiContext::DragSpeedDefaultRatio
float DragSpeedDefaultRatio
Definition: imgui_internal.h:1019
ImGuiContext::CurrentTabBarStack
ImVector< ImGuiPtrOrIndex > CurrentTabBarStack
Definition: imgui_internal.h:1005
ImGui::RenderRectFilledRangeH
IMGUI_API void RenderRectFilledRangeH(ImDrawList *draw_list, const ImRect &rect, ImU32 col, float x_start_norm, float x_end_norm, float rounding)
Definition: imgui_draw.cpp:3084
ImGuiWindow::HiddenFramesCannotSkipItems
int HiddenFramesCannotSkipItems
Definition: imgui_internal.h:1321
ImGuiWindow::NavLastChildNavWindow
ImGuiWindow * NavLastChildNavWindow
Definition: imgui_internal.h:1356
ImTextCountUtf8BytesFromChar
IMGUI_API int ImTextCountUtf8BytesFromChar(const char *in_text, const char *in_text_end)
Definition: imgui.cpp:1759
ImGuiTabBar::OffsetMaxIdeal
float OffsetMaxIdeal
Definition: imgui_internal.h:1444
ImGuiWindowSettings::Collapsed
bool Collapsed
Definition: imgui_internal.h:668
ImDrawListSharedData::FontSize
float FontSize
Definition: imgui_internal.h:747
ImGuiNextItemData::OpenVal
bool OpenVal
Definition: imgui_internal.h:827
ImVec4::w
float w
Definition: imgui.h:194
ImGuiNavHighlightFlags_NoRounding
@ ImGuiNavHighlightFlags_NoRounding
Definition: imgui_internal.h:480
ImGuiTabBar::VisibleTabId
ImGuiID VisibleTabId
Definition: imgui_internal.h:1438
ImGui::FindWindowByID
IMGUI_API ImGuiWindow * FindWindowByID(ImGuiID id)
Definition: imgui.cpp:4846
ImGuiInputTextState::TextAIsValid
bool TextAIsValid
Definition: imgui_internal.h:635
ImGuiItemStatusFlags
int ImGuiItemStatusFlags
Definition: imgui_internal.h:97
ImGuiWindow::BeginOrderWithinContext
short BeginOrderWithinContext
Definition: imgui_internal.h:1314
ImGuiDragDropFlags
int ImGuiDragDropFlags
Definition: imgui.h:147
ImPool::Clear
void Clear()
Definition: imgui_internal.h:301
ImGuiTabBar::ReorderRequestDir
ImS8 ReorderRequestDir
Definition: imgui_internal.h:1452
ImGui::CalcWindowExpectedSize
IMGUI_API ImVec2 CalcWindowExpectedSize(ImGuiWindow *window)
Definition: imgui.cpp:4989
ImGuiNavDirSourceFlags
int ImGuiNavDirSourceFlags
Definition: imgui_internal.h:99
ImFontAtlasBuildFinish
IMGUI_API void ImFontAtlasBuildFinish(ImFontAtlas *atlas)
Definition: imgui_draw.cpp:2183
ImGuiInputTextState::ImGuiInputTextState
ImGuiInputTextState()
Definition: imgui_internal.h:646
ImGuiNavHighlightFlags_TypeDefault
@ ImGuiNavHighlightFlags_TypeDefault
Definition: imgui_internal.h:477
ImGuiWindowTempData::ImGuiWindowTempData
ImGuiWindowTempData()
Definition: imgui_internal.h:1246
ImGuiInputReadMode_Released
@ ImGuiInputReadMode_Released
Definition: imgui_internal.h:468
ImGuiGroupData::BackupCurrLineTextBaseOffset
float BackupCurrLineTextBaseOffset
Definition: imgui_internal.h:608
ImGuiMenuColumns::Width
float Width
Definition: imgui_internal.h:618
ImGuiColumnData::OffsetNorm
float OffsetNorm
Definition: imgui_internal.h:701
ImGuiDragFlags_None
@ ImGuiDragFlags_None
Definition: imgui_internal.h:341
ImFileOpen
IMGUI_API FILE * ImFileOpen(const char *filename, const char *file_open_mode)
Definition: imgui.cpp:1563
ImGui::NavMoveRequestForward
IMGUI_API void NavMoveRequestForward(ImGuiDir move_dir, ImGuiDir clip_dir, const ImRect &bb_rel, ImGuiNavMoveFlags move_flags)
Definition: imgui.cpp:8081
ImGui::ShadeVertsLinearColorGradientKeepAlpha
IMGUI_API void ShadeVertsLinearColorGradientKeepAlpha(ImDrawList *draw_list, int vert_start_idx, int vert_end_idx, ImVec2 gradient_p0, ImVec2 gradient_p1, ImU32 col0, ImU32 col1)
Definition: imgui_draw.cpp:1366
ImGuiContext::DragDropAcceptIdCurrRectSurface
float DragDropAcceptIdCurrRectSurface
Definition: imgui_internal.h:995
ImGuiPopupData::Window
ImGuiWindow * Window
Definition: imgui_internal.h:689
ImVec2::y
float y
Definition: imgui.h:181
ImGui::CloseButton
IMGUI_API bool CloseButton(ImGuiID id, const ImVec2 &pos)
Definition: imgui_widgets.cpp:721
ImDrawListSharedData::ClipRectFullscreen
ImVec4 ClipRectFullscreen
Definition: imgui_internal.h:749
ImGuiCol_Text
@ ImGuiCol_Text
Definition: imgui.h:1027
ImGuiContext::HoveredId
ImGuiID HoveredId
Definition: imgui_internal.h:890
ImGuiTabBar::FramePadding
ImVec2 FramePadding
Definition: imgui_internal.h:1456
ImGuiContext::FramerateSecPerFrameAccum
float FramerateSecPerFrameAccum
Definition: imgui_internal.h:1057
ImGuiContext::DragDropSourceFlags
ImGuiDragDropFlags DragDropSourceFlags
Definition: imgui_internal.h:988
ImPoolIdx
int ImPoolIdx
Definition: imgui_internal.h:286
ImGuiSelectableFlags_NoHoldingActiveID
@ ImGuiSelectableFlags_NoHoldingActiveID
Definition: imgui_internal.h:360
ImS8
signed char ImS8
Definition: imgui.h:160
ImGuiTabBar::ScrollingTarget
float ScrollingTarget
Definition: imgui_internal.h:1447
ImVec2ih
Definition: imgui_internal.h:532
ImGuiDragFlags
int ImGuiDragFlags
Definition: imgui_internal.h:95
ImGuiWindow::Size
ImVec2 Size
Definition: imgui_internal.h:1286
ImGuiWindow::WriteAccessed
bool WriteAccessed
Definition: imgui_internal.h:1304
ImGuiInputReadMode_RepeatSlow
@ ImGuiInputReadMode_RepeatSlow
Definition: imgui_internal.h:470
ImRect::Translate
void Translate(const ImVec2 &d)
Definition: imgui_internal.h:566
ImStrdupcpy
IMGUI_API char * ImStrdupcpy(char *dst, size_t *p_dst_size, const char *str)
Definition: imgui.cpp:1364
ImGuiNavHighlightFlags_AlwaysDraw
@ ImGuiNavHighlightFlags_AlwaysDraw
Definition: imgui_internal.h:479
ImGui::PlotEx
IMGUI_API void PlotEx(ImGuiPlotType plot_type, const char *label, float(*values_getter)(void *data, int idx), void *data, int values_count, int values_offset, const char *overlay_text, float scale_min, float scale_max, ImVec2 frame_size)
Definition: imgui_widgets.cpp:5732
ImGuiWindowTempData::ColumnsOffset
ImVec1 ColumnsOffset
Definition: imgui_internal.h:1243
ImGuiDataTypeInfo::PrintFmt
const char * PrintFmt
Definition: imgui_internal.h:579
ImGuiWindow::MenuBarHeight
float MenuBarHeight() const
Definition: imgui_internal.h:1381
ImGuiInputTextState::ScrollX
float ScrollX
Definition: imgui_internal.h:637
ImGuiContext::StyleModifiers
ImVector< ImGuiStyleMod > StyleModifiers
Definition: imgui_internal.h:922
ImGuiContext::ActiveIdIsAlive
ImGuiID ActiveIdIsAlive
Definition: imgui_internal.h:896
ImGuiWindow::FontWindowScale
float FontWindowScale
Definition: imgui_internal.h:1346
ImGuiContext::DragDropAcceptIdPrev
ImGuiID DragDropAcceptIdPrev
Definition: imgui_internal.h:997
ImGuiPopupData::OpenPopupPos
ImVec2 OpenPopupPos
Definition: imgui_internal.h:693
ImGui::IsWindowNavFocusable
IMGUI_API bool IsWindowNavFocusable(ImGuiWindow *window)
Definition: imgui.cpp:6575
ImGuiColorEditFlags
int ImGuiColorEditFlags
Definition: imgui.h:144
ImGuiItemStatusFlags_HasDeactivated
@ ImGuiItemStatusFlags_HasDeactivated
Definition: imgui_internal.h:404
IM_NEW
#define IM_NEW(_TYPE)
Definition: imgui.h:1214
ImGuiWindowFlags_MenuBar
@ ImGuiWindowFlags_MenuBar
Definition: imgui.h:724
ImGuiContext::HoveredIdNotActiveTimer
float HoveredIdNotActiveTimer
Definition: imgui_internal.h:894
ImRect::Add
void Add(const ImVec2 &p)
Definition: imgui_internal.h:562
ImDrawList::_OwnerName
const char * _OwnerName
Definition: imgui.h:1891
ImGui::SliderBehavior
IMGUI_API bool SliderBehavior(const ImRect &bb, ImGuiID id, ImGuiDataType data_type, void *v, const void *v_min, const void *v_max, const char *format, float power, ImGuiSliderFlags flags, ImRect *out_grab_bb)
Definition: imgui_widgets.cpp:2475
ImLineClosestPoint
IMGUI_API ImVec2 ImLineClosestPoint(const ImVec2 &a, const ImVec2 &b, const ImVec2 &p)
Definition: imgui.cpp:1285
ImGuiLayoutType_
ImGuiLayoutType_
Definition: imgui_internal.h:424
ImGuiWindow::ScrollTarget
ImVec2 ScrollTarget
Definition: imgui_internal.h:1298
ImGuiNextItemDataFlags_
ImGuiNextItemDataFlags_
Definition: imgui_internal.h:816
ImGuiContext::OpenPopupStack
ImVector< ImGuiPopupData > OpenPopupStack
Definition: imgui_internal.h:924
ImGuiWindowSettings::ImGuiWindowSettings
ImGuiWindowSettings()
Definition: imgui_internal.h:670
ImPool
Definition: imgui_internal.h:288
ImGuiSliderFlags_Vertical
@ ImGuiSliderFlags_Vertical
Definition: imgui_internal.h:336
ImPool::GetByKey
T * GetByKey(ImGuiID key)
Definition: imgui_internal.h:296
ImVec2ih::x
short x
Definition: imgui_internal.h:534
ImGuiItemStatusFlags_Deactivated
@ ImGuiItemStatusFlags_Deactivated
Definition: imgui_internal.h:405
ImGuiStyleMod
Definition: imgui_internal.h:591
ImGuiContext::PlatformImePos
ImVec2 PlatformImePos
Definition: imgui_internal.h:1029
ImBoolVector::SetBit
void SetBit(int n, bool v)
Definition: imgui_internal.h:281
ImGuiSeparatorFlags_None
@ ImGuiSeparatorFlags_None
Definition: imgui_internal.h:376
ImGuiSettingsHandler::UserData
void * UserData
Definition: imgui_internal.h:680
ImGui::ActivateItem
IMGUI_API void ActivateItem(ImGuiID id)
Definition: imgui.cpp:6950
ImGuiWindow::InnerClipRect
ImRect InnerClipRect
Definition: imgui_internal.h:1335
ImGuiWindow::TitleBarRect
ImRect TitleBarRect() const
Definition: imgui_internal.h:1380
ImGuiWindowTempData::GroupStack
ImVector< ImGuiGroupData > GroupStack
Definition: imgui_internal.h:1238
ImGuiDataTypeInfo
Definition: imgui_internal.h:576
ImGui::SplitterBehavior
IMGUI_API bool SplitterBehavior(const ImRect &bb, ImGuiID id, ImGuiAxis axis, float *size1, float *size2, float min_size1, float min_size2, float hover_extend=0.0f, float hover_visibility_delay=0.0f)
Definition: imgui_widgets.cpp:1298
ImGui::IsDragDropPayloadBeingAccepted
IMGUI_API bool IsDragDropPayloadBeingAccepted()
Definition: imgui.cpp:9106
ImGuiContext::NavInitRequest
bool NavInitRequest
Definition: imgui_internal.h:954
ImGuiContext::NavId
ImGuiID NavId
Definition: imgui_internal.h:929
ImBoolVector::ImBoolVector
ImBoolVector()
Definition: imgui_internal.h:277
ImFileLoadToMemory
IMGUI_API void * ImFileLoadToMemory(const char *filename, const char *file_open_mode, size_t *out_file_size=NULL, int padding_bytes=0)
Definition: imgui.cpp:1581
ImRect::TranslateX
void TranslateX(float dx)
Definition: imgui_internal.h:567
ImStreolRange
const IMGUI_API char * ImStreolRange(const char *str, const char *str_end)
Definition: imgui.cpp:1393
ImGuiTabBar::ScrollingSpeed
float ScrollingSpeed
Definition: imgui_internal.h:1449
ImGuiWindowTempData::CursorStartPos
ImVec2 CursorStartPos
Definition: imgui_internal.h:1204
ImGui::CalcItemSize
IMGUI_API ImVec2 CalcItemSize(ImVec2 size, float default_w, float default_h)
Definition: imgui.cpp:6214
ImGui::BringWindowToDisplayFront
IMGUI_API void BringWindowToDisplayFront(ImGuiWindow *window)
Definition: imgui.cpp:6059
ImGui::CreateNewWindowSettings
IMGUI_API ImGuiWindowSettings * CreateNewWindowSettings(const char *name)
Definition: imgui.cpp:9389
ImGuiItemFlags_ButtonRepeat
@ ImGuiItemFlags_ButtonRepeat
Definition: imgui_internal.h:387
ImGuiTabItem
Definition: imgui_internal.h:1417
ImGuiColorEditFlags__OptionsDefault
@ ImGuiColorEditFlags__OptionsDefault
Definition: imgui.h:1155
ImGui::FocusTopMostWindowUnderOne
IMGUI_API void FocusTopMostWindowUnderOne(ImGuiWindow *under_this_window, ImGuiWindow *ignore_window)
Definition: imgui.cpp:6127
ImGui::RenderArrow
IMGUI_API void RenderArrow(ImDrawList *draw_list, ImVec2 pos, ImU32 col, ImGuiDir dir, float scale=1.0f)
Definition: imgui.cpp:2581
ImPool::Add
T * Add()
Definition: imgui_internal.h:302
ImGuiNextWindowData::SizeCallback
ImGuiSizeCallback SizeCallback
Definition: imgui_internal.h:807
ImGui::UpdateWindowParentAndRootLinks
IMGUI_API void UpdateWindowParentAndRootLinks(ImGuiWindow *window, ImGuiWindowFlags flags, ImGuiWindow *parent_window)
Definition: imgui.cpp:5375
ImGui::NavMoveRequestButNoResultYet
IMGUI_API bool NavMoveRequestButNoResultYet()
Definition: imgui.cpp:8068
ImGuiContext::LogBuffer
ImGuiTextBuffer LogBuffer
Definition: imgui_internal.h:1043
ImGuiGroupData::BackupIndent
ImVec1 BackupIndent
Definition: imgui_internal.h:605
ImDrawListSharedData::TexUvWhitePixel
ImVec2 TexUvWhitePixel
Definition: imgui_internal.h:745
ImGuiWindow::Name
char * Name
Definition: imgui_internal.h:1282
ImGuiColumns::ImGuiColumns
ImGuiColumns()
Definition: imgui_internal.h:725
ImRect::GetTR
ImVec2 GetTR() const
Definition: imgui_internal.h:556
ImTextCountCharsFromUtf8
IMGUI_API int ImTextCountCharsFromUtf8(const char *in_text, const char *in_text_end)
Definition: imgui.cpp:1705
ImGuiContext::ColorPickerRef
ImVec4 ColorPickerRef
Definition: imgui_internal.h:1016
ImGui::GetTopMostPopupModal
IMGUI_API ImGuiWindow * GetTopMostPopupModal()
Definition: imgui.cpp:7443
ImGuiItemStatusFlags_HasDisplayRect
@ ImGuiItemStatusFlags_HasDisplayRect
Definition: imgui_internal.h:401
ImGuiContext::NavInputSource
ImGuiInputSource NavInputSource
Definition: imgui_internal.h:938
ImGui::GetColumnOffsetFromNorm
IMGUI_API float GetColumnOffsetFromNorm(const ImGuiColumns *columns, float offset_norm)
Definition: imgui_widgets.cpp:7204
ImRect::Contains
bool Contains(const ImRect &r) const
Definition: imgui_internal.h:560
ImGuiPopupPositionPolicy_Default
@ ImGuiPopupPositionPolicy_Default
Definition: imgui_internal.h:519
ImGui::InputTextEx
IMGUI_API bool InputTextEx(const char *label, const char *hint, char *buf, int buf_size, const ImVec2 &size_arg, ImGuiInputTextFlags flags, ImGuiInputTextCallback callback=NULL, void *user_data=NULL)
Definition: imgui_widgets.cpp:3381
IM_FMTLIST
#define IM_FMTLIST(FMT)
Definition: imgui.h:73
ImPool::Remove
void Remove(ImGuiID key, const T *p)
Definition: imgui_internal.h:303
ImRect::Overlaps
bool Overlaps(const ImRect &r) const
Definition: imgui_internal.h:561
ImGuiColumns::Count
int Count
Definition: imgui_internal.h:716
ImGuiStyleMod::BackupFloat
float BackupFloat[2]
Definition: imgui_internal.h:594
ImGuiButtonFlags_FlattenChildren
@ ImGuiButtonFlags_FlattenChildren
Definition: imgui_internal.h:321
ImGuiWindowTempData::LastItemRect
ImRect LastItemRect
Definition: imgui_internal.h:1214
ImGuiItemFlags_NoTabStop
@ ImGuiItemFlags_NoTabStop
Definition: imgui_internal.h:386
ImGuiContext::BeginPopupStack
ImVector< ImGuiPopupData > BeginPopupStack
Definition: imgui_internal.h:925
ImGui::IsNavInputPressedAnyOfTwo
bool IsNavInputPressedAnyOfTwo(ImGuiNavInput n1, ImGuiNavInput n2, ImGuiInputReadMode mode)
Definition: imgui_internal.h:1591
ImGui::ButtonEx
IMGUI_API bool ButtonEx(const char *label, const ImVec2 &size_arg=ImVec2(0, 0), ImGuiButtonFlags flags=0)
Definition: imgui_widgets.cpp:604
ImGuiNextWindowDataFlags_None
@ ImGuiNextWindowDataFlags_None
Definition: imgui_internal.h:784
ImGuiNextWindowData::Flags
ImGuiNextWindowDataFlags Flags
Definition: imgui_internal.h:797
ImGuiGroupData::BackupCursorPos
ImVec2 BackupCursorPos
Definition: imgui_internal.h:603
ImGuiInputTextState::ClearFreeMemory
void ClearFreeMemory()
Definition: imgui_internal.h:648
ImGuiTabItem::Width
float Width
Definition: imgui_internal.h:1425
ImGuiNextWindowDataFlags_HasBgAlpha
@ ImGuiNextWindowDataFlags_HasBgAlpha
Definition: imgui_internal.h:791
ImGuiButtonFlags_
ImGuiButtonFlags_
Definition: imgui_internal.h:313
x
config GlyphExtraSpacing x
Definition: README.txt:30
ImVec4::y
float y
Definition: imgui.h:194
ImGuiLogType_None
@ ImGuiLogType_None
Definition: imgui_internal.h:432
ImRect::GetSize
ImVec2 GetSize() const
Definition: imgui_internal.h:552
ImGuiTabBar::VisibleTabWasSubmitted
bool VisibleTabWasSubmitted
Definition: imgui_internal.h:1454
ImGuiContext::NavInitRequestFromMove
bool NavInitRequestFromMove
Definition: imgui_internal.h:955
ImGuiContext::CurrentWindow
ImGuiWindow * CurrentWindow
Definition: imgui_internal.h:881
ImGuiContext::NavWindowingList
ImGuiWindow * NavWindowingList
Definition: imgui_internal.h:943
ImGuiColumns::OffMaxX
float OffMaxX
Definition: imgui_internal.h:717
ImGuiPtrOrIndex::Ptr
void * Ptr
Definition: imgui_internal.h:846
ImGui::ClosePopupToLevel
IMGUI_API void ClosePopupToLevel(int remaining, bool restore_focus_to_window_under_popup)
Definition: imgui.cpp:7556
ImGui::StartMouseMovingWindow
IMGUI_API void StartMouseMovingWindow(ImGuiWindow *window)
Definition: imgui.cpp:3344
ImGuiWindow::DrawListInst
ImDrawList DrawListInst
Definition: imgui_internal.h:1350
ImGui::RenderFrameBorder
IMGUI_API void RenderFrameBorder(ImVec2 p_min, ImVec2 p_max, float rounding=0.0f)
Definition: imgui.cpp:2568
ImGuiWindow::Active
bool Active
Definition: imgui_internal.h:1302
ImGuiContext::FramerateSecPerFrame
float FramerateSecPerFrame[120]
Definition: imgui_internal.h:1055
ImGuiNextItemData
Definition: imgui_internal.h:823
ImGuiNextItemData::Width
float Width
Definition: imgui_internal.h:826
ImGui::RenderFrame
IMGUI_API void RenderFrame(ImVec2 p_min, ImVec2 p_max, ImU32 fill_col, bool border=true, float rounding=0.0f)
Definition: imgui.cpp:2555
ImGuiColumnsFlags_NoPreserveWidths
@ ImGuiColumnsFlags_NoPreserveWidths
Definition: imgui_internal.h:351
ImGuiButtonFlags_NoHoldingActiveID
@ ImGuiButtonFlags_NoHoldingActiveID
Definition: imgui_internal.h:327
ImGui::FindWindowSettings
IMGUI_API ImGuiWindowSettings * FindWindowSettings(ImGuiID id)
Definition: imgui.cpp:9405
ImGuiItemHoveredDataBackup::LastItemId
ImGuiID LastItemId
Definition: imgui_internal.h:1388
ImGuiContext::WheelingWindowRefMousePos
ImVec2 WheelingWindowRefMousePos
Definition: imgui_internal.h:886
ImGuiContext::NavMoveDirLast
ImGuiDir NavMoveDirLast
Definition: imgui_internal.h:962
ImGuiPlotType
ImGuiPlotType
Definition: imgui_internal.h:447
ImGui::Indent
IMGUI_API void Indent(float indent_w=0.0f)
Definition: imgui.cpp:7170
ImGui::BeginDragDropTargetCustom
IMGUI_API bool BeginDragDropTargetCustom(const ImRect &bb, ImGuiID id)
Definition: imgui.cpp:9054
ImGui::PopColumnsBackground
IMGUI_API void PopColumnsBackground()
Definition: imgui_widgets.cpp:7333
ImGuiWindow::MemoryDrawListVtxCapacity
int MemoryDrawListVtxCapacity
Definition: imgui_internal.h:1362
ImGuiTextFlags
int ImGuiTextFlags
Definition: imgui_internal.h:105
ImGui::UpdateMouseMovingWindowNewFrame
IMGUI_API void UpdateMouseMovingWindowNewFrame()
Definition: imgui.cpp:3364
ImPool::~ImPool
~ImPool()
Definition: imgui_internal.h:295
ImGuiTabBarFlagsPrivate_
ImGuiTabBarFlagsPrivate_
Definition: imgui_internal.h:1403
ImGui::Initialize
IMGUI_API void Initialize(ImGuiContext *context)
Definition: imgui.cpp:3926
ImGuiNextItemDataFlags_HasOpen
@ ImGuiNextItemDataFlags_HasOpen
Definition: imgui_internal.h:820
ImGui::IsClippedEx
IMGUI_API bool IsClippedEx(const ImRect &bb, ImGuiID id, bool clip_even_when_logged)
Definition: imgui.cpp:3136
ImTextCharFromUtf8
IMGUI_API int ImTextCharFromUtf8(unsigned int *out_char, const char *in_text, const char *in_text_end)
Definition: imgui.cpp:1628
ImGui::TreePushOverrideID
IMGUI_API void TreePushOverrideID(ImGuiID id)
Definition: imgui_widgets.cpp:5372
ImGuiWindow::WindowRounding
float WindowRounding
Definition: imgui_internal.h:1291
ImGuiContext::MouseCursor
ImGuiMouseCursor MouseCursor
Definition: imgui_internal.h:983
ImDrawListSharedData
Definition: imgui_internal.h:743
ImGuiWindowFlags
int ImGuiWindowFlags
Definition: imgui.h:155
ImGuiColumns::ID
ImGuiID ID
Definition: imgui_internal.h:711
ImGuiWindowTempData::NavLayerActiveMask
int NavLayerActiveMask
Definition: imgui_internal.h:1218
ImGuiLayoutType_Horizontal
@ ImGuiLayoutType_Horizontal
Definition: imgui_internal.h:426
ImGuiIO::KeyMap
int KeyMap[ImGuiKey_COUNT]
Definition: imgui.h:1354
ImGuiButtonFlags_None
@ ImGuiButtonFlags_None
Definition: imgui_internal.h:315
ImGuiTabBar::NextSelectedTabId
ImGuiID NextSelectedTabId
Definition: imgui_internal.h:1437
ImGuiContext::NavWindow
ImGuiWindow * NavWindow
Definition: imgui_internal.h:928
ImGui::LogBegin
IMGUI_API void LogBegin(ImGuiLogType type, int auto_open_depth)
Definition: imgui.cpp:9247
ImGuiWindow::IDStack
ImVector< ImGuiID > IDStack
Definition: imgui_internal.h:1328
ImGuiWindow::NameBufLen
int NameBufLen
Definition: imgui_internal.h:1293
ImRect::Expand
void Expand(const ImVec2 &amount)
Definition: imgui_internal.h:565
ImGuiInputTextState::ClearSelection
void ClearSelection()
Definition: imgui_internal.h:657
ImGui::SetWindowPos
IMGUI_API void SetWindowPos(const ImVec2 &pos, ImGuiCond cond=0)
Definition: imgui.cpp:6618
ImGui::ArrowButtonEx
IMGUI_API bool ArrowButtonEx(const char *str_id, ImGuiDir dir, ImVec2 size_arg, ImGuiButtonFlags flags)
Definition: imgui_widgets.cpp:684
ImGuiContext::ActiveIdClickOffset
ImVec2 ActiveIdClickOffset
Definition: imgui_internal.h:905
ImVector::Size
int Size
Definition: imgui.h:1229
ImFontAtlasBuildMultiplyRectAlpha8
IMGUI_API void ImFontAtlasBuildMultiplyRectAlpha8(const unsigned char table[256], unsigned char *pixels, int x, int y, int w, int h, int stride)
Definition: imgui_draw.cpp:1800
ImGuiContext::DebugItemPickerActive
bool DebugItemPickerActive
Definition: imgui_internal.h:1051
ImGuiContext::TempBuffer
char TempBuffer[1024 *3+1]
Definition: imgui_internal.h:1061
ImRect::ImRect
ImRect(const ImVec2 &min, const ImVec2 &max)
Definition: imgui_internal.h:547
ImRect::GetBL
ImVec2 GetBL() const
Definition: imgui_internal.h:557
ImGuiContext::ActiveIdPreviousFrameIsAlive
bool ActiveIdPreviousFrameIsAlive
Definition: imgui_internal.h:909
ImGuiWindow::DrawList
ImDrawList * DrawList
Definition: imgui_internal.h:1349
ImPool::Remove
void Remove(ImGuiID key, ImPoolIdx idx)
Definition: imgui_internal.h:304
ImGuiInputTextState::UserCallbackData
void * UserCallbackData
Definition: imgui_internal.h:644
font
io.Fonts->AddFontFromMemoryCompressedTTF(compressed_data, compressed_data_size, size_pixels,...) font
Definition: README.txt:86
ImGuiNavMoveResult
Definition: imgui_internal.h:768
ImGuiContext::NavInitResultId
ImGuiID NavInitResultId
Definition: imgui_internal.h:956
ImGuiItemStatusFlags_
ImGuiItemStatusFlags_
Definition: imgui_internal.h:397
ImGuiColumns::HostWorkRect
ImRect HostWorkRect
Definition: imgui_internal.h:722
ImGuiDragFlags_Vertical
@ ImGuiDragFlags_Vertical
Definition: imgui_internal.h:342
ImBoolVector::Resize
void Resize(int sz)
Definition: imgui_internal.h:278
ImGuiWindow::Scroll
ImVec2 Scroll
Definition: imgui_internal.h:1296
ImGuiContext::LogFile
FILE * LogFile
Definition: imgui_internal.h:1042
ImStristr
const IMGUI_API char * ImStristr(const char *haystack, const char *haystack_end, const char *needle, const char *needle_end)
Definition: imgui.cpp:1406
ImDrawCornerFlags
int ImDrawCornerFlags
Definition: imgui.h:140
STB_TEXTEDIT_UNDOSTATECOUNT
#define STB_TEXTEDIT_UNDOSTATECOUNT
Definition: imgui_internal.h:119
IM_ASSERT
#define IM_ASSERT(_EXPR)
Definition: imgui.h:66
ImGuiSelectableFlags_DrawFillAvailWidth
@ ImGuiSelectableFlags_DrawFillAvailWidth
Definition: imgui_internal.h:363
ImGuiContext::NavMoveFromClampedRefRect
bool NavMoveFromClampedRefRect
Definition: imgui_internal.h:958
ImGui::DebugStartItemPicker
void DebugStartItemPicker()
Definition: imgui_internal.h:1701
ImGuiWindow::ContentSizeExplicit
ImVec2 ContentSizeExplicit
Definition: imgui_internal.h:1289
ImGuiContext::WantCaptureKeyboardNextFrame
int WantCaptureKeyboardNextFrame
Definition: imgui_internal.h:1059
ImGuiContext::FocusRequestCurrCounterTab
int FocusRequestCurrCounterTab
Definition: imgui_internal.h:972
ImFontAtlasBuildWithStbTruetype
IMGUI_API bool ImFontAtlasBuildWithStbTruetype(ImFontAtlas *atlas)
Definition: imgui_draw.cpp:1845
ImGuiContext::InputTextState
ImGuiInputTextState InputTextState
Definition: imgui_internal.h:1010
ImGuiContext::HoveredWindow
ImGuiWindow * HoveredWindow
Definition: imgui_internal.h:882
ImGuiInputReadMode_Down
@ ImGuiInputReadMode_Down
Definition: imgui_internal.h:466
ImGuiSelectableFlags_PressedOnRelease
@ ImGuiSelectableFlags_PressedOnRelease
Definition: imgui_internal.h:362
ImGui::TreeNodeBehavior
IMGUI_API bool TreeNodeBehavior(ImGuiID id, ImGuiTreeNodeFlags flags, const char *label, const char *label_end=NULL)
Definition: imgui_widgets.cpp:5184
ImGuiTreeNodeFlagsPrivate_
ImGuiTreeNodeFlagsPrivate_
Definition: imgui_internal.h:369
ImVector::Data
T * Data
Definition: imgui.h:1231
ImGui::IsItemToggledSelection
IMGUI_API bool IsItemToggledSelection()
Definition: imgui.cpp:4631
ImGuiNextWindowData::BgAlphaVal
float BgAlphaVal
Definition: imgui_internal.h:809
ImGuiWindowTempData::LastItemId
ImGuiID LastItemId
Definition: imgui_internal.h:1212
ImGetDirQuadrantFromDelta
IMGUI_API ImGuiDir ImGetDirQuadrantFromDelta(float dx, float dy)
Definition: imgui.cpp:7835
ImGuiNextWindowDataFlags
int ImGuiNextWindowDataFlags
Definition: imgui_internal.h:102
ImGuiContext::WantTextInputNextFrame
int WantTextInputNextFrame
Definition: imgui_internal.h:1060
ImGui::RenderColorRectWithAlphaCheckerboard
IMGUI_API void RenderColorRectWithAlphaCheckerboard(ImVec2 p_min, ImVec2 p_max, ImU32 fill_col, float grid_step, ImVec2 grid_off, float rounding=0.0f, int rounding_corners_flags=~0)
Definition: imgui_widgets.cpp:4406
ImGuiContext::FontStack
ImVector< ImFont * > FontStack
Definition: imgui_internal.h:923
ImGui::ColorEditOptionsPopup
IMGUI_API void ColorEditOptionsPopup(const float *col, ImGuiColorEditFlags flags)
Definition: imgui_widgets.cpp:4952
ImGui::GetID
IMGUI_API ImGuiID GetID(const char *str_id)
Definition: imgui.cpp:7032
ImRect::GetCenter
ImVec2 GetCenter() const
Definition: imgui_internal.h:551
ImGuiNavMoveFlags_
ImGuiNavMoveFlags_
Definition: imgui_internal.h:491
ImGuiWindow::RootWindowForTitleBarHighlight
ImGuiWindow * RootWindowForTitleBarHighlight
Definition: imgui_internal.h:1353
ImGuiColorMod::Col
ImGuiCol Col
Definition: imgui_internal.h:586
ImGuiButtonFlags_DontClosePopups
@ ImGuiButtonFlags_DontClosePopups
Definition: imgui_internal.h:323
ImGui::RenderTextEllipsis
IMGUI_API void RenderTextEllipsis(ImDrawList *draw_list, const ImVec2 &pos_min, const ImVec2 &pos_max, float clip_max_x, float ellipsis_max_x, const char *text, const char *text_end, const ImVec2 *text_size_if_known)
Definition: imgui.cpp:2477
ImGuiTabItemFlags
int ImGuiTabItemFlags
Definition: imgui.h:153
ImGuiContext::CurrentTabBar
ImGuiTabBar * CurrentTabBar
Definition: imgui_internal.h:1003
ImGuiGroupData::BackupActiveIdIsAlive
ImGuiID BackupActiveIdIsAlive
Definition: imgui_internal.h:609
ImStrTrimBlanks
IMGUI_API void ImStrTrimBlanks(char *str)
Definition: imgui.cpp:1429
ImGuiContext::NavMousePosDirty
bool NavMousePosDirty
Definition: imgui_internal.h:950
ImGuiWindow::ParentWindow
ImGuiWindow * ParentWindow
Definition: imgui_internal.h:1351
ImGuiNavMoveResult::Window
ImGuiWindow * Window
Definition: imgui_internal.h:772
ImGuiNextWindowData
Definition: imgui_internal.h:795
ImGuiContext::NavMoveResultOther
ImGuiNavMoveResult NavMoveResultOther
Definition: imgui_internal.h:966
ImGui::SetNavIDWithRectRel
IMGUI_API void SetNavIDWithRectRel(ImGuiID id, int nav_layer, const ImRect &rect_rel)
Definition: imgui.cpp:2844
ImGuiWindowSettings::Size
ImVec2ih Size
Definition: imgui_internal.h:667
ImGuiTabBar::OffsetNextTab
float OffsetNextTab
Definition: imgui_internal.h:1445
ImGui::SetScrollY
IMGUI_API void SetScrollY(float scroll_y)
Definition: imgui.cpp:7287
ImGuiNextWindowDataFlags_HasContentSize
@ ImGuiNextWindowDataFlags_HasContentSize
Definition: imgui_internal.h:787
ImGuiContext::PrivateClipboard
ImVector< char > PrivateClipboard
Definition: imgui_internal.h:1022
ImGuiContext::WindowsFocusOrder
ImVector< ImGuiWindow * > WindowsFocusOrder
Definition: imgui_internal.h:876
ImGuiContext::ScrollbarClickDeltaToGrabCenter
float ScrollbarClickDeltaToGrabCenter
Definition: imgui_internal.h:1020
ImGuiPopupData::OpenMousePos
ImVec2 OpenMousePos
Definition: imgui_internal.h:694
ImGuiItemFlags_Default_
@ ImGuiItemFlags_Default_
Definition: imgui_internal.h:393
ImGuiContext::DimBgRatio
float DimBgRatio
Definition: imgui_internal.h:980
ImGuiButtonFlags_PressedOnDoubleClick
@ ImGuiButtonFlags_PressedOnDoubleClick
Definition: imgui_internal.h:320
ImGuiContext::NavMoveDir
ImGuiDir NavMoveDir
Definition: imgui_internal.h:962
ImGuiContext::ActiveIdHasBeenEditedThisFrame
bool ActiveIdHasBeenEditedThisFrame
Definition: imgui_internal.h:902
ImGuiLogType_TTY
@ ImGuiLogType_TTY
Definition: imgui_internal.h:433
ImGuiItemFlags_SelectableDontClosePopup
@ ImGuiItemFlags_SelectableDontClosePopup
Definition: imgui_internal.h:391
ImGuiContext::HoveredIdPreviousFrame
ImGuiID HoveredIdPreviousFrame
Definition: imgui_internal.h:892
ImFontAtlasBuildSetupFont
IMGUI_API void ImFontAtlasBuildSetupFont(ImFontAtlas *atlas, ImFont *font, ImFontConfig *font_config, float ascent, float descent)
Definition: imgui_draw.cpp:2111
ImGuiContext::DragCurrentAccum
float DragCurrentAccum
Definition: imgui_internal.h:1018
ImGui::ColorPickerOptionsPopup
IMGUI_API void ColorPickerOptionsPopup(const float *ref_col, ImGuiColorEditFlags flags)
Definition: imgui_widgets.cpp:5000
ImGui::PushColumnClipRect
IMGUI_API void PushColumnClipRect(int column_index)
Definition: imgui_widgets.cpp:7308
ImGuiContext::FocusRequestNextCounterTab
int FocusRequestNextCounterTab
Definition: imgui_internal.h:974
ImGuiContext::SettingsDirtyTimer
float SettingsDirtyTimer
Definition: imgui_internal.h:1034
ImGui::FindBestWindowPosForPopupEx
IMGUI_API ImVec2 FindBestWindowPosForPopupEx(const ImVec2 &ref_pos, const ImVec2 &size, ImGuiDir *last_dir, const ImRect &r_outer, const ImRect &r_avoid, ImGuiPopupPositionPolicy policy=ImGuiPopupPositionPolicy_Default)
Definition: imgui.cpp:7725
ImGuiContext::Windows
ImVector< ImGuiWindow * > Windows
Definition: imgui_internal.h:875
ImGuiWindowSettings::Name
char * Name
Definition: imgui_internal.h:664
ImGuiSeparatorFlags_Vertical
@ ImGuiSeparatorFlags_Vertical
Definition: imgui_internal.h:378
ImTextStrFromUtf8
IMGUI_API int ImTextStrFromUtf8(ImWchar *buf, int buf_size, const char *in_text, const char *in_text_end, const char **in_remaining=NULL)
Definition: imgui.cpp:1686
ImGui::GetCurrentWindow
ImGuiWindow * GetCurrentWindow()
Definition: imgui_internal.h:1480
ImGuiWindow::SkipItems
bool SkipItems
Definition: imgui_internal.h:1307
ImGuiTabItemFlagsPrivate_
ImGuiTabItemFlagsPrivate_
Definition: imgui_internal.h:1411
ImGuiWindow::ResizeBorderHeld
signed char ResizeBorderHeld
Definition: imgui_internal.h:1311
ImPool::ImPool
ImPool()
Definition: imgui_internal.h:294
ImGuiInputTextState::GetUndoAvailCount
int GetUndoAvailCount() const
Definition: imgui_internal.h:649