11 #error Must include imgui.h before imgui_internal.h 18 #pragma warning (push) 19 #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) 23 #pragma clang diagnostic push 24 #pragma clang diagnostic ignored "-Wunused-function" // for stb_textedit.h 25 #pragma clang diagnostic ignored "-Wmissing-prototypes" // for stb_textedit.h 26 #pragma clang diagnostic ignored "-Wold-style-cast" 45 typedef int ImGuiLayoutType;
46 typedef int ImGuiButtonFlags;
47 typedef int ImGuiTreeNodeFlags;
48 typedef int ImGuiSliderFlags;
57 #undef STB_TEXTEDIT_STRING 58 #undef STB_TEXTEDIT_CHARTYPE 59 #define STB_TEXTEDIT_STRING ImGuiTextEditState 60 #define STB_TEXTEDIT_CHARTYPE ImWchar 61 #define STB_TEXTEDIT_GETWIDTH_NEWLINE -1.0f 62 #include "stb_textedit.h" 76 #define IM_ARRAYSIZE(_ARR) ((int)(sizeof(_ARR)/sizeof(*_ARR))) 77 #define IM_PI 3.14159265358979323846f 80 IMGUI_API
int ImTextStrToUtf8(
char* buf,
int buf_size,
const ImWchar* in_text,
const ImWchar* in_text_end);
81 IMGUI_API
int ImTextCharFromUtf8(
unsigned int* out_char,
const char* in_text,
const char* in_text_end);
82 IMGUI_API
int ImTextStrFromUtf8(ImWchar* buf,
int buf_size,
const char* in_text,
const char* in_text_end,
const char** in_remaining = NULL);
83 IMGUI_API
int ImTextCountCharsFromUtf8(
const char* in_text,
const char* in_text_end);
84 IMGUI_API
int ImTextCountUtf8BytesFromStr(
const ImWchar* in_text,
const ImWchar* in_text_end);
87 IMGUI_API ImU32 ImHash(
const void* data,
int data_size, ImU32 seed = 0);
88 IMGUI_API
void* ImLoadFileToMemory(
const char* filename,
const char* file_open_mode,
int* out_file_size = NULL,
int padding_bytes = 0);
90 static inline bool ImCharIsSpace(
int c) {
return c ==
' ' || c ==
'\t' || c == 0x3000; }
91 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; }
94 IMGUI_API
int ImStricmp(
const char* str1,
const char* str2);
95 IMGUI_API
int ImStrnicmp(
const char* str1,
const char* str2,
int count);
96 IMGUI_API
char* ImStrdup(
const char* str);
97 IMGUI_API
int ImStrlenW(
const ImWchar* str);
98 IMGUI_API
const ImWchar*ImStrbolW(
const ImWchar* buf_mid_line,
const ImWchar* buf_begin);
99 IMGUI_API
const char* ImStristr(
const char* haystack,
const char* haystack_end,
const char* needle,
const char* needle_end);
100 IMGUI_API
int ImFormatString(
char* buf,
int buf_size,
const char* fmt, ...) IM_PRINTFARGS(3);
101 IMGUI_API
int ImFormatStringV(
char* buf,
int buf_size, const
char* fmt, va_list args);
105 #ifdef IMGUI_DEFINE_MATH_OPERATORS 106 static inline ImVec2 operator*(
const ImVec2& lhs,
const float rhs) {
return ImVec2(lhs.x*rhs, lhs.y*rhs); }
107 static inline ImVec2 operator/(
const ImVec2& lhs,
const float rhs) {
return ImVec2(lhs.x/rhs, lhs.y/rhs); }
112 static inline ImVec2& operator+=(
ImVec2& lhs,
const ImVec2& rhs) { lhs.x += rhs.x; lhs.y += rhs.y;
return lhs; }
113 static inline ImVec2& operator-=(
ImVec2& lhs,
const ImVec2& rhs) { lhs.x -= rhs.x; lhs.y -= rhs.y;
return lhs; }
114 static inline ImVec2& operator*=(
ImVec2& lhs,
const float rhs) { lhs.x *= rhs; lhs.y *= rhs;
return lhs; }
115 static inline ImVec2& operator/=(
ImVec2& lhs,
const float rhs) { lhs.x /= rhs; lhs.y /= rhs;
return lhs; }
116 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); }
119 static inline int ImMin(
int lhs,
int rhs) {
return lhs < rhs ? lhs : rhs; }
120 static inline int ImMax(
int lhs,
int rhs) {
return lhs >= rhs ? lhs : rhs; }
121 static inline float ImMin(
float lhs,
float rhs) {
return lhs < rhs ? lhs : rhs; }
122 static inline float ImMax(
float lhs,
float rhs) {
return lhs >= rhs ? lhs : rhs; }
123 static inline ImVec2 ImMin(
const ImVec2& lhs,
const ImVec2& rhs) {
return ImVec2(ImMin(lhs.x,rhs.x), ImMin(lhs.y,rhs.y)); }
124 static inline ImVec2 ImMax(
const ImVec2& lhs,
const ImVec2& rhs) {
return ImVec2(ImMax(lhs.x,rhs.x), ImMax(lhs.y,rhs.y)); }
125 static inline int ImClamp(
int v,
int mn,
int mx) {
return (v < mn) ? mn : (v > mx) ? mx : v; }
126 static inline float ImClamp(
float v,
float mn,
float mx) {
return (v < mn) ? mn : (v > mx) ? mx : v; }
128 static inline float ImSaturate(
float f) {
return (f < 0.0f) ? 0.0f : (f > 1.0f) ? 1.0f : f; }
129 static inline float ImLerp(
float a,
float b,
float t) {
return a + (b - a) * t; }
130 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); }
131 static inline float ImLengthSqr(
const ImVec2& lhs) {
return lhs.x*lhs.x + lhs.y*lhs.y; }
132 static inline float ImLengthSqr(
const ImVec4& lhs) {
return lhs.x*lhs.x + lhs.y*lhs.y + lhs.z*lhs.z + lhs.w*lhs.w; }
133 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; }
134 static inline float ImFloor(
float f) {
return (
float)(int)f; }
135 static inline ImVec2 ImFloor(
ImVec2 v) {
return ImVec2((
float)(
int)v.x, (
float)(
int)v.y); }
139 #ifdef IMGUI_DEFINE_PLACEMENT_NEW 140 struct ImPlacementNewDummy {};
141 inline void*
operator new(size_t, ImPlacementNewDummy,
void* ptr) {
return ptr; }
142 inline void operator delete(
void*, ImPlacementNewDummy,
void*) {}
143 #define IM_PLACEMENT_NEW(_PTR) new(ImPlacementNewDummy(), _PTR) 150 enum ImGuiButtonFlags_
152 ImGuiButtonFlags_Repeat = 1 << 0,
153 ImGuiButtonFlags_PressedOnClickRelease = 1 << 1,
154 ImGuiButtonFlags_PressedOnClick = 1 << 2,
155 ImGuiButtonFlags_PressedOnRelease = 1 << 3,
156 ImGuiButtonFlags_PressedOnDoubleClick = 1 << 4,
157 ImGuiButtonFlags_FlattenChilds = 1 << 5,
158 ImGuiButtonFlags_DontClosePopups = 1 << 6,
159 ImGuiButtonFlags_Disabled = 1 << 7,
160 ImGuiButtonFlags_AlignTextBaseLine = 1 << 8,
161 ImGuiButtonFlags_NoKeyModifiers = 1 << 9,
162 ImGuiButtonFlags_AllowOverlapMode = 1 << 10
165 enum ImGuiSliderFlags_
167 ImGuiSliderFlags_Vertical = 1 << 0
170 enum ImGuiSelectableFlagsPrivate_
173 ImGuiSelectableFlags_Menu = 1 << 3,
174 ImGuiSelectableFlags_MenuItem = 1 << 4,
175 ImGuiSelectableFlags_Disabled = 1 << 5,
176 ImGuiSelectableFlags_DrawFillAvailWidth = 1 << 6
180 enum ImGuiLayoutType_
182 ImGuiLayoutType_Vertical,
183 ImGuiLayoutType_Horizontal
189 ImGuiPlotType_Histogram
205 ImRect() : Min(FLT_MAX,FLT_MAX), Max(-FLT_MAX,-FLT_MAX) {}
207 ImRect(
const ImVec4& v) : Min(v.x, v.y), Max(v.z, v.w) {}
208 ImRect(
float x1,
float y1,
float x2,
float y2) : Min(x1, y1), Max(x2, y2) {}
210 ImVec2 GetCenter()
const {
return ImVec2((Min.x+Max.x)*0.5f, (Min.y+Max.y)*0.5f); }
211 ImVec2 GetSize()
const {
return ImVec2(Max.x-Min.x, Max.y-Min.y); }
212 float GetWidth()
const {
return Max.x-Min.x; }
213 float GetHeight()
const {
return Max.y-Min.y; }
214 ImVec2 GetTL()
const {
return Min; }
217 ImVec2 GetBR()
const {
return Max; }
218 bool Contains(
const ImVec2& p)
const {
return p.x >= Min.x && p.y >= Min.y && p.x < Max.x && p.y < Max.y; }
219 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; }
220 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; }
221 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; }
222 void Add(
const ImRect& rhs) {
if (Min.x > rhs.Min.x) Min.x = rhs.Min.x;
if (Min.y > rhs.Min.y) Min.y = rhs.Min.y;
if (Max.x < rhs.Max.x) Max.x = rhs.Max.x;
if (Max.y < rhs.Max.y) Max.y = rhs.Max.y; }
223 void Expand(
const float amount) { Min.x -= amount; Min.y -= amount; Max.x += amount; Max.y += amount; }
224 void Expand(
const ImVec2& amount) { Min.x -= amount.x; Min.y -= amount.y; Max.x += amount.x; Max.y += amount.y; }
225 void Reduce(
const ImVec2& amount) { Min.x += amount.x; Min.y += amount.y; Max.x -= amount.x; Max.y -= amount.y; }
226 void Clip(
const ImRect& clip) {
if (Min.x < clip.Min.x) Min.x = clip.Min.x;
if (Min.y < clip.Min.y) Min.y = clip.Min.y;
if (Max.x > clip.Max.x) Max.x = clip.Max.x;
if (Max.y > clip.Max.y) Max.y = clip.Max.y; }
227 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; }
230 if (!on_edge && Contains(p))
232 if (p.x > Max.x) p.x = Max.x;
233 else if (p.x < Min.x) p.x = Min.x;
234 if (p.y > Max.y) p.y = Max.y;
235 else if (p.y < Min.y) p.y = Min.y;
258 ImVec2 BackupCursorMaxPos;
260 float BackupCurrentLineHeight;
261 float BackupCurrentLineTextBaseOffset;
262 float BackupLogLinePosY;
278 float Width, NextWidth;
279 float Pos[8], NextWidths[8];
282 void Update(
int count,
float spacing,
bool clear);
283 float DeclColumns(
float w0,
float w1,
float w2);
284 float CalcExtraSpace(
float avail_w);
294 int CurLenA, CurLenW;
300 bool SelectedAllMouseLock;
303 void CursorAnimReset() { CursorAnim = -0.30f; }
304 void CursorClamp() { StbState.cursor = ImMin(StbState.cursor, CurLenW); StbState.select_start = ImMin(StbState.select_start, CurLenW); StbState.select_end = ImMin(StbState.select_end, CurLenW); }
305 bool HasSelection()
const {
return StbState.select_start != StbState.select_end; }
306 void ClearSelection() { StbState.select_start = StbState.select_end = StbState.cursor; }
307 void SelectAll() { StbState.select_start = 0; StbState.select_end = CurLenW; StbState.cursor = StbState.select_end; StbState.has_preferred_x =
false; }
308 void OnKeyPressed(
int key);
324 ImGuiMouseCursor Type;
337 ImGuiID ParentMenuSet;
340 ImGuiPopupRef(ImGuiID
id,
ImGuiWindow* parent_window, ImGuiID parent_menu_set,
const ImVec2& mouse_pos) { PopupID = id; Window = NULL; ParentWindow = parent_window; ParentMenuSet = parent_menu_set; MousePosOnOpen = mouse_pos; }
352 ImVec2 FontTexUvWhitePixel;
357 int FrameCountRendered;
366 bool HoveredIdAllowOverlap;
367 ImGuiID HoveredIdPreviousFrame;
369 ImGuiID ActiveIdPreviousFrame;
370 bool ActiveIdIsAlive;
371 bool ActiveIdIsJustActivated;
372 bool ActiveIdAllowOverlap;
373 ImVec2 ActiveIdClickOffset;
376 ImGuiID MovedWindowMoveId;
378 float SettingsDirtyTimer;
386 ImVec2 SetNextWindowPosVal;
387 ImVec2 SetNextWindowSizeVal;
388 ImVec2 SetNextWindowContentSizeVal;
389 bool SetNextWindowCollapsedVal;
390 ImGuiSetCond SetNextWindowPosCond;
391 ImGuiSetCond SetNextWindowSizeCond;
392 ImGuiSetCond SetNextWindowContentSizeCond;
393 ImGuiSetCond SetNextWindowCollapsedCond;
394 ImRect SetNextWindowSizeConstraintRect;
395 ImGuiSizeConstraintCallback SetNextWindowSizeConstraintCallback;
396 void* SetNextWindowSizeConstraintCallbackUserData;
397 bool SetNextWindowSizeConstraint;
398 bool SetNextWindowFocus;
399 bool SetNextTreeNodeOpenVal;
400 ImGuiSetCond SetNextTreeNodeOpenCond;
405 float ModalWindowDarkeningRatio;
407 ImGuiMouseCursor MouseCursor;
412 ImFont InputTextPasswordFont;
413 ImGuiID ScalarAsInputTextId;
415 float DragCurrentValue;
416 ImVec2 DragLastMouseDelta;
417 float DragSpeedDefaultRatio;
418 float DragSpeedScaleSlow;
419 float DragSpeedScaleFast;
420 ImVec2 ScrollbarClickDeltaToGrabCenter;
422 char* PrivateClipboard;
423 ImVec2 OsImePosRequest, OsImePosSet;
430 int LogAutoExpandMaxDepth;
433 float FramerateSecPerFrame[120];
434 int FramerateSecPerFrameIdx;
435 float FramerateSecPerFrameAccum;
436 int CaptureMouseNextFrame;
437 int CaptureKeyboardNextFrame;
438 char TempBuffer[1024*3+1];
444 FontSize = FontBaseSize = 0.0f;
445 FontTexUvWhitePixel =
ImVec2(0.0f, 0.0f);
449 FrameCountEnded = FrameCountRendered = -1;
450 CurrentWindow = NULL;
451 FocusedWindow = NULL;
452 HoveredWindow = NULL;
453 HoveredRootWindow = NULL;
455 HoveredIdAllowOverlap =
false;
456 HoveredIdPreviousFrame = 0;
458 ActiveIdPreviousFrame = 0;
459 ActiveIdIsAlive =
false;
460 ActiveIdIsJustActivated =
false;
461 ActiveIdAllowOverlap =
false;
462 ActiveIdClickOffset =
ImVec2(-1,-1);
463 ActiveIdWindow = NULL;
465 MovedWindowMoveId = 0;
466 SettingsDirtyTimer = 0.0f;
468 SetNextWindowPosVal =
ImVec2(0.0f, 0.0f);
469 SetNextWindowSizeVal =
ImVec2(0.0f, 0.0f);
470 SetNextWindowCollapsedVal =
false;
471 SetNextWindowPosCond = 0;
472 SetNextWindowSizeCond = 0;
473 SetNextWindowContentSizeCond = 0;
474 SetNextWindowCollapsedCond = 0;
475 SetNextWindowFocus =
false;
476 SetNextWindowSizeConstraintCallback = NULL;
477 SetNextWindowSizeConstraintCallbackUserData = NULL;
478 SetNextTreeNodeOpenVal =
false;
479 SetNextTreeNodeOpenCond = 0;
481 ScalarAsInputTextId = 0;
482 DragCurrentValue = 0.0f;
483 DragLastMouseDelta =
ImVec2(0.0f, 0.0f);
484 DragSpeedDefaultRatio = 0.01f;
485 DragSpeedScaleSlow = 0.01f;
486 DragSpeedScaleFast = 10.0f;
487 ScrollbarClickDeltaToGrabCenter =
ImVec2(0.0f, 0.0f);
488 memset(Tooltip, 0,
sizeof(Tooltip));
489 PrivateClipboard = NULL;
490 OsImePosRequest = OsImePosSet =
ImVec2(-1.0f, -1.0f);
492 ModalWindowDarkeningRatio = 0.0f;
493 OverlayDrawList._OwnerName =
"##Overlay";
494 MouseCursor = ImGuiMouseCursor_Arrow;
495 memset(MouseCursorData, 0,
sizeof(MouseCursorData));
501 LogAutoExpandMaxDepth = 2;
503 memset(FramerateSecPerFrame, 0,
sizeof(FramerateSecPerFrame));
504 FramerateSecPerFrameIdx = 0;
505 FramerateSecPerFrameAccum = 0.0f;
506 CaptureMouseNextFrame = CaptureKeyboardNextFrame = -1;
507 memset(TempBuffer, 0,
sizeof(TempBuffer));
519 float CurrentLineHeight;
520 float CurrentLineTextBaseOffset;
521 float PrevLineHeight;
522 float PrevLineTextBaseOffset;
527 bool LastItemHoveredAndUsable;
528 bool LastItemHoveredRect;
529 bool MenuBarAppending;
530 float MenuBarOffsetX;
533 ImGuiLayoutType LayoutType;
538 bool AllowKeyboardFocus;
545 ImGuiColorEditMode ColorEditMode;
546 int StackSizesBackup[6];
549 float ColumnsOffsetX;
554 float ColumnsStartPosY;
555 float ColumnsCellMinY;
556 float ColumnsCellMaxY;
557 bool ColumnsShowBorders;
558 ImGuiID ColumnsSetID;
563 CursorPos = CursorPosPrevLine = CursorStartPos = CursorMaxPos =
ImVec2(0.0f, 0.0f);
564 CurrentLineHeight = PrevLineHeight = 0.0f;
565 CurrentLineTextBaseOffset = PrevLineTextBaseOffset = 0.0f;
569 LastItemRect =
ImRect(0.0f,0.0f,0.0f,0.0f);
570 LastItemHoveredAndUsable = LastItemHoveredRect =
false;
571 MenuBarAppending =
false;
572 MenuBarOffsetX = 0.0f;
574 LayoutType = ImGuiLayoutType_Vertical;
576 ButtonRepeat =
false;
577 AllowKeyboardFocus =
true;
579 ColorEditMode = ImGuiColorEditMode_RGB;
580 memset(StackSizesBackup, 0,
sizeof(StackSizesBackup));
583 ColumnsOffsetX = 0.0f;
586 ColumnsMinX = ColumnsMaxX = 0.0f;
587 ColumnsStartPosY = 0.0f;
588 ColumnsCellMinY = ColumnsCellMaxY = 0.0f;
589 ColumnsShowBorders =
true;
599 ImGuiWindowFlags Flags;
600 int IndexWithinParent;
606 ImVec2 SizeContentsExplicit;
607 ImRect ContentsRegionRect;
612 ImVec2 ScrollTargetCenterRatio;
613 bool ScrollbarX, ScrollbarY;
623 int AutoFitFramesX, AutoFitFramesY;
624 bool AutoFitOnlyGrows;
625 int AutoPosLastDirection;
627 int SetWindowPosAllowFlags;
628 int SetWindowSizeAllowFlags;
629 int SetWindowCollapsedAllowFlags;
630 bool SetWindowPosCenterWanted;
637 float ItemWidthDefault;
640 float FontWindowScale;
647 int FocusIdxAllCounter;
648 int FocusIdxTabCounter;
649 int FocusIdxAllRequestCurrent;
650 int FocusIdxTabRequestCurrent;
651 int FocusIdxAllRequestNext;
652 int FocusIdxTabRequestNext;
658 ImGuiID GetID(
const char* str,
const char* str_end = NULL);
659 ImGuiID GetID(
const void* ptr);
661 ImRect Rect()
const {
return ImRect(Pos.x, Pos.y, Pos.x+Size.x, Pos.y+Size.y); }
662 float CalcFontSize()
const {
return GImGui->FontBaseSize * FontWindowScale; }
663 float TitleBarHeight()
const {
return (Flags & ImGuiWindowFlags_NoTitleBar) ? 0.0f : CalcFontSize() + GImGui->Style.FramePadding.y * 2.0f; }
664 ImRect TitleBarRect()
const {
return ImRect(Pos,
ImVec2(Pos.x + SizeFull.x, Pos.y + TitleBarHeight())); }
665 float MenuBarHeight()
const {
return (Flags & ImGuiWindowFlags_MenuBar) ? CalcFontSize() + GImGui->Style.FramePadding.y * 2.0f : 0.0f; }
666 ImRect MenuBarRect()
const {
float y1 = Pos.y + TitleBarHeight();
return ImRect(Pos.x, y1, Pos.x + SizeFull.x, y1 + MenuBarHeight()); }
681 inline ImGuiWindow* GetCurrentWindow() {
ImGuiContext& g = *GImGui; g.CurrentWindow->Accessed =
true;
return g.CurrentWindow; }
683 IMGUI_API
ImGuiWindow* FindWindowByName(
const char* name);
686 IMGUI_API
void EndFrame();
688 IMGUI_API
void SetActiveID(ImGuiID
id,
ImGuiWindow* window);
689 IMGUI_API
void SetHoveredID(ImGuiID
id);
690 IMGUI_API
void KeepAliveID(ImGuiID
id);
692 IMGUI_API
void ItemSize(
const ImVec2& size,
float text_offset_y = 0.0f);
693 IMGUI_API
void ItemSize(
const ImRect& bb,
float text_offset_y = 0.0f);
694 IMGUI_API
bool ItemAdd(
const ImRect& bb,
const ImGuiID*
id);
695 IMGUI_API
bool IsClippedEx(
const ImRect& bb,
const ImGuiID*
id,
bool clip_even_when_logged);
696 IMGUI_API
bool IsHovered(
const ImRect& bb, ImGuiID
id,
bool flatten_childs =
false);
697 IMGUI_API
bool FocusableItemRegister(
ImGuiWindow* window,
bool is_active,
bool tab_stop =
true);
698 IMGUI_API
void FocusableItemUnregister(
ImGuiWindow* window);
699 IMGUI_API
ImVec2 CalcItemSize(
ImVec2 size,
float default_x,
float default_y);
700 IMGUI_API
float CalcWrapWidthForPos(
const ImVec2& pos,
float wrap_pos_x);
702 IMGUI_API
void OpenPopupEx(
const char* str_id,
bool reopen_existing);
704 inline IMGUI_API ImU32 GetColorU32(ImGuiCol idx,
float alpha_mul) {
ImVec4 c = GImGui->Style.Colors[idx]; c.w *= GImGui->Style.Alpha * alpha_mul;
return ImGui::ColorConvertFloat4ToU32(c); }
705 inline IMGUI_API ImU32 GetColorU32(
const ImVec4& col) {
ImVec4 c = col; c.w *= GImGui->Style.Alpha;
return ImGui::ColorConvertFloat4ToU32(c); }
710 IMGUI_API
void RenderText(
ImVec2 pos,
const char* text,
const char* text_end = NULL,
bool hide_text_after_hash =
true);
711 IMGUI_API
void RenderTextWrapped(
ImVec2 pos,
const char* text,
const char* text_end,
float wrap_width);
712 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, ImGuiAlign align = ImGuiAlign_Default,
const ImVec2* clip_min = NULL,
const ImVec2* clip_max = NULL);
713 IMGUI_API
void RenderFrame(
ImVec2 p_min,
ImVec2 p_max, ImU32 fill_col,
bool border =
true,
float rounding = 0.0f);
714 IMGUI_API
void RenderCollapseTriangle(
ImVec2 pos,
bool is_open,
float scale = 1.0f,
bool shadow =
false);
715 IMGUI_API
void RenderBullet(
ImVec2 pos);
716 IMGUI_API
void RenderCheckMark(
ImVec2 pos, ImU32 col);
717 IMGUI_API
const char* FindRenderedTextEnd(
const char* text,
const char* text_end = NULL);
719 IMGUI_API
bool ButtonBehavior(
const ImRect& bb, ImGuiID
id,
bool* out_hovered,
bool* out_held, ImGuiButtonFlags flags = 0);
720 IMGUI_API
bool ButtonEx(
const char* label,
const ImVec2& size_arg =
ImVec2(0,0), ImGuiButtonFlags flags = 0);
721 IMGUI_API
bool CloseButton(ImGuiID
id,
const ImVec2& pos,
float radius);
723 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);
724 IMGUI_API
bool SliderFloatN(
const char* label,
float* v,
int components,
float v_min,
float v_max,
const char* display_format,
float power);
725 IMGUI_API
bool SliderIntN(
const char* label,
int* v,
int components,
int v_min,
int v_max,
const char* display_format);
727 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);
728 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);
729 IMGUI_API
bool DragIntN(
const char* label,
int* v,
int components,
float v_speed,
int v_min,
int v_max,
const char* display_format);
731 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);
732 IMGUI_API
bool InputFloatN(
const char* label,
float* v,
int components,
int decimal_precision, ImGuiInputTextFlags extra_flags);
733 IMGUI_API
bool InputIntN(
const char* label,
int* v,
int components, ImGuiInputTextFlags extra_flags);
734 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);
735 IMGUI_API
bool InputScalarAsWidgetReplacement(
const ImRect& aabb,
const char* label, ImGuiDataType data_type,
void* data_ptr, ImGuiID
id,
int decimal_precision);
737 IMGUI_API
bool TreeNodeBehavior(ImGuiID
id, ImGuiTreeNodeFlags flags,
const char* label,
const char* label_end = NULL);
738 IMGUI_API
bool TreeNodeBehaviorIsOpen(ImGuiID
id, ImGuiTreeNodeFlags flags = 0);
739 IMGUI_API
void TreePushRawID(ImGuiID
id);
741 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);
743 IMGUI_API
int ParseFormatPrecision(
const char* fmt,
int default_value);
744 IMGUI_API
float RoundScalar(
float value,
int decimal_precision);
749 #pragma clang diagnostic pop 753 #pragma warning (pop) Definition: imgui_internal.h:313
Definition: imgui_internal.h:241
constexpr const T & max(const T &lhs, const T &rhs)
Returns the greatest value of the two given.
Definition: algorithm.hpp:212
Definition: imgui_internal.h:513
Definition: imgui.cpp:7351
Definition: imgui_internal.h:595
Definition: imgui_internal.h:274
constexpr const T & min(const T &lhs, const T &rhs)
Returns the smallest value of the two given.
Definition: algorithm.hpp:261
Definition: datamodel.hpp:22
Definition: imgui_internal.h:248
Definition: imgui_internal.h:322
Definition: imgui_internal.h:312
Definition: imgui-SFML.cpp:41
Definition: imgui_internal.h:255
Definition: imgui_internal.h:200
Definition: imgui_internal.h:344
Definition: imgui_internal.h:267
Definition: imgui_internal.h:288