Files
CHIP-8/src/UI/RomInfo.cpp
2025-06-27 00:58:05 -04:00

45 lines
1.0 KiB
C++

#include "RomInfo.h"
#include <filesystem>
#include "imgui.h"
RomInfo::RomInfo(
std::shared_ptr<Graphics> graphics,
std::shared_ptr<MachineState> machine_state,
std::shared_ptr<CallbackManager> callback_manager
) : graphics{std::move(graphics)},
machine_state{std::move(machine_state)},
callback_manager{std::move(callback_manager)}
{
this->callback_manager->rom_load_callback.push_back(std::bind(
&RomInfo::on_rom_load,
this,
std::placeholders::_1
));
}
void RomInfo::render()
{
if (ImGui::Begin("Chip-8 - ROM Info"))
{
if (!this->rom_path.empty())
{
ImGui::Text("ROM: %s", this->rom_path.c_str());
}
else
{
ImGui::Text("ROM: None");
}
}
ImGui::End();
}
void RomInfo::on_rom_load(const std::string& rom_path)
{
std::filesystem::path home = SDL_GetUserFolder(SDL_FOLDER_HOME);
std::filesystem::path path = rom_path;
this->rom_path = "~/" + std::filesystem::relative(path, home).string();
}