112 const ImGuiViewport* viewport = ImGui::GetMainViewport();
117 const float bar_y = viewport->WorkPos.y + viewport->WorkSize.y - bar_height;
120 ImGui::SetNextWindowPos(ImVec2(viewport->WorkPos.x, bar_y));
121 ImGui::SetNextWindowSize(ImVec2(viewport->WorkSize.x, bar_height));
123 ImGuiWindowFlags flags =
124 ImGuiWindowFlags_NoTitleBar | ImGuiWindowFlags_NoResize |
125 ImGuiWindowFlags_NoMove | ImGuiWindowFlags_NoCollapse |
126 ImGuiWindowFlags_NoDocking | ImGuiWindowFlags_NoScrollbar |
127 ImGuiWindowFlags_NoScrollWithMouse | ImGuiWindowFlags_NoFocusOnAppearing |
128 ImGuiWindowFlags_NoNavFocus | ImGuiWindowFlags_NoBringToFrontOnFocus;
134 ImGui::PushStyleColor(ImGuiCol_WindowBg, bar_bg);
135 ImGui::PushStyleColor(ImGuiCol_Border, bar_border);
136 ImGui::PushStyleVar(ImGuiStyleVar_WindowPadding, ImVec2(8.0f, 4.0f));
137 ImGui::PushStyleVar(ImGuiStyleVar_WindowBorderSize, 1.0f);
138 ImGui::PushStyleVar(ImGuiStyleVar_ItemSpacing, ImVec2(8.0f, 0.0f));
140 if (ImGui::Begin(
"##StatusBar",
nullptr, flags)) {
164 float right_section_width = 0.0f;
166 right_section_width += ImGui::CalcTextSize(
"100%").x + 20.0f;
169 right_section_width += ImGui::CalcTextSize(
editor_mode_.c_str()).x + 30.0f;
172 if (right_section_width > 0.0f) {
173 float available = ImGui::GetContentRegionAvail().x;
174 if (available > right_section_width + 20.0f) {
175 ImGui::SameLine(ImGui::GetWindowWidth() - right_section_width - 16.0f);
192 ImGui::PopStyleVar(3);
193 ImGui::PopStyleColor(2);