mirror of
				https://github.com/ocornut/imgui.git
				synced 2025-11-04 01:34:32 +00:00 
			
		
		
		
	Merge branch 'master' into navigation
# Conflicts: # imgui.cpp # imgui.h # imgui_draw.cpp
This commit is contained in:
		
							
								
								
									
										60
									
								
								imgui.cpp
									
									
									
									
									
								
							
							
						
						
									
										60
									
								
								imgui.cpp
									
									
									
									
									
								
							@@ -250,6 +250,7 @@
 | 
				
			|||||||
 Here is a change-log of API breaking changes, if you are using one of the functions listed, expect to have to fix some code.
 | 
					 Here is a change-log of API breaking changes, if you are using one of the functions listed, expect to have to fix some code.
 | 
				
			||||||
 Also read releases logs https://github.com/ocornut/imgui/releases for more details.
 | 
					 Also read releases logs https://github.com/ocornut/imgui/releases for more details.
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					 - 2017/11/02 (1.53) - marked IsRootWindowOrAnyChildHovered() as obsolete is favor of using IsWindowHovered(ImGuiHoveredFlags_FlattenChilds);
 | 
				
			||||||
 - 2017/10/24 (1.52) - renamed IMGUI_DISABLE_WIN32_DEFAULT_CLIPBOARD_FUNCS/IMGUI_DISABLE_WIN32_DEFAULT_IME_FUNCS to IMGUI_DISABLE_WIN32_DEFAULT_CLIPBOARD_FUNCTIONS/IMGUI_DISABLE_WIN32_DEFAULT_IME_FUNCTIONS for consistency.
 | 
					 - 2017/10/24 (1.52) - renamed IMGUI_DISABLE_WIN32_DEFAULT_CLIPBOARD_FUNCS/IMGUI_DISABLE_WIN32_DEFAULT_IME_FUNCS to IMGUI_DISABLE_WIN32_DEFAULT_CLIPBOARD_FUNCTIONS/IMGUI_DISABLE_WIN32_DEFAULT_IME_FUNCTIONS for consistency.
 | 
				
			||||||
 - 2017/10/20 (1.52) - changed IsWindowHovered() default parameters behavior to return false if an item is active in another window (e.g. click-dragging item from another window to this window). You can use the newly introduced IsWindowHovered() flags to requests this specific behavior if you need it.
 | 
					 - 2017/10/20 (1.52) - changed IsWindowHovered() default parameters behavior to return false if an item is active in another window (e.g. click-dragging item from another window to this window). You can use the newly introduced IsWindowHovered() flags to requests this specific behavior if you need it.
 | 
				
			||||||
 - 2017/10/20 (1.52) - marked IsItemHoveredRect()/IsMouseHoveringWindow() as obsolete, in favor of using the newly introduced flags for IsItemHovered() and IsWindowHovered(). See https://github.com/ocornut/imgui/issues/1382 for details.
 | 
					 - 2017/10/20 (1.52) - marked IsItemHoveredRect()/IsMouseHoveringWindow() as obsolete, in favor of using the newly introduced flags for IsItemHovered() and IsWindowHovered(). See https://github.com/ocornut/imgui/issues/1382 for details.
 | 
				
			||||||
@@ -2312,6 +2313,8 @@ bool ImGui::IsItemHovered(ImGuiHoveredFlags flags)
 | 
				
			|||||||
 | 
					
 | 
				
			||||||
    if (!window->DC.LastItemRectHoveredRect)
 | 
					    if (!window->DC.LastItemRectHoveredRect)
 | 
				
			||||||
        return false;
 | 
					        return false;
 | 
				
			||||||
 | 
					    IM_ASSERT((flags & ImGuiHoveredFlags_FlattenChilds) == 0);   // Flags not supported by this function
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    // [2017/10/16] Reverted commit 344d48be3 and testing RootWindow instead. I believe it is correct to NOT test for RootWindow but this leaves us unable to use IsItemHovered() after EndChild() itself.
 | 
					    // [2017/10/16] Reverted commit 344d48be3 and testing RootWindow instead. I believe it is correct to NOT test for RootWindow but this leaves us unable to use IsItemHovered() after EndChild() itself.
 | 
				
			||||||
    // Until a solution is found I believe reverting to the test from 2017/09/27 is safe since this was the test that has been running for a long while.
 | 
					    // Until a solution is found I believe reverting to the test from 2017/09/27 is safe since this was the test that has been running for a long while.
 | 
				
			||||||
    //if (g.HoveredWindow != window)
 | 
					    //if (g.HoveredWindow != window)
 | 
				
			||||||
