Vultraz

Untitled

Jan 1st, 2016
119
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Diff 2.41 KB | None | 0 0
  1.  src/events.cpp      |  6 ------
  2.  src/preferences.cpp |  6 ++++--
  3.  src/preferences.hpp | 11 +++++++++--
  4.  3 files changed, 13 insertions(+), 10 deletions(-)
  5.  
  6. diff --git a/src/events.cpp b/src/events.cpp
  7. index a8d7505..d66efb5 100644
  8. --- a/src/events.cpp
  9. +++ b/src/events.cpp
  10. @@ -448,12 +448,6 @@ void pump()
  11.                         break;
  12.                 }
  13.  
  14. -               // Hook into preferences event handling
  15. -               // This probably isn't the right place for this but I really don't
  16. -               // know where else to put it.
  17. -               // - Vultraz, 12/28/2015
  18. -               preferences::handle_event(event);
  19. -
  20.                 break;
  21.  #else
  22.             case SDL_ACTIVEEVENT: {
  23. diff --git a/src/preferences.cpp b/src/preferences.cpp
  24. index 18fd632..80275ff 100644
  25. --- a/src/preferences.cpp
  26. +++ b/src/preferences.cpp
  27. @@ -58,6 +58,8 @@ namespace preferences {
  28.  
  29.  base_manager::base_manager()
  30.  {
  31. +   event_handler_.join_global();
  32. +
  33.     try{
  34.  #ifdef DEFAULT_PREFS_PATH
  35.         filesystem::scoped_istream stream = filesystem::istream_file(filesystem::get_default_prefs_file(),false);
  36. @@ -96,7 +98,7 @@ base_manager::~base_manager()
  37.   * events. Since there is no fullscreen window event, that setter is called
  38.   * from the CVideo function instead.
  39.   */
  40. -void handle_event(const SDL_Event& event)
  41. +void prefs_event_handler::handle_event(const SDL_Event& event)
  42.  {
  43.  #if SDL_VERSION_ATLEAST(2, 0, 0)
  44.     // Saftey check to make sure this is a window event
  45. @@ -107,7 +109,7 @@ void handle_event(const SDL_Event& event)
  46.     case SDL_WINDOWEVENT_RESIZED:
  47.         _set_resolution(std::make_pair(event.window.data1,event.window.data2));
  48.  
  49. -       break;
  50. +       break;
  51.  
  52.     case SDL_WINDOWEVENT_MAXIMIZED:
  53.         _set_maximized(true);
  54. diff --git a/src/preferences.hpp b/src/preferences.hpp
  55. index 40632a0..ca80589 100644
  56. --- a/src/preferences.hpp
  57. +++ b/src/preferences.hpp
  58. @@ -20,6 +20,7 @@
  59.  class config;
  60.  class display;
  61.  
  62. +#include "events.hpp"
  63.  #include "terrain_translation.hpp"
  64.  
  65.  #include "SDL.h"
  66. @@ -33,14 +34,20 @@ namespace hotkey {
  67.  
  68.  namespace preferences {
  69.  
  70. +   class prefs_event_handler : public events::sdl_handler {
  71. +   public:
  72. +       virtual void handle_event(const SDL_Event &event);
  73. +       prefs_event_handler() : sdl_handler(false) {}
  74. +   };
  75. +
  76. +   prefs_event_handler event_handler_;
  77. +
  78.     struct base_manager
  79.     {
  80.         base_manager();
  81.         ~base_manager();
  82.     };
  83.  
  84. -   void handle_event(const SDL_Event& event);
  85. -
  86.     void write_preferences();
  87.  
  88.     void set(const std::string& key, const std::string &value);
Advertisement
Add Comment
Please, Sign In to add comment