|
 |
ae9154 |
|
|
 |
ae9154 |
|
|
 |
ae9154 |
#include <tmetaimage.h></tmetaimage.h>
|
|
 |
ae9154 |
|
|
 |
ae9154 |
|
|
 |
ae9154 |
|
|
 |
ae9154 |
|
|
 |
ae9154 |
TMetaObject::TMetaObject(const TStringId &typeName):
|
|
 |
ae9154 |
m_handler(),
|
|
 |
ae9154 |
m_data(*this)
|
|
 |
ae9154 |
{ setType(typeName); }
|
|
 |
ae9154 |
|
|
 |
ae9154 |
|
|
 |
ae9154 |
|
|
 |
ae9154 |
TMetaObject::TMetaObject(const std::string &typeName):
|
|
 |
ae9154 |
m_handler(),
|
|
 |
ae9154 |
m_data(*this)
|
|
 |
ae9154 |
{ setType(typeName); }
|
|
 |
ae9154 |
|
|
 |
ae9154 |
|
|
 |
ae9154 |
|
|
 |
ae9154 |
TMetaObject::~TMetaObject()
|
|
 |
ae9154 |
{ resetType(); }
|
|
 |
ae9154 |
|
|
 |
ae9154 |
|
|
 |
ae9154 |
|
|
 |
ae9154 |
void
|
|
 |
ae9154 |
TMetaObject::setType(const TStringId &name) {
|
|
 |
ae9154 |
if (m_type != name) {
|
|
 |
ae9154 |
if (m_handler) delete m_handler;
|
|
 |
ae9154 |
m_type = name;
|
|
 |
ae9154 |
Registry::const_iterator i = registry().find(m_type);
|
|
 |
249386 |
m_handler = i == registry().end() ? NULL : i->second(*this);
|
|
 |
ae9154 |
onVariantChanged(m_data);
|
|
 |
ae9154 |
}
|
|
 |
ae9154 |
}
|
|
 |
ae9154 |
|
|
 |
ae9154 |
|
|
 |
ae9154 |
|
|
 |
ae9154 |
void
|
|
 |
ae9154 |
TMetaObject::onVariantChanged(const TVariant &value)
|
|
 |
9cf8be |
{ if (m_handler) m_handler->dataChanged(value); }
|
|
 |
ae9154 |
|
|
 |
ae9154 |
|
|
 |
ae9154 |
|
|
 |
ae9154 |
TMetaObject::Registry&
|
|
 |
ae9154 |
TMetaObject::registry() {
|
|
 |
ae9154 |
static Registry registry;
|
|
 |
ae9154 |
return registry;
|
|
 |
ae9154 |
}
|
|
 |
ae9154 |
|
|
 |
ae9154 |
|
|
 |
ae9154 |
|
|
 |
ae9154 |
void
|
|
 |
ae9154 |
TMetaObject::registerType(const TStringId &typeName, Fabric fabric) {
|
|
 |
ae9154 |
if (registry().count(typeName))
|
|
 |
ae9154 |
std::cerr << "warning: type of TMetaObject are already registered: " << typeName.str() << std::endl;
|
|
 |
ae9154 |
registry()[typeName] = fabric;
|
|
 |
ae9154 |
}
|
|
 |
ae9154 |
|
|
 |
ae9154 |
|
|
 |
ae9154 |
|
|
 |
ae9154 |
void
|
|
 |
ae9154 |
TMetaObject::unregisterType(const TStringId &typeName) {
|
|
 |
ae9154 |
if (!registry().count(typeName))
|
|
 |
ae9154 |
std::cerr << "warning: trying to unregister non-registered type of TMetaObject: " << typeName.str() << std::endl;
|
|
 |
ae9154 |
registry().erase(typeName);
|
|
 |
ae9154 |
}
|
|
 |
ae9154 |
|
|
 |
ae9154 |
|
|
 |
ae9154 |
|
|
 |
ae9154 |
TMetaImage::TMetaImage()
|
|
 |
ae9154 |
{ }
|
|
 |
ae9154 |
|
|
 |
ae9154 |
|
|
 |
ae9154 |
|
|
 |
ae9154 |
TMetaImage::TMetaImage(const TMetaImage &other):
|
|
 |
ae9154 |
m_objects(*Reader(other))
|
|
 |
ae9154 |
{ }
|
|
 |
ae9154 |
|
|
 |
ae9154 |
|
|
 |
ae9154 |
|
|
 |
ae9154 |
TMetaImage::~TMetaImage()
|
|
 |
ae9154 |
{ }
|
|
 |
ae9154 |
|
|
 |
ae9154 |
|
|
 |
ae9154 |
|
|
 |
ae9154 |
TImage*
|
|
 |
ae9154 |
TMetaImage::cloneImage() const
|
|
 |
ae9154 |
{ return new TMetaImage(*this); }
|
|
 |
ae9154 |
|
|
 |
ae9154 |
|
|
 |
ae9154 |
|
|
 |
ae9154 |
TRectD
|
|
 |
ae9154 |
TMetaImage::getBBox() const
|
|
 |
ae9154 |
{ return TRectD(); }
|
|
 |
ae9154 |
|
|
 |
ae9154 |
|