diff options
author | crupest <crupest@outlook.com> | 2022-01-24 17:52:47 +0800 |
---|---|---|
committer | crupest <crupest@outlook.com> | 2022-01-24 17:52:47 +0800 |
commit | 1cc6e51838fcd5fc986dbb3e13bbb85f11a348be (patch) | |
tree | 438ed0961b708139f2c3f8429052a737e0b8e334 /include/cru/ui/mapper/MapperRegistry.hpp | |
parent | 6d64ac7d354831b687aee1b7450d539411648888 (diff) | |
download | cru-1cc6e51838fcd5fc986dbb3e13bbb85f11a348be.tar.gz cru-1cc6e51838fcd5fc986dbb3e13bbb85f11a348be.tar.bz2 cru-1cc6e51838fcd5fc986dbb3e13bbb85f11a348be.zip |
...
Diffstat (limited to 'include/cru/ui/mapper/MapperRegistry.hpp')
-rw-r--r-- | include/cru/ui/mapper/MapperRegistry.hpp | 10 |
1 files changed, 10 insertions, 0 deletions
diff --git a/include/cru/ui/mapper/MapperRegistry.hpp b/include/cru/ui/mapper/MapperRegistry.hpp index c3e5b4c4..1c02be49 100644 --- a/include/cru/ui/mapper/MapperRegistry.hpp +++ b/include/cru/ui/mapper/MapperRegistry.hpp @@ -39,6 +39,16 @@ class CRU_UI_API MapperRegistry { return GetMapper<ClonablePtr<T>>(); } + template <typename T> + std::vector<T*> GetMappersByInterface() const { + std::vector<T*> result; + for (auto mapper : mapper_list_) { + auto m = dynamic_cast<T*>(mapper); + if (m) result.push_back(m); + } + return result; + } + void RegisterMapper(MapperBase* mapper); void UnregisterMapper(MapperBase* mapper); |