// D:\Dev\Mosis\MosisService\designer\src\desktop_file_interface.h #pragma once #include #include #include #include namespace mosis { class DesktopFileInterface : public Rml::FileInterface { public: DesktopFileInterface() = default; ~DesktopFileInterface() override = default; // Asset path management void SetAssetsPath(const std::string& path); std::string GetAssetsPath() const { return m_assets_path; } // RmlUi FileInterface Rml::FileHandle Open(const Rml::String& path) override; void Close(Rml::FileHandle file) override; size_t Read(void* buffer, size_t size, Rml::FileHandle file) override; bool Seek(Rml::FileHandle file, long offset, int origin) override; size_t Tell(Rml::FileHandle file) override; size_t Length(Rml::FileHandle file) override; private: std::string ResolvePath(const std::string& path) const; std::string m_assets_path; }; } // namespace mosis