gcc fixes

git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@66646 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
This commit is contained in:
Stefan Csomor
2011-01-07 22:52:46 +00:00
parent 47f73cc455
commit bca6bd3823
3 changed files with 34 additions and 27 deletions

View File

@@ -50,11 +50,13 @@ class WXDLLIMPEXP_FWD_BASE wxHashTable_Node;
class WXDLLIMPEXP_FWD_BASE wxStringToAnyHashMap; class WXDLLIMPEXP_FWD_BASE wxStringToAnyHashMap;
class WXDLLIMPEXP_FWD_BASE wxPropertyInfoMap; class WXDLLIMPEXP_FWD_BASE wxPropertyInfoMap;
class WXDLLIMPEXP_FWD_BASE wxPropertyAccessor; class WXDLLIMPEXP_FWD_BASE wxPropertyAccessor;
class WXDLLIMPEXP_FWD_BASE wxObjectAllocatorAndCreator;
class WXDLLIMPEXP_FWD_BASE wxObjectAllocator;
#define wx_dynamic_cast(t, x) dynamic_cast<t>(x) #define wx_dynamic_cast(t, x) dynamic_cast<t>(x)
#include "wx/xtitypes.h" #include "wx/xtitypes.h"
#include "wx/xtictor.h"
#include "wx/xtihandler.h" #include "wx/xtihandler.h"
// ---------------------------------------------------------------------------- // ----------------------------------------------------------------------------
@@ -205,9 +207,8 @@ public:
// direct construction call for classes that cannot construct instances via alloc/create // direct construction call for classes that cannot construct instances via alloc/create
wxObject *ConstructObject(int ParamCount, wxAny *Params) const; wxObject *ConstructObject(int ParamCount, wxAny *Params) const;
bool NeedsDirectConstruction() const bool NeedsDirectConstruction() const;
{ return wx_dynamic_cast(wxObjectAllocator*, m_constructor) != NULL; }
const wxChar *GetClassName() const const wxChar *GetClassName() const
{ return m_className; } { return m_className; }
const wxChar *GetBaseClassName1() const const wxChar *GetBaseClassName1() const
@@ -464,28 +465,5 @@ private:
#define wxDECLARE_ABSTRACT_CLASS(name) _DECLARE_DYNAMIC_CLASS(name) #define wxDECLARE_ABSTRACT_CLASS(name) _DECLARE_DYNAMIC_CLASS(name)
#define wxCLASSINFO(name) (&name::ms_classInfo) #define wxCLASSINFO(name) (&name::ms_classInfo)
// --------------------------------------------------------------------------
// Collection Support
// --------------------------------------------------------------------------
template<typename iter, typename collection_t > void wxListCollectionToAnyList(
const collection_t& coll, wxAnyList &value )
{
for ( collection_t::compatibility_iterator current = coll.GetFirst(); current;
current = current->GetNext() )
{
value.Append( new wxAny(current->GetData()) );
}
}
template<typename collection_t> void wxArrayCollectionToVariantArray(
const collection_t& coll, wxAnyList &value )
{
for( size_t i = 0; i < coll.GetCount(); i++ )
{
value.Append( new wxAny(coll[i]) );
}
}
#endif // wxUSE_EXTENDED_RTTI #endif // wxUSE_EXTENDED_RTTI
#endif // _WX_XTIH__ #endif // _WX_XTIH__

View File

@@ -58,6 +58,7 @@ private :
}; };
#include "wx/xtiprop.h" #include "wx/xtiprop.h"
#include "wx/xtictor.h"
// ---------------------------------------------------------------------------- // ----------------------------------------------------------------------------
// wxIMPLEMENT class macros for concrete classes // wxIMPLEMENT class macros for concrete classes
@@ -239,6 +240,29 @@ template<typename T>
void wxFromStringConverter( const wxString &s, wxAny &v) void wxFromStringConverter( const wxString &s, wxAny &v)
{ T d; wxStringReadValue(s, d); v = wxAny(d); } { T d; wxStringReadValue(s, d); v = wxAny(d); }
// --------------------------------------------------------------------------
// Collection Support
// --------------------------------------------------------------------------
template<typename iter, typename collection_t > void wxListCollectionToAnyList(
const collection_t& coll, wxAnyList &value )
{
for ( iter current = coll.GetFirst(); current;
current = current->GetNext() )
{
value.Append( new wxAny(current->GetData()) );
}
}
template<typename collection_t> void wxArrayCollectionToVariantArray(
const collection_t& coll, wxAnyList &value )
{
for( size_t i = 0; i < coll.GetCount(); i++ )
{
value.Append( new wxAny(coll[i]) );
}
}
#endif #endif
#endif // _WX_XTIH2__ #endif // _WX_XTIH2__

View File

@@ -732,6 +732,11 @@ wxAny wxClassInfo::ObjectPtrToAny( wxObject* obj) const
return m_objectToVariantConverter(obj); return m_objectToVariantConverter(obj);
} }
bool wxClassInfo::NeedsDirectConstruction() const
{
return wx_dynamic_cast(wxObjectAllocator*, m_constructor) != NULL;
}
// ---------------------------------------------------------------------------- // ----------------------------------------------------------------------------
// wxDynamicObject support // wxDynamicObject support
// ---------------------------------------------------------------------------- // ----------------------------------------------------------------------------