@@ -3917,6 +3920,7 @@ void ImGui::RenderTriangle(ImVec2 p_min, ImGuiDir dir, float scale)
 | 
				
			|||||||
    case ImGuiDir_Left:
 | 
					    case ImGuiDir_Left:
 | 
				
			||||||
        r = -r; // ...fall through, no break!
 | 
					        r = -r; // ...fall through, no break!
 | 
				
			||||||
    case ImGuiDir_Right:
 | 
					    case ImGuiDir_Right:
 | 
				
			||||||
 | 
					        center.x -= r * 0.25f;
 | 
				
			||||||
        a = ImVec2(1,0) * r;
 | 
					        a = ImVec2(1,0) * r;
 | 
				
			||||||
        b = ImVec2(-0.500f,+0.866f) * r;
 | 
					        b = ImVec2(-0.500f,+0.866f) * r;
 | 
				
			||||||
        c = ImVec2(-0.500f,-0.866f) * r;
 | 
					        c = ImVec2(-0.500f,-0.866f) * r;
 | 
				
			||||||
@@ -5090,24 +5094,17 @@ bool ImGui::Begin(const char* name, bool* p_open, ImGuiWindowFlags flags)
 | 
				
			|||||||
        g.SetNextWindowFocus = false;
 | 
					        g.SetNextWindowFocus = false;
 | 
				
			||||||
    }
 | 
					    }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    // Update known root window (if we are a child window, otherwise window == window->RootWindow)
 | 
					 | 
				
			||||||
    int root_idx, root_non_popup_idx;
 | 
					 | 
				
			||||||
    for (root_idx = g.CurrentWindowStack.Size - 1; root_idx > 0; root_idx--)
 | 
					 | 
				
			||||||
        if (!(g.CurrentWindowStack[root_idx]->Flags & ImGuiWindowFlags_ChildWindow))
 | 
					 | 
				
			||||||
            break;
 | 
					 | 
				
			||||||
    for (root_non_popup_idx = root_idx; root_non_popup_idx > 0; root_non_popup_idx--)
 | 
					 | 
				
			||||||
        if (!(g.CurrentWindowStack[root_non_popup_idx]->Flags & (ImGuiWindowFlags_ChildWindow | ImGuiWindowFlags_Popup)) || (g.CurrentWindowStack[root_non_popup_idx]->Flags & ImGuiWindowFlags_Modal))
 | 
					 | 
				
			||||||
            break;
 | 
					 | 
				
			||||||
    window->ParentWindow = parent_window;
 | 
					 | 
				
			||||||
    window->RootWindow = g.CurrentWindowStack[root_idx];
 | 
					 | 
				
			||||||
    window->RootNonPopupWindow = g.CurrentWindowStack[root_non_popup_idx];      // Used to display TitleBgActive color and for selecting which window to use for NavWindowing
 | 
					 | 
				
			||||||
    window->RootNavWindow = window;
 | 
					 | 
				
			||||||
    //while (window->RootNavWindow->Flags & ImGuiWindowFlags_NavFlattened)
 | 
					 | 
				
			||||||
    //    window->RootNavWindow = window->RootNavWindow->ParentWindow;
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
    // When reusing window again multiple times a frame, just append content (don't need to setup again)
 | 
					    // When reusing window again multiple times a frame, just append content (don't need to setup again)
 | 
				
			||||||
    if (first_begin_of_the_frame)
 | 
					    if (first_begin_of_the_frame)
 | 
				
			||||||
    {
 | 
					    {
 | 
				
			||||||
 | 
					        // Initialize
 | 
				
			||||||
 | 
					        window->ParentWindow = parent_window;
 | 
				
			||||||
 | 
					        window->RootWindow = !(flags & ImGuiWindowFlags_ChildWindow) ? window : parent_window->RootWindow;
 | 
				
			||||||
 | 
					        window->RootNonPopupWindow = !(flags & (ImGuiWindowFlags_ChildWindow | ImGuiWindowFlags_Popup)) || (flags & ImGuiWindowFlags_Modal) ? window : parent_window->RootNonPopupWindow; // Used to display TitleBgActive color and for selecting which window to use for NavWindowing
 | 
				
			||||||
 | 
					        window->RootNavWindow = window;
 | 
				
			||||||
 | 
					        //while (window->RootNavWindow->Flags & ImGuiWindowFlags_NavFlattened)
 | 
				
			||||||
 | 
					        //    window->RootNavWindow = window->RootNavWindow->ParentWindow;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
        window->Active = true;
 | 
					        window->Active = true;
 | 
				
			||||||
        window->OrderWithinParent = 0;
 | 
					        window->OrderWithinParent = 0;
 | 
				
			||||||
        window->BeginCount = 0;
 | 
					        window->BeginCount = 0;
 | 
				
			||||||
@@ -6089,12 +6086,20 @@ bool ImGui::IsWindowHovered(ImGuiHoveredFlags flags)
 | 
				
			|||||||
{
 | 
					{
 | 
				
			||||||
    IM_ASSERT((flags & ImGuiHoveredFlags_AllowWhenOverlapped) == 0);   // Flags not supported by this function
 | 
					    IM_ASSERT((flags & ImGuiHoveredFlags_AllowWhenOverlapped) == 0);   // Flags not supported by this function
 | 
				
			||||||
    ImGuiContext& g = *GImGui;
 | 
					    ImGuiContext& g = *GImGui;
 | 
				
			||||||
    if (g.HoveredWindow != g.CurrentWindow)
 | 
					    if (flags & ImGuiHoveredFlags_FlattenChilds)
 | 
				
			||||||
        return false;
 | 
					    {
 | 
				
			||||||
 | 
					        if (g.HoveredRootWindow != g.CurrentWindow->RootWindow)
 | 
				
			||||||
 | 
					            return false;
 | 
				
			||||||
 | 
					    }
 | 
				
			||||||
 | 
					    else
 | 
				
			||||||
 | 
					    {
 | 
				
			||||||
 | 
					        if (g.HoveredWindow != g.CurrentWindow)
 | 
				
			||||||
 | 
					            return false;
 | 
				
			||||||
 | 
					    }
 | 
				
			||||||
    if (!IsWindowContentHoverable(g.HoveredRootWindow, flags))
 | 
					    if (!IsWindowContentHoverable(g.HoveredRootWindow, flags))
 | 
				
			||||||
        return false;
 | 
					        return false;
 | 
				
			||||||
    if (!(flags & ImGuiHoveredFlags_AllowWhenBlockedByActiveItem))
 | 
					    if (!(flags & ImGuiHoveredFlags_AllowWhenBlockedByActiveItem))
 | 
				
			||||||
        if (g.ActiveId != 0 && g.ActiveIdWindow != g.CurrentWindow)
 | 
					        if (g.ActiveId != 0 && !g.ActiveIdAllowOverlap && g.ActiveId != g.HoveredWindow->MoveId)
 | 
				
			||||||
            return false;
 | 
					            return false;
 | 
				
			||||||
    return true;
 | 
					    return true;
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
@@ -6120,21 +6125,6 @@ bool ImGui::IsRootWindowOrAnyChildFocused()
 | 
				
			|||||||
    return g.NavWindow && g.NavWindow->RootWindow == g.CurrentWindow->RootWindow;
 | 
					    return g.NavWindow && g.NavWindow->RootWindow == g.CurrentWindow->RootWindow;
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
bool ImGui::IsRootWindowOrAnyChildHovered(ImGuiHoveredFlags flags)
 | 
					 | 
				
			||||||
{
 | 
					 | 
				
			||||||
    ImGuiContext& g = *GImGui;
 | 
					 | 
				
			||||||
    IM_ASSERT((flags & ImGuiHoveredFlags_AllowWhenOverlapped) == 0);   // Flags not supported by this function
 | 
					 | 
				
			||||||
    IM_ASSERT(g.CurrentWindow);                                        // Not inside a Begin()/End()
 | 
					 | 
				
			||||||
    if (!g.HoveredRootWindow || (g.HoveredRootWindow != g.CurrentWindow->RootWindow))
 | 
					 | 
				
			||||||
        return false;
 | 
					 | 
				
			||||||
    if (!IsWindowContentHoverable(g.HoveredRootWindow, flags))
 | 
					 | 
				
			||||||
        return false;
 | 
					 | 
				
			||||||
    if (!(flags & ImGuiHoveredFlags_AllowWhenBlockedByActiveItem))
 | 
					 | 
				
			||||||
        if (g.ActiveId != 0 && g.ActiveIdWindow != g.CurrentWindow)
 | 
					 | 
				
			||||||
            return false;
 | 
					 | 
				
			||||||
    return true;
 | 
					 | 
				
			||||||
}
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
float ImGui::GetWindowWidth()
 | 
					float ImGui::GetWindowWidth()
 | 
				
			||||||
{
 | 
					{
 | 
				
			||||||
    ImGuiWindow* window = GImGui->CurrentWindow;
 | 
					    ImGuiWindow* window = GImGui->CurrentWindow;
 | 
				
			||||||
@@ -10234,7 +10224,7 @@ bool ImGui::MenuItem(const char* label, const char* shortcut, bool selected, boo
 | 
				
			|||||||
            PopStyleColor();
 | 
					            PopStyleColor();
 | 
				
			||||||
        }
 | 
					        }
 | 
				
			||||||
        if (selected)
 | 
					        if (selected)
 | 
				
			||||||
            RenderCheckMark(pos + ImVec2(window->MenuColumns.Pos[2] + extra_w + g.FontSize * (0.20f+0.200f), g.FontSize * 0.134f * 0.5f), GetColorU32(enabled ? ImGuiCol_Text : ImGuiCol_TextDisabled), g.FontSize  * 0.866f);
 | 
					            RenderCheckMark(pos + ImVec2(window->MenuColumns.Pos[2] + extra_w + g.FontSize * 0.40f, g.FontSize * 0.134f * 0.5f), GetColorU32(enabled ? ImGuiCol_Text : ImGuiCol_TextDisabled), g.FontSize  * 0.866f);
 | 
				
			||||||
    }
 | 
					    }
 | 
				
			||||||
    return pressed;
 | 
					    return pressed;
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
@@ -10384,7 +10374,7 @@ bool ImGui::BeginMenu(const char* label, bool enabled)
 | 
				
			|||||||
        float extra_w = ImMax(0.0f, GetContentRegionAvail().x - w);
 | 
					        float extra_w = ImMax(0.0f, GetContentRegionAvail().x - w);
 | 
				
			||||||
        pressed = Selectable(label, menu_is_open, ImGuiSelectableFlags_Menu | ImGuiSelectableFlags_DontClosePopups | ImGuiSelectableFlags_DrawFillAvailWidth | (!enabled ? ImGuiSelectableFlags_Disabled : 0), ImVec2(w, 0.0f));
 | 
					        pressed = Selectable(label, menu_is_open, ImGuiSelectableFlags_Menu | ImGuiSelectableFlags_DontClosePopups | ImGuiSelectableFlags_DrawFillAvailWidth | (!enabled ? ImGuiSelectableFlags_Disabled : 0), ImVec2(w, 0.0f));
 | 
				
			||||||
        if (!enabled) PushStyleColor(ImGuiCol_Text, g.Style.Colors[ImGuiCol_TextDisabled]);
 | 
					        if (!enabled) PushStyleColor(ImGuiCol_Text, g.Style.Colors[ImGuiCol_TextDisabled]);
 | 
				
			||||||
        RenderTriangle(pos + ImVec2(window->MenuColumns.Pos[2] + extra_w + g.FontSize * 0.20f, 0.0f), ImGuiDir_Right);
 | 
					        RenderTriangle(pos + ImVec2(window->MenuColumns.Pos[2] + extra_w + g.FontSize * 0.30f, 0.0f), ImGuiDir_Right);
 | 
				
			||||||
        if (!enabled) PopStyleColor();
 | 
					        if (!enabled) PopStyleColor();
 | 
				
			||||||
    }
 | 
					    }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 
 | 
				
			|||||||
							
								
								
									
										5
									
								
								imgui.h
									
									
									
									
									
								
							
							
						
						
									
										5
									
								
								imgui.h
									
									
									
									
									
								
							@@ -443,7 +443,6 @@ namespace ImGui
 | 
				
			|||||||
    IMGUI_API bool          IsWindowHovered(ImGuiHoveredFlags flags = 0);                       // is current Begin()-ed window hovered (and typically: not blocked by a popup/modal)?
 | 
					    IMGUI_API bool          IsWindowHovered(ImGuiHoveredFlags flags = 0);                       // is current Begin()-ed window hovered (and typically: not blocked by a popup/modal)?
 | 
				
			||||||
    IMGUI_API bool          IsRootWindowFocused();                                              // is current Begin()-ed root window focused (root = top-most parent of a child, otherwise self)?
 | 
					    IMGUI_API bool          IsRootWindowFocused();                                              // is current Begin()-ed root window focused (root = top-most parent of a child, otherwise self)?
 | 
				
			||||||
    IMGUI_API bool          IsRootWindowOrAnyChildFocused();                                    // is current Begin()-ed root window or any of its child (including current window) focused?
 | 
					    IMGUI_API bool          IsRootWindowOrAnyChildFocused();                                    // is current Begin()-ed root window or any of its child (including current window) focused?
 | 
				
			||||||
    IMGUI_API bool          IsRootWindowOrAnyChildHovered(ImGuiHoveredFlags flags = 0);         // is current Begin()-ed root window or any of its child (including current window) hovered and hoverable (not blocked by a popup)?
 | 
					 | 
				
			||||||
    IMGUI_API bool          IsAnyWindowFocused();
 | 
					    IMGUI_API bool          IsAnyWindowFocused();
 | 
				
			||||||
    IMGUI_API bool          IsAnyWindowHovered();                                               // is mouse hovering any visible window
 | 
					    IMGUI_API bool          IsAnyWindowHovered();                                               // is mouse hovering any visible window
 | 
				
			||||||
    IMGUI_API bool          IsRectVisible(const ImVec2& size);                                  // test if rectangle (of given size, starting from cursor position) is visible / not clipped.
 | 
					    IMGUI_API bool          IsRectVisible(const ImVec2& size);                                  // test if rectangle (of given size, starting from cursor position) is visible / not clipped.
 | 
				
			||||||
@@ -594,6 +593,7 @@ enum ImGuiHoveredFlags_
 | 
				
			|||||||
    //ImGuiHoveredFlags_AllowWhenBlockedByModal     = 1 << 1,   // Return true even if a modal popup window is normally blocking access to this item/window. FIXME-TODO: Unavailable yet.
 | 
					    //ImGuiHoveredFlags_AllowWhenBlockedByModal     = 1 << 1,   // Return true even if a modal popup window is normally blocking access to this item/window. FIXME-TODO: Unavailable yet.
 | 
				
			||||||
    ImGuiHoveredFlags_AllowWhenBlockedByActiveItem  = 1 << 2,   // Return true even if an active item is blocking access to this item/window
 | 
					    ImGuiHoveredFlags_AllowWhenBlockedByActiveItem  = 1 << 2,   // Return true even if an active item is blocking access to this item/window
 | 
				
			||||||
    ImGuiHoveredFlags_AllowWhenOverlapped           = 1 << 3,   // Return true even if the position is overlapped by another window
 | 
					    ImGuiHoveredFlags_AllowWhenOverlapped           = 1 << 3,   // Return true even if the position is overlapped by another window
 | 
				
			||||||
 | 
					    ImGuiHoveredFlags_FlattenChilds                 = 1 << 4,   // Treat all child windows as the same window (for IsWindowHovered())
 | 
				
			||||||
    ImGuiHoveredFlags_RectOnly                      = ImGuiHoveredFlags_AllowWhenBlockedByPopup | ImGuiHoveredFlags_AllowWhenBlockedByActiveItem | ImGuiHoveredFlags_AllowWhenOverlapped
 | 
					    ImGuiHoveredFlags_RectOnly                      = ImGuiHoveredFlags_AllowWhenBlockedByPopup | ImGuiHoveredFlags_AllowWhenBlockedByActiveItem | ImGuiHoveredFlags_AllowWhenOverlapped
 | 
				
			||||||
};
 | 
					};
 | 
				
			||||||
 | 
					
 | 
				
			||||||
