// Copyright (c) FIRST and other WPILib contributors.
// Open Source Software; you can modify and/or share it under the terms of
// the WPILib BSD license file in the root directory of this project.

#include "wpi/glass/other/CommandSelector.hpp"

#include <imgui.h>

#include "wpi/glass/DataSource.hpp"

using namespace wpi::glass;

void wpi::glass::DisplayCommandSelector(CommandSelectorModel* m) {
  if (auto name = m->GetName()) {
    ImGui::Text("%s", name);
  }
  if (m->Exists()) {
    if (auto run = m->GetRunningData()) {
      bool running = run->GetValue();
      if (ImGui::Button(running ? "Cancel" : "Run")) {
        running = !running;
        m->SetRunning(running);
      }
      ImGui::SameLine();
      if (running) {
        ImGui::Text("Running...");
      }
    }
  } else {
    ImGui::PushStyleColor(ImGuiCol_Text, IM_COL32(96, 96, 96, 255));
    ImGui::Text("Unknown Command");
    ImGui::PopStyleColor();
  }
}
