HUDElement2D_L.cpp

Go to the documentation of this file.
00001 #if 0  // OBSOLETE FILE
00002 #include "lugre_prefix.h"
00003 #include "lugre_scripting.h"
00004 #include "lugre_luabind.h"
00005 #include "HUDElement2D.h"
00006 
00007 extern "C" {
00008     #include "lua.h"
00009     #include "lauxlib.h"
00010     #include "lualib.h"
00011 }
00012 
00013 
00014 using namespace Lugre;
00015 
00016 class cHUDElement2D_L : public cLuaBind<cHUDElement2D> { public:
00018         virtual void RegisterMethods    (lua_State *L) { PROFILE
00019             // mlMethod.push_back((struct luaL_reg){"Meemba",       cHUDElement2D_L::Get});
00020             // lua_register(L,"MyGlobalFun",    MyGlobalFun);
00021             // lua_register(L,"MyStaticMethod", &cSomeClass::MyStaticMethod);
00022 
00023             lua_register(L,"CreateHUDElement2D",    &cHUDElement2D_L::CreateHUDElement2D);
00024 
00025             #define REGISTER_METHOD(methodname) mlMethod.push_back(make_luaL_reg(#methodname,&cHUDElement2D_L::methodname));
00026             REGISTER_METHOD(Destroy);
00027 
00028             // synced with include/HUDElement2D.h
00029             cScripting* scripting = cScripting::GetSingletonPtr();
00030             #define RegisterClassConstant(name) scripting->SetGlobal(#name,cHUDElement2D::name)
00031             RegisterClassConstant(kPosMode_None);
00032             RegisterClassConstant(kPosMode_Object);
00033             RegisterClassConstant(kPosMode_Aim);
00034             RegisterClassConstant(kPosMode_ObjectDir);
00035             RegisterClassConstant(kTurnMode_None);
00036             RegisterClassConstant(kTurnMode_Constant);
00037             RegisterClassConstant(kTurnMode_ObjectDist);
00038             RegisterClassConstant(kTurnMode_ObjectDir);
00039             RegisterClassConstant(kTextMode_None);
00040             RegisterClassConstant(kTextMode_Dist);
00041             RegisterClassConstant(kTextMode_RelSpeed);
00042             RegisterClassConstant(kTextMode_FPS);
00043             RegisterClassConstant(kTextMode_AbsSpeed);
00044         }
00045 
00047         virtual void RegisterMembers    () { PROFILE
00048             cHUDElement2D* prototype = new cHUDElement2D(); // memory leak : never deleted, but better than side effekts
00049             cMemberVar_REGISTER(prototype,  kVarType_bool,          mbVisible,  kVarFlag_NotifyChange);
00050             cMemberVar_REGISTER(prototype,  kVarType_bool,          mbPosModeObject_UpdateSize, kVarFlag_NotifyChange);
00051             cMemberVar_REGISTER(prototype,  kVarType_bool,          mbWatchMouse,   0);
00052             cMemberVar_REGISTER(prototype,  kVarType_bool,          mbMouseIsOver,  0);
00053 
00054             cMemberVar_REGISTER(prototype,  kVarType_size_t,        miUID,          kVarFlag_Readonly);
00055             cMemberVar_REGISTER(prototype,  kVarType_size_t,        miPosMode,      kVarFlag_NotifyChange);
00056             cMemberVar_REGISTER(prototype,  kVarType_size_t,        miTurnMode,     kVarFlag_NotifyChange);
00057             cMemberVar_REGISTER(prototype,  kVarType_size_t,        miTextMode,     kVarFlag_NotifyChange);
00058 
00059             cMemberVar_REGISTER(prototype,  kVarType_Vector2,       mvBase,         kVarFlag_NotifyChange);
00060             cMemberVar_REGISTER(prototype,  kVarType_Vector2,       mvParam,        kVarFlag_NotifyChange);
00061             cMemberVar_REGISTER(prototype,  kVarType_Vector2,       mvParam2,       kVarFlag_NotifyChange);
00062             cMemberVar_REGISTER(prototype,  kVarType_Vector2,       mvSizeParam,    kVarFlag_NotifyChange);
00063 
00064             cMemberVar_REGISTER(prototype,  kVarType_Real,          mfParam,        kVarFlag_NotifyChange);
00065             cMemberVar_REGISTER(prototype,  kVarType_Real,          mfCurRotate,    kVarFlag_NotifyChange);
00066             cMemberVar_REGISTER(prototype,  kVarType_Real,          mfTurnBase,     kVarFlag_NotifyChange);
00067             cMemberVar_REGISTER(prototype,  kVarType_Real,          mfTurnParam,    kVarFlag_NotifyChange);
00068             cMemberVar_REGISTER(prototype,  kVarType_Real,          mfTurnParam2,   kVarFlag_NotifyChange);
00069             cMemberVar_REGISTER(prototype,  kVarType_Real,          mfTurnMin,      kVarFlag_NotifyChange);
00070             cMemberVar_REGISTER(prototype,  kVarType_Real,          mfTurnMax,      kVarFlag_NotifyChange);
00071 
00072             cMemberVar_REGISTER(prototype,  kVarType_ObjSmartPtr,   mpObj1,         kVarFlag_NotifyChange);
00073             // cMemberVar_REGISTER(prototype,   kVarType_ObjSmartPtr,   mpObj2,     kVarFlag_NotifyChange);
00074             //cMemberVar_REGISTER(prototype,    kVarType_Colour,        mvColour,   kVarFlag_NotifyChange);
00075             cMemberVar_REGISTER(prototype,  kVarType_Gfx2D,         mpGfx2D,        kVarFlag_Readonly);
00076         }
00077 
00078         virtual void NotifyChange (cHUDElement2D* x,const char* sMemberVarName) { PROFILE
00079             assert(x);
00080             x->VarUpdate();
00081         }
00082 
00084 
00085 
00088         static int  CreateHUDElement2D      (lua_State *L) { PROFILE
00089             cHUDElement2D* target = new cHUDElement2D();
00090             target->Init();
00091             return CreateUData(L,target);
00092         }
00093 
00095         static int  Destroy         (lua_State *L) { PROFILE
00096             //printf("Destroy start\n");
00097             delete checkudata_alive(L);
00098             //printf("Destroy end\n");
00099             return 0;
00100         }
00101         
00102         virtual const char* GetLuaTypeName () { return "sfz.HUDElement2D"; }
00103 };
00104 
00106 void    cHUDElement2D::LuaRegister  (lua_State *L) { PROFILE
00107     cLuaBind<cHUDElement2D>::GetSingletonPtr(new cHUDElement2D_L())->LuaRegister(L);
00108 }
00109 
00110 #endif

Generated on Tue May 22 06:00:14 2012 for cpp by  doxygen 1.5.6