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.0f) ? 0.0f : (f > 1.0f) ? 1.0f : 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]; }
258 void Remove(
ImGuiID key, ImPoolIdx idx) { Data[idx].~T(); *(
int*)&Data[idx] = FreeIdx; FreeIdx = idx; Map.
SetInt(key, -1); }
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; }
486 union {
int BackupInt[2];
float BackupFloat[2]; };
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);
547 void OnKeyPressed(
int key);
615 IsFirstFrame =
false;
616 IsBeingResized =
false;
620 LineMinY = LineMaxY = 0.0f;
662 void Clear() { ID = 0; Window = NULL; DistBox = DistCenter = DistAxial = FLT_MAX; RectRel =
ImRect(); }
688 PosCond = SizeCond = ContentSizeCond = CollapsedCond = SizeConstraintCond = FocusCond = BgAlphaCond = 0;
689 PosVal = PosPivotVal = SizeVal =
ImVec2(0.0
f, 0.0
f);
690 ContentSizeVal =
ImVec2(0.0
f, 0.0
f);
691 CollapsedVal =
false;
692 SizeConstraintRect =
ImRect();
694 SizeCallbackUserData = NULL;
695 BgAlphaVal = FLT_MAX;
696 MenuBarOffsetMinVal =
ImVec2(0.0
f, 0.0
f);
701 PosCond = SizeCond = ContentSizeCond = CollapsedCond = SizeConstraintCond = FocusCond = BgAlphaCond = 0;
835 unsigned char DragDropPayloadBufLocal[8];
873 float FramerateSecPerFrame[120];
879 char TempBuffer[1024*3+1];
884 FrameScopeActive = FrameScopePushedImplicitWindow =
false;
886 FontSize = FontBaseSize = 0.0f;
887 FontAtlasOwnedByContext = shared_font_atlas ? false :
true;
892 FrameCountEnded = FrameCountRendered = -1;
893 WindowsActiveCount = 0;
894 CurrentWindow = NULL;
895 HoveredWindow = NULL;
896 HoveredRootWindow = NULL;
898 HoveredIdAllowOverlap =
false;
899 HoveredIdPreviousFrame = 0;
900 HoveredIdTimer = HoveredIdNotActiveTimer = 0.0f;
902 ActiveIdPreviousFrame = 0;
904 ActiveIdTimer = 0.0f;
905 ActiveIdIsJustActivated =
false;
906 ActiveIdAllowOverlap =
false;
907 ActiveIdHasBeenEdited =
false;
908 ActiveIdPreviousFrameIsAlive =
false;
909 ActiveIdPreviousFrameHasBeenEdited =
false;
910 ActiveIdAllowNavDirFlags = 0;
911 ActiveIdClickOffset =
ImVec2(-1,-1);
912 ActiveIdWindow = ActiveIdPreviousFrameWindow = NULL;
915 LastActiveIdTimer = 0.0f;
916 LastValidMousePos =
ImVec2(0.0
f, 0.0
f);
918 NextTreeNodeOpenVal =
false;
919 NextTreeNodeOpenCond = 0;
922 NavId = NavActivateId = NavActivateDownId = NavActivatePressedId = NavInputId = 0;
923 NavJustTabbedId = NavJustMovedToId = NavNextActivateId = 0;
925 NavScoringRectScreen =
ImRect();
927 NavWindowingTarget = NavWindowingTargetAnim = NavWindowingList = NULL;
928 NavWindowingTimer = NavWindowingHighlightAlpha = 0.0f;
929 NavWindowingToggleLayer =
false;
931 NavIdTabCounter = INT_MAX;
932 NavIdIsAlive =
false;
933 NavMousePosDirty =
false;
934 NavDisableHighlight =
true;
935 NavDisableMouseHover =
false;
936 NavAnyRequest =
false;
937 NavInitRequest =
false;
938 NavInitRequestFromMove =
false;
940 NavMoveFromClampedRefRect =
false;
941 NavMoveRequest =
false;
942 NavMoveRequestFlags = 0;
944 NavMoveDir = NavMoveDirLast = NavMoveClipDir =
ImGuiDir_None;
947 OverlayDrawList.
_Data = &DrawListSharedData;
951 DragDropActive = DragDropWithinSourceOrTarget =
false;
952 DragDropSourceFlags = 0;
953 DragDropSourceFrameCount = -1;
954 DragDropMouseButton = -1;
955 DragDropTargetId = 0;
956 DragDropAcceptFlags = 0;
957 DragDropAcceptIdCurrRectSurface = 0.0f;
958 DragDropAcceptIdPrev = DragDropAcceptIdCurr = 0;
959 DragDropAcceptFrameCount = -1;
960 memset(DragDropPayloadBufLocal, 0,
sizeof(DragDropPayloadBufLocal));
962 ScalarAsInputTextId = 0;
964 DragCurrentAccumDirty =
false;
965 DragCurrentAccum = 0.0f;
966 DragSpeedDefaultRatio = 1.0f / 100.0f;
967 ScrollbarClickDeltaToGrabCenter =
ImVec2(0.0
f, 0.0
f);
968 TooltipOverrideCount = 0;
969 PlatformImePos = PlatformImeLastPos =
ImVec2(FLT_MAX, FLT_MAX);
971 SettingsLoaded =
false;
972 SettingsDirtyTimer = 0.0f;
977 LogAutoExpandMaxDepth = 2;
979 memset(FramerateSecPerFrame, 0,
sizeof(FramerateSecPerFrame));
980 FramerateSecPerFrameIdx = 0;
981 FramerateSecPerFrameAccum = 0.0f;
982 WantCaptureMouseNextFrame = WantCaptureKeyboardNextFrame = WantTextInputNextFrame = -1;
983 memset(TempBuffer, 0,
sizeof(TempBuffer));
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);
1216 ImGuiTabItem() { ID = Flags = 0; LastFrameVisible = LastFrameSelected = -1; Offset = Width = WidthContents = 0.0f; }
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)
float NavInputs[ImGuiNavInput_COUNT]
ImGuiInputTextFlags UserFlags
VectorAcc operator/(const VectorAcc &r1, double r2)
IMGUI_API void NavMoveRequestTryWrapping(ImGuiWindow *window, ImGuiNavMoveFlags move_flags)
ImRect MenuBarRect() const
static float ImAcos(float x)
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 ImAtan2(float y, float x)
IMGUI_API const char * ImStreolRange(const char *str, const char *str_end)
ImU32 TreeDepthMayJumpToParentOnPop
int FocusIdxTabRequestNext
bool NavHideHighlightOneFrame
ImGuiWindow * RootWindowForTitleBarHighlight
static bool ImCharIsBlankW(unsigned int c)
IMGUI_API void ClosePopupToLevel(int remaining, bool apply_focus_to_window_under)
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 RenderText(ImVec2 pos, const char *text, const char *text_end=NULL, bool hide_text_after_hash=true)
ImRect NavInitResultRectRel
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 InputTextEx(const char *label, char *buf, int buf_size, const ImVec2 &size_arg, ImGuiInputTextFlags flags, ImGuiInputTextCallback callback=NULL, void *user_data=NULL)
IMGUI_API void UpdateMouseMovingWindowNewFrame()
IMGUI_API ImVec2 TabItemCalcSize(const char *label, bool has_close_button)
bool HasSelection() const
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)
int ActiveIdAllowNavDirFlags
ImGuiCond SetWindowPosAllowFlags
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)
ImGuiNavMoveResult NavMoveResultLocalVisibleSet
int DragDropSourceFrameCount
bool ActiveIdIsJustActivated
IMGUI_API void RenderMouseCursor(ImDrawList *draw_list, ImVec2 pos, float scale, ImGuiMouseCursor mouse_cursor=ImGuiMouseCursor_Arrow)
IMGUI_API void RenderCheckMark(ImVec2 pos, ImU32 col, float sz)
ImGuiWindow * ParentWindow
IMGUI_API void PushColumnClipRect(int column_index=-1)
ImVec2 ActiveIdClickOffset
IMGUI_API void ColorEditOptionsPopup(const float *col, ImGuiColorEditFlags flags)
IMGUI_API bool IsPopupOpen(ImGuiID id)
IMGUI_API float SliderCalcRatioFromValueT(ImGuiDataType data_type, T v, T v_min, T v_max, float power, float linear_zero_pos)
ImGuiStyleMod(ImGuiStyleVar idx, int v)
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)
IMGUI_API void ClosePopupsOverWindow(ImGuiWindow *ref_window)
IMGUI_API const char * FindRenderedTextEnd(const char *text, const char *text_end=NULL)
int WantCaptureMouseNextFrame
IMGUI_API ImGuiWindowSettings * FindWindowSettings(ImGuiID id)
IMGUI_API bool IsWindowChildOf(ImGuiWindow *window, ImGuiWindow *potential_parent)
IMGUI_API bool ArrowButtonEx(const char *str_id, ImGuiDir dir, ImVec2 size_arg, ImGuiButtonFlags flags)
IMGUI_API void PopItemFlag()
void TranslateX(float dx)
int(* ImGuiInputTextCallback)(ImGuiInputTextCallbackData *data)
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)
void * SizeCallbackUserData
IMGUI_API void LogRenderedText(const ImVec2 *ref_pos, const char *text, const char *text_end=NULL)
bool VisibleTabWasSubmitted
ImVector< ImGuiTabBarSortItem > TabSortByWidthBuffer
bool SelectedAllMouseLock
T * GetByIndex(ImPoolIdx n)
ImGuiID NextSelectedTabId
IMGUI_API bool IsKeyPressed(int user_key_index, bool repeat=true)
ImGuiContext(ImFontAtlas *shared_font_atlas)
ImVector< float > ItemWidthStack
IMGUI_API void PushMultiItemsWidths(int components, float width_full=0.0f)
IMGUI_API char * ImStrdupcpy(char *dst, size_t *p_dst_size, const char *str)
IMGUI_API void RenderFrameBorder(ImVec2 p_min, ImVec2 p_max, float rounding=0.0f)
bool ActiveIdAllowOverlap
ImVec2 ScrollbarClickDeltaToGrabCenter
ImGuiItemHoveredDataBackup()
int FramerateSecPerFrameIdx
IMGUI_API void * ImFileLoadToMemory(const char *filename, const char *file_open_mode, size_t *out_file_size=NULL, int padding_bytes=0)
IMGUI_API ImGuiWindow * FindWindowByID(ImGuiID id)
void(* ImGuiSizeCallback)(ImGuiSizeCallbackData *data)
IMGUI_API void SetHoveredID(ImGuiID id)
ImDrawList OverlayDrawList
int FocusIdxAllRequestCurrent
ImGuiNavMoveResult NavMoveResultLocal
float CurrentLineTextBaseOffset
static T ImClamp(T v, T mn, T mx)
IMGUI_API bool FocusableItemRegister(ImGuiWindow *window, ImGuiID id, bool tab_stop=true)
static ImVec2 ImMul(const ImVec2 &lhs, const ImVec2 &rhs)
static float ImCos(float x)
ImRect DragDropTargetRect
ImGuiWindow * RootWindowForNav
b2Vec2 operator*(float s, const b2Vec2 &a)
IMGUI_API bool BeginTabBarEx(ImGuiTabBar *tab_bar, const ImRect &bb, ImGuiTabBarFlags flags)
float FramerateSecPerFrameAccum
IMGUI_API void SetFocusID(ImGuiID id, ImGuiWindow *window)
IMGUI_API void ImFontAtlasBuildMultiplyRectAlpha8(const unsigned char table[256], unsigned char *pixels, int x, int y, int w, int h, int stride)
ImPool< ImGuiTabBar > TabBars
IMGUI_API ImGuiTabItem * TabBarFindTabByID(ImGuiTabBar *tab_bar, ImGuiID tab_id)
ImGuiSizeCallback SizeCallback
IMGUI_API int ImParseFormatPrecision(const char *format, int default_value)
IMGUI_API int ImTextStrToUtf8(char *buf, int buf_size, const ImWchar *in_text, const ImWchar *in_text_end)
IMGUI_API ImVec2 CalcWindowExpectedSize(ImGuiWindow *window)
IMGUI_API bool IsDragDropPayloadBeingAccepted()
IMGUI_API ImRect GetWindowAllowedExtentRect(ImGuiWindow *window)
ImGuiLayoutType LayoutType
ImVector< ImGuiItemFlags > ItemFlagsStack
ImGuiDragDropFlags DragDropSourceFlags
bool FontAtlasOwnedByContext
ImVector< ImGuiTabItem > Tabs
static bool ImIsPowerOfTwo(int v)
void resize(int new_size)
#define IM_ARRAYSIZE(_ARR)
float BackupCurrentLineTextBaseOffset
static float ImSin(float x)
ImRect TitleBarRect() const
static float ImFloor(float f)
ImGuiStorage StateStorage
ImRect NavScoringRectScreen
IMGUI_API ImVec2 GetNavInputAmount2d(ImGuiNavDirSourceFlags dir_sources, ImGuiInputReadMode mode, float slow_factor=0.0f, float fast_factor=0.0f)
IMGUI_API void SetCurrentFont(ImFont *font)
bool ActiveIdPreviousFrameIsAlive
ImFont * GetDefaultFont()
float CalcFontSize() const
const ImDrawListSharedData * _Data
ImGuiMenuColumns MenuColumns
IMGUI_API void UpdateHoveredWindowAndCaptureFlags()
IMGUI_API bool TreeNodeBehavior(ImGuiID id, ImGuiTreeNodeFlags flags, const char *label, const char *label_end=NULL)
ImGuiInputSource NavInputSource
unsigned char has_preferred_x
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)
IMGUI_API void SetNavID(ImGuiID id, int nav_layer)
IMGUI_API int ImTextCountUtf8BytesFromChar(const char *in_text, const char *in_text_end)
ImVector< ImFont * > Fonts
IMGUI_API float GetWindowScrollMaxY(ImGuiWindow *window)
static ImVec2 ImRotate(const ImVec2 &v, float cos_a, float sin_a)
ImVec4 ClipRectFullscreen
ImVector< ImGuiColorMod > ColorModifiers
IMGUI_API ImVec2 ImTriangleClosestPoint(const ImVec2 &a, const ImVec2 &b, const ImVec2 &c, const ImVec2 &p)
float HoveredIdNotActiveTimer
ImGuiColorEditFlags ColorEditOptions
IMGUI_API float GetNavInputAmount(ImGuiNavInput n, ImGuiInputReadMode mode)
ImVector< ImGuiWindow * > CurrentWindowStack
static T ImLerp(T a, T b, float t)
IMGUI_API void RenderArrowPointingAt(ImDrawList *draw_list, ImVec2 pos, ImVec2 half_sz, ImGuiDir direction, ImU32 col)
int KeyMap[ImGuiKey_COUNT]
geometry_msgs::TransformStamped t
ImVector< ImFont * > FontStack
ImGuiID NavActivatePressedId
IMGUI_API void ActivateItem(ImGuiID id)
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)
void Add(const ImRect &r)
ImGuiNavMoveFlags NavMoveRequestFlags
void Add(const JntArray &src1, const JntArray &src2, JntArray &dest)
IMGUI_API bool BeginDragDropTargetCustom(const ImRect &bb, ImGuiID id)
ImDrawDataBuilder DrawDataBuilder
IMGUI_API ImGuiWindowSettings * CreateNewWindowSettings(const char *name)
IMGUI_API ImGuiID GetHoveredID()
bool IsNavInputPressed(ImGuiNavInput n, ImGuiInputReadMode mode)
IMGUI_API void ItemSize(const ImRect &bb, float text_offset_y=0.0f)
IMGUI_API float GetWindowScrollMaxX(ImGuiWindow *window)
IMGUI_API ImVec2 FindBestWindowPosForPopup(ImGuiWindow *window)
ImVec2 BackupCurrentLineSize
ImGuiLayoutType ParentLayoutType
IMGUI_API void RenderRectFilledRangeH(ImDrawList *draw_list, const ImRect &rect, ImU32 col, float x_start_norm, float x_end_norm, float rounding)
IMGUI_API FILE * ImFileOpen(const char *filename, const char *file_open_mode)
IMGUI_API const char * ImParseFormatFindEnd(const char *format)
float DragSpeedDefaultRatio
IMGUI_API ImU32 ImHash(const void *data, int data_size, ImU32 seed=0)
IMGUI_API void RenderArrow(ImVec2 pos, ImGuiDir dir, float scale=1.0f)
ImGuiWindow * NavLastChildNavWindow
ImVector< ImGuiWindow * > Windows
int WantTextInputNextFrame
bool NavWindowingToggleLayer
ImVec2 SizeContentsExplicit
ImGuiNavForward NavMoveRequestForward
IMGUI_API void KeepAliveID(ImGuiID id)
void Expand(const float amount)
ImGuiInputTextState InputTextState
IMGUI_API int ImStrnicmp(const char *str1, const char *str2, size_t count)
ImGuiInputTextCallback UserCallback
ImFont InputTextPasswordFont
static void ImSwap(T &a, T &b)
static float ImLengthSqr(const ImVec2 &lhs)
IMGUI_API int GetInt(ImGuiID key, int default_val=0) const
bool NavInitRequestFromMove
T * GetByKey(ImGuiID key)
static float ImDot(const ImVec2 &a, const ImVec2 &b)
void ClipWith(const ImRect &r)
ImVec2 SizeFullAtLastBegin
b2Vec2 operator+(const b2Vec2 &a, const b2Vec2 &b)
Add two vectors component-wise.
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)
ImGuiWindow * NavWindowingTargetAnim
IMGUI_API void ImStrncpy(char *dst, const char *src, size_t count)
IMGUI_API bool TabItemEx(ImGuiTabBar *tab_bar, const char *label, bool *p_open, ImGuiTabItemFlags flags)
IMGUI_API void Scrollbar(ImGuiLayoutType direction)
IMGUI_API int ImStricmp(const char *str1, const char *str2)
bool BackupActiveIdPreviousFrameIsAlive
ImGuiStb::STB_TexteditState StbState
static float ImFabs(float x)
IMGUI_API void FocusWindow(ImGuiWindow *window)
ImGuiWindow * ActiveIdWindow
ImGuiTextBuffer SettingsIniData
IMGUI_API const char * ImStrchrRange(const char *str_begin, const char *str_end, char c)
IMGUI_API bool ImTriangleContainsPoint(const ImVec2 &a, const ImVec2 &b, const ImVec2 &c, const ImVec2 &p)
ImGuiWindow * NavWindowingTarget
ImVector< ImGuiStyleMod > StyleModifiers
IMGUI_API void RenderNavHighlight(const ImRect &bb, ImGuiID id, ImGuiNavHighlightFlags flags=ImGuiNavHighlightFlags_TypeDefault)
ImGuiDir AutoPosLastDirection
bool DragCurrentAccumDirty
ImRect ContentsRegionRect
ImDrawListSharedData DrawListSharedData
ImGuiID HoveredIdPreviousFrame
IMGUI_API bool ItemAdd(const ImRect &bb, ImGuiID id, const ImRect *nav_bb=NULL)
ImVector< ImGuiColumnData > Columns
ImVector< ImGuiTabBar * > CurrentTabBar
static T ImMax(T lhs, T rhs)
IMGUI_API void Shutdown(ImGuiContext *context)
IMGUI_API ImGuiWindow * GetFrontMostPopupModal()
int ImGuiNavDirSourceFlags
ImPoolIdx GetIndex(const T *p) const
IMGUI_API void ImFontAtlasBuildFinish(ImFontAtlas *atlas)
bool FrameScopePushedImplicitWindow
IMGUI_API bool IsWindowNavFocusable(ImGuiWindow *window)
ImGuiID ActiveIdPreviousFrame
IMGUI_API void VerticalSeparator()
short BeginOrderWithinParent
ImVector< ImGuiWindow * > WindowsFocusOrder
IMGUI_API void SetNavIDWithRectRel(ImGuiID id, int nav_layer, const ImRect &rect_rel)
IMGUI_API void Initialize(ImGuiContext *context)
static float ImInvLength(const ImVec2 &lhs, float fail_value)
ImVector< ImGuiWindowSettings > SettingsWindows
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)
IMGUI_API void StartMouseMovingWindow(ImGuiWindow *window)
ImVec2 ScrollTargetCenterRatio
IMGUI_API void MarkItemEdited(ImGuiID id)
ImGuiWindow * HoveredRootWindow
int FocusIdxTabRequestCurrent
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)
ImGuiWindow * MovingWindow
ImGuiID ScalarAsInputTextId
IMGUI_API void ColorPickerOptionsPopup(const float *ref_col, ImGuiColorEditFlags flags)
IMGUI_API void BringWindowToFocusFront(ImGuiWindow *window)
ImGuiTextBuffer LogClipboard
float DragDropAcceptIdCurrRectSurface
static float ImSqrt(float x)
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)
IMGUI_API void BringWindowToDisplayBack(ImGuiWindow *window)
int HiddenFramesForResize
void TranslateY(float dy)
ImGuiWindow * NavWindowingList
ImGuiSelectableFlagsPrivate_
IMGUI_API void RenderTextWrapped(ImVec2 pos, const char *text, const char *text_end, float wrap_width)
short BeginOrderWithinContext
IMGUI_API bool CollapseButton(ImGuiID id, const ImVec2 &pos)
static bool ImCharIsBlankA(char c)
IMGUI_API void ClearDragDrop()
IMGUI_API void RenderBullet(ImVec2 pos)
ImRect(const ImVec2 &min, const ImVec2 &max)
ImVector< ImGuiPopupRef > OpenPopupStack
ImGuiID BackupActiveIdIsAlive
ImGuiID DragDropAcceptIdPrev
ImGuiCond ContentSizeCond
IMGUI_API bool ButtonEx(const char *label, const ImVec2 &size_arg=ImVec2(0, 0), ImGuiButtonFlags flags=0)
ImVector< char > PrivateClipboard
ImGuiCond SetWindowCollapsedAllowFlags
ImRect SizeConstraintRect
IMGUI_API void BeginColumns(const char *str_id, int count, ImGuiColumnsFlags flags=0)
typedef void(GLAD_API_PTR *GLDEBUGPROC)(GLenum source
ImGuiWindow * CurrentWindow
IMGUI_API int ImTextCountUtf8BytesFromStr(const ImWchar *in_text, const ImWchar *in_text_end)
IMGUI_API void MarkIniSettingsDirty(ImGuiWindow *window)
int DragDropAcceptFrameCount
IMGUI_API void FocusPreviousWindowIgnoringOne(ImGuiWindow *ignore_window)
bool Contains(const ImRect &r) const
IMGUI_API int ImFormatString(char *buf, size_t buf_size, const char *fmt,...) IM_FMTARGS(3)
int LogAutoExpandMaxDepth
IMGUI_API void ImFontAtlasBuildPackCustomRects(ImFontAtlas *atlas, void *spc)
bool IsNavInputPressedAnyOfTwo(ImGuiNavInput n1, ImGuiNavInput n2, ImGuiInputReadMode mode)
T * GetOrAddByKey(ImGuiID key)
INLINE Rall1d< T, V, S > pow(const Rall1d< T, V, S > &arg, double m)
IMGUI_API void RenderFrame(ImVec2 p_min, ImVec2 p_max, ImU32 fill_col, bool border=true, float rounding=0.0f)
IMGUI_API void SetInt(ImGuiID key, int val)
IMGUI_API const ImWchar * ImStrbolW(const ImWchar *buf_mid_line, const ImWchar *buf_begin)
ImGuiID ReorderRequestTabId
ImRect LastItemDisplayRect
ImGuiStyleMod(ImGuiStyleVar idx, ImVec2 v)
static float ImCeil(float x)
ImRect LastItemDisplayRect
IMGUI_API ImGuiWindow * FindWindowByName(const char *name)
IMGUI_API void NavMoveRequestCancel()
IMGUI_API char * ImStrdup(const char *str)
IMGUI_API const char * ImStristr(const char *haystack, const char *haystack_end, const char *needle, const char *needle_end)
IMGUI_API void OpenPopupEx(ImGuiID id)
ImGuiDragDropFlags DragDropAcceptFlags
IMGUI_API bool NavMoveRequestButNoResultYet()
IMGUI_API void UpdateMouseMovingWindowEndFrame()
IMGUI_API ImVec2 ImLineClosestPoint(const ImVec2 &a, const ImVec2 &b, const ImVec2 &p)
ImVector< ImGuiWindow * > WindowsSortBuffer
ImVector< ImGuiSettingsHandler > SettingsHandlers
ImVector< float > TextWrapPosStack
IMGUI_API void SetWindowScrollY(ImGuiWindow *window, float new_scroll_y)
ImVector< char > InitialText
ImGuiNavMoveResult NavMoveResultOther
int GetTabOrder(const ImGuiTabItem *tab) const
IMGUI_API void BeginTooltipEx(ImGuiWindowFlags extra_flags, bool override_previous_tooltip=true)
IMGUI_API void EndColumns()
ImGuiWindow * ActiveIdPreviousFrameWindow
int FocusIdxAllRequestNext
IMGUI_API int * GetIntRef(ImGuiID key, int default_val=0)
static float ImSaturate(float f)
IMGUI_API bool ButtonBehavior(const ImRect &bb, ImGuiID id, bool *out_hovered, bool *out_held, ImGuiButtonFlags flags=0)
void ClipWithFull(const ImRect &r)
IMGUI_API void TabBarRemoveTab(ImGuiTabBar *tab_bar, ImGuiID tab_id)
IMGUI_API int CalcTypematicPressedRepeatAmount(float t, float t_prev, float repeat_delay, float repeat_rate)
ImGuiID NavActivateDownId
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)
IMGUI_API void TabBarCloseTab(ImGuiTabBar *tab_bar, ImGuiTabItem *tab)
ImGuiStyleMod(ImGuiStyleVar idx, float v)
IMGUI_API void SetActiveID(ImGuiID id, ImGuiWindow *window)
IMGUI_API const char * ImParseFormatTrimDecorations(const char *format, char *buf, int buf_size)
IMGUI_API bool CloseButton(ImGuiID id, const ImVec2 &pos, float radius)
ImVector< ImGuiPopupRef > BeginPopupStack
IMGUI_API void RenderPixelEllipsis(ImDrawList *draw_list, ImVec2 pos, int count, ImU32 col)
float OffsetNormBeforeResize
bool HoveredIdAllowOverlap
int NavLayerActiveMaskNext
int WantCaptureKeyboardNextFrame
bool NavMoveFromClampedRefRect
void Reserve(int capacity)
int index_from_ptr(const T *it) const
static float ImPow(float x, float y)
IMGUI_API void NavInitWindow(ImGuiWindow *window, bool force_reinit)
static float ImFloorStd(float x)
IMGUI_API void SetWindowScrollX(ImGuiWindow *window, float new_scroll_x)
static int min(int n1, int n2)
IMGUI_API bool TreeNodeBehaviorIsOpen(ImGuiID id, ImGuiTreeNodeFlags flags=0)
IMGUI_API bool ImFontAtlasBuildWithStbTruetype(ImFontAtlas *atlas)
static float ImFmod(float x, float y)
ImVec2 MenuBarOffsetMinVal
static double ImAtof(const char *s)
IMGUI_API float CalcWrapWidthForPos(const ImVec2 &pos, float wrap_pos_x)
ImVector< ImGuiGroupData > GroupStack
IMGUI_API void TabItemBackground(ImDrawList *draw_list, const ImRect &bb, ImGuiTabItemFlags flags, ImU32 col)
IMGUI_API T RoundScalarWithFormatT(const char *format, ImGuiDataType data_type, T v)
ImVector< ImGuiColumnsSet > ColumnsStorage
ImGuiPayload DragDropPayload
IMGUI_API void ImStrTrimBlanks(char *str)
IMGUI_API void ImFontAtlasBuildRegisterDefaultCustomRects(ImFontAtlas *atlas)
IMGUI_API void TabBarQueueChangeTabOrder(ImGuiTabBar *tab_bar, const ImGuiTabItem *tab, int dir)
IMGUI_API int ImTextCharFromUtf8(unsigned int *out_char, const char *in_text, const char *in_text_end)
ImGuiItemStatusFlags LastItemStatusFlags
bool ActiveIdHasBeenEdited
IMGUI_API ImGuiID GetID(const char *str_id)
void Expand(const ImVec2 &amount)
float TitleBarHeight() const
bool Overlaps(const ImRect &r) const
ImVector< ImGuiID > IDStack
ImGuiMouseCursor MouseCursor
IMGUI_API bool TabItemLabelAndCloseButton(ImDrawList *draw_list, const ImRect &bb, ImGuiTabItemFlags flags, const char *label, ImGuiID tab_id, ImGuiID close_button_id)
ImGuiCond NextTreeNodeOpenCond
ImGuiNextWindowData NextWindowData
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()
static float ImLinearSweep(float current, float target, float speed)
ImGuiStorage * StateStorage
ImVector< ImGuiWindow * > ChildWindows
float CurveTessellationTol
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)
ImGuiColumnsSet * ColumnsSet
ImGuiItemStatusFlags LastItemStatusFlags
ImGuiCond SizeConstraintCond
IMGUI_API ImVec2 CalcItemSize(ImVec2 size, float default_x, float default_y)
void Translate(const ImVec2 &d)
IMGUI_API ImGuiSettingsHandler * FindSettingsHandler(const char *type_name)
IMGUI_API ImGuiContext * GImGui
ImGuiNavLayer NavLayerCurrent
int ImGuiNavHighlightFlags
ImVec2 BackupCursorMaxPos
bool IsKeyPressedMap(ImGuiKey key, bool repeat=true)
void reserve(int new_capacity)
float PrevLineTextBaseOffset
IMGUI_API void UpdateWindowParentAndRootLinks(ImGuiWindow *window, ImGuiWindowFlags flags, ImGuiWindow *parent_window)
ImVector< char > TempBuffer
IMGUI_API void ClearActiveID()
bool DragDropWithinSourceOrTarget
bool Contains(const ImVec2 &p) const
IMGUI_API const char * ImParseFormatFindStart(const char *format)
IMGUI_API void NavMoveRequestForward(ImGuiDir move_dir, ImGuiDir clip_dir, const ImRect &bb_rel, ImGuiNavMoveFlags move_flags)
ImGuiWindow * HoveredWindow
ImGuiID DragDropAcceptIdCurr
static int ImUpperPowerOfTwo(int v)
bool NavDisableMouseHover
ImVector< unsigned char > DragDropPayloadBufHeap
IMGUI_API bool BeginPopupEx(ImGuiID id, ImGuiWindowFlags extra_flags)
void Add(const ImVec2 &p)
IMGUI_API bool IsClippedEx(const ImRect &bb, ImGuiID id, bool clip_even_when_logged)
ImGuiWindow * GetCurrentWindowRead()
bool IsNavInputDown(ImGuiNavInput n)
IMGUI_API ImGuiDir ImGetDirQuadrantFromDelta(float dx, float dy)
bool ActiveIdPreviousFrameHasBeenEdited
ImGuiCond SetWindowSizeAllowFlags
b2Vec2 operator-(const b2Vec2 &a, const b2Vec2 &b)
Subtract two vectors component-wise.
float MenuBarHeight() const
ImVector< ImWchar > TextW
static T ImMin(T lhs, T rhs)
void Remove(ImGuiID key, ImPoolIdx idx)
#define IM_PLACEMENT_NEW(_PTR)
void Remove(ImGuiID key, const T *p)
ImGuiID NavNextActivateId
ImGuiInputSource ActiveIdSource
IMGUI_API bool InputScalarAsWidgetReplacement(const ImRect &bb, ImGuiID id, const char *label, ImGuiDataType data_type, void *data_ptr, const char *format)
IMGUI_API int ImFormatStringV(char *buf, size_t buf_size, const char *fmt, va_list args) IM_FMTLIST(3)
float NavWindowingHighlightAlpha