namespace Lua { typedef LuaDataSource DataSource; int DataSourceNotifyRowAdd(lua_State* L, DataSource* obj) { LUACHECKOBJ(obj); const char* table_name = luaL_checkstring(L,1); int first_row_added = luaL_checkint(L,2); int num_rows_added = luaL_checkint(L,3); obj->NotifyRowAdd(table_name,first_row_added,num_rows_added); return 0; } int DataSourceNotifyRowRemove(lua_State* L, DataSource* obj) { LUACHECKOBJ(obj); const char* table_name = luaL_checkstring(L,1); int first_row_removed = luaL_checkint(L,2); int num_rows_removed = luaL_checkint(L,3); obj->NotifyRowRemove(table_name,first_row_removed,num_rows_removed); return 0; } int DataSourceNotifyRowChange(lua_State* L, DataSource* obj) { LUACHECKOBJ(obj); const char* table_name = luaL_checkstring(L,1); if(lua_gettop(L) < 2) { obj->NotifyRowChange(table_name); } else { int first_row_changed = luaL_checkint(L,2); int num_rows_changed = luaL_checkint(L,3); obj->NotifyRowChange(table_name,first_row_changed,num_rows_changed); } return 0; } int DataSourceSetAttrGetNumRows(lua_State* L) { DataSource* obj = LuaType<DataSource>::check(L,1); LUACHECKOBJ(obj); if(lua_type(L,2) == LUA_TFUNCTION) { lua_pushvalue(L,2); //copy of the function, so it is for sure at the top of the stack obj->getNumRowsRef = lua_ref(L,true); } else Log::Message(Log::LT_WARNING, "Lua: Must assign DataSource.GetNumRows as a function, value received was of %s type", lua_typename(L,2)); return 0; } int DataSourceSetAttrGetRow(lua_State* L) { DataSource* obj = LuaType<DataSource>::check(L,1); LUACHECKOBJ(obj); if(lua_type(L,2) == LUA_TFUNCTION) { lua_pushvalue(L,2); //copy of the functions, so it is for sure at the top of the stack obj->getRowRef = lua_ref(L,true); } else Log::Message(Log::LT_WARNING, "Lua: Must assign DataSource.GetRow as a function, value received was of %s type", lua_typename(L,2)); return 0; } RegType<DataSource> DataSourceMethods[] = { LUAMETHOD(DataSource,NotifyRowAdd) LUAMETHOD(DataSource,NotifyRowRemove) LUAMETHOD(DataSource,NotifyRowChange) { NULL, NULL }, }; luaL_reg DataSourceGetters[] = { { NULL, NULL }, }; luaL_reg DataSourceSetters[] = { LUASETTER(DataSource,GetNumRows) LUASETTER(DataSource,GetRow) { NULL, NULL }, }; }
namespace Lua { //methods int ElementFormControlSelectAdd(lua_State* L, ElementFormControlSelect* obj) { const char* rml = luaL_checkstring(L,1); const char* value = luaL_checkstring(L,2); int before = -1; //default if(lua_gettop(L) >= 3) before = luaL_checkinteger(L,3); int index = obj->Add(rml,value,before); lua_pushinteger(L,index); return 1; } int ElementFormControlSelectRemove(lua_State* L, ElementFormControlSelect* obj) { int index = luaL_checkinteger(L,1); obj->Remove(index); return 0; } //getters int ElementFormControlSelectGetAttroptions(lua_State* L) { ElementFormControlSelect* obj = LuaType<ElementFormControlSelect>::check(L,1); LUACHECKOBJ(obj); SelectOptionsProxy* proxy = new SelectOptionsProxy(); proxy->owner = obj; LuaType<SelectOptionsProxy>::push(L,proxy,true); return 1; } int ElementFormControlSelectGetAttrselection(lua_State* L) { ElementFormControlSelect* obj = LuaType<ElementFormControlSelect>::check(L,1); LUACHECKOBJ(obj); int selection = obj->GetSelection(); lua_pushinteger(L,selection); return 1; } //setter int ElementFormControlSelectSetAttrselection(lua_State* L) { ElementFormControlSelect* obj = LuaType<ElementFormControlSelect>::check(L,1); LUACHECKOBJ(obj); int selection = luaL_checkinteger(L,2); obj->SetSelection(selection); return 0; } Rocket::Core::Lua::RegType<ElementFormControlSelect> ElementFormControlSelectMethods[] = { LUAMETHOD(ElementFormControlSelect,Add) LUAMETHOD(ElementFormControlSelect,Remove) { NULL, NULL }, }; luaL_Reg ElementFormControlSelectGetters[] = { LUAGETTER(ElementFormControlSelect,options) LUAGETTER(ElementFormControlSelect,selection) { NULL, NULL }, }; luaL_Reg ElementFormControlSelectSetters[] = { LUASETTER(ElementFormControlSelect,selection) { NULL, NULL }, }; }
{ Log::Message(Log::LT_ERROR, "The argument to ElementInstancer.InstanceElement must be a function. You passed in a %s.", luaL_typename(L,2)); return 0; } lei->PushFunctionsTable(L); //top of the stack is now ELEMENTINSTANCERFUNCTIONS table lua_pushvalue(L,2); //copy of the function lei->ref_InstanceElement = luaL_ref(L,-2); lua_pop(L,1); //pop the ELEMENTINSTANCERFUNCTIONS table return 0; } RegType<ElementInstancer> ElementInstancerMethods[] = { { NULL, NULL }, }; luaL_reg ElementInstancerGetters[] = { { NULL, NULL }, }; luaL_reg ElementInstancerSetters[] = { LUASETTER(ElementInstancer,InstanceElement) { NULL, NULL }, }; LUACORETYPEDEFINE(ElementInstancer,true) } } }
int ElementTextSetAttrtext(lua_State* L) { ElementText* obj = LuaType<ElementText>::check(L, 1); LUACHECKOBJ(obj); const char* text = luaL_checkstring(L,2); obj->SetText(text); return 0; } RegType<ElementText> ElementTextMethods[] = { { NULL, NULL }, }; luaL_reg ElementTextGetters[] = { LUAGETTER(ElementText,text) { NULL, NULL }, }; luaL_reg ElementTextSetters[] = { LUASETTER(ElementText,text) { NULL, NULL }, }; LUACORETYPEDEFINE(ElementText,true) } } }
namespace Lua { //methods int ElementTabSetSetPanel(lua_State* L, ElementTabSet* obj) { LUACHECKOBJ(obj); int index = luaL_checkint(L,1); const char* rml = luaL_checkstring(L,2); obj->SetPanel(index,rml); return 0; } int ElementTabSetSetTab(lua_State* L, ElementTabSet* obj) { LUACHECKOBJ(obj); int index = luaL_checkint(L,1); const char* rml = luaL_checkstring(L,2); obj->SetTab(index,rml); return 0; } //getters int ElementTabSetGetAttractive_tab(lua_State* L) { ElementTabSet* obj = LuaType<ElementTabSet>::check(L,1); LUACHECKOBJ(obj); int tab = obj->GetActiveTab(); lua_pushinteger(L,tab); return 1; } int ElementTabSetGetAttrnum_tabs(lua_State* L) { ElementTabSet* obj = LuaType<ElementTabSet>::check(L,1); LUACHECKOBJ(obj); int num = obj->GetNumTabs(); lua_pushinteger(L,num); return 1; } //setter int ElementTabSetSetAttractive_tab(lua_State* L) { ElementTabSet* obj = LuaType<ElementTabSet>::check(L,1); LUACHECKOBJ(obj); int tab = luaL_checkint(L,2); obj->SetActiveTab(tab); return 0; } Rocket::Core::Lua::RegType<ElementTabSet> ElementTabSetMethods[] = { LUAMETHOD(ElementTabSet,SetPanel) LUAMETHOD(ElementTabSet,SetTab) { NULL, NULL }, }; luaL_reg ElementTabSetGetters[] = { LUAGETTER(ElementTabSet,active_tab) LUAGETTER(ElementTabSet,num_tabs) { NULL, NULL }, }; luaL_reg ElementTabSetSetters[] = { LUASETTER(ElementTabSet,active_tab) { NULL, NULL }, }; }
RegType<Colourb> ColourbMethods[] = { { NULL, NULL }, }; luaL_reg ColourbGetters[] = { LUAGETTER(Colourb,red) LUAGETTER(Colourb,green) LUAGETTER(Colourb,blue) LUAGETTER(Colourb,alpha) LUAGETTER(Colourb,rgba) { NULL, NULL }, }; luaL_reg ColourbSetters[] = { LUASETTER(Colourb,red) LUASETTER(Colourb,green) LUASETTER(Colourb,blue) LUASETTER(Colourb,alpha) LUASETTER(Colourb,rgba) { NULL, NULL }, }; LUACORETYPEDEFINE(Colourb,false) } } }
namespace Lua { //getters int ElementDataGridRowGetAttrrow_expanded(lua_State* L) { ElementDataGridRow* obj = LuaType<ElementDataGridRow>::check(L,1); LUACHECKOBJ(obj); lua_pushboolean(L,obj->IsRowExpanded()); return 1; } int ElementDataGridRowGetAttrparent_relative_index(lua_State* L) { ElementDataGridRow* obj = LuaType<ElementDataGridRow>::check(L,1); LUACHECKOBJ(obj); lua_pushinteger(L,obj->GetParentRelativeIndex()); return 1; } int ElementDataGridRowGetAttrtable_relative_index(lua_State* L) { ElementDataGridRow* obj = LuaType<ElementDataGridRow>::check(L,1); LUACHECKOBJ(obj); lua_pushinteger(L,obj->GetTableRelativeIndex()); return 1; } int ElementDataGridRowGetAttrparent_row(lua_State* L) { ElementDataGridRow* obj = LuaType<ElementDataGridRow>::check(L,1); LUACHECKOBJ(obj); LuaType<ElementDataGridRow>::push(L,obj->GetParentRow(),false); return 1; } int ElementDataGridRowGetAttrparent_grid(lua_State* L) { ElementDataGridRow* obj = LuaType<ElementDataGridRow>::check(L,1); LUACHECKOBJ(obj); LuaType<ElementDataGrid>::push(L,obj->GetParentGrid(),false); return 1; } //setter int ElementDataGridRowSetAttrrow_expanded(lua_State* L) { ElementDataGridRow* obj = LuaType<ElementDataGridRow>::check(L,1); LUACHECKOBJ(obj); bool expanded = CHECK_BOOL(L,2); if(expanded) obj->ExpandRow(); else obj->CollapseRow(); return 0; } Rocket::Core::Lua::RegType<ElementDataGridRow> ElementDataGridRowMethods[] = { { NULL, NULL }, }; luaL_Reg ElementDataGridRowGetters[] = { LUAGETTER(ElementDataGridRow,row_expanded) LUAGETTER(ElementDataGridRow,parent_relative_index) LUAGETTER(ElementDataGridRow,table_relative_index) LUAGETTER(ElementDataGridRow,parent_row) LUAGETTER(ElementDataGridRow,parent_grid) { NULL, NULL }, }; luaL_Reg ElementDataGridRowSetters[] = { LUASETTER(ElementDataGridRow,row_expanded) { NULL, NULL }, }; }
namespace Lua { //metamethods int Colourfnew(lua_State* L) { float red = (float)luaL_checknumber(L,1); float green = (float)luaL_checknumber(L,2); float blue = (float)luaL_checknumber(L,3); float alpha = (float)luaL_checknumber(L,4); Colourf* col = new Colourf(red,green,blue,alpha); LuaType<Colourf>::push(L,col,true); return 1; } int Colourf__eq(lua_State* L) { Colourf* lhs = LuaType<Colourf>::check(L,1); LUACHECKOBJ(lhs); Colourf* rhs = LuaType<Colourf>::check(L,2); LUACHECKOBJ(rhs); lua_pushboolean(L, (*lhs) == (*rhs) ? 1 : 0); return 1; } //getters int ColourfGetAttrred(lua_State* L) { Colourf* obj = LuaType<Colourf>::check(L,1); LUACHECKOBJ(obj); lua_pushnumber(L,obj->red); return 1; } int ColourfGetAttrgreen(lua_State* L) { Colourf* obj = LuaType<Colourf>::check(L,1); LUACHECKOBJ(obj); lua_pushnumber(L,obj->green); return 1; } int ColourfGetAttrblue(lua_State* L) { Colourf* obj = LuaType<Colourf>::check(L,1); LUACHECKOBJ(obj); lua_pushnumber(L,obj->blue); return 1; } int ColourfGetAttralpha(lua_State* L) { Colourf* obj = LuaType<Colourf>::check(L,1); LUACHECKOBJ(obj); lua_pushnumber(L,obj->alpha); return 1; } int ColourfGetAttrrgba(lua_State* L) { Colourf* obj = LuaType<Colourf>::check(L,1); LUACHECKOBJ(obj); lua_pushnumber(L,obj->red); lua_pushnumber(L,obj->green); lua_pushnumber(L,obj->blue); lua_pushnumber(L,obj->alpha); return 4; } //setters int ColourfSetAttrred(lua_State* L) { Colourf* obj = LuaType<Colourf>::check(L,1); LUACHECKOBJ(obj); float red = (float)luaL_checknumber(L,2); obj->red = red; return 0; } int ColourfSetAttrgreen(lua_State* L) { Colourf* obj = LuaType<Colourf>::check(L,1); LUACHECKOBJ(obj); float green = (float)luaL_checknumber(L,2); obj->green = green; return 0; } int ColourfSetAttrblue(lua_State* L) { Colourf* obj = LuaType<Colourf>::check(L,1); LUACHECKOBJ(obj); float blue = (float)luaL_checknumber(L,2); obj->blue; return 0; } int ColourfSetAttralpha(lua_State* L) { Colourf* obj = LuaType<Colourf>::check(L,1); LUACHECKOBJ(obj); float alpha = (float)luaL_checknumber(L,2); obj->alpha; return 0; } RegType<Colourf> ColourfMethods[] = { { NULL, NULL }, }; luaL_reg ColourfGetters[] = { LUAGETTER(Colourf,red) LUAGETTER(Colourf,green) LUAGETTER(Colourf,blue) LUAGETTER(Colourf,alpha) LUAGETTER(Colourf,rgba) { NULL, NULL }, }; luaL_reg ColourfSetters[] = { LUASETTER(Colourf,red) LUASETTER(Colourf,green) LUASETTER(Colourf,blue) LUASETTER(Colourf,alpha) { NULL, NULL }, }; }
namespace Lua { int Vector2fnew(lua_State* L) { float x = (float)luaL_checknumber(L,1); float y = (float)luaL_checknumber(L,2); Vector2f* vect = new Vector2f(x,y); LuaType<Vector2f>::push(L,vect,true); //true means it will be deleted when it is garbage collected return 1; } int Vector2f__mul(lua_State* L) { Vector2f* lhs = LuaType<Vector2f>::check(L,1); LUACHECKOBJ(lhs); float rhs = (float)luaL_checknumber(L,2); Vector2f* res = new Vector2f(*lhs); (*res) *= rhs; LuaType<Vector2f>::push(L,res,true); return 1; } int Vector2f__div(lua_State* L) { Vector2f* lhs = LuaType<Vector2f>::check(L,1); LUACHECKOBJ(lhs); float rhs = (float)luaL_checknumber(L,2); Vector2f* res = new Vector2f(*lhs); (*res) /= rhs; LuaType<Vector2f>::push(L,res,true); return 1; } int Vector2f__add(lua_State* L) { Vector2f* lhs = LuaType<Vector2f>::check(L,1); LUACHECKOBJ(lhs); Vector2f* rhs = LuaType<Vector2f>::check(L,2); LUACHECKOBJ(rhs); Vector2f* res = new Vector2f(*lhs); (*res) += (*rhs); LuaType<Vector2f>::push(L,res,true); return 1; } int Vector2f__sub(lua_State* L) { Vector2f* lhs = LuaType<Vector2f>::check(L,1); LUACHECKOBJ(lhs); Vector2f* rhs = LuaType<Vector2f>::check(L,2); LUACHECKOBJ(rhs); Vector2f* res = new Vector2f(*lhs); (*res) -= (*rhs); LuaType<Vector2f>::push(L,res,true); return 1; } int Vector2f__eq(lua_State* L) { Vector2f* lhs = LuaType<Vector2f>::check(L,1); LUACHECKOBJ(lhs); Vector2f* rhs = LuaType<Vector2f>::check(L,2); LUACHECKOBJ(rhs); lua_pushboolean(L, (*lhs) == (*rhs) ? 1 : 0); return 1; } int Vector2fDotProduct(lua_State* L, Vector2f* obj) { Vector2f* rhs = LuaType<Vector2f>::check(L,1); LUACHECKOBJ(rhs); float res = obj->DotProduct(*rhs); lua_pushnumber(L,res); return 1; } int Vector2fNormalise(lua_State* L, Vector2f* obj) { Vector2f* res = new Vector2f(); (*res) = obj->Normalise(); LuaType<Vector2f>::push(L,res,true); return 1; } int Vector2fRotate(lua_State* L, Vector2f* obj) { float num = (float)luaL_checknumber(L,1); Vector2f* res = new Vector2f(); (*res) = obj->Rotate(num); LuaType<Vector2f>::push(L,res,true); return 1; } int Vector2fGetAttrx(lua_State*L) { Vector2f* self = LuaType<Vector2f>::check(L,1); LUACHECKOBJ(self); lua_pushnumber(L,self->x); return 1; } int Vector2fGetAttry(lua_State*L) { Vector2f* self = LuaType<Vector2f>::check(L,1); LUACHECKOBJ(self); lua_pushnumber(L,self->y); return 1; } int Vector2fGetAttrmagnitude(lua_State*L) { Vector2f* self = LuaType<Vector2f>::check(L,1); LUACHECKOBJ(self); lua_pushnumber(L,self->Magnitude()); return 1; } int Vector2fSetAttrx(lua_State*L) { Vector2f* self = LuaType<Vector2f>::check(L,1); LUACHECKOBJ(self); float value = (float)luaL_checknumber(L,2); self->x = value; return 0; } int Vector2fSetAttry(lua_State*L) { Vector2f* self = LuaType<Vector2f>::check(L,1); LUACHECKOBJ(self); float value = (float)luaL_checknumber(L,2); self->y = value; return 0; } RegType<Vector2f> Vector2fMethods[] = { LUAMETHOD(Vector2f,DotProduct) LUAMETHOD(Vector2f,Normalise) LUAMETHOD(Vector2f,Rotate) { NULL, NULL }, }; luaL_reg Vector2fGetters[]= { LUAGETTER(Vector2f,x) LUAGETTER(Vector2f,y) LUAGETTER(Vector2f,magnitude) { NULL, NULL }, }; luaL_reg Vector2fSetters[]= { LUASETTER(Vector2f,x) LUASETTER(Vector2f,y) { NULL, NULL }, }; }
RegType<Document> DocumentMethods[] = { LUAMETHOD(Document,PullToFront) LUAMETHOD(Document,PushToBack) LUAMETHOD(Document,Show) LUAMETHOD(Document,Hide) LUAMETHOD(Document,Close) LUAMETHOD(Document,CreateElement) LUAMETHOD(Document,CreateTextNode) { NULL, NULL }, }; luaL_Reg DocumentGetters[] = { LUAGETTER(Document,title) LUAGETTER(Document,context) { NULL, NULL }, }; luaL_Reg DocumentSetters[] = { LUASETTER(Document,title) { NULL, NULL }, }; LUACORETYPEDEFINE(Document,true) } } }
namespace Lua { //getters int ElementFormControlGetAttrdisabled(lua_State* L) { ElementFormControl* efc = LuaType<ElementFormControl>::check(L,1); LUACHECKOBJ(efc); lua_pushboolean(L,efc->IsDisabled()); return 1; } int ElementFormControlGetAttrname(lua_State* L) { ElementFormControl* efc = LuaType<ElementFormControl>::check(L,1); LUACHECKOBJ(efc); lua_pushstring(L,efc->GetName().CString()); return 1; } int ElementFormControlGetAttrvalue(lua_State* L) { ElementFormControl* efc = LuaType<ElementFormControl>::check(L,1); LUACHECKOBJ(efc); lua_pushstring(L,efc->GetValue().CString()); return 1; } //setters int ElementFormControlSetAttrdisabled(lua_State* L) { ElementFormControl* efc = LuaType<ElementFormControl>::check(L,1); LUACHECKOBJ(efc); efc->SetDisabled(CHECK_BOOL(L,2)); return 0; } int ElementFormControlSetAttrname(lua_State* L) { ElementFormControl* efc = LuaType<ElementFormControl>::check(L,1); LUACHECKOBJ(efc); const char* name = luaL_checkstring(L,2); efc->SetName(name); return 0; } int ElementFormControlSetAttrvalue(lua_State* L) { ElementFormControl* efc = LuaType<ElementFormControl>::check(L,1); LUACHECKOBJ(efc); const char* value = luaL_checkstring(L,2); efc->SetValue(value); return 0; } RegType<ElementFormControl> ElementFormControlMethods[] = { { NULL, NULL }, }; luaL_reg ElementFormControlGetters[] = { LUAGETTER(ElementFormControl,disabled) LUAGETTER(ElementFormControl,name) LUAGETTER(ElementFormControl,value) { NULL, NULL }, }; luaL_reg ElementFormControlSetters[] = { LUASETTER(ElementFormControl,disabled) LUASETTER(ElementFormControl,name) LUASETTER(ElementFormControl,value) { NULL, NULL }, }; }
{ { NULL, NULL }, }; luaL_Reg ColourfGetters[] = { LUAGETTER(Colourf,red) LUAGETTER(Colourf,green) LUAGETTER(Colourf,blue) LUAGETTER(Colourf,alpha) LUAGETTER(Colourf,rgba) { NULL, NULL }, }; luaL_Reg ColourfSetters[] = { LUASETTER(Colourf,red) LUASETTER(Colourf,green) LUASETTER(Colourf,blue) LUASETTER(Colourf,alpha) LUASETTER(Colourf,rgba) { NULL, NULL }, }; LUACORETYPEDEFINE(Colourf,false) } } }
RegType<Vector2f> Vector2fMethods[] = { LUAMETHOD(Vector2f,DotProduct) LUAMETHOD(Vector2f,Normalise) LUAMETHOD(Vector2f,Rotate) { NULL, NULL }, }; luaL_Reg Vector2fGetters[]= { LUAGETTER(Vector2f,x) LUAGETTER(Vector2f,y) LUAGETTER(Vector2f,magnitude) { NULL, NULL }, }; luaL_Reg Vector2fSetters[]= { LUASETTER(Vector2f,x) LUASETTER(Vector2f,y) { NULL, NULL }, }; LUACORETYPEDEFINE(Vector2f,false) } } }