#include "Template.hpp" #include "Model/GlobalStates.hpp" #include "Model/Project.hpp" #include #include using namespace std::literals::string_view_literals; constinit const TemplateAssetCategory Template::Category{}; Template::Template(Kind kind) : mKind{ kind } { } Template::Kind Template::GetKind() const { return mKind; } void TemplateAssetCategory::DiscoverFiles(const std::function& callback) const { auto& gs = GlobalStates::GetInstance(); DiscoverFilesByExtension(callback, gs.GetCurrentProject()->GetTemplatesDirectory(), ".cplt-template"sv); } Template* TemplateAssetCategory::CreateEmpty(const SavedAsset& diskForm) const { // TODO } Template* TemplateAssetCategory::Load(const SavedAsset& diskForm) const { std::ifstream ifs(diskForm.Path); if (!ifs) return nullptr; uint32_t iKind; ifs >> iKind; auto kind = (Template::Kind)iKind; auto tmpl = Template::CreateByKind(kind); auto res = tmpl->ReadFrom(ifs); if (res != Template::RR_Success) { return nullptr; } return tmpl.release(); } void TemplateAssetCategory::SetupDetailsTable(const char* tableId) const { ImGui::BeginTable(tableId, 3); ImGui::TableSetupColumn("Name"); ImGui::TableSetupColumn("Type"); ImGui::TableSetupColumn("Modified time"); ImGui::TableHeadersRow(); } void TemplateAssetCategory::DrawBigIcon(const SavedAsset& asset) const { // TODO } void TemplateAssetCategory::DrawDetailsTableRow(const SavedAsset& asset) const { ImGui::TableNextColumn(); ImGui::TextUnformatted(asset.Name.c_str()); ImGui::TableNextColumn(); // TODO //ImGui::TextUnformatted(Template::FormatKind(asset.)); ImGui::TableNextColumn(); // TODO }