mirror of
				https://github.com/ocornut/imgui.git
				synced 2025-11-04 01:34:32 +00:00 
			
		
		
		
	Added Bullet() + usage examples
This commit is contained in:
		
							
								
								
									
										29
									
								
								imgui.cpp
									
									
									
									
									
								
							
							
						
						
									
										29
									
								
								imgui.cpp
									
									
									
									
									
								
							@@ -4242,6 +4242,28 @@ bool ImGui::CollapsingHeader(const char* label, const char* str_id, const bool d
 | 
				
			|||||||
    return opened;
 | 
					    return opened;
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					void ImGui::Bullet()
 | 
				
			||||||
 | 
					{
 | 
				
			||||||
 | 
					    ImGuiState& g = *GImGui;
 | 
				
			||||||
 | 
					    ImGuiWindow* window = GetCurrentWindow();
 | 
				
			||||||
 | 
					    if (window->SkipItems)
 | 
				
			||||||
 | 
					        return;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    const ImGuiStyle& style = g.Style;
 | 
				
			||||||
 | 
					    const float line_height = window->FontSize();
 | 
				
			||||||
 | 
					    const ImGuiAabb bb(window->DC.CursorPos, window->DC.CursorPos + ImVec2(line_height, line_height));
 | 
				
			||||||
 | 
					    ItemSize(bb);
 | 
				
			||||||
 | 
					    if (!ItemAdd(bb, NULL))
 | 
				
			||||||
 | 
					        return;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    // Render
 | 
				
			||||||
 | 
					    const float bullet_size = line_height*0.15f;
 | 
				
			||||||
 | 
					    window->DrawList->AddCircleFilled(bb.Min + ImVec2(style.FramePadding.x + line_height*0.5f, line_height*0.5f), bullet_size, window->Color(ImGuiCol_Text));
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    // Stay on same line
 | 
				
			||||||
 | 
					    ImGui::SameLine(0, -1);
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
// Text with a little bullet aligned to the typical tree node.
 | 
					// Text with a little bullet aligned to the typical tree node.
 | 
				
			||||||
void ImGui::BulletTextV(const char* fmt, va_list args)
 | 
					void ImGui::BulletTextV(const char* fmt, va_list args)
 | 
				
			||||||
{
 | 
					{
 | 
				
			||||||
@@ -4250,12 +4272,11 @@ void ImGui::BulletTextV(const char* fmt, va_list args)
 | 
				
			|||||||
    if (window->SkipItems)
 | 
					    if (window->SkipItems)
 | 
				
			||||||
        return;
 | 
					        return;
 | 
				
			||||||
    
 | 
					    
 | 
				
			||||||
    const ImGuiStyle& style = g.Style;
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
    static char buf[1024];
 | 
					    static char buf[1024];
 | 
				
			||||||
    const char* text_begin = buf;
 | 
					    const char* text_begin = buf;
 | 
				
			||||||
    const char* text_end = text_begin + ImFormatStringV(buf, IM_ARRAYSIZE(buf), fmt, args);
 | 
					    const char* text_end = text_begin + ImFormatStringV(buf, IM_ARRAYSIZE(buf), fmt, args);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    const ImGuiStyle& style = g.Style;
 | 
				
			||||||
    const float line_height = window->FontSize();
 | 
					    const float line_height = window->FontSize();
 | 
				
			||||||
    const ImVec2 text_size = CalcTextSize(text_begin, text_end, true);
 | 
					    const ImVec2 text_size = CalcTextSize(text_begin, text_end, true);
 | 
				
			||||||
    const ImGuiAabb bb(window->DC.CursorPos, window->DC.CursorPos + ImVec2(line_height + (text_size.x > 0.0f ? (style.FramePadding.x*2) : 0.0f),0) + text_size);  // Empty text doesn't add padding
 | 
					    const ImGuiAabb bb(window->DC.CursorPos, window->DC.CursorPos + ImVec2(line_height + (text_size.x > 0.0f ? (style.FramePadding.x*2) : 0.0f),0) + text_size);  // Empty text doesn't add padding
 | 
				
			||||||
@@ -8302,7 +8323,9 @@ void ImGui::ShowTestWindow(bool* opened)
 | 
				
			|||||||
        {
 | 
					        {
 | 
				
			||||||
            ImGui::BulletText("Bullet point 1");
 | 
					            ImGui::BulletText("Bullet point 1");
 | 
				
			||||||
            ImGui::BulletText("Bullet point 2\nOn multiple lines");
 | 
					            ImGui::BulletText("Bullet point 2\nOn multiple lines");
 | 
				
			||||||
            ImGui::BulletText("Bullet point 3");
 | 
					            ImGui::Bullet(); ImGui::Text("Bullet point 3 (two calls)");
 | 
				
			||||||
 | 
					            ImGui::Bullet(); ImGui::SmallButton("Button 1");
 | 
				
			||||||
 | 
					            ImGui::Bullet(); ImGui::SmallButton("Button 2");
 | 
				
			||||||
            ImGui::TreePop();
 | 
					            ImGui::TreePop();
 | 
				
			||||||
        }
 | 
					        }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 
 | 
				
			|||||||
							
								
								
									
										1
									
								
								imgui.h
									
									
									
									
									
								
							
							
						
						
									
										1
									
								
								imgui.h
									
									
									
									
									
								
							@@ -252,6 +252,7 @@ namespace ImGui
 | 
				
			|||||||
    IMGUI_API void          TextUnformatted(const char* text, const char* text_end = NULL);     // doesn't require null terminated string if 'text_end' is specified. no copy done to any bounded stack buffer, recommended for long chunks of text.
 | 
					    IMGUI_API void          TextUnformatted(const char* text, const char* text_end = NULL);     // doesn't require null terminated string if 'text_end' is specified. no copy done to any bounded stack buffer, recommended for long chunks of text.
 | 
				
			||||||
    IMGUI_API void          LabelText(const char* label, const char* fmt, ...);                 // display text+label aligned the same way as value+label widgets 
 | 
					    IMGUI_API void          LabelText(const char* label, const char* fmt, ...);                 // display text+label aligned the same way as value+label widgets 
 | 
				
			||||||
    IMGUI_API void          LabelTextV(const char* label, const char* fmt, va_list args);
 | 
					    IMGUI_API void          LabelTextV(const char* label, const char* fmt, va_list args);
 | 
				
			||||||
 | 
					    IMGUI_API void          Bullet();
 | 
				
			||||||
    IMGUI_API void          BulletText(const char* fmt, ...);
 | 
					    IMGUI_API void          BulletText(const char* fmt, ...);
 | 
				
			||||||
    IMGUI_API void          BulletTextV(const char* fmt, va_list args);
 | 
					    IMGUI_API void          BulletTextV(const char* fmt, va_list args);
 | 
				
			||||||
    IMGUI_API bool          Button(const char* label, const ImVec2& size = ImVec2(0,0), bool repeat_when_held = false);
 | 
					    IMGUI_API bool          Button(const char* label, const ImVec2& size = ImVec2(0,0), bool repeat_when_held = false);
 | 
				
			||||||
 
 | 
				
			|||||||
		Reference in New Issue
	
	Block a user