@ -19,16 +19,17 @@ Index of this file:
// [SECTION] ImDrawList support
// [SECTION] Widgets support: flags, enums, data structures
// [SECTION] Columns support
// [SECTION] Settings support
// [SECTION] Multi-select support
// [SECTION] Docking support
// [SECTION] Viewport support
// [SECTION] Settings support
// [SECTION] Generic context hooks
// [SECTION] ImGuiContext (main imgui context)
// [SECTION] ImGuiWindowTempData, ImGuiWindow
// [SECTION] Tab bar, Tab item support
// [SECTION] Table support
// [SECTION] Internal API
// [SECTION] Test Engine H ooks (imgui_test_engine)
// [SECTION] Test Engine specific h ooks (imgui_test_engine)
*/
@ -93,6 +94,7 @@ struct ImGuiColorMod; // Stacked color modifier, backup of modifie
struct ImGuiColumnData ; // Storage data for a single column
struct ImGuiColumns ; // Storage data for a columns set
struct ImGuiContext ; // Main Dear ImGui context
struct ImGuiContextHook ; // Hook for extensions like ImGuiTestEngine
struct ImGuiDataTypeInfo ; // Type information associated to a ImGuiDataType enum
struct ImGuiGroupData ; // Stacked storage data for BeginGroup()/EndGroup()
struct ImGuiInputTextState ; // Internal state of the currently focused/edited text input box
@ -1099,6 +1101,23 @@ struct ImGuiSettingsHandler
ImGuiSettingsHandler ( ) { memset ( this , 0 , sizeof ( * this ) ) ; }
} ;
//-----------------------------------------------------------------------------
// [SECTION] Generic context hooks
//-----------------------------------------------------------------------------
typedef void ( * ImGuiContextHookCallback ) ( ImGuiContext * ctx , ImGuiContextHook * hook ) ;
enum ImGuiContextHookType { ImGuiContextHookType_NewFramePre , ImGuiContextHookType_NewFramePost , ImGuiContextHookType_EndFramePre , ImGuiContextHookType_EndFramePost , ImGuiContextHookType_RenderPre , ImGuiContextHookType_RenderPost , ImGuiContextHookType_Shutdown } ;
struct ImGuiContextHook
{
ImGuiContextHookType Type ;
ImGuiID Owner ;
ImGuiContextHookCallback Callback ;
void * UserData ;
ImGuiContextHook ( ) { memset ( this , 0 , sizeof ( * this ) ) ; }
} ;
//-----------------------------------------------------------------------------
// [SECTION] ImGuiContext (main imgui context)
//-----------------------------------------------------------------------------
@ -1301,6 +1320,7 @@ struct ImGuiContext
ImGuiTextBuffer SettingsIniData ; // In memory .ini settings
ImVector < ImGuiSettingsHandler > SettingsHandlers ; // List of .ini settings handlers
ImChunkStream < ImGuiWindowSettings > SettingsWindows ; // ImGuiWindow .ini settings entries
ImVector < ImGuiContextHook > Hooks ; // Hooks for extensions (e.g. test engine)
// Capture/Logging
bool LogEnabled ; // Currently capturing
@ -1819,6 +1839,10 @@ namespace ImGui
IMGUI_API void UpdateMouseMovingWindowNewFrame ( ) ;
IMGUI_API void UpdateMouseMovingWindowEndFrame ( ) ;
// Generic context hooks
IMGUI_API void AddContextHook ( ImGuiContext * context , const ImGuiContextHook * hook ) ;
IMGUI_API void CallContextHooks ( ImGuiContext * context , ImGuiContextHookType type ) ;
// Settings
IMGUI_API void MarkIniSettingsDirty ( ) ;
IMGUI_API void MarkIniSettingsDirty ( ImGuiWindow * window ) ;
@ -2055,13 +2079,10 @@ IMGUI_API void ImFontAtlasBuildMultiplyCalcLookupTable(unsigned cha
IMGUI_API void ImFontAtlasBuildMultiplyRectAlpha8 ( const unsigned char table [ 256 ] , unsigned char * pixels , int x , int y , int w , int h , int stride ) ;
//-----------------------------------------------------------------------------
// [SECTION] Test Engine H ooks (imgui_test_engine)
// [SECTION] Test Engine specific h ooks (imgui_test_engine)
//-----------------------------------------------------------------------------
# ifdef IMGUI_ENABLE_TEST_ENGINE
extern void ImGuiTestEngineHook_Shutdown ( ImGuiContext * ctx ) ;
extern void ImGuiTestEngineHook_PreNewFrame ( ImGuiContext * ctx ) ;
extern void ImGuiTestEngineHook_PostNewFrame ( ImGuiContext * ctx ) ;
extern void ImGuiTestEngineHook_ItemAdd ( ImGuiContext * ctx , const ImRect & bb , ImGuiID id ) ;
extern void ImGuiTestEngineHook_ItemInfo ( ImGuiContext * ctx , ImGuiID id , const char * label , ImGuiItemStatusFlags flags ) ;
extern void ImGuiTestEngineHook_IdInfo ( ImGuiContext * ctx , ImGuiDataType data_type , ImGuiID id , const void * data_id ) ;
@ -2080,6 +2101,8 @@ extern void ImGuiTestEngineHook_Log(ImGuiContext* ctx, const cha
# define IMGUI_TEST_ENGINE_ID_INFO2(_ID,_TYPE,_DATA,_DATA2) do { } while (0)
# endif
//-----------------------------------------------------------------------------
# if defined(__clang__)
# pragma clang diagnostic pop
# elif defined(__GNUC__)