#pragma once
#include <memory>
#include <string_view>
#include <networktables/NetworkTable.h>
#include "frc/shuffleboard/ShuffleboardWidget.h"
namespace wpi {
class Sendable;
class SendableBuilder;
}
namespace frc {
class ShuffleboardContainer;
class ComplexWidget final : public ShuffleboardWidget<ComplexWidget> {
public:
ComplexWidget(ShuffleboardContainer& parent, std::string_view title,
wpi::Sendable& sendable);
~ComplexWidget() override;
void EnableIfActuator() override;
void DisableIfActuator() override;
void BuildInto(std::shared_ptr<nt::NetworkTable> parentTable,
std::shared_ptr<nt::NetworkTable> metaTable) override;
private:
wpi::Sendable& m_sendable;
std::unique_ptr<wpi::SendableBuilder> m_builder;
};
}