Nevermind, you have to do this since the pointers may be NULL at startup...

-John

On 4/17/06, John Labenski <[EMAIL PROTECTED]> wrote:
> Some changes in wxWidgets CVS head are causing more problems. They've
> removed wxRED_PEN and and the rest of the objects and use a wxStockGDI
> class to get them so that we get "error: non-lvalue in unary `&'" on
> these objects, see wxRED_PEN below for code.
>
> This is new wxWidgets code
>
> #define wxRED_PEN wxStockGDI::GetPen(RED_PEN);
> static wxPen* wxStockGDI::GetPen(int type);
>
> =========================
>
> My question is why do we have objPtr and pObjPtr in WXLUAMETHOD? When
> would pObjPtr be needed instead of just assigning the pointer value as
> is to objPtr? The fix to the above is not terrible, a little annoying,
> but I guess I'd like to understand this first and remove pObjPtr is
> it's not needed.
>
> Thanks,
>     John Labenski
>
> =========================
>
> wxlua/include/wxlbind.h
>
> struct WXLUAOBJECT                  // Defines a wxWidgets object or
> pointer for wxLua
> {
>     const void  *objPtr;            // a pointer to the object or pointer
>     const void **pObjPtr;           // a pointer to the object or pointer
>     const char  *objName;           // the name of the object or pointer
>     int         *objClassTag;       // the class tag of the object or pointer.
> };
>
> =========================
>
> is used, for example, in in wxbind/src/wx_bind.cpp for
>
> wxWidgets has (or used to for wxRED_PEN) these
> wxPen wxNullPen; (an object)
> wxPen* wxRED_PEN = new wxPen(...); a pointer
>
>       { &wxNullPen, 0, "wxNullPen", &s_wxluatag_wxPen },
>  *** error on next line
>       { 0, (const void **) &wxRED_PEN, "wxRED_PEN", &s_wxluatag_wxPen },
>
> =========================
>
> and wxlua/src/wxlbind.cpp
>
>     // install the objects and pointers
>     for (size_t iObject = 0; iObject < m_objectCount; ++iObject)
>     {
>         WXLUAOBJECT *pObject = m_objectList + iObject;
>         lua_pushstring(L, pObject->objName);
>         if (pObject->objPtr != 0)
>             wxlState.tpushusertag(pObject->objPtr, *pObject->objClassTag);
>         else
>             wxlState.tpushusertag(*pObject->pObjPtr, *pObject->objClassTag);
>         lua_rawset(L, tableOffset);
>     }
>


-------------------------------------------------------
This SF.Net email is sponsored by xPML, a groundbreaking scripting language
that extends applications into web and mobile media. Attend the live webcast
and join the prime developer group breaking into this new coding territory!
http://sel.as-us.falkag.net/sel?cmd=lnk&kid0944&bid$1720&dat1642
_______________________________________________
Wxlua-users mailing list
Wxlua-users@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/wxlua-users

Reply via email to