#pragma once

#include <vector>

#include "presentation/MenuContext.h"

namespace ta::presentation::widgets
{
    void draw_config_value(const ConfigValueSnapshot& value, const ConfigCommandSubmitter& submit);
    void draw_config_value_disabled(const ConfigValueSnapshot& value,
                                    const ConfigCommandSubmitter& submit,
                                    bool disabled);
    bool draw_toggle_color_distance_row(const ConfigValueSnapshot& toggle,
                                        const ConfigValueSnapshot& color,
                                        const ConfigValueSnapshot* distance,
                                        const ConfigCommandSubmitter& submit);
    void draw_config_panel(const ConfigPanelSnapshot& panel, const ConfigCommandSubmitter& submit);
    void draw_config_panels_two_columns(const std::vector<const ConfigPanelSnapshot*>& panels,
                                        const ConfigCommandSubmitter& submit);
    void draw_config_panels_single_column(const std::vector<const ConfigPanelSnapshot*>& panels,
                                          const ConfigCommandSubmitter& submit);
}
