@ -1258,7 +1258,7 @@ struct ImGuiContext
NavInitResultId = 0 ;
NavMoveFromClampedRefRect = false ;
NavMoveRequest = false ;
NavMoveRequestFlags = 0 ;
NavMoveRequestFlags = ImGuiNavMoveFlags_None ;
NavMoveRequestForward = ImGuiNavForward_None ;
NavMoveDir = NavMoveDirLast = NavMoveClipDir = ImGuiDir_None ;
@ -1277,11 +1277,11 @@ struct ImGuiContext
MouseCursor = ImGuiMouseCursor_Arrow ;
DragDropActive = DragDropWithinSourceOrTarget = false ;
DragDropSourceFlags = 0 ;
DragDropSourceFlags = ImGuiDragDropFlags_None ;
DragDropSourceFrameCount = - 1 ;
DragDropMouseButton = - 1 ;
DragDropTargetId = 0 ;
DragDropAcceptFlags = 0 ;
DragDropAcceptFlags = ImGuiDragDropFlags_None ;
DragDropAcceptIdCurrRectSurface = 0.0f ;
DragDropAcceptIdPrev = DragDropAcceptIdCurr = 0 ;
DragDropAcceptFrameCount = - 1 ;
@ -1395,7 +1395,7 @@ struct IMGUI_API ImGuiWindowTempData
GroupOffset = ImVec1 ( 0.0f ) ;
LastItemId = 0 ;
LastItemStatusFlags = 0 ;
LastItemStatusFlags = ImGuiItemStatusFlags_None ;
LastItemRect = LastItemDisplayRect = ImRect ( ) ;
NavLayerActiveMask = NavLayerActiveMaskNext = 0x00 ;
@ -1570,7 +1570,7 @@ struct ImGuiTabItem
float Width ; // Width currently displayed
float ContentWidth ; // Width of actual contents, stored during BeginTabItem() call
ImGuiTabItem ( ) { ID = 0 ; Flags = 0 ; LastFrameVisible = LastFrameSelected = - 1 ; NameOffset = - 1 ; Offset = Width = ContentWidth = 0.0f ; }
ImGuiTabItem ( ) { ID = 0 ; Flags = ImGuiTabItemFlags_None ; LastFrameVisible = LastFrameSelected = - 1 ; NameOffset = - 1 ; Offset = Width = ContentWidth = 0.0f ; }
} ;
// Storage for a tab bar (sizeof() 92~96 bytes)
@ -1617,6 +1617,7 @@ struct ImGuiTabBar
namespace ImGui
{
// Windows
// We should always have a CurrentWindow in the stack (there is an implicit "Debug" window)
// If this ever crash because g.CurrentWindow is NULL it means that either
// - ImGui::NewFrame() has never been called, which is illegal.
@ -1625,11 +1626,6 @@ namespace ImGui
inline ImGuiWindow * GetCurrentWindow ( ) { ImGuiContext & g = * GImGui ; g . CurrentWindow - > WriteAccessed = true ; return g . CurrentWindow ; }
IMGUI_API ImGuiWindow * FindWindowByID ( ImGuiID id ) ;
IMGUI_API ImGuiWindow * FindWindowByName ( const char * name ) ;
IMGUI_API void FocusWindow ( ImGuiWindow * window ) ;
IMGUI_API void FocusTopMostWindowUnderOne ( ImGuiWindow * under_this_window , ImGuiWindow * ignore_window ) ;
IMGUI_API void BringWindowToFocusFront ( ImGuiWindow * window ) ;
IMGUI_API void BringWindowToDisplayFront ( ImGuiWindow * window ) ;
IMGUI_API void BringWindowToDisplayBack ( ImGuiWindow * window ) ;
IMGUI_API void UpdateWindowParentAndRootLinks ( ImGuiWindow * window , ImGuiWindowFlags flags , ImGuiWindow * parent_window ) ;
IMGUI_API ImVec2 CalcWindowExpectedSize ( ImGuiWindow * window ) ;
IMGUI_API bool IsWindowChildOf ( ImGuiWindow * window , ImGuiWindow * potential_parent ) ;
@ -1638,9 +1634,15 @@ namespace ImGui
IMGUI_API void SetWindowPos ( ImGuiWindow * window , const ImVec2 & pos , ImGuiCond cond = 0 ) ;
IMGUI_API void SetWindowSize ( ImGuiWindow * window , const ImVec2 & size , ImGuiCond cond = 0 ) ;
IMGUI_API void SetWindowCollapsed ( ImGuiWindow * window , bool collapsed , ImGuiCond cond = 0 ) ;
IMGUI_API void GcCompactTransientWindowBuffers ( ImGuiWindow * window ) ;
IMGUI_API void GcAwakeTransientWindowBuffers ( ImGuiWindow * window ) ;
// Windows: Display Order and Focus Order
IMGUI_API void FocusWindow ( ImGuiWindow * window ) ;
IMGUI_API void FocusTopMostWindowUnderOne ( ImGuiWindow * under_this_window , ImGuiWindow * ignore_window ) ;
IMGUI_API void BringWindowToFocusFront ( ImGuiWindow * window ) ;
IMGUI_API void BringWindowToDisplayFront ( ImGuiWindow * window ) ;
IMGUI_API void BringWindowToDisplayBack ( ImGuiWindow * window ) ;
// Fonts, drawing
IMGUI_API void SetCurrentFont ( ImFont * font ) ;
inline ImFont * GetDefaultFont ( ) { ImGuiContext & g = * GImGui ; return g . IO . FontDefault ? g . IO . FontDefault : g . IO . Fonts - > Fonts [ 0 ] ; }
inline ImDrawList * GetForegroundDrawList ( ImGuiWindow * window ) { IM_UNUSED ( window ) ; ImGuiContext & g = * GImGui ; return & g . ForegroundDrawList ; } // This seemingly unnecessary wrapper simplifies compatibility between the 'master' and 'docking' branches.
@ -1672,6 +1674,7 @@ namespace ImGui
// Basic Accessors
inline ImGuiID GetItemID ( ) { ImGuiContext & g = * GImGui ; return g . CurrentWindow - > DC . LastItemId ; }
inline ImGuiItemStatusFlags GetItemStatusFlags ( ) { ImGuiContext & g = * GImGui ; return g . CurrentWindow - > DC . LastItemStatusFlags ; }
inline ImGuiID GetActiveID ( ) { ImGuiContext & g = * GImGui ; return g . ActiveId ; }
inline ImGuiID GetFocusID ( ) { ImGuiContext & g = * GImGui ; return g . NavId ; }
IMGUI_API void SetActiveID ( ImGuiID id , ImGuiWindow * window ) ;
@ -1680,7 +1683,7 @@ namespace ImGui
IMGUI_API ImGuiID GetHoveredID ( ) ;
IMGUI_API void SetHoveredID ( ImGuiID id ) ;
IMGUI_API void KeepAliveID ( ImGuiID id ) ;
IMGUI_API void MarkItemEdited ( ImGuiID id ) ;
IMGUI_API void MarkItemEdited ( ImGuiID id ) ; // Mark data associated to given item as "edited", used by IsItemDeactivatedAfterEdit() function.
IMGUI_API void PushOverrideID ( ImGuiID id ) ; // Push given value at the top of the ID stack (whereas PushID combines old and new hashes)
// Basic Helpers for widget code
@ -1749,7 +1752,7 @@ namespace ImGui
IMGUI_API void ClearDragDrop ( ) ;
IMGUI_API bool IsDragDropPayloadBeingAccepted ( ) ;
// New Columns API (FIXME-WIP )
// Internal Columns API (this is not exposed because we will encourage transitioning to the Tables api )
IMGUI_API void BeginColumns ( const char * str_id , int count , ImGuiColumnsFlags flags = 0 ) ; // setup number of columns. use an identifier to distinguish multiple column sets. close with EndColumns().
IMGUI_API void EndColumns ( ) ; // close columns
IMGUI_API void PushColumnClipRect ( int column_index ) ;
@ -1852,6 +1855,10 @@ namespace ImGui
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 ) ;
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 ) ;
// Garbage collection
IMGUI_API void GcCompactTransientWindowBuffers ( ImGuiWindow * window ) ;
IMGUI_API void GcAwakeTransientWindowBuffers ( ImGuiWindow * window ) ;
// Debug Tools
inline void DebugDrawItemRect ( ImU32 col = IM_COL32 ( 255 , 0 , 0 , 255 ) ) { ImGuiContext & g = * GImGui ; ImGuiWindow * window = g . CurrentWindow ; GetForegroundDrawList ( window ) - > AddRect ( window - > DC . LastItemRect . Min , window - > DC . LastItemRect . Max , col ) ; }
inline void DebugStartItemPicker ( ) { ImGuiContext & g = * GImGui ; g . DebugItemPickerActive = true ; }