Update of /cvsroot/wxlua/wxLua/bindings/wxwidgets
In directory sc8-pr-cvs9.sourceforge.net:/tmp/cvs-serv32329/wxLua/bindings/wxwidgets
Modified Files:
wxbase_override.hpp
Log Message:
Fix bad commit for wxlua.cpp the wxLua executable so it doesn't immediately exit.
Make wxObject:DynamicCast a little more verbose and robust
Index: wxbase_override.hpp
===================================================================
RCS file: /cvsroot/wxlua/wxLua/bindings/wxwidgets/wxbase_override.hpp,v
retrieving revision 1.14
retrieving revision 1.15
diff -C2 -d -r1.14 -r1.15
*** wxbase_override.hpp 22 Dec 2007 06:07:08 -0000 1.14
--- wxbase_override.hpp 15 Jan 2008 06:31:06 -0000 1.15
***************
*** 409,422 ****
if (className != NULL)
{
! lua_pushvalue(L, 1);
wxObject *pObject = (wxObject *)wxlua_touserdata(L, 1, false);
! const wxLuaBindClass *pClass = wxluaT_getclass(L, className);
! if (pClass && pClass->classInfo)
{
! if (pObject->IsKindOf(pClass->classInfo))
{
! if (*pClass->wxluatype != wxluaT_type(L, 1))
! wxluaT_pushuserdatatype(L, pObject, *pClass->wxluatype);
else
lua_pushvalue(L, 1); // return same userdata
--- 409,423 ----
if (className != NULL)
{
! // The userdata object must be derived from a wxObject for this
! // function be be called.
wxObject *pObject = (wxObject *)wxlua_touserdata(L, 1, false);
! const wxLuaBindClass *wxlClass = wxluaT_getclass(L, className);
! if (pObject && wxlClass && wxlClass->classInfo)
{
! if (pObject->IsKindOf(wxlClass->classInfo))
{
! if (*wxlClass->wxluatype != wxluaT_type(L, 1))
! wxluaT_pushuserdatatype(L, pObject, *wxlClass->wxluatype);
else
lua_pushvalue(L, 1); // return same userdata
***************
*** 425,435 ****
}
else
! wxlua_argerrormsg(L, wxString::Format(wxT("wxLua: wxObject::DynamicCast() Unable to cast a '%s' to a '%s'."),
! pObject->GetClassInfo()->GetClassName(), lua2wx(className).c_str()));
}
if (iResult == 0)
! wxlua_argerrormsg(L, wxString::Format(wxT("wxLua: wxObject::DynamicCast() Invalid class to cast a '%s' to '%s'."),
! pObject->GetClassInfo()->GetClassName(), lua2wx(className).c_str()));
}
else
--- 426,440 ----
}
else
! wxlua_argerrormsg(L, wxString::Format(wxT("wxLua: wxObject::DynamicCast() Unable to cast a '%s' to a '%s' with wxClassInfo '%s'."),
! pObject->GetClassInfo()->GetClassName(),
! lua2wx(className).c_str(),
! wxString(wxlClass ? wxlClass->classInfo->GetClassName() : wxT("Unknown")).c_str()));
}
if (iResult == 0)
! wxlua_argerrormsg(L, wxString::Format(wxT("wxLua: wxObject::DynamicCast() Cannot cast a wxLua type '%s' with wxClassInfo '%s' to a '%s'."),
! wxluaT_gettypename(L, 1).c_str(),
! wxString(pObject ? pObject->GetClassInfo()->GetClassName() : wxT("Unknown")).c_str(),
! lua2wx(className).c_str()));
}
else
|