mirror of
				https://github.com/ocornut/imgui.git
				synced 2025-11-04 09:44:29 +00:00 
			
		
		
		
	TabBar, Style: added ImGuiTabBarFlags_DrawSelectedOverline and ImGuiCol_TabSelectedOverline, ImGuiCol_TabDimmedSelectedOverline.
This commit is contained in:
		@@ -57,6 +57,9 @@ Other changes:
 | 
				
			|||||||
  shape change as honored by backends. Keeping this enabling will hopefully increase pressure
 | 
					  shape change as honored by backends. Keeping this enabling will hopefully increase pressure
 | 
				
			||||||
  on third-party backends to set ImGuiBackendFlags_HasMouseCursors and honor changes of
 | 
					  on third-party backends to set ImGuiBackendFlags_HasMouseCursors and honor changes of
 | 
				
			||||||
  ImGui::GetMouseCursor() value. (#1495)
 | 
					  ImGui::GetMouseCursor() value. (#1495)
 | 
				
			||||||
 | 
					- TabBar, Style: added ImGuiTabBarFlags_DrawSelectedOverline option to draw an horizontal
 | 
				
			||||||
 | 
					  line over selected tabs to increase visibility. This is used by docking.
 | 
				
			||||||
 | 
					  Added corresponding ImGuiCol_TabSelectedOverline and ImGuiCol_TabDimmedSelectedOverline colors.
 | 
				
			||||||
- Examples: GLFW+Vulkan, SDL+Vulkan: handle swap chain resize even without Vulkan
 | 
					- Examples: GLFW+Vulkan, SDL+Vulkan: handle swap chain resize even without Vulkan
 | 
				
			||||||
  returning VK_SUBOPTIMAL_KHR, which doesn't seem to happen on Wayland. (#7671)
 | 
					  returning VK_SUBOPTIMAL_KHR, which doesn't seem to happen on Wayland. (#7671)
 | 
				
			||||||
  [@AndreiNego, @ocornut]
 | 
					  [@AndreiNego, @ocornut]
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -3322,8 +3322,10 @@ const char* ImGui::GetStyleColorName(ImGuiCol idx)
 | 
				
			|||||||
    case ImGuiCol_TabHovered: return "TabHovered";
 | 
					    case ImGuiCol_TabHovered: return "TabHovered";
 | 
				
			||||||
    case ImGuiCol_Tab: return "Tab";
 | 
					    case ImGuiCol_Tab: return "Tab";
 | 
				
			||||||
    case ImGuiCol_TabSelected: return "TabSelected";
 | 
					    case ImGuiCol_TabSelected: return "TabSelected";
 | 
				
			||||||
 | 
					    case ImGuiCol_TabSelectedOverline: return "TabSelectedOverline";
 | 
				
			||||||
    case ImGuiCol_TabDimmed: return "TabDimmed";
 | 
					    case ImGuiCol_TabDimmed: return "TabDimmed";
 | 
				
			||||||
    case ImGuiCol_TabDimmedSelected: return "TabDimmedSelected";
 | 
					    case ImGuiCol_TabDimmedSelected: return "TabDimmedSelected";
 | 
				
			||||||
 | 
					    case ImGuiCol_TabDimmedSelectedOverline: return "TabDimmedSelectedOverline";
 | 
				
			||||||
    case ImGuiCol_PlotLines: return "PlotLines";
 | 
					    case ImGuiCol_PlotLines: return "PlotLines";
 | 
				
			||||||
    case ImGuiCol_PlotLinesHovered: return "PlotLinesHovered";
 | 
					    case ImGuiCol_PlotLinesHovered: return "PlotLinesHovered";
 | 
				
			||||||
    case ImGuiCol_PlotHistogram: return "PlotHistogram";
 | 
					    case ImGuiCol_PlotHistogram: return "PlotHistogram";
 | 
				
			||||||
 
 | 
				
			|||||||
							
								
								
									
										15
									
								
								imgui.h
									
									
									
									
									
								
							
							
						
						
									
										15
									
								
								imgui.h
									
									
									
									
									
								
							@@ -1212,8 +1212,9 @@ enum ImGuiTabBarFlags_
 | 
				
			|||||||
    ImGuiTabBarFlags_NoCloseWithMiddleMouseButton   = 1 << 3,   // Disable behavior of closing tabs (that are submitted with p_open != NULL) with middle mouse button. You may handle this behavior manually on user's side with if (IsItemHovered() && IsMouseClicked(2)) *p_open = false.
 | 
					    ImGuiTabBarFlags_NoCloseWithMiddleMouseButton   = 1 << 3,   // Disable behavior of closing tabs (that are submitted with p_open != NULL) with middle mouse button. You may handle this behavior manually on user's side with if (IsItemHovered() && IsMouseClicked(2)) *p_open = false.
 | 
				
			||||||
    ImGuiTabBarFlags_NoTabListScrollingButtons      = 1 << 4,   // Disable scrolling buttons (apply when fitting policy is ImGuiTabBarFlags_FittingPolicyScroll)
 | 
					    ImGuiTabBarFlags_NoTabListScrollingButtons      = 1 << 4,   // Disable scrolling buttons (apply when fitting policy is ImGuiTabBarFlags_FittingPolicyScroll)
 | 
				
			||||||
    ImGuiTabBarFlags_NoTooltip                      = 1 << 5,   // Disable tooltips when hovering a tab
 | 
					    ImGuiTabBarFlags_NoTooltip                      = 1 << 5,   // Disable tooltips when hovering a tab
 | 
				
			||||||
    ImGuiTabBarFlags_FittingPolicyResizeDown        = 1 << 6,   // Resize tabs when they don't fit
 | 
					    ImGuiTabBarFlags_DrawSelectedOverline           = 1 << 6,   // Draw selected overline markers over selected tab
 | 
				
			||||||
    ImGuiTabBarFlags_FittingPolicyScroll            = 1 << 7,   // Add scroll buttons when tabs don't fit
 | 
					    ImGuiTabBarFlags_FittingPolicyResizeDown        = 1 << 7,   // Resize tabs when they don't fit
 | 
				
			||||||
 | 
					    ImGuiTabBarFlags_FittingPolicyScroll            = 1 << 8,   // Add scroll buttons when tabs don't fit
 | 
				
			||||||
    ImGuiTabBarFlags_FittingPolicyMask_             = ImGuiTabBarFlags_FittingPolicyResizeDown | ImGuiTabBarFlags_FittingPolicyScroll,
 | 
					    ImGuiTabBarFlags_FittingPolicyMask_             = ImGuiTabBarFlags_FittingPolicyResizeDown | ImGuiTabBarFlags_FittingPolicyScroll,
 | 
				
			||||||
    ImGuiTabBarFlags_FittingPolicyDefault_          = ImGuiTabBarFlags_FittingPolicyResizeDown,
 | 
					    ImGuiTabBarFlags_FittingPolicyDefault_          = ImGuiTabBarFlags_FittingPolicyResizeDown,
 | 
				
			||||||
};
 | 
					};
 | 
				
			||||||
