// 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 "HALSimGui.h" #include #include #include #include #include #include using namespace halsimgui; glass::MainMenuBar HALSimGui::mainMenu; std::unique_ptr HALSimGui::manager; std::unique_ptr HALSimGui::halProvider; std::unique_ptr HALSimGui::ntProvider; void HALSimGui::GlobalInit() { manager = std::make_unique( glass::GetStorageRoot().GetChild("SimWindow")); manager->GlobalInit(); halProvider = std::make_unique( glass::GetStorageRoot().GetChild("HALProvider")); halProvider->GlobalInit(); ntProvider = std::make_unique( glass::GetStorageRoot().GetChild("NTProvider")); ntProvider->GlobalInit(); wpi::gui::AddLateExecute([] { mainMenu.Display(); }); glass::AddStandardNetworkTablesViews(*ntProvider); } namespace halsimgui { void AddGuiInit(std::function initialize) { wpi::gui::AddInit(std::move(initialize)); } void AddGuiEarlyExecute(std::function execute) { wpi::gui::AddEarlyExecute(std::move(execute)); } void AddGuiLateExecute(std::function execute) { wpi::gui::AddLateExecute(std::move(execute)); } void GuiExit() { wpi::gui::Exit(); } } // namespace halsimgui