@ -4039,7 +4039,8 @@ int ImGui::CalcTypematicPressedRepeatAmount(float t, float t_prev, float repeat_
int ImGui : : GetKeyPressedAmount ( int key_index , float repeat_delay , float repeat_rate )
{
ImGuiContext & g = * GImGui ;
if ( key_index < 0 ) return false ;
if ( key_index < 0 )
return 0 ;
IM_ASSERT ( key_index > = 0 & & key_index < IM_ARRAYSIZE ( g . IO . KeysDown ) ) ;
const float t = g . IO . KeysDownDuration [ key_index ] ;
return CalcTypematicPressedRepeatAmount ( t , t - g . IO . DeltaTime , repeat_delay , repeat_rate ) ;
@ -4048,7 +4049,8 @@ int ImGui::GetKeyPressedAmount(int key_index, float repeat_delay, float repeat_r
bool ImGui : : IsKeyPressed ( int user_key_index , bool repeat )
{
ImGuiContext & g = * GImGui ;
if ( user_key_index < 0 ) return false ;
if ( user_key_index < 0 )
return false ;
IM_ASSERT ( user_key_index > = 0 & & user_key_index < IM_ARRAYSIZE ( g . IO . KeysDown ) ) ;
const float t = g . IO . KeysDownDuration [ user_key_index ] ;
if ( t = = 0.0f )
@ -4139,13 +4141,12 @@ ImVec2 ImGui::GetMousePosOnOpeningCurrentPopup()
return g . IO . MousePos ;
}
// We typically use ImVec2(-FLT_MAX,-FLT_MAX) to denote an invalid mouse position
// We typically use ImVec2(-FLT_MAX,-FLT_MAX) to denote an invalid mouse position .
bool ImGui : : IsMousePosValid ( const ImVec2 * mouse_pos )
{
if ( mouse_pos = = NULL )
mouse_pos = & GImGui - > IO . MousePos ;
const float MOUSE_INVALID = - 256000.0f ;
return mouse_pos - > x > = MOUSE_INVALID & & mouse_pos - > y > = MOUSE_INVALID ;
ImVec2 p = mouse_pos ? * mouse_pos : GImGui - > IO . MousePos ;
return p . x > = MOUSE_INVALID & & p . y > = MOUSE_INVALID ;
}
// Return the delta from the initial clicking position.
@ -4819,8 +4820,11 @@ void ImGui::UpdateWindowParentAndRootLinks(ImGuiWindow* window, ImGuiWindowFlags
if ( parent_window & & ! ( flags & ImGuiWindowFlags_Modal ) & & ( flags & ( ImGuiWindowFlags_ChildWindow | ImGuiWindowFlags_Popup ) ) )
window - > RootWindowForTitleBarHighlight = parent_window - > RootWindowForTitleBarHighlight ;
while ( window - > RootWindowForNav - > Flags & ImGuiWindowFlags_NavFlattened )
{
IM_ASSERT ( window - > RootWindowForNav - > ParentWindow ! = NULL ) ;
window - > RootWindowForNav = window - > RootWindowForNav - > ParentWindow ;
}
}
// Push a new ImGui window to add widgets to.
// - A default window called "Debug" is automatically stacked at the beginning of every frame so you can use widgets without explicitly calling a Begin/End pair.
@ -5082,7 +5086,7 @@ bool ImGui::Begin(const char* name, bool* p_open, ImGuiWindowFlags flags)
// Position child window
if ( flags & ImGuiWindowFlags_ChildWindow )
{
IM_ASSERT ( parent_window - > Active ) ;
IM_ASSERT ( parent_window & & parent_window - > Active ) ;
window - > BeginOrderWithinParent = ( short ) parent_window - > DC . ChildWindows . Size ;
parent_window - > DC . ChildWindows . push_back ( window ) ;
if ( ! ( flags & ImGuiWindowFlags_Popup ) & & ! window_pos_set_by_api & & ! window_is_child_tooltip )
@ -9283,7 +9287,7 @@ void ImGui::ShowMetricsWindow(bool* p_open)
{
ImDrawVert & v = draw_list - > VtxBuffer [ idx_buffer ? idx_buffer [ vtx_i ] : vtx_i ] ;
triangles_pos [ n ] = v . pos ;
buf_p + = ImFormatString ( buf_p , ( int ) ( buf_end - buf_p ) , " %s %04d: pos (%8.2f,%8.2f), uv (%.6f,%.6f), col %08X \n " , ( n = = 0 ) ? " vtx " : " " , vtx_i , v . pos . x , v . pos . y , v . uv . x , v . uv . y , v . col ) ;
buf_p + = ImFormatString ( buf_p , buf_end - buf_p , " %s %04d: pos (%8.2f,%8.2f), uv (%.6f,%.6f), col %08X \n " , ( n = = 0 ) ? " vtx " : " " , vtx_i , v . pos . x , v . pos . y , v . uv . x , v . uv . y , v . col ) ;
}
ImGui : : Selectable ( buf , false ) ;
if ( ImGui : : IsItemHovered ( ) )
@ -9352,12 +9356,11 @@ void ImGui::ShowMetricsWindow(bool* p_open)
static void NodeTabBar ( ImGuiTabBar * tab_bar )
{
// Standalone tab bars (not associated to docking/windows functionality) currently hold no discern a ble strings.
// Standalone tab bars (not associated to docking/windows functionality) currently hold no discern i ble strings.
char buf [ 256 ] ;
char * p = buf ;
const char * buf_end = buf + IM_ARRAYSIZE ( buf ) ;
p + = ImFormatString ( p , buf_end - p , " TabBar (%d tabs)%s " ,
tab_bar - > Tabs . Size , ( tab_bar - > PrevFrameVisible < ImGui : : GetFrameCount ( ) - 2 ) ? " *Inactive* " : " " ) ;
ImFormatString ( p , buf_end - p , " TabBar (%d tabs)%s " , tab_bar - > Tabs . Size , ( tab_bar - > PrevFrameVisible < ImGui : : GetFrameCount ( ) - 2 ) ? " *Inactive* " : " " ) ;
if ( ImGui : : TreeNode ( tab_bar , " %s " , buf ) )
{
for ( int tab_n = 0 ; tab_n < tab_bar - > Tabs . Size ; tab_n + + )