mirror of
				https://github.com/Drezil/imgui.git
				synced 2025-10-31 13:11:05 +01:00 
			
		
		
		
	Minor API comments and tweaks, standardize index used in imgui.h. Tables: tweaked TableSetupColumn() assert to use IM_ASSERT_USER_ERROR().
This commit is contained in:
		
							
								
								
									
										134
									
								
								imgui.h
									
									
									
									
									
								
							
							
						
						
									
										134
									
								
								imgui.h
									
									
									
									
									
								
							| @@ -19,25 +19,24 @@ | ||||
| /* | ||||
|  | ||||
| Index of this file: | ||||
| // Header mess | ||||
| // Forward declarations and basic types | ||||
| // ImGui API (Dear ImGui end-user API) | ||||
| // Flags & Enumerations | ||||
| // Memory allocations macros | ||||
| // ImVector<> | ||||
| // ImGuiStyle | ||||
| // ImGuiIO | ||||
| // Misc data structures (ImGuiInputTextCallbackData, ImGuiSizeCallbackData, ImGuiPayload, ImGuiTableSortSpecs, ImGuiTableColumnSortSpecs) | ||||
| // Obsolete functions | ||||
| // Helpers (ImGuiOnceUponAFrame, ImGuiTextFilter, ImGuiTextBuffer, ImGuiStorage, ImGuiListClipper, ImColor) | ||||
| // Draw List API (ImDrawCallback, ImDrawCmd, ImDrawIdx, ImDrawVert, ImDrawChannel, ImDrawListSplitter, ImDrawListFlags, ImDrawList, ImDrawData) | ||||
| // Font API (ImFontConfig, ImFontGlyph, ImFontGlyphRangesBuilder, ImFontAtlasFlags, ImFontAtlas, ImFont) | ||||
| // [SECTION] Header mess | ||||
| // [SECTION] Forward declarations and basic types | ||||
| // [SECTION] Dear ImGui end-user API functions | ||||
| // [SECTION] Flags & Enumerations | ||||
| // [SECTION] Helpers: Memory allocations macros, ImVector<> | ||||
| // [SECTION] ImGuiStyle | ||||
| // [SECTION] ImGuiIO | ||||
| // [SECTION] Misc data structures (ImGuiInputTextCallbackData, ImGuiSizeCallbackData, ImGuiPayload, ImGuiTableSortSpecs, ImGuiTableColumnSortSpecs) | ||||
| // [SECTION] Obsolete functions | ||||
| // [SECTION] Helpers (ImGuiOnceUponAFrame, ImGuiTextFilter, ImGuiTextBuffer, ImGuiStorage, ImGuiListClipper, ImColor) | ||||
| // [SECTION] Drawing API (ImDrawCallback, ImDrawCmd, ImDrawIdx, ImDrawVert, ImDrawChannel, ImDrawListSplitter, ImDrawListFlags, ImDrawList, ImDrawData) | ||||
| // [SECTION] Font API (ImFontConfig, ImFontGlyph, ImFontGlyphRangesBuilder, ImFontAtlasFlags, ImFontAtlas, ImFont) | ||||
|  | ||||
| */ | ||||
|  | ||||
| #pragma once | ||||
|  | ||||
| // Configuration file with compile-time options (edit imconfig.h or #define IMGUI_USER_CONFIG to your own filename) | ||||
| // Configuration file with compile-time options (edit imconfig.h or '#define IMGUI_USER_CONFIG "myfilename.h" from your build system') | ||||
| #ifdef IMGUI_USER_CONFIG | ||||
| #include IMGUI_USER_CONFIG | ||||
| #endif | ||||
| @@ -48,7 +47,7 @@ Index of this file: | ||||
| #ifndef IMGUI_DISABLE | ||||
|  | ||||
| //----------------------------------------------------------------------------- | ||||
| // Header mess | ||||
| // [SECTION] Header mess | ||||
| //----------------------------------------------------------------------------- | ||||
|  | ||||
| // Includes | ||||
| @@ -86,11 +85,13 @@ Index of this file: | ||||
| #else | ||||
| #define IM_OFFSETOF(_TYPE,_MEMBER)  ((size_t)&(((_TYPE*)0)->_MEMBER))           // Offset of _MEMBER within _TYPE. Old style macro. | ||||
| #endif | ||||
|  | ||||
| // Helper Macros - IM_FMTARGS, IM_FMTLIST: Apply printf-style warnings to our formatting functions. | ||||
| #if !defined(IMGUI_USE_STB_SPRINTF) && defined(__clang__) | ||||
| #define IM_FMTARGS(FMT)             __attribute__((format(printf, FMT, FMT+1)))     // Apply printf-style warnings to our formatting functions. | ||||
| #define IM_FMTARGS(FMT)             __attribute__((format(printf, FMT, FMT+1))) | ||||
| #define IM_FMTLIST(FMT)             __attribute__((format(printf, FMT, 0))) | ||||
| #elif !defined(IMGUI_USE_STB_SPRINTF) && defined(__GNUC__) && defined(__MINGW32__) | ||||
| #define IM_FMTARGS(FMT)             __attribute__((format(gnu_printf, FMT, FMT+1))) // Apply printf-style warnings to our formatting functions. | ||||
| #define IM_FMTARGS(FMT)             __attribute__((format(gnu_printf, FMT, FMT+1))) | ||||
| #define IM_FMTLIST(FMT)             __attribute__((format(gnu_printf, FMT, 0))) | ||||
| #else | ||||
| #define IM_FMTARGS(FMT) | ||||
| @@ -106,12 +107,12 @@ Index of this file: | ||||
| #endif | ||||
| #elif defined(__GNUC__) | ||||
| #pragma GCC diagnostic push | ||||
| #pragma GCC diagnostic ignored "-Wpragmas"                  // warning: unknown option after '#pragma GCC diagnostic' kind | ||||
| #pragma GCC diagnostic ignored "-Wclass-memaccess"          // [__GNUC__ >= 8] warning: 'memset/memcpy' clearing/writing an object of type 'xxxx' with no trivial copy-assignment; use assignment or value-initialization instead | ||||
| #pragma GCC diagnostic ignored "-Wpragmas"          // warning: unknown option after '#pragma GCC diagnostic' kind | ||||
| #pragma GCC diagnostic ignored "-Wclass-memaccess"  // [__GNUC__ >= 8] warning: 'memset/memcpy' clearing/writing an object of type 'xxxx' with no trivial copy-assignment; use assignment or value-initialization instead | ||||
| #endif | ||||
|  | ||||
| //----------------------------------------------------------------------------- | ||||
| // Forward declarations and basic types | ||||
| // [SECTION] Forward declarations and basic types | ||||
| //----------------------------------------------------------------------------- | ||||
|  | ||||
| // Forward declarations | ||||
| @@ -186,10 +187,10 @@ typedef int ImGuiWindowFlags;       // -> enum ImGuiWindowFlags_     // Flags: f | ||||
| typedef void* ImTextureID;          // User data for rendering backend to identify a texture. This is whatever to you want it to be! read the FAQ about ImTextureID for details. | ||||
| #endif | ||||
| typedef unsigned int ImGuiID;       // A unique ID used by widgets, typically hashed from a stack of string. | ||||
| typedef int (*ImGuiInputTextCallback)(ImGuiInputTextCallbackData* data); | ||||
| typedef void (*ImGuiSizeCallback)(ImGuiSizeCallbackData* data); | ||||
| typedef int (*ImGuiInputTextCallback)(ImGuiInputTextCallbackData* data);    // Callback function for ImGui::InputText() | ||||
| typedef void (*ImGuiSizeCallback)(ImGuiSizeCallbackData* data);             // Callback function for ImGui::SetNextWindowSizeConstraints() | ||||
|  | ||||
| // Decoded character types | ||||
| // Character types | ||||
| // (we generally use UTF-8 encoded string in the API. This is storage specifically for a decoded character used for keyboard input and display) | ||||
| typedef unsigned short ImWchar16;   // A single decoded U16 character/code point. We encode them as multi bytes UTF-8 when used in strings. | ||||
| typedef unsigned int ImWchar32;     // A single decoded U32 character/code point. We encode them as multi bytes UTF-8 when used in strings. | ||||
| @@ -234,8 +235,8 @@ struct ImVec2 | ||||
| // 4D vector (often used to store floating-point colors) | ||||
| struct ImVec4 | ||||
| { | ||||
|     float                                   x, y, z, w; | ||||
|     ImVec4()                                { x = y = z = w = 0.0f; } | ||||
|     float                                           x, y, z, w; | ||||
|     ImVec4()                                        { x = y = z = w = 0.0f; } | ||||
|     ImVec4(float _x, float _y, float _z, float _w)  { x = _x; y = _y; z = _z; w = _w; } | ||||
| #ifdef IM_VEC4_CLASS_EXTRA | ||||
|     IM_VEC4_CLASS_EXTRA     // Define additional constructors and implicit cast operators in imconfig.h to convert back and forth between your math types and ImVec4. | ||||
| @@ -243,8 +244,8 @@ struct ImVec4 | ||||
| }; | ||||
|  | ||||
| //----------------------------------------------------------------------------- | ||||
| // ImGui: Dear ImGui end-user API | ||||
| // (This is a namespace. You can add extra ImGui:: functions in your own separate file. Please don't modify imgui source files!) | ||||
| // [SECTION] Dear ImGui end-user API functions | ||||
| // (Note that ImGui:: being a namespace, you can add extra ImGui:: functions in your own separate file. Please don't modify imgui source files!) | ||||
| //----------------------------------------------------------------------------- | ||||
|  | ||||
| namespace ImGui | ||||
| @@ -266,19 +267,19 @@ namespace ImGui | ||||
|     IMGUI_API ImDrawData*   GetDrawData();                              // valid after Render() and until the next call to NewFrame(). this is what you have to render. | ||||
|  | ||||
|     // Demo, Debug, Information | ||||
|     IMGUI_API void          ShowDemoWindow(bool* p_open = NULL);        // create Demo window (previously called ShowTestWindow). demonstrate most ImGui features. call this to learn about the library! try to make it always available in your application! | ||||
|     IMGUI_API void          ShowAboutWindow(bool* p_open = NULL);       // create About window. display Dear ImGui version, credits and build/system information. | ||||
|     IMGUI_API void          ShowDemoWindow(bool* p_open = NULL);        // create Demo window. demonstrate most ImGui features. call this to learn about the library! try to make it always available in your application! | ||||
|     IMGUI_API void          ShowMetricsWindow(bool* p_open = NULL);     // create Metrics/Debugger window. display Dear ImGui internals: windows, draw commands, various internal state, etc. | ||||
|     IMGUI_API void          ShowAboutWindow(bool* p_open = NULL);       // create About window. display Dear ImGui version, credits and build/system information. | ||||
|     IMGUI_API void          ShowStyleEditor(ImGuiStyle* ref = NULL);    // add style editor block (not a window). you can pass in a reference ImGuiStyle structure to compare to, revert to and save to (else it uses the default style) | ||||
|     IMGUI_API bool          ShowStyleSelector(const char* label);       // add style selector block (not a window), essentially a combo listing the default styles. | ||||
|     IMGUI_API void          ShowFontSelector(const char* label);        // add font selector block (not a window), essentially a combo listing the loaded fonts. | ||||
|     IMGUI_API void          ShowUserGuide();                            // add basic help/info block (not a window): how to manipulate ImGui as a end-user (mouse/keyboard controls). | ||||
|     IMGUI_API const char*   GetVersion();                               // get the compiled version string e.g. "1.23" (essentially the compiled value for IMGUI_VERSION) | ||||
|     IMGUI_API const char*   GetVersion();                               // get the compiled version string e.g. "1.80 WIP" (essentially the value for IMGUI_VERSION from the compiled version of imgui.cpp) | ||||
|  | ||||
|     // Styles | ||||
|     IMGUI_API void          StyleColorsDark(ImGuiStyle* dst = NULL);    // new, recommended style (default) | ||||
|     IMGUI_API void          StyleColorsClassic(ImGuiStyle* dst = NULL); // classic imgui style | ||||
|     IMGUI_API void          StyleColorsLight(ImGuiStyle* dst = NULL);   // best used with borders and a custom, thicker font | ||||
|     IMGUI_API void          StyleColorsClassic(ImGuiStyle* dst = NULL); // classic imgui style | ||||
|  | ||||
|     // Windows | ||||
|     // - Begin() = push window to the stack and start appending to it. End() = pop window from the stack. | ||||
| @@ -338,20 +339,21 @@ namespace ImGui | ||||
|     IMGUI_API void          SetWindowFocus(const char* name);                                           // set named window to be focused / top-most. use NULL to remove focus. | ||||
|  | ||||
|     // Content region | ||||
|     // - Those functions are bound to be redesigned soon (they are confusing, incomplete and return values in local window coordinates which increases confusion) | ||||
|     IMGUI_API ImVec2        GetContentRegionMax();                                          // current content boundaries (typically window boundaries including scrolling, or current column boundaries), in windows coordinates | ||||
|     // - Retrieve available space from a given point. GetContentRegionAvail() is frequently useful. | ||||
|     // - Those functions are bound to be redesigned (they are confusing, incomplete and the Min/Max return values are in local window coordinates which increases confusion) | ||||
|     IMGUI_API ImVec2        GetContentRegionAvail();                                        // == GetContentRegionMax() - GetCursorPos() | ||||
|     IMGUI_API ImVec2        GetContentRegionMax();                                          // current content boundaries (typically window boundaries including scrolling, or current column boundaries), in windows coordinates | ||||
|     IMGUI_API ImVec2        GetWindowContentRegionMin();                                    // content boundaries min (roughly (0,0)-Scroll), in window coordinates | ||||
|     IMGUI_API ImVec2        GetWindowContentRegionMax();                                    // content boundaries max (roughly (0,0)+Size-Scroll) where Size can be override with SetNextWindowContentSize(), in window coordinates | ||||
|     IMGUI_API float         GetWindowContentRegionWidth();                                  // | ||||
|  | ||||
|     // Windows Scrolling | ||||
|     IMGUI_API float         GetScrollX();                                                   // get scrolling amount [0..GetScrollMaxX()] | ||||
|     IMGUI_API float         GetScrollY();                                                   // get scrolling amount [0..GetScrollMaxY()] | ||||
|     IMGUI_API float         GetScrollMaxX();                                                // get maximum scrolling amount ~~ ContentSize.x - WindowSize.x | ||||
|     IMGUI_API float         GetScrollMaxY();                                                // get maximum scrolling amount ~~ ContentSize.y - WindowSize.y | ||||
|     IMGUI_API void          SetScrollX(float scroll_x);                                     // set scrolling amount [0..GetScrollMaxX()] | ||||
|     IMGUI_API void          SetScrollY(float scroll_y);                                     // set scrolling amount [0..GetScrollMaxY()] | ||||
|     IMGUI_API float         GetScrollX();                                                   // get scrolling amount [0 .. GetScrollMaxX()] | ||||
|     IMGUI_API float         GetScrollY();                                                   // get scrolling amount [0 .. GetScrollMaxY()] | ||||
|     IMGUI_API void          SetScrollX(float scroll_x);                                     // set scrolling amount [0 .. GetScrollMaxX()] | ||||
|     IMGUI_API void          SetScrollY(float scroll_y);                                     // set scrolling amount [0 .. GetScrollMaxY()] | ||||
|     IMGUI_API float         GetScrollMaxX();                                                // get maximum scrolling amount ~~ ContentSize.x - WindowSize.x - DecorationsSize.x | ||||
|     IMGUI_API float         GetScrollMaxY();                                                // get maximum scrolling amount ~~ ContentSize.y - WindowSize.y - DecorationsSize.y | ||||
|     IMGUI_API void          SetScrollHereX(float center_x_ratio = 0.5f);                    // adjust scrolling amount to make current cursor position visible. center_x_ratio=0.0: left, 0.5: center, 1.0: right. When using to make a "default/current item" visible, consider using SetItemDefaultFocus() instead. | ||||
|     IMGUI_API void          SetScrollHereY(float center_y_ratio = 0.5f);                    // adjust scrolling amount to make current cursor position visible. center_y_ratio=0.0: top, 0.5: center, 1.0: bottom. When using to make a "default/current item" visible, consider using SetItemDefaultFocus() instead. | ||||
|     IMGUI_API void          SetScrollFromPosX(float local_x, float center_x_ratio = 0.5f);  // adjust scrolling amount to make given position visible. Generally GetCursorStartPos() + offset to compute a valid position. | ||||
| @@ -360,23 +362,16 @@ namespace ImGui | ||||
|     // Parameters stacks (shared) | ||||
|     IMGUI_API void          PushFont(ImFont* font);                                         // use NULL as a shortcut to push default font | ||||
|     IMGUI_API void          PopFont(); | ||||
|     IMGUI_API void          PushStyleColor(ImGuiCol idx, ImU32 col); | ||||
|     IMGUI_API void          PushStyleColor(ImGuiCol idx, ImU32 col);                        // modify a style color. always use this if you modify the style after NewFrame(). | ||||
|     IMGUI_API void          PushStyleColor(ImGuiCol idx, const ImVec4& col); | ||||
|     IMGUI_API void          PopStyleColor(int count = 1); | ||||
|     IMGUI_API void          PushStyleVar(ImGuiStyleVar idx, float val); | ||||
|     IMGUI_API void          PushStyleVar(ImGuiStyleVar idx, const ImVec2& val); | ||||
|     IMGUI_API void          PushStyleVar(ImGuiStyleVar idx, float val);                     // modify a style float variable. always use this if you modify the style after NewFrame(). | ||||
|     IMGUI_API void          PushStyleVar(ImGuiStyleVar idx, const ImVec2& val);             // modify a style ImVec2 variable. always use this if you modify the style after NewFrame(). | ||||
|     IMGUI_API void          PopStyleVar(int count = 1); | ||||
|     IMGUI_API void          PushAllowKeyboardFocus(bool allow_keyboard_focus);              // allow focusing using TAB/Shift-TAB, enabled by default but you can disable it for certain widgets | ||||
|     IMGUI_API void          PopAllowKeyboardFocus(); | ||||
|     IMGUI_API void          PushButtonRepeat(bool repeat);                                  // in 'repeat' mode, Button*() functions return repeated true in a typematic manner (using io.KeyRepeatDelay/io.KeyRepeatRate setting). Note that you can call IsItemActive() after any Button() to tell if the button is held in the current frame. | ||||
|     IMGUI_API void          PopButtonRepeat(); | ||||
|     IMGUI_API const ImVec4& GetStyleColorVec4(ImGuiCol idx);                                // retrieve style color as stored in ImGuiStyle structure. use to feed back into PushStyleColor(), otherwise use GetColorU32() to get style color with style alpha baked in. | ||||
|     IMGUI_API ImFont*       GetFont();                                                      // get current font | ||||
|     IMGUI_API float         GetFontSize();                                                  // get current font size (= height in pixels) of current font with current scale applied | ||||
|     IMGUI_API ImVec2        GetFontTexUvWhitePixel();                                       // get UV coordinate for a while pixel, useful to draw custom shapes via the ImDrawList API | ||||
|     IMGUI_API ImU32         GetColorU32(ImGuiCol idx, float alpha_mul = 1.0f);              // retrieve given style color with style alpha applied and optional extra alpha multiplier | ||||
|     IMGUI_API ImU32         GetColorU32(const ImVec4& col);                                 // retrieve given color with style alpha applied | ||||
|     IMGUI_API ImU32         GetColorU32(ImU32 col);                                         // retrieve given color with style alpha applied | ||||
|  | ||||
|     // Parameters stacks (current window) | ||||
|     IMGUI_API void          PushItemWidth(float item_width);                                // push width of items for common large "item+label" widgets. >0.0f: width in pixels, <0.0f align xx pixels to the right of window (so -FLT_MIN always align width to the right side). 0.0f = default to ~2/3 of windows width, | ||||
| @@ -386,6 +381,15 @@ namespace ImGui | ||||
|     IMGUI_API void          PushTextWrapPos(float wrap_local_pos_x = 0.0f);                 // push word-wrapping position for Text*() commands. < 0.0f: no wrapping; 0.0f: wrap to end of window (or column); > 0.0f: wrap at 'wrap_pos_x' position in window local space | ||||
|     IMGUI_API void          PopTextWrapPos(); | ||||
|  | ||||
|     // Style read access | ||||
|     IMGUI_API ImFont*       GetFont();                                                      // get current font | ||||
|     IMGUI_API float         GetFontSize();                                                  // get current font size (= height in pixels) of current font with current scale applied | ||||
|     IMGUI_API ImVec2        GetFontTexUvWhitePixel();                                       // get UV coordinate for a while pixel, useful to draw custom shapes via the ImDrawList API | ||||
|     IMGUI_API ImU32         GetColorU32(ImGuiCol idx, float alpha_mul = 1.0f);              // retrieve given style color with style alpha applied and optional extra alpha multiplier, packed as a 32-bit value suitable for ImDrawList | ||||
|     IMGUI_API ImU32         GetColorU32(const ImVec4& col);                                 // retrieve given color with style alpha applied, packed as a 32-bit value suitable for ImDrawList | ||||
|     IMGUI_API ImU32         GetColorU32(ImU32 col);                                         // retrieve given color with style alpha applied, packed as a 32-bit value suitable for ImDrawList | ||||
|     IMGUI_API const ImVec4& GetStyleColorVec4(ImGuiCol idx);                                // retrieve style color as stored in ImGuiStyle structure. use to feed back into PushStyleColor(), otherwise use GetColorU32() to get style color with style alpha baked in. | ||||
|  | ||||
|     // Cursor / Layout | ||||
|     // - By "cursor" we mean the current output position. | ||||
|     // - The typical widget behavior is to output themselves at the current cursor position, then move the cursor one line down. | ||||
| @@ -608,7 +612,7 @@ namespace ImGui | ||||
|     IMGUI_API bool          MenuItem(const char* label, const char* shortcut, bool* p_selected, bool enabled = true);              // return true when activated + toggle (*p_selected) if p_selected != NULL | ||||
|  | ||||
|     // Tooltips | ||||
|     // - Tooltip are windows following the mouse which do not take focus away. | ||||
|     // - Tooltip are windows following the mouse. They do not take focus away. | ||||
|     IMGUI_API void          BeginTooltip();                                                     // begin/append a tooltip window. to create full-featured tooltip (with any kind of items). | ||||
|     IMGUI_API void          EndTooltip(); | ||||
|     IMGUI_API void          SetTooltip(const char* fmt, ...) IM_FMTARGS(1);                     // set a text-only tooltip, typically use with ImGui::IsItemHovered(). override any previous call to SetTooltip(). | ||||
| @@ -738,7 +742,6 @@ namespace ImGui | ||||
|     IMGUI_API void          LogText(const char* fmt, ...) IM_FMTARGS(1);                        // pass text data straight to log (without being displayed) | ||||
|  | ||||
|     // Drag and Drop | ||||
|     // - [BETA API] API may evolve! | ||||
|     // - If you stop calling BeginDragDropSource() the payload is preserved however it won't have a preview tooltip (we currently display a fallback "..." tooltip as replacement) | ||||
|     IMGUI_API bool          BeginDragDropSource(ImGuiDragDropFlags flags = 0);                                      // call when the current item is active. If this return true, you can call SetDragDropPayload() + EndDragDropSource() | ||||
|     IMGUI_API bool          SetDragDropPayload(const char* type, const void* data, size_t sz, ImGuiCond cond = 0);  // type is a user defined string of maximum 32 characters. Strings starting with '_' are reserved for dear imgui internal types. Data is copied and held by imgui. | ||||
| @@ -749,6 +752,7 @@ namespace ImGui | ||||
|     IMGUI_API const ImGuiPayload*   GetDragDropPayload();                                                           // peek directly into the current payload from anywhere. may return NULL. use ImGuiPayload::IsDataType() to test for the payload type. | ||||
|  | ||||
|     // Clipping | ||||
|     // - Mouse hovering is affected by ImGui::PushClipRect() calls, unlike direct calls to ImDrawList::PushClipRect() which are render only. | ||||
|     IMGUI_API void          PushClipRect(const ImVec2& clip_rect_min, const ImVec2& clip_rect_max, bool intersect_with_current_clip_rect); | ||||
|     IMGUI_API void          PopClipRect(); | ||||
|  | ||||
| @@ -858,7 +862,7 @@ namespace ImGui | ||||
| } // namespace ImGui | ||||
|  | ||||
| //----------------------------------------------------------------------------- | ||||
| // Flags & Enumerations | ||||
| // [SECTION] Flags & Enumerations | ||||
| //----------------------------------------------------------------------------- | ||||
|  | ||||
| // Flags for ImGui::Begin() | ||||
| @@ -1277,7 +1281,7 @@ enum ImGuiKeyModFlags_ | ||||
| // Gamepad/Keyboard navigation | ||||
| // Keyboard: Set io.ConfigFlags |= ImGuiConfigFlags_NavEnableKeyboard to enable. NewFrame() will automatically fill io.NavInputs[] based on your io.KeysDown[] + io.KeyMap[] arrays. | ||||
| // Gamepad:  Set io.ConfigFlags |= ImGuiConfigFlags_NavEnableGamepad to enable. Backend: set ImGuiBackendFlags_HasGamepad and fill the io.NavInputs[] fields before calling NewFrame(). Note that io.NavInputs[] is cleared by EndFrame(). | ||||
| // Read instructions in imgui.cpp for more details. Download PNG/PSD at http://goo.gl/9LgVZW. | ||||
| // Read instructions in imgui.cpp for more details. Download PNG/PSD at http://dearimgui.org/controls_sheets. | ||||
| enum ImGuiNavInput_ | ||||
| { | ||||
|     // Gamepad Mapping | ||||
| @@ -1547,7 +1551,10 @@ enum ImGuiCond_ | ||||
| }; | ||||
|  | ||||
| //----------------------------------------------------------------------------- | ||||
| // Helpers: Memory allocations macros | ||||
| // [SECTION] Helpers: Memory allocations macros, ImVector<> | ||||
| //----------------------------------------------------------------------------- | ||||
|  | ||||
| //----------------------------------------------------------------------------- | ||||
| // IM_MALLOC(), IM_FREE(), IM_NEW(), IM_PLACEMENT_NEW(), IM_DELETE() | ||||
| // We call C++ constructor on own allocated memory via the placement "new(ptr) Type()" syntax. | ||||
| // Defining a custom placement new() with a custom parameter allows us to bypass including <new> which on some platforms complains when user has disabled exceptions. | ||||
| @@ -1563,7 +1570,7 @@ inline void  operator delete(void*, ImNewWrapper, void*)   {} // This is only re | ||||
| template<typename T> void IM_DELETE(T* p)   { if (p) { p->~T(); ImGui::MemFree(p); } } | ||||
|  | ||||
| //----------------------------------------------------------------------------- | ||||
| // Helper: ImVector<> | ||||
| // ImVector<> | ||||
| // Lightweight std::vector<>-like class to avoid dragging dependencies (also, some implementations of STL with debug enabled are absurdly slow, we bypass it so our code runs fast in debug). | ||||
| //----------------------------------------------------------------------------- | ||||
| // - You generally do NOT need to care or use this ever. But we need to make it available in imgui.h because some of our public structures are relying on it. | ||||
| @@ -1633,7 +1640,8 @@ struct ImVector | ||||
| }; | ||||
|  | ||||
| //----------------------------------------------------------------------------- | ||||
| // ImGuiStyle | ||||
| // [SECTION] ImGuiStyle | ||||
| //----------------------------------------------------------------------------- | ||||
| // You may modify the ImGui::GetStyle() main instance during initialization and before NewFrame(). | ||||
| // During the frame, use ImGui::PushStyleVar(ImGuiStyleVar_XXXX)/PopStyleVar() to alter the main style values, | ||||
| // and ImGui::PushStyleColor(ImGuiCol_XXX)/PopStyleColor() for colors. | ||||
| @@ -1687,7 +1695,8 @@ struct ImGuiStyle | ||||
| }; | ||||
|  | ||||
| //----------------------------------------------------------------------------- | ||||
| // ImGuiIO | ||||
| // [SECTION] ImGuiIO | ||||
| //----------------------------------------------------------------------------- | ||||
| // Communicate most settings and inputs/outputs to Dear ImGui using this structure. | ||||
| // Access via ImGui::GetIO(). Read 'Programmer guide' section in .cpp file for general usage. | ||||
| //----------------------------------------------------------------------------- | ||||
| @@ -1821,7 +1830,7 @@ struct ImGuiIO | ||||
| }; | ||||
|  | ||||
| //----------------------------------------------------------------------------- | ||||
| // Misc data structures | ||||
| // [SECTION] Misc data structures | ||||
| //----------------------------------------------------------------------------- | ||||
|  | ||||
| // Shared state of InputText(), passed as an argument to your callback when a ImGuiInputTextFlags_Callback* flag is used. | ||||
| @@ -1919,7 +1928,8 @@ struct ImGuiTableSortSpecs | ||||
| }; | ||||
|  | ||||
| //----------------------------------------------------------------------------- | ||||
| // Obsolete functions (Will be removed! Read 'API BREAKING CHANGES' section in imgui.cpp for details) | ||||
| // [SECTION] Obsolete functions | ||||
| // (Will be removed! Read 'API BREAKING CHANGES' section in imgui.cpp for details) | ||||
| // Please keep your copy of dear imgui up to date! Occasionally set '#define IMGUI_DISABLE_OBSOLETE_FUNCTIONS' in imconfig.h to stay ahead. | ||||
| //----------------------------------------------------------------------------- | ||||
|  | ||||
| @@ -1959,7 +1969,7 @@ namespace ImGui | ||||
| #endif | ||||
|  | ||||
| //----------------------------------------------------------------------------- | ||||
| // Helpers | ||||
| // [SECTION] Helpers (ImGuiOnceUponAFrame, ImGuiTextFilter, ImGuiTextBuffer, ImGuiStorage, ImGuiListClipper, ImColor) | ||||
| //----------------------------------------------------------------------------- | ||||
|  | ||||
| // Helper: Unicode defines | ||||
| @@ -2161,7 +2171,7 @@ struct ImColor | ||||
| }; | ||||
|  | ||||
| //----------------------------------------------------------------------------- | ||||
| // Draw List API (ImDrawCmd, ImDrawIdx, ImDrawVert, ImDrawChannel, ImDrawListSplitter, ImDrawListFlags, ImDrawList, ImDrawData) | ||||
| // [SECTION] Drawing API (ImDrawCmd, ImDrawIdx, ImDrawVert, ImDrawChannel, ImDrawListSplitter, ImDrawListFlags, ImDrawList, ImDrawData) | ||||
| // Hold a series of drawing commands. The user provides a renderer for ImDrawData which essentially contains an array of ImDrawList. | ||||
| //----------------------------------------------------------------------------- | ||||
|  | ||||
| @@ -2435,7 +2445,7 @@ struct ImDrawData | ||||
| }; | ||||
|  | ||||
| //----------------------------------------------------------------------------- | ||||
| // Font API (ImFontConfig, ImFontGlyph, ImFontAtlasFlags, ImFontAtlas, ImFontGlyphRangesBuilder, ImFont) | ||||
| // [SECTION] Font API (ImFontConfig, ImFontGlyph, ImFontAtlasFlags, ImFontAtlas, ImFontGlyphRangesBuilder, ImFont) | ||||
| //----------------------------------------------------------------------------- | ||||
|  | ||||
| struct ImFontConfig | ||||
|   | ||||
		Reference in New Issue
	
	Block a user