Skip to content

aiekick/ImCoolBar

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

24 Commits
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Win Linux Osx

ImCoolbar

Minimal Sample

	ImGuiContext& g = *GImGui;
	const float& ref_font_scale = g.FontSizeBase;

	static bool show_imgui_demo{false};
	static bool show_implot_demo{false};
	static bool show_imgui_metrics{false};
	static bool show_imcoolbar_metrics{false};
	static std::array<const char*, 4U> arr = {"ImGui\nDemo", "ImPlot\nDemo", "ImGui\nMetrics", "ImCoolBar\nMetrics"};
	static ImGui::ImCoolBarConfig _config;
	_config.normal_size = 35.0f;
	_config.hovered_size = 100.0f;
	_config.anchor = ImVec2(0.5f, 1.0f);
	
	if (ImGui::BeginCoolBar("CoolBarMainWin", ImCoolBarFlags_Horizontal, _config)) {
		for (size_t idx = 0U; idx < arr.size(); ++idx) {
			if (ImGui::CoolBarItem()) {
				const char* label = arr.at(idx);
				const float w = ImGui::GetCoolBarItemWidth();
				const float s = ImGui::GetCoolBarItemScale();
				ImGui::PushFont(nullptr, ref_font_scale * s);
				const auto ret = ImGui::Button(label, ImVec2(w * 2.0f, w));
				ImGui::PopFont();
				if (ret) {
					switch (idx) {
						case 0: show_imgui_demo = !show_imgui_demo; break;
						case 1: show_implot_demo = !show_implot_demo; break;
						case 2: show_imgui_metrics = !show_imgui_metrics; break;
						case 3: show_imcoolbar_metrics = !show_imcoolbar_metrics; break;
					}
				}
			}
		}
		ImGui::EndCoolBar();
	}

	if (show_imgui_demo) {
		ImGui::ShowDemoWindow(&show_imgui_demo);
	}
	if (show_implot_demo) {
		ImPlot::ShowDemoWindow(&show_implot_demo);
	}
	if (show_imgui_metrics) {
		ImGui::ShowMetricsWindow(&show_imgui_metrics);
	}
	if (show_imcoolbar_metrics) {
		ImGui::ShowCoolBarMetrics(&show_imcoolbar_metrics);
	}

Result :

alt text

Demo App

alt text

About

A Cool bar for Dear ImGui (MacOs Dock Magnification Effect Like)

Topics

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Sponsor this project

 

Packages

No packages published