@ -1270,7 +1270,7 @@ void ImGuiIO::ClearInputKeys()
// - float analog_value: 0.0f..1.0f
void ImGuiIO : : AddKeyAnalogEvent ( ImGuiKey key , bool down , float analog_value )
{
//if (e->Down) { IMGUI_DEBUG_PRINT ("AddKeyEvent() Key='%s' %d, NativeKeycode = %d, NativeScancode = %d\n", ImGui::GetKeyName(e->Key), e->Down, e->NativeKeycode, e->NativeScancode); }
//if (e->Down) { IMGUI_DEBUG_LOG_IO ("AddKeyEvent() Key='%s' %d, NativeKeycode = %d, NativeScancode = %d\n", ImGui::GetKeyName(e->Key), e->Down, e->NativeKeycode, e->NativeScancode); }
if ( key = = ImGuiKey_None | | ! AppAcceptingEvents )
return ;
ImGuiContext & g = * GImGui ;
@ -3386,7 +3386,8 @@ void ImGui::SetActiveID(ImGuiID id, ImGuiWindow* window)
g . ActiveIdIsJustActivated = ( g . ActiveId ! = id ) ;
if ( g . ActiveIdIsJustActivated )
{
IMGUI_DEBUG_LOG_ACTIVEID ( " [activeid] SetActiveID(0x%08X) in Window \" %s \" \n " , id , window ? window - > Name : " <NULL> " ) ;
IMGUI_DEBUG_LOG_ACTIVEID ( " SetActiveID() old:0x%08X (window \" %s \" ) -> new:0x%08X (window \" %s \" ) \n " ,
g . ActiveId , g . ActiveIdWindow ? g . ActiveIdWindow - > Name : " " , id , window ? window - > Name : " " ) ;
g . ActiveIdTimer = 0.0f ;
g . ActiveIdHasBeenPressedBefore = false ;
g . ActiveIdHasBeenEditedBefore = false ;
@ -4350,9 +4351,16 @@ void ImGui::NewFrame()
g . HoveredIdUsingMouseWheel = false ;
g . HoveredIdDisabled = false ;
// Update ActiveId data (clear reference to active widget if the widget isn't alive anymore)
if ( g . ActiveIdIsAlive ! = g . ActiveId & & g . ActiveIdPreviousFrame = = g . ActiveId & & g . ActiveId ! = 0 )
// Clear ActiveID if the item is not alive anymore.
// In 1.87, the common most call to KeepAliveID() was moved from GetID() to ItemAdd().
// As a result, custom widget using ButtonBehavior() _without_ ItemAdd() need to call KeepAliveID() themselves.
if ( g . ActiveId ! = 0 & & g . ActiveIdIsAlive ! = g . ActiveId & & g . ActiveIdPreviousFrame = = g . ActiveId )
{
IMGUI_DEBUG_LOG_ACTIVEID ( " NewFrame(): ClearActiveID() because it isn't marked alive anymore! \n " ) ;
ClearActiveID ( ) ;
}
// Update ActiveId data (clear reference to active widget if the widget isn't alive anymore)
if ( g . ActiveId )
g . ActiveIdTimer + = g . IO . DeltaTime ;
g . LastActiveIdTimer + = g . IO . DeltaTime ;
@ -5364,7 +5372,7 @@ static void UpdateWindowInFocusOrderList(ImGuiWindow* window, bool just_created,
static ImGuiWindow * CreateNewWindow ( const char * name , ImGuiWindowFlags flags )
{
ImGuiContext & g = * GImGui ;
//IMGUI_DEBUG_PRINT ("CreateNewWindow '%s', flags = 0x%08X\n", name, flags);
//IMGUI_DEBUG_LOG ("CreateNewWindow '%s', flags = 0x%08X\n", name, flags);
// Create window the first time
ImGuiWindow * window = IM_NEW ( ImGuiWindow ) ( & g , name ) ;
@ -7378,11 +7386,13 @@ void ImGui::PopFocusScope()
g . FocusScopeStack . pop_back ( ) ;
}
// Note: this will likely be called ActivateItem() once we rework our Focus/Activation system!
void ImGui : : SetKeyboardFocusHere ( int offset )
{
ImGuiContext & g = * GImGui ;
ImGuiWindow * window = g . CurrentWindow ;
IM_ASSERT ( offset > = - 1 ) ; // -1 is allowed but not below
IMGUI_DEBUG_LOG_ACTIVEID ( " SetKeyboardFocusHere(%d) in window \" %s \" \n " , offset , window - > Name ) ;
SetNavWindow ( window ) ;
@ -7829,12 +7839,12 @@ static const char* GetInputSourceName(ImGuiInputSource source)
/*static void DebugPrintInputEvent(const char* prefix, const ImGuiInputEvent* e)
{
if ( e - > Type = = ImGuiInputEventType_MousePos ) { IMGUI_DEBUG_PRINT ( " %s: MousePos (%.1f %.1f) \n " , prefix , e - > MousePos . PosX , e - > MousePos . PosY ) ; return ; }
if ( e - > Type = = ImGuiInputEventType_MouseButton ) { IMGUI_DEBUG_PRINT ( " %s: MouseButton %d %s \n " , prefix , e - > MouseButton . Button , e - > MouseButton . Down ? " Down " : " Up " ) ; return ; }
if ( e - > Type = = ImGuiInputEventType_MouseWheel ) { IMGUI_DEBUG_PRINT ( " %s: MouseWheel (%.1f %.1f) \n " , prefix , e - > MouseWheel . WheelX , e - > MouseWheel . WheelY ) ; return ; }
if ( e - > Type = = ImGuiInputEventType_Key ) { IMGUI_DEBUG_PRINT ( " %s: Key \" %s \" %s \n " , prefix , ImGui : : GetKeyName ( e - > Key . Key ) , e - > Key . Down ? " Down " : " Up " ) ; return ; }
if ( e - > Type = = ImGuiInputEventType_Text ) { IMGUI_DEBUG_PRINT ( " %s: Text: %c (U+%08X) \n " , prefix , e - > Text . Char , e - > Text . Char ) ; return ; }
if ( e - > Type = = ImGuiInputEventType_Focus ) { IMGUI_DEBUG_PRINT ( " %s: AppFocused %d \n " , prefix , e - > AppFocused . Focused ) ; return ; }
if ( e - > Type = = ImGuiInputEventType_MousePos ) { IMGUI_DEBUG_LOG_IO ( " %s: MousePos (%.1f %.1f) \n " , prefix , e - > MousePos . PosX , e - > MousePos . PosY ) ; return ; }
if ( e - > Type = = ImGuiInputEventType_MouseButton ) { IMGUI_DEBUG_LOG_IO ( " %s: MouseButton %d %s \n " , prefix , e - > MouseButton . Button , e - > MouseButton . Down ? " Down " : " Up " ) ; return ; }
if ( e - > Type = = ImGuiInputEventType_MouseWheel ) { IMGUI_DEBUG_LOG_IO ( " %s: MouseWheel (%.1f %.1f) \n " , prefix , e - > MouseWheel . WheelX , e - > MouseWheel . WheelY ) ; return ; }
if ( e - > Type = = ImGuiInputEventType_Key ) { IMGUI_DEBUG_LOG_IO ( " %s: Key \" %s \" %s \n " , prefix , ImGui : : GetKeyName ( e - > Key . Key ) , e - > Key . Down ? " Down " : " Up " ) ; return ; }
if ( e - > Type = = ImGuiInputEventType_Text ) { IMGUI_DEBUG_LOG_IO ( " %s: Text: %c (U+%08X) \n " , prefix , e - > Text . Char , e - > Text . Char ) ; return ; }
if ( e - > Type = = ImGuiInputEventType_Focus ) { IMGUI_DEBUG_LOG_IO ( " %s: AppFocused %d \n " , prefix , e - > AppFocused . Focused ) ; return ; }
} */
// Process input queue
@ -7954,7 +7964,7 @@ void ImGui::UpdateInputEvents(bool trickle_fast_inputs)
}
// Record trail (for domain-specific applications wanting to access a precise trail)
//if (event_n != 0) IMGUI_DEBUG_PRINT ("Processed: %d / Remaining: %d\n", event_n, g.InputEventsQueue.Size - event_n);
//if (event_n != 0) IMGUI_DEBUG_LOG_IO ("Processed: %d / Remaining: %d\n", event_n, g.InputEventsQueue.Size - event_n);
for ( int n = 0 ; n < event_n ; n + + )
g . InputEventsTrail . push_back ( g . InputEventsQueue [ n ] ) ;
@ -10318,7 +10328,7 @@ static void ImGui::NavUpdate()
{
io . MousePos = io . MousePosPrev = NavCalcPreferredRefPos ( ) ;
io . WantSetMousePos = true ;
//IMGUI_DEBUG_PRINT ("SetMousePos: (%.1f,%.1f)\n", io.MousePos.x, io.MousePos.y);
//IMGUI_DEBUG_LOG_IO ("SetMousePos: (%.1f,%.1f)\n", io.MousePos.x, io.MousePos.y);
}
// [DEBUG]
@ -11027,6 +11037,12 @@ void ImGui::NavUpdateWindowingOverlay()
// [SECTION] DRAG AND DROP
//-----------------------------------------------------------------------------
bool ImGui : : IsDragDropActive ( )
{
ImGuiContext & g = * GImGui ;
return g . DragDropActive ;
}
void ImGui : : ClearDragDrop ( )
{
ImGuiContext & g = * GImGui ;
@ -13125,8 +13141,11 @@ void ImGui::DebugLog(const char* fmt, ...)
void ImGui : : DebugLogV ( const char * fmt , va_list args )
{
ImGuiContext & g = * GImGui ;
const int old_size = g . DebugLogBuf . size ( ) ;
g . DebugLogBuf . appendf ( " [%05d] " , g . FrameCount ) ;
g . DebugLogBuf . appendfv ( fmt , args ) ;
if ( g . DebugLogFlags & ImGuiDebugLogFlags_OutputToTTY )
IMGUI_DEBUG_PRINTF ( " %s " , g . DebugLogBuf . begin ( ) + old_size ) ;
}
void ImGui : : ShowDebugLogWindow ( bool * p_open )