Go to the documentation of this file.
31 #error Must include imgui.h before imgui_internal.h
40 #pragma warning (push)
41 #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)
45 #pragma clang diagnostic push
46 #pragma clang diagnostic ignored "-Wunused-function" // for stb_textedit.h
47 #pragma clang diagnostic ignored "-Wmissing-prototypes" // for stb_textedit.h
48 #pragma clang diagnostic ignored "-Wold-style-cast"
96 #undef STB_TEXTEDIT_STRING
97 #undef STB_TEXTEDIT_CHARTYPE
98 #define STB_TEXTEDIT_STRING ImGuiInputTextState
99 #define STB_TEXTEDIT_CHARTYPE ImWchar
100 #define STB_TEXTEDIT_GETWIDTH_NEWLINE -1.0f
117 #define IM_PI 3.14159265358979323846f
119 #define IM_NEWLINE "\r\n" // Play it nice with Windows users (2018/05 news: Microsoft announced that Notepad will finally display Unix-style carriage returns!)
121 #define IM_NEWLINE "\n"
123 #define IMGUI_DEBUG_LOG(_FMT,...) printf("[%05d] " _FMT, GImGui->FrameCount, __VA_ARGS__)
124 #define IM_STATIC_ASSERT(_COND) typedef char static_assertion_##__line__[(_COND)?1:-1]
125 #define IM_F32_TO_INT8_UNBOUND(_VAL) ((int)((_VAL) * 255.0f + ((_VAL)>=0 ? 0.5f : -0.5f))) // Unsaturated, for display purpose
126 #define IM_F32_TO_INT8_SAT(_VAL) ((int)(ImSaturate(_VAL) * 255.0f + 0.5f)) // Saturated, always output 0..255
130 #define IMGUI_CDECL __cdecl
145 IMGUI_API void*
ImFileLoadToMemory(
const char* filename,
const char* file_open_mode,
size_t* out_file_size = NULL,
int padding_bytes = 0);
148 static inline bool ImCharIsBlankW(
unsigned int c) {
return c ==
' ' || c ==
'\t' || c == 0x3000; }
149 static inline bool ImIsPowerOfTwo(
int v) {
return v != 0 && (v & (v - 1)) == 0; }
150 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; }
151 #define ImQsort qsort
170 IMGUI_API const char*
ImStristr(
const char* haystack,
const char* haystack_end,
const char* needle,
const char* needle_end);
182 #ifdef IMGUI_DEFINE_MATH_OPERATORS
189 static inline ImVec2& operator+=(
ImVec2& lhs,
const ImVec2& rhs) { lhs.
x += rhs.
x; lhs.
y += rhs.
y;
return lhs; }
190 static inline ImVec2& operator-=(
ImVec2& lhs,
const ImVec2& rhs) { lhs.
x -= rhs.
x; lhs.
y -= rhs.
y;
return lhs; }
191 static inline ImVec2& operator*=(
ImVec2& lhs,
const float rhs) { lhs.
x *= rhs; lhs.
y *= rhs;
return lhs; }
192 static inline ImVec2& operator/=(
ImVec2& lhs,
const float rhs) { lhs.
x /= rhs; lhs.
y /= rhs;
return lhs; }
200 #ifndef IMGUI_DISABLE_MATH_FUNCTIONS
201 static inline float ImFabs(
float x) {
return fabsf(x); }
202 static inline float ImSqrt(
float x) {
return sqrtf(x); }
203 static inline float ImPow(
float x,
float y) {
return powf(x, y); }
204 static inline double ImPow(
double x,
double y) {
return pow(x, y); }
205 static inline float ImFmod(
float x,
float y) {
return fmodf(x, y); }
206 static inline double ImFmod(
double x,
double y) {
return fmod(x, y); }
207 static inline float ImCos(
float x) {
return cosf(x); }
208 static inline float ImSin(
float x) {
return sinf(x); }
209 static inline float ImAcos(
float x) {
return acosf(x); }
210 static inline float ImAtan2(
float y,
float x) {
return atan2f(y, x); }
211 static inline double ImAtof(
const char* s) {
return atof(
s); }
212 static inline float ImFloorStd(
float x) {
return floorf(x); }
213 static inline float ImCeil(
float x) {
return ceilf(x); }
216 template<
typename T>
static inline T
ImMin(T lhs, T rhs) {
return lhs < rhs ? lhs : rhs; }
217 template<
typename T>
static inline T
ImMax(T lhs, T rhs) {
return lhs >= rhs ? lhs : rhs; }
218 template<
typename T>
static inline T
ImClamp(T v, T mn, T mx) {
return (v < mn) ? mn : (v > mx) ? mx : v; }
219 template<
typename T>
static inline T
ImLerp(T a, T b,
float t) {
return (T)(a + (b - a) *
t); }
220 template<
typename T>
static inline void ImSwap(T& a, T& b) { T tmp = a; a = b; b = tmp; }
228 static inline float ImSaturate(
float f) {
return (
f < 0.0
f) ? 0.0f : (
f > 1.0f) ? 1.0
f :
f; }
231 static inline float ImInvLength(
const ImVec2& lhs,
float fail_value) {
float d = lhs.
x*lhs.
x + lhs.
y*lhs.
y;
if (
d > 0.0
f)
return 1.0f /
ImSqrt(
d);
return fail_value; }
232 static inline float ImFloor(
float f) {
return (
float)(int)
f; }
236 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; }
255 void Clear() {
for (
int n = 0; n < Map.
Data.Size; n++) {
int idx = Map.
Data[n].val_i;
if (idx != -1) Data[idx].~T(); } Map.
Clear(); Data.
clear(); FreeIdx = 0; }
256 T*
Add() {
int idx = FreeIdx;
if (idx == Data.
Size) { Data.
resize(Data.
Size + 1); FreeIdx++; }
else { FreeIdx = *(
int*)&Data[idx]; }
IM_PLACEMENT_NEW(&Data[idx]) T();
return &Data[idx]; }
341 #ifdef IMGUI_ENABLE_TEST_ENGINE
343 ImGuiItemStatusFlags_Openable = 1 << 10,
344 ImGuiItemStatusFlags_Opened = 1 << 11,
345 ImGuiItemStatusFlags_Checkable = 1 << 12,
346 ImGuiItemStatusFlags_Checked = 1 << 13
446 ImRect() : Min(FLT_MAX,FLT_MAX), Max(-FLT_MAX,-FLT_MAX) {}
449 ImRect(
float x1,
float y1,
float x2,
float y2) : Min(x1, y1), Max(x2, y2) {}
462 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; }
464 void Expand(
const float amount) { Min.
x -= amount; Min.
y -= amount; Max.
x += amount; Max.
y += amount; }
465 void Expand(
const ImVec2& amount) { Min.
x -= amount.
x; Min.
y -= amount.
y; Max.
x += amount.
x; Max.
y += amount.
y; }
471 void Floor() { Min.
x = (float)(
int)Min.
x; Min.
y = (float)(
int)Min.
y; Max.
x = (float)(
int)Max.
x; Max.
y = (float)(
int)Max.
y; }
513 float Pos[4], NextWidths[4];
516 void Update(
int count,
float spacing,
bool clear);
517 float DeclColumns(
float w0,
float w1,
float w2);
518 float CalcExtraSpace(
float avail_w);
543 void CursorClamp() { StbState.cursor =
ImMin(StbState.cursor, CurLenW); StbState.select_start =
ImMin(StbState.select_start, CurLenW); StbState.select_end =
ImMin(StbState.select_end, CurLenW); }
544 bool HasSelection()
const {
return StbState.select_start != StbState.select_end; }
545 void ClearSelection() { StbState.select_start = StbState.select_end = StbState.cursor; }
546 void SelectAll() { StbState.select_start = 0; StbState.cursor = StbState.select_end = CurLenW; StbState.has_preferred_x =
false; }
547 void OnKeyPressed(
int key);
1040 short StackSizesBackup[6];
1049 CursorPos = CursorPosPrevLine = CursorStartPos = CursorMaxPos =
ImVec2(0.0
f, 0.0
f);
1050 CurrentLineSize = PrevLineSize =
ImVec2(0.0
f, 0.0
f);
1051 CurrentLineTextBaseOffset = PrevLineTextBaseOffset = 0.0f;
1052 LogLinePosY = -1.0f;
1054 TreeDepthMayJumpToParentOnPop = 0x00;
1056 LastItemStatusFlags = 0;
1057 LastItemRect = LastItemDisplayRect =
ImRect();
1058 NavLayerActiveMask = NavLayerActiveMaskNext = 0x00;
1061 NavHideHighlightOneFrame =
false;
1062 NavHasScroll =
false;
1063 MenuBarAppending =
false;
1064 MenuBarOffset =
ImVec2(0.0
f, 0.0
f);
1065 StateStorage =
NULL;
1069 TextWrapPos = -1.0f;
1070 memset(StackSizesBackup, 0,
sizeof(StackSizesBackup));
1165 ImGuiID GetID(
const char* str,
const char* str_end = NULL);
1167 ImGuiID GetIDNoKeepAlive(
const char* str,
const char* str_end = NULL);
1168 ImGuiID GetIDNoKeepAlive(
const void* ptr);
1417 template<
typename T,
typename SIGNED_T,
typename FLOAT_T>
IMGUI_API bool SliderBehaviorT(
const ImRect& bb,
ImGuiID id,
ImGuiDataType data_type, T* v,
const T v_min,
const T v_max,
const char* format,
float power,
ImGuiSliderFlags flags,
ImRect* out_grab_bb);
1431 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 graph_size);
1450 #ifdef IMGUI_ENABLE_TEST_ENGINE
1451 extern void ImGuiTestEngineHook_PreNewFrame(
ImGuiContext* ctx);
1452 extern void ImGuiTestEngineHook_PostNewFrame(
ImGuiContext* ctx);
1454 extern void ImGuiTestEngineHook_ItemInfo(
ImGuiContext* ctx,
ImGuiID id,
const char* label,
int flags);
1455 #define IMGUI_TEST_ENGINE_ITEM_INFO(_ID, _LABEL, _FLAGS) ImGuiTestEngineHook_ItemInfo(&g, _ID, _LABEL, _FLAGS) // Register status flags
1457 #define IMGUI_TEST_ENGINE_ITEM_INFO(_ID, _LABEL, _FLAGS) do { } while (0)
1461 #pragma clang diagnostic pop
1465 #pragma warning (pop)
int KeyMap[ImGuiKey_COUNT]
IMGUI_API bool InputScalarAsWidgetReplacement(const ImRect &bb, ImGuiID id, const char *label, ImGuiDataType data_type, void *data_ptr, const char *format)
ImVector< char > InitialText
ImGuiInputTextState InputTextState
ImGuiInputSource ActiveIdSource
IMGUI_API bool DragBehaviorT(ImGuiDataType data_type, T *v, float v_speed, const T v_min, const T v_max, const char *format, float power, ImGuiDragFlags flags)
static float ImSqrt(float x)
IMGUI_API ImVec2 CalcWindowExpectedSize(ImGuiWindow *window)
static bool ImIsPowerOfTwo(int v)
ImGuiCond ContentSizeCond
IMGUI_API void ColorPickerOptionsPopup(const float *ref_col, ImGuiColorEditFlags flags)
bool Contains(const ImRect &r) const
bool NavInitRequestFromMove
T * GetByIndex(ImPoolIdx n)
IMGUI_API void RenderColorRectWithAlphaCheckerboard(ImVec2 p_min, ImVec2 p_max, ImU32 fill_col, float grid_step, ImVec2 grid_off, float rounding=0.0f, int rounding_corners_flags=~0)
void ClipWithFull(const ImRect &r)
IMGUI_API void PushItemFlag(ImGuiItemFlags option, bool enabled)
static float ImPow(float x, float y)
@ ImGuiItemFlags_Disabled
IMGUI_API void FlattenIntoSingleLayer()
IMGUI_API void ClosePopupToLevel(int remaining, bool apply_focus_to_window_under)
T * GetByKey(ImGuiID key)
ImVector< ImGuiSettingsHandler > SettingsHandlers
IMGUI_API bool CollapseButton(ImGuiID id, const ImVec2 &pos)
int FramerateSecPerFrameIdx
IMGUI_API void SetCurrentFont(ImFont *font)
@ ImGuiNavDirSourceFlags_PadLStick
ImRect NavInitResultRectRel
IMGUI_API void RenderArrow(ImVec2 pos, ImGuiDir dir, float scale=1.0f)
ImVector< ImGuiColumnData > Columns
ImGuiPayload DragDropPayload
IMGUI_API void UpdateMouseMovingWindowNewFrame()
static float ImDot(const ImVec2 &a, const ImVec2 &b)
ImRect MenuBarRect() const
bool ActiveIdIsJustActivated
IMGUI_API ImGuiID GetID(const char *str_id)
@ ImGuiButtonFlags_AlignTextBaseLine
static T ImClamp(T v, T mn, T mx)
T * GetOrAddByKey(ImGuiID key)
int FocusIdxAllRequestCurrent
IMGUI_API int ImFormatString(char *buf, size_t buf_size, const char *fmt,...) IM_FMTARGS(3)
void Expand(const float amount)
ImGuiInputTextCallback UserCallback
float HoveredIdNotActiveTimer
IMGUI_API int ImStrnicmp(const char *str1, const char *str2, size_t count)
IMGUI_API void RenderArrowPointingAt(ImDrawList *draw_list, ImVec2 pos, ImVec2 half_sz, ImGuiDir direction, ImU32 col)
ImGuiID NavActivateDownId
@ ImGuiButtonFlags_NoNavFocus
ImGuiID HoveredIdPreviousFrame
@ ImGuiNavDirSourceFlags_Keyboard
static ImVec2 ImRotate(const ImVec2 &v, float cos_a, float sin_a)
IMGUI_API ImVec2 CalcItemSize(ImVec2 size, float default_x, float default_y)
IMGUI_API void RenderCheckMark(ImVec2 pos, ImU32 col, float sz)
IMGUI_API ImVec2 ImTriangleClosestPoint(const ImVec2 &a, const ImVec2 &b, const ImVec2 &c, const ImVec2 &p)
const IMGUI_API char * ImParseFormatFindStart(const char *format)
IMGUI_API void PushColumnClipRect(int column_index=-1)
ImGuiStyleMod(ImGuiStyleVar idx, float v)
@ ImGuiPlotType_Histogram
@ ImGuiNavMoveFlags_AllowCurrentNavId
IMGUI_API char * ImStrdup(const char *str)
IMGUI_API ImGuiWindow * FindWindowByName(const char *name)
ImGuiWindow * ActiveIdPreviousFrameWindow
int index_from_ptr(const T *it) const
float DragDropAcceptIdCurrRectSurface
ImDrawList OverlayDrawList
bool ActiveIdPreviousFrameHasBeenEdited
ImGuiID NextSelectedTabId
IMGUI_API void MarkItemEdited(ImGuiID id)
void TranslateY(float dy)
IMGUI_API bool BeginDragDropTargetCustom(const ImRect &bb, ImGuiID id)
int WantCaptureMouseNextFrame
@ ImGuiButtonFlags_PressedOnClick
int NavLayerActiveMaskNext
static float ImCos(float x)
@ ImGuiNavMoveFlags_WrapY
ImGuiCond SizeConstraintCond
@ ImGuiButtonFlags_Disabled
ImGuiNavLayer NavLayerCurrent
ImGuiCond SetWindowSizeAllowFlags
ImVec2 MenuBarOffsetMinVal
IMGUI_API bool ItemHoverable(const ImRect &bb, ImGuiID id)
float DragSpeedDefaultRatio
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)
@ ImGuiNavMoveFlags_AlsoScoreVisibleSet
float BackupCurrentLineTextBaseOffset
float PrevLineTextBaseOffset
IMGUI_API int ImParseFormatPrecision(const char *format, int default_value)
static int ImUpperPowerOfTwo(int v)
ImRect LastItemDisplayRect
ImGuiID ActiveIdPreviousFrame
ImVector< unsigned char > DragDropPayloadBufHeap
bool FrameScopePushedImplicitWindow
ImVector< ImGuiWindowSettings > SettingsWindows
@ ImGuiTabBarFlags_DockNode
static float ImFloor(float f)
ImGuiNavMoveResult NavMoveResultLocal
ImGuiNextWindowData NextWindowData
IMGUI_API ImGuiWindow * FindWindowByID(ImGuiID id)
ImGuiWindow * ParentWindow
@ ImGuiColorEditFlags__OptionsDefault
IMGUI_API int ImTextStrToUtf8(char *buf, int buf_size, const ImWchar *in_text, const ImWchar *in_text_end)
ImFont InputTextPasswordFont
IMGUI_API int ImFormatStringV(char *buf, size_t buf_size, const char *fmt, va_list args) IM_FMTLIST(3)
IMGUI_API int CalcTypematicPressedRepeatAmount(float t, float t_prev, float repeat_delay, float repeat_rate)
ImRect LastItemDisplayRect
ImGuiSelectableFlagsPrivate_
ImGuiID NavNextActivateId
@ ImGuiInputReadMode_Repeat
int FocusIdxAllRequestNext
bool ActiveIdHasBeenEdited
IMGUI_API void BeginColumns(const char *str_id, int count, ImGuiColumnsFlags flags=0)
const ImDrawListSharedData * _Data
ImGuiStorage * StateStorage
float NavInputs[ImGuiNavInput_COUNT]
ImVector< float > TextWrapPosStack
ImGuiCond SetWindowCollapsedAllowFlags
@ ImGuiTabBarFlags_SaveSettings
int ImGuiNavHighlightFlags
IMGUI_API ImGuiTabItem * TabBarFindTabByID(ImGuiTabBar *tab_bar, ImGuiID tab_id)
IMGUI_API void NavMoveRequestCancel()
@ ImGuiColumnsFlags_NoBorder
IMGUI_API bool IsDragDropPayloadBeingAccepted()
@ ImGuiNavDirSourceFlags_None
ImFont * GetDefaultFont()
IMGUI_API void ClearActiveID()
bool NavDisableMouseHover
IMGUI_API void RenderText(ImVec2 pos, const char *text, const char *text_end=NULL, bool hide_text_after_hash=true)
ImGuiItemHoveredDataBackup()
IMGUI_API bool DragBehavior(ImGuiID id, ImGuiDataType data_type, void *v, float v_speed, const void *v_min, const void *v_max, const char *format, float power, ImGuiDragFlags flags)
IMGUI_API bool SliderBehaviorT(const ImRect &bb, ImGuiID id, ImGuiDataType data_type, T *v, const T v_min, const T v_max, const char *format, float power, ImGuiSliderFlags flags, ImRect *out_grab_bb)
IMGUI_API void BringWindowToDisplayFront(ImGuiWindow *window)
ImGuiDragDropFlags DragDropAcceptFlags
ImPool< ImGuiTabBar > TabBars
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)
const IMGUI_API char * ImParseFormatFindEnd(const char *format)
@ ImGuiWindowFlags_MenuBar
@ ImGuiPopupPositionPolicy_ComboBox
IMGUI_API ImVec2 TabItemCalcSize(const char *label, bool has_close_button)
ImGuiID DragDropAcceptIdPrev
IMGUI_API void RenderNavHighlight(const ImRect &bb, ImGuiID id, ImGuiNavHighlightFlags flags=ImGuiNavHighlightFlags_TypeDefault)
@ ImGuiButtonFlags_PressedOnRelease
ImGuiColumnsSet * ColumnsSet
bool Overlaps(const ImRect &r) const
ImGuiWindow * NavWindowingTarget
int LogAutoExpandMaxDepth
void Remove(ImGuiID key, ImPoolIdx idx)
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 graph_size)
ImVector< ImGuiGroupData > GroupStack
bool NavHideHighlightOneFrame
ImVector< char > PrivateClipboard
ImVector< ImGuiWindow * > CurrentWindowStack
static T ImMin(T lhs, T rhs)
@ ImGuiInputSource_NavGamepad
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)
ImVector< ImGuiTabItem > Tabs
IMGUI_API void RenderMouseCursor(ImDrawList *draw_list, ImVec2 pos, float scale, ImGuiMouseCursor mouse_cursor=ImGuiMouseCursor_Arrow)
void TranslateX(float dx)
ImGuiWindow * GetCurrentWindow()
IMGUI_API ImGuiID GetHoveredID()
const IMGUI_API ImWchar * ImStrbolW(const ImWchar *buf_mid_line, const ImWchar *buf_begin)
float CurveTessellationTol
IMGUI_API bool IsPopupOpen(const char *str_id)
@ ImGuiItemFlags_NoNavDefaultFocus
@ ImGuiInputReadMode_RepeatFast
ImGuiItemStatusFlags LastItemStatusFlags
IMGUI_API void ImFontAtlasBuildRegisterDefaultCustomRects(ImFontAtlas *atlas)
IMGUI_API bool ArrowButtonEx(const char *str_id, ImGuiDir dir, ImVec2 size_arg, ImGuiButtonFlags flags)
ImVector< ImFont * > FontStack
IMGUI_API float CalcWrapWidthForPos(const ImVec2 &pos, float wrap_pos_x)
static float ImSaturate(float f)
bool VisibleTabWasSubmitted
void Translate(const ImVec2 &d)
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)
ImVec2 PlatformImeLastPos
ImGuiNavMoveFlags NavMoveRequestFlags
IMGUI_API bool IsKeyPressed(int user_key_index, bool repeat=true)
IMGUI_API bool IsClippedEx(const ImRect &bb, ImGuiID id, bool clip_even_when_logged)
bool ActiveIdAllowOverlap
static bool ImCharIsBlankW(unsigned int c)
static float ImCeil(float x)
IMGUI_API float GetWindowScrollMaxX(ImGuiWindow *window)
ImRect SizeConstraintRect
ImGuiCond NextTreeNodeOpenCond
int(* ImGuiInputTextCallback)(ImGuiInputTextCallbackData *data)
ImRect(float x1, float y1, float x2, float y2)
void Expand(const ImVec2 &amount)
ImGuiStb::STB_TexteditState StbState
ImGuiWindow * NavWindowingTargetAnim
@ ImGuiSelectableFlags_PressedOnClick
@ ImGuiNavMoveFlags_WrapX
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)
@ ImGuiButtonFlags_Repeat
float TitleBarHeight() const
IMGUI_API void ImStrncpy(char *dst, const char *src, size_t count)
@ ImGuiItemStatusFlags_None
int FocusIdxTabRequestCurrent
ImGuiWindow * NavWindowingList
static float ImAcos(float x)
@ ImGuiButtonFlags_NoKeyModifiers
float OffsetNormBeforeResize
b2Vec2 operator*(float s, const b2Vec2 &a)
@ ImGuiNavDirSourceFlags_PadDPad
ImVector< ImGuiWindow * > Windows
ImGuiWindow * HoveredRootWindow
@ ImGuiColumnsFlags_NoForceWithinWindow
@ ImGuiColumnsFlags_NoResize
@ ImGuiNavForward_ForwardActive
@ ImGuiNavMoveFlags_LoopX
IMGUI_API bool ButtonEx(const char *label, const ImVec2 &size_arg=ImVec2(0, 0), ImGuiButtonFlags flags=0)
@ ImGuiNavMoveFlags_LoopY
@ ImGuiButtonFlags_PressedOnDragDropHold
int WantCaptureKeyboardNextFrame
bool HasSelection() const
IMGUI_API ImU32 ImHash(const void *data, int data_size, ImU32 seed=0)
typedef void(GLAD_API_PTR *GLDEBUGPROC)(GLenum source
ImVec2 SizeFullAtLastBegin
IMGUI_API void UpdateWindowParentAndRootLinks(ImGuiWindow *window, ImGuiWindowFlags flags, ImGuiWindow *parent_window)
IMGUI_API void FocusPreviousWindowIgnoringOne(ImGuiWindow *ignore_window)
int FocusIdxTabRequestNext
ImRect(const ImVec2 &min, const ImVec2 &max)
IMGUI_API void SetFocusID(ImGuiID id, ImGuiWindow *window)
ImGuiTextBuffer LogClipboard
int HiddenFramesForResize
@ ImGuiButtonFlags_PressedOnClickRelease
IMGUI_API bool ItemAdd(const ImRect &bb, ImGuiID id, const ImRect *nav_bb=NULL)
IMGUI_API void TreePushRawID(ImGuiID id)
IMGUI_API ImGuiWindowSettings * FindWindowSettings(ImGuiID id)
static float ImFloorStd(float x)
ImVec4 ClipRectFullscreen
IMGUI_API ImRect GetWindowAllowedExtentRect(ImGuiWindow *window)
IMGUI_API void PopItemFlag()
void Add(const ImVec2 &p)
ImGuiWindow * ActiveIdWindow
IMGUI_API ImGuiContext * GImGui
ImGuiDragDropFlags DragDropSourceFlags
IMGUI_API void LogRenderedText(const ImVec2 *ref_pos, const char *text, const char *text_end=NULL)
@ ImGuiLayoutType_Vertical
b2Vec2 operator-(const b2Vec2 &a, const b2Vec2 &b)
Subtract two vectors component-wise.
ImGuiNavMoveResult NavMoveResultLocalVisibleSet
void Remove(ImGuiID key, const T *p)
IMGUI_API void UpdateHoveredWindowAndCaptureFlags()
bool DragDropWithinSourceOrTarget
IMGUI_API int GetInt(ImGuiID key, int default_val=0) const
ImVec2 ScrollbarClickDeltaToGrabCenter
ImGuiInputSource NavInputSource
IMGUI_API ImVec2 GetNavInputAmount2d(ImGuiNavDirSourceFlags dir_sources, ImGuiInputReadMode mode, float slow_factor=0.0f, float fast_factor=0.0f)
@ ImGuiTabBarFlags_IsFocused
IMGUI_API bool IsWindowNavFocusable(ImGuiWindow *window)
ImVec2 SizeContentsExplicit
IMGUI_API float GetWindowScrollMaxY(ImGuiWindow *window)
ImVector< ImGuiWindow * > WindowsSortBuffer
ImGuiLayoutType LayoutType
static float ImLinearSweep(float current, float target, float speed)
void Add(const ImRect &r)
@ ImGuiInputSource_NavKeyboard
#define IM_ARRAYSIZE(_ARR)
IMGUI_API void SetHoveredID(ImGuiID id)
ImGuiID BackupActiveIdIsAlive
IMGUI_API bool BeginPopupEx(ImGuiID id, ImGuiWindowFlags extra_flags)
IMGUI_API void ImFontAtlasBuildMultiplyCalcLookupTable(unsigned char out_table[256], float in_multiply_factor)
int GetTabOrder(const ImGuiTabItem *tab) const
ImU32 TreeDepthMayJumpToParentOnPop
@ ImGuiColumnsFlags_GrowParentContentsSize
ImVector< ImDrawList * > Layers[2]
IMGUI_API void ActivateItem(ImGuiID id)
void reserve(int new_capacity)
IMGUI_API void SetNavID(ImGuiID id, int nav_layer)
const IMGUI_API char * FindRenderedTextEnd(const char *text, const char *text_end=NULL)
ImPoolIdx GetIndex(const T *p) const
@ ImGuiButtonFlags_AllowItemOverlap
ImGuiID DragDropAcceptIdCurr
IMGUI_API ImGuiWindow * GetFrontMostPopupModal()
IMGUI_API void SetActiveID(ImGuiID id, ImGuiWindow *window)
ImGuiColorEditFlags ColorEditOptions
@ ImGuiNavHighlightFlags_None
bool IsKeyPressedMap(ImGuiKey key, bool repeat=true)
IMGUI_API void TabBarCloseTab(ImGuiTabBar *tab_bar, ImGuiTabItem *tab)
ImVector< ImGuiTabBar * > CurrentTabBar
static double ImAtof(const char *s)
@ ImGuiItemStatusFlags_HoveredRect
ImGuiID NavActivatePressedId
@ ImGuiNavForward_ForwardQueued
bool HoveredIdAllowOverlap
IMGUI_API bool TreeNodeBehaviorIsOpen(ImGuiID id, ImGuiTreeNodeFlags flags=0)
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)
IMGUI_API void StartMouseMovingWindow(ImGuiWindow *window)
IMGUI_API void SetNavIDWithRectRel(ImGuiID id, int nav_layer, const ImRect &rect_rel)
@ ImGuiInputReadMode_Pressed
void(* ReadLineFn)(ImGuiContext *ctx, ImGuiSettingsHandler *handler, void *entry, const char *line)
static T ImMax(T lhs, T rhs)
ImRect TitleBarRect() const
IMGUI_API bool InputTextEx(const char *label, char *buf, int buf_size, const ImVec2 &size_arg, ImGuiInputTextFlags flags, ImGuiInputTextCallback callback=NULL, void *user_data=NULL)
bool Contains(const ImVec2 &p) const
IMGUI_API void FocusableItemUnregister(ImGuiWindow *window)
IMGUI_API ImGuiWindowSettings * CreateNewWindowSettings(const char *name)
ImVector< ImGuiWindow * > ChildWindows
IMGUI_API void RenderRectFilledRangeH(ImDrawList *draw_list, const ImRect &rect, ImU32 col, float x_start_norm, float x_end_norm, float rounding)
ImGuiNavMoveResult NavMoveResultOther
const IMGUI_API char * ImParseFormatTrimDecorations(const char *format, char *buf, int buf_size)
static float ImFmod(float x, float y)
@ ImGuiSeparatorFlags_Horizontal
float NavWindowingHighlightAlpha
static float ImInvLength(const ImVec2 &lhs, float fail_value)
ImGuiSizeCallback SizeCallback
IMGUI_API void ClearDragDrop()
ImGuiMouseCursor MouseCursor
IMGUI_API void RenderFrameBorder(ImVec2 p_min, ImVec2 p_max, float rounding=0.0f)
IMGUI_API bool TabItemLabelAndCloseButton(ImDrawList *draw_list, const ImRect &bb, ImGuiTabItemFlags flags, const char *label, ImGuiID tab_id, ImGuiID close_button_id)
ImVector< ImWchar > TextW
static float ImFabs(float x)
IMGUI_API void ColorEditOptionsPopup(const float *col, ImGuiColorEditFlags flags)
ImVector< ImGuiPopupRef > BeginPopupStack
int ActiveIdAllowNavDirFlags
IMGUI_API int ImStrlenW(const ImWchar *str)
IMGUI_API int ImTextCountUtf8BytesFromStr(const ImWchar *in_text, const ImWchar *in_text_end)
@ ImGuiItemStatusFlags_Edited
IMGUI_API bool TreeNodeBehavior(ImGuiID id, ImGuiTreeNodeFlags flags, const char *label, const char *label_end=NULL)
b2Vec2 operator+(const b2Vec2 &a, const b2Vec2 &b)
Add two vectors component-wise.
IMGUI_API void MarkIniSettingsDirty()
static void ImSwap(T &a, T &b)
ImGuiNavForward NavMoveRequestForward
IMGUI_API void NavMoveRequestTryWrapping(ImGuiWindow *window, ImGuiNavMoveFlags move_flags)
ImRect NavScoringRectScreen
ImGuiMenuColumns MenuColumns
IMGUI_API int ImStricmp(const char *str1, const char *str2)
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)
ImVector< ImFont * > Fonts
IMGUI_API void RenderFrame(ImVec2 p_min, ImVec2 p_max, ImU32 fill_col, bool border=true, float rounding=0.0f)
IMGUI_API void Indent(float indent_w=0.0f)
IMGUI_API void ColorTooltip(const char *text, const float *col, ImGuiColorEditFlags flags)
static float ImSin(float x)
IMGUI_API bool ImTriangleContainsPoint(const ImVec2 &a, const ImVec2 &b, const ImVec2 &c, const ImVec2 &p)
@ ImGuiNavHighlightFlags_TypeThin
const IMGUI_API char * ImStrchrRange(const char *str_begin, const char *str_end, char c)
static float ImAtan2(float y, float x)
float FramerateSecPerFrame[120]
ImGuiTextBuffer SettingsIniData
ImGuiID ReorderRequestTabId
IMGUI_API bool IsWindowChildOf(ImGuiWindow *window, ImGuiWindow *potential_parent)
float CurrentLineTextBaseOffset
IMGUI_API int * GetIntRef(ImGuiID key, int default_val=0)
IMGUI_API int ImTextCountUtf8BytesFromChar(const char *in_text, const char *in_text_end)
ImVector< ImGuiColorMod > ColorModifiers
@ ImGuiNavHighlightFlags_NoRounding
IMGUI_API void SetWindowScrollY(ImGuiWindow *window, float new_scroll_y)
ImGuiStyleMod(ImGuiStyleVar idx, ImVec2 v)
float CalcFontSize() const
IMGUI_API bool NavMoveRequestButNoResultYet()
int ImGuiNavDirSourceFlags
#define IM_PLACEMENT_NEW(_PTR)
void * SizeCallbackUserData
IMGUI_API void ImFontAtlasBuildFinish(ImFontAtlas *atlas)
@ ImGuiNavHighlightFlags_TypeDefault
IMGUI_API void BeginTooltipEx(ImGuiWindowFlags extra_flags, bool override_previous_tooltip=true)
@ ImGuiInputReadMode_Released
IMGUI_API void NavMoveRequestForward(ImGuiDir move_dir, ImGuiDir clip_dir, const ImRect &bb_rel, ImGuiNavMoveFlags move_flags)
static T ImLerp(T a, T b, float t)
IMGUI_API void EndColumns()
IMGUI_API FILE * ImFileOpen(const char *filename, const char *file_open_mode)
IMGUI_API void SetInt(ImGuiID key, int val)
bool IsNavInputDown(ImGuiNavInput n)
IMGUI_API void PushMultiItemsWidths(int components, float width_full=0.0f)
void resize(int new_size)
IMGUI_API float GetNavInputAmount(ImGuiNavInput n, ImGuiInputReadMode mode)
@ ImGuiSelectableFlags_NoHoldingActiveID
IMGUI_API void ImFontAtlasBuildPackCustomRects(ImFontAtlas *atlas, void *spc)
@ ImGuiInputReadMode_RepeatSlow
IMGUI_API void VerticalSeparator()
ImGuiCond SetWindowPosAllowFlags
IMGUI_API char * ImStrdupcpy(char *dst, size_t *p_dst_size, const char *str)
@ ImGuiNavHighlightFlags_AlwaysDraw
short BeginOrderWithinParent
ImVector< ImGuiWindow * > WindowsFocusOrder
float MenuBarHeight() const
IMGUI_API ImVec2 ImLineClosestPoint(const ImVec2 &a, const ImVec2 &b, const ImVec2 &p)
ImGuiStyleMod(ImGuiStyleVar idx, int v)
ImGuiWindow * RootWindowForNav
@ ImGuiSliderFlags_Vertical
char TempBuffer[1024 *3+1]
ImDrawDataBuilder DrawDataBuilder
IMGUI_API void Initialize(ImGuiContext *context)
IMGUI_API bool ButtonBehavior(const ImRect &bb, ImGuiID id, bool *out_hovered, bool *out_held, ImGuiButtonFlags flags=0)
IMGUI_API void NavInitWindow(ImGuiWindow *window, bool force_reinit)
@ ImGuiSeparatorFlags_None
bool IsNavInputPressed(ImGuiNavInput n, ImGuiInputReadMode mode)
IMGUI_API void RenderPixelEllipsis(ImDrawList *draw_list, ImVec2 pos, int count, ImU32 col)
IMGUI_API void * ImFileLoadToMemory(const char *filename, const char *file_open_mode, size_t *out_file_size=NULL, int padding_bytes=0)
const IMGUI_API char * ImStreolRange(const char *str, const char *str_end)
@ ImGuiItemFlags_ButtonRepeat
bool NavMoveFromClampedRefRect
ImVector< ImGuiID > IDStack
bool SelectedAllMouseLock
IMGUI_API void ItemSize(const ImVec2 &size, float text_offset_y=0.0f)
ImRect DragDropTargetRect
IMGUI_API void TabItemBackground(ImDrawList *draw_list, const ImRect &bb, ImGuiTabItemFlags flags, ImU32 col)
IMGUI_API ImVec2 FindBestWindowPosForPopup(ImGuiWindow *window)
IMGUI_API int ImTextCountCharsFromUtf8(const char *in_text, const char *in_text_end)
@ ImGuiItemStatusFlags_HasDisplayRect
ImVec2 BackupCursorMaxPos
ImGuiID ScalarAsInputTextId
IMGUI_API void BringWindowToDisplayBack(ImGuiWindow *window)
@ ImGuiPopupPositionPolicy_Default
IMGUI_API void TabBarQueueChangeTabOrder(ImGuiTabBar *tab_bar, const ImGuiTabItem *tab, int dir)
int WantTextInputNextFrame
@ ImGuiButtonFlags_FlattenChildren
@ ImGuiItemFlags_NoTabStop
ImGuiWindow * RootWindowForTitleBarHighlight
IMGUI_API void SetWindowScrollX(ImGuiWindow *window, float new_scroll_x)
static bool ImCharIsBlankA(char c)
IMGUI_API void RenderBullet(ImVec2 pos)
IMGUI_API void FocusWindow(ImGuiWindow *window)
IMGUI_API bool SliderBehavior(const ImRect &bb, ImGuiID id, ImGuiDataType data_type, void *v, const void *v_min, const void *v_max, const char *format, float power, ImGuiSliderFlags flags, ImRect *out_grab_bb)
bool NavWindowingToggleLayer
bool BackupActiveIdPreviousFrameIsAlive
ImVector< ImGuiPopupRef > OpenPopupStack
IMGUI_API T RoundScalarWithFormatT(const char *format, ImGuiDataType data_type, T v)
IMGUI_API void RenderTextWrapped(ImVec2 pos, const char *text, const char *text_end, float wrap_width)
@ ImGuiColumnsFlags_NoPreserveWidths
bool FontAtlasOwnedByContext
@ ImGuiButtonFlags_NoHoldingActiveID
ImVec2 ActiveIdClickOffset
float FramerateSecPerFrameAccum
@ ImGuiWindowFlags_NoTitleBar
IMGUI_API bool BeginTabBarEx(ImGuiTabBar *tab_bar, const ImRect &bb, ImGuiTabBarFlags flags)
ImGuiInputTextFlags UserFlags
void Reserve(int capacity)
IMGUI_API float SliderCalcRatioFromValueT(ImGuiDataType data_type, T v, T v_min, T v_max, float power, float linear_zero_pos)
IMGUI_API ImGuiSettingsHandler * FindSettingsHandler(const char *type_name)
IMGUI_API int ImTextCharFromUtf8(unsigned int *out_char, const char *in_text, const char *in_text_end)
ImVector< float > ItemWidthStack
IMGUI_API void ClosePopupsOverWindow(ImGuiWindow *ref_window)
IMGUI_API void Scrollbar(ImGuiLayoutType direction)
@ ImGuiLayoutType_Horizontal
bool IsNavInputPressedAnyOfTwo(ImGuiNavInput n1, ImGuiNavInput n2, ImGuiInputReadMode mode)
void ClipWith(const ImRect &r)
ImGuiWindow * CurrentWindow
ImGuiLayoutType ParentLayoutType
int DragDropAcceptFrameCount
@ ImGuiTabBarFlags_DockNodeIsDockSpace
ImRect ContentsRegionRect
IMGUI_API void ImFontAtlasBuildMultiplyRectAlpha8(const unsigned char table[256], unsigned char *pixels, int x, int y, int w, int h, int stride)
ImGuiContext(ImFontAtlas *shared_font_atlas)
ImGuiStorage StateStorage
IMGUI_API void OpenPopupEx(ImGuiID id)
bool DragCurrentAccumDirty
@ ImGuiDragFlags_Vertical
static float ImLengthSqr(const ImVec2 &lhs)
void(* ImGuiSizeCallback)(ImGuiSizeCallbackData *data)
ImDrawListSharedData DrawListSharedData
IMGUI_API bool TabItemEx(ImGuiTabBar *tab_bar, const char *label, bool *p_open, ImGuiTabItemFlags flags)
const IMGUI_API char * ImStristr(const char *haystack, const char *haystack_end, const char *needle, const char *needle_end)
@ ImGuiSelectableFlags_DrawFillAvailWidth
ImVector< ImGuiStyleMod > StyleModifiers
ImVector< char > TempBuffer
IMGUI_API bool ImFontAtlasBuildWithStbTruetype(ImFontAtlas *atlas)
ImGuiWindow * GetCurrentWindowRead()
ImGuiWindow * NavLastChildNavWindow
int DragDropSourceFrameCount
@ ImGuiInputReadMode_Down
@ ImGuiSelectableFlags_PressedOnRelease
IMGUI_API void Shutdown(ImGuiContext *context)
bool ActiveIdPreviousFrameIsAlive
void(* WriteAllFn)(ImGuiContext *ctx, ImGuiSettingsHandler *handler, ImGuiTextBuffer *out_buf)
ImGuiWindow * HoveredWindow
ImVec2 BackupCurrentLineSize
IMGUI_API ImGuiDir ImGetDirQuadrantFromDelta(float dx, float dy)
IMGUI_API void BringWindowToFocusFront(ImGuiWindow *window)
ImGuiItemStatusFlags LastItemStatusFlags
geometry_msgs::TransformStamped t
ImVec2 ScrollTargetCenterRatio
IMGUI_API void UpdateMouseMovingWindowEndFrame()
@ ImGuiButtonFlags_DontClosePopups
ImGuiDir AutoPosLastDirection
ImVector< ImGuiTabBarSortItem > TabSortByWidthBuffer
IMGUI_API void ImStrTrimBlanks(char *str)
TFSIMD_FORCE_INLINE Vector3 operator/(const Vector3 &v, const tfScalar &s)
IMGUI_API void KeepAliveID(ImGuiID id)
unsigned char DragDropPayloadBufLocal[8]
@ ImGuiItemFlags_Default_
ImVector< ImGuiItemFlags > ItemFlagsStack
@ ImGuiButtonFlags_PressedOnDoubleClick
IMGUI_API void TabBarRemoveTab(ImGuiTabBar *tab_bar, ImGuiID tab_id)
@ ImGuiItemFlags_SelectableDontClosePopup
IMGUI_API void ImFontAtlasBuildSetupFont(ImFontAtlas *atlas, ImFont *font, ImFontConfig *font_config, float ascent, float descent)
IMGUI_API bool FocusableItemRegister(ImGuiWindow *window, ImGuiID id, bool tab_stop=true)
static ImVec2 ImMul(const ImVec2 &lhs, const ImVec2 &rhs)
@ ImGuiSeparatorFlags_Vertical
short BeginOrderWithinContext
IMGUI_API int ImTextStrFromUtf8(ImWchar *buf, int buf_size, const char *in_text, const char *in_text_end, const char **in_remaining=NULL)
ImVector< ImGuiColumnsSet > ColumnsStorage
ImGuiWindow * MovingWindow
IMGUI_API bool CloseButton(ImGuiID id, const ImVec2 &pos, float radius)
mvsim
Author(s):
autogenerated on Wed May 28 2025 02:13:07