@@ -942,6 +942,7 @@ struct ImGuiIO
 | 
				
			|||||||
#ifndef IMGUI_DISABLE_OBSOLETE_FUNCTIONS
 | 
					#ifndef IMGUI_DISABLE_OBSOLETE_FUNCTIONS
 | 
				
			||||||
namespace ImGui
 | 
					namespace ImGui
 | 
				
			||||||
{
 | 
					{
 | 
				
			||||||
 | 
					    static inline bool      IsRootWindowOrAnyChildHovered(ImGuiHoveredFlags flags = 0) { return IsItemHovered(flags | ImGuiHoveredFlags_FlattenChilds); } // OBSOLETE 1.53+ use flags directly
 | 
				
			||||||
    bool                    Begin(const char* name, bool* p_open, const ImVec2& size_on_first_use, float bg_alpha_override = -1.0f, ImGuiWindowFlags flags = 0); // OBSOLETE 1.52+. use SetNextWindowSize() instead if you want to set a window size.
 | 
					    bool                    Begin(const char* name, bool* p_open, const ImVec2& size_on_first_use, float bg_alpha_override = -1.0f, ImGuiWindowFlags flags = 0); // OBSOLETE 1.52+. use SetNextWindowSize() instead if you want to set a window size.
 | 
				
			||||||
    static inline void      AlignFirstTextHeightToWidgets() { AlignTextToFramePadding(); }     // OBSOLETE 1.52+
 | 
					    static inline void      AlignFirstTextHeightToWidgets() { AlignTextToFramePadding(); }     // OBSOLETE 1.52+
 | 
				
			||||||
    static inline void      SetNextWindowPosCenter(ImGuiCond cond = 0) { SetNextWindowPos(ImVec2(GetIO().DisplaySize.x * 0.5f, GetIO().DisplaySize.y * 0.5f), cond, ImVec2(0.5f, 0.5f)); } // OBSOLETE 1.52+
 | 
					    static inline void      SetNextWindowPosCenter(ImGuiCond cond = 0) { SetNextWindowPos(ImVec2(GetIO().DisplaySize.x * 0.5f, GetIO().DisplaySize.y * 0.5f), cond, ImVec2(0.5f, 0.5f)); } // OBSOLETE 1.52+
 | 
				
			||||||
@@ -1405,7 +1406,7 @@ struct ImFontConfig
 | 
				
			|||||||
    float           SizePixels;                 //          // Size in pixels for rasterizer.
 | 
					    float           SizePixels;                 //          // Size in pixels for rasterizer.
 | 
				
			||||||
    int             OversampleH, OversampleV;   // 3, 1     // Rasterize at higher quality for sub-pixel positioning. We don't use sub-pixel positions on the Y axis.
 | 
					    int             OversampleH, OversampleV;   // 3, 1     // Rasterize at higher quality for sub-pixel positioning. We don't use sub-pixel positions on the Y axis.
 | 
				
			||||||
    bool            PixelSnapH;                 // false    // Align every glyph to pixel boundary. Useful e.g. if you are merging a non-pixel aligned font with the default font. If enabled, you can set OversampleH/V to 1.
 | 
					    bool            PixelSnapH;                 // false    // Align every glyph to pixel boundary. Useful e.g. if you are merging a non-pixel aligned font with the default font. If enabled, you can set OversampleH/V to 1.
 | 
				
			||||||
    ImVec2          GlyphExtraSpacing;          // 1, 0     // Extra spacing (in pixels) between glyphs. Only X axis is supported for now.
 | 
					    ImVec2          GlyphExtraSpacing;          // 0, 0     // Extra spacing (in pixels) between glyphs. Only X axis is supported for now.
 | 
				
			||||||
    ImVec2          GlyphOffset;                // 0, 0     // Offset all glyphs from this font input.
 | 
					    ImVec2          GlyphOffset;                // 0, 0     // Offset all glyphs from this font input.
 | 
				
			||||||
    const ImWchar*  GlyphRanges;                // NULL     // Pointer to a user-provided list of Unicode range (2 value per range, values are inclusive, zero-terminated list). THE ARRAY DATA NEEDS TO PERSIST AS LONG AS THE FONT IS ALIVE.
 | 
					    const ImWchar*  GlyphRanges;                // NULL     // Pointer to a user-provided list of Unicode range (2 value per range, values are inclusive, zero-terminated list). THE ARRAY DATA NEEDS TO PERSIST AS LONG AS THE FONT IS ALIVE.
 | 
				
			||||||
    bool            MergeMode;                  // false    // Merge into previous ImFont, so you can combine multiple inputs font into one ImFont (e.g. ASCII font + icons + Japanese glyphs). You may want to use GlyphOffset.y when merge font of different heights.
 | 
					    bool            MergeMode;                  // false    // Merge into previous ImFont, so you can combine multiple inputs font into one ImFont (e.g. ASCII font + icons + Japanese glyphs). You may want to use GlyphOffset.y when merge font of different heights.
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -1816,14 +1816,16 @@ void ImGui::ShowTestWindow(bool* p_open)
 | 
				
			|||||||
 | 
					
 | 
				
			||||||
        if (ImGui::TreeNode("Hovering"))
 | 
					        if (ImGui::TreeNode("Hovering"))
 | 
				
			||||||
        {
 | 
					        {
 | 
				
			||||||
            // Testing IsWindowHovered() function
 | 
					            // Testing IsWindowHovered() function with its various flags (note that the flags can be combined)
 | 
				
			||||||
            ImGui::BulletText(
 | 
					            ImGui::BulletText(
 | 
				
			||||||
                "IsWindowHovered() = %d\n"
 | 
					                "IsWindowHovered() = %d\n"
 | 
				
			||||||
                "IsWindowHovered(_AllowWhenBlockedByPopup) = %d\n"
 | 
					                "IsWindowHovered(_AllowWhenBlockedByPopup) = %d\n"
 | 
				
			||||||
                "IsWindowHovered(_AllowWhenBlockedByActiveItem) = %d\n",
 | 
					                "IsWindowHovered(_AllowWhenBlockedByActiveItem) = %d\n"
 | 
				
			||||||
 | 
					                "IsWindowHovered(_FlattenChilds) = %d\n",
 | 
				
			||||||
                ImGui::IsWindowHovered(),
 | 
					                ImGui::IsWindowHovered(),
 | 
				
			||||||
                ImGui::IsWindowHovered(ImGuiHoveredFlags_AllowWhenBlockedByPopup),
 | 
					                ImGui::IsWindowHovered(ImGuiHoveredFlags_AllowWhenBlockedByPopup),
 | 
				
			||||||
                ImGui::IsWindowHovered(ImGuiHoveredFlags_AllowWhenBlockedByActiveItem));
 | 
					                ImGui::IsWindowHovered(ImGuiHoveredFlags_AllowWhenBlockedByActiveItem),
 | 
				
			||||||
 | 
					                ImGui::IsWindowHovered(ImGuiHoveredFlags_FlattenChilds));
 | 
				
			||||||
 | 
					
 | 
				
			||||||
            // Testing IsItemHovered() function (because BulletText is an item itself and that would affect the output of IsItemHovered, we pass all lines in a single items to shorten the code)
 | 
					            // Testing IsItemHovered() function (because BulletText is an item itself and that would affect the output of IsItemHovered, we pass all lines in a single items to shorten the code)
 | 
				
			||||||
            ImGui::Button("ITEM");
 | 
					            ImGui::Button("ITEM");
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -188,8 +188,8 @@ void ImGui::StyleColorsDark(ImGuiStyle* dst)
 | 
				
			|||||||
    colors[ImGuiCol_FrameBgHovered]         = ImVec4(0.26f, 0.59f, 0.98f, 0.40f);
 | 
					    colors[ImGuiCol_FrameBgHovered]         = ImVec4(0.26f, 0.59f, 0.98f, 0.40f);
 | 
				
			||||||
    colors[ImGuiCol_FrameBgActive]          = ImVec4(0.26f, 0.59f, 0.98f, 0.67f);
 | 
					    colors[ImGuiCol_FrameBgActive]          = ImVec4(0.26f, 0.59f, 0.98f, 0.67f);
 | 
				
			||||||
    colors[ImGuiCol_TitleBg]                = ImVec4(0.04f, 0.04f, 0.04f, 1.00f);
 | 
					    colors[ImGuiCol_TitleBg]                = ImVec4(0.04f, 0.04f, 0.04f, 1.00f);
 | 
				
			||||||
    colors[ImGuiCol_TitleBgCollapsed]       = ImVec4(0.00f, 0.00f, 0.00f, 0.51f);
 | 
					 | 
				
			||||||
    colors[ImGuiCol_TitleBgActive]          = ImVec4(0.18f, 0.18f, 0.18f, 1.00f);
 | 
					    colors[ImGuiCol_TitleBgActive]          = ImVec4(0.18f, 0.18f, 0.18f, 1.00f);
 | 
				
			||||||
 | 
					    colors[ImGuiCol_TitleBgCollapsed]       = ImVec4(0.00f, 0.00f, 0.00f, 0.51f);
 | 
				
			||||||
    colors[ImGuiCol_MenuBarBg]              = ImVec4(0.14f, 0.14f, 0.14f, 1.00f);
 | 
					    colors[ImGuiCol_MenuBarBg]              = ImVec4(0.14f, 0.14f, 0.14f, 1.00f);
 | 
				
			||||||
    colors[ImGuiCol_ScrollbarBg]            = ImVec4(0.02f, 0.02f, 0.02f, 0.53f);
 | 
					    colors[ImGuiCol_ScrollbarBg]            = ImVec4(0.02f, 0.02f, 0.02f, 0.53f);
 | 
				
			||||||
    colors[ImGuiCol_ScrollbarGrab]          = ImVec4(0.31f, 0.31f, 0.31f, 1.00f);
 | 
					    colors[ImGuiCol_ScrollbarGrab]          = ImVec4(0.31f, 0.31f, 0.31f, 1.00f);
 | 
				
			||||||
 
 | 
				
			|||||||
		Reference in New Issue
	
	Block a user