-void wxObject::StoreObject( wxObjectOutputStream& stream )
-{
- wxString obj_name = wxString(GetClassInfo()->GetClassName()) + "_Serialize";
- wxLibrary *lib = wxTheLibraries.LoadLibrary("wxserial");
- WXSERIAL(wxObject) *serial;
-
- if (!lib) {
- wxMessageBox("Can't load wxSerial dynamic library.", "Alert !");
- return;
- }
- serial = (WXSERIAL(wxObject) *)lib->CreateObject( obj_name );
-
- if (!serial) {
- wxString message;
-
- message.Printf("Can't find the serialization object (%s) for the object %s",
- WXSTRINGCAST obj_name, WXSTRINGCAST GetClassInfo()->GetClassName());
- wxMessageBox(message, "Alert !");
- return;
- }
-
- serial->SetObject(this);
- serial->StoreObject(stream);
+ if ( wxClassInfo::sm_classTable )
+ {
+ wxClassInfo *info = (wxClassInfo *)wxClassInfo::sm_classTable->Get(name);
+ return info ? info->CreateObject() : NULL;
+ }
+ else // no sm_classTable yet
+ {
+ for ( wxClassInfo *info = wxClassInfo::sm_first;
+ info;
+ info = info->m_next )
+ {
+ if (info->m_className && wxStrcmp(info->m_className, name) == 0)
+ return info->CreateObject();
+ }
+
+ return NULL;
+ }