Context.h 2.9 KB

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