@@ -1583,10 +1584,12 @@ enum ImGuiCol_
 | 
				
			|||||||
    ImGuiCol_ResizeGripHovered,
 | 
					    ImGuiCol_ResizeGripHovered,
 | 
				
			||||||
    ImGuiCol_ResizeGripActive,
 | 
					    ImGuiCol_ResizeGripActive,
 | 
				
			||||||
    ImGuiCol_TabHovered,            // Tab background, when hovered
 | 
					    ImGuiCol_TabHovered,            // Tab background, when hovered
 | 
				
			||||||
    ImGuiCol_Tab,                   // Tab background, tab-bar is focused, tab is unselected
 | 
					    ImGuiCol_Tab,                   // Tab background, when tab-bar is focused & tab is unselected
 | 
				
			||||||
    ImGuiCol_TabSelected,           // Tab background, tab-bar is focused, tab is selected
 | 
					    ImGuiCol_TabSelected,           // Tab background, when tab-bar is focused & tab is selected
 | 
				
			||||||
    ImGuiCol_TabDimmed,             // Tab background, tab-bar is unfocused, tab is unselected
 | 
					    ImGuiCol_TabSelectedOverline,   // Tab horizontal overline, when tab-bar is focused & tab is selected
 | 
				
			||||||
    ImGuiCol_TabDimmedSelected,     // Tab background, tab-bar is unfocused, tab is selected
 | 
					    ImGuiCol_TabDimmed,             // Tab background, when tab-bar is unfocused & tab is unselected
 | 
				
			||||||
 | 
					    ImGuiCol_TabDimmedSelected,     // Tab background, when tab-bar is unfocused & tab is selected
 | 
				
			||||||
 | 
					    ImGuiCol_TabDimmedSelectedOverline,//..horizontal overline, when tab-bar is unfocused & tab is selected
 | 
				
			||||||
    ImGuiCol_PlotLines,
 | 
					    ImGuiCol_PlotLines,
 | 
				
			||||||
    ImGuiCol_PlotLinesHovered,
 | 
					    ImGuiCol_PlotLinesHovered,
 | 
				
			||||||
    ImGuiCol_PlotHistogram,
 | 
					    ImGuiCol_PlotHistogram,
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -1730,6 +1730,7 @@ static void ShowDemoWindowWidgets()
 | 
				
			|||||||
            ImGui::CheckboxFlags("ImGuiTabBarFlags_AutoSelectNewTabs", &tab_bar_flags, ImGuiTabBarFlags_AutoSelectNewTabs);
 | 
					            ImGui::CheckboxFlags("ImGuiTabBarFlags_AutoSelectNewTabs", &tab_bar_flags, ImGuiTabBarFlags_AutoSelectNewTabs);
 | 
				
			||||||
            ImGui::CheckboxFlags("ImGuiTabBarFlags_TabListPopupButton", &tab_bar_flags, ImGuiTabBarFlags_TabListPopupButton);
 | 
					            ImGui::CheckboxFlags("ImGuiTabBarFlags_TabListPopupButton", &tab_bar_flags, ImGuiTabBarFlags_TabListPopupButton);
 | 
				
			||||||
            ImGui::CheckboxFlags("ImGuiTabBarFlags_NoCloseWithMiddleMouseButton", &tab_bar_flags, ImGuiTabBarFlags_NoCloseWithMiddleMouseButton);
 | 
					            ImGui::CheckboxFlags("ImGuiTabBarFlags_NoCloseWithMiddleMouseButton", &tab_bar_flags, ImGuiTabBarFlags_NoCloseWithMiddleMouseButton);
 | 
				
			||||||
 | 
					            ImGui::CheckboxFlags("ImGuiTabBarFlags_DrawSelectedOverline", &tab_bar_flags, ImGuiTabBarFlags_DrawSelectedOverline);
 | 
				
			||||||
            if ((tab_bar_flags & ImGuiTabBarFlags_FittingPolicyMask_) == 0)
 | 
					            if ((tab_bar_flags & ImGuiTabBarFlags_FittingPolicyMask_) == 0)
 | 
				
			||||||
                tab_bar_flags |= ImGuiTabBarFlags_FittingPolicyDefault_;
 | 
					                tab_bar_flags |= ImGuiTabBarFlags_FittingPolicyDefault_;
 | 
				
			||||||
            if (ImGui::CheckboxFlags("ImGuiTabBarFlags_FittingPolicyResizeDown", &tab_bar_flags, ImGuiTabBarFlags_FittingPolicyResizeDown))
 | 
					            if (ImGui::CheckboxFlags("ImGuiTabBarFlags_FittingPolicyResizeDown", &tab_bar_flags, ImGuiTabBarFlags_FittingPolicyResizeDown))
 | 
				
			||||||
