From: John L. <jr...@us...> - 2007-06-06 03:53:44
|
Update of /cvsroot/wxlua/wxLua/modules/wxlua/include In directory sc8-pr-cvs9.sourceforge.net:/tmp/cvs-serv25933/modules/wxlua/include Modified Files: wxlbind.h wxlstate.h Log Message: Switch s_wxluaarg_Enumeration to s_wxluaarg_Enum Add the rest of the LUA_TXXX types as s_wxluaarg_XXX and create #defines as well as functions to verify them with the result of lua_type() Unify all of the wxlua_isXXXtype functions to all call the same function Get rid of wxLuaStringToLongHashMap in wxlstate.h and don't use it anymore in wxLuaCheckStack since we can just use a wxSortedArrayString Remove wxLuaState::GetBaseLuaClass since it wasn't used anywhere Cleanup wxLuaState::CallOverloadedFunction to use new check function Index: wxlbind.h =================================================================== RCS file: /cvsroot/wxlua/wxLua/modules/wxlua/include/wxlbind.h,v retrieving revision 1.41 retrieving revision 1.42 diff -C2 -d -r1.41 -r1.42 *** wxlbind.h 5 Jun 2007 21:07:25 -0000 1.41 --- wxlbind.h 6 Jun 2007 03:53:40 -0000 1.42 *************** *** 87,98 **** // wxlua arg tags for common lua types extern WXDLLIMPEXP_DATA_WXLUA(int) s_wxluaarg_None; ! extern WXDLLIMPEXP_DATA_WXLUA(int) s_wxluaarg_String; extern WXDLLIMPEXP_DATA_WXLUA(int) s_wxluaarg_Boolean; - extern WXDLLIMPEXP_DATA_WXLUA(int) s_wxluaarg_Enumeration; - extern WXDLLIMPEXP_DATA_WXLUA(int) s_wxluaarg_Number; extern WXDLLIMPEXP_DATA_WXLUA(int) s_wxluaarg_LightUserData; ! extern WXDLLIMPEXP_DATA_WXLUA(int) s_wxluaarg_UserData; extern WXDLLIMPEXP_DATA_WXLUA(int) s_wxluaarg_LuaTable; extern WXDLLIMPEXP_DATA_WXLUA(int) s_wxluaarg_LuaFunction; struct WXDLLIMPEXP_WXLUA WXLUADEFINE // defines a wxWidgets define for wxLua --- 87,113 ---- // wxlua arg tags for common lua types extern WXDLLIMPEXP_DATA_WXLUA(int) s_wxluaarg_None; ! extern WXDLLIMPEXP_DATA_WXLUA(int) s_wxluaarg_Nil; extern WXDLLIMPEXP_DATA_WXLUA(int) s_wxluaarg_Boolean; extern WXDLLIMPEXP_DATA_WXLUA(int) s_wxluaarg_LightUserData; ! extern WXDLLIMPEXP_DATA_WXLUA(int) s_wxluaarg_Number; ! extern WXDLLIMPEXP_DATA_WXLUA(int) s_wxluaarg_String; extern WXDLLIMPEXP_DATA_WXLUA(int) s_wxluaarg_LuaTable; extern WXDLLIMPEXP_DATA_WXLUA(int) s_wxluaarg_LuaFunction; + extern WXDLLIMPEXP_DATA_WXLUA(int) s_wxluaarg_UserData; + extern WXDLLIMPEXP_DATA_WXLUA(int) s_wxluaarg_LuaThread; + extern WXDLLIMPEXP_DATA_WXLUA(int) s_wxluaarg_Enum; + + #define WXLUAARG_None 0 + #define WXLUAARG_Nil -2 + #define WXLUAARG_Boolean -3 + #define WXLUAARG_LightUserData -4 + #define WXLUAARG_Number -5 + #define WXLUAARG_String -6 + #define WXLUAARG_LuaTable -7 + #define WXLUAARG_LuaFunction -8 + #define WXLUAARG_UserData -9 + #define WXLUAARG_LuaThread -10 + #define WXLUAARG_Enum -11 + struct WXDLLIMPEXP_WXLUA WXLUADEFINE // defines a wxWidgets define for wxLua Index: wxlstate.h =================================================================== RCS file: /cvsroot/wxlua/wxLua/modules/wxlua/include/wxlstate.h,v retrieving revision 1.69 retrieving revision 1.70 diff -C2 -d -r1.69 -r1.70 *** wxlstate.h 5 Jun 2007 21:07:25 -0000 1.69 --- wxlstate.h 6 Jun 2007 03:53:40 -0000 1.70 *************** *** 51,56 **** class WXDLLIMPEXP_WXLUA wxLuaWinDestroyCallback; - WX_DECLARE_STRING_HASH_MAP_WITH_DECL(long, wxLuaStringToLongHashMap, class WXDLLIMPEXP_WXLUA); - // ---------------------------------------------------------------------------- // String functions - convert between Lua (ansi string) and wxString (encoded) --- 51,54 ---- *************** *** 157,160 **** --- 155,166 ---- + // Verify if the luatype = lua_type(L, stack_idx) is valid for the + // wxluaarg_type which is one of the predefined WXLUAARG_XXX or s_wxluaarg_XXX types. + // Returns 1 if it matches, 0 if it doesn't, -1 if the wxluaarg_type is not known. + WXDLLIMPEXP_WXLUA int LUACALL wxlua_iswxluatype(int luatype, int wxluaarg_type); + // Get a human readable name for the predefined WXLUAARG_XXX or s_wxluaarg_XXX types. + // returns "unknown" if the tag was not one of the predefined types. + WXDLLIMPEXP_WXLUA wxString wxlua_getwxluatypename(int wxluaarg_type); + // Helper functions to get numbers, booleans and strings safer. // These validate that the object at the stack index specified is a string, bool, *************** *** 162,169 **** // Note: wxLua has a stricter sense of type than lua and we don't want to // always allow coersion between types since oftentimes there's an error. ! WXDLLIMPEXP_WXLUA bool LUACALL wxlua_isstringtype(lua_State* L, int stack_idx); ! WXDLLIMPEXP_WXLUA bool LUACALL wxlua_isbooleantype(lua_State* L, int stack_idx); ! WXDLLIMPEXP_WXLUA bool LUACALL wxlua_isenumerationtype(lua_State* L, int stack_idx); ! WXDLLIMPEXP_WXLUA bool LUACALL wxlua_isnumbertype(lua_State* L, int stack_idx); // After verifying using wxlua_isXXXtype return the value, else call // wxlua_terror with a message that's appropriate for stack_idx to be a --- 168,176 ---- // Note: wxLua has a stricter sense of type than lua and we don't want to // always allow coersion between types since oftentimes there's an error. ! #define wxlua_isstringtype(L, stack_idx) (wxlua_iswxluatype(lua_type(L, stack_idx), WXLUAARG_String) == 1) ! #define wxlua_isbooleantype(L, stack_idx) (wxlua_iswxluatype(lua_type(L, stack_idx), WXLUAARG_Boolean) == 1) ! #define wxlua_isenumerationtype(L, stack_idx) (wxlua_iswxluatype(lua_type(L, stack_idx), WXLUAARG_Enum) == 1) ! #define wxlua_isnumbertype(L, stack_idx) (wxlua_iswxluatype(lua_type(L, stack_idx), WXLUAARG_Number) == 1) ! // After verifying using wxlua_isXXXtype return the value, else call // wxlua_terror with a message that's appropriate for stack_idx to be a *************** *** 472,476 **** wxLUA_UNUSED_NOTUNICODE(void RegisterFunction(lua_CFunction func, const wxString &funcName) { RegisterFunction(func, wx2lua(funcName)); }) // Register all the bindings in the wxLuaStateData, this is done ! // automatically by default (internal use) void RegisterBindings(bool registerTypes); --- 479,483 ---- wxLUA_UNUSED_NOTUNICODE(void RegisterFunction(lua_CFunction func, const wxString &funcName) { RegisterFunction(func, wx2lua(funcName)); }) // Register all the bindings in the wxLuaStateData, this is done ! // automatically by default on creation. (internal use) void RegisterBindings(bool registerTypes); *************** *** 489,495 **** // Get the first WXLUACLASS that has this particular WXLUAMETHOD_CFUNC in it's methods const WXLUACLASS* GetLuaClass(const WXLUAMETHOD_CFUNC* method_cfunc) const; - // Get base WXLUACLASS for given Tag using WXLUACLASS::class_tag and - // WXLUACLASS::baseclass_tag. returns NULL on failure. - const WXLUACLASS* GetBaseLuaClass(int iClassTag) const; // returns true if iClassTag is derived or equal to iBaseClassTag by using // WXLUACLASS::class_tag and WXLUACLASS::baseclass_tag. --- 496,499 ---- *************** *** 906,910 **** // Return a human readable string of the args for the functions in the method ! wxString CreateMethodArgTagsMsg(struct WXLUAMETHOD* method); // overloaded function call helper int LUACALL CallOverloadedFunction(struct WXLUAMETHOD* method); --- 910,914 ---- // Return a human readable string of the args for the functions in the method ! wxArrayString CreateMethodArgTagsMsg(struct WXLUAMETHOD* method); // overloaded function call helper int LUACALL CallOverloadedFunction(struct WXLUAMETHOD* method); |