#pragma once #include "../IThemeFileIconFactory.h" #include "MaterialFolderIcon.h" #include "MaterialGenericFileIcon.h" #include "MaterialNdsFileIcon.h" class MaterialColorScheme; class IFontRepository; class MaterialThemeFileIconFactory : public IThemeFileIconFactory { public: explicit MaterialThemeFileIconFactory(const MaterialColorScheme* materialColorScheme, const IFontRepository* fontRepository) : _materialColorScheme(materialColorScheme), _fontRepository(fontRepository) { } std::unique_ptr CreateFolderIcon(const TCHAR* name) const override { return std::make_unique(name, _materialColorScheme, _fontRepository); } std::unique_ptr CreateGenericFileIcon(const TCHAR* name) const override { return std::make_unique(name, _materialColorScheme, _fontRepository); } std::unique_ptr CreateNdsFileIcon(const TCHAR* name) const override { return std::make_unique(name, _materialColorScheme, _fontRepository); } private: const MaterialColorScheme* _materialColorScheme; const IFontRepository* _fontRepository; };