13 #error Must include imgui.h before imgui_internal.h 20 #pragma warning (push) 21 #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) 25 #pragma clang diagnostic push 26 #pragma clang diagnostic ignored "-Wunused-function" // for stb_textedit.h 27 #pragma clang diagnostic ignored "-Wmissing-prototypes" // for stb_textedit.h 28 #pragma clang diagnostic ignored "-Wold-style-cast" 61 #undef STB_TEXTEDIT_STRING 62 #undef STB_TEXTEDIT_CHARTYPE 63 #define STB_TEXTEDIT_STRING ImGuiTextEditState 64 #define STB_TEXTEDIT_CHARTYPE ImWchar 65 #define STB_TEXTEDIT_GETWIDTH_NEWLINE -1.0f 66 #include "stb_textedit.h" 82 #define IM_ARRAYSIZE(_ARR) ((int)(sizeof(_ARR)/sizeof(*_ARR))) 83 #define IM_PI 3.14159265358979323846f 84 #define IM_OFFSETOF(_TYPE,_ELM) ((size_t)&(((_TYPE*)0)->_ELM)) 95 IMGUI_API void*
ImFileLoadToMemory(
const char* filename,
const char* file_open_mode,
int* out_file_size = NULL,
int padding_bytes = 0);
97 static inline bool ImCharIsSpace(
int c) {
return c ==
' ' || c ==
'\t' || c == 0x3000; }
98 static inline bool ImIsPowerOfTwo(
int v) {
return v != 0 && (v & (v - 1)) == 0; }
99 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; }
113 IMGUI_API const char*
ImStristr(
const char* haystack,
const char* haystack_end,
const char* needle,
const char* needle_end);
119 #ifdef IMGUI_DEFINE_MATH_OPERATORS 120 static inline ImVec2 operator*(
const ImVec2& lhs,
const float rhs) {
return ImVec2(lhs.
x*rhs, lhs.
y*rhs); }
121 static inline ImVec2 operator/(
const ImVec2& lhs,
const float rhs) {
return ImVec2(lhs.
x/rhs, lhs.
y/rhs); }
126 static inline ImVec2& operator+=(
ImVec2& lhs,
const ImVec2& rhs) { lhs.
x += rhs.
x; lhs.
y += rhs.
y;
return lhs; }
127 static inline ImVec2& operator-=(
ImVec2& lhs,
const ImVec2& rhs) { lhs.
x -= rhs.
x; lhs.
y -= rhs.
y;
return lhs; }
128 static inline ImVec2& operator*=(
ImVec2& lhs,
const float rhs) { lhs.
x *= rhs; lhs.
y *= rhs;
return lhs; }
129 static inline ImVec2& operator/=(
ImVec2& lhs,
const float rhs) { lhs.
x /= rhs; lhs.
y /= rhs;
return lhs; }
133 static inline int ImMin(
int lhs,
int rhs) {
return lhs < rhs ? lhs : rhs; }
134 static inline int ImMax(
int lhs,
int rhs) {
return lhs >= rhs ? lhs : rhs; }
135 static inline float ImMin(
float lhs,
float rhs) {
return lhs < rhs ? lhs : rhs; }
136 static inline float ImMax(
float lhs,
float rhs) {
return lhs >= rhs ? lhs : rhs; }
139 static inline int ImClamp(
int v,
int mn,
int mx) {
return (v < mn) ? mn : (v > mx) ? mx : v; }
140 static inline float ImClamp(
float v,
float mn,
float mx) {
return (v < mn) ? mn : (v > mx) ? mx : v; }
142 static inline float ImSaturate(
float f) {
return (f < 0.0f) ? 0.0f : (f > 1.0f) ? 1.0f : f; }
143 static inline void ImSwap(
float& a,
float& b) {
float tmp = a; a = b; b = tmp; }
144 static inline int ImLerp(
int a,
int b,
float t) {
return (
int)(a + (b - a) * t); }
145 static inline float ImLerp(
float a,
float b,
float t) {
return a + (b - a) * t; }
148 static inline float ImLengthSqr(
const ImVec2& lhs) {
return lhs.
x*lhs.
x + lhs.
y*lhs.
y; }
149 static inline float ImLengthSqr(
const ImVec4& lhs) {
return lhs.
x*lhs.
x + lhs.
y*lhs.
y + lhs.
z*lhs.
z + lhs.
w*lhs.
w; }
150 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 / sqrtf(d);
return fail_value; }
151 static inline float ImFloor(
float f) {
return (
float)(int)f; }
152 static inline ImVec2 ImFloor(
const ImVec2& v) {
return ImVec2((
float)(
int)v.
x, (
float)(
int)v.
y); }
153 static inline float ImDot(
const ImVec2& a,
const ImVec2& b) {
return a.
x * b.
x + a.
y * b.
y; }
154 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); }
158 #ifdef IMGUI_DEFINE_PLACEMENT_NEW 159 struct ImPlacementNewDummy {};
160 inline void*
operator new(size_t, ImPlacementNewDummy,
void* ptr) {
return ptr; }
161 inline void operator delete(
void*, ImPlacementNewDummy,
void*) {}
162 #define IM_PLACEMENT_NEW(_PTR) new(ImPlacementNewDummy(), _PTR) 258 ImRect() : Min(FLT_MAX,FLT_MAX), Max(-FLT_MAX,-FLT_MAX) {}
261 ImRect(
float x1,
float y1,
float x2,
float y2) : Min(x1, y1), Max(x2, y2) {}
274 void Add(
const ImVec2& rhs) {
if (Min.
x > rhs.
x) Min.
x = rhs.
x;
if (Min.
y > rhs.
y) Min.
y = rhs.
y;
if (Max.
x < rhs.
x) Max.
x = rhs.
x;
if (Max.
y < rhs.
y) Max.
y = rhs.
y; }
276 void Expand(
const float amount) { Min.
x -= amount; Min.
y -= amount; Max.
x += amount; Max.
y += amount; }
277 void Expand(
const ImVec2& amount) { Min.
x -= amount.
x; Min.
y -= amount.
y; Max.
x += amount.
x; Max.
y += amount.
y; }
280 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; }
283 if (!on_edge && Contains(p))
285 if (p.
x > Max.
x) p.
x = Max.
x;
286 else if (p.
x < Min.
x) p.
x = Min.
x;
287 if (p.
y > Max.
y) p.
y = Max.
y;
288 else if (p.
y < Min.
y) p.
y = Min.
y;
304 union {
int BackupInt[2];
float BackupFloat[2]; };
338 float Pos[8], NextWidths[8];
341 void Update(
int count,
float spacing,
bool clear);
342 float DeclColumns(
float w0,
float w1,
float w2);
343 float CalcExtraSpace(
float avail_w);
363 void CursorClamp() { StbState.cursor = ImMin(StbState.cursor, CurLenW); StbState.select_start = ImMin(StbState.select_start, CurLenW); StbState.select_end = ImMin(StbState.select_end, CurLenW); }
364 bool HasSelection()
const {
return StbState.select_start != StbState.select_end; }
365 void ClearSelection() { StbState.select_start = StbState.select_end = StbState.cursor; }
366 void SelectAll() { StbState.select_start = 0; StbState.select_end = CurLenW; StbState.cursor = StbState.select_end; StbState.has_preferred_x =
false; }
367 void OnKeyPressed(
int key);
495 float FramerateSecPerFrame[120];
501 char TempBuffer[1024*3+1];
507 FontSize = FontBaseSize = 0.0f;
508 FontTexUvWhitePixel =
ImVec2(0.0f, 0.0f);
512 FrameCountEnded = FrameCountRendered = -1;
513 CurrentWindow = NULL;
515 HoveredWindow = NULL;
516 HoveredRootWindow = NULL;
518 HoveredIdAllowOverlap =
false;
519 HoveredIdPreviousFrame = 0;
521 ActiveIdPreviousFrame = 0;
522 ActiveIdIsAlive =
false;
523 ActiveIdIsJustActivated =
false;
524 ActiveIdAllowOverlap =
false;
525 ActiveIdClickOffset =
ImVec2(-1,-1);
526 ActiveIdWindow = NULL;
528 MovedWindowMoveId = 0;
529 SettingsDirtyTimer = 0.0f;
531 SetNextWindowPosVal =
ImVec2(0.0f, 0.0f);
532 SetNextWindowSizeVal =
ImVec2(0.0f, 0.0f);
533 SetNextWindowCollapsedVal =
false;
534 SetNextWindowPosCond = 0;
535 SetNextWindowSizeCond = 0;
536 SetNextWindowContentSizeCond = 0;
537 SetNextWindowCollapsedCond = 0;
538 SetNextWindowSizeConstraintRect =
ImRect();
539 SetNextWindowSizeConstraintCallback = NULL;
540 SetNextWindowSizeConstraintCallbackUserData = NULL;
541 SetNextWindowSizeConstraint =
false;
542 SetNextWindowFocus =
false;
543 SetNextTreeNodeOpenVal =
false;
544 SetNextTreeNodeOpenCond = 0;
546 ScalarAsInputTextId = 0;
548 DragCurrentValue = 0.0f;
549 DragLastMouseDelta =
ImVec2(0.0f, 0.0f);
550 DragSpeedDefaultRatio = 1.0f / 100.0f;
551 DragSpeedScaleSlow = 1.0f / 100.0f;
552 DragSpeedScaleFast = 10.0f;
553 ScrollbarClickDeltaToGrabCenter =
ImVec2(0.0f, 0.0f);
554 TooltipOverrideCount = 0;
555 OsImePosRequest = OsImePosSet =
ImVec2(-1.0f, -1.0f);
557 ModalWindowDarkeningRatio = 0.0f;
560 memset(MouseCursorData, 0,
sizeof(MouseCursorData));
566 LogAutoExpandMaxDepth = 2;
568 memset(FramerateSecPerFrame, 0,
sizeof(FramerateSecPerFrame));
569 FramerateSecPerFrameIdx = 0;
570 FramerateSecPerFrameAccum = 0.0f;
571 WantCaptureMouseNextFrame = WantCaptureKeyboardNextFrame = WantTextInputNextFrame = -1;
572 memset(TempBuffer, 0,
sizeof(TempBuffer));
618 int StackSizesBackup[6];
637 CursorPos = CursorPosPrevLine = CursorStartPos = CursorMaxPos =
ImVec2(0.0f, 0.0f);
638 CurrentLineHeight = PrevLineHeight = 0.0f;
639 CurrentLineTextBaseOffset = PrevLineTextBaseOffset = 0.0f;
644 LastItemRectHoveredRect =
false;
645 MenuBarAppending =
false;
646 MenuBarOffsetX = 0.0f;
652 memset(StackSizesBackup, 0,
sizeof(StackSizesBackup));
656 ColumnsOffsetX = 0.0f;
659 ColumnsMinX = ColumnsMaxX = 0.0f;
660 ColumnsStartPosY = 0.0f;
661 ColumnsStartMaxPosX = 0.0f;
662 ColumnsCellMinY = ColumnsCellMaxY = 0.0f;
735 ImGuiID GetID(
const char* str,
const char* str_end = NULL);
737 ImGuiID GetIDNoKeepAlive(
const char* str,
const char* str_end = NULL);
822 IMGUI_API bool SliderFloatN(
const char* label,
float* v,
int components,
float v_min,
float v_max,
const char* display_format,
float power);
823 IMGUI_API bool SliderIntN(
const char* label,
int* v,
int components,
int v_min,
int v_max,
const char* display_format);
826 IMGUI_API bool DragFloatN(
const char* label,
float* v,
int components,
float v_speed,
float v_min,
float v_max,
const char* display_format,
float power);
827 IMGUI_API bool DragIntN(
const char* label,
int* v,
int components,
float v_speed,
int v_min,
int v_max,
const char* display_format);
842 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);
859 #pragma clang diagnostic pop 863 #pragma warning (pop) IMGUI_API bool BeginCombo(const char *label, const char *preview_value, ImVec2 popup_size=ImVec2(0.0f, 0.0f))
void Add(const ImVec2 &rhs)
ImRect SetNextWindowSizeConstraintRect
IMGUI_API bool SliderBehavior(const ImRect &frame_bb, ImGuiID id, float *v, float v_min, float v_max, float power, int decimal_precision, ImGuiSliderFlags flags=0)
ImGuiWindow * RootNonPopupWindow
int FocusIdxTabRequestNext
ImGuiCond SetNextWindowCollapsedCond
bool HasSelection() const
IMGUI_API void RenderText(ImVec2 pos, const char *text, const char *text_end=NULL, bool hide_text_after_hash=true)
ImGuiCond SetWindowPosAllowFlags
bool ActiveIdIsJustActivated
bool Contains(const ImRect &r) const
ImRect TitleBarRect() const
ImGuiCond SetNextTreeNodeOpenCond
float ModalWindowDarkeningRatio
IMGUI_API int ImFormatStringV(char *buf, int buf_size, const char *fmt, va_list args) IM_FMTLIST(3)
ImGuiWindow * ParentWindow
IMGUI_API void PushColumnClipRect(int column_index=-1)
ImVec2 ActiveIdClickOffset
IMGUI_API void ColorEditOptionsPopup(const float *col, ImGuiColorEditFlags flags)
IMGUI_API float RoundScalar(float value, int decimal_precision)
IMGUI_API bool IsPopupOpen(ImGuiID id)
ImGuiStyleMod(ImGuiStyleVar idx, int v)
IMGUI_API const char * FindRenderedTextEnd(const char *text, const char *text_end=NULL)
int WantCaptureMouseNextFrame
IMGUI_API void PopItemFlag()
ImGuiLayoutType LayoutType
ImVec2 SetNextWindowContentSizeVal
bool SetNextWindowCollapsedVal
IMGUI_API void PushMultiItemsWidths(int components, float width_full=0.0f)
IMGUI_API void RenderFrameBorder(ImVec2 p_min, ImVec2 p_max, float rounding=0.0f)
bool ActiveIdAllowOverlap
IMGUI_API void Initialize()
ImVec2 ScrollbarClickDeltaToGrabCenter
int FramerateSecPerFrameIdx
IMGUI_API void SetHoveredID(ImGuiID id)
ImDrawList OverlayDrawList
int FocusIdxAllRequestCurrent
bool BackupActiveIdIsAlive
IMGUI_API int ImStrnicmp(const char *str1, const char *str2, int count)
IMGUI_API bool FocusableItemRegister(ImGuiWindow *window, ImGuiID id, bool tab_stop=true)
ImVector< ImGuiIniData > Settings
ImGuiID MovedWindowMoveId
float TitleBarHeight() const
int(* ImGuiTextEditCallback)(ImGuiTextEditCallbackData *data)
float FramerateSecPerFrameAccum
ImVector< ImGuiItemFlags > ItemFlagsStack
IMGUI_API void ImFontAtlasBuildMultiplyRectAlpha8(const unsigned char table[256], unsigned char *pixels, int x, int y, int w, int h, int stride)
IMGUI_API int ImTextStrToUtf8(char *buf, int buf_size, const ImWchar *in_text, const ImWchar *in_text_end)
ImVec2 SetNextWindowSizeVal
ImGuiColumnsFlags ColumnsFlags
float BackupCurrentLineTextBaseOffset
ImVec2 SetNextWindowPosVal
ImGuiStorage StateStorage
IMGUI_API bool TreeNodeBehavior(ImGuiID id, ImGuiTreeNodeFlags flags, const char *label, const char *label_end=NULL)
IMGUI_API void ImFontAtlasBuildSetupFont(ImFontAtlas *atlas, ImFont *font, ImFontConfig *font_config, float ascent, float descent)
IMGUI_API void ImFontAtlasBuildMultiplyCalcLookupTable(unsigned char out_table[256], float in_multiply_factor)
IMGUI_API int ImStrlenW(const ImWchar *str)
bool LastItemRectHoveredRect
IMGUI_API ImVec2 ImTriangleClosestPoint(const ImVec2 &a, const ImVec2 &b, const ImVec2 &c, const ImVec2 &p)
ImGuiColorEditFlags ColorEditOptions
IMGUI_API void ClosePopup(ImGuiID id)
ImVector< ImGuiWindow * > CurrentWindowStack
ImVector< ImFont * > FontStack
IMGUI_API bool DragBehavior(const ImRect &frame_bb, ImGuiID id, float *v, float v_speed, float v_min, float v_max, int decimal_precision, float power)
IMGUI_API void BeginColumns(const char *id, int count, ImGuiColumnsFlags flags=0)
ImGuiTextBuffer * LogClipboard
IMGUI_API void ItemSize(const ImRect &bb, float text_offset_y=0.0f)
IMGUI_API bool IsClippedEx(const ImRect &bb, const ImGuiID *id, bool clip_even_when_logged)
ImDrawData RenderDrawData
ImRect MenuBarRect() const
ImGuiCond SetNextWindowSizeCond
ImGuiSimpleColumns MenuColumns
IMGUI_API void RenderRectFilledRangeH(ImDrawList *draw_list, const ImRect &rect, ImU32 col, float x_start_norm, float x_end_norm, float rounding)
bool SetNextTreeNodeOpenVal
IMGUI_API FILE * ImFileOpen(const char *filename, const char *file_open_mode)
float CurrentLineTextBaseOffset
float DragSpeedDefaultRatio
IMGUI_API ImU32 ImHash(const void *data, int data_size, ImU32 seed=0)
IMGUI_API bool ItemAdd(const ImRect &bb, const ImGuiID *id)
ImVector< ImGuiWindow * > Windows
int WantTextInputNextFrame
ImVec2 SizeContentsExplicit
ImGuiStb::STB_TexteditState StbState
IMGUI_API void KeepAliveID(ImGuiID id)
void Expand(const float amount)
IMGUI_API void * ImFileLoadToMemory(const char *filename, const char *file_open_mode, int *out_file_size=NULL, int padding_bytes=0)
ImVector< char > TempTextBuffer
ImFont InputTextPasswordFont
IMGUI_API bool SliderIntN(const char *label, int *v, int components, int v_min, int v_max, const char *display_format)
ImGuiTextEditState InputTextState
IMGUI_API void ColorTooltip(const char *text, const float *col, ImGuiColorEditFlags flags)
IMGUI_API void TreePushRawID(ImGuiID id)
IMGUI_API void PushItemFlag(ImGuiItemFlags option, bool enabled)
ImVector< ImGuiColMod > ColorModifiers
ImGuiWindow * MovedWindow
IMGUI_API int ImStricmp(const char *str1, const char *str2)
void ClipWith(const ImRect &clip)
IMGUI_API bool InputIntN(const char *label, int *v, int components, ImGuiInputTextFlags extra_flags)
IMGUI_API void FocusWindow(ImGuiWindow *window)
ImGuiWindow * ActiveIdWindow
IMGUI_API bool ImTriangleContainsPoint(const ImVec2 &a, const ImVec2 &b, const ImVec2 &c, const ImVec2 &p)
ImVector< ImGuiStyleMod > StyleModifiers
bool Contains(const ImVec2 &p) const
ImRect ContentsRegionRect
ImGuiID HoveredIdPreviousFrame
void(* ImGuiSizeConstraintCallback)(ImGuiSizeConstraintCallbackData *data)
void Translate(const ImVec2 &v)
IMGUI_API bool InputScalarAsWidgetReplacement(const ImRect &aabb, const char *label, ImGuiDataType data_type, void *data_ptr, ImGuiID id, int decimal_precision)
IMGUI_API void ImFontAtlasBuildFinish(ImFontAtlas *atlas)
ImGuiID ActiveIdPreviousFrame
IMGUI_API void VerticalSeparator()
ImGuiCond SetNextWindowContentSizeCond
IMGUI_API void EndCombo()
float CalcFontSize() const
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)
ImVec2 ScrollTargetCenterRatio
ImGuiWindow * HoveredRootWindow
int FocusIdxTabRequestCurrent
IMGUI_API ImGuiWindow * GetParentWindow()
IMGUI_API int ImTextStrFromUtf8(ImWchar *buf, int buf_size, const char *in_text, const char *in_text_end, const char **in_remaining=NULL)
IMGUI_API void FocusableItemUnregister(ImGuiWindow *window)
ImRect(float x1, float y1, float x2, float y2)
ImVector< ImGuiColumnData > ColumnsData
IMGUI_API void RenderCollapseTriangle(ImVec2 pos, bool is_open, float scale=1.0f)
ImGuiID ScalarAsInputTextId
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)
float PrevLineTextBaseOffset
IMGUI_API void RenderCheckMark(ImVec2 pos, ImU32 col)
ImGuiSelectableFlagsPrivate_
IMGUI_API void RenderTextWrapped(ImVec2 pos, const char *text, const char *text_end, float wrap_width)
IMGUI_API void RenderBullet(ImVec2 pos)
ImRect(const ImVec2 &min, const ImVec2 &max)
ImVector< ImGuiPopupRef > OpenPopupStack
float ColumnsStartMaxPosX
IMGUI_API bool ButtonEx(const char *label, const ImVec2 &size_arg=ImVec2(0, 0), ImGuiButtonFlags flags=0)
ImVector< char > PrivateClipboard
IMGUI_API int ImFormatString(char *buf, int buf_size, const char *fmt,...) IM_FMTARGS(3)
ImGuiCond SetWindowCollapsedAllowFlags
IMGUI_API bool SliderFloatN(const char *label, float *v, int components, float v_min, float v_max, const char *display_format, float power)
ImGuiWindow * CurrentWindow
IMGUI_API int ImTextCountUtf8BytesFromStr(const ImWchar *in_text, const ImWchar *in_text_end)
ImGuiSizeConstraintCallback SetNextWindowSizeConstraintCallback
ImGuiCond SetNextWindowPosCond
int LogAutoExpandMaxDepth
IMGUI_API void ImFontAtlasBuildPackCustomRects(ImFontAtlas *atlas, void *spc)
bool SetNextWindowSizeConstraint
IMGUI_API void RenderFrame(ImVec2 p_min, ImVec2 p_max, ImU32 fill_col, bool border=true, float rounding=0.0f)
IMGUI_API const ImWchar * ImStrbolW(const ImWchar *buf_mid_line, const ImWchar *buf_begin)
ImGuiStyleMod(ImGuiStyleVar idx, ImVec2 v)
IMGUI_API ImGuiWindow * FindWindowByName(const char *name)
ImVec2 SetNextWindowPosPivot
IMGUI_API char * ImStrdup(const char *str)
IMGUI_API bool DragIntN(const char *label, int *v, int components, float v_speed, int v_min, int v_max, const char *display_format)
IMGUI_API const char * ImStristr(const char *haystack, const char *haystack_end, const char *needle, const char *needle_end)
IMGUI_API ImVec2 ImLineClosestPoint(const ImVec2 &a, const ImVec2 &b, const ImVec2 &p)
ImVector< ImGuiWindow * > WindowsSortBuffer
IMGUI_API bool DragFloatN(const char *label, float *v, int components, float v_speed, float v_min, float v_max, const char *display_format, float power)
IMGUI_API void EndColumns()
int FocusIdxAllRequestNext
IMGUI_API bool InputScalarEx(const char *label, ImGuiDataType data_type, void *data_ptr, void *step_ptr, void *step_fast_ptr, const char *scalar_format, ImGuiInputTextFlags extra_flags)
IMGUI_API bool ButtonBehavior(const ImRect &bb, ImGuiID id, bool *out_hovered, bool *out_held, ImGuiButtonFlags flags=0)
ImVector< float > TextWrapPosStack
IMGUI_API void EndFrame()
IMGUI_API int CalcTypematicPressedRepeatAmount(float t, float t_prev, float repeat_delay, float repeat_rate)
IMGUI_API bool ItemHoverable(const ImRect &bb, ImGuiID id)
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)
ImGuiStyleMod(ImGuiStyleVar idx, float v)
IMGUI_API void SetActiveID(ImGuiID id, ImGuiWindow *window)
IMGUI_API bool CloseButton(ImGuiID id, const ImVec2 &pos, float radius)
bool HoveredIdAllowOverlap
int WantCaptureKeyboardNextFrame
ImVec2 GetClosestPoint(ImVec2 p, bool on_edge) const
IMGUI_API bool TreeNodeBehaviorIsOpen(ImGuiID id, ImGuiTreeNodeFlags flags=0)
IMGUI_API bool ImFontAtlasBuildWithStbTruetype(ImFontAtlas *atlas)
IMGUI_API float CalcWrapWidthForPos(const ImVec2 &pos, float wrap_pos_x)
IMGUI_API bool InputFloatN(const char *label, float *v, int components, int decimal_precision, ImGuiInputTextFlags extra_flags)
float MenuBarHeight() const
IMGUI_API void ImFontAtlasBuildRegisterDefaultCustomRects(ImFontAtlas *atlas)
IMGUI_API int ImTextCharFromUtf8(unsigned int *out_char, const char *in_text, const char *in_text_end)
ImVector< ImGuiGroupData > GroupStack
IMGUI_API ImGuiID GetID(const char *str_id)
void Expand(const ImVec2 &amount)
IMGUI_API bool InputTextEx(const char *label, char *buf, int buf_size, const ImVec2 &size_arg, ImGuiInputTextFlags flags, ImGuiTextEditCallback callback=NULL, void *user_data=NULL)
ImVector< ImGuiID > IDStack
ImGuiMouseCursor MouseCursor
bool SelectedAllMouseLock
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)
IMGUI_API int ImTextCountCharsFromUtf8(const char *in_text, const char *in_text_end)
ImGuiWindow * GetCurrentWindow()
void * SetNextWindowSizeConstraintCallbackUserData
IMGUI_API ImVec2 CalcItemSize(ImVec2 size, float default_x, float default_y)
ImVector< char > InitialText
IMGUI_API ImGuiContext * GImGui
ImVec2 DragLastMouseDelta
ImVec2 BackupCursorMaxPos
IMGUI_API void OpenPopupEx(ImGuiID id, bool reopen_existing)
IMGUI_API void ClearActiveID()
ImGuiStorage * StateStorage
void Add(const ImRect &rhs)
ImVec2 FontTexUvWhitePixel
ImGuiWindow * HoveredWindow
bool Overlaps(const ImRect &r) const
float BackupCurrentLineHeight
IMGUI_API bool BeginPopupEx(ImGuiID id, ImGuiWindowFlags extra_flags)
IMGUI_API int ParseFormatPrecision(const char *fmt, int default_value)
ImGuiWindow * GetCurrentWindowRead()
ImVector< ImGuiPopupRef > CurrentPopupStack
ImVector< float > ItemWidthStack
ImGuiCond SetWindowSizeAllowFlags
ImVector< ImGuiWindow * > ChildWindows