// 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. #pragma once #include namespace frc { class ShuffleboardTab; /** * The root of the data placed in Shuffleboard. It contains the tabs, but no * data is placed directly in the root. * * This class is package-private to minimize API surface area. */ class ShuffleboardRoot { public: /** * Gets the tab with the given title, creating it if it does not already * exist. * * @param title the title of the tab * @return the tab with the given title */ virtual ShuffleboardTab& GetTab(std::string_view title) = 0; /** * Updates all tabs. */ virtual void Update() = 0; /** * Enables all widgets in Shuffleboard that offer user control over actuators. */ virtual void EnableActuatorWidgets() = 0; /** * Disables all widgets in Shuffleboard that offer user control over * actuators. */ virtual void DisableActuatorWidgets() = 0; /** * Selects the tab in the dashboard with the given index in the range * [0..n-1], where n is the number of tabs in the dashboard at the time * this method is called. * * @param index the index of the tab to select */ virtual void SelectTab(int index) = 0; /** * Selects the tab in the dashboard with the given title. * * @param title the title of the tab to select */ virtual void SelectTab(std::string_view title) = 0; }; } // namespace frc