@@ -1738,11 +1739,13 @@ static void ShowDemoWindowWidgets()
 | 
				
			|||||||
                tab_bar_flags &= ~(ImGuiTabBarFlags_FittingPolicyMask_ ^ ImGuiTabBarFlags_FittingPolicyScroll);
 | 
					                tab_bar_flags &= ~(ImGuiTabBarFlags_FittingPolicyMask_ ^ ImGuiTabBarFlags_FittingPolicyScroll);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
            // Tab Bar
 | 
					            // Tab Bar
 | 
				
			||||||
 | 
					            ImGui::AlignTextToFramePadding();
 | 
				
			||||||
 | 
					            ImGui::Text("Opened:");
 | 
				
			||||||
            const char* names[4] = { "Artichoke", "Beetroot", "Celery", "Daikon" };
 | 
					            const char* names[4] = { "Artichoke", "Beetroot", "Celery", "Daikon" };
 | 
				
			||||||
            static bool opened[4] = { true, true, true, true }; // Persistent user state
 | 
					            static bool opened[4] = { true, true, true, true }; // Persistent user state
 | 
				
			||||||
            for (int n = 0; n < IM_ARRAYSIZE(opened); n++)
 | 
					            for (int n = 0; n < IM_ARRAYSIZE(opened); n++)
 | 
				
			||||||
            {
 | 
					            {
 | 
				
			||||||
                if (n > 0) { ImGui::SameLine(); }
 | 
					                ImGui::SameLine();
 | 
				
			||||||
                ImGui::Checkbox(names[n], &opened[n]);
 | 
					                ImGui::Checkbox(names[n], &opened[n]);
 | 
				
			||||||
            }
 | 
					            }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
