]> git.saurik.com Git - wxWidgets.git/blobdiff - src/common/object.cpp
tmake template for DLL project for VC++ 6.0
[wxWidgets.git] / src / common / object.cpp
index 8c1f4febb784b72dcd4e3cbbdd824a126a73a9f0..972f6c0bc4ce28b5cf16725b9b776ba48a22ec49 100644 (file)
@@ -45,7 +45,7 @@
 #endif
 
 #if !USE_SHARED_LIBRARY
-wxClassInfo wxObject::sm_classwxObject((char *) "wxObject", (char *) NULL, (char *) NULL, (int ) sizeof(wxObject), (wxObjectConstructorFn) NULL);
+wxClassInfo wxObject::sm_classwxObject((wxChar *) wxT("wxObject"), (wxChar *) NULL, (wxChar *) NULL, (int ) sizeof(wxObject), (wxObjectConstructorFn) NULL);
 wxClassInfo* wxClassInfo::sm_first = (wxClassInfo *) NULL;
 wxHashTable* wxClassInfo::sm_classTable = (wxHashTable*) NULL;
 #endif
@@ -87,7 +87,19 @@ bool wxObject::IsKindOf(wxClassInfo *info) const
         return FALSE;
 }
 
-#if defined(__WXDEBUG__) || wxUSE_DEBUG_CONTEXT
+wxObject *wxObject::Clone() const
+{
+    wxObject *object = GetClassInfo()->CreateObject();
+    CopyObject(*object);
+    return object;
+}
+
+void wxObject::CopyObject(wxObject& object_dest) const
+{
+    wxASSERT(object_dest.GetClassInfo()->IsKindOf(GetClassInfo()));
+}
+
+#if wxUSE_STD_IOSTREAM && (defined(__WXDEBUG__) || wxUSE_DEBUG_CONTEXT)
 void wxObject::Dump(ostream& str)
 {
     if (GetClassInfo() && GetClassInfo()->GetClassName())
@@ -103,7 +115,7 @@ void wxObject::Dump(ostream& str)
 #undef new
 #endif
 
-void *wxObject::operator new (size_t size, char * fileName, int lineNum)
+void *wxObject::operator new (size_t size, wxChar * fileName, int lineNum)
 {
     return wxDebugAlloc(size, fileName, lineNum, TRUE);
 }
@@ -123,7 +135,7 @@ void wxObject::operator delete(void* pData, char* /* fileName */, int /* lineNum
 
 // Cause problems for VC++ - crashes
 #if !defined(__VISUALC__) && wxUSE_ARRAY_MEMORY_OPERATORS
-void * wxObject::operator new[] (size_t size, char * fileName, int lineNum)
+void * wxObject::operator new[] (size_t size, wxChar * fileName, int lineNum)
 {
     return wxDebugAlloc(size, fileName, lineNum, TRUE, TRUE);
 }
@@ -140,7 +152,7 @@ void wxObject::operator delete[] (void * buf)
  * Class info: provides run-time class type information.
  */
 
-wxClassInfo::wxClassInfo(char *cName, char *baseName1, char *baseName2, int sz, wxObjectConstructorFn constr)
+wxClassInfo::wxClassInfo(wxChar *cName, wxChar *baseName1, wxChar *baseName2, int sz, wxObjectConstructorFn constr)
 {
     m_className = cName;
     m_baseClassName1 = baseName1;
@@ -164,12 +176,12 @@ wxObject *wxClassInfo::CreateObject()
         return (wxObject *) NULL;
 }
 
-wxClassInfo *wxClassInfo::FindClass(char *c)
+wxClassInfo *wxClassInfo::FindClass(wxChar *c)
 {
     wxClassInfo *p = sm_first;
     while (p)
     {
-        if (p && p->GetClassName() && strcmp(p->GetClassName(), c) == 0)
+        if (p && p->GetClassName() && wxStrcmp(p->GetClassName(), c) == 0)
             return p;
         p = p->m_next;
     }
@@ -238,7 +250,7 @@ void wxClassInfo::CleanUpClasses()
     wxClassInfo::sm_classTable = NULL;
 }
 
-wxObject *wxCreateDynamicObject(const char *name)
+wxObject *wxCreateDynamicObject(const wxChar *name)
 {
     if (wxClassInfo::sm_classTable)
     {
@@ -253,7 +265,7 @@ wxObject *wxCreateDynamicObject(const char *name)
         wxClassInfo *info = wxClassInfo::sm_first;
         while (info)
         {
-            if (info->m_className && strcmp(info->m_className, name) == 0)
+            if (info->m_className && wxStrcmp(info->m_className, name) == 0)
                 return info->CreateObject();
             info = info->m_next;
         }