1
0
Fork 0
mirror of https://github.com/OpenMW/openmw.git synced 2025-02-03 19:45:34 +00:00
openmw/apps/opencs/view/doc/subviewfactory.hpp

Ignoring revisions in .git-blame-ignore-revs. Click here to bypass and see the normal blame view.

54 lines
1.3 KiB
C++
Raw Normal View History

2012-12-11 12:22:43 +00:00
#ifndef CSV_DOC_SUBVIEWFACTORY_H
#define CSV_DOC_SUBVIEWFACTORY_H
#include <map>
#include "../../model/world/universalid.hpp"
namespace CSMDoc
{
class Document;
}
namespace CSVDoc
{
class SubView;
class SubViewFactoryBase
{
// not implemented
SubViewFactoryBase(const SubViewFactoryBase&);
SubViewFactoryBase& operator=(const SubViewFactoryBase&);
public:
SubViewFactoryBase();
virtual ~SubViewFactoryBase();
virtual SubView* makeSubView(const CSMWorld::UniversalId& id, CSMDoc::Document& document) = 0;
///< The ownership of the returned sub view is not transferred.
};
class SubViewFactoryManager
{
std::map<CSMWorld::UniversalId::Type, SubViewFactoryBase*> mSubViewFactories;
// not implemented
SubViewFactoryManager(const SubViewFactoryManager&);
SubViewFactoryManager& operator=(const SubViewFactoryManager&);
2022-09-22 18:26:05 +00:00
public:
2012-12-11 12:22:43 +00:00
SubViewFactoryManager();
~SubViewFactoryManager();
void add(const CSMWorld::UniversalId::Type& id, SubViewFactoryBase* factory);
///< The ownership of \a factory is transferred to this.
SubView* makeSubView(const CSMWorld::UniversalId& id, CSMDoc::Document& document);
///< The ownership of the returned sub view is not transferred.
};
}
#endif