aboutsummaryrefslogtreecommitdiff
path: root/core/src/Model/Template/Template.hpp
diff options
context:
space:
mode:
Diffstat (limited to 'core/src/Model/Template/Template.hpp')
-rw-r--r--core/src/Model/Template/Template.hpp22
1 files changed, 13 insertions, 9 deletions
diff --git a/core/src/Model/Template/Template.hpp b/core/src/Model/Template/Template.hpp
index 131a6ac..d876650 100644
--- a/core/src/Model/Template/Template.hpp
+++ b/core/src/Model/Template/Template.hpp
@@ -1,5 +1,6 @@
#pragma once
+#include "Model/Assets.hpp"
#include "cplt_fwd.hpp"
#include <filesystem>
@@ -7,7 +8,7 @@
#include <memory>
#include <string>
-class Template
+class Template : public Asset
{
public:
enum Kind
@@ -18,6 +19,9 @@ public:
KindCount = InvalidKind,
};
+ using CategoryType = TemplateAssetCategory;
+ static constinit const TemplateAssetCategory Category;
+
private:
Kind mKind;
@@ -32,7 +36,7 @@ public:
Kind GetKind() const;
- enum class ReadResult
+ enum ReadResult
{
RR_Success,
RR_InvalidFormat,
@@ -41,13 +45,13 @@ public:
virtual void WriteTo(std::ostream& stream) const = 0;
};
-class TemplateInfo
+class TemplateAssetCategory : public AssetCategory
{
public:
- std::filesystem::path Path;
- std::string Name;
- std::string PathStringCache = Path.string();
- Template::Kind Kind;
-
- std::unique_ptr<Template> LoadFromDisk() const;
+ virtual void DiscoverFiles(const std::function<void(SavedAsset)>& callback) const override;
+ virtual Template* CreateEmpty(const SavedAsset& diskForm) const override;
+ virtual Template* Load(const SavedAsset& diskForm) const override;
+ virtual void SetupDetailsTable(const char* tableId) const override;
+ virtual void DrawBigIcon(const SavedAsset& asset) const override;
+ virtual void DrawDetailsTableRow(const SavedAsset& asset) const override;
};