@@ -8617,6 +8620,7 @@ void ShowExampleAppDocuments(bool* p_open)
 | 
				
			|||||||
    // Submit Tab Bar and Tabs
 | 
					    // Submit Tab Bar and Tabs
 | 
				
			||||||
    {
 | 
					    {
 | 
				
			||||||
        ImGuiTabBarFlags tab_bar_flags = (opt_fitting_flags) | (opt_reorderable ? ImGuiTabBarFlags_Reorderable : 0);
 | 
					        ImGuiTabBarFlags tab_bar_flags = (opt_fitting_flags) | (opt_reorderable ? ImGuiTabBarFlags_Reorderable : 0);
 | 
				
			||||||
 | 
					        tab_bar_flags |= ImGuiTabBarFlags_DrawSelectedOverline;
 | 
				
			||||||
        if (ImGui::BeginTabBar("##tabs", tab_bar_flags))
 | 
					        if (ImGui::BeginTabBar("##tabs", tab_bar_flags))
 | 
				
			||||||
        {
 | 
					        {
 | 
				
			||||||
            if (opt_reorderable)
 | 
					            if (opt_reorderable)
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -214,8 +214,10 @@ void ImGui::StyleColorsDark(ImGuiStyle* dst)
 | 
				
			|||||||
    colors[ImGuiCol_TabHovered]             = colors[ImGuiCol_HeaderHovered];
 | 
					    colors[ImGuiCol_TabHovered]             = colors[ImGuiCol_HeaderHovered];
 | 
				
			||||||
    colors[ImGuiCol_Tab]                    = ImLerp(colors[ImGuiCol_Header],       colors[ImGuiCol_TitleBgActive], 0.80f);
 | 
					    colors[ImGuiCol_Tab]                    = ImLerp(colors[ImGuiCol_Header],       colors[ImGuiCol_TitleBgActive], 0.80f);
 | 
				
			||||||
    colors[ImGuiCol_TabSelected]            = ImLerp(colors[ImGuiCol_HeaderActive], colors[ImGuiCol_TitleBgActive], 0.60f);
 | 
					    colors[ImGuiCol_TabSelected]            = ImLerp(colors[ImGuiCol_HeaderActive], colors[ImGuiCol_TitleBgActive], 0.60f);
 | 
				
			||||||
 | 
					    colors[ImGuiCol_TabSelectedOverline]    = colors[ImGuiCol_HeaderActive];
 | 
				
			||||||
    colors[ImGuiCol_TabDimmed]              = ImLerp(colors[ImGuiCol_Tab],          colors[ImGuiCol_TitleBg], 0.80f);
 | 
					    colors[ImGuiCol_TabDimmed]              = ImLerp(colors[ImGuiCol_Tab],          colors[ImGuiCol_TitleBg], 0.80f);
 | 
				
			||||||
    colors[ImGuiCol_TabDimmedSelected]      = ImLerp(colors[ImGuiCol_TabSelected],  colors[ImGuiCol_TitleBg], 0.40f);
 | 
					    colors[ImGuiCol_TabDimmedSelected]      = ImLerp(colors[ImGuiCol_TabSelected],  colors[ImGuiCol_TitleBg], 0.40f);
 | 
				
			||||||
 | 
					    colors[ImGuiCol_TabDimmedSelectedOverline] = ImVec4(0.50f, 0.50f, 0.50f, 1.00f);
 | 
				
			||||||
    colors[ImGuiCol_PlotLines]              = ImVec4(0.61f, 0.61f, 0.61f, 1.00f);
 | 
					    colors[ImGuiCol_PlotLines]              = ImVec4(0.61f, 0.61f, 0.61f, 1.00f);
 | 
				
			||||||
    colors[ImGuiCol_PlotLinesHovered]       = ImVec4(1.00f, 0.43f, 0.35f, 1.00f);
 | 
					    colors[ImGuiCol_PlotLinesHovered]       = ImVec4(1.00f, 0.43f, 0.35f, 1.00f);
 | 
				
			||||||
    colors[ImGuiCol_PlotHistogram]          = ImVec4(0.90f, 0.70f, 0.00f, 1.00f);
 | 
					    colors[ImGuiCol_PlotHistogram]          = ImVec4(0.90f, 0.70f, 0.00f, 1.00f);
 | 
				
			||||||
@@ -274,8 +276,10 @@ void ImGui::StyleColorsClassic(ImGuiStyle* dst)
 | 
				
			|||||||
    colors[ImGuiCol_TabHovered]             = colors[ImGuiCol_HeaderHovered];
 | 
					    colors[ImGuiCol_TabHovered]             = colors[ImGuiCol_HeaderHovered];
 | 
				
			||||||
    colors[ImGuiCol_Tab]                    = ImLerp(colors[ImGuiCol_Header],       colors[ImGuiCol_TitleBgActive], 0.80f);
 | 
					    colors[ImGuiCol_Tab]                    = ImLerp(colors[ImGuiCol_Header],       colors[ImGuiCol_TitleBgActive], 0.80f);
 | 
				
			||||||
    colors[ImGuiCol_TabSelected]            = ImLerp(colors[ImGuiCol_HeaderActive], colors[ImGuiCol_TitleBgActive], 0.60f);
 | 
					    colors[ImGuiCol_TabSelected]            = ImLerp(colors[ImGuiCol_HeaderActive], colors[ImGuiCol_TitleBgActive], 0.60f);
 | 
				
			||||||
 | 
					    colors[ImGuiCol_TabSelectedOverline]    = colors[ImGuiCol_HeaderActive];
 | 
				
			||||||
    colors[ImGuiCol_TabDimmed]              = ImLerp(colors[ImGuiCol_Tab],          colors[ImGuiCol_TitleBg], 0.80f);
 | 
					    colors[ImGuiCol_TabDimmed]              = ImLerp(colors[ImGuiCol_Tab],          colors[ImGuiCol_TitleBg], 0.80f);
 | 
				
			||||||
    colors[ImGuiCol_TabDimmedSelected]      = ImLerp(colors[ImGuiCol_TabSelected],  colors[ImGuiCol_TitleBg], 0.40f);
 | 
					    colors[ImGuiCol_TabDimmedSelected]      = ImLerp(colors[ImGuiCol_TabSelected],  colors[ImGuiCol_TitleBg], 0.40f);
 | 
				
			||||||
 | 
					    colors[ImGuiCol_TabDimmedSelectedOverline] = colors[ImGuiCol_HeaderActive];
 | 
				
			||||||
    colors[ImGuiCol_PlotLines]              = ImVec4(1.00f, 1.00f, 1.00f, 1.00f);
 | 
					    colors[ImGuiCol_PlotLines]              = ImVec4(1.00f, 1.00f, 1.00f, 1.00f);
 | 
				
			||||||
    colors[ImGuiCol_PlotLinesHovered]       = ImVec4(0.90f, 0.70f, 0.00f, 1.00f);
 | 
					    colors[ImGuiCol_PlotLinesHovered]       = ImVec4(0.90f, 0.70f, 0.00f, 1.00f);
 | 
				
			||||||
    colors[ImGuiCol_PlotHistogram]          = ImVec4(0.90f, 0.70f, 0.00f, 1.00f);
 | 
					    colors[ImGuiCol_PlotHistogram]          = ImVec4(0.90f, 0.70f, 0.00f, 1.00f);
 | 
				
			||||||
@@ -335,8 +339,10 @@ void ImGui::StyleColorsLight(ImGuiStyle* dst)
 | 
				
			|||||||
    colors[ImGuiCol_TabHovered]             = colors[ImGuiCol_HeaderHovered];
 | 
					    colors[ImGuiCol_TabHovered]             = colors[ImGuiCol_HeaderHovered];
 | 
				
			||||||
    colors[ImGuiCol_Tab]                    = ImLerp(colors[ImGuiCol_Header],       colors[ImGuiCol_TitleBgActive], 0.90f);
 | 
					    colors[ImGuiCol_Tab]                    = ImLerp(colors[ImGuiCol_Header],       colors[ImGuiCol_TitleBgActive], 0.90f);
 | 
				
			||||||
    colors[ImGuiCol_TabSelected]            = ImLerp(colors[ImGuiCol_HeaderActive], colors[ImGuiCol_TitleBgActive], 0.60f);
 | 
					    colors[ImGuiCol_TabSelected]            = ImLerp(colors[ImGuiCol_HeaderActive], colors[ImGuiCol_TitleBgActive], 0.60f);
 | 
				
			||||||
 | 
					    colors[ImGuiCol_TabSelectedOverline]    = colors[ImGuiCol_HeaderActive];
 | 
				
			||||||
    colors[ImGuiCol_TabDimmed]              = ImLerp(colors[ImGuiCol_Tab],          colors[ImGuiCol_TitleBg], 0.80f);
 | 
					    colors[ImGuiCol_TabDimmed]              = ImLerp(colors[ImGuiCol_Tab],          colors[ImGuiCol_TitleBg], 0.80f);
 | 
				
			||||||
    colors[ImGuiCol_TabDimmedSelected]      = ImLerp(colors[ImGuiCol_TabSelected],  colors[ImGuiCol_TitleBg], 0.40f);
 | 
					    colors[ImGuiCol_TabDimmedSelected]      = ImLerp(colors[ImGuiCol_TabSelected],  colors[ImGuiCol_TitleBg], 0.40f);
 | 
				
			||||||
 | 
					    colors[ImGuiCol_TabDimmedSelectedOverline] = ImVec4(0.26f, 0.59f, 1.00f, 1.00f);
 | 
				
			||||||
    colors[ImGuiCol_PlotLines]              = ImVec4(0.39f, 0.39f, 0.39f, 1.00f);
 | 
					    colors[ImGuiCol_PlotLines]              = ImVec4(0.39f, 0.39f, 0.39f, 1.00f);
 | 
				
			||||||
    colors[ImGuiCol_PlotLinesHovered]       = ImVec4(1.00f, 0.43f, 0.35f, 1.00f);
 | 
					    colors[ImGuiCol_PlotLinesHovered]       = ImVec4(1.00f, 0.43f, 0.35f, 1.00f);
 | 
				
			||||||
    colors[ImGuiCol_PlotHistogram]          = ImVec4(0.90f, 0.70f, 0.00f, 1.00f);
 | 
					    colors[ImGuiCol_PlotHistogram]          = ImVec4(0.90f, 0.70f, 0.00f, 1.00f);
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -7921,7 +7921,9 @@ bool    ImGui::BeginTabBar(const char* str_id, ImGuiTabBarFlags flags)
 | 
				
			|||||||
    tab_bar->ID = id;
 | 
					    tab_bar->ID = id;
 | 
				
			||||||
    tab_bar->SeparatorMinX = tab_bar->BarRect.Min.x - IM_TRUNC(window->WindowPadding.x * 0.5f);
 | 
					    tab_bar->SeparatorMinX = tab_bar->BarRect.Min.x - IM_TRUNC(window->WindowPadding.x * 0.5f);
 | 
				
			||||||
    tab_bar->SeparatorMaxX = tab_bar->BarRect.Max.x + IM_TRUNC(window->WindowPadding.x * 0.5f);
 | 
					    tab_bar->SeparatorMaxX = tab_bar->BarRect.Max.x + IM_TRUNC(window->WindowPadding.x * 0.5f);
 | 
				
			||||||
    return BeginTabBarEx(tab_bar, tab_bar_bb, flags | ImGuiTabBarFlags_IsFocused);
 | 
					    //if (g.NavWindow && IsWindowChildOf(g.NavWindow, window, false, false))
 | 
				
			||||||
 | 
					    flags |= ImGuiTabBarFlags_IsFocused;
 | 
				
			||||||
 | 
					    return BeginTabBarEx(tab_bar, tab_bar_bb, flags);
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
bool    ImGui::BeginTabBarEx(ImGuiTabBar* tab_bar, const ImRect& tab_bar_bb, ImGuiTabBarFlags flags)
 | 
					bool    ImGui::BeginTabBarEx(ImGuiTabBar* tab_bar, const ImRect& tab_bar_bb, ImGuiTabBarFlags flags)
 | 
				
			||||||
@@ -8837,6 +8839,14 @@ bool    ImGui::TabItemEx(ImGuiTabBar* tab_bar, const char* label, bool* p_open,
 | 
				
			|||||||
    ImDrawList* display_draw_list = window->DrawList;
 | 
					    ImDrawList* display_draw_list = window->DrawList;
 | 
				
			||||||
    const ImU32 tab_col = GetColorU32((held || hovered) ? ImGuiCol_TabHovered : tab_contents_visible ? (tab_bar_focused ? ImGuiCol_TabSelected : ImGuiCol_TabDimmedSelected) : (tab_bar_focused ? ImGuiCol_Tab : ImGuiCol_TabDimmed));
 | 
					    const ImU32 tab_col = GetColorU32((held || hovered) ? ImGuiCol_TabHovered : tab_contents_visible ? (tab_bar_focused ? ImGuiCol_TabSelected : ImGuiCol_TabDimmedSelected) : (tab_bar_focused ? ImGuiCol_Tab : ImGuiCol_TabDimmed));
 | 
				
			||||||
    TabItemBackground(display_draw_list, bb, flags, tab_col);
 | 
					    TabItemBackground(display_draw_list, bb, flags, tab_col);
 | 
				
			||||||
 | 
					    if (tab_contents_visible && (tab_bar->Flags & ImGuiTabBarFlags_DrawSelectedOverline))
 | 
				
			||||||
 | 
					    {
 | 
				
			||||||
 | 
					        float x_offset = IM_TRUNC(0.4f * style.TabRounding);
 | 
				
			||||||
 | 
					        if (x_offset < 2.0f * g.CurrentDpiScale)
 | 
				
			||||||
 | 
					            x_offset = 0.0f;
 | 
				
			||||||
 | 
					        float y_offset = 1.0f * g.CurrentDpiScale;
 | 
				
			||||||
 | 
					        display_draw_list->AddLine(bb.GetTL() + ImVec2(x_offset, y_offset), bb.GetTR() + ImVec2(-x_offset, y_offset), GetColorU32(tab_bar_focused ? ImGuiCol_TabSelectedOverline : ImGuiCol_TabDimmedSelectedOverline), 2.0f * g.CurrentDpiScale);
 | 
				
			||||||
 | 
					    }
 | 
				
			||||||
    RenderNavHighlight(bb, id);
 | 
					    RenderNavHighlight(bb, id);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    // Select with right mouse button. This is so the common idiom for context menu automatically highlight the current widget.
 | 
					    // Select with right mouse button. This is so the common idiom for context menu automatically highlight the current widget.
 | 
				
			||||||
 
 | 
				
			|||||||
		Reference in New Issue
	
	Block a user