imgui_internal.h
Go to the documentation of this file.
1 // dear imgui, v1.76 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 #ifndef IMGUI_DISABLE
26 
27 //-----------------------------------------------------------------------------
28 // Header mess
29 //-----------------------------------------------------------------------------
30 
31 #ifndef IMGUI_VERSION
32 #error Must include imgui.h before imgui_internal.h
33 #endif
34 
35 #include <stdio.h> // FILE*, sscanf
36 #include <stdlib.h> // NULL, malloc, free, qsort, atoi, atof
37 #include <math.h> // sqrtf, fabsf, fmodf, powf, floorf, ceilf, cosf, sinf
38 #include <limits.h> // INT_MIN, INT_MAX
39 
40 // Visual Studio warnings
41 #ifdef _MSC_VER
42 #pragma warning (push)
43 #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)
44 #endif
45 
46 // Clang/GCC warnings with -Weverything
47 #if defined(__clang__)
48 #pragma clang diagnostic push
49 #pragma clang diagnostic ignored "-Wunused-function" // for stb_textedit.h
50 #pragma clang diagnostic ignored "-Wmissing-prototypes" // for stb_textedit.h
51 #pragma clang diagnostic ignored "-Wold-style-cast"
52 #if __has_warning("-Wzero-as-null-pointer-constant")
53 #pragma clang diagnostic ignored "-Wzero-as-null-pointer-constant"
54 #endif
55 #if __has_warning("-Wdouble-promotion")
56 #pragma clang diagnostic ignored "-Wdouble-promotion"
57 #endif
58 #elif defined(__GNUC__)
59 #pragma GCC diagnostic push
60 #pragma GCC diagnostic ignored "-Wpragmas" // warning: unknown option after '#pragma GCC diagnostic' kind
61 #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
62 #endif
63 
64 // Legacy defines
65 #ifdef IMGUI_DISABLE_FORMAT_STRING_FUNCTIONS // Renamed in 1.74
66 #error Use IMGUI_DISABLE_DEFAULT_FORMAT_FUNCTIONS
67 #endif
68 #ifdef IMGUI_DISABLE_MATH_FUNCTIONS // Renamed in 1.74
69 #error Use IMGUI_DISABLE_DEFAULT_MATH_FUNCTIONS
70 #endif
71 
72 //-----------------------------------------------------------------------------
73 // Forward declarations
74 //-----------------------------------------------------------------------------
75 
76 struct ImBitVector; // Store 1-bit per value
77 struct ImRect; // An axis-aligned rectangle (2 points)
78 struct ImDrawDataBuilder; // Helper to build a ImDrawData instance
79 struct ImDrawListSharedData; // Data shared between all ImDrawList instances
80 struct ImGuiColorMod; // Stacked color modifier, backup of modified data so we can restore it
81 struct ImGuiColumnData; // Storage data for a single column
82 struct ImGuiColumns; // Storage data for a columns set
83 struct ImGuiContext; // Main Dear ImGui context
84 struct ImGuiDataTypeInfo; // Type information associated to a ImGuiDataType enum
85 struct ImGuiGroupData; // Stacked storage data for BeginGroup()/EndGroup()
86 struct ImGuiInputTextState; // Internal state of the currently focused/edited text input box
87 struct ImGuiItemHoveredDataBackup; // Backup and restore IsItemHovered() internal data
88 struct ImGuiMenuColumns; // Simple column measurement, currently used for MenuItem() only
89 struct ImGuiNavMoveResult; // Result of a directional navigation move query result
90 struct ImGuiNextWindowData; // Storage for SetNextWindow** functions
91 struct ImGuiNextItemData; // Storage for SetNextItem** functions
92 struct ImGuiPopupData; // Storage for current popup stack
93 struct ImGuiSettingsHandler; // Storage for one type registered in the .ini file
94 struct ImGuiStyleMod; // Stacked style modifier, backup of modified data so we can restore it
95 struct ImGuiTabBar; // Storage for a tab bar
96 struct ImGuiTabItem; // Storage for a tab item (within a tab bar)
97 struct ImGuiWindow; // Storage for one window
98 struct ImGuiWindowTempData; // Temporary storage for one window (that's the data which in theory we could ditch at the end of the frame)
99 struct ImGuiWindowSettings; // Storage for a window .ini settings (we keep one of those even if the actual window wasn't instanced during this session)
100 
101 // Use your programming IDE "Go to definition" facility on the names of the center columns to find the actual flags/enum lists.
102 typedef int ImGuiLayoutType; // -> enum ImGuiLayoutType_ // Enum: Horizontal or vertical
103 typedef int ImGuiButtonFlags; // -> enum ImGuiButtonFlags_ // Flags: for ButtonEx(), ButtonBehavior()
104 typedef int ImGuiColumnsFlags; // -> enum ImGuiColumnsFlags_ // Flags: BeginColumns()
105 typedef int ImGuiDragFlags; // -> enum ImGuiDragFlags_ // Flags: for DragBehavior()
106 typedef int ImGuiItemFlags; // -> enum ImGuiItemFlags_ // Flags: for PushItemFlag()
107 typedef int ImGuiItemStatusFlags; // -> enum ImGuiItemStatusFlags_ // Flags: for DC.LastItemStatusFlags
108 typedef int ImGuiNavHighlightFlags; // -> enum ImGuiNavHighlightFlags_ // Flags: for RenderNavHighlight()
109 typedef int ImGuiNavDirSourceFlags; // -> enum ImGuiNavDirSourceFlags_ // Flags: for GetNavInputAmount2d()
110 typedef int ImGuiNavMoveFlags; // -> enum ImGuiNavMoveFlags_ // Flags: for navigation requests
111 typedef int ImGuiNextItemDataFlags; // -> enum ImGuiNextItemDataFlags_ // Flags: for SetNextItemXXX() functions
112 typedef int ImGuiNextWindowDataFlags; // -> enum ImGuiNextWindowDataFlags_// Flags: for SetNextWindowXXX() functions
113 typedef int ImGuiSeparatorFlags; // -> enum ImGuiSeparatorFlags_ // Flags: for SeparatorEx()
114 typedef int ImGuiSliderFlags; // -> enum ImGuiSliderFlags_ // Flags: for SliderBehavior()
115 typedef int ImGuiTextFlags; // -> enum ImGuiTextFlags_ // Flags: for TextEx()
116 typedef int ImGuiTooltipFlags; // -> enum ImGuiTooltipFlags_ // Flags: for BeginTooltipEx()
117 
118 //-------------------------------------------------------------------------
119 // STB libraries includes
120 //-------------------------------------------------------------------------
121 
122 namespace ImStb
123 {
124 
125 #undef STB_TEXTEDIT_STRING
126 #undef STB_TEXTEDIT_CHARTYPE
127 #define STB_TEXTEDIT_STRING ImGuiInputTextState
128 #define STB_TEXTEDIT_CHARTYPE ImWchar
129 #define STB_TEXTEDIT_GETWIDTH_NEWLINE -1.0f
130 #define STB_TEXTEDIT_UNDOSTATECOUNT 99
131 #define STB_TEXTEDIT_UNDOCHARCOUNT 999
132 #include "imstb_textedit.h"
133 
134 } // namespace ImStb
135 
136 //-----------------------------------------------------------------------------
137 // Context pointer
138 //-----------------------------------------------------------------------------
139 
140 #ifndef GImGui
141 extern IMGUI_API ImGuiContext* GImGui; // Current implicit context pointer
142 #endif
143 
144 //-----------------------------------------------------------------------------
145 // Macros
146 //-----------------------------------------------------------------------------
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 // Static Asserts
154 #if (__cplusplus >= 201100)
155 #define IM_STATIC_ASSERT(_COND) static_assert(_COND, "")
156 #else
157 #define IM_STATIC_ASSERT(_COND) typedef char static_assertion_##__line__[(_COND)?1:-1]
158 #endif
159 
160 // "Paranoid" Debug Asserts are meant to only be enabled during specific debugging/work, otherwise would slow down the code too much.
161 // We currently don't have many of those so the effect is currently negligible, but onward intent to add more aggressive ones in the code.
162 //#define IMGUI_DEBUG_PARANOID
163 #ifdef IMGUI_DEBUG_PARANOID
164 #define IM_ASSERT_PARANOID(_EXPR) IM_ASSERT(_EXPR)
165 #else
166 #define IM_ASSERT_PARANOID(_EXPR)
167 #endif
168 
169 // Error handling
170 // Down the line in some frameworks/languages we would like to have a way to redirect those to the programmer and recover from more faults.
171 #ifndef IM_ASSERT_USER_ERROR
172 #define IM_ASSERT_USER_ERROR(_EXP,_MSG) IM_ASSERT((_EXP) && _MSG) // Recoverable User Error
173 #endif
174 
175 // Misc Macros
176 #define IM_PI 3.14159265358979323846f
177 #ifdef _WIN32
178 #define IM_NEWLINE "\r\n" // Play it nice with Windows users (Update: since 2018-05, Notepad finally appears to support Unix-style carriage returns!)
179 #else
180 #define IM_NEWLINE "\n"
181 #endif
182 #define IM_TABSIZE (4)
183 #define IM_F32_TO_INT8_UNBOUND(_VAL) ((int)((_VAL) * 255.0f + ((_VAL)>=0 ? 0.5f : -0.5f))) // Unsaturated, for display purpose
184 #define IM_F32_TO_INT8_SAT(_VAL) ((int)(ImSaturate(_VAL) * 255.0f + 0.5f)) // Saturated, always output 0..255
185 #define IM_FLOOR(_VAL) ((float)(int)(_VAL)) // ImFloor() is not inlined in MSVC debug builds
186 #define IM_ROUND(_VAL) ((float)(int)((_VAL) + 0.5f)) //
187 
188 // Enforce cdecl calling convention for functions called by the standard library, in case compilation settings changed the default to e.g. __vectorcall
189 #ifdef _MSC_VER
190 #define IMGUI_CDECL __cdecl
191 #else
192 #define IMGUI_CDECL
193 #endif
194 
195 //-----------------------------------------------------------------------------
196 // Generic helpers
197 // Note that the ImXXX helpers functions are lower-level than ImGui functions.
198 // ImGui functions or the ImGui context are never called/used from other ImXXX functions.
199 //-----------------------------------------------------------------------------
200 // - Helpers: Misc
201 // - Helpers: Bit manipulation
202 // - Helpers: String, Formatting
203 // - Helpers: UTF-8 <> wchar conversions
204 // - Helpers: ImVec2/ImVec4 operators
205 // - Helpers: Maths
206 // - Helpers: Geometry
207 // - Helpers: Bit arrays
208 // - Helper: ImBitVector
209 // - Helper: ImPool<>
210 // - Helper: ImChunkStream<>
211 //-----------------------------------------------------------------------------
212 
213 // Helpers: Misc
214 #define ImQsort qsort
215 IMGUI_API ImU32 ImHashData(const void* data, size_t data_size, ImU32 seed = 0);
216 IMGUI_API ImU32 ImHashStr(const char* data, size_t data_size = 0, ImU32 seed = 0);
217 #ifndef IMGUI_DISABLE_OBSOLETE_FUNCTIONS
218 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]
219 #endif
220 
221 // Helpers: Color Blending
223 
224 // Helpers: Bit manipulation
225 static inline bool ImIsPowerOfTwo(int v) { return v != 0 && (v & (v - 1)) == 0; }
226 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; }
227 
228 // Helpers: String, Formatting
229 IMGUI_API int ImStricmp(const char* str1, const char* str2);
230 IMGUI_API int ImStrnicmp(const char* str1, const char* str2, size_t count);
231 IMGUI_API void ImStrncpy(char* dst, const char* src, size_t count);
232 IMGUI_API char* ImStrdup(const char* str);
233 IMGUI_API char* ImStrdupcpy(char* dst, size_t* p_dst_size, const char* str);
234 IMGUI_API const char* ImStrchrRange(const char* str_begin, const char* str_end, char c);
235 IMGUI_API int ImStrlenW(const ImWchar* str);
236 IMGUI_API const char* ImStreolRange(const char* str, const char* str_end); // End end-of-line
237 IMGUI_API const ImWchar*ImStrbolW(const ImWchar* buf_mid_line, const ImWchar* buf_begin); // Find beginning-of-line
238 IMGUI_API const char* ImStristr(const char* haystack, const char* haystack_end, const char* needle, const char* needle_end);
239 IMGUI_API void ImStrTrimBlanks(char* str);
240 IMGUI_API const char* ImStrSkipBlank(const char* str);
241 IMGUI_API int ImFormatString(char* buf, size_t buf_size, const char* fmt, ...) IM_FMTARGS(3);
242 IMGUI_API int ImFormatStringV(char* buf, size_t buf_size, const char* fmt, va_list args) IM_FMTLIST(3);
245 IMGUI_API const char* ImParseFormatTrimDecorations(const char* format, char* buf, size_t buf_size);
246 IMGUI_API int ImParseFormatPrecision(const char* format, int default_value);
247 static inline bool ImCharIsBlankA(char c) { return c == ' ' || c == '\t'; }
248 static inline bool ImCharIsBlankW(unsigned int c) { return c == ' ' || c == '\t' || c == 0x3000; }
249 
250 // Helpers: UTF-8 <> wchar conversions
251 IMGUI_API int ImTextStrToUtf8(char* buf, int buf_size, const ImWchar* in_text, const ImWchar* in_text_end); // return output UTF-8 bytes count
252 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
253 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
254 IMGUI_API int ImTextCountCharsFromUtf8(const char* in_text, const char* in_text_end); // return number of UTF-8 code-points (NOT bytes count)
255 IMGUI_API int ImTextCountUtf8BytesFromChar(const char* in_text, const char* in_text_end); // return number of bytes to express one char in UTF-8
256 IMGUI_API int ImTextCountUtf8BytesFromStr(const ImWchar* in_text, const ImWchar* in_text_end); // return number of bytes to express string in UTF-8
257 
258 // Helpers: ImVec2/ImVec4 operators
259 // 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.)
260 // We unfortunately don't have a unary- operator for ImVec2 because this would needs to be defined inside the class itself.
261 #ifdef IMGUI_DEFINE_MATH_OPERATORS
262 static inline ImVec2 operator*(const ImVec2& lhs, const float rhs) { return ImVec2(lhs.x*rhs, lhs.y*rhs); }
263 static inline ImVec2 operator/(const ImVec2& lhs, const float rhs) { return ImVec2(lhs.x/rhs, lhs.y/rhs); }
264 static inline ImVec2 operator+(const ImVec2& lhs, const ImVec2& rhs) { return ImVec2(lhs.x+rhs.x, lhs.y+rhs.y); }
265 static inline ImVec2 operator-(const ImVec2& lhs, const ImVec2& rhs) { return ImVec2(lhs.x-rhs.x, lhs.y-rhs.y); }
266 static inline ImVec2 operator*(const ImVec2& lhs, const ImVec2& rhs) { return ImVec2(lhs.x*rhs.x, lhs.y*rhs.y); }
267 static inline ImVec2 operator/(const ImVec2& lhs, const ImVec2& rhs) { return ImVec2(lhs.x/rhs.x, lhs.y/rhs.y); }
268 static inline ImVec2& operator*=(ImVec2& lhs, const float rhs) { lhs.x *= rhs; lhs.y *= rhs; return lhs; }
269 static inline ImVec2& operator/=(ImVec2& lhs, const float rhs) { lhs.x /= rhs; lhs.y /= rhs; return lhs; }
270 static inline ImVec2& operator+=(ImVec2& lhs, const ImVec2& rhs) { lhs.x += rhs.x; lhs.y += rhs.y; return lhs; }
271 static inline ImVec2& operator-=(ImVec2& lhs, const ImVec2& rhs) { lhs.x -= rhs.x; lhs.y -= rhs.y; return lhs; }
272 static inline ImVec2& operator*=(ImVec2& lhs, const ImVec2& rhs) { lhs.x *= rhs.x; lhs.y *= rhs.y; return lhs; }
273 static inline ImVec2& operator/=(ImVec2& lhs, const ImVec2& rhs) { lhs.x /= rhs.x; lhs.y /= rhs.y; return lhs; }
274 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); }
275 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); }
276 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); }
277 #endif
278 
279 // Helpers: File System
280 #ifdef IMGUI_DISABLE_FILE_FUNCTIONS
281 #define IMGUI_DISABLE_DEFAULT_FILE_FUNCTIONS
282 typedef void* ImFileHandle;
283 static inline ImFileHandle ImFileOpen(const char*, const char*) { return NULL; }
284 static inline bool ImFileClose(ImFileHandle) { return false; }
285 static inline ImU64 ImFileGetSize(ImFileHandle) { return (ImU64)-1; }
286 static inline ImU64 ImFileRead(void*, ImU64, ImU64, ImFileHandle) { return 0; }
287 static inline ImU64 ImFileWrite(const void*, ImU64, ImU64, ImFileHandle) { return 0; }
288 #endif
289 
290 #ifndef IMGUI_DISABLE_DEFAULT_FILE_FUNCTIONS
291 typedef FILE* ImFileHandle;
292 IMGUI_API ImFileHandle ImFileOpen(const char* filename, const char* mode);
297 #else
298 #define IMGUI_DISABLE_TTY_FUNCTIONS // Can't use stdout, fflush if we are not using default file functions
299 #endif
300 IMGUI_API void* ImFileLoadToMemory(const char* filename, const char* mode, size_t* out_file_size = NULL, int padding_bytes = 0);
301 
302 // Helpers: Maths
303 // - Wrapper for standard libs functions. (Note that imgui_demo.cpp does _not_ use them to keep the code easy to copy)
304 #ifndef IMGUI_DISABLE_DEFAULT_MATH_FUNCTIONS
305 #define ImFabs(X) fabsf(X)
306 #define ImSqrt(X) sqrtf(X)
307 #define ImFmod(X, Y) fmodf((X), (Y))
308 #define ImCos(X) cosf(X)
309 #define ImSin(X) sinf(X)
310 #define ImAcos(X) acosf(X)
311 #define ImAtan2(Y, X) atan2f((Y), (X))
312 #define ImAtof(STR) atof(STR)
313 #define ImFloorStd(X) 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 e.g. stb_truetype)
314 #define ImCeil(X) ceilf(X)
315 static inline float ImPow(float x, float y) { return powf(x, y); } // DragBehaviorT/SliderBehaviorT uses ImPow with either float/double and need the precision
316 static inline double ImPow(double x, double y) { return pow(x, y); }
317 #endif
318 // - ImMin/ImMax/ImClamp/ImLerp/ImSwap are used by widgets which support variety of types: signed/unsigned int/long long float/double
319 // (Exceptionally using templates here but we could also redefine them for those types)
320 template<typename T> static inline T ImMin(T lhs, T rhs) { return lhs < rhs ? lhs : rhs; }
321 template<typename T> static inline T ImMax(T lhs, T rhs) { return lhs >= rhs ? lhs : rhs; }
322 template<typename T> static inline T ImClamp(T v, T mn, T mx) { return (v < mn) ? mn : (v > mx) ? mx : v; }
323 template<typename T> static inline T ImLerp(T a, T b, float t) { return (T)(a + (b - a) * t); }
324 template<typename T> static inline void ImSwap(T& a, T& b) { T tmp = a; a = b; b = tmp; }
325 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; }
326 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; }
327 // - Misc maths helpers
328 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); }
329 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); }
330 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); }
331 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); }
332 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); }
333 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); }
334 static inline float ImSaturate(float f) { return (f < 0.0f) ? 0.0f : (f > 1.0f) ? 1.0f : f; }
335 static inline float ImLengthSqr(const ImVec2& lhs) { return lhs.x*lhs.x + lhs.y*lhs.y; }
336 static inline float ImLengthSqr(const ImVec4& lhs) { return lhs.x*lhs.x + lhs.y*lhs.y + lhs.z*lhs.z + lhs.w*lhs.w; }
337 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; }
338 static inline float ImFloor(float f) { return (float)(int)(f); }
339 static inline ImVec2 ImFloor(const ImVec2& v) { return ImVec2((float)(int)(v.x), (float)(int)(v.y)); }
340 static inline int ImModPositive(int a, int b) { return (a + b) % b; }
341 static inline float ImDot(const ImVec2& a, const ImVec2& b) { return a.x * b.x + a.y * b.y; }
342 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); }
343 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; }
344 static inline ImVec2 ImMul(const ImVec2& lhs, const ImVec2& rhs) { return ImVec2(lhs.x * rhs.x, lhs.y * rhs.y); }
345 
346 // Helpers: Geometry
347 IMGUI_API ImVec2 ImBezierCalc(const ImVec2& p1, const ImVec2& p2, const ImVec2& p3, const ImVec2& p4, float t); // Cubic Bezier
348 IMGUI_API ImVec2 ImBezierClosestPoint(const ImVec2& p1, const ImVec2& p2, const ImVec2& p3, const ImVec2& p4, const ImVec2& p, int num_segments); // For curves with explicit number of segments
349 IMGUI_API ImVec2 ImBezierClosestPointCasteljau(const ImVec2& p1, const ImVec2& p2, const ImVec2& p3, const ImVec2& p4, const ImVec2& p, float tess_tol);// For auto-tessellated curves you can use tess_tol = style.CurveTessellationTol
350 IMGUI_API ImVec2 ImLineClosestPoint(const ImVec2& a, const ImVec2& b, const ImVec2& p);
351 IMGUI_API bool ImTriangleContainsPoint(const ImVec2& a, const ImVec2& b, const ImVec2& c, const ImVec2& p);
352 IMGUI_API ImVec2 ImTriangleClosestPoint(const ImVec2& a, const ImVec2& b, const ImVec2& c, const ImVec2& p);
353 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);
354 inline float ImTriangleArea(const ImVec2& a, const ImVec2& b, const ImVec2& c) { return ImFabs((a.x * (b.y - c.y)) + (b.x * (c.y - a.y)) + (c.x * (a.y - b.y))) * 0.5f; }
355 IMGUI_API ImGuiDir ImGetDirQuadrantFromDelta(float dx, float dy);
356 
357 // Helpers: Bit arrays
358 inline bool ImBitArrayTestBit(const ImU32* arr, int n) { ImU32 mask = (ImU32)1 << (n & 31); return (arr[n >> 5] & mask) != 0; }
359 inline void ImBitArrayClearBit(ImU32* arr, int n) { ImU32 mask = (ImU32)1 << (n & 31); arr[n >> 5] &= ~mask; }
360 inline void ImBitArraySetBit(ImU32* arr, int n) { ImU32 mask = (ImU32)1 << (n & 31); arr[n >> 5] |= mask; }
361 inline void ImBitArraySetBitRange(ImU32* arr, int n, int n2)
362 {
363  while (n <= n2)
364  {
365  int a_mod = (n & 31);
366  int b_mod = ((n2 >= n + 31) ? 31 : (n2 & 31)) + 1;
367  ImU32 mask = (ImU32)(((ImU64)1 << b_mod) - 1) & ~(ImU32)(((ImU64)1 << a_mod) - 1);
368  arr[n >> 5] |= mask;
369  n = (n + 32) & ~31;
370  }
371 }
372 
373 // Helper: ImBitVector
374 // Store 1-bit per value.
376 {
378  void Create(int sz) { Storage.resize((sz + 31) >> 5); memset(Storage.Data, 0, (size_t)Storage.Size * sizeof(Storage.Data[0])); }
379  void Clear() { Storage.clear(); }
380  bool TestBit(int n) const { IM_ASSERT(n < (Storage.Size << 5)); return ImBitArrayTestBit(Storage.Data, n); }
381  void SetBit(int n) { IM_ASSERT(n < (Storage.Size << 5)); ImBitArraySetBit(Storage.Data, n); }
382  void ClearBit(int n) { IM_ASSERT(n < (Storage.Size << 5)); ImBitArrayClearBit(Storage.Data, n); }
383 };
384 
385 // Helper: ImPool<>
386 // Basic keyed storage for contiguous instances, slow/amortized insertion, O(1) indexable, O(Log N) queries by ID over a dense/hot buffer,
387 // Honor constructor/destructor. Add/remove invalidate all pointers. Indexes have the same lifetime as the associated object.
388 typedef int ImPoolIdx;
389 template<typename T>
391 {
392  ImVector<T> Buf; // Contiguous data
393  ImGuiStorage Map; // ID->Index
394  ImPoolIdx FreeIdx; // Next free idx to use
395 
396  ImPool() { FreeIdx = 0; }
397  ~ImPool() { Clear(); }
398  T* GetByKey(ImGuiID key) { int idx = Map.GetInt(key, -1); return (idx != -1) ? &Buf[idx] : NULL; }
399  T* GetByIndex(ImPoolIdx n) { return &Buf[n]; }
400  ImPoolIdx GetIndex(const T* p) const { IM_ASSERT(p >= Buf.Data && p < Buf.Data + Buf.Size); return (ImPoolIdx)(p - Buf.Data); }
401  T* GetOrAddByKey(ImGuiID key) { int* p_idx = Map.GetIntRef(key, -1); if (*p_idx != -1) return &Buf[*p_idx]; *p_idx = FreeIdx; return Add(); }
402  bool Contains(const T* p) const { return (p >= Buf.Data && p < Buf.Data + Buf.Size); }
403  void Clear() { for (int n = 0; n < Map.Data.Size; n++) { int idx = Map.Data[n].val_i; if (idx != -1) Buf[idx].~T(); } Map.Clear(); Buf.clear(); FreeIdx = 0; }
404  T* Add() { int idx = FreeIdx; if (idx == Buf.Size) { Buf.resize(Buf.Size + 1); FreeIdx++; } else { FreeIdx = *(int*)&Buf[idx]; } IM_PLACEMENT_NEW(&Buf[idx]) T(); return &Buf[idx]; }
405  void Remove(ImGuiID key, const T* p) { Remove(key, GetIndex(p)); }
406  void Remove(ImGuiID key, ImPoolIdx idx) { Buf[idx].~T(); *(int*)&Buf[idx] = FreeIdx; FreeIdx = idx; Map.SetInt(key, -1); }
407  void Reserve(int capacity) { Buf.reserve(capacity); Map.Data.reserve(capacity); }
408  int GetSize() const { return Buf.Size; }
409 };
410 
411 // Helper: ImChunkStream<>
412 // Build and iterate a contiguous stream of variable-sized structures.
413 // This is used by Settings to store persistent data while reducing allocation count.
414 // We store the chunk size first, and align the final size on 4 bytes boundaries (this what the '(X + 3) & ~3' statement is for)
415 // The tedious/zealous amount of casting is to avoid -Wcast-align warnings.
416 template<typename T>
418 {
420 
421  void clear() { Buf.clear(); }
422  bool empty() const { return Buf.Size == 0; }
423  int size() const { return Buf.Size; }
424  T* alloc_chunk(size_t sz) { size_t HDR_SZ = 4; sz = ((HDR_SZ + sz) + 3u) & ~3u; int off = Buf.Size; Buf.resize(off + (int)sz); ((int*)(void*)(Buf.Data + off))[0] = (int)sz; return (T*)(void*)(Buf.Data + off + (int)HDR_SZ); }
425  T* begin() { size_t HDR_SZ = 4; if (!Buf.Data) return NULL; return (T*)(void*)(Buf.Data + HDR_SZ); }
426  T* next_chunk(T* p) { size_t HDR_SZ = 4; IM_ASSERT(p >= begin() && p < end()); p = (T*)(void*)((char*)(void*)p + chunk_size(p)); if (p == (T*)(void*)((char*)end() + HDR_SZ)) return (T*)0; IM_ASSERT(p < end()); return p; }
427  int chunk_size(const T* p) { return ((const int*)p)[-1]; }
428  T* end() { return (T*)(void*)(Buf.Data + Buf.Size); }
429  int offset_from_ptr(const T* p) { IM_ASSERT(p >= begin() && p < end()); const ptrdiff_t off = (const char*)p - Buf.Data; return (int)off; }
430  T* ptr_from_offset(int off) { IM_ASSERT(off >= 4 && off < Buf.Size); return (T*)(void*)(Buf.Data + off); }
431 };
432 
433 //-----------------------------------------------------------------------------
434 // Misc data structures
435 //-----------------------------------------------------------------------------
436 
438 {
440  ImGuiButtonFlags_Repeat = 1 << 0, // hold to repeat
441  ImGuiButtonFlags_PressedOnClick = 1 << 1, // return true on click (mouse down event)
442  ImGuiButtonFlags_PressedOnClickRelease = 1 << 2, // [Default] return true on click + release on same item <-- this is what the majority of Button are using
443  ImGuiButtonFlags_PressedOnClickReleaseAnywhere = 1 << 3, // return true on click + release even if the release event is not done while hovering the item
444  ImGuiButtonFlags_PressedOnRelease = 1 << 4, // return true on release (default requires click+release)
445  ImGuiButtonFlags_PressedOnDoubleClick = 1 << 5, // return true on double-click (default requires click+release)
446  ImGuiButtonFlags_PressedOnDragDropHold = 1 << 6, // return true when held into while we are drag and dropping another item (used by e.g. tree nodes, collapsing headers)
447  ImGuiButtonFlags_FlattenChildren = 1 << 7, // allow interactions even if a child window is overlapping
448  ImGuiButtonFlags_AllowItemOverlap = 1 << 8, // require previous frame HoveredId to either match id or be null before being usable, use along with SetItemAllowOverlap()
449  ImGuiButtonFlags_DontClosePopups = 1 << 9, // disable automatically closing parent popup on press // [UNUSED]
450  ImGuiButtonFlags_Disabled = 1 << 10, // disable interactions
451  ImGuiButtonFlags_AlignTextBaseLine = 1 << 11, // vertically align button to match text baseline - ButtonEx() only // FIXME: Should be removed and handled by SmallButton(), not possible currently because of DC.CursorPosPrevLine
452  ImGuiButtonFlags_NoKeyModifiers = 1 << 12, // disable mouse interaction if a key modifier is held
453  ImGuiButtonFlags_NoHoldingActiveId = 1 << 13, // don't set ActiveId while holding the mouse (ImGuiButtonFlags_PressedOnClick only)
454  ImGuiButtonFlags_NoNavFocus = 1 << 14, // don't override navigation focus when activated
455  ImGuiButtonFlags_NoHoveredOnFocus = 1 << 15, // don't report as hovered when nav focus is on this item
456  ImGuiButtonFlags_MouseButtonLeft = 1 << 16, // [Default] react on left mouse button
457  ImGuiButtonFlags_MouseButtonRight = 1 << 17, // react on right mouse button
458  ImGuiButtonFlags_MouseButtonMiddle = 1 << 18, // react on center mouse button
459 
465 };
466 
468 {
471 };
472 
474 {
477 };
478 
480 {
481  // Default: 0
483  ImGuiColumnsFlags_NoBorder = 1 << 0, // Disable column dividers
484  ImGuiColumnsFlags_NoResize = 1 << 1, // Disable resizing columns when clicking on the dividers
485  ImGuiColumnsFlags_NoPreserveWidths = 1 << 2, // Disable column width preservation when adjusting columns
486  ImGuiColumnsFlags_NoForceWithinWindow = 1 << 3, // Disable forcing columns to fit within window
487  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.
488 };
489 
490 // Extend ImGuiSelectableFlags_
492 {
493  // NB: need to be in sync with last value of ImGuiSelectableFlags_
495  ImGuiSelectableFlags_SelectOnClick = 1 << 21, // Override button behavior to react on Click (default is Click+Release)
496  ImGuiSelectableFlags_SelectOnRelease = 1 << 22, // Override button behavior to react on Release (default is Click+Release)
497  ImGuiSelectableFlags_SpanAvailWidth = 1 << 23, // Span all avail width even if we declared less for layout purpose. FIXME: We may be able to remove this (added in 6251d379, 2bcafc86 for menus)
498  ImGuiSelectableFlags_DrawHoveredWhenHeld= 1 << 24, // Always show active when held, even is not hovered. This concept could probably be renamed/formalized somehow.
500 };
501 
502 // Extend ImGuiTreeNodeFlags_
504 {
506 };
507 
509 {
511  ImGuiSeparatorFlags_Horizontal = 1 << 0, // Axis default to current layout type, so generally Horizontal unless e.g. in a menu bar
514 };
515 
516 // Transient per-window flags, reset at the beginning of the frame. For child window, inherited from parent on first Begin().
517 // This is going to be exposed in imgui.h when stabilized enough.
519 {
521  ImGuiItemFlags_NoTabStop = 1 << 0, // false
522  ImGuiItemFlags_ButtonRepeat = 1 << 1, // false // Button() will return true multiple times based on io.KeyRepeatDelay and io.KeyRepeatRate settings.
523  ImGuiItemFlags_Disabled = 1 << 2, // false // [BETA] Disable interactions but doesn't affect visuals yet. See github.com/ocornut/imgui/issues/211
524  ImGuiItemFlags_NoNav = 1 << 3, // false
526  ImGuiItemFlags_SelectableDontClosePopup = 1 << 5, // false // MenuItem/Selectable() automatically closes current Popup window
527  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)
529 };
530 
531 // Storage for LastItem data
533 {
537  ImGuiItemStatusFlags_Edited = 1 << 2, // Value exposed by item was edited in the current frame (should match the bool return value of most widgets)
538  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.
539  ImGuiItemStatusFlags_ToggledOpen = 1 << 4, // Set when TreeNode() reports toggling their open state.
540  ImGuiItemStatusFlags_HasDeactivated = 1 << 5, // Set if the widget/group is able to provide data for the ImGuiItemStatusFlags_Deactivated flag.
541  ImGuiItemStatusFlags_Deactivated = 1 << 6 // Only valid if ImGuiItemStatusFlags_HasDeactivated is set.
542 
543 #ifdef IMGUI_ENABLE_TEST_ENGINE
544  , // [imgui_tests only]
545  ImGuiItemStatusFlags_Openable = 1 << 10, //
546  ImGuiItemStatusFlags_Opened = 1 << 11, //
547  ImGuiItemStatusFlags_Checkable = 1 << 12, //
548  ImGuiItemStatusFlags_Checked = 1 << 13 //
549 #endif
550 };
551 
553 {
556 };
557 
559 {
561  ImGuiTooltipFlags_OverridePreviousTooltip = 1 << 0 // Override will clear/ignore previously submitted tooltip (defaults to append)
562 };
563 
564 // FIXME: this is in development, not exposed/functional as a generic feature yet.
565 // Horizontal/Vertical enums are fixed to 0/1 so they may be used to index ImVec2
567 {
570 };
571 
573 {
579 };
580 
581 // X/Y enums are fixed to 0/1 so they may be used to index ImVec2
583 {
587 };
588 
590 {
593 };
594 
596 {
600  ImGuiInputSource_NavKeyboard, // Only used occasionally for storage, not tested/handled by most code
603 };
604 
605 // FIXME-NAV: Clarify/expose various repeat delay/rate
607 {
614 };
615 
617 {
621  ImGuiNavHighlightFlags_AlwaysDraw = 1 << 2, // Draw rectangular highlight if (g.NavId == id) _even_ when using the mouse.
623 };
624 
626 {
631 };
632 
634 {
636  ImGuiNavMoveFlags_LoopX = 1 << 0, // On failed request, restart from opposite side
638  ImGuiNavMoveFlags_WrapX = 1 << 2, // On failed request, request from opposite side one line down (when NavDir==right) or one line up (when NavDir==left)
639  ImGuiNavMoveFlags_WrapY = 1 << 3, // This is not super useful for provided for completeness
640  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)
641  ImGuiNavMoveFlags_AlsoScoreVisibleSet = 1 << 5, // Store alternate result in NavMoveResultLocalVisibleSet that only comprise elements that are already fully visible.
643 };
644 
646 {
650 };
651 
653 {
654  ImGuiNavLayer_Main = 0, // Main scrolling layer
655  ImGuiNavLayer_Menu = 1, // Menu layer (access with Alt/ImGuiNavInput_Menu)
657 };
658 
660 {
663 };
664 
665 // 1D vector (this odd construct is used to facilitate the transition between 1D and 2D, and the maintenance of some branches/patches)
666 struct ImVec1
667 {
668  float x;
669  ImVec1() { x = 0.0f; }
670  ImVec1(float _x) { x = _x; }
671 };
672 
673 // 2D vector (half-size integer)
674 struct ImVec2ih
675 {
676  short x, y;
677  ImVec2ih() { x = y = 0; }
678  ImVec2ih(short _x, short _y) { x = _x; y = _y; }
679  explicit ImVec2ih(const ImVec2& rhs) { x = (short)rhs.x; y = (short)rhs.y; }
680 };
681 
682 // 2D axis aligned bounding-box
683 // NB: we can't rely on ImVec2 math operators being available here
685 {
686  ImVec2 Min; // Upper-left
687  ImVec2 Max; // Lower-right
688 
689  ImRect() : Min(0.0f, 0.0f), Max(0.0f, 0.0f) {}
690  ImRect(const ImVec2& min, const ImVec2& max) : Min(min), Max(max) {}
691  ImRect(const ImVec4& v) : Min(v.x, v.y), Max(v.z, v.w) {}
692  ImRect(float x1, float y1, float x2, float y2) : Min(x1, y1), Max(x2, y2) {}
693 
694  ImVec2 GetCenter() const { return ImVec2((Min.x + Max.x) * 0.5f, (Min.y + Max.y) * 0.5f); }
695  ImVec2 GetSize() const { return ImVec2(Max.x - Min.x, Max.y - Min.y); }
696  float GetWidth() const { return Max.x - Min.x; }
697  float GetHeight() const { return Max.y - Min.y; }
698  ImVec2 GetTL() const { return Min; } // Top-left
699  ImVec2 GetTR() const { return ImVec2(Max.x, Min.y); } // Top-right
700  ImVec2 GetBL() const { return ImVec2(Min.x, Max.y); } // Bottom-left
701  ImVec2 GetBR() const { return Max; } // Bottom-right
702  bool Contains(const ImVec2& p) const { return p.x >= Min.x && p.y >= Min.y && p.x < Max.x && p.y < Max.y; }
703  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; }
704  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; }
705  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; }
706  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; }
707  void Expand(const float amount) { Min.x -= amount; Min.y -= amount; Max.x += amount; Max.y += amount; }
708  void Expand(const ImVec2& amount) { Min.x -= amount.x; Min.y -= amount.y; Max.x += amount.x; Max.y += amount.y; }
709  void Translate(const ImVec2& d) { Min.x += d.x; Min.y += d.y; Max.x += d.x; Max.y += d.y; }
710  void TranslateX(float dx) { Min.x += dx; Max.x += dx; }
711  void TranslateY(float dy) { Min.y += dy; Max.y += dy; }
712  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.
713  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.
714  void Floor() { Min.x = IM_FLOOR(Min.x); Min.y = IM_FLOOR(Min.y); Max.x = IM_FLOOR(Max.x); Max.y = IM_FLOOR(Max.y); }
715  bool IsInverted() const { return Min.x > Max.x || Min.y > Max.y; }
716 };
717 
718 // Type information associated to one ImGuiDataType. Retrieve with DataTypeGetInfo().
720 {
721  size_t Size; // Size in byte
722  const char* PrintFmt; // Default printf format for the type
723  const char* ScanFmt; // Default scanf format for the type
724 };
725 
726 // Stacked color modifier, backup of modified data so we can restore it
728 {
731 };
732 
733 // Stacked style modifier, backup of modified data so we can restore it. Data type inferred from the variable.
735 {
737  union { int BackupInt[2]; float BackupFloat[2]; };
741 };
742 
743 // Stacked storage data for BeginGroup()/EndGroup()
745 {
754  bool EmitItem;
755 };
756 
757 // Simple column measurement, currently used for MenuItem() only.. This is very short-sighted/throw-away code and NOT a generic helper.
759 {
760  float Spacing;
761  float Width, NextWidth;
762  float Pos[3], NextWidths[3];
763 
765  void Update(int count, float spacing, bool clear);
766  float DeclColumns(float w0, float w1, float w2);
767  float CalcExtraSpace(float avail_w) const;
768 };
769 
770 // Internal state of the currently focused/edited text input box
771 // For a given item ID, access with ImGui::GetInputTextState()
773 {
774  ImGuiID ID; // widget id owning the text state
775  int CurLenW, CurLenA; // we need to maintain our buffer length in both UTF-8 and wchar format. UTF-8 length is valid even if TextA is not.
776  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.
777  ImVector<char> TextA; // temporary UTF8 buffer for callbacks and other operations. this is not updated in every code-path! size=capacity.
778  ImVector<char> InitialTextA; // backup of end-user buffer at the time of focus (in UTF-8, unaltered)
779  bool TextAIsValid; // temporary UTF8 buffer is not initially valid before we make the widget active (until then we pull the data from user argument)
780  int BufCapacityA; // end-user buffer capacity
781  float ScrollX; // horizontal scrolling/offset
782  ImStb::STB_TexteditState Stb; // state for stb_textedit.h
783  float CursorAnim; // timer for cursor blink, reset on every user action so the cursor reappears immediately
784  bool CursorFollow; // set when we want scrolling to follow the current cursor position (not always!)
785  bool SelectedAllMouseLock; // after a double-click to select all, we ignore further mouse drags to update selection
786  ImGuiInputTextFlags UserFlags; // Temporarily set while we call user's callback
788  void* UserCallbackData; // "
789 
790  ImGuiInputTextState() { memset(this, 0, sizeof(*this)); }
791  void ClearText() { CurLenW = CurLenA = 0; TextW[0] = 0; TextA[0] = 0; CursorClamp(); }
792  void ClearFreeMemory() { TextW.clear(); TextA.clear(); InitialTextA.clear(); }
793  int GetUndoAvailCount() const { return Stb.undostate.undo_point; }
794  int GetRedoAvailCount() const { return STB_TEXTEDIT_UNDOSTATECOUNT - Stb.undostate.redo_point; }
795  void OnKeyPressed(int key); // Cannot be inline because we call in code in stb_textedit.h implementation
796 
797  // Cursor & Selection
798  void CursorAnimReset() { CursorAnim = -0.30f; } // After a user-input the cursor stays on for a while without blinking
799  void CursorClamp() { Stb.cursor = ImMin(Stb.cursor, CurLenW); Stb.select_start = ImMin(Stb.select_start, CurLenW); Stb.select_end = ImMin(Stb.select_end, CurLenW); }
800  bool HasSelection() const { return Stb.select_start != Stb.select_end; }
801  void ClearSelection() { Stb.select_start = Stb.select_end = Stb.cursor; }
802  void SelectAll() { Stb.select_start = 0; Stb.cursor = Stb.select_end = CurLenW; Stb.has_preferred_x = 0; }
803 };
804 
805 // Windows data saved in imgui.ini file
806 // Because we never destroy or rename ImGuiWindowSettings, we can store the names in a separate buffer easily.
807 // (this is designed to be stored in a ImChunkStream buffer, with the variable-length Name following our structure)
809 {
813  bool Collapsed;
814 
815  ImGuiWindowSettings() { ID = 0; Pos = Size = ImVec2ih(0, 0); Collapsed = false; }
816  char* GetName() { return (char*)(this + 1); }
817 };
818 
820 {
821  const char* TypeName; // Short description stored in .ini file. Disallowed characters: '[' ']'
822  ImGuiID TypeHash; // == ImHashStr(TypeName)
823  void* (*ReadOpenFn)(ImGuiContext* ctx, ImGuiSettingsHandler* handler, const char* name); // Read: Called when entering into a new ini entry e.g. "[Window][Name]"
824  void (*ReadLineFn)(ImGuiContext* ctx, ImGuiSettingsHandler* handler, void* entry, const char* line); // Read: Called for every line of text within an ini entry
825  void (*WriteAllFn)(ImGuiContext* ctx, ImGuiSettingsHandler* handler, ImGuiTextBuffer* out_buf); // Write: Output every entries into 'out_buf'
826  void* UserData;
827 
828  ImGuiSettingsHandler() { memset(this, 0, sizeof(*this)); }
829 };
830 
831 // Storage for current popup stack
833 {
834  ImGuiID PopupId; // Set on OpenPopup()
835  ImGuiWindow* Window; // Resolved on BeginPopup() - may stay unresolved if user never calls OpenPopup()
836  ImGuiWindow* SourceWindow; // Set on OpenPopup() copy of NavWindow at the time of opening the popup
837  int OpenFrameCount; // Set on OpenPopup()
838  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)
839  ImVec2 OpenPopupPos; // Set on OpenPopup(), preferred popup position (typically == OpenMousePos when using mouse)
840  ImVec2 OpenMousePos; // Set on OpenPopup(), copy of mouse position at the time of opening popup
841 
843 };
844 
846 {
847  float OffsetNorm; // Column start offset, normalized 0.0 (far left) -> 1.0 (far right)
849  ImGuiColumnsFlags Flags; // Not exposed
851 
853 };
854 
856 {
861  int Current;
862  int Count;
863  float OffMinX, OffMaxX; // Offsets from HostWorkRect.Min.x
865  float HostCursorPosY; // Backup of CursorPos at the time of BeginColumns()
866  float HostCursorMaxPosX; // Backup of CursorMaxPos at the time of BeginColumns()
867  ImRect HostClipRect; // Backup of ClipRect at the time of BeginColumns()
868  ImRect HostWorkRect; // Backup of WorkRect at the time of BeginColumns()
871 
873  void Clear()
874  {
875  ID = 0;
877  IsFirstFrame = false;
878  IsBeingResized = false;
879  Current = 0;
880  Count = 1;
881  OffMinX = OffMaxX = 0.0f;
882  LineMinY = LineMaxY = 0.0f;
883  HostCursorPosY = 0.0f;
884  HostCursorMaxPosX = 0.0f;
885  Columns.clear();
886  }
887 };
888 
889 // ImDrawList: Helper function to calculate a circle's segment count given its radius and a "maximum error" value.
890 #define IM_DRAWLIST_CIRCLE_AUTO_SEGMENT_MIN 12
891 #define IM_DRAWLIST_CIRCLE_AUTO_SEGMENT_MAX 512
892 #define IM_DRAWLIST_CIRCLE_AUTO_SEGMENT_CALC(_RAD,_MAXERROR) ImClamp((int)((IM_PI * 2.0f) / ImAcos(((_RAD) - (_MAXERROR)) / (_RAD))), IM_DRAWLIST_CIRCLE_AUTO_SEGMENT_MIN, IM_DRAWLIST_CIRCLE_AUTO_SEGMENT_MAX)
893 
894 // ImDrawList: You may set this to higher values (e.g. 2 or 3) to increase tessellation of fast rounded corners path.
895 #ifndef IM_DRAWLIST_ARCFAST_TESSELLATION_MULTIPLIER
896 #define IM_DRAWLIST_ARCFAST_TESSELLATION_MULTIPLIER 1
897 #endif
898 
899 // Data shared between all ImDrawList instances
900 // You may want to create your own instance of this if you want to use ImDrawList completely without ImGui. In that case, watch out for future changes to this structure.
902 {
903  ImVec2 TexUvWhitePixel; // UV of white pixel in the atlas
904  ImFont* Font; // Current/default font (optional, for simplified AddText overload)
905  float FontSize; // Current/default font size (optional, for simplified AddText overload)
906  float CurveTessellationTol; // Tessellation tolerance when using PathBezierCurveTo()
907  float CircleSegmentMaxError; // Number of circle segments to use per pixel of radius for AddCircle() etc
908  ImVec4 ClipRectFullscreen; // Value for PushClipRectFullscreen()
909  ImDrawListFlags InitialFlags; // Initial flags at the beginning of the frame (it is possible to alter flags on a per-drawlist basis afterwards)
910 
911  // [Internal] Lookup tables
912  ImVec2 ArcFastVtx[12 * IM_DRAWLIST_ARCFAST_TESSELLATION_MULTIPLIER]; // FIXME: Bake rounded corners fill/borders in atlas
913  ImU8 CircleSegmentCounts[64]; // Precomputed segment count for given radius (array index + 1) before we calculate it dynamically (to avoid calculation overhead)
914 
916  void SetCircleSegmentMaxError(float max_error);
917 };
918 
920 {
921  ImVector<ImDrawList*> Layers[2]; // Global layers for: regular, tooltip
922 
923  void Clear() { for (int n = 0; n < IM_ARRAYSIZE(Layers); n++) Layers[n].resize(0); }
924  void ClearFreeMemory() { for (int n = 0; n < IM_ARRAYSIZE(Layers); n++) Layers[n].clear(); }
926 };
927 
929 {
930  ImGuiWindow* Window; // Best candidate window
931  ImGuiID ID; // Best candidate ID
932  ImGuiID FocusScopeId; // Best candidate focus scope ID
933  float DistBox; // Best candidate box distance to current NavId
934  float DistCenter; // Best candidate center distance to current NavId
935  float DistAxial;
936  ImRect RectRel; // Best candidate bounding box in window relative space
937 
939  void Clear() { Window = NULL; ID = FocusScopeId = 0; DistBox = DistCenter = DistAxial = FLT_MAX; RectRel = ImRect(); }
940 };
941 
943 {
952 };
953 
954 // Storage for SetNexWindow** functions
956 {
969  float BgAlphaVal; // Override background alpha
970  ImVec2 MenuBarOffsetMinVal; // *Always on* This is not exposed publicly, so we don't clear it.
971 
972  ImGuiNextWindowData() { memset(this, 0, sizeof(*this)); }
974 };
975 
977 {
981 };
982 
984 {
986  float Width; // Set by SetNextItemWidth()
987  ImGuiID FocusScopeId; // Set by SetNextItemMultiSelectData() (!= 0 signify value has been set, so it's an alternate version of HasSelectionData, we don't use Flags for this because they are cleared too early. This is mostly used for debugging)
989  bool OpenVal; // Set by SetNextItemOpen()
990 
991  ImGuiNextItemData() { memset(this, 0, sizeof(*this)); }
992  inline void ClearFlags() { Flags = ImGuiNextItemDataFlags_None; } // Also cleared manually by ItemAdd()!
993 };
994 
995 //-----------------------------------------------------------------------------
996 // Tabs
997 //-----------------------------------------------------------------------------
998 
1000 {
1001  int Index;
1002  float Width;
1003 };
1004 
1006 {
1007  void* Ptr; // Either field can be set, not both. e.g. Dock node tab bars are loose while BeginTabBar() ones are in a pool.
1008  int Index; // Usually index in a main pool.
1009 
1010  ImGuiPtrOrIndex(void* ptr) { Ptr = ptr; Index = -1; }
1012 };
1013 
1014 //-----------------------------------------------------------------------------
1015 // Main Dear ImGui context
1016 //-----------------------------------------------------------------------------
1017 
1019 {
1021  bool FontAtlasOwnedByContext; // IO.Fonts-> is owned by the ImGuiContext and will be destructed along with it.
1024  ImFont* Font; // (Shortcut) == FontStack.empty() ? IO.Font : FontStack.back()
1025  float FontSize; // (Shortcut) == FontBaseSize * g.CurrentWindow->FontWindowScale == window->FontSize(). Text height for current window.
1026  float FontBaseSize; // (Shortcut) == IO.FontGlobalScale * Font->Scale * Font->FontSize. Base text height.
1028  double Time;
1032  bool WithinFrameScope; // Set by NewFrame(), cleared by EndFrame()
1033  bool WithinFrameScopeWithImplicitWindow; // Set by NewFrame(), cleared by EndFrame() when the implicit debug window has been pushed
1034  bool WithinEndChild; // Set within EndChild()
1035 
1036  // Windows state
1037  ImVector<ImGuiWindow*> Windows; // Windows, sorted in display order, back to front
1038  ImVector<ImGuiWindow*> WindowsFocusOrder; // Windows, sorted in focus order, back to front. (FIXME: We could only store root windows here! Need to sort out the Docking equivalent which is RootWindowDockStop and is unfortunately a little more dynamic)
1039  ImVector<ImGuiWindow*> WindowsTempSortBuffer; // Temporary buffer used in EndFrame() to reorder windows so parents are kept before their child
1041  ImGuiStorage WindowsById; // Map window's ImGuiID to ImGuiWindow*
1042  int WindowsActiveCount; // Number of unique windows submitted by frame
1043  ImGuiWindow* CurrentWindow; // Window being drawn into
1044  ImGuiWindow* HoveredWindow; // Will catch mouse inputs
1045  ImGuiWindow* HoveredRootWindow; // Will catch mouse inputs (for focus/move only)
1046  ImGuiWindow* MovingWindow; // Track the window we clicked on (in order to preserve focus). The actually window that is moved is generally MovingWindow->RootWindow.
1047  ImGuiWindow* WheelingWindow; // Track the window we started mouse-wheeling on. Until a timer elapse or mouse has moved, generally keep scrolling the same window even if during the course of scrolling the mouse ends up hovering a child window.
1050 
1051  // Item/widgets state and tracking information
1052  ImGuiID HoveredId; // Hovered widget
1055  float HoveredIdTimer; // Measure contiguous hovering time
1056  float HoveredIdNotActiveTimer; // Measure contiguous hovering time where the item has not been active
1057  ImGuiID ActiveId; // Active widget
1058  ImGuiID ActiveIdIsAlive; // Active widget has been seen this frame (we can't use a bool as the ActiveId may change within the frame)
1060  bool ActiveIdIsJustActivated; // Set at the time of activation for one frame
1061  bool ActiveIdAllowOverlap; // Active widget allows another widget to steal active id (generally for overlapping widgets, but not always)
1062  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.
1063  bool ActiveIdHasBeenEditedBefore; // Was the value associated to the widget Edited over the course of the Active state.
1065  ImU32 ActiveIdUsingNavDirMask; // Active widget will want to read those directional navigation requests (e.g. can activate a button and move away from it)
1066  ImU32 ActiveIdUsingNavInputMask; // Active widget will want to read those nav inputs.
1067  ImU64 ActiveIdUsingKeyInputMask; // Active widget will want to read those key inputs. When we grow the ImGuiKey enum we'll need to either to order the enum to make useful keys come first, either redesign this into e.g. a small array.
1068  ImVec2 ActiveIdClickOffset; // Clicked offset from upper-left corner, if applicable (currently only set by ButtonBehavior)
1070  ImGuiInputSource ActiveIdSource; // Activating with mouse or nav (gamepad/keyboard)
1076  ImGuiID LastActiveId; // Store the last non-zero ActiveId, useful for animation.
1077  float LastActiveIdTimer; // Store the last non-zero ActiveId timer since the beginning of activation, useful for animation.
1078 
1079  // Next window/item data
1080  ImGuiNextWindowData NextWindowData; // Storage for SetNextWindow** functions
1081  ImGuiNextItemData NextItemData; // Storage for SetNextItem** functions
1082 
1083  // Shared stacks
1084  ImVector<ImGuiColorMod> ColorModifiers; // Stack for PushStyleColor()/PopStyleColor()
1085  ImVector<ImGuiStyleMod> StyleModifiers; // Stack for PushStyleVar()/PopStyleVar()
1086  ImVector<ImFont*> FontStack; // Stack for PushFont()/PopFont()
1087  ImVector<ImGuiPopupData>OpenPopupStack; // Which popups are open (persistent)
1088  ImVector<ImGuiPopupData>BeginPopupStack; // Which level of BeginPopup() we are in (reset every frame)
1089 
1090  // Gamepad/keyboard Navigation
1091  ImGuiWindow* NavWindow; // Focused window for navigation. Could be called 'FocusWindow'
1092  ImGuiID NavId; // Focused item for navigation
1094  ImGuiID NavActivateId; // ~~ (g.ActiveId == 0) && IsNavInputPressed(ImGuiNavInput_Activate) ? NavId : 0, also set when calling ActivateItem()
1095  ImGuiID NavActivateDownId; // ~~ IsNavInputDown(ImGuiNavInput_Activate) ? NavId : 0
1096  ImGuiID NavActivatePressedId; // ~~ IsNavInputPressed(ImGuiNavInput_Activate) ? NavId : 0
1097  ImGuiID NavInputId; // ~~ IsNavInputPressed(ImGuiNavInput_Input) ? NavId : 0
1098  ImGuiID NavJustTabbedId; // Just tabbed to this id.
1099  ImGuiID NavJustMovedToId; // Just navigated to this id (result of a successfully MoveRequest).
1100  ImGuiID NavJustMovedToFocusScopeId; // Just navigated to this focus scope id (result of a successfully MoveRequest).
1101  ImGuiID NavNextActivateId; // Set by ActivateItem(), queued until next frame.
1102  ImGuiInputSource NavInputSource; // Keyboard or Gamepad mode? THIS WILL ONLY BE None or NavGamepad or NavKeyboard.
1103  ImRect NavScoringRectScreen; // Rectangle used for scoring, in screen space. Based of window->DC.NavRefRectRel[], modified for directional navigation scoring.
1104  int NavScoringCount; // Metrics for debugging
1105  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.
1106  int NavIdTabCounter; // == NavWindow->DC.FocusIdxTabCounter at time of NavId processing
1107  bool NavIdIsAlive; // Nav widget has been seen this frame ~~ NavRefRectRel is valid
1108  bool NavMousePosDirty; // When set we will update mouse position if (io.ConfigFlags & ImGuiConfigFlags_NavEnableSetMousePos) if set (NB: this not enabled by default)
1109  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)
1110  bool NavDisableMouseHover; // When user starts using gamepad/keyboard, we hide mouse hovering highlight until mouse is touched again.
1111  bool NavAnyRequest; // ~~ NavMoveRequest || NavInitRequest
1112  bool NavInitRequest; // Init request for appearing window to select first item
1116  bool NavMoveFromClampedRefRect; // Set by manual scrolling, if we scroll to a point where NavId isn't visible we reset navigation from visible items
1117  bool NavMoveRequest; // Move request for this frame
1119  ImGuiNavForward NavMoveRequestForward; // None / ForwardQueued / ForwardActive (this is used to navigate sibling parent menus from a child menu)
1120  ImGuiDir NavMoveDir, NavMoveDirLast; // Direction of the move request (left/right/up/down), direction of the previous move request
1121  ImGuiDir NavMoveClipDir; // FIXME-NAV: Describe the purpose of this better. Might want to rename?
1122  ImGuiNavMoveResult NavMoveResultLocal; // Best move request candidate within NavWindow
1123  ImGuiNavMoveResult NavMoveResultLocalVisibleSet; // Best move request candidate within NavWindow that are mostly visible (when using ImGuiNavMoveFlags_AlsoScoreVisibleSet flag)
1124  ImGuiNavMoveResult NavMoveResultOther; // Best move request candidate within NavWindow's flattened hierarchy (when using ImGuiWindowFlags_NavFlattened flag)
1125 
1126  // Navigation: Windowing (CTRL+TAB, holding Menu button + directional pads to move/resize)
1127  ImGuiWindow* NavWindowingTarget; // When selecting a window (holding Menu+FocusPrev/Next, or equivalent of CTRL-TAB) this window is temporarily displayed top-most.
1128  ImGuiWindow* NavWindowingTargetAnim; // Record of last valid NavWindowingTarget until DimBgRatio and NavWindowingHighlightAlpha becomes 0.0f
1133 
1134  // Legacy Focus/Tabbing system (older than Nav, active even if Nav is disabled, misnamed. FIXME-NAV: This needs a redesign!)
1137  int FocusRequestCurrCounterRegular; // 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)
1138  int FocusRequestCurrCounterTabStop; // Tab item being requested for focus, stored as an index
1139  int FocusRequestNextCounterRegular; // Stored for next frame
1142 
1143  // Render
1144  ImDrawData DrawData; // Main ImDrawData instance to pass render information to the user
1146  float DimBgRatio; // 0.0..1.0 animation when fading in a dimming background (for modal window and CTRL+TAB list)
1147  ImDrawList BackgroundDrawList; // First draw list to be rendered.
1148  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.
1150 
1151  // Drag and Drop
1153  bool DragDropWithinSource; // Set when within a BeginDragDropXXX/EndDragDropXXX block for a drag source.
1154  bool DragDropWithinTarget; // Set when within a BeginDragDropXXX/EndDragDropXXX block for a drag target.
1159  ImRect DragDropTargetRect; // Store rectangle of current target candidate (we favor small targets when overlapping)
1162  float DragDropAcceptIdCurrRectSurface; // Target item surface (we resolve overlapping targets by prioritizing the smaller surface)
1163  ImGuiID DragDropAcceptIdCurr; // Target item id (set at the time of accepting the payload)
1164  ImGuiID DragDropAcceptIdPrev; // Target item id from previous frame (we need to store this to allow for overlapping drag and drop targets)
1165  int DragDropAcceptFrameCount; // Last time a target expressed a desire to accept the source
1166  ImVector<unsigned char> DragDropPayloadBufHeap; // We don't expose the ImVector<> directly, ImGuiPayload only holds pointer+size
1167  unsigned char DragDropPayloadBufLocal[16]; // Local buffer for small payloads
1168 
1169  // Tab bars
1174 
1175  // Widget state
1179  ImGuiID TempInputId; // Temporary text input when CTRL+clicking on a slider, etc.
1180  ImGuiColorEditFlags ColorEditOptions; // Store user options for color edit widgets
1181  float ColorEditLastHue; // Backup of last Hue associated to LastColor[3], so we can restore Hue in lossy RGB<>HSV round trips
1182  float ColorEditLastSat; // Backup of last Saturation associated to LastColor[3], so we can restore Saturation in lossy RGB<>HSV round trips
1184  ImVec4 ColorPickerRef; // Initial/reference color at the time of opening the color picker.
1186  float DragCurrentAccum; // Accumulator for dragging modification. Always high-precision, not rounded by end-user precision settings
1187  float DragSpeedDefaultRatio; // If speed == 0.0f, uses (max-min) * DragSpeedDefaultRatio
1188  float ScrollbarClickDeltaToGrabCenter; // Distance between mouse and center of grab box, normalized in parent space. Use storage?
1190  ImVector<char> PrivateClipboard; // If no custom clipboard handler is defined
1191  ImVector<ImGuiID> MenusIdSubmittedThisFrame; // A list of menu IDs that were rendered at least once
1192 
1193  // Platform support
1194  ImVec2 PlatformImePos; // Cursor position request & last passed to the OS Input Method Editor
1196 
1197  // Settings
1199  float SettingsDirtyTimer; // Save .ini Settings to memory when time reaches zero
1200  ImGuiTextBuffer SettingsIniData; // In memory .ini settings
1201  ImVector<ImGuiSettingsHandler> SettingsHandlers; // List of .ini settings handlers
1202  ImChunkStream<ImGuiWindowSettings> SettingsWindows; // ImGuiWindow .ini settings entries
1203 
1204  // Capture/Logging
1207  ImFileHandle LogFile; // If != NULL log to stdout/ file
1208  ImGuiTextBuffer LogBuffer; // Accumulation buffer when log to clipboard. This is pointer so our GImGui static constructor doesn't call heap allocators.
1213  int LogDepthToExpandDefault; // Default/stored value for LogDepthMaxExpand if not specified in the LogXXX function call.
1214 
1215  // Debug Tools
1217  ImGuiID DebugItemPickerBreakId; // Will call IM_DEBUG_BREAK() when encountering this id
1218 
1219  // Misc
1220  float FramerateSecPerFrame[120]; // Calculate estimate of framerate for user over the last 2 seconds.
1223  int WantCaptureMouseNextFrame; // Explicit capture via CaptureKeyboardFromApp()/CaptureMouseFromApp() sets those flags
1226  char TempBuffer[1024*3+1]; // Temporary text buffer
1227 
1229  {
1230  Initialized = false;
1231  Font = NULL;
1232  FontSize = FontBaseSize = 0.0f;
1233  FontAtlasOwnedByContext = shared_font_atlas ? false : true;
1234  IO.Fonts = shared_font_atlas ? shared_font_atlas : IM_NEW(ImFontAtlas)();
1235  Time = 0.0f;
1236  FrameCount = 0;
1239 
1240  WindowsActiveCount = 0;
1241  CurrentWindow = NULL;
1242  HoveredWindow = NULL;
1244  MovingWindow = NULL;
1245  WheelingWindow = NULL;
1246  WheelingWindowTimer = 0.0f;
1247 
1248  HoveredId = 0;
1249  HoveredIdAllowOverlap = false;
1252  ActiveId = 0;
1253  ActiveIdIsAlive = 0;
1254  ActiveIdTimer = 0.0f;
1255  ActiveIdIsJustActivated = false;
1256  ActiveIdAllowOverlap = false;
1260  ActiveIdUsingNavDirMask = 0x00;
1263  ActiveIdClickOffset = ImVec2(-1,-1);
1264  ActiveIdWindow = NULL;
1266  ActiveIdMouseButton = 0;
1271  LastActiveId = 0;
1272  LastActiveIdTimer = 0.0f;
1273 
1274  NavWindow = NULL;
1279  NavScoringCount = 0;
1281  NavIdTabCounter = INT_MAX;
1282  NavIdIsAlive = false;
1283  NavMousePosDirty = false;
1284  NavDisableHighlight = true;
1285  NavDisableMouseHover = false;
1286  NavAnyRequest = false;
1287  NavInitRequest = false;
1288  NavInitRequestFromMove = false;
1289  NavInitResultId = 0;
1290  NavMoveFromClampedRefRect = false;
1291  NavMoveRequest = false;
1295 
1298  NavWindowingToggleLayer = false;
1299 
1303  FocusTabPressed = false;
1304 
1305  DimBgRatio = 0.0f;
1306  BackgroundDrawList._OwnerName = "##Background"; // Give it a name for debugging
1307  ForegroundDrawList._OwnerName = "##Foreground"; // Give it a name for debugging
1309 
1313  DragDropMouseButton = -1;
1314  DragDropTargetId = 0;
1320 
1321  CurrentTabBar = NULL;
1322 
1323  LastValidMousePos = ImVec2(0.0f, 0.0f);
1324  TempInputId = 0;
1328  DragCurrentAccumDirty = false;
1329  DragCurrentAccum = 0.0f;
1330  DragSpeedDefaultRatio = 1.0f / 100.0f;
1333 
1334  PlatformImePos = PlatformImeLastPos = ImVec2(FLT_MAX, FLT_MAX);
1335 
1336  SettingsLoaded = false;
1337  SettingsDirtyTimer = 0.0f;
1338 
1339  LogEnabled = false;
1341  LogFile = NULL;
1342  LogLinePosY = FLT_MAX;
1343  LogLineFirstItem = false;
1344  LogDepthRef = 0;
1346 
1347  DebugItemPickerActive = false;
1349 
1350  memset(FramerateSecPerFrame, 0, sizeof(FramerateSecPerFrame));
1354  memset(TempBuffer, 0, sizeof(TempBuffer));
1355  }
1356 };
1357 
1358 //-----------------------------------------------------------------------------
1359 // ImGuiWindow
1360 //-----------------------------------------------------------------------------
1361 
1362 // Transient per-window data, reset at the beginning of the frame. This used to be called ImGuiDrawContext, hence the DC variable name in ImGuiWindow.
1363 // FIXME: That's theory, in practice the delimitation between ImGuiWindow and ImGuiWindowTempData is quite tenuous and could be reconsidered.
1365 {
1366  // Layout
1367  ImVec2 CursorPos; // Current emitting position, in absolute coordinates.
1369  ImVec2 CursorStartPos; // Initial position after Begin(), generally ~ window position + WindowPadding.
1370  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
1373  float CurrLineTextBaseOffset; // Baseline offset (0.0f by default on a new line, generally == style.FramePadding.y when a framed item has been added).
1375  ImVec1 Indent; // Indentation / start position from left of window (increased by TreePush/TreePop, etc.)
1376  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.
1378 
1379  // Last item status
1380  ImGuiID LastItemId; // ID for last item
1381  ImGuiItemStatusFlags LastItemStatusFlags; // Status flags for last item (see ImGuiItemStatusFlags_)
1382  ImRect LastItemRect; // Interaction rect for last item
1383  ImRect LastItemDisplayRect; // End-user display rect for last item (only valid if LastItemStatusFlags & ImGuiItemStatusFlags_HasDisplayRect)
1384 
1385  // Keyboard/Gamepad navigation
1386  ImGuiNavLayer NavLayerCurrent; // Current layer, 0..31 (we currently only use 0..1)
1387  int NavLayerCurrentMask; // = (1 << NavLayerCurrent) used by ItemAdd prior to clipping.
1388  int NavLayerActiveMask; // Which layer have been written to (result from previous frame)
1389  int NavLayerActiveMaskNext; // Which layer have been written to (buffer for current frame)
1390  ImGuiID NavFocusScopeIdCurrent; // Current focus scope ID while appending
1392  bool NavHasScroll; // Set when scrolling can be used (ScrollMax > 0.0f)
1393 
1394  // Miscellaneous
1395  bool MenuBarAppending; // FIXME: Remove this
1396  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.
1397  ImGuiMenuColumns MenuColumns; // Simplified columns storage for menu items measurement
1398  int TreeDepth; // Current tree depth.
1399  ImU32 TreeJumpToParentOnPopMask; // Store a copy of !g.NavIdIsAlive for TreeDepth 0..31.. Could be turned into a ImU64 if necessary.
1401  ImGuiStorage* StateStorage; // Current persistent per-window storage (store e.g. tree node open/close state)
1402  ImGuiColumns* CurrentColumns; // Current columns set
1404  ImGuiLayoutType ParentLayoutType; // Layout type of parent window at the time of Begin()
1405  int FocusCounterRegular; // (Legacy Focus/Tabbing system) Sequential counter, start at -1 and increase as assigned via FocusableItemRegister() (FIXME-NAV: Needs redesign)
1406  int FocusCounterTabStop; // (Legacy Focus/Tabbing system) Same, but only count widgets which you can Tab through.
1407 
1408  // Local parameters stacks
1409  // 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.
1410  ImGuiItemFlags ItemFlags; // == ItemFlagsStack.back() [empty == ImGuiItemFlags_Default]
1411  float ItemWidth; // == ItemWidthStack.back(). 0.0: default, >0.0: width in pixels, <0.0: align xx pixels to the right of window
1412  float TextWrapPos; // == TextWrapPosStack.back() [empty == -1.0f]
1417  short StackSizesBackup[6]; // Store size of various stacks for asserting
1418 
1420  {
1421  CursorPos = CursorPosPrevLine = CursorStartPos = CursorMaxPos = ImVec2(0.0f, 0.0f);
1422  CurrLineSize = PrevLineSize = ImVec2(0.0f, 0.0f);
1423  CurrLineTextBaseOffset = PrevLineTextBaseOffset = 0.0f;
1424  Indent = ImVec1(0.0f);
1425  ColumnsOffset = ImVec1(0.0f);
1426  GroupOffset = ImVec1(0.0f);
1427 
1428  LastItemId = 0;
1429  LastItemStatusFlags = ImGuiItemStatusFlags_None;
1430  LastItemRect = LastItemDisplayRect = ImRect();
1431 
1432  NavLayerActiveMask = NavLayerActiveMaskNext = 0x00;
1433  NavLayerCurrent = ImGuiNavLayer_Main;
1434  NavLayerCurrentMask = (1 << ImGuiNavLayer_Main);
1435  NavFocusScopeIdCurrent = 0;
1436  NavHideHighlightOneFrame = false;
1437  NavHasScroll = false;
1438 
1439  MenuBarAppending = false;
1440  MenuBarOffset = ImVec2(0.0f, 0.0f);
1441  TreeDepth = 0;
1442  TreeJumpToParentOnPopMask = 0x00;
1443  StateStorage = NULL;
1444  CurrentColumns = NULL;
1445  LayoutType = ParentLayoutType = ImGuiLayoutType_Vertical;
1446  FocusCounterRegular = FocusCounterTabStop = -1;
1447 
1448  ItemFlags = ImGuiItemFlags_Default_;
1449  ItemWidth = 0.0f;
1450  TextWrapPos = -1.0f;
1451  memset(StackSizesBackup, 0, sizeof(StackSizesBackup));
1452  }
1453 };
1454 
1455 // Storage for one window
1457 {
1458  char* Name; // Window name, owned by the window.
1459  ImGuiID ID; // == ImHashStr(Name)
1460  ImGuiWindowFlags Flags; // See enum ImGuiWindowFlags_
1461  ImVec2 Pos; // Position (always rounded-up to nearest pixel)
1462  ImVec2 Size; // Current size (==SizeFull or collapsed title bar size)
1463  ImVec2 SizeFull; // Size when non collapsed
1464  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.
1465  ImVec2 ContentSizeExplicit; // Size of contents/scrollable client area explicitly request by the user via SetNextWindowContentSize().
1466  ImVec2 WindowPadding; // Window padding at the time of Begin().
1467  float WindowRounding; // Window rounding at the time of Begin().
1468  float WindowBorderSize; // Window border size at the time of Begin().
1469  int NameBufLen; // Size of buffer storing Name. May be larger than strlen(Name)!
1470  ImGuiID MoveId; // == window->GetID("#MOVE")
1471  ImGuiID ChildId; // ID of corresponding item in parent window (for navigation to return from child window to parent window)
1474  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)
1475  ImVec2 ScrollTargetCenterRatio; // 0.0f = scroll so that target position is at top, 0.5f = scroll so that target position is centered
1476  ImVec2 ScrollbarSizes; // Size taken by scrollbars on each axis
1477  bool ScrollbarX, ScrollbarY; // Are scrollbars visible?
1478  bool Active; // Set to true on Begin(), unless Collapsed
1480  bool WriteAccessed; // Set to true when any widget access the current window
1481  bool Collapsed; // Set when collapsing window to become only title-bar
1483  bool SkipItems; // Set when items can safely be all clipped (e.g. window not visible or collapsed)
1484  bool Appearing; // Set during the frame where the window is appearing (or re-appearing)
1485  bool Hidden; // Do not display (== (HiddenFrames*** > 0))
1486  bool IsFallbackWindow; // Set on the "Debug##Default" window.
1487  bool HasCloseButton; // Set when the window has a close button (p_open != NULL)
1488  signed char ResizeBorderHeld; // Current border being held for resize (-1: none, otherwise 0-3)
1489  short BeginCount; // Number of Begin() during the current frame (generally 0 or 1, 1+ if appending via multiple Begin/End pairs)
1490  short BeginOrderWithinParent; // Order within immediate parent window, if we are a child window. Otherwise 0.
1491  short BeginOrderWithinContext; // Order within entire imgui context. This is mostly used for debugging submission order related issues.
1492  ImGuiID PopupId; // ID in the popup stack when this window is used as a popup/menu (because we use generic Name/ID for recycling)
1493  ImS8 AutoFitFramesX, AutoFitFramesY;
1497  int HiddenFramesCanSkipItems; // Hide the window for N frames
1498  int HiddenFramesCannotSkipItems; // Hide the window for N frames while allowing items to be submitted so we can measure their size
1499  ImGuiCond SetWindowPosAllowFlags; // store acceptable condition flags for SetNextWindowPos() use.
1500  ImGuiCond SetWindowSizeAllowFlags; // store acceptable condition flags for SetNextWindowSize() use.
1501  ImGuiCond SetWindowCollapsedAllowFlags; // store acceptable condition flags for SetNextWindowCollapsed() use.
1502  ImVec2 SetWindowPosVal; // store window position when using a non-zero Pivot (position set needs to be processed when we know the window size)
1503  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.
1504 
1505  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)
1506  ImGuiWindowTempData DC; // Temporary per-window data, reset at the beginning of the frame. This used to be called ImGuiDrawContext, hence the "DC" variable name.
1507 
1508  // The best way to understand what those rectangles are is to use the 'Metrics -> Tools -> Show windows rectangles' viewer.
1509  // The main 'OuterRect', omitted as a field, is window->Rect().
1510  ImRect OuterRectClipped; // == Window->Rect() just after setup in Begin(). == window->Rect() for root window.
1511  ImRect InnerRect; // Inner rectangle (omit title bar, menu bar, scroll bar)
1512  ImRect InnerClipRect; // == InnerRect shrunk by WindowPadding*0.5f on each side, clipped within viewport or parent clip rect.
1513  ImRect WorkRect; // Cover the whole scrolling region, shrunk by WindowPadding*1.0f on each side. This is meant to replace ContentRegionRect over time (from 1.71+ onward).
1514  ImRect ClipRect; // Current clipping/scissoring rectangle, evolve as we are using PushClipRect(), etc. == DrawList->clip_rect_stack.back().
1515  ImRect ContentRegionRect; // 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.
1516 
1517  int LastFrameActive; // Last frame number the window was Active.
1518  float LastTimeActive; // Last timestamp the window was Active (using float as we don't need high precision there)
1522  float FontWindowScale; // User scale multiplier per-window, via SetWindowFontScale()
1523  int SettingsOffset; // Offset into SettingsWindows[] (offsets are always valid as we only grow the array from the back)
1524 
1525  ImDrawList* DrawList; // == &DrawListInst (for backward compatibility reason with code using imgui_internal.h we keep this a pointer)
1527  ImGuiWindow* ParentWindow; // If we are a child _or_ popup window, this is pointing to our parent. Otherwise NULL.
1528  ImGuiWindow* RootWindow; // Point to ourself or first ancestor that is not a child window.
1529  ImGuiWindow* RootWindowForTitleBarHighlight; // Point to ourself or first ancestor which will display TitleBgActive color when this window is active.
1530  ImGuiWindow* RootWindowForNav; // Point to ourself or first ancestor which doesn't have the NavFlattened flag.
1531 
1532  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.)
1533  ImGuiID NavLastIds[ImGuiNavLayer_COUNT]; // Last known NavId for this window, per layer (0/1)
1534  ImRect NavRectRel[ImGuiNavLayer_COUNT]; // Reference rectangle, in window relative space
1535 
1539 
1540 public:
1541  ImGuiWindow(ImGuiContext* context, const char* name);
1542  ~ImGuiWindow();
1543 
1544  ImGuiID GetID(const char* str, const char* str_end = NULL);
1545  ImGuiID GetID(const void* ptr);
1546  ImGuiID GetID(int n);
1547  ImGuiID GetIDNoKeepAlive(const char* str, const char* str_end = NULL);
1548  ImGuiID GetIDNoKeepAlive(const void* ptr);
1549  ImGuiID GetIDNoKeepAlive(int n);
1550  ImGuiID GetIDFromRectangle(const ImRect& r_abs);
1551 
1552  // We don't use g.FontSize because the window may be != g.CurrentWidow.
1553  ImRect Rect() const { return ImRect(Pos.x, Pos.y, Pos.x+Size.x, Pos.y+Size.y); }
1554  float CalcFontSize() const { ImGuiContext& g = *GImGui; float scale = g.FontBaseSize * FontWindowScale; if (ParentWindow) scale *= ParentWindow->FontWindowScale; return scale; }
1555  float TitleBarHeight() const { ImGuiContext& g = *GImGui; return (Flags & ImGuiWindowFlags_NoTitleBar) ? 0.0f : CalcFontSize() + g.Style.FramePadding.y * 2.0f; }
1556  ImRect TitleBarRect() const { return ImRect(Pos, ImVec2(Pos.x + SizeFull.x, Pos.y + TitleBarHeight())); }
1557  float MenuBarHeight() const { ImGuiContext& g = *GImGui; return (Flags & ImGuiWindowFlags_MenuBar) ? DC.MenuBarOffset.y + CalcFontSize() + g.Style.FramePadding.y * 2.0f : 0.0f; }
1558  ImRect MenuBarRect() const { float y1 = Pos.y + TitleBarHeight(); return ImRect(Pos.x, y1, Pos.x + SizeFull.x, y1 + MenuBarHeight()); }
1559 };
1560 
1561 // 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.
1563 {
1568 
1572 };
1573 
1574 //-----------------------------------------------------------------------------
1575 // Tab bar, tab item
1576 //-----------------------------------------------------------------------------
1577 
1578 // Extend ImGuiTabBarFlags_
1580 {
1581  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]
1583  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
1584 };
1585 
1586 // Extend ImGuiTabItemFlags_
1588 {
1589  ImGuiTabItemFlags_NoCloseButton = 1 << 20 // Track whether p_open was set or not (we'll need this info on the next frame to recompute ContentWidth during layout)
1590 };
1591 
1592 // Storage for one active tab item (sizeof() 26~32 bytes)
1594 {
1598  int LastFrameSelected; // This allows us to infer an ordered list of the last activated tabs with little maintenance
1599  int NameOffset; // When Window==NULL, offset to name within parent ImGuiTabBar::TabsNames
1600  float Offset; // Position relative to beginning of tab
1601  float Width; // Width currently displayed
1602  float ContentWidth; // Width of actual contents, stored during BeginTabItem() call
1603 
1605 };
1606 
1607 // Storage for a tab bar (sizeof() 92~96 bytes)
1609 {
1611  ImGuiID ID; // Zero for tab-bars used by docking
1612  ImGuiID SelectedTabId; // Selected tab/window
1614  ImGuiID VisibleTabId; // Can occasionally be != SelectedTabId (e.g. when previewing contents for CTRL+TAB preview)
1618  float LastTabContentHeight; // Record the height of contents submitted below the tab bar
1619  float OffsetMax; // Distance from BarRect.Min.x, locked during layout
1620  float OffsetMaxIdeal; // Ideal offset if all tabs were visible and not clipped
1621  float OffsetNextTab; // Distance from BarRect.Min.x, incremented with each BeginTabItem() call, not used if ImGuiTabBarFlags_Reorderable if set.
1631  short LastTabItemIdx; // For BeginTabItem()/EndTabItem()
1632  ImVec2 FramePadding; // style.FramePadding locked at the time of BeginTabBar()
1633  ImGuiTextBuffer TabsNames; // For non-docking tab bar we re-append names in a contiguous buffer.
1634 
1635  ImGuiTabBar();
1636  int GetTabOrder(const ImGuiTabItem* tab) const { return Tabs.index_from_ptr(tab); }
1637  const char* GetTabName(const ImGuiTabItem* tab) const
1638  {
1639  IM_ASSERT(tab->NameOffset != -1 && tab->NameOffset < TabsNames.Buf.Size);
1640  return TabsNames.Buf.Data + tab->NameOffset;
1641  }
1642 };
1643 
1644 //-----------------------------------------------------------------------------
1645 // Internal API
1646 // No guarantee of forward compatibility here.
1647 //-----------------------------------------------------------------------------
1648 
1649 namespace ImGui
1650 {
1651  // Windows
1652  // We should always have a CurrentWindow in the stack (there is an implicit "Debug" window)
1653  // If this ever crash because g.CurrentWindow is NULL it means that either
1654  // - ImGui::NewFrame() has never been called, which is illegal.
1655  // - You are calling ImGui functions after ImGui::EndFrame()/ImGui::Render() and before the next ImGui::NewFrame(), which is also illegal.
1657  inline ImGuiWindow* GetCurrentWindow() { ImGuiContext& g = *GImGui; g.CurrentWindow->WriteAccessed = true; return g.CurrentWindow; }
1662  IMGUI_API bool IsWindowChildOf(ImGuiWindow* window, ImGuiWindow* potential_parent);
1665  IMGUI_API void SetWindowPos(ImGuiWindow* window, const ImVec2& pos, ImGuiCond cond = 0);
1666  IMGUI_API void SetWindowSize(ImGuiWindow* window, const ImVec2& size, ImGuiCond cond = 0);
1667  IMGUI_API void SetWindowCollapsed(ImGuiWindow* window, bool collapsed, ImGuiCond cond = 0);
1668 
1669  // Windows: Display Order and Focus Order
1670  IMGUI_API void FocusWindow(ImGuiWindow* window);
1671  IMGUI_API void FocusTopMostWindowUnderOne(ImGuiWindow* under_this_window, ImGuiWindow* ignore_window);
1675 
1676  // Fonts, drawing
1677  IMGUI_API void SetCurrentFont(ImFont* font);
1678  inline ImFont* GetDefaultFont() { ImGuiContext& g = *GImGui; return g.IO.FontDefault ? g.IO.FontDefault : g.IO.Fonts->Fonts[0]; }
1679  inline ImDrawList* GetForegroundDrawList(ImGuiWindow* window) { IM_UNUSED(window); ImGuiContext& g = *GImGui; return &g.ForegroundDrawList; } // This seemingly unnecessary wrapper simplifies compatibility between the 'master' and 'docking' branches.
1680 
1681  // Init
1682  IMGUI_API void Initialize(ImGuiContext* context);
1683  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().
1684 
1685  // NewFrame
1690 
1691  // Settings
1697  IMGUI_API ImGuiSettingsHandler* FindSettingsHandler(const char* type_name);
1698 
1699  // Scrolling
1700  IMGUI_API void SetScrollX(ImGuiWindow* window, float new_scroll_x);
1701  IMGUI_API void SetScrollY(ImGuiWindow* window, float new_scroll_y);
1702  IMGUI_API void SetScrollFromPosX(ImGuiWindow* window, float local_x, float center_x_ratio = 0.5f);
1703  IMGUI_API void SetScrollFromPosY(ImGuiWindow* window, float local_y, float center_y_ratio = 0.5f);
1704  IMGUI_API ImVec2 ScrollToBringRectIntoView(ImGuiWindow* window, const ImRect& item_rect);
1705 
1706  // Basic Accessors
1709  inline ImGuiID GetActiveID() { ImGuiContext& g = *GImGui; return g.ActiveId; }
1710  inline ImGuiID GetFocusID() { ImGuiContext& g = *GImGui; return g.NavId; }
1711  IMGUI_API void SetActiveID(ImGuiID id, ImGuiWindow* window);
1712  IMGUI_API void SetFocusID(ImGuiID id, ImGuiWindow* window);
1713  IMGUI_API void ClearActiveID();
1715  IMGUI_API void SetHoveredID(ImGuiID id);
1716  IMGUI_API void KeepAliveID(ImGuiID id);
1717  IMGUI_API void MarkItemEdited(ImGuiID id); // Mark data associated to given item as "edited", used by IsItemDeactivatedAfterEdit() function.
1718  IMGUI_API void PushOverrideID(ImGuiID id); // Push given value at the top of the ID stack (whereas PushID combines old and new hashes)
1719 
1720  // Basic Helpers for widget code
1721  IMGUI_API void ItemSize(const ImVec2& size, float text_baseline_y = -1.0f);
1722  IMGUI_API void ItemSize(const ImRect& bb, float text_baseline_y = -1.0f);
1723  IMGUI_API bool ItemAdd(const ImRect& bb, ImGuiID id, const ImRect* nav_bb = NULL);
1724  IMGUI_API bool ItemHoverable(const ImRect& bb, ImGuiID id);
1725  IMGUI_API bool IsClippedEx(const ImRect& bb, ImGuiID id, bool clip_even_when_logged);
1726  IMGUI_API bool FocusableItemRegister(ImGuiWindow* window, ImGuiID id); // Return true if focus is requested
1728  IMGUI_API ImVec2 CalcItemSize(ImVec2 size, float default_w, float default_h);
1729  IMGUI_API float CalcWrapWidthForPos(const ImVec2& pos, float wrap_pos_x);
1730  IMGUI_API void PushMultiItemsWidths(int components, float width_full);
1731  IMGUI_API void PushItemFlag(ImGuiItemFlags option, bool enabled);
1732  IMGUI_API void PopItemFlag();
1733  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)
1735  IMGUI_API void ShrinkWidths(ImGuiShrinkWidthItem* items, int count, float width_excess);
1736 
1737  // Logging/Capture
1738  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.
1739  IMGUI_API void LogToBuffer(int auto_open_depth = -1); // Start logging/capturing to internal buffer
1740 
1741  // Popups, Modals, Tooltips
1742  IMGUI_API bool BeginChildEx(const char* name, ImGuiID id, const ImVec2& size_arg, bool border, ImGuiWindowFlags flags);
1743  IMGUI_API void OpenPopupEx(ImGuiID id);
1744  IMGUI_API void ClosePopupToLevel(int remaining, bool restore_focus_to_window_under_popup);
1745  IMGUI_API void ClosePopupsOverWindow(ImGuiWindow* ref_window, bool restore_focus_to_window_under_popup);
1746  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!
1747  IMGUI_API bool BeginPopupEx(ImGuiID id, ImGuiWindowFlags extra_flags);
1748  IMGUI_API void BeginTooltipEx(ImGuiWindowFlags extra_flags, ImGuiTooltipFlags tooltip_flags);
1751  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);
1752 
1753  // Navigation
1754  IMGUI_API void NavInitWindow(ImGuiWindow* window, bool force_reinit);
1757  IMGUI_API void NavMoveRequestForward(ImGuiDir move_dir, ImGuiDir clip_dir, const ImRect& bb_rel, ImGuiNavMoveFlags move_flags);
1760  IMGUI_API ImVec2 GetNavInputAmount2d(ImGuiNavDirSourceFlags dir_sources, ImGuiInputReadMode mode, float slow_factor = 0.0f, float fast_factor = 0.0f);
1761  IMGUI_API int CalcTypematicRepeatAmount(float t0, float t1, float repeat_delay, float repeat_rate);
1762  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.
1763  IMGUI_API void SetNavID(ImGuiID id, int nav_layer, ImGuiID focus_scope_id);
1764  IMGUI_API void SetNavIDWithRectRel(ImGuiID id, int nav_layer, ImGuiID focus_scope_id, const ImRect& rect_rel);
1765 
1766  // Focus scope (WIP)
1767  IMGUI_API void PushFocusScope(ImGuiID id); // Note: this is storing in same stack as IDStack, so Push/Pop mismatch will be reported there.
1768  IMGUI_API void PopFocusScope();
1770 
1771  // Inputs
1772  // FIXME: Eventually we should aim to move e.g. IsActiveIdUsingKey() into IsKeyXXX functions.
1773  inline bool IsActiveIdUsingNavDir(ImGuiDir dir) { ImGuiContext& g = *GImGui; return (g.ActiveIdUsingNavDirMask & (1 << dir)) != 0; }
1774  inline bool IsActiveIdUsingNavInput(ImGuiNavInput input) { ImGuiContext& g = *GImGui; return (g.ActiveIdUsingNavInputMask & (1 << input)) != 0; }
1775  inline bool IsActiveIdUsingKey(ImGuiKey key) { ImGuiContext& g = *GImGui; IM_ASSERT(key < 64); return (g.ActiveIdUsingKeyInputMask & ((ImU64)1 << key)) != 0; }
1776  IMGUI_API bool IsMouseDragPastThreshold(ImGuiMouseButton button, float lock_threshold = -1.0f);
1777  inline bool IsKeyPressedMap(ImGuiKey key, bool repeat = true) { ImGuiContext& g = *GImGui; const int key_index = g.IO.KeyMap[key]; return (key_index >= 0) ? IsKeyPressed(key_index, repeat) : false; }
1778  inline bool IsNavInputDown(ImGuiNavInput n) { ImGuiContext& g = *GImGui; return g.IO.NavInputs[n] > 0.0f; }
1780 
1781  // Drag and Drop
1782  IMGUI_API bool BeginDragDropTargetCustom(const ImRect& bb, ImGuiID id);
1783  IMGUI_API void ClearDragDrop();
1785 
1786  // Internal Columns API (this is not exposed because we will encourage transitioning to the Tables api)
1787  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().
1788  IMGUI_API void EndColumns(); // close columns
1789  IMGUI_API void PushColumnClipRect(int column_index);
1792  IMGUI_API ImGuiID GetColumnsID(const char* str_id, int count);
1794  IMGUI_API float GetColumnOffsetFromNorm(const ImGuiColumns* columns, float offset_norm);
1795  IMGUI_API float GetColumnNormFromOffset(const ImGuiColumns* columns, float offset);
1796 
1797  // Tab Bars
1798  IMGUI_API bool BeginTabBarEx(ImGuiTabBar* tab_bar, const ImRect& bb, ImGuiTabBarFlags flags);
1800  IMGUI_API void TabBarRemoveTab(ImGuiTabBar* tab_bar, ImGuiID tab_id);
1801  IMGUI_API void TabBarCloseTab(ImGuiTabBar* tab_bar, ImGuiTabItem* tab);
1802  IMGUI_API void TabBarQueueChangeTabOrder(ImGuiTabBar* tab_bar, const ImGuiTabItem* tab, int dir);
1803  IMGUI_API bool TabItemEx(ImGuiTabBar* tab_bar, const char* label, bool* p_open, ImGuiTabItemFlags flags);
1804  IMGUI_API ImVec2 TabItemCalcSize(const char* label, bool has_close_button);
1805  IMGUI_API void TabItemBackground(ImDrawList* draw_list, const ImRect& bb, ImGuiTabItemFlags flags, ImU32 col);
1806  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);
1807 
1808  // Render helpers
1809  // 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.
1810  // NB: All position are in absolute pixels coordinates (we are never using window coordinates internally)
1811  IMGUI_API void RenderText(ImVec2 pos, const char* text, const char* text_end = NULL, bool hide_text_after_hash = true);
1812  IMGUI_API void RenderTextWrapped(ImVec2 pos, const char* text, const char* text_end, float wrap_width);
1813  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);
1814  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);
1815  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);
1816  IMGUI_API void RenderFrame(ImVec2 p_min, ImVec2 p_max, ImU32 fill_col, bool border = true, float rounding = 0.0f);
1817  IMGUI_API void RenderFrameBorder(ImVec2 p_min, ImVec2 p_max, float rounding = 0.0f);
1818  IMGUI_API void RenderColorRectWithAlphaCheckerboard(ImDrawList* draw_list, ImVec2 p_min, ImVec2 p_max, ImU32 fill_col, float grid_step, ImVec2 grid_off, float rounding = 0.0f, int rounding_corners_flags = ~0);
1820  IMGUI_API const char* FindRenderedTextEnd(const char* text, const char* text_end = NULL); // Find the optional ## from which we stop displaying text.
1821  IMGUI_API void LogRenderedText(const ImVec2* ref_pos, const char* text, const char* text_end = NULL);
1822 
1823  // Render helpers (those functions don't access any ImGui state!)
1824  IMGUI_API void RenderArrow(ImDrawList* draw_list, ImVec2 pos, ImU32 col, ImGuiDir dir, float scale = 1.0f);
1825  IMGUI_API void RenderBullet(ImDrawList* draw_list, ImVec2 pos, ImU32 col);
1826  IMGUI_API void RenderCheckMark(ImDrawList* draw_list, ImVec2 pos, ImU32 col, float sz);
1827  IMGUI_API void RenderMouseCursor(ImDrawList* draw_list, ImVec2 pos, float scale, ImGuiMouseCursor mouse_cursor, ImU32 col_fill, ImU32 col_border, ImU32 col_shadow);
1828  IMGUI_API void RenderArrowPointingAt(ImDrawList* draw_list, ImVec2 pos, ImVec2 half_sz, ImGuiDir direction, ImU32 col);
1829  IMGUI_API void RenderRectFilledRangeH(ImDrawList* draw_list, const ImRect& rect, ImU32 col, float x_start_norm, float x_end_norm, float rounding);
1830 
1831 #ifndef IMGUI_DISABLE_OBSOLETE_FUNCTIONS
1832  // [1.71: 2019/06/07: Updating prototypes of some of the internal functions. Leaving those for reference for a short while]
1833  inline void RenderArrow(ImVec2 pos, ImGuiDir dir, float scale=1.0f) { ImGuiWindow* window = GetCurrentWindow(); RenderArrow(window->DrawList, pos, GetColorU32(ImGuiCol_Text), dir, scale); }
1835 #endif
1836 
1837  // Widgets
1838  IMGUI_API void TextEx(const char* text, const char* text_end = NULL, ImGuiTextFlags flags = 0);
1839  IMGUI_API bool ButtonEx(const char* label, const ImVec2& size_arg = ImVec2(0,0), ImGuiButtonFlags flags = 0);
1840  IMGUI_API bool CloseButton(ImGuiID id, const ImVec2& pos);
1841  IMGUI_API bool CollapseButton(ImGuiID id, const ImVec2& pos);
1842  IMGUI_API bool ArrowButtonEx(const char* str_id, ImGuiDir dir, ImVec2 size_arg, ImGuiButtonFlags flags = 0);
1843  IMGUI_API void Scrollbar(ImGuiAxis axis);
1844  IMGUI_API bool ScrollbarEx(const ImRect& bb, ImGuiID id, ImGuiAxis axis, float* p_scroll_v, float avail_v, float contents_v, ImDrawCornerFlags rounding_corners);
1846  IMGUI_API ImGuiID GetWindowResizeID(ImGuiWindow* window, int n); // 0..3: corners, 4..7: borders
1848 
1849  // Widgets low-level behaviors
1850  IMGUI_API bool ButtonBehavior(const ImRect& bb, ImGuiID id, bool* out_hovered, bool* out_held, ImGuiButtonFlags flags = 0);
1851  IMGUI_API bool DragBehavior(ImGuiID id, ImGuiDataType data_type, void* p_v, float v_speed, const void* p_min, const void* p_max, const char* format, float power, ImGuiDragFlags flags);
1852  IMGUI_API bool SliderBehavior(const ImRect& bb, ImGuiID id, ImGuiDataType data_type, void* p_v, const void* p_min, const void* p_max, const char* format, float power, ImGuiSliderFlags flags, ImRect* out_grab_bb);
1853  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);
1854  IMGUI_API bool TreeNodeBehavior(ImGuiID id, ImGuiTreeNodeFlags flags, const char* label, const char* label_end = NULL);
1855  IMGUI_API bool TreeNodeBehaviorIsOpen(ImGuiID id, ImGuiTreeNodeFlags flags = 0); // Consume previous SetNextItemOpen() data, if any. May return true when logging
1857 
1858  // Template functions are instantiated in imgui_widgets.cpp for a finite number of types.
1859  // 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).
1860  // e.g. " extern template IMGUI_API float RoundScalarWithFormatT<float, float>(const char* format, ImGuiDataType data_type, float v); "
1861  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);
1862  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);
1863  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);
1864  template<typename T, typename SIGNED_T> IMGUI_API T RoundScalarWithFormatT(const char* format, ImGuiDataType data_type, T v);
1865 
1866  // Data type helpers
1868  IMGUI_API int DataTypeFormatString(char* buf, int buf_size, ImGuiDataType data_type, const void* p_data, const char* format);
1869  IMGUI_API void DataTypeApplyOp(ImGuiDataType data_type, int op, void* output, void* arg_1, const void* arg_2);
1870  IMGUI_API bool DataTypeApplyOpFromText(const char* buf, const char* initial_value_buf, ImGuiDataType data_type, void* p_data, const char* format);
1871 
1872  // InputText
1873  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);
1874  IMGUI_API bool TempInputText(const ImRect& bb, ImGuiID id, const char* label, char* buf, int buf_size, ImGuiInputTextFlags flags);
1875  IMGUI_API bool TempInputScalar(const ImRect& bb, ImGuiID id, const char* label, ImGuiDataType data_type, void* p_data, const char* format);
1876  inline bool TempInputIsActive(ImGuiID id) { ImGuiContext& g = *GImGui; return (g.ActiveId == id && g.TempInputId == id); }
1877  inline ImGuiInputTextState* GetInputTextState(ImGuiID id) { ImGuiContext& g = *GImGui; return (g.InputTextState.ID == id) ? &g.InputTextState : NULL; } // Get input text state if active
1878 
1879  // Color
1880  IMGUI_API void ColorTooltip(const char* text, const float* col, ImGuiColorEditFlags flags);
1881  IMGUI_API void ColorEditOptionsPopup(const float* col, ImGuiColorEditFlags flags);
1882  IMGUI_API void ColorPickerOptionsPopup(const float* ref_col, ImGuiColorEditFlags flags);
1883 
1884  // Plot
1885  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);
1886 
1887  // Shade functions (write over already created vertices)
1888  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);
1889  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);
1890 
1891  // Garbage collection
1894 
1895  // Debug Tools
1896  inline void DebugDrawItemRect(ImU32 col = IM_COL32(255,0,0,255)) { ImGuiContext& g = *GImGui; ImGuiWindow* window = g.CurrentWindow; GetForegroundDrawList(window)->AddRect(window->DC.LastItemRect.Min, window->DC.LastItemRect.Max, col); }
1898 
1899 } // namespace ImGui
1900 
1901 // ImFontAtlas internals
1904 IMGUI_API void ImFontAtlasBuildSetupFont(ImFontAtlas* atlas, ImFont* font, ImFontConfig* font_config, float ascent, float descent);
1905 IMGUI_API void ImFontAtlasBuildPackCustomRects(ImFontAtlas* atlas, void* stbrp_context_opaque);
1907 IMGUI_API void ImFontAtlasBuildMultiplyCalcLookupTable(unsigned char out_table[256], float in_multiply_factor);
1908 IMGUI_API void ImFontAtlasBuildMultiplyRectAlpha8(const unsigned char table[256], unsigned char* pixels, int x, int y, int w, int h, int stride);
1909 
1910 // Debug Tools
1911 // Use 'Metrics->Tools->Item Picker' to break into the call-stack of a specific item.
1912 #ifndef IM_DEBUG_BREAK
1913 #if defined(__clang__)
1914 #define IM_DEBUG_BREAK() __builtin_debugtrap()
1915 #elif defined (_MSC_VER)
1916 #define IM_DEBUG_BREAK() __debugbreak()
1917 #else
1918 #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!
1919 #endif
1920 #endif // #ifndef IM_DEBUG_BREAK
1921 
1922 // Test Engine Hooks (imgui_tests)
1923 //#define IMGUI_ENABLE_TEST_ENGINE
1924 #ifdef IMGUI_ENABLE_TEST_ENGINE
1925 extern void ImGuiTestEngineHook_PreNewFrame(ImGuiContext* ctx);
1926 extern void ImGuiTestEngineHook_PostNewFrame(ImGuiContext* ctx);
1927 extern void ImGuiTestEngineHook_ItemAdd(ImGuiContext* ctx, const ImRect& bb, ImGuiID id);
1928 extern void ImGuiTestEngineHook_ItemInfo(ImGuiContext* ctx, ImGuiID id, const char* label, ImGuiItemStatusFlags flags);
1929 extern void ImGuiTestEngineHook_Log(ImGuiContext* ctx, const char* fmt, ...);
1930 #define IMGUI_TEST_ENGINE_ITEM_ADD(_BB, _ID) ImGuiTestEngineHook_ItemAdd(&g, _BB, _ID) // Register item bounding box
1931 #define IMGUI_TEST_ENGINE_ITEM_INFO(_ID, _LABEL, _FLAGS) ImGuiTestEngineHook_ItemInfo(&g, _ID, _LABEL, _FLAGS) // Register item label and status flags (optional)
1932 #define IMGUI_TEST_ENGINE_LOG(_FMT, ...) ImGuiTestEngineHook_Log(&g, _FMT, __VA_ARGS__) // Custom log entry from user land into test log
1933 #else
1934 #define IMGUI_TEST_ENGINE_ITEM_ADD(_BB, _ID) do { } while (0)
1935 #define IMGUI_TEST_ENGINE_ITEM_INFO(_ID, _LABEL, _FLAGS) do { } while (0)
1936 #define IMGUI_TEST_ENGINE_LOG(_FMT, ...) do { } while (0)
1937 #endif
1938 
1939 #if defined(__clang__)
1940 #pragma clang diagnostic pop
1941 #elif defined(__GNUC__)
1942 #pragma GCC diagnostic pop
1943 #endif
1944 
1945 #ifdef _MSC_VER
1946 #pragma warning (pop)
1947 #endif
1948 
1949 #endif // #ifndef IMGUI_DISABLE
ImBitVector::Create
void Create(int sz)
Definition: imgui_internal.h:378
ImGuiIO::KeyMap
int KeyMap[ImGuiKey_COUNT]
Definition: imgui.h:1430
ImGuiGroupData::BackupCurrLineTextBaseOffset
float BackupCurrLineTextBaseOffset
Definition: imgui_internal.h:751
ImGuiTabItem::Offset
float Offset
Definition: imgui_internal.h:1600
ImGuiDragFlags_
ImGuiDragFlags_
Definition: imgui_internal.h:473
ImGui::ClosePopupToLevel
IMGUI_API void ClosePopupToLevel(int remaining, bool restore_focus_to_window_under_popup)
Definition: imgui.cpp:7609
ImGuiContext::InputTextState
ImGuiInputTextState InputTextState
Definition: imgui_internal.h:1177
ImGuiNextWindowData::PosCond
ImGuiCond PosCond
Definition: imgui_internal.h:958
ImGuiContext::ActiveIdSource
ImGuiInputSource ActiveIdSource
Definition: imgui_internal.h:1070
ImGuiAxis_Y
@ ImGuiAxis_Y
Definition: imgui_internal.h:586
ImGui::GetTopMostPopupModal
IMGUI_API ImGuiWindow * GetTopMostPopupModal()
Definition: imgui.cpp:7509
ImGuiColumns::LineMaxY
float LineMaxY
Definition: imgui_internal.h:864
ImGui::CalcWindowExpectedSize
IMGUI_API ImVec2 CalcWindowExpectedSize(ImGuiWindow *window)
Definition: imgui.cpp:4969
ImGuiNextWindowDataFlags_HasSizeConstraint
@ ImGuiNextWindowDataFlags_HasSizeConstraint
Definition: imgui_internal.h:949
table
upb_strtable table
Definition: php/ext/google/protobuf/protobuf.h:1065
ImGuiWindow::WasActive
bool WasActive
Definition: imgui_internal.h:1479
ImIsPowerOfTwo
static bool ImIsPowerOfTwo(int v)
Definition: imgui_internal.h:225
ImGuiMenuColumns
Definition: imgui_internal.h:758
ImGuiLogType_Clipboard
@ ImGuiLogType_Clipboard
Definition: imgui_internal.h:578
ImGuiColumns::Splitter
ImDrawListSplitter Splitter
Definition: imgui_internal.h:870
ImGuiMenuColumns::Width
float Width
Definition: imgui_internal.h:761
ImGuiAxis_None
@ ImGuiAxis_None
Definition: imgui_internal.h:584
ImGuiColumns::HostClipRect
ImRect HostClipRect
Definition: imgui_internal.h:867
ImGui::SliderBehavior
IMGUI_API bool SliderBehavior(const ImRect &bb, ImGuiID id, ImGuiDataType data_type, void *p_v, const void *p_min, const void *p_max, const char *format, float power, ImGuiSliderFlags flags, ImRect *out_grab_bb)
Definition: imgui_widgets.cpp:2506
ImGuiNavMoveFlags
int ImGuiNavMoveFlags
Definition: imgui_internal.h:110
ImGuiWindow::WindowRounding
float WindowRounding
Definition: imgui_internal.h:1467
ImGuiLogType
ImGuiLogType
Definition: imgui_internal.h:572
ImGui::ColorPickerOptionsPopup
IMGUI_API void ColorPickerOptionsPopup(const float *ref_col, ImGuiColorEditFlags flags)
Definition: imgui_widgets.cpp:5077
ImGuiDragDropFlags
int ImGuiDragDropFlags
Definition: imgui.h:159
ImGuiContext::NavMoveRequest
bool NavMoveRequest
Definition: imgui_internal.h:1117
ImGuiWindow::ResizeBorderHeld
signed char ResizeBorderHeld
Definition: imgui_internal.h:1488
ImGui::GetItemStatusFlags
ImGuiItemStatusFlags GetItemStatusFlags()
Definition: imgui_internal.h:1708
ImRect::Contains
bool Contains(const ImRect &r) const
Definition: imgui_internal.h:703
ImGuiContext::LogDepthToExpandDefault
int LogDepthToExpandDefault
Definition: imgui_internal.h:1213
ImGuiContext::NavInitRequestFromMove
bool NavInitRequestFromMove
Definition: imgui_internal.h:1113
ImGui::PopFocusScope
IMGUI_API void PopFocusScope()
Definition: imgui.cpp:6572
ImGuiContext::NavFocusScopeId
ImGuiID NavFocusScopeId
Definition: imgui_internal.h:1093
ImGuiNavMoveResult::RectRel
ImRect RectRel
Definition: imgui_internal.h:936
ImPool::GetByIndex
T * GetByIndex(ImPoolIdx n)
Definition: imgui_internal.h:399
ImGuiColumns::OffMinX
float OffMinX
Definition: imgui_internal.h:863
ImGuiContext::FontBaseSize
float FontBaseSize
Definition: imgui_internal.h:1026
name
GLuint const GLchar * name
Definition: glcorearb.h:3055
ImRect::ClipWithFull
void ClipWithFull(const ImRect &r)
Definition: imgui_internal.h:713
ImGuiWindow::BeginCount
short BeginCount
Definition: imgui_internal.h:1489
ImGuiDir_None
@ ImGuiDir_None
Definition: imgui.h:976
ImStrSkipBlank
const IMGUI_API char * ImStrSkipBlank(const char *str)
Definition: imgui.cpp:1412
ImGuiContext::FontSize
float FontSize
Definition: imgui_internal.h:1025
ImGuiContext::NavScoringCount
int NavScoringCount
Definition: imgui_internal.h:1104
ImGuiWindow::WindowPadding
ImVec2 WindowPadding
Definition: imgui_internal.h:1466
ImVec2ih
Definition: imgui_internal.h:674
ImGuiInputTextState::ID
ImGuiID ID
Definition: imgui_internal.h:774
ImGuiNavMoveResult
Definition: imgui_internal.h:928
ImGui::PushItemFlag
IMGUI_API void PushItemFlag(ImGuiItemFlags option, bool enabled)
Definition: imgui.cpp:6184
ImPow
static float ImPow(float x, float y)
Definition: imgui_internal.h:315
ImGuiItemFlags_Disabled
@ ImGuiItemFlags_Disabled
Definition: imgui_internal.h:523
ImPool
Definition: imgui_internal.h:390
ImDrawDataBuilder::FlattenIntoSingleLayer
IMGUI_API void FlattenIntoSingleLayer()
Definition: imgui.cpp:4092
ImGuiStyleMod::VarIdx
ImGuiStyleVar VarIdx
Definition: imgui_internal.h:736
ImPool::GetByKey
T * GetByKey(ImGuiID key)
Definition: imgui_internal.h:398
ImGuiContext::SettingsHandlers
ImVector< ImGuiSettingsHandler > SettingsHandlers
Definition: imgui_internal.h:1201
ImGui::CollapseButton
IMGUI_API bool CollapseButton(ImGuiID id, const ImVec2 &pos)
Definition: imgui_widgets.cpp:785
ImGuiContext::FramerateSecPerFrameIdx
int FramerateSecPerFrameIdx
Definition: imgui_internal.h:1221
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:821
ImGuiWindowTempData::CurrentColumns
ImGuiColumns * CurrentColumns
Definition: imgui_internal.h:1402
ImGui::SetCurrentFont
IMGUI_API void SetCurrentFont(ImFont *font)
Definition: imgui.cpp:6151
ImGuiNavDirSourceFlags_PadLStick
@ ImGuiNavDirSourceFlags_PadLStick
Definition: imgui_internal.h:630
ImGuiContext::NavInitResultRectRel
ImRect NavInitResultRectRel
Definition: imgui_internal.h:1115
ImGuiTabBar::SelectedTabId
ImGuiID SelectedTabId
Definition: imgui_internal.h:1612
ImVec1::ImVec1
ImVec1(float _x)
Definition: imgui_internal.h:670
ImBitArraySetBit
void ImBitArraySetBit(ImU32 *arr, int n)
Definition: imgui_internal.h:360
ImGuiContext::FrameCountEnded
int FrameCountEnded
Definition: imgui_internal.h:1030
ImFileRead
IMGUI_API ImU64 ImFileRead(void *data, ImU64 size, ImU64 count, ImFileHandle file)
Definition: imgui.cpp:1568
ImGuiContext::DragDropPayload
ImGuiPayload DragDropPayload
Definition: imgui_internal.h:1158
ImGuiTabBar::ID
ImGuiID ID
Definition: imgui_internal.h:1611
ImGuiButtonFlags_MouseButtonRight
@ ImGuiButtonFlags_MouseButtonRight
Definition: imgui_internal.h:457
ImGuiShrinkWidthItem::Index
int Index
Definition: imgui_internal.h:1001
ImPool::ImPool
ImPool()
Definition: imgui_internal.h:396
ImGuiWindowTempData::GroupOffset
ImVec1 GroupOffset
Definition: imgui_internal.h:1377
ImGuiKey
int ImGuiKey
Definition: imgui.h:147
ImGuiPtrOrIndex
Definition: imgui_internal.h:1005
ImGui::UpdateMouseMovingWindowNewFrame
IMGUI_API void UpdateMouseMovingWindowNewFrame()
Definition: imgui.cpp:3347
ImGuiContext::NavMoveClipDir
ImGuiDir NavMoveClipDir
Definition: imgui_internal.h:1121
ImDot
static float ImDot(const ImVec2 &a, const ImVec2 &b)
Definition: imgui_internal.h:341
ImGuiSliderFlags_None
@ ImGuiSliderFlags_None
Definition: imgui_internal.h:469
ImGuiInputTextState::CursorAnim
float CursorAnim
Definition: imgui_internal.h:783
ImGuiInputSource_Mouse
@ ImGuiInputSource_Mouse
Definition: imgui_internal.h:598
ImGuiIO::Fonts
ImFontAtlas * Fonts
Definition: imgui.h:1435
ImGuiDir
int ImGuiDir
Definition: imgui.h:146
benchmarks.python.py_benchmark.const
const
Definition: py_benchmark.py:14
ImGuiNextItemData::Flags
ImGuiNextItemDataFlags Flags
Definition: imgui_internal.h:985
ImGuiWindow::MenuBarRect
ImRect MenuBarRect() const
Definition: imgui_internal.h:1558
ImGuiContext::ActiveIdIsJustActivated
bool ActiveIdIsJustActivated
Definition: imgui_internal.h:1060
ImGuiTabItem::ImGuiTabItem
ImGuiTabItem()
Definition: imgui_internal.h:1604
ImGui::GetID
IMGUI_API ImGuiID GetID(const char *str_id)
Definition: imgui.cpp:6656
ImGuiNavLayer_Main
@ ImGuiNavLayer_Main
Definition: imgui_internal.h:654
ImGuiButtonFlags_AlignTextBaseLine
@ ImGuiButtonFlags_AlignTextBaseLine
Definition: imgui_internal.h:451
ImClamp
static T ImClamp(T v, T mn, T mx)
Definition: imgui_internal.h:322
ImGuiInputTextState::Stb
ImStb::STB_TexteditState Stb
Definition: imgui_internal.h:782
ImPool::GetOrAddByKey
T * GetOrAddByKey(ImGuiID key)
Definition: imgui_internal.h:401
ImFabs
#define ImFabs(X)
Definition: imgui_internal.h:305
Map
Definition: ruby/ext/google/protobuf_c/protobuf.h:442
ImGuiNavLayer_Menu
@ ImGuiNavLayer_Menu
Definition: imgui_internal.h:655
ImHashStr
IMGUI_API ImU32 ImHashStr(const char *data, size_t data_size=0, ImU32 seed=0)
Definition: imgui.cpp:1513
ImGuiPopupData::Window
ImGuiWindow * Window
Definition: imgui_internal.h:835
ImGuiWindowTempData::ItemFlags
ImGuiItemFlags ItemFlags
Definition: imgui_internal.h:1410
ImGuiWindowTempData::NavHasScroll
bool NavHasScroll
Definition: imgui_internal.h:1392
ImGui::FindOrCreateColumns
IMGUI_API ImGuiColumns * FindOrCreateColumns(ImGuiWindow *window, ImGuiID id)
Definition: imgui_widgets.cpp:7468
ImFormatString
IMGUI_API int ImFormatString(char *buf, size_t buf_size, const char *fmt,...) IM_FMTARGS(3)
Definition: imgui.cpp:1437
clamp
GLenum clamp
Definition: glcorearb.h:3240
ImRect::Expand
void Expand(const float amount)
Definition: imgui_internal.h:707
ImGuiInputTextState::UserCallback
ImGuiInputTextCallback UserCallback
Definition: imgui_internal.h:787
ImGuiSelectableFlags_DrawHoveredWhenHeld
@ ImGuiSelectableFlags_DrawHoveredWhenHeld
Definition: imgui_internal.h:498
ImGuiSelectableFlags_SetNavIdOnHover
@ ImGuiSelectableFlags_SetNavIdOnHover
Definition: imgui_internal.h:499
ImPool::Map
ImGuiStorage Map
Definition: imgui_internal.h:393
end
GLuint GLuint end
Definition: glcorearb.h:2858
ImGuiLogType_Buffer
@ ImGuiLogType_Buffer
Definition: imgui_internal.h:577
ImGuiContext::HoveredIdNotActiveTimer
float HoveredIdNotActiveTimer
Definition: imgui_internal.h:1056
ImGuiNextItemDataFlags_None
@ ImGuiNextItemDataFlags_None
Definition: imgui_internal.h:978
ImStrnicmp
IMGUI_API int ImStrnicmp(const char *str1, const char *str2, size_t count)
Definition: imgui.cpp:1309
ImPool::Buf
ImVector< T > Buf
Definition: imgui_internal.h:392
ImGuiInputSource
ImGuiInputSource
Definition: imgui_internal.h:595
ImGuiContext::WindowsById
ImGuiStorage WindowsById
Definition: imgui_internal.h:1041
ImGui::RenderArrowPointingAt
IMGUI_API void RenderArrowPointingAt(ImDrawList *draw_list, ImVec2 pos, ImVec2 half_sz, ImGuiDir direction, ImU32 col)
Definition: imgui_draw.cpp:3252
ImGuiContext::NavActivateDownId
ImGuiID NavActivateDownId
Definition: imgui_internal.h:1095
ImGui::DataTypeApplyOpFromText
IMGUI_API bool DataTypeApplyOpFromText(const char *buf, const char *initial_value_buf, ImGuiDataType data_type, void *p_data, const char *format)
Definition: imgui_widgets.cpp:1785
ImGuiButtonFlags_NoNavFocus
@ ImGuiButtonFlags_NoNavFocus
Definition: imgui_internal.h:454
ImGuiContext::Font
ImFont * Font
Definition: imgui_internal.h:1024
ImU64
unsigned long long ImU64
Definition: imgui.h:204
ImGuiWindowTempData::MenuColumns
ImGuiMenuColumns MenuColumns
Definition: imgui_internal.h:1397
NULL
NULL
Definition: test_security_zap.cpp:405
g
GLboolean GLboolean g
Definition: glcorearb.h:3228
ImGuiContext::TooltipOverrideCount
int TooltipOverrideCount
Definition: imgui_internal.h:1189
ImGuiNextWindowData::ContentSizeVal
ImVec2 ContentSizeVal
Definition: imgui_internal.h:964
src
GLenum src
Definition: glcorearb.h:3364
ImGuiContext::LogLineFirstItem
bool LogLineFirstItem
Definition: imgui_internal.h:1210
ImGuiContext::HoveredIdPreviousFrame
ImGuiID HoveredIdPreviousFrame
Definition: imgui_internal.h:1054
ImGuiNavDirSourceFlags_Keyboard
@ ImGuiNavDirSourceFlags_Keyboard
Definition: imgui_internal.h:628
ImGuiContext::Style
ImGuiStyle Style
Definition: imgui_internal.h:1023
ImRotate
static ImVec2 ImRotate(const ImVec2 &v, float cos_a, float sin_a)
Definition: imgui_internal.h:342
ImGuiContext::DragDropActive
bool DragDropActive
Definition: imgui_internal.h:1152
ImGui::GetActiveID
ImGuiID GetActiveID()
Definition: imgui_internal.h:1709
ImGuiContext::WithinFrameScopeWithImplicitWindow
bool WithinFrameScopeWithImplicitWindow
Definition: imgui_internal.h:1033
ImGuiCond
int ImGuiCond
Definition: imgui.h:144
IM_NEW
#define IM_NEW(_TYPE)
Definition: imgui.h:1286
ImTriangleClosestPoint
IMGUI_API ImVec2 ImTriangleClosestPoint(const ImVec2 &a, const ImVec2 &b, const ImVec2 &c, const ImVec2 &p)
Definition: imgui.cpp:1281
ImParseFormatFindStart
const IMGUI_API char * ImParseFormatFindStart(const char *format)
Definition: imgui_widgets.cpp:2793
ImGuiStyleMod::BackupFloat
float BackupFloat[2]
Definition: imgui_internal.h:737
ImVec4::z
float z
Definition: imgui.h:223
ImGuiContext::OpenPopupStack
ImVector< ImGuiPopupData > OpenPopupStack
Definition: imgui_internal.h:1087
ImGuiStyleMod::ImGuiStyleMod
ImGuiStyleMod(ImGuiStyleVar idx, float v)
Definition: imgui_internal.h:739
ImGuiPlotType_Histogram
@ ImGuiPlotType_Histogram
Definition: imgui_internal.h:592
ImGuiContext::PlatformImePos
ImVec2 PlatformImePos
Definition: imgui_internal.h:1194
google::protobuf::operator*
uint128 operator*(const uint128 &lhs, const uint128 &rhs)
Definition: int128.h:308
ImGuiInputTextState::GetRedoAvailCount
int GetRedoAvailCount() const
Definition: imgui_internal.h:794
ImGuiCol
int ImGuiCol
Definition: imgui.h:137
ImGuiWindow::Flags
ImGuiWindowFlags Flags
Definition: imgui_internal.h:1460
ImGuiTooltipFlags_OverridePreviousTooltip
@ ImGuiTooltipFlags_OverridePreviousTooltip
Definition: imgui_internal.h:561
ImGuiSettingsHandler::TypeHash
ImGuiID TypeHash
Definition: imgui_internal.h:822
ImGuiNavMoveFlags_AllowCurrentNavId
@ ImGuiNavMoveFlags_AllowCurrentNavId
Definition: imgui_internal.h:640
ImRect::Min
ImVec2 Min
Definition: imgui_internal.h:686
ImChunkStream
Definition: imgui_internal.h:417
ImGuiNavInput
int ImGuiNavInput
Definition: imgui.h:148
ImStrdup
IMGUI_API char * ImStrdup(const char *str)
Definition: imgui.cpp:1325
ImGui::FindWindowByName
IMGUI_API ImGuiWindow * FindWindowByName(const char *name)
Definition: imgui.cpp:4831
input
std::string input
Definition: tokenizer_unittest.cc:197
ImGuiContext::NavWindowingTimer
float NavWindowingTimer
Definition: imgui_internal.h:1130
rm
static bool rm(upb_table *t, lookupkey_t key, upb_value *val, upb_tabkey *removed, uint32_t hash, eqlfunc_t *eql)
Definition: php/ext/google/protobuf/upb.c:4850
ImGuiContext::ActiveIdPreviousFrameWindow
ImGuiWindow * ActiveIdPreviousFrameWindow
Definition: imgui_internal.h:1075
ImGuiTabBar::LastTabItemIdx
short LastTabItemIdx
Definition: imgui_internal.h:1631
ImGuiSliderFlags_
ImGuiSliderFlags_
Definition: imgui_internal.h:467
ImGuiColorMod::Col
ImGuiCol Col
Definition: imgui_internal.h:729
ImGui::PopColumnsBackground
IMGUI_API void PopColumnsBackground()
Definition: imgui_widgets.cpp:7458
ImVector::index_from_ptr
int index_from_ptr(const T *it) const
Definition: imgui.h:1355
ImGuiItemHoveredDataBackup
Definition: imgui_internal.h:1562
ImGuiContext::DragDropAcceptIdCurrRectSurface
float DragDropAcceptIdCurrRectSurface
Definition: imgui_internal.h:1162
ImGuiInputSource_Nav
@ ImGuiInputSource_Nav
Definition: imgui_internal.h:599
ImGui::GcAwakeTransientWindowBuffers
IMGUI_API void GcAwakeTransientWindowBuffers(ImGuiWindow *window)
Definition: imgui.cpp:2959
ImGuiWindow::RootWindow
ImGuiWindow * RootWindow
Definition: imgui_internal.h:1528
ImGuiNextWindowDataFlags_HasCollapsed
@ ImGuiNextWindowDataFlags_HasCollapsed
Definition: imgui_internal.h:948
ImGuiTabBar::NextSelectedTabId
ImGuiID NextSelectedTabId
Definition: imgui_internal.h:1613
ImGui::MarkItemEdited
IMGUI_API void MarkItemEdited(ImGuiID id)
Definition: imgui.cpp:3030
ImGui::GetItemID
ImGuiID GetItemID()
Definition: imgui_internal.h:1707
ImGuiContext::ActiveId
ImGuiID ActiveId
Definition: imgui_internal.h:1057
ImGuiNavMoveResult::Clear
void Clear()
Definition: imgui_internal.h:939
ImGuiWindow::AutoFitFramesY
ImS8 AutoFitFramesY
Definition: imgui_internal.h:1493
ImGuiWindowFlags
int ImGuiWindowFlags
Definition: imgui.h:168
ImRect::TranslateY
void TranslateY(float dy)
Definition: imgui_internal.h:711
ImGui::BeginDragDropTargetCustom
IMGUI_API bool BeginDragDropTargetCustom(const ImRect &bb, ImGuiID id)
Definition: imgui.cpp:9186
ImGuiContext::WantCaptureMouseNextFrame
int WantCaptureMouseNextFrame
Definition: imgui_internal.h:1223
ImGuiButtonFlags_PressedOnClick
@ ImGuiButtonFlags_PressedOnClick
Definition: imgui_internal.h:441
ImGuiContext::FrameCount
int FrameCount
Definition: imgui_internal.h:1029
ImGuiButtonFlags_NoHoldingActiveId
@ ImGuiButtonFlags_NoHoldingActiveId
Definition: imgui_internal.h:453
ImGuiSeparatorFlags
int ImGuiSeparatorFlags
Definition: imgui_internal.h:113
ImGuiTabBar::PrevFrameVisible
int PrevFrameVisible
Definition: imgui_internal.h:1616
ImGui::CalcItemSize
IMGUI_API ImVec2 CalcItemSize(ImVec2 size, float default_w, float default_h)
Definition: imgui.cpp:7084
ImGuiWindowTempData::NavLayerActiveMaskNext
int NavLayerActiveMaskNext
Definition: imgui_internal.h:1389
ImGuiContext::LastActiveId
ImGuiID LastActiveId
Definition: imgui_internal.h:1076
mode
GLenum mode
Definition: glcorearb.h:2764
ImGuiShrinkWidthItem::Width
float Width
Definition: imgui_internal.h:1002
ImGuiNavMoveFlags_WrapY
@ ImGuiNavMoveFlags_WrapY
Definition: imgui_internal.h:639
ImChunkStream::Buf
ImVector< char > Buf
Definition: imgui_internal.h:419
ImGuiContext::LogLinePosY
float LogLinePosY
Definition: imgui_internal.h:1209
ImGuiButtonFlags_MouseButtonLeft
@ ImGuiButtonFlags_MouseButtonLeft
Definition: imgui_internal.h:456
ImGuiColumnData::ImGuiColumnData
ImGuiColumnData()
Definition: imgui_internal.h:852
ImGuiButtonFlags_Disabled
@ ImGuiButtonFlags_Disabled
Definition: imgui_internal.h:450
ImGuiTabBarFlags
int ImGuiTabBarFlags
Definition: imgui.h:165
ImGuiDataTypeInfo::Size
size_t Size
Definition: imgui_internal.h:721
ImGui::SeparatorEx
IMGUI_API void SeparatorEx(ImGuiSeparatorFlags flags)
Definition: imgui_widgets.cpp:1254
ImGuiContext::NavAnyRequest
bool NavAnyRequest
Definition: imgui_internal.h:1111
ImGuiPopupData::PopupId
ImGuiID PopupId
Definition: imgui_internal.h:834
ImGuiNextItemData::OpenCond
ImGuiCond OpenCond
Definition: imgui_internal.h:988
ImGui::CalcTypematicRepeatAmount
IMGUI_API int CalcTypematicRepeatAmount(float t0, float t1, float repeat_delay, float repeat_rate)
Definition: imgui.cpp:4380
ImGuiWindowTempData::NavLayerCurrent
ImGuiNavLayer NavLayerCurrent
Definition: imgui_internal.h:1386
ImGuiPopupData
Definition: imgui_internal.h:832
google::protobuf::operator+=
Duration & operator+=(Duration &d1, const Duration &d2)
Definition: time_util.cc:408
ImGuiWindow::SetWindowSizeAllowFlags
ImGuiCond SetWindowSizeAllowFlags
Definition: imgui_internal.h:1500
ImGuiInputSource_None
@ ImGuiInputSource_None
Definition: imgui_internal.h:597
label
GLuint GLsizei const GLchar * label
Definition: glcorearb.h:4316
ImGuiNextWindowData::MenuBarOffsetMinVal
ImVec2 MenuBarOffsetMinVal
Definition: imgui_internal.h:970
ImGui::ItemHoverable
IMGUI_API bool ItemHoverable(const ImRect &bb, ImGuiID id)
Definition: imgui.cpp:3107
ImGuiWindowTempData::ColumnsOffset
ImVec1 ColumnsOffset
Definition: imgui_internal.h:1376
ImGuiContext::DragSpeedDefaultRatio
float DragSpeedDefaultRatio
Definition: imgui_internal.h:1187
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:1270
ImGuiNavMoveFlags_AlsoScoreVisibleSet
@ ImGuiNavMoveFlags_AlsoScoreVisibleSet
Definition: imgui_internal.h:641
ImGuiWindow::SetWindowPosPivot
ImVec2 SetWindowPosPivot
Definition: imgui_internal.h:1503
ImGuiWindowTempData::PrevLineTextBaseOffset
float PrevLineTextBaseOffset
Definition: imgui_internal.h:1374
ImParseFormatPrecision
IMGUI_API int ImParseFormatPrecision(const char *format, int default_value)
Definition: imgui_widgets.cpp:2842
ImGuiInputTextState::CursorFollow
bool CursorFollow
Definition: imgui_internal.h:784
ImUpperPowerOfTwo
static int ImUpperPowerOfTwo(int v)
Definition: imgui_internal.h:226
ImGui::SetScrollY
IMGUI_API void SetScrollY(float scroll_y)
Definition: imgui.cpp:7360
ImGuiWindowTempData::LastItemDisplayRect
ImRect LastItemDisplayRect
Definition: imgui_internal.h:1383
ImGuiContext::ActiveIdPreviousFrame
ImGuiID ActiveIdPreviousFrame
Definition: imgui_internal.h:1072
ImGuiContext::DragDropPayloadBufHeap
ImVector< unsigned char > DragDropPayloadBufHeap
Definition: imgui_internal.h:1166
ImGuiContext::SettingsDirtyTimer
float SettingsDirtyTimer
Definition: imgui_internal.h:1199
ImGuiNextWindowData::PosPivotVal
ImVec2 PosPivotVal
Definition: imgui_internal.h:962
ImGuiNextItemData::ImGuiNextItemData
ImGuiNextItemData()
Definition: imgui_internal.h:991
ImVec1::x
float x
Definition: imgui_internal.h:668
ImGuiSettingsHandler::UserData
void * UserData
Definition: imgui_internal.h:826
ImGuiContext::ActiveIdPreviousFrameHasBeenEditedBefore
bool ActiveIdPreviousFrameHasBeenEditedBefore
Definition: imgui_internal.h:1074
ImGuiContext::NavWindow
ImGuiWindow * NavWindow
Definition: imgui_internal.h:1091
ImGuiNextWindowData::ImGuiNextWindowData
ImGuiNextWindowData()
Definition: imgui_internal.h:972
ImGuiContext::CurrentTabBar
ImGuiTabBar * CurrentTabBar
Definition: imgui_internal.h:1170
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)
ImGuiSelectableFlags_SpanAvailWidth
@ ImGuiSelectableFlags_SpanAvailWidth
Definition: imgui_internal.h:497
ImGuiContext::LogBuffer
ImGuiTextBuffer LogBuffer
Definition: imgui_internal.h:1208
ImGuiContext::WheelingWindowTimer
float WheelingWindowTimer
Definition: imgui_internal.h:1049
ImGuiInputTextState::CursorAnimReset
void CursorAnimReset()
Definition: imgui_internal.h:798
ImGuiTabBarFlags_DockNode
@ ImGuiTabBarFlags_DockNode
Definition: imgui_internal.h:1581
ImFloor
static float ImFloor(float f)
Definition: imgui_internal.h:338
ImGuiContext::NavMoveResultLocal
ImGuiNavMoveResult NavMoveResultLocal
Definition: imgui_internal.h:1122
ImGuiContext::NextWindowData
ImGuiNextWindowData NextWindowData
Definition: imgui_internal.h:1080
ImGuiTabBar::FramePadding
ImVec2 FramePadding
Definition: imgui_internal.h:1632
ImGui::FindWindowByID
IMGUI_API ImGuiWindow * FindWindowByID(ImGuiID id)
Definition: imgui.cpp:4825
ImGuiWindow::ParentWindow
ImGuiWindow * ParentWindow
Definition: imgui_internal.h:1527
ImGuiInputTextState::ClearFreeMemory
void ClearFreeMemory()
Definition: imgui_internal.h:792
ImDrawList
Definition: imgui.h:1961
ImChunkStream::size
int size() const
Definition: imgui_internal.h:423
ImGuiColorEditFlags__OptionsDefault
@ ImGuiColorEditFlags__OptionsDefault
Definition: imgui.h:1216
ImTextStrToUtf8
IMGUI_API int ImTextStrToUtf8(char *buf, int buf_size, const ImWchar *in_text, const ImWchar *in_text_end)
Definition: imgui.cpp:1765
ImGuiContext::InputTextPasswordFont
ImFont InputTextPasswordFont
Definition: imgui_internal.h:1178
ImGuiInputTextState::InitialTextA
ImVector< char > InitialTextA
Definition: imgui_internal.h:778
ImRect::IsInverted
bool IsInverted() const
Definition: imgui_internal.h:715
ImGuiInputTextState::UserCallbackData
void * UserCallbackData
Definition: imgui_internal.h:788
ImGuiNavMoveFlags_ScrollToEdge
@ ImGuiNavMoveFlags_ScrollToEdge
Definition: imgui_internal.h:642
ImGuiTooltipFlags
int ImGuiTooltipFlags
Definition: imgui_internal.h:116
ImFormatStringV
IMGUI_API int ImFormatStringV(char *buf, size_t buf_size, const char *fmt, va_list args) IM_FMTLIST(3)
Definition: imgui.cpp:1455
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:3230
ImGuiItemHoveredDataBackup::LastItemDisplayRect
ImRect LastItemDisplayRect
Definition: imgui_internal.h:1567
ImGuiContext::HoveredIdTimer
float HoveredIdTimer
Definition: imgui_internal.h:1055
ImHash
static ImU32 ImHash(const void *data, int size, ImU32 seed=0)
Definition: imgui_internal.h:218
ImGuiSelectableFlagsPrivate_
ImGuiSelectableFlagsPrivate_
Definition: imgui_internal.h:491
google::protobuf::operator/
uint128 operator/(const uint128 &lhs, const uint128 &rhs)
Definition: int128.h:312
ImGuiContext::NavNextActivateId
ImGuiID NavNextActivateId
Definition: imgui_internal.h:1101
ImGuiNavLayer_COUNT
@ ImGuiNavLayer_COUNT
Definition: imgui_internal.h:656
ImRect::GetSize
ImVec2 GetSize() const
Definition: imgui_internal.h:695
ImGuiWindow::HasCloseButton
bool HasCloseButton
Definition: imgui_internal.h:1487
ImGuiWindow::Collapsed
bool Collapsed
Definition: imgui_internal.h:1481
ImGuiContext::LastActiveIdTimer
float LastActiveIdTimer
Definition: imgui_internal.h:1077
ImGuiContext::BackgroundDrawList
ImDrawList BackgroundDrawList
Definition: imgui_internal.h:1147
ImGuiInputReadMode_Repeat
@ ImGuiInputReadMode_Repeat
Definition: imgui_internal.h:611
ImModPositive
static int ImModPositive(int a, int b)
Definition: imgui_internal.h:340
ImGuiContext::MenusIdSubmittedThisFrame
ImVector< ImGuiID > MenusIdSubmittedThisFrame
Definition: imgui_internal.h:1191
ImGui::BeginColumns
IMGUI_API void BeginColumns(const char *str_id, int count, ImGuiColumnsFlags flags=0)
Definition: imgui_widgets.cpp:7494
ImGuiContext::FrameCountRendered
int FrameCountRendered
Definition: imgui_internal.h:1031
ImGuiAxis_X
@ ImGuiAxis_X
Definition: imgui_internal.h:585
ImGuiTabItemFlags_None
@ ImGuiTabItemFlags_None
Definition: imgui.h:900
ImGuiWindowTempData::StateStorage
ImGuiStorage * StateStorage
Definition: imgui_internal.h:1401
ImGuiIO::NavInputs
float NavInputs[ImGuiNavInput_COUNT]
Definition: imgui.h:1494
ImGuiWindowTempData::TextWrapPosStack
ImVector< float > TextWrapPosStack
Definition: imgui_internal.h:1415
ImGuiInputTextState::ScrollX
float ScrollX
Definition: imgui_internal.h:781
ImGuiWindowSettings::Pos
ImVec2ih Pos
Definition: imgui_internal.h:811
IM_DRAWLIST_ARCFAST_TESSELLATION_MULTIPLIER
#define IM_DRAWLIST_ARCFAST_TESSELLATION_MULTIPLIER
Definition: imgui_internal.h:896
ImGuiWindowTempData::CursorStartPos
ImVec2 CursorStartPos
Definition: imgui_internal.h:1369
ImGuiWindow::SetWindowCollapsedAllowFlags
ImGuiCond SetWindowCollapsedAllowFlags
Definition: imgui_internal.h:1501
ImS8
signed char ImS8
Definition: imgui.h:189
ImGuiTextFlags_None
@ ImGuiTextFlags_None
Definition: imgui_internal.h:554
ImGuiTabBar::TabsNames
ImGuiTextBuffer TabsNames
Definition: imgui_internal.h:1633
ImGuiID
unsigned int ImGuiID
Definition: imgui.h:174
ImGuiTabBarFlags_SaveSettings
@ ImGuiTabBarFlags_SaveSettings
Definition: imgui_internal.h:1583
ImGuiNavHighlightFlags
int ImGuiNavHighlightFlags
Definition: imgui_internal.h:108
google::protobuf::python::cdescriptor_pool::Add
static PyObject * Add(PyObject *self, PyObject *file_descriptor_proto)
Definition: descriptor_pool.cc:621
ImGui::TabBarFindTabByID
IMGUI_API ImGuiTabItem * TabBarFindTabByID(ImGuiTabBar *tab_bar, ImGuiID tab_id)
Definition: imgui_widgets.cpp:6780
ImGuiTabBar::LastTabContentHeight
float LastTabContentHeight
Definition: imgui_internal.h:1618
ImGuiWindowTempData::ImGuiWindowTempData
ImGuiWindowTempData()
Definition: imgui_internal.h:1419
ImGuiNavLayer
ImGuiNavLayer
Definition: imgui_internal.h:652
ImGui::NavMoveRequestCancel
IMGUI_API void NavMoveRequestCancel()
Definition: imgui.cpp:8194
ImGuiColumnsFlags_NoBorder
@ ImGuiColumnsFlags_NoBorder
Definition: imgui_internal.h:483
ImVector< ImU32 >
ImGuiContext::TempInputId
ImGuiID TempInputId
Definition: imgui_internal.h:1179
ImGuiContext::ScrollbarClickDeltaToGrabCenter
float ScrollbarClickDeltaToGrabCenter
Definition: imgui_internal.h:1188
ImGuiWindowTempData::NavFocusScopeIdCurrent
ImGuiID NavFocusScopeIdCurrent
Definition: imgui_internal.h:1390
ImGui::IsDragDropPayloadBeingAccepted
IMGUI_API bool IsDragDropPayloadBeingAccepted()
Definition: imgui.cpp:9238
ImGuiTabBar
Definition: imgui_internal.h:1608
ImGuiNavDirSourceFlags_None
@ ImGuiNavDirSourceFlags_None
Definition: imgui_internal.h:627
ImGuiColumns::IsBeingResized
bool IsBeingResized
Definition: imgui_internal.h:860
ImGui::GetDefaultFont
ImFont * GetDefaultFont()
Definition: imgui_internal.h:1678
y
GLint y
Definition: glcorearb.h:2768
ImGuiNextItemData::ClearFlags
void ClearFlags()
Definition: imgui_internal.h:992
ImGuiTextBuffer::Buf
ImVector< char > Buf
Definition: imgui.h:1704
ImGuiTabItemFlags_NoCloseButton
@ ImGuiTabItemFlags_NoCloseButton
Definition: imgui_internal.h:1589
ImGui::FocusableItemRegister
IMGUI_API bool FocusableItemRegister(ImGuiWindow *window, ImGuiID id)
Definition: imgui.cpp:3152
target
GLenum target
Definition: glcorearb.h:3739
ImGui::GetColumnOffsetFromNorm
IMGUI_API float GetColumnOffsetFromNorm(const ImGuiColumns *columns, float offset_norm)
Definition: imgui_widgets.cpp:7329
ImGuiNextWindowData::ClearFlags
void ClearFlags()
Definition: imgui_internal.h:973
ImGui::ClearActiveID
IMGUI_API void ClearActiveID()
Definition: imgui.cpp:3001
ImGuiContext::NavDisableMouseHover
bool NavDisableMouseHover
Definition: imgui_internal.h:1110
ImGuiNextItemDataFlags
int ImGuiNextItemDataFlags
Definition: imgui_internal.h:111
ImGuiContext::NavId
ImGuiID NavId
Definition: imgui_internal.h:1092
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:2574
ImGuiItemHoveredDataBackup::ImGuiItemHoveredDataBackup
ImGuiItemHoveredDataBackup()
Definition: imgui_internal.h:1569
ImFontAtlas
Definition: imgui.h:2182
ImGuiSliderFlags
int ImGuiSliderFlags
Definition: imgui_internal.h:114
ImVec2
Definition: imgui.h:208
ImGuiContext::FocusTabPressed
bool FocusTabPressed
Definition: imgui_internal.h:1141
ImGui::BringWindowToDisplayFront
IMGUI_API void BringWindowToDisplayFront(ImGuiWindow *window)
Definition: imgui.cpp:6055
ImGuiContext::CurrentTabBarStack
ImVector< ImGuiPtrOrIndex > CurrentTabBarStack
Definition: imgui_internal.h:1172
ImGui::FocusTopMostWindowUnderOne
IMGUI_API void FocusTopMostWindowUnderOne(ImGuiWindow *under_this_window, ImGuiWindow *ignore_window)
Definition: imgui.cpp:6125
ImGuiContext::DragDropAcceptFlags
ImGuiDragDropFlags DragDropAcceptFlags
Definition: imgui_internal.h:1161
x
GLint GLenum GLint x
Definition: glcorearb.h:2834
ImGuiContext::TabBars
ImPool< ImGuiTabBar > TabBars
Definition: imgui_internal.h:1171
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:2646
ImGuiColumns::Columns
ImVector< ImGuiColumnData > Columns
Definition: imgui_internal.h:869
IM_UNUSED
#define IM_UNUSED(_VAR)
Definition: imgui.h:89
ImGuiInputTextState::TextAIsValid
bool TextAIsValid
Definition: imgui_internal.h:779
google::protobuf::operator-
uint128 operator-(const uint128 &val)
Definition: int128.h:185
ImGuiContext::NavDisableHighlight
bool NavDisableHighlight
Definition: imgui_internal.h:1109
ImRect::Max
ImVec2 Max
Definition: imgui_internal.h:687
ImParseFormatFindEnd
const IMGUI_API char * ImParseFormatFindEnd(const char *format)
Definition: imgui_widgets.cpp:2806
ImGuiWindowFlags_MenuBar
@ ImGuiWindowFlags_MenuBar
Definition: imgui.h:779
ImGuiPopupPositionPolicy_ComboBox
@ ImGuiPopupPositionPolicy_ComboBox
Definition: imgui_internal.h:662
ImGuiWindowTempData::CursorPos
ImVec2 CursorPos
Definition: imgui_internal.h:1367
ImGuiSelectableFlags_SelectOnClick
@ ImGuiSelectableFlags_SelectOnClick
Definition: imgui_internal.h:495
ImGui::TabItemCalcSize
IMGUI_API ImVec2 TabItemCalcSize(const char *label, bool has_close_button)
Definition: imgui_widgets.cpp:7205
ImBitArrayClearBit
void ImBitArrayClearBit(ImU32 *arr, int n)
Definition: imgui_internal.h:359
ImGuiContext::DragDropAcceptIdPrev
ImGuiID DragDropAcceptIdPrev
Definition: imgui_internal.h:1164
ImBitVector::ClearBit
void ClearBit(int n)
Definition: imgui_internal.h:382
T
#define T(upbtypeconst, upbtype, ctype, default_value)
ImGui::RenderNavHighlight
IMGUI_API void RenderNavHighlight(const ImRect &bb, ImGuiID id, ImGuiNavHighlightFlags flags=ImGuiNavHighlightFlags_TypeDefault)
Definition: imgui.cpp:2768
ImGuiContext::DebugItemPickerActive
bool DebugItemPickerActive
Definition: imgui_internal.h:1216
ImGuiButtonFlags_PressedOnRelease
@ ImGuiButtonFlags_PressedOnRelease
Definition: imgui_internal.h:444
ImRect::Overlaps
bool Overlaps(const ImRect &r) const
Definition: imgui_internal.h:704
ImPool::~ImPool
~ImPool()
Definition: imgui_internal.h:397
ImGuiContext::DimBgRatio
float DimBgRatio
Definition: imgui_internal.h:1146
ImGuiContext::NavWindowingTarget
ImGuiWindow * NavWindowingTarget
Definition: imgui_internal.h:1127
ImAddClampOverflow
static T ImAddClampOverflow(T a, T b, T mn, T mx)
Definition: imgui_internal.h:325
ImGuiButtonFlags
int ImGuiButtonFlags
Definition: imgui_internal.h:103
ImGuiWindowTempData::NavLayerActiveMask
int NavLayerActiveMask
Definition: imgui_internal.h:1388
ImStb
Definition: imgui_internal.h:122
ImPool::Remove
void Remove(ImGuiID key, ImPoolIdx idx)
Definition: imgui_internal.h:406
ImGuiWindow::SizeFull
ImVec2 SizeFull
Definition: imgui_internal.h:1463
ImGuiWindowTempData::GroupStack
ImVector< ImGuiGroupData > GroupStack
Definition: imgui_internal.h:1416
ImGuiWindowTempData::NavHideHighlightOneFrame
bool NavHideHighlightOneFrame
Definition: imgui_internal.h:1391
ImGuiContext::PrivateClipboard
ImVector< char > PrivateClipboard
Definition: imgui_internal.h:1190
ImGuiInputTextState::CurLenW
int CurLenW
Definition: imgui_internal.h:775
ImGuiContext::CurrentWindowStack
ImVector< ImGuiWindow * > CurrentWindowStack
Definition: imgui_internal.h:1040
ImMin
static T ImMin(T lhs, T rhs)
Definition: imgui_internal.h:320
ImGui::PushFocusScope
IMGUI_API void PushFocusScope(ImGuiID id)
Definition: imgui.cpp:6564
ImGuiItemFlags_None
@ ImGuiItemFlags_None
Definition: imgui_internal.h:520
idx
static uint32_t idx(tarjan *t, const upb_refcounted *r)
Definition: ruby/ext/google/protobuf_c/upb.c:5925
ImGuiInputSource_NavGamepad
@ ImGuiInputSource_NavGamepad
Definition: imgui_internal.h:601
ImGui::IsNavInputTest
bool IsNavInputTest(ImGuiNavInput n, ImGuiInputReadMode rm)
Definition: imgui_internal.h:1779
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:1325
ImGuiWindow::AutoFitOnlyGrows
bool AutoFitOnlyGrows
Definition: imgui_internal.h:1495
ImGuiTabBar::Tabs
ImVector< ImGuiTabItem > Tabs
Definition: imgui_internal.h:1610
ImGuiNavMoveFlags_None
@ ImGuiNavMoveFlags_None
Definition: imgui_internal.h:635
flags
GLbitfield flags
Definition: glcorearb.h:3585
ImGuiWindowSettings::Size
ImVec2ih Size
Definition: imgui_internal.h:812
ImRect::TranslateX
void TranslateX(float dx)
Definition: imgui_internal.h:710
ImGuiNavForward
ImGuiNavForward
Definition: imgui_internal.h:645
ImGuiInputTextState
Definition: imgui_internal.h:772
ImGuiButtonFlags_MouseButtonShift_
@ ImGuiButtonFlags_MouseButtonShift_
Definition: imgui_internal.h:461
ImGui::GetCurrentWindow
ImGuiWindow * GetCurrentWindow()
Definition: imgui_internal.h:1657
ImGuiTreeNodeFlags
int ImGuiTreeNodeFlags
Definition: imgui.h:167
ImGui::BeginChildEx
IMGUI_API bool BeginChildEx(const char *name, ImGuiID id, const ImVec2 &size_arg, bool border, ImGuiWindowFlags flags)
Definition: imgui.cpp:4692
ImGuiNextItemData::FocusScopeId
ImGuiID FocusScopeId
Definition: imgui_internal.h:987
ImGuiGroupData::BackupCurrLineSize
ImVec2 BackupCurrLineSize
Definition: imgui_internal.h:750
ImGuiColorEditFlags
int ImGuiColorEditFlags
Definition: imgui.h:156
ImChunkStream::begin
T * begin()
Definition: imgui_internal.h:425
ImGui::GetHoveredID
IMGUI_API ImGuiID GetHoveredID()
Definition: imgui.cpp:3015
ImGuiTextFlags_
ImGuiTextFlags_
Definition: imgui_internal.h:552
ImDrawListSharedData::FontSize
float FontSize
Definition: imgui_internal.h:905
b
GLboolean GLboolean GLboolean b
Definition: glcorearb.h:3228
ImGuiNextItemData::OpenVal
bool OpenVal
Definition: imgui_internal.h:989
ImStrbolW
const IMGUI_API ImWchar * ImStrbolW(const ImWchar *buf_mid_line, const ImWchar *buf_begin)
Definition: imgui.cpp:1367
ImBitVector::Storage
ImVector< ImU32 > Storage
Definition: imgui_internal.h:377
ImDrawListSharedData::CurveTessellationTol
float CurveTessellationTol
Definition: imgui_internal.h:906
ImGuiInputTextState::BufCapacityA
int BufCapacityA
Definition: imgui_internal.h:780
ImGuiColumns::ImGuiColumns
ImGuiColumns()
Definition: imgui_internal.h:872
ImGui::IsPopupOpen
IMGUI_API bool IsPopupOpen(const char *str_id)
Definition: imgui.cpp:7503
ImGuiItemFlags_NoNavDefaultFocus
@ ImGuiItemFlags_NoNavDefaultFocus
Definition: imgui_internal.h:525
ImGuiTextFlags_NoWidthForLargeClippedText
@ ImGuiTextFlags_NoWidthForLargeClippedText
Definition: imgui_internal.h:555
ImGuiInputReadMode_RepeatFast
@ ImGuiInputReadMode_RepeatFast
Definition: imgui_internal.h:613
ImGuiWindowTempData::LastItemStatusFlags
ImGuiItemStatusFlags LastItemStatusFlags
Definition: imgui_internal.h:1381
ImFileOpen
IMGUI_API ImFileHandle ImFileOpen(const char *filename, const char *mode)
Definition: imgui.cpp:1548
ImGuiContext::FocusRequestCurrCounterTabStop
int FocusRequestCurrCounterTabStop
Definition: imgui_internal.h:1138
ImGuiContext::FontStack
ImVector< ImFont * > FontStack
Definition: imgui_internal.h:1086
ImGui::CalcWrapWidthForPos
IMGUI_API float CalcWrapWidthForPos(const ImVec2 &pos, float wrap_pos_x)
Definition: imgui.cpp:3195
ImSaturate
static float ImSaturate(float f)
Definition: imgui_internal.h:334
ImGuiDataTypeInfo
Definition: imgui_internal.h:719
ImGuiTabBar::VisibleTabWasSubmitted
bool VisibleTabWasSubmitted
Definition: imgui_internal.h:1630
ImGuiPayload
Definition: imgui.h:1598
ImRect::Translate
void Translate(const ImVec2 &d)
Definition: imgui_internal.h:709
ImGuiNavHighlightFlags_
ImGuiNavHighlightFlags_
Definition: imgui_internal.h:616
enabled
GLenum GLenum GLsizei const GLuint GLboolean enabled
Definition: glcorearb.h:4174
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:7798
ImGuiWindow::SkipItems
bool SkipItems
Definition: imgui_internal.h:1483
ImGuiWindow::ItemWidthDefault
float ItemWidthDefault
Definition: imgui_internal.h:1519
begin
static size_t begin(const upb_table *t)
Definition: php/ext/google/protobuf/upb.c:4898
ImGuiContext::PlatformImeLastPos
ImVec2 PlatformImeLastPos
Definition: imgui_internal.h:1195
ImGui::GetFocusScopeID
ImGuiID GetFocusScopeID()
Definition: imgui_internal.h:1769
ImGuiContext::IO
ImGuiIO IO
Definition: imgui_internal.h:1022
ImGuiNextWindowDataFlags_HasPos
@ ImGuiNextWindowDataFlags_HasPos
Definition: imgui_internal.h:945
ImGuiColumns::Clear
void Clear()
Definition: imgui_internal.h:873
ImGuiWindowTempData::PrevLineSize
ImVec2 PrevLineSize
Definition: imgui_internal.h:1372
ImFontAtlasBuildInit
IMGUI_API void ImFontAtlasBuildInit(ImFontAtlas *atlas)
Definition: imgui_draw.cpp:2206
ImGuiWindow::FontWindowScale
float FontWindowScale
Definition: imgui_internal.h:1522
ImGuiColumns::Flags
ImGuiColumnsFlags Flags
Definition: imgui_internal.h:858
ImGuiTextBuffer
Definition: imgui.h:1702
ImGuiTooltipFlags_None
@ ImGuiTooltipFlags_None
Definition: imgui_internal.h:560
ImGuiContext::NavMoveRequestFlags
ImGuiNavMoveFlags NavMoveRequestFlags
Definition: imgui_internal.h:1118
ImGui::IsKeyPressed
IMGUI_API bool IsKeyPressed(int user_key_index, bool repeat=true)
Definition: imgui.cpp:4404
ImGui::IsClippedEx
IMGUI_API bool IsClippedEx(const ImRect &bb, ImGuiID id, bool clip_even_when_logged)
Definition: imgui.cpp:3140
ImGuiContext::ActiveIdAllowOverlap
bool ActiveIdAllowOverlap
Definition: imgui_internal.h:1061
ImCharIsBlankW
static bool ImCharIsBlankW(unsigned int c)
Definition: imgui_internal.h:248
ImGuiSeparatorFlags_SpanAllColumns
@ ImGuiSeparatorFlags_SpanAllColumns
Definition: imgui_internal.h:513
ImVec4::y
float y
Definition: imgui.h:223
ImGuiWindow::SetWindowPosVal
ImVec2 SetWindowPosVal
Definition: imgui_internal.h:1502
ImDrawDataBuilder::Clear
void Clear()
Definition: imgui_internal.h:923
imstb_textedit.h
ImGuiNextWindowData::SizeConstraintRect
ImRect SizeConstraintRect
Definition: imgui_internal.h:966
IM_FMTLIST
#define IM_FMTLIST(FMT)
Definition: imgui.h:86
ImGuiContext::FocusRequestCurrWindow
ImGuiWindow * FocusRequestCurrWindow
Definition: imgui_internal.h:1135
ImGuiInputTextState::SelectAll
void SelectAll()
Definition: imgui_internal.h:802
ImGuiNavMoveResult::FocusScopeId
ImGuiID FocusScopeId
Definition: imgui_internal.h:932
ImRect::GetBR
ImVec2 GetBR() const
Definition: imgui_internal.h:701
ImGuiColumns::HostWorkRect
ImRect HostWorkRect
Definition: imgui_internal.h:868
ImChunkStream::end
T * end()
Definition: imgui_internal.h:428
ImGuiPtrOrIndex::Ptr
void * Ptr
Definition: imgui_internal.h:1007
ImGuiInputTextCallback
int(* ImGuiInputTextCallback)(ImGuiInputTextCallbackData *data)
Definition: imgui.h:175
ImRect::ImRect
ImRect(float x1, float y1, float x2, float y2)
Definition: imgui_internal.h:692
ImGuiColumnsFlags
int ImGuiColumnsFlags
Definition: imgui_internal.h:104
ImGui::ClosePopupsOverWindow
IMGUI_API void ClosePopupsOverWindow(ImGuiWindow *ref_window, bool restore_focus_to_window_under_popup)
Definition: imgui.cpp:7571
ImGuiWindowTempData::TextWrapPos
float TextWrapPos
Definition: imgui_internal.h:1412
ImFontAtlasBuildPackCustomRects
IMGUI_API void ImFontAtlasBuildPackCustomRects(ImFontAtlas *atlas, void *stbrp_context_opaque)
Definition: imgui_draw.cpp:2230
ImDrawListSharedData::TexUvWhitePixel
ImVec2 TexUvWhitePixel
Definition: imgui_internal.h:903
ImGuiColumnData::OffsetNorm
float OffsetNorm
Definition: imgui_internal.h:847
ImGuiTabBar::Flags
ImGuiTabBarFlags Flags
Definition: imgui_internal.h:1626
ImGui::RenderColorRectWithAlphaCheckerboard
IMGUI_API void RenderColorRectWithAlphaCheckerboard(ImDrawList *draw_list, 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_draw.cpp:3337
ImRect::Expand
void Expand(const ImVec2 &amount)
Definition: imgui_internal.h:708
ImDrawCornerFlags
int ImDrawCornerFlags
Definition: imgui.h:152
ImGuiPopupPositionPolicy
ImGuiPopupPositionPolicy
Definition: imgui_internal.h:659
ImGui::GetWindowScrollbarID
IMGUI_API ImGuiID GetWindowScrollbarID(ImGuiWindow *window, ImGuiAxis axis)
Definition: imgui_widgets.cpp:810
ImGuiInputTextState::CursorClamp
void CursorClamp()
Definition: imgui_internal.h:799
ImChunkStream::empty
bool empty() const
Definition: imgui_internal.h:422
ImGui::GcCompactTransientWindowBuffers
IMGUI_API void GcCompactTransientWindowBuffers(ImGuiWindow *window)
Definition: imgui.cpp:2945
ImGuiContext::NavWindowingTargetAnim
ImGuiWindow * NavWindowingTargetAnim
Definition: imgui_internal.h:1128
ImGuiTabBar::ImGuiTabBar
ImGuiTabBar()
Definition: imgui_widgets.cpp:6455
ImGuiWindow::Scroll
ImVec2 Scroll
Definition: imgui_internal.h:1472
ImVector::Data
T * Data
Definition: imgui.h:1305
ImGuiButtonFlags_MouseButtonMiddle
@ ImGuiButtonFlags_MouseButtonMiddle
Definition: imgui_internal.h:458
ImGuiNavMoveFlags_WrapX
@ ImGuiNavMoveFlags_WrapX
Definition: imgui_internal.h:638
ImGuiContext::NavJustMovedToId
ImGuiID NavJustMovedToId
Definition: imgui_internal.h:1099
ImGuiButtonFlags_NoHoveredOnFocus
@ ImGuiButtonFlags_NoHoveredOnFocus
Definition: imgui_internal.h:455
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:1469
ImGuiButtonFlags_Repeat
@ ImGuiButtonFlags_Repeat
Definition: imgui_internal.h:440
ImGuiWindow::TitleBarHeight
float TitleBarHeight() const
Definition: imgui_internal.h:1555
ImStrncpy
IMGUI_API void ImStrncpy(char *dst, const char *src, size_t count)
Definition: imgui.cpp:1316
ImGuiWindow::ID
ImGuiID ID
Definition: imgui_internal.h:1459
ImGuiWindowTempData::TreeDepth
int TreeDepth
Definition: imgui_internal.h:1398
ImGuiItemStatusFlags_None
@ ImGuiItemStatusFlags_None
Definition: imgui_internal.h:534
ImGuiContext::NavWindowingList
ImGuiWindow * NavWindowingList
Definition: imgui_internal.h:1129
ImGuiTabItem::NameOffset
int NameOffset
Definition: imgui_internal.h:1599
ImGuiStyleMod::BackupInt
int BackupInt[2]
Definition: imgui_internal.h:737
ImGui::DragBehavior
IMGUI_API bool DragBehavior(ImGuiID id, ImGuiDataType data_type, void *p_v, float v_speed, const void *p_min, const void *p_max, const char *format, float power, ImGuiDragFlags flags)
Definition: imgui_widgets.cpp:2053
ImGuiContext::LogDepthToExpand
int LogDepthToExpand
Definition: imgui_internal.h:1212
ImVector::clear
void clear()
Definition: imgui.h:1325
ImRect::Floor
void Floor()
Definition: imgui_internal.h:714
ImGuiContext::ColorEditLastColor
float ColorEditLastColor[3]
Definition: imgui_internal.h:1183
ImGuiButtonFlags_NoKeyModifiers
@ ImGuiButtonFlags_NoKeyModifiers
Definition: imgui_internal.h:452
mask
GLint GLuint mask
Definition: glcorearb.h:2789
ImGuiColumnData::OffsetNormBeforeResize
float OffsetNormBeforeResize
Definition: imgui_internal.h:848
ImDrawListSharedData::InitialFlags
ImDrawListFlags InitialFlags
Definition: imgui_internal.h:909
stride
GLint GLenum GLboolean GLsizei stride
Definition: glcorearb.h:3141
ImGuiNavDirSourceFlags_PadDPad
@ ImGuiNavDirSourceFlags_PadDPad
Definition: imgui_internal.h:629
border
GLint GLint GLsizei GLint border
Definition: glcorearb.h:2773
ImGuiContext::Windows
ImVector< ImGuiWindow * > Windows
Definition: imgui_internal.h:1037
ImGuiNavDirSourceFlags_
ImGuiNavDirSourceFlags_
Definition: imgui_internal.h:625
ImGuiDataType
int ImGuiDataType
Definition: imgui.h:145
ImGui::SetScrollX
IMGUI_API void SetScrollX(float scroll_x)
Definition: imgui.cpp:7353
ImFileGetSize
IMGUI_API ImU64 ImFileGetSize(ImFileHandle file)
Definition: imgui.cpp:1567
ImGuiContext::HoveredRootWindow
ImGuiWindow * HoveredRootWindow
Definition: imgui_internal.h:1045
ImGuiWindowTempData::CursorMaxPos
ImVec2 CursorMaxPos
Definition: imgui_internal.h:1370
ImGuiMouseButton
int ImGuiMouseButton
Definition: imgui.h:149
ImGuiColumnsFlags_NoForceWithinWindow
@ ImGuiColumnsFlags_NoForceWithinWindow
Definition: imgui_internal.h:486
ImGui::TreePushOverrideID
IMGUI_API void TreePushOverrideID(ImGuiID id)
Definition: imgui_widgets.cpp:5471
offset
GLintptr offset
Definition: glcorearb.h:2944
ImGuiColumnsFlags_NoResize
@ ImGuiColumnsFlags_NoResize
Definition: imgui_internal.h:484
ImGuiInputSource_COUNT
@ ImGuiInputSource_COUNT
Definition: imgui_internal.h:602
ImHashData
IMGUI_API ImU32 ImHashData(const void *data, size_t data_size, ImU32 seed=0)
Definition: imgui.cpp:1497
ImGui::SetNavIDWithRectRel
IMGUI_API void SetNavIDWithRectRel(ImGuiID id, int nav_layer, ImGuiID focus_scope_id, const ImRect &rect_rel)
Definition: imgui.cpp:7919
ImGuiItemFlags
int ImGuiItemFlags
Definition: imgui_internal.h:106
ImGuiNavForward_ForwardActive
@ ImGuiNavForward_ForwardActive
Definition: imgui_internal.h:649
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:7244
ImGuiNavMoveFlags_LoopX
@ ImGuiNavMoveFlags_LoopX
Definition: imgui_internal.h:636
IM_FMTARGS
#define IM_FMTARGS(FMT)
Definition: imgui.h:85
ImGui::ButtonEx
IMGUI_API bool ButtonEx(const char *label, const ImVec2 &size_arg=ImVec2(0, 0), ImGuiButtonFlags flags=0)
Definition: imgui_widgets.cpp:638
ImGuiButtonFlags_PressedOnClickReleaseAnywhere
@ ImGuiButtonFlags_PressedOnClickReleaseAnywhere
Definition: imgui_internal.h:443
ImGuiDataTypeInfo::ScanFmt
const char * ScanFmt
Definition: imgui_internal.h:723
ImGuiNavMoveFlags_LoopY
@ ImGuiNavMoveFlags_LoopY
Definition: imgui_internal.h:637
ImGuiButtonFlags_PressedOnDragDropHold
@ ImGuiButtonFlags_PressedOnDragDropHold
Definition: imgui_internal.h:446
ImGui::GetColumnNormFromOffset
IMGUI_API float GetColumnNormFromOffset(const ImGuiColumns *columns, float offset)
Definition: imgui_widgets.cpp:7334
ImGuiContext::WindowsActiveCount
int WindowsActiveCount
Definition: imgui_internal.h:1042
ImGuiContext::WantCaptureKeyboardNextFrame
int WantCaptureKeyboardNextFrame
Definition: imgui_internal.h:1224
ImGuiInputTextState::HasSelection
bool HasSelection() const
Definition: imgui_internal.h:800
ImGui::GetContentRegionMaxAbs
IMGUI_API ImVec2 GetContentRegionMaxAbs()
Definition: imgui.cpp:7143
ImGuiTabItem::Width
float Width
Definition: imgui_internal.h:1601
ImGuiNextWindowData::CollapsedCond
ImGuiCond CollapsedCond
Definition: imgui_internal.h:960
ImGui::UpdateWindowParentAndRootLinks
IMGUI_API void UpdateWindowParentAndRootLinks(ImGuiWindow *window, ImGuiWindowFlags flags, ImGuiWindow *parent_window)
Definition: imgui.cpp:5375
ImGuiTabBar::ScrollingSpeed
float ScrollingSpeed
Definition: imgui_internal.h:1625
format
GLint GLint GLsizei GLint GLenum format
Definition: glcorearb.h:2773
ImGui::IsMouseDragPastThreshold
IMGUI_API bool IsMouseDragPastThreshold(ImGuiMouseButton button, float lock_threshold=-1.0f)
Definition: imgui.cpp:4466
ImDrawData
Definition: imgui.h:2068
ImBitArraySetBitRange
void ImBitArraySetBitRange(ImU32 *arr, int n, int n2)
Definition: imgui_internal.h:361
ImGuiContext::NextItemData
ImGuiNextItemData NextItemData
Definition: imgui_internal.h:1081
ImGuiContext::FocusRequestNextCounterRegular
int FocusRequestNextCounterRegular
Definition: imgui_internal.h:1139
ImGuiContext::BeginPopupStack
ImVector< ImGuiPopupData > BeginPopupStack
Definition: imgui_internal.h:1088
ImRect::ImRect
ImRect(const ImVec2 &min, const ImVec2 &max)
Definition: imgui_internal.h:690
ImGui::SetFocusID
IMGUI_API void SetFocusID(ImGuiID id, ImGuiWindow *window)
Definition: imgui.cpp:7929
ImGuiWindow::DrawList
ImDrawList * DrawList
Definition: imgui_internal.h:1525
ImGuiItemHoveredDataBackup::Restore
void Restore() const
Definition: imgui_internal.h:1571
ImGuiLogType_File
@ ImGuiLogType_File
Definition: imgui_internal.h:576
update_failure_list.str
str
Definition: update_failure_list.py:41
ImGuiContext::ColorEditLastHue
float ColorEditLastHue
Definition: imgui_internal.h:1181
ImGuiButtonFlags_PressedOnClickRelease
@ ImGuiButtonFlags_PressedOnClickRelease
Definition: imgui_internal.h:442
ImVector::Size
int Size
Definition: imgui.h:1303
ImVec2::x
float x
Definition: imgui.h:210
ImGuiContext::Time
double Time
Definition: imgui_internal.h:1028
ImGui::ItemAdd
IMGUI_API bool ItemAdd(const ImRect &bb, ImGuiID id, const ImRect *nav_bb=NULL)
Definition: imgui.cpp:6864
ImGuiTabBar::OffsetMax
float OffsetMax
Definition: imgui_internal.h:1619
ImGuiNavMoveResult::Window
ImGuiWindow * Window
Definition: imgui_internal.h:930
ImGuiColumns::ID
ImGuiID ID
Definition: imgui_internal.h:857
ImGuiStyle
Definition: imgui.h:1365
ImGui::FindWindowSettings
IMGUI_API ImGuiWindowSettings * FindWindowSettings(ImGuiID id)
Definition: imgui.cpp:9585
ImDrawListSharedData::ClipRectFullscreen
ImVec4 ClipRectFullscreen
Definition: imgui_internal.h:908
ImGuiSelectableFlags_SelectOnRelease
@ ImGuiSelectableFlags_SelectOnRelease
Definition: imgui_internal.h:496
ImGuiNextWindowData::SizeVal
ImVec2 SizeVal
Definition: imgui_internal.h:963
ImGui::GetWindowAllowedExtentRect
IMGUI_API ImRect GetWindowAllowedExtentRect(ImGuiWindow *window)
Definition: imgui.cpp:7851
ImGuiItemStatusFlags_ToggledSelection
@ ImGuiItemStatusFlags_ToggledSelection
Definition: imgui_internal.h:538
ImGuiPtrOrIndex::ImGuiPtrOrIndex
ImGuiPtrOrIndex(int index)
Definition: imgui_internal.h:1011
ImGui::PopItemFlag
IMGUI_API void PopItemFlag()
Definition: imgui.cpp:6194
ImRect::Add
void Add(const ImVec2 &p)
Definition: imgui_internal.h:705
ImGuiContext::ActiveIdHasBeenPressedBefore
bool ActiveIdHasBeenPressedBefore
Definition: imgui_internal.h:1062
ImGuiContext::ActiveIdWindow
ImGuiWindow * ActiveIdWindow
Definition: imgui_internal.h:1069
GImGui
IMGUI_API ImGuiContext * GImGui
Definition: imgui.cpp:975
ImGuiTabBar::ReorderRequestDir
ImS8 ReorderRequestDir
Definition: imgui_internal.h:1628
ImGuiContext::DragDropSourceFlags
ImGuiDragDropFlags DragDropSourceFlags
Definition: imgui_internal.h:1155
ImGuiWindow::ScrollbarSizes
ImVec2 ScrollbarSizes
Definition: imgui_internal.h:1476
ImPool::Contains
bool Contains(const T *p) const
Definition: imgui_internal.h:402
ImGuiNavMoveResult::ImGuiNavMoveResult
ImGuiNavMoveResult()
Definition: imgui_internal.h:938
ImVec1
Definition: imgui_internal.h:666
ImGuiWindow::Active
bool Active
Definition: imgui_internal.h:1478
ImGui::LogRenderedText
IMGUI_API void LogRenderedText(const ImVec2 *ref_pos, const char *text, const char *text_end=NULL)
Definition: imgui.cpp:9333
ImGuiWindowTempData::NavLayerCurrentMask
int NavLayerCurrentMask
Definition: imgui_internal.h:1387
testing::internal::fmt
GTEST_API_ const char * fmt
Definition: gtest.h:1835
ImGuiInputReadMode
ImGuiInputReadMode
Definition: imgui_internal.h:606
ImGui::RenderArrow
IMGUI_API void RenderArrow(ImDrawList *draw_list, ImVec2 pos, ImU32 col, ImGuiDir dir, float scale=1.0f)
Definition: imgui_draw.cpp:3179
ImGuiLayoutType_Vertical
@ ImGuiLayoutType_Vertical
Definition: imgui_internal.h:569
ImGuiContext::NavMousePosDirty
bool NavMousePosDirty
Definition: imgui_internal.h:1108
p
const char * p
Definition: gmock-matchers_test.cc:3863
ImGuiContext::NavMoveResultLocalVisibleSet
ImGuiNavMoveResult NavMoveResultLocalVisibleSet
Definition: imgui_internal.h:1123
ImGuiContext::ColorEditLastSat
float ColorEditLastSat
Definition: imgui_internal.h:1182
ImPool::Remove
void Remove(ImGuiID key, const T *p)
Definition: imgui_internal.h:405
ImGui::ScrollToBringRectIntoView
IMGUI_API ImVec2 ScrollToBringRectIntoView(ImGuiWindow *window, const ImRect &item_rect)
Definition: imgui.cpp:7300
ImGui::UpdateHoveredWindowAndCaptureFlags
IMGUI_API void UpdateHoveredWindowAndCaptureFlags()
Definition: imgui.cpp:3622
ImGuiContext::NavInputSource
ImGuiInputSource NavInputSource
Definition: imgui_internal.h:1102
ImGuiCol_Text
@ ImGuiCol_Text
Definition: imgui.h:1086
ImGuiNextWindowData
Definition: imgui_internal.h:955
ImGuiWindow::InnerClipRect
ImRect InnerClipRect
Definition: imgui_internal.h:1512
ImGui::GetNavInputAmount2d
IMGUI_API ImVec2 GetNavInputAmount2d(ImGuiNavDirSourceFlags dir_sources, ImGuiInputReadMode mode, float slow_factor=0.0f, float fast_factor=0.0f)
Definition: imgui.cpp:8355
ImGuiNextWindowDataFlags_
ImGuiNextWindowDataFlags_
Definition: imgui_internal.h:942
ImGuiTabBarFlags_IsFocused
@ ImGuiTabBarFlags_IsFocused
Definition: imgui_internal.h:1582
ImChunkStream::next_chunk
T * next_chunk(T *p)
Definition: imgui_internal.h:426
ImGuiNavForward_None
@ ImGuiNavForward_None
Definition: imgui_internal.h:647
ImGuiTabBar::ScrollingTarget
float ScrollingTarget
Definition: imgui_internal.h:1623
ImGuiWindowTempData
Definition: imgui_internal.h:1364
ImGuiContext::NavIdIsAlive
bool NavIdIsAlive
Definition: imgui_internal.h:1107
ImGui::IsWindowNavFocusable
IMGUI_API bool IsWindowNavFocusable(ImGuiWindow *window)
Definition: imgui.cpp:6314
ImGuiContext::DrawData
ImDrawData DrawData
Definition: imgui_internal.h:1144
ImTriangleArea
float ImTriangleArea(const ImVec2 &a, const ImVec2 &b, const ImVec2 &c)
Definition: imgui_internal.h:354
ImGuiWindowTempData::LayoutType
ImGuiLayoutType LayoutType
Definition: imgui_internal.h:1403
ImLinearSweep
static float ImLinearSweep(float current, float target, float speed)
Definition: imgui_internal.h:343
ImRect::Add
void Add(const ImRect &r)
Definition: imgui_internal.h:706
ImGuiButtonFlags_MouseButtonDefault_
@ ImGuiButtonFlags_MouseButtonDefault_
Definition: imgui_internal.h:462
ImGuiColumns::OffMaxX
float OffMaxX
Definition: imgui_internal.h:863
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:3448
ImGuiTabBar::OffsetMaxIdeal
float OffsetMaxIdeal
Definition: imgui_internal.h:1620
ImGuiInputSource_NavKeyboard
@ ImGuiInputSource_NavKeyboard
Definition: imgui_internal.h:600
IM_ARRAYSIZE
#define IM_ARRAYSIZE(_ARR)
Definition: imgui.h:88
ImGuiPopupData::OpenPopupPos
ImVec2 OpenPopupPos
Definition: imgui_internal.h:839
ImGui::SetHoveredID
IMGUI_API void SetHoveredID(ImGuiID id)
Definition: imgui.cpp:3006
ImGuiGroupData::BackupActiveIdIsAlive
ImGuiID BackupActiveIdIsAlive
Definition: imgui_internal.h:752
ImGui::BeginPopupEx
IMGUI_API bool BeginPopupEx(ImGuiID id, ImGuiWindowFlags extra_flags)
Definition: imgui.cpp:7664
ImFontAtlasBuildMultiplyCalcLookupTable
IMGUI_API void ImFontAtlasBuildMultiplyCalcLookupTable(unsigned char out_table[256], float in_multiply_factor)
Definition: imgui_draw.cpp:1895
ImGuiColumns::Current
int Current
Definition: imgui_internal.h:861
ImGuiTabBar::GetTabOrder
int GetTabOrder(const ImGuiTabItem *tab) const
Definition: imgui_internal.h:1636
ImBitVector
Definition: imgui_internal.h:375
ImGuiColumnsFlags_GrowParentContentsSize
@ ImGuiColumnsFlags_GrowParentContentsSize
Definition: imgui_internal.h:487
ImDrawDataBuilder::Layers
ImVector< ImDrawList * > Layers[2]
Definition: imgui_internal.h:921
ImGuiWindow::HiddenFramesCannotSkipItems
int HiddenFramesCannotSkipItems
Definition: imgui_internal.h:1498
ImRect::ImRect
ImRect()
Definition: imgui_internal.h:689
ImGui::ActivateItem
IMGUI_API void ActivateItem(ImGuiID id)
Definition: imgui.cpp:6558
ImVector::reserve
void reserve(int new_capacity)
Definition: imgui.h:1340
ImGui::FindRenderedTextEnd
const IMGUI_API char * FindRenderedTextEnd(const char *text, const char *text_end=NULL)
Definition: imgui.cpp:2561
ImPool::GetIndex
ImPoolIdx GetIndex(const T *p) const
Definition: imgui_internal.h:400
ImRect
Definition: imgui_internal.h:684
ImGuiButtonFlags_AllowItemOverlap
@ ImGuiButtonFlags_AllowItemOverlap
Definition: imgui_internal.h:448
ImGuiContext::DragDropAcceptIdCurr
ImGuiID DragDropAcceptIdCurr
Definition: imgui_internal.h:1163
ImGui::SetActiveID
IMGUI_API void SetActiveID(ImGuiID id, ImGuiWindow *window)
Definition: imgui.cpp:2969
ImGuiPopupData::SourceWindow
ImGuiWindow * SourceWindow
Definition: imgui_internal.h:836
ImGuiContext::ColorEditOptions
ImGuiColorEditFlags ColorEditOptions
Definition: imgui_internal.h:1180
ImGuiWindow::MemoryDrawListIdxCapacity
int MemoryDrawListIdxCapacity
Definition: imgui_internal.h:1537
ImGuiWindowSettings::Collapsed
bool Collapsed
Definition: imgui_internal.h:813
ImGuiTooltipFlags_
ImGuiTooltipFlags_
Definition: imgui_internal.h:558
ImGuiNavHighlightFlags_None
@ ImGuiNavHighlightFlags_None
Definition: imgui_internal.h:618
ImGuiNextWindowDataFlags_HasSize
@ ImGuiNextWindowDataFlags_HasSize
Definition: imgui_internal.h:946
ImGui::IsActiveIdUsingKey
bool IsActiveIdUsingKey(ImGuiKey key)
Definition: imgui_internal.h:1775
ImGui::DataTypeGetInfo
const IMGUI_API ImGuiDataTypeInfo * DataTypeGetInfo(ImGuiDataType data_type)
Definition: imgui_widgets.cpp:1704
ImGui::TempInputScalar
IMGUI_API bool TempInputScalar(const ImRect &bb, ImGuiID id, const char *label, ImGuiDataType data_type, void *p_data, const char *format)
Definition: imgui_widgets.cpp:2886
d
d
ImGuiTabItem::LastFrameSelected
int LastFrameSelected
Definition: imgui_internal.h:1598
ImGuiSettingsHandler
Definition: imgui_internal.h:819
ImFontConfig
Definition: imgui.h:2091
ImGui::IsKeyPressedMap
bool IsKeyPressedMap(ImGuiKey key, bool repeat=true)
Definition: imgui_internal.h:1777
ImFileClose
IMGUI_API bool ImFileClose(ImFileHandle file)
Definition: imgui.cpp:1566
ImGui::TabBarCloseTab
IMGUI_API void TabBarCloseTab(ImGuiTabBar *tab_bar, ImGuiTabItem *tab)
Definition: imgui_widgets.cpp:6800
ImGuiItemStatusFlags_HoveredRect
@ ImGuiItemStatusFlags_HoveredRect
Definition: imgui_internal.h:535
ImGuiContext::NavActivatePressedId
ImGuiID NavActivatePressedId
Definition: imgui_internal.h:1096
ImGuiNavForward_ForwardQueued
@ ImGuiNavForward_ForwardQueued
Definition: imgui_internal.h:648
ImGuiContext::HoveredIdAllowOverlap
bool HoveredIdAllowOverlap
Definition: imgui_internal.h:1053
ImRect::GetWidth
float GetWidth() const
Definition: imgui_internal.h:696
ImGui::TreeNodeBehaviorIsOpen
IMGUI_API bool TreeNodeBehaviorIsOpen(ImGuiID id, ImGuiTreeNodeFlags flags=0)
Definition: imgui_widgets.cpp:5215
ImPool::GetSize
int GetSize() const
Definition: imgui_internal.h:408
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:1487
ImGuiContext::SettingsLoaded
bool SettingsLoaded
Definition: imgui_internal.h:1198
ImPool::FreeIdx
ImPoolIdx FreeIdx
Definition: imgui_internal.h:394
ImGui::StartMouseMovingWindow
IMGUI_API void StartMouseMovingWindow(ImGuiWindow *window)
Definition: imgui.cpp:3324
ImVec4::x
float x
Definition: imgui.h:223
ImGuiInputReadMode_Pressed
@ ImGuiInputReadMode_Pressed
Definition: imgui_internal.h:609
ImGuiNextWindowData::CollapsedVal
bool CollapsedVal
Definition: imgui_internal.h:965
ImGuiSettingsHandler::ReadLineFn
void(* ReadLineFn)(ImGuiContext *ctx, ImGuiSettingsHandler *handler, void *entry, const char *line)
Definition: imgui_internal.h:824
ImMax
static T ImMax(T lhs, T rhs)
Definition: imgui_internal.h:321
ImGuiItemHoveredDataBackup::LastItemRect
ImRect LastItemRect
Definition: imgui_internal.h:1566
buf
GLenum GLuint GLenum GLsizei const GLchar * buf
Definition: glcorearb.h:4175
ImGuiWindow::TitleBarRect
ImRect TitleBarRect() const
Definition: imgui_internal.h:1556
key
const SETUP_TEARDOWN_TESTCONTEXT char * key
Definition: test_wss_transport.cpp:10
ImGuiColumns::HostCursorMaxPosX
float HostCursorMaxPosX
Definition: imgui_internal.h:866
ImGuiInputTextState::TextA
ImVector< char > TextA
Definition: imgui_internal.h:777
ImGuiNextWindowDataFlags_HasFocus
@ ImGuiNextWindowDataFlags_HasFocus
Definition: imgui_internal.h:950
ImGuiContext
Definition: imgui_internal.h:1018
ImU32
unsigned int ImU32
Definition: imgui.h:194
ImGuiColumnsFlags_None
@ ImGuiColumnsFlags_None
Definition: imgui_internal.h:482
ImVec2ih::ImVec2ih
ImVec2ih(const ImVec2 &rhs)
Definition: imgui_internal.h:679
ImGui::IsActiveIdUsingNavInput
bool IsActiveIdUsingNavInput(ImGuiNavInput input)
Definition: imgui_internal.h:1774
ImGuiNextItemDataFlags_HasWidth
@ ImGuiNextItemDataFlags_HasWidth
Definition: imgui_internal.h:979
ImGuiContext::ActiveIdMouseButton
int ActiveIdMouseButton
Definition: imgui_internal.h:1071
ImRect::Contains
bool Contains(const ImVec2 &p) const
Definition: imgui_internal.h:702
ImGui::FocusableItemUnregister
IMGUI_API void FocusableItemUnregister(ImGuiWindow *window)
Definition: imgui.cpp:3189
ImGui::CreateNewWindowSettings
IMGUI_API ImGuiWindowSettings * CreateNewWindowSettings(const char *name)
Definition: imgui.cpp:9563
ImU8
unsigned char ImU8
Definition: imgui.h:190
ImGuiWindowTempData::ChildWindows
ImVector< ImGuiWindow * > ChildWindows
Definition: imgui_internal.h:1400
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:3273
ImGuiWindow::ClipRect
ImRect ClipRect
Definition: imgui_internal.h:1514
ImGuiContext::NavMoveResultOther
ImGuiNavMoveResult NavMoveResultOther
Definition: imgui_internal.h:1124
ImGuiContext::LogDepthRef
int LogDepthRef
Definition: imgui_internal.h:1211
ImGuiIO::FontDefault
ImFont * FontDefault
Definition: imgui.h:1438
ImRect::GetBL
ImVec2 GetBL() const
Definition: imgui_internal.h:700
ImGuiWindow::Pos
ImVec2 Pos
Definition: imgui_internal.h:1461
ImDrawList::_OwnerName
const char * _OwnerName
Definition: imgui.h:1971
ImGuiSeparatorFlags_Horizontal
@ ImGuiSeparatorFlags_Horizontal
Definition: imgui_internal.h:511
ImGuiWindow::InnerRect
ImRect InnerRect
Definition: imgui_internal.h:1511
ImGuiContext::NavWindowingHighlightAlpha
float NavWindowingHighlightAlpha
Definition: imgui_internal.h:1131
ImGuiNextItemData
Definition: imgui_internal.h:983
ImChunkStream::alloc_chunk
T * alloc_chunk(size_t sz)
Definition: imgui_internal.h:424
ImInvLength
static float ImInvLength(const ImVec2 &lhs, float fail_value)
Definition: imgui_internal.h:337
ImGuiNextWindowData::SizeCallback
ImGuiSizeCallback SizeCallback
Definition: imgui_internal.h:967
ImGuiWindow::ContentSizeExplicit
ImVec2 ContentSizeExplicit
Definition: imgui_internal.h:1465
ImGui::GetForegroundDrawList
IMGUI_API ImDrawList * GetForegroundDrawList()
Definition: imgui.cpp:3314
ImGuiGroupData
Definition: imgui_internal.h:744
ImGuiContext::Initialized
bool Initialized
Definition: imgui_internal.h:1020
ImGui::ClearDragDrop
IMGUI_API void ClearDragDrop()
Definition: imgui.cpp:9008
ImGuiContext::LogType
ImGuiLogType LogType
Definition: imgui_internal.h:1206
void
typedef void(APIENTRY *GLDEBUGPROCARB)(GLenum source
n
GLdouble n
Definition: glcorearb.h:4153
ImGuiContext::ForegroundDrawList
ImDrawList ForegroundDrawList
Definition: imgui_internal.h:1148
ImGuiContext::MouseCursor
ImGuiMouseCursor MouseCursor
Definition: imgui_internal.h:1149
ImGui::RenderFrameBorder
IMGUI_API void RenderFrameBorder(ImVec2 p_min, ImVec2 p_max, float rounding=0.0f)
Definition: imgui.cpp:2756
ImGuiNextItemData::Width
float Width
Definition: imgui_internal.h:986
ImGuiWindowTempData::FocusCounterTabStop
int FocusCounterTabStop
Definition: imgui_internal.h:1406
ImGuiLayoutType
int ImGuiLayoutType
Definition: imgui_internal.h:99
ImGuiInputTextState::TextW
ImVector< ImWchar > TextW
Definition: imgui_internal.h:776
ImGuiContext::DragDropWithinSource
bool DragDropWithinSource
Definition: imgui_internal.h:1153
ImGuiColumns::HostCursorPosY
float HostCursorPosY
Definition: imgui_internal.h:865
ImGuiWindow::DC
ImGuiWindowTempData DC
Definition: imgui_internal.h:1506
ImBitVector::TestBit
bool TestBit(int n) const
Definition: imgui_internal.h:380
ImGuiColumnsFlags_
ImGuiColumnsFlags_
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:5836
ImGuiWindow::PopupId
ImGuiID PopupId
Definition: imgui_internal.h:1492
ImChunkStream::clear
void clear()
Definition: imgui_internal.h:421
ImGui::ColorEditOptionsPopup
IMGUI_API void ColorEditOptionsPopup(const float *col, ImGuiColorEditFlags flags)
Definition: imgui_widgets.cpp:5026
ImStrlenW
IMGUI_API int ImStrlenW(const ImWchar *str)
Definition: imgui.cpp:1352
ImDrawDataBuilder
Definition: imgui_internal.h:919
ImPool::Clear
void Clear()
Definition: imgui_internal.h:403
ImGuiAxis
ImGuiAxis
Definition: imgui_internal.h:582
ImGuiPlotType_Lines
@ ImGuiPlotType_Lines
Definition: imgui_internal.h:591
ImGuiWindow
Definition: imgui_internal.h:1456
ImTextCountUtf8BytesFromStr
IMGUI_API int ImTextCountUtf8BytesFromStr(const ImWchar *in_text, const ImWchar *in_text_end)
Definition: imgui.cpp:1781
ImRect::GetTL
ImVec2 GetTL() const
Definition: imgui_internal.h:698
ImGuiItemStatusFlags_Edited
@ ImGuiItemStatusFlags_Edited
Definition: imgui_internal.h:537
ImGuiItemFlags_NoNav
@ ImGuiItemFlags_NoNav
Definition: imgui_internal.h:524
ImGui::DebugStartItemPicker
void DebugStartItemPicker()
Definition: imgui_internal.h:1897
ImGui::TreeNodeBehavior
IMGUI_API bool TreeNodeBehavior(ImGuiID id, ImGuiTreeNodeFlags flags, const char *label, const char *label_end=NULL)
Definition: imgui_widgets.cpp:5261
ImGuiPopupData::OpenMousePos
ImVec2 OpenMousePos
Definition: imgui_internal.h:840
ImGuiTreeNodeFlags_ClipLabelForTrailingButton
@ ImGuiTreeNodeFlags_ClipLabelForTrailingButton
Definition: imgui_internal.h:505
ImGuiItemHoveredDataBackup::LastItemId
ImGuiID LastItemId
Definition: imgui_internal.h:1564
ImGuiTabBar::WantLayout
bool WantLayout
Definition: imgui_internal.h:1629
ImGuiContext::NavJustMovedToFocusScopeId
ImGuiID NavJustMovedToFocusScopeId
Definition: imgui_internal.h:1100
ImGuiColumnData::ClipRect
ImRect ClipRect
Definition: imgui_internal.h:850
google::protobuf::operator/=
Duration & operator/=(Duration &d, int64 r)
Definition: time_util.cc:446
ImGuiWindowTempData::MenuBarOffset
ImVec2 MenuBarOffset
Definition: imgui_internal.h:1396
ImGui::Scrollbar
IMGUI_API void Scrollbar(ImGuiAxis axis)
Definition: imgui_widgets.cpp:912
ImGuiContext::NavMoveDirLast
ImGuiDir NavMoveDirLast
Definition: imgui_internal.h:1120
ImRect::GetCenter
ImVec2 GetCenter() const
Definition: imgui_internal.h:694
ImGuiSeparatorFlags_
ImGuiSeparatorFlags_
Definition: imgui_internal.h:508
ImGuiWindowTempData::FocusCounterRegular
int FocusCounterRegular
Definition: imgui_internal.h:1405
ImGuiItemFlags_
ImGuiItemFlags_
Definition: imgui_internal.h:518
IM_FLOOR
#define IM_FLOOR(_VAL)
Definition: imgui_internal.h:185
type
GLenum type
Definition: glcorearb.h:2695
ImGuiWindowSettings::ID
ImGuiID ID
Definition: imgui_internal.h:810
ImGui::RenderCheckMark
IMGUI_API void RenderCheckMark(ImDrawList *draw_list, ImVec2 pos, ImU32 col, float sz)
Definition: imgui_draw.cpp:3215
ImGuiWindow::WorkRect
ImRect WorkRect
Definition: imgui_internal.h:1513
z
GLdouble GLdouble GLdouble z
Definition: glcorearb.h:3117
ImGui::MarkIniSettingsDirty
IMGUI_API void MarkIniSettingsDirty()
Definition: imgui.cpp:9548
ImSwap
static void ImSwap(T &a, T &b)
Definition: imgui_internal.h:324
ImGuiContext::NavMoveRequestForward
ImGuiNavForward NavMoveRequestForward
Definition: imgui_internal.h:1119
ImParseFormatTrimDecorations
const IMGUI_API char * ImParseFormatTrimDecorations(const char *format, char *buf, size_t buf_size)
Definition: imgui_widgets.cpp:2828
ImGui::RenderBullet
IMGUI_API void RenderBullet(ImDrawList *draw_list, ImVec2 pos, ImU32 col)
Definition: imgui_draw.cpp:3210
ImGuiNextWindowData::PosVal
ImVec2 PosVal
Definition: imgui_internal.h:961
ImGui::NavMoveRequestTryWrapping
IMGUI_API void NavMoveRequestTryWrapping(ImGuiWindow *window, ImGuiNavMoveFlags move_flags)
Definition: imgui.cpp:8213
ImGuiContext::NavScoringRectScreen
ImRect NavScoringRectScreen
Definition: imgui_internal.h:1103
ImGuiShrinkWidthItem
Definition: imgui_internal.h:999
ImGuiWindow::ContentSize
ImVec2 ContentSize
Definition: imgui_internal.h:1464
ImStricmp
IMGUI_API int ImStricmp(const char *str1, const char *str2)
Definition: imgui.cpp:1302
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:2618
ImGuiWindowSettings::ImGuiWindowSettings
ImGuiWindowSettings()
Definition: imgui_internal.h:815
ImGuiItemFlags_MixedValue
@ ImGuiItemFlags_MixedValue
Definition: imgui_internal.h:527
ImGuiNavMoveResult::DistCenter
float DistCenter
Definition: imgui_internal.h:934
ImGuiWindow::MemoryCompacted
bool MemoryCompacted
Definition: imgui_internal.h:1536
ImGuiWindow::MemoryDrawListVtxCapacity
int MemoryDrawListVtxCapacity
Definition: imgui_internal.h:1538
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:2743
ImGui::Indent
IMGUI_API void Indent(float indent_w=0.0f)
Definition: imgui.cpp:7006
ImChunkStream::offset_from_ptr
int offset_from_ptr(const T *p)
Definition: imgui_internal.h:429
ImGui::ColorTooltip
IMGUI_API void ColorTooltip(const char *text, const float *col, ImGuiColorEditFlags flags)
Definition: imgui_widgets.cpp:4992
ImGuiContext::NavInitRequest
bool NavInitRequest
Definition: imgui_internal.h:1112
ImGuiNextWindowData::BgAlphaVal
float BgAlphaVal
Definition: imgui_internal.h:969
ImTriangleContainsPoint
IMGUI_API bool ImTriangleContainsPoint(const ImVec2 &a, const ImVec2 &b, const ImVec2 &c, const ImVec2 &p)
Definition: imgui.cpp:1262
ImGuiNavHighlightFlags_TypeThin
@ ImGuiNavHighlightFlags_TypeThin
Definition: imgui_internal.h:620
ImStrchrRange
const IMGUI_API char * ImStrchrRange(const char *str_begin, const char *str_end, char c)
Definition: imgui.cpp:1346
ImGuiWindow::NameBufLen
int NameBufLen
Definition: imgui_internal.h:1469
ImGuiContext::FramerateSecPerFrame
float FramerateSecPerFrame[120]
Definition: imgui_internal.h:1220
v
const GLdouble * v
Definition: glcorearb.h:3106
ImRect::ImRect
ImRect(const ImVec4 &v)
Definition: imgui_internal.h:691
google::protobuf.internal.python_message.Clear
Clear
Definition: python_message.py:1431
ImGuiContext::SettingsIniData
ImGuiTextBuffer SettingsIniData
Definition: imgui_internal.h:1200
ImGuiColumns::Count
int Count
Definition: imgui_internal.h:862
ImGui::TempInputIsActive
bool TempInputIsActive(ImGuiID id)
Definition: imgui_internal.h:1876
ImDrawListSharedData::CircleSegmentMaxError
float CircleSegmentMaxError
Definition: imgui_internal.h:907
ImGuiTabBar::ReorderRequestTabId
ImGuiID ReorderRequestTabId
Definition: imgui_internal.h:1627
ImGuiNavMoveResult::DistBox
float DistBox
Definition: imgui_internal.h:933
ImGui::IsWindowChildOf
IMGUI_API bool IsWindowChildOf(ImGuiWindow *window, ImGuiWindow *potential_parent)
Definition: imgui.cpp:6236
ImGui::GetWindowResizeID
IMGUI_API ImGuiID GetWindowResizeID(ImGuiWindow *window, int n)
Definition: imgui.cpp:5029
ImGuiWindow::MoveId
ImGuiID MoveId
Definition: imgui_internal.h:1470
ImGui::SetWindowCollapsed
IMGUI_API void SetWindowCollapsed(bool collapsed, ImGuiCond cond=0)
Definition: imgui.cpp:6429
ImGuiContext::DebugItemPickerBreakId
ImGuiID DebugItemPickerBreakId
Definition: imgui_internal.h:1217
ImTextCountUtf8BytesFromChar
IMGUI_API int ImTextCountUtf8BytesFromChar(const char *in_text, const char *in_text_end)
Definition: imgui.cpp:1750
ImGuiInputTextState::ImGuiInputTextState
ImGuiInputTextState()
Definition: imgui_internal.h:790
ImGui::ShrinkWidths
IMGUI_API void ShrinkWidths(ImGuiShrinkWidthItem *items, int count, float width_excess)
Definition: imgui_widgets.cpp:1392
ImAlphaBlendColors
IMGUI_API ImU32 ImAlphaBlendColors(ImU32 col_a, ImU32 col_b)
Definition: imgui.cpp:1800
ImGuiInputTextState::ClearSelection
void ClearSelection()
Definition: imgui_internal.h:801
ImPool::Add
T * Add()
Definition: imgui_internal.h:404
ImGuiContext::ColorModifiers
ImVector< ImGuiColorMod > ColorModifiers
Definition: imgui_internal.h:1084
ImGuiWindow::WindowBorderSize
float WindowBorderSize
Definition: imgui_internal.h:1468
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)
ImGuiNavHighlightFlags_NoRounding
@ ImGuiNavHighlightFlags_NoRounding
Definition: imgui_internal.h:622
ImGuiWindow::OuterRectClipped
ImRect OuterRectClipped
Definition: imgui_internal.h:1510
ImGuiColorMod::BackupValue
ImVec4 BackupValue
Definition: imgui_internal.h:730
ImGuiItemStatusFlags
int ImGuiItemStatusFlags
Definition: imgui_internal.h:107
ImGuiDataTypeInfo::PrintFmt
const char * PrintFmt
Definition: imgui_internal.h:722
ImGuiStyleMod::ImGuiStyleMod
ImGuiStyleMod(ImGuiStyleVar idx, ImVec2 v)
Definition: imgui_internal.h:740
ImGuiContext::WheelingWindowRefMousePos
ImVec2 WheelingWindowRefMousePos
Definition: imgui_internal.h:1048
ImGuiNextWindowData::Flags
ImGuiNextWindowDataFlags Flags
Definition: imgui_internal.h:957
ImGuiWindowTempData::MenuBarAppending
bool MenuBarAppending
Definition: imgui_internal.h:1395
ImGuiWindow::CalcFontSize
float CalcFontSize() const
Definition: imgui_internal.h:1554
ImGuiContext::DragDropPayloadBufLocal
unsigned char DragDropPayloadBufLocal[16]
Definition: imgui_internal.h:1167
ImGuiWindow::ColumnsStorage
ImVector< ImGuiColumns > ColumnsStorage
Definition: imgui_internal.h:1521
ImGuiContext::ActiveIdHasBeenEditedBefore
bool ActiveIdHasBeenEditedBefore
Definition: imgui_internal.h:1063
ImGui::PushColumnClipRect
IMGUI_API void PushColumnClipRect(int column_index)
Definition: imgui_widgets.cpp:7433
ImGui::NavMoveRequestButNoResultYet
IMGUI_API bool NavMoveRequestButNoResultYet()
Definition: imgui.cpp:8188
ImGuiNavDirSourceFlags
int ImGuiNavDirSourceFlags
Definition: imgui_internal.h:109
IM_PLACEMENT_NEW
#define IM_PLACEMENT_NEW(_PTR)
Definition: imgui.h:1285
ImGuiNextWindowData::SizeCallbackUserData
void * SizeCallbackUserData
Definition: imgui_internal.h:968
ImGuiMenuColumns::Spacing
float Spacing
Definition: imgui_internal.h:760
ImFontAtlasBuildFinish
IMGUI_API void ImFontAtlasBuildFinish(ImFontAtlas *atlas)
Definition: imgui_draw.cpp:2288
ImGuiNavHighlightFlags_TypeDefault
@ ImGuiNavHighlightFlags_TypeDefault
Definition: imgui_internal.h:619
ImVec2ih::y
short y
Definition: imgui_internal.h:676
ImGuiInputReadMode_Released
@ ImGuiInputReadMode_Released
Definition: imgui_internal.h:610
ImWchar
ImWchar16 ImWchar
Definition: imgui.h:185
ImGuiContext::DragDropTargetId
ImGuiID DragDropTargetId
Definition: imgui_internal.h:1160
ImGui::NavMoveRequestForward
IMGUI_API void NavMoveRequestForward(ImGuiDir move_dir, ImGuiDir clip_dir, const ImRect &bb_rel, ImGuiNavMoveFlags move_flags)
Definition: imgui.cpp:8201
ImLerp
static T ImLerp(T a, T b, float t)
Definition: imgui_internal.h:323
ImGui::EndColumns
IMGUI_API void EndColumns()
Definition: imgui_widgets.cpp:7621
ImGuiWindowTempData::TreeJumpToParentOnPopMask
ImU32 TreeJumpToParentOnPopMask
Definition: imgui_internal.h:1399
ImGuiDragFlags_None
@ ImGuiDragFlags_None
Definition: imgui_internal.h:475
ImDrawListSplitter
Definition: imgui.h:1916
ImRect::GetHeight
float GetHeight() const
Definition: imgui_internal.h:697
ImGui::IsNavInputDown
bool IsNavInputDown(ImGuiNavInput n)
Definition: imgui_internal.h:1778
size
GLsizeiptr size
Definition: glcorearb.h:2943
ImGuiGroupData::BackupIndent
ImVec1 BackupIndent
Definition: imgui_internal.h:748
ImVec2ih::x
short x
Definition: imgui_internal.h:676
ImGuiWindow::Size
ImVec2 Size
Definition: imgui_internal.h:1462
ImDrawListSharedData
Definition: imgui_internal.h:901
ImVector::resize
void resize(int new_size)
Definition: imgui.h:1337
ImGui::GetNavInputAmount
IMGUI_API float GetNavInputAmount(ImGuiNavInput n, ImGuiInputReadMode mode)
Definition: imgui.cpp:8333
ImPoolIdx
int ImPoolIdx
Definition: imgui_internal.h:388
ImGuiSelectableFlags_NoHoldingActiveID
@ ImGuiSelectableFlags_NoHoldingActiveID
Definition: imgui_internal.h:494
ImGuiContext::NavInitResultId
ImGuiID NavInitResultId
Definition: imgui_internal.h:1114
ImGui::TextEx
IMGUI_API void TextEx(const char *text, const char *text_end=NULL, ImGuiTextFlags flags=0)
Definition: imgui_widgets.cpp:139
ImBezierCalc
IMGUI_API ImVec2 ImBezierCalc(const ImVec2 &p1, const ImVec2 &p2, const ImVec2 &p3, const ImVec2 &p4, float t)
Definition: imgui_draw.cpp:935
ImGuiContext::NavMoveDir
ImGuiDir NavMoveDir
Definition: imgui_internal.h:1120
ImGuiContext::ActiveIdUsingNavInputMask
ImU32 ActiveIdUsingNavInputMask
Definition: imgui_internal.h:1066
ImGuiDragFlags
int ImGuiDragFlags
Definition: imgui_internal.h:105
ImGuiInputReadMode_RepeatSlow
@ ImGuiInputReadMode_RepeatSlow
Definition: imgui_internal.h:612
ImGuiWindow::SetWindowPosAllowFlags
ImGuiCond SetWindowPosAllowFlags
Definition: imgui_internal.h:1499
ImBitVector::Clear
void Clear()
Definition: imgui_internal.h:379
ImDrawListSharedData::Font
ImFont * Font
Definition: imgui_internal.h:904
ImStrdupcpy
IMGUI_API char * ImStrdupcpy(char *dst, size_t *p_dst_size, const char *str)
Definition: imgui.cpp:1332
ImGuiWindow::ScrollbarY
bool ScrollbarY
Definition: imgui_internal.h:1477
ImGuiNavHighlightFlags_AlwaysDraw
@ ImGuiNavHighlightFlags_AlwaysDraw
Definition: imgui_internal.h:621
ImSubClampOverflow
static T ImSubClampOverflow(T a, T b, T mn, T mx)
Definition: imgui_internal.h:326
ImGuiWindow::BeginOrderWithinParent
short BeginOrderWithinParent
Definition: imgui_internal.h:1490
ImGui::ItemSize
IMGUI_API void ItemSize(const ImVec2 &size, float text_baseline_y=-1.0f)
Definition: imgui.cpp:6823
ImGui::PushMultiItemsWidths
IMGUI_API void PushMultiItemsWidths(int components, float width_full)
Definition: imgui.cpp:7039
ImGuiContext::WindowsFocusOrder
ImVector< ImGuiWindow * > WindowsFocusOrder
Definition: imgui_internal.h:1038
ImGui::BeginTooltipEx
IMGUI_API void BeginTooltipEx(ImGuiWindowFlags extra_flags, ImGuiTooltipFlags tooltip_flags)
Definition: imgui.cpp:7440
ImGuiItemStatusFlags_HasDeactivated
@ ImGuiItemStatusFlags_HasDeactivated
Definition: imgui_internal.h:540
ImVec4::w
float w
Definition: imgui.h:223
ImGuiColumns
Definition: imgui_internal.h:855
ImGuiWindow::MenuBarHeight
float MenuBarHeight() const
Definition: imgui_internal.h:1557
ImGui::GetInputTextState
ImGuiInputTextState * GetInputTextState(ImGuiID id)
Definition: imgui_internal.h:1877
ImLineClosestPoint
IMGUI_API ImVec2 ImLineClosestPoint(const ImVec2 &a, const ImVec2 &b, const ImVec2 &p)
Definition: imgui.cpp:1249
ImGuiContext::HoveredId
ImGuiID HoveredId
Definition: imgui_internal.h:1052
ImGuiContext::NavIdTabCounter
int NavIdTabCounter
Definition: imgui_internal.h:1106
ImGuiLayoutType_
ImGuiLayoutType_
Definition: imgui_internal.h:566
ImGuiNextItemDataFlags_
ImGuiNextItemDataFlags_
Definition: imgui_internal.h:976
ImGuiStyleMod::ImGuiStyleMod
ImGuiStyleMod(ImGuiStyleVar idx, int v)
Definition: imgui_internal.h:738
ImGuiPopupData::ImGuiPopupData
ImGuiPopupData()
Definition: imgui_internal.h:842
ImGuiWindow::RootWindowForNav
ImGuiWindow * RootWindowForNav
Definition: imgui_internal.h:1530
ImGuiSliderFlags_Vertical
@ ImGuiSliderFlags_Vertical
Definition: imgui_internal.h:470
ImGuiTabBar::GetTabName
const char * GetTabName(const ImGuiTabItem *tab) const
Definition: imgui_internal.h:1637
ImGuiContext::TempBuffer
char TempBuffer[1024 *3+1]
Definition: imgui_internal.h:1226
ImGui::DataTypeFormatString
IMGUI_API int DataTypeFormatString(char *buf, int buf_size, ImGuiDataType data_type, const void *p_data, const char *format)
Definition: imgui_widgets.cpp:1710
ImGuiWindow::WantCollapseToggle
bool WantCollapseToggle
Definition: imgui_internal.h:1482
ImGuiItemStatusFlags_Deactivated
@ ImGuiItemStatusFlags_Deactivated
Definition: imgui_internal.h:541
ImGuiContext::DrawDataBuilder
ImDrawDataBuilder DrawDataBuilder
Definition: imgui_internal.h:1145
ImGui::Initialize
IMGUI_API void Initialize(ImGuiContext *context)
Definition: imgui.cpp:3894
ImGui::ButtonBehavior
IMGUI_API bool ButtonBehavior(const ImRect &bb, ImGuiID id, bool *out_hovered, bool *out_held, ImGuiButtonFlags flags=0)
Definition: imgui_widgets.cpp:459
r
GLboolean r
Definition: glcorearb.h:3228
ImGuiTabBar::OffsetNextTab
float OffsetNextTab
Definition: imgui_internal.h:1621
ImGui::NavInitWindow
IMGUI_API void NavInitWindow(ImGuiWindow *window, bool force_reinit)
Definition: imgui.cpp:8288
ImGuiStorage
Definition: imgui.h:1729
ImGuiSeparatorFlags_None
@ ImGuiSeparatorFlags_None
Definition: imgui_internal.h:510
ImGuiWindowSettings
Definition: imgui_internal.h:808
ImGuiNavMoveResult::ID
ImGuiID ID
Definition: imgui_internal.h:931
ImGuiContext::LogFile
ImFileHandle LogFile
Definition: imgui_internal.h:1207
ImBezierClosestPoint
IMGUI_API ImVec2 ImBezierClosestPoint(const ImVec2 &p1, const ImVec2 &p2, const ImVec2 &p3, const ImVec2 &p4, const ImVec2 &p, int num_segments)
Definition: imgui.cpp:1181
ImGuiPopupData::OpenFrameCount
int OpenFrameCount
Definition: imgui_internal.h:837
ImGuiNextWindowData::SizeCond
ImGuiCond SizeCond
Definition: imgui_internal.h:959
ImStreolRange
const IMGUI_API char * ImStreolRange(const char *str, const char *str_end)
Definition: imgui.cpp:1361
ImGui::IsActiveIdUsingNavDir
bool IsActiveIdUsingNavDir(ImGuiDir dir)
Definition: imgui_internal.h:1773
dst
GLenum GLenum dst
Definition: glcorearb.h:3364
ImGuiContext::ShrinkWidthBuffer
ImVector< ImGuiShrinkWidthItem > ShrinkWidthBuffer
Definition: imgui_internal.h:1173
ImGuiItemFlags_ButtonRepeat
@ ImGuiItemFlags_ButtonRepeat
Definition: imgui_internal.h:522
ImGui::SetWindowSize
IMGUI_API void SetWindowSize(const ImVec2 &size, ImGuiCond cond=0)
Definition: imgui.cpp:6407
ImGuiContext::FocusRequestNextWindow
ImGuiWindow * FocusRequestNextWindow
Definition: imgui_internal.h:1136
ImGuiContext::NavMoveFromClampedRefRect
bool NavMoveFromClampedRefRect
Definition: imgui_internal.h:1116
ImGuiWindow::IDStack
ImVector< ImGuiID > IDStack
Definition: imgui_internal.h:1505
ImGuiInputTextState::SelectedAllMouseLock
bool SelectedAllMouseLock
Definition: imgui_internal.h:785
ImGuiContext::ActiveIdUsingKeyInputMask
ImU64 ActiveIdUsingKeyInputMask
Definition: imgui_internal.h:1067
ImGuiWindow::Name
char * Name
Definition: imgui_internal.h:1458
ImGui::SetWindowPos
IMGUI_API void SetWindowPos(const ImVec2 &pos, ImGuiCond cond=0)
Definition: imgui.cpp:6357
ImGuiContext::ActiveIdUsingNavDirMask
ImU32 ActiveIdUsingNavDirMask
Definition: imgui_internal.h:1065
ImGuiContext::DragDropTargetRect
ImRect DragDropTargetRect
Definition: imgui_internal.h:1159
ImGui::TabItemBackground
IMGUI_API void TabItemBackground(ImDrawList *draw_list, const ImRect &bb, ImGuiTabItemFlags flags, ImU32 col)
Definition: imgui_widgets.cpp:7217
ImGuiWindow::Rect
ImRect Rect() const
Definition: imgui_internal.h:1553
ImGui::FindBestWindowPosForPopup
IMGUI_API ImVec2 FindBestWindowPosForPopup(ImGuiWindow *window)
Definition: imgui.cpp:7860
ImGuiContext::ActiveIdHasBeenEditedThisFrame
bool ActiveIdHasBeenEditedThisFrame
Definition: imgui_internal.h:1064
ImTextCountCharsFromUtf8
IMGUI_API int ImTextCountCharsFromUtf8(const char *in_text, const char *in_text_end)
Definition: imgui.cpp:1699
ImGuiItemStatusFlags_HasDisplayRect
@ ImGuiItemStatusFlags_HasDisplayRect
Definition: imgui_internal.h:536
ImGuiInputTextState::GetUndoAvailCount
int GetUndoAvailCount() const
Definition: imgui_internal.h:793
ImGuiWindow::AutoFitChildAxises
ImS8 AutoFitChildAxises
Definition: imgui_internal.h:1494
ImGuiGroupData::BackupCursorMaxPos
ImVec2 BackupCursorMaxPos
Definition: imgui_internal.h:747
ImGui::BringWindowToDisplayBack
IMGUI_API void BringWindowToDisplayBack(ImGuiWindow *window)
Definition: imgui.cpp:6070
ImGuiPopupPositionPolicy_Default
@ ImGuiPopupPositionPolicy_Default
Definition: imgui_internal.h:661
ImGuiButtonFlags_MouseButtonMask_
@ ImGuiButtonFlags_MouseButtonMask_
Definition: imgui_internal.h:460
handler
void * handler
Definition: test_security_curve.cpp:27
ImGuiWindow::LastFrameActive
int LastFrameActive
Definition: imgui_internal.h:1517
ImGuiColumnData::Flags
ImGuiColumnsFlags Flags
Definition: imgui_internal.h:849
ImGui::TabBarQueueChangeTabOrder
IMGUI_API void TabBarQueueChangeTabOrder(ImGuiTabBar *tab_bar, const ImGuiTabItem *tab, int dir)
Definition: imgui_widgets.cpp:6842
ImGuiContext::WantTextInputNextFrame
int WantTextInputNextFrame
Definition: imgui_internal.h:1225
ImGuiIO
Definition: imgui.h:1414
ImFont
Definition: imgui.h:2272
ImGuiColumnData
Definition: imgui_internal.h:845
ImGui::DataTypeApplyOp
IMGUI_API void DataTypeApplyOp(ImGuiDataType data_type, int op, void *output, void *arg_1, const void *arg_2)
Definition: imgui_widgets.cpp:1733
ImGuiContext::NavLayer
ImGuiNavLayer NavLayer
Definition: imgui_internal.h:1105
ImSqrt
#define ImSqrt(X)
Definition: imgui_internal.h:306
ImGuiButtonFlags_FlattenChildren
@ ImGuiButtonFlags_FlattenChildren
Definition: imgui_internal.h:447
ImGuiItemFlags_NoTabStop
@ ImGuiItemFlags_NoTabStop
Definition: imgui_internal.h:521
ImGuiInputTextFlags
int ImGuiInputTextFlags
Definition: imgui.h:162
ImGuiWindowTempData::Indent
ImVec1 Indent
Definition: imgui_internal.h:1375
ImGuiNextWindowDataFlags_None
@ ImGuiNextWindowDataFlags_None
Definition: imgui_internal.h:944
ImGuiWindow::RootWindowForTitleBarHighlight
ImGuiWindow * RootWindowForTitleBarHighlight
Definition: imgui_internal.h:1529
ImGuiStyle::FramePadding
ImVec2 FramePadding
Definition: imgui.h:1378
data
GLint GLenum GLsizei GLsizei GLsizei GLint GLsizei const GLvoid * data
Definition: glcorearb.h:2879
ImCharIsBlankA
static bool ImCharIsBlankA(char c)
Definition: imgui_internal.h:247
ImFileLoadToMemory
IMGUI_API void * ImFileLoadToMemory(const char *filename, const char *mode, size_t *out_file_size=NULL, int padding_bytes=0)
Definition: imgui.cpp:1575
ImGui::FocusWindow
IMGUI_API void FocusWindow(ImGuiWindow *window)
Definition: imgui.cpp:6085
ImGuiSettingsHandler::TypeName
const char * TypeName
Definition: imgui_internal.h:821
ImGuiTabBar::CurrFrameVisible
int CurrFrameVisible
Definition: imgui_internal.h:1615
ImGuiColumns::IsFirstFrame
bool IsFirstFrame
Definition: imgui_internal.h:859
ImGuiNextWindowDataFlags_HasBgAlpha
@ ImGuiNextWindowDataFlags_HasBgAlpha
Definition: imgui_internal.h:951
ImGuiButtonFlags_PressedOnDefault_
@ ImGuiButtonFlags_PressedOnDefault_
Definition: imgui_internal.h:464
ImGuiButtonFlags_
ImGuiButtonFlags_
Definition: imgui_internal.h:437
ImGuiContext::WheelingWindow
ImGuiWindow * WheelingWindow
Definition: imgui_internal.h:1047
ImGuiContext::NavWindowingToggleLayer
bool NavWindowingToggleLayer
Definition: imgui_internal.h:1132
ImGuiLogType_None
@ ImGuiLogType_None
Definition: imgui_internal.h:574
ImVec4
Definition: imgui.h:221
ImGuiItemStatusFlags_ToggledOpen
@ ImGuiItemStatusFlags_ToggledOpen
Definition: imgui_internal.h:539
ImChunkStream::ptr_from_offset
T * ptr_from_offset(int off)
Definition: imgui_internal.h:430
ImGuiContext::LastValidMousePos
ImVec2 LastValidMousePos
Definition: imgui_internal.h:1176
ImGuiColumns::LineMinY
float LineMinY
Definition: imgui_internal.h:864
ImGuiGroupData::BackupActiveIdPreviousFrameIsAlive
bool BackupActiveIdPreviousFrameIsAlive
Definition: imgui_internal.h:753
ImGui::RoundScalarWithFormatT
IMGUI_API T RoundScalarWithFormatT(const char *format, ImGuiDataType data_type, T v)
ImGui::RenderTextWrapped
IMGUI_API void RenderTextWrapped(ImVec2 pos, const char *text, const char *text_end, float wrap_width)
Definition: imgui.cpp:2600
ImGui::FindOrCreateWindowSettings
IMGUI_API ImGuiWindowSettings * FindOrCreateWindowSettings(const char *name)
Definition: imgui.cpp:9594
ImGuiContext::NavJustTabbedId
ImGuiID NavJustTabbedId
Definition: imgui_internal.h:1098
google::protobuf::operator*=
Duration & operator*=(Duration &d, int64 r)
Definition: time_util.cc:420
ImGui::LogToBuffer
IMGUI_API void LogToBuffer(int auto_open_depth=-1)
Definition: imgui.cpp:9445
ImGuiWindow::HiddenFramesCanSkipItems
int HiddenFramesCanSkipItems
Definition: imgui_internal.h:1497
IM_ASSERT
#define IM_ASSERT(_EXPR)
Definition: imgui.h:79
ImGuiContext::ColorPickerRef
ImVec4 ColorPickerRef
Definition: imgui_internal.h:1184
ImGuiPtrOrIndex::ImGuiPtrOrIndex
ImGuiPtrOrIndex(void *ptr)
Definition: imgui_internal.h:1010
IMGUI_API
#define IMGUI_API
Definition: imgui.h:70
ImGuiWindowTempData::CursorPosPrevLine
ImVec2 CursorPosPrevLine
Definition: imgui_internal.h:1368
ImGuiColumnsFlags_NoPreserveWidths
@ ImGuiColumnsFlags_NoPreserveWidths
Definition: imgui_internal.h:485
ImGuiContext::FontAtlasOwnedByContext
bool FontAtlasOwnedByContext
Definition: imgui_internal.h:1021
ImGui::IsItemToggledSelection
IMGUI_API bool IsItemToggledSelection()
Definition: imgui.cpp:4622
ImGuiGroupData::BackupGroupOffset
ImVec1 BackupGroupOffset
Definition: imgui_internal.h:749
ImGuiContext::ActiveIdTimer
float ActiveIdTimer
Definition: imgui_internal.h:1059
ImGuiWindow::DrawListInst
ImDrawList DrawListInst
Definition: imgui_internal.h:1526
ImGuiContext::LogEnabled
bool LogEnabled
Definition: imgui_internal.h:1205
ImGuiContext::ActiveIdClickOffset
ImVec2 ActiveIdClickOffset
Definition: imgui_internal.h:1068
ImGuiPlotType
ImGuiPlotType
Definition: imgui_internal.h:589
ImGuiContext::FramerateSecPerFrameAccum
float FramerateSecPerFrameAccum
Definition: imgui_internal.h:1222
ImGuiWindowFlags_NoTitleBar
@ ImGuiWindowFlags_NoTitleBar
Definition: imgui.h:769
ImGuiTabItem::LastFrameVisible
int LastFrameVisible
Definition: imgui_internal.h:1597
f
GLfloat f
Definition: glcorearb.h:3964
ImGuiTextFlags
int ImGuiTextFlags
Definition: imgui_internal.h:115
ImGui::BeginTabBarEx
IMGUI_API bool BeginTabBarEx(ImGuiTabBar *tab_bar, const ImRect &bb, ImGuiTabBarFlags flags)
Definition: imgui_widgets.cpp:6505
ImGuiInputTextState::UserFlags
ImGuiInputTextFlags UserFlags
Definition: imgui_internal.h:786
ImGuiTabBarFlagsPrivate_
ImGuiTabBarFlagsPrivate_
Definition: imgui_internal.h:1579
ImGuiColorMod
Definition: imgui_internal.h:727
ImPool::Reserve
void Reserve(int capacity)
Definition: imgui_internal.h:407
google::protobuf::python::field_descriptor::GetIndex
static PyObject * GetIndex(PyBaseDescriptor *self, void *closure)
Definition: python/google/protobuf/pyext/descriptor.cc:781
ImGui::SliderCalcRatioFromValueT
IMGUI_API float SliderCalcRatioFromValueT(ImGuiDataType data_type, T v, T v_min, T v_max, float power, float linear_zero_pos)
ImGui
Definition: imgui.cpp:922
ImGuiContext::DragDropWithinTarget
bool DragDropWithinTarget
Definition: imgui_internal.h:1154
ImGuiInputTextState::ClearText
void ClearText()
Definition: imgui_internal.h:791
ImFileHandle
FILE * ImFileHandle
Definition: imgui_internal.h:291
ImGuiWindowTempData::LastItemId
ImGuiID LastItemId
Definition: imgui_internal.h:1380
ImGuiNextItemDataFlags_HasOpen
@ ImGuiNextItemDataFlags_HasOpen
Definition: imgui_internal.h:980
ImGui::FindSettingsHandler
IMGUI_API ImGuiSettingsHandler * FindSettingsHandler(const char *type_name)
Definition: imgui.cpp:9611
ImGuiWindow::Hidden
bool Hidden
Definition: imgui_internal.h:1485
ImBitArrayTestBit
bool ImBitArrayTestBit(const ImU32 *arr, int n)
Definition: imgui_internal.h:358
ImTextCharFromUtf8
IMGUI_API int ImTextCharFromUtf8(unsigned int *out_char, const char *in_text, const char *in_text_end)
Definition: imgui.cpp:1621
ImGuiWindowTempData::ItemWidthStack
ImVector< float > ItemWidthStack
Definition: imgui_internal.h:1414
ImGuiTabItem::Flags
ImGuiTabItemFlags Flags
Definition: imgui_internal.h:1596
ImBezierClosestPointCasteljau
IMGUI_API ImVec2 ImBezierClosestPointCasteljau(const ImVec2 &p1, const ImVec2 &p2, const ImVec2 &p3, const ImVec2 &p4, const ImVec2 &p, float tess_tol)
Definition: imgui.cpp:1239
ImGuiWindow::ChildId
ImGuiID ChildId
Definition: imgui_internal.h:1471
ImGui::GetFocusID
ImGuiID GetFocusID()
Definition: imgui_internal.h:1710
ImGuiLayoutType_Horizontal
@ ImGuiLayoutType_Horizontal
Definition: imgui_internal.h:568
ImGui::ArrowButtonEx
IMGUI_API bool ArrowButtonEx(const char *str_id, ImGuiDir dir, ImVec2 size_arg, ImGuiButtonFlags flags=0)
Definition: imgui_widgets.cpp:718
ImVec1::ImVec1
ImVec1()
Definition: imgui_internal.h:669
ImGui::DebugDrawItemRect
void DebugDrawItemRect(ImU32 col=IM_COL32(255, 0, 0, 255))
Definition: imgui_internal.h:1896
ImGuiButtonFlags_None
@ ImGuiButtonFlags_None
Definition: imgui_internal.h:439
ImGuiContext::ActiveIdIsAlive
ImGuiID ActiveIdIsAlive
Definition: imgui_internal.h:1058
ImRect::ClipWith
void ClipWith(const ImRect &r)
Definition: imgui_internal.h:712
ImGuiContext::CurrentWindow
ImGuiWindow * CurrentWindow
Definition: imgui_internal.h:1043
ImGui::TempInputText
IMGUI_API bool TempInputText(const ImRect &bb, ImGuiID id, const char *label, char *buf, int buf_size, ImGuiInputTextFlags flags)
Definition: imgui_widgets.cpp:2866
ImGuiWindowTempData::ParentLayoutType
ImGuiLayoutType ParentLayoutType
Definition: imgui_internal.h:1404
pixels
GLint GLint GLsizei GLint GLenum GLenum const GLvoid * pixels
Definition: glcorearb.h:2773
output
const upb_json_parsermethod const upb_symtab upb_sink * output
Definition: ruby/ext/google/protobuf_c/upb.h:10503
ImDrawListFlags
int ImDrawListFlags
Definition: imgui.h:153
ImGuiContext::DragDropAcceptFrameCount
int DragDropAcceptFrameCount
Definition: imgui_internal.h:1165
w
GLubyte GLubyte GLubyte GLubyte w
Definition: glcorearb.h:3126
ImGuiWindowTempData::CurrLineTextBaseOffset
float CurrLineTextBaseOffset
Definition: imgui_internal.h:1373
ImGuiPtrOrIndex::Index
int Index
Definition: imgui_internal.h:1008
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:1904
ImGuiTabBar::BarRect
ImRect BarRect
Definition: imgui_internal.h:1617
ImGuiStyleMod
Definition: imgui_internal.h:734
ImGuiGroupData::EmitItem
bool EmitItem
Definition: imgui_internal.h:754
ImGuiContext::FocusRequestNextCounterTabStop
int FocusRequestNextCounterTabStop
Definition: imgui_internal.h:1140
ImGuiContext::ImGuiContext
ImGuiContext(ImFontAtlas *shared_font_atlas)
Definition: imgui_internal.h:1228
ImGuiContext::SettingsWindows
ImChunkStream< ImGuiWindowSettings > SettingsWindows
Definition: imgui_internal.h:1202
count
GLint GLsizei count
Definition: glcorearb.h:2830
false
#define false
Definition: cJSON.c:70
ImGui::SetScrollFromPosY
IMGUI_API void SetScrollFromPosY(float local_y, float center_y_ratio=0.5f)
Definition: imgui.cpp:7404
ImGuiTabBar::ScrollingTargetDistToVisibility
float ScrollingTargetDistToVisibility
Definition: imgui_internal.h:1624
ImGuiWindow::StateStorage
ImGuiStorage StateStorage
Definition: imgui_internal.h:1520
ImGuiContext::WindowsTempSortBuffer
ImVector< ImGuiWindow * > WindowsTempSortBuffer
Definition: imgui_internal.h:1039
ImGui::PushColumnsBackground
IMGUI_API void PushColumnsBackground()
Definition: imgui_widgets.cpp:7445
ImGuiWindow::LastTimeActive
float LastTimeActive
Definition: imgui_internal.h:1518
ImGui::OpenPopupEx
IMGUI_API void OpenPopupEx(ImGuiID id)
Definition: imgui.cpp:7529
ImGuiContext::DragCurrentAccumDirty
bool DragCurrentAccumDirty
Definition: imgui_internal.h:1185
ImGuiMouseCursor
int ImGuiMouseCursor
Definition: imgui.h:150
ImGuiWindow::ContentRegionRect
ImRect ContentRegionRect
Definition: imgui_internal.h:1515
ImGuiItemStatusFlags_
ImGuiItemStatusFlags_
Definition: imgui_internal.h:532
ImGuiDragFlags_Vertical
@ ImGuiDragFlags_Vertical
Definition: imgui_internal.h:476
ImLengthSqr
static float ImLengthSqr(const ImVec2 &lhs)
Definition: imgui_internal.h:335
ImGuiTabBar::VisibleTabId
ImGuiID VisibleTabId
Definition: imgui_internal.h:1614
ImGuiSizeCallback
void(* ImGuiSizeCallback)(ImGuiSizeCallbackData *data)
Definition: imgui.h:176
ImGuiContext::DrawListSharedData
ImDrawListSharedData DrawListSharedData
Definition: imgui_internal.h:1027
ImDrawDataBuilder::ClearFreeMemory
void ClearFreeMemory()
Definition: imgui_internal.h:924
ImGui::TabItemEx
IMGUI_API bool TabItemEx(ImGuiTabBar *tab_bar, const char *label, bool *p_open, ImGuiTabItemFlags flags)
Definition: imgui_widgets.cpp:6992
ImGuiTabItemFlags
int ImGuiTabItemFlags
Definition: imgui.h:166
index
GLuint index
Definition: glcorearb.h:3055
ImGuiTabItem
Definition: imgui_internal.h:1593
ImStristr
const IMGUI_API char * ImStristr(const char *haystack, const char *haystack_end, const char *needle, const char *needle_end)
Definition: imgui.cpp:1374
ImGuiGroupData::BackupCursorPos
ImVec2 BackupCursorPos
Definition: imgui_internal.h:746
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:2665
ImGuiButtonFlags_PressedOnMask_
@ ImGuiButtonFlags_PressedOnMask_
Definition: imgui_internal.h:463
STB_TEXTEDIT_UNDOSTATECOUNT
#define STB_TEXTEDIT_UNDOSTATECOUNT
Definition: imgui_internal.h:130
ImGuiWindowTempData::CurrLineSize
ImVec2 CurrLineSize
Definition: imgui_internal.h:1371
ImGui::CloseButton
IMGUI_API bool CloseButton(ImGuiID id, const ImVec2 &pos)
Definition: imgui_widgets.cpp:755
IM_COL32
#define IM_COL32(R, G, B, A)
Definition: imgui.h:1820
ImGuiWindow::SettingsOffset
int SettingsOffset
Definition: imgui_internal.h:1523
a
GLboolean GLboolean GLboolean GLboolean a
Definition: glcorearb.h:3228
ImGuiContext::StyleModifiers
ImVector< ImGuiStyleMod > StyleModifiers
Definition: imgui_internal.h:1085
ImFontAtlasBuildWithStbTruetype
IMGUI_API bool ImFontAtlasBuildWithStbTruetype(ImFontAtlas *atlas)
Definition: imgui_draw.cpp:1949
ImGui::GetColumnsID
IMGUI_API ImGuiID GetColumnsID(const char *str_id, int count)
Definition: imgui_widgets.cpp:7481
ImGui::GetCurrentWindowRead
ImGuiWindow * GetCurrentWindowRead()
Definition: imgui_internal.h:1656
ImGuiWindow::NavLastChildNavWindow
ImGuiWindow * NavLastChildNavWindow
Definition: imgui_internal.h:1532
ImGuiContext::DragDropSourceFrameCount
int DragDropSourceFrameCount
Definition: imgui_internal.h:1156
ImGuiInputReadMode_Down
@ ImGuiInputReadMode_Down
Definition: imgui_internal.h:608
ImGuiContext::WithinEndChild
bool WithinEndChild
Definition: imgui_internal.h:1034
ImGui::Shutdown
IMGUI_API void Shutdown(ImGuiContext *context)
Definition: imgui.cpp:3930
ImGuiContext::ActiveIdPreviousFrameIsAlive
bool ActiveIdPreviousFrameIsAlive
Definition: imgui_internal.h:1073
ImGuiSettingsHandler::WriteAllFn
void(* WriteAllFn)(ImGuiContext *ctx, ImGuiSettingsHandler *handler, ImGuiTextBuffer *out_buf)
Definition: imgui_internal.h:825
ImGuiDragDropFlags_None
@ ImGuiDragDropFlags_None
Definition: imgui.h:938
ImGuiMouseCursor_Arrow
@ ImGuiMouseCursor_Arrow
Definition: imgui.h:1245
ImGuiTreeNodeFlagsPrivate_
ImGuiTreeNodeFlagsPrivate_
Definition: imgui_internal.h:503
ImGuiPopupData::OpenParentId
ImGuiID OpenParentId
Definition: imgui_internal.h:838
ImGuiStyleVar
int ImGuiStyleVar
Definition: imgui.h:151
ImBitVector::SetBit
void SetBit(int n)
Definition: imgui_internal.h:381
ImGuiContext::HoveredWindow
ImGuiWindow * HoveredWindow
Definition: imgui_internal.h:1044
ImRect::GetTR
ImVec2 GetTR() const
Definition: imgui_internal.h:699
ImGui::SetScrollFromPosX
IMGUI_API void SetScrollFromPosX(float local_x, float center_x_ratio=0.5f)
Definition: imgui.cpp:7398
ImGetDirQuadrantFromDelta
IMGUI_API ImGuiDir ImGetDirQuadrantFromDelta(float dx, float dy)
Definition: imgui.cpp:7953
ImGuiNextWindowDataFlags
int ImGuiNextWindowDataFlags
Definition: imgui_internal.h:112
ImGui::BringWindowToFocusFront
IMGUI_API void BringWindowToFocusFront(ImGuiWindow *window)
Definition: imgui.cpp:6041
ImChunkStream::chunk_size
int chunk_size(const T *p)
Definition: imgui_internal.h:427
ImGuiItemHoveredDataBackup::LastItemStatusFlags
ImGuiItemStatusFlags LastItemStatusFlags
Definition: imgui_internal.h:1565
ImGui::GetColorU32
IMGUI_API ImU32 GetColorU32(ImGuiCol idx, float alpha_mul=1.0f)
Definition: imgui.cpp:2345
ImGuiTabBar::ScrollingAnim
float ScrollingAnim
Definition: imgui_internal.h:1622
ImGuiWindow::ScrollTargetCenterRatio
ImVec2 ScrollTargetCenterRatio
Definition: imgui_internal.h:1475
ImGuiNavMoveFlags_
ImGuiNavMoveFlags_
Definition: imgui_internal.h:633
ImGui::UpdateMouseMovingWindowEndFrame
IMGUI_API void UpdateMouseMovingWindowEndFrame()
Definition: imgui.cpp:3387
ImGuiWindowTempData::ItemWidth
float ItemWidth
Definition: imgui_internal.h:1411
ImVec2ih::ImVec2ih
ImVec2ih(short _x, short _y)
Definition: imgui_internal.h:678
ImGuiContext::WithinFrameScope
bool WithinFrameScope
Definition: imgui_internal.h:1032
ImGuiButtonFlags_DontClosePopups
@ ImGuiButtonFlags_DontClosePopups
Definition: imgui_internal.h:449
ImGuiWindow::AutoPosLastDirection
ImGuiDir AutoPosLastDirection
Definition: imgui_internal.h:1496
ImGuiWindow::ScrollMax
ImVec2 ScrollMax
Definition: imgui_internal.h:1473
ImGuiSettingsHandler::ImGuiSettingsHandler
ImGuiSettingsHandler()
Definition: imgui_internal.h:828
ImGuiWindow::Appearing
bool Appearing
Definition: imgui_internal.h:1484
ImStrTrimBlanks
IMGUI_API void ImStrTrimBlanks(char *str)
Definition: imgui.cpp:1397
ImGuiNavMoveResult::DistAxial
float DistAxial
Definition: imgui_internal.h:935
ImGuiWindow::IsFallbackWindow
bool IsFallbackWindow
Definition: imgui_internal.h:1486
ImGuiWindow::WriteAccessed
bool WriteAccessed
Definition: imgui_internal.h:1480
google::protobuf::operator-=
Duration & operator-=(Duration &d1, const Duration &d2)
Definition: time_util.cc:414
ImGuiContext::DragDropMouseButton
int DragDropMouseButton
Definition: imgui_internal.h:1157
ImGuiWindowSettings::GetName
char * GetName()
Definition: imgui_internal.h:816
ImGui::KeepAliveID
IMGUI_API void KeepAliveID(ImGuiID id)
Definition: imgui.cpp:3021
ImGuiNextWindowDataFlags_HasContentSize
@ ImGuiNextWindowDataFlags_HasContentSize
Definition: imgui_internal.h:947
ImGui::LogBegin
IMGUI_API void LogBegin(ImGuiLogType type, int auto_open_depth)
Definition: imgui.cpp:9384
ImGuiContext::NavInputId
ImGuiID NavInputId
Definition: imgui_internal.h:1097
ImDrawList::AddRect
IMGUI_API void AddRect(const ImVec2 &p_min, const ImVec2 &p_max, ImU32 col, float rounding=0.0f, ImDrawCornerFlags rounding_corners=ImDrawCornerFlags_All, float thickness=1.0f)
Definition: imgui_draw.cpp:1022
ImGuiTabItem::ID
ImGuiID ID
Definition: imgui_internal.h:1595
ImGuiItemFlags_Default_
@ ImGuiItemFlags_Default_
Definition: imgui_internal.h:528
ImGuiWindowTempData::ItemFlagsStack
ImVector< ImGuiItemFlags > ItemFlagsStack
Definition: imgui_internal.h:1413
ImGui::PushOverrideID
IMGUI_API void PushOverrideID(ImGuiID id)
Definition: imgui.cpp:6644
ImGuiWindow::ScrollTarget
ImVec2 ScrollTarget
Definition: imgui_internal.h:1474
ImGuiButtonFlags_PressedOnDoubleClick
@ ImGuiButtonFlags_PressedOnDoubleClick
Definition: imgui_internal.h:445
h
GLfloat GLfloat GLfloat GLfloat h
Definition: glcorearb.h:4147
ImVec2::y
float y
Definition: imgui.h:210
ImGui::TabBarRemoveTab
IMGUI_API void TabBarRemoveTab(ImGuiTabBar *tab_bar, ImGuiID tab_id)
Definition: imgui_widgets.cpp:6790
ImGuiContext::FocusRequestCurrCounterRegular
int FocusRequestCurrCounterRegular
Definition: imgui_internal.h:1137
benchmarks.python.py_benchmark.args
args
Definition: py_benchmark.py:24
google::protobuf::operator+
uint128 operator+(const uint128 &lhs, const uint128 &rhs)
Definition: int128.h:300
ImGuiLogType_TTY
@ ImGuiLogType_TTY
Definition: imgui_internal.h:575
ImGuiItemFlags_SelectableDontClosePopup
@ ImGuiItemFlags_SelectableDontClosePopup
Definition: imgui_internal.h:526
ImFontAtlasBuildSetupFont
IMGUI_API void ImFontAtlasBuildSetupFont(ImFontAtlas *atlas, ImFont *font, ImFontConfig *font_config, float ascent, float descent)
Definition: imgui_draw.cpp:2216
ImGui::SetNavID
IMGUI_API void SetNavID(ImGuiID id, int nav_layer, ImGuiID focus_scope_id)
Definition: imgui.cpp:7909
ImVec2ih::ImVec2ih
ImVec2ih()
Definition: imgui_internal.h:677
ImFileWrite
IMGUI_API ImU64 ImFileWrite(const void *data, ImU64 size, ImU64 count, ImFileHandle file)
Definition: imgui.cpp:1569
ImGuiContext::NavActivateId
ImGuiID NavActivateId
Definition: imgui_internal.h:1094
ImMul
static ImVec2 ImMul(const ImVec2 &lhs, const ImVec2 &rhs)
Definition: imgui_internal.h:344
ImGuiSeparatorFlags_Vertical
@ ImGuiSeparatorFlags_Vertical
Definition: imgui_internal.h:512
ImGuiWindow::BeginOrderWithinContext
short BeginOrderWithinContext
Definition: imgui_internal.h:1491
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:1681
ImGuiItemHoveredDataBackup::Backup
void Backup()
Definition: imgui_internal.h:1570
ImGuiTabItem::ContentWidth
float ContentWidth
Definition: imgui_internal.h:1602
ImGuiContext::DragCurrentAccum
float DragCurrentAccum
Definition: imgui_internal.h:1186
ImGuiTabItemFlagsPrivate_
ImGuiTabItemFlagsPrivate_
Definition: imgui_internal.h:1587
ImGuiWindowTempData::LastItemRect
ImRect LastItemRect
Definition: imgui_internal.h:1382
ImGuiContext::MovingWindow
ImGuiWindow * MovingWindow
Definition: imgui_internal.h:1046


libaditof
Author(s):
autogenerated on Wed May 21 2025 02:06:54