Context.h 2.9 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889
  1. #ifndef ROCKETCORELUACONTEXT_H
  2. #define ROCKETCORELUACONTEXT_H
  3. /*
  4. This defines a Context type in the Lua global namespace
  5. //methods
  6. noreturn Context:AddEventListener(string event, function | string listener, [Element element, bool capture]) --see note at the bottom
  7. noreturn Context:AddMouseCursor(Document cursor_document)
  8. Document Context:CreateDocument([string tag]) --tag defaults to "body"
  9. Document Context:LoadDocument(string path)
  10. Document Context:LoadMouseCursor(string path)
  11. bool Context:Render()
  12. noreturn Context:ShowMouseCursor(bool show)
  13. noreturn Context:UnloadAllDocuments()
  14. noreturn Context:UnloadAllMouseCursors()
  15. noreturn Context:UnloadDocument(Document doc)
  16. noreturn Context:UnloadMouseCursor(string name)
  17. bool Context:Update()
  18. //getters
  19. Vector2i Context.dimensions
  20. {} where key=string id,value=Document Context.documents
  21. Element Context.focus_element
  22. Element Context.hover_element
  23. string Context.name
  24. Element Context.root_element
  25. //setters
  26. Context.dimensions = Vector2i
  27. --note 1
  28. --[[
  29. Context:AddEventListener has 2 'unusuals'. The first is that the 2nd argument can be either a string or a function;
  30. see footnote 1 in Element.h for more info
  31. The second is the optional parameters. If you pass in an element (anything not nil), then it will actually call
  32. element->AddEventListener and will call context->AddEventListener otherwise. capture will default to false
  33. ]]
  34. */
  35. #include <Rocket/Core/Lua/LuaType.h>
  36. #include <Rocket/Core/Lua/lua.hpp>
  37. #include <Rocket/Core/Context.h>
  38. namespace Rocket {
  39. namespace Core {
  40. namespace Lua {
  41. template<> bool LuaType<Context>::is_reference_counted();
  42. //methods
  43. int ContextAddEventListener(lua_State* L, Context* obj);
  44. int ContextAddMouseCursor(lua_State* L, Context* obj);
  45. int ContextCreateDocument(lua_State* L, Context* obj);
  46. int ContextLoadDocument(lua_State* L, Context* obj);
  47. int ContextLoadMouseCursor(lua_State* L, Context* obj);
  48. int ContextRender(lua_State* L, Context* obj);
  49. int ContextShowMouseCursor(lua_State* L, Context* obj);
  50. int ContextUnloadAllDocuments(lua_State* L, Context* obj);
  51. int ContextUnloadAllMouseCursors(lua_State* L, Context* obj);
  52. int ContextUnloadDocument(lua_State* L, Context* obj);
  53. int ContextUnloadMouseCursor(lua_State* L, Context* obj);
  54. int ContextUpdate(lua_State* L, Context* obj);
  55. //getters
  56. int ContextGetAttrdimensions(lua_State* L);
  57. int ContextGetAttrdocuments(lua_State* L);
  58. int ContextGetAttrfocus_element(lua_State* L);
  59. int ContextGetAttrhover_element(lua_State* L);
  60. int ContextGetAttrname(lua_State* L);
  61. int ContextGetAttrroot_element(lua_State* L);
  62. //setters
  63. int ContextSetAttrdimensions(lua_State* L);
  64. RegType<Context> ContextMethods[];
  65. luaL_reg ContextGetters[];
  66. luaL_reg ContextSetters[];
  67. /*
  68. template<> const char* GetTClassName<Context>();
  69. template<> RegType<Context>* GetMethodTable<Context>();
  70. template<> luaL_reg* GetAttrTable<Context>();
  71. template<> luaL_reg* SetAttrTable<Context>();
  72. */
  73. }
  74. }
  75. }
  76. #endif