2
0

lua_string_setting.cpp 1.5 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677
  1. /*
  2. * Copyright (c) 2012-2014 Daniele Bartolini and individual contributors.
  3. * License: https://github.com/taylor001/crown/blob/master/LICENSE
  4. */
  5. #include "string_setting.h"
  6. #include "lua_stack.h"
  7. #include "lua_environment.h"
  8. namespace crown
  9. {
  10. static int string_setting_value(lua_State* L)
  11. {
  12. LuaStack stack(L);
  13. const char* setting_name = stack.get_string(1);
  14. StringSetting* setting = StringSetting::find_setting(setting_name);
  15. if (setting != NULL)
  16. {
  17. stack.push_string(setting->value());
  18. }
  19. else
  20. {
  21. stack.push_string("");
  22. }
  23. return 1;
  24. }
  25. static int string_setting_synopsis(lua_State* L)
  26. {
  27. LuaStack stack(L);
  28. const char* setting_name = stack.get_string(1);
  29. StringSetting* setting = StringSetting::find_setting(setting_name);
  30. if (setting != NULL)
  31. {
  32. stack.push_string(setting->synopsis());
  33. }
  34. else
  35. {
  36. stack.push_string("");
  37. }
  38. return 1;
  39. }
  40. static int string_setting_update(lua_State* L)
  41. {
  42. LuaStack stack(L);
  43. const char* setting_name = stack.get_string(1);
  44. const char* setting_value = stack.get_string(2);
  45. StringSetting* setting = StringSetting::find_setting(setting_name);
  46. if (setting != NULL)
  47. {
  48. (*setting) = setting_value;
  49. }
  50. return 0;
  51. }
  52. void load_string_setting(LuaEnvironment& env)
  53. {
  54. env.load_module_function("StringSetting", "value", string_setting_value);
  55. env.load_module_function("StringSetting", "synopsis", string_setting_synopsis);
  56. env.load_module_function("StringSetting", "update", string_setting_update);
  57. }
  58. } // namespace crown