Add color dot to the status bar

This commit is contained in:
Stepland 2023-07-20 15:56:53 +02:00
parent 8f0e7f6041
commit 39902263d9
4 changed files with 17 additions and 2 deletions

View File

@ -1011,6 +1011,13 @@ void EditorState::display_playback_status() {
ImGui::SameLine();
ImGui::Text("%s", Toolbox::toOrdinal(snap * 4).c_str());
ImGui::SameLine();
const auto it = config.linear_view.quantization_colors.palette.find(snap);
if (it != config.linear_view.quantization_colors.palette.end()) {
feis::ColorDot(it->second);
} else {
feis::ColorDot(config.linear_view.quantization_colors.default_);
}
ImGui::SameLine();
ImGui::TextDisabled("Beats :");
ImGui::SameLine();
ImGui::TextUnformatted(fmt::format("{:.3f}", static_cast<double>(current_exact_beats())).c_str());

View File

@ -131,3 +131,10 @@ void feis::ColorSquare(const sf::Color& color) {
ImGui::GetWindowDrawList()->AddRectFilled(p, ImVec2(p.x + sz, p.y + sz), ImColor(color));
ImGui::Dummy(ImVec2(sz, sz));
}
void feis::ColorDot(const sf::Color& color) {
ImVec2 p = ImGui::GetCursorScreenPos();
const float sz = ImGui::GetTextLineHeight();
ImGui::GetWindowDrawList()->AddCircleFilled({p.x + sz / 2.0f, p.y + sz/2.0f}, sz / 2.0f, ImColor(color));
ImGui::Dummy(ImVec2(sz, sz));
}

View File

@ -97,6 +97,7 @@ namespace feis {
bool SquareButton(const char* text);
void ColorSquare(const sf::Color& color);
void ColorDot(const sf::Color& color);
template<typename Callback>
void DisabledIf(const bool disabled, const Callback& cb) {

View File

@ -88,7 +88,7 @@ int main() {
}
Judgement& markerEndingState = *config.marker.ending_state;
BlankScreen bg {assets_folder};
BlankScreen bg{assets_folder};
std::optional<EditorState> editor_state;
NotificationsQueue notificationsQueue;
feis::NewChartDialog newChartDialog;
@ -684,7 +684,7 @@ int main() {
}
for (const auto& [snap, color] :
config.linear_view.quantization_colors.palette) {
feis::ColorSquare(color);
feis::ColorDot(color);
ImGui::SameLine();
if (ImGui::MenuItem(
fmt::format("To {}##Notes Quantize", Toolbox::toOrdinal(4 * snap))