38 const float font_bar =
39 ImGui::GetFontSize() + ImGui::GetStyle().FramePadding.y * 2.0f;
47 "##DungeonStatusBar", ImVec2(-1, bar_height),
false,
48 ImGuiWindowFlags_NoScrollbar | ImGuiWindowFlags_NoScrollWithMouse);
50 const float spacing = ImGui::GetStyle().ItemSpacing.x;
53 ImGui::AlignTextToFramePadding();
55 ImGui::SameLine(0, 4);
58 ImGui::SameLine(0, spacing);
59 ImGui::TextDisabled(
"|");
60 ImGui::SameLine(0, spacing);
61 const ImVec4 workflow_color =
67 ImGui::SameLine(0, spacing * 2);
70 ImGui::TextDisabled(
"|");
71 ImGui::SameLine(0, spacing * 2);
75 const float button_height =
77 const ImVec2 undo_size(
78 CalcStatusIconButtonWidth(
ICON_MD_UNDO, button_height), button_height);
79 const ImVec2 redo_size(
80 CalcStatusIconButtonWidth(
ICON_MD_REDO, button_height), button_height);
83 ImGui::BeginDisabled();
87 snprintf(undo_tip,
sizeof(undo_tip),
"Undo%s%s",
96 ImGui::SameLine(0, 4);
99 ImGui::BeginDisabled();
103 snprintf(redo_tip,
sizeof(redo_tip),
"Redo%s%s",
111 ImGui::EndDisabled();
114 ImGui::SameLine(0, 4);
115 ImGui::TextDisabled(
"(%d)", state.
undo_depth);
118 ImGui::SameLine(0, spacing * 2);
121 ImGui::TextDisabled(
"|");
122 ImGui::SameLine(0, spacing * 2);
127 ImGui::SameLine(0, 4);
135 ImGui::TextDisabled(
"No selection");
137 ImGui::SameLine(0, spacing * 2);
140 ImGui::TextDisabled(
"|");
141 ImGui::SameLine(0, spacing * 2);
145 ImGui::SameLine(0, 4);
147 ImGui::SameLine(0, spacing * 2);
150 ImGui::TextDisabled(
"|");
151 ImGui::SameLine(0, spacing * 2);
156 ImGui::SameLine(0, 4);
167 snprintf(right_text,
sizeof(right_text),
ICON_MD_CIRCLE " Room 0x%03X",
170 snprintf(right_text,
sizeof(right_text),
"Room 0x%03X", state.
room_id);
173 snprintf(right_text,
sizeof(right_text),
"No room");
176 const float text_width = ImGui::CalcTextSize(right_text).x;
177 const float right_x = ImGui::GetWindowWidth() - text_width -
178 ImGui::GetStyle().WindowPadding.x;
180 ImGui::SameLine(std::max(ImGui::GetCursorPosX(), right_x));
185 if (ImGui::IsItemHovered()) {
186 ImGui::SetTooltip(
"Room has unsaved changes");
189 ImGui::TextDisabled(
"%s", right_text);
bool ThemedIconButton(const char *icon, const char *tooltip, const ImVec2 &size, bool is_active, bool is_disabled, const char *panel_id, const char *anim_id)
Draw a standard icon button with theme-aware colors.