pingus-cvs
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[Pingus-CVS] r3946 - trunk/pingus/src


From: jsalmon3
Subject: [Pingus-CVS] r3946 - trunk/pingus/src
Date: Sun, 14 Dec 2008 05:14:11 +0100

Author: jsalmon3
Date: 2008-12-14 05:14:07 +0100 (Sun, 14 Dec 2008)
New Revision: 3946

Modified:
   trunk/pingus/src/config_manager.cpp
   trunk/pingus/src/config_manager.hpp
   trunk/pingus/src/option_menu.cpp
   trunk/pingus/src/option_menu.hpp
Log:
More updates to the options menu. Changing the language has a bug where 
existing menus aren't updated with the new language.



Modified: trunk/pingus/src/config_manager.cpp
===================================================================
--- trunk/pingus/src/config_manager.cpp 2008-12-13 23:35:17 UTC (rev 3945)
+++ trunk/pingus/src/config_manager.cpp 2008-12-14 04:14:07 UTC (rev 3946)
@@ -22,12 +22,15 @@
 #include "fps_counter.hpp"
 #include "display/display.hpp"
 #include "screen/screen_manager.hpp"
+#include "tinygettext/dictionary_manager.hpp"
 #include "sexpr_file_reader.hpp"
 #include "sexpr_file_writer.hpp"
 #include "config_manager.hpp"
 #include "lisp/lisp.hpp"
 #include "lisp/parser.hpp"
 
+extern TinyGetText::DictionaryManager dictionary_manager;
+
 ConfigManager config_manager;
 
 ConfigManager::ConfigManager()
@@ -278,6 +281,11 @@
 {
   if (maintainer_mode)
     std::cout << "ConfigManager::set_allow_resize: " << v << std::endl;
+
+  if (v != get_allow_resize())
+    {
+      on_allow_resize_change(v);
+    }
 }
 
 bool
@@ -294,11 +302,7 @@
 
   if (v != get_mouse_grab())
     {
-      if (v)
-        SDL_WM_GrabInput(SDL_GRAB_ON);
-      else
-        SDL_WM_GrabInput(SDL_GRAB_OFF);
-
+      SDL_WM_GrabInput(v ? SDL_GRAB_ON : SDL_GRAB_OFF);
       on_mouse_grab_change(v);
     }
 }
@@ -315,8 +319,11 @@
   if (maintainer_mode)
     std::cout << "ConfigManager::set_print_fps: " << v << std::endl;
 
-  print_fps = v;
-  on_print_fps_change(v);
+  if (v != get_print_fps())
+    {
+      print_fps = v;
+      on_print_fps_change(v);
+    }
 }
 
 bool
@@ -330,12 +337,18 @@
 {
   if (maintainer_mode)
     std::cout << "ConfigManager::set_language: '" << v << "'" << std::endl;
+
+  if (v != get_language())
+    {
+      dictionary_manager.set_current_dictionary(v);
+      on_language_change(v);
+    }
 }
 
 std::string
 ConfigManager::get_language()
 {
-  return "";
+  return dictionary_manager.get_dictionary().get_language()->code;
 }
 
 void
@@ -347,6 +360,7 @@
   if (v != get_swcursor())
     {
       ScreenManager::instance()->show_swcursor(v);
+      on_swcursor_change(v);
     }
 }
 
@@ -361,12 +375,18 @@
 {
   if (maintainer_mode)
     std::cout << "ConfigManager::set_autoscroll: " << v << std::endl;
+
+  if (v != get_autoscroll())
+    {
+      auto_scrolling = v;
+      on_autoscroll_change(v);
+    }
 }
 
 bool
 ConfigManager::get_autoscroll()
 {
-  return false;
+  return auto_scrolling;
 }
 
 /* EOF */

Modified: trunk/pingus/src/config_manager.hpp
===================================================================
--- trunk/pingus/src/config_manager.hpp 2008-12-13 23:35:17 UTC (rev 3945)
+++ trunk/pingus/src/config_manager.hpp 2008-12-14 04:14:07 UTC (rev 3946)
@@ -57,7 +57,7 @@
 
   void set_allow_resize(bool);
   bool get_allow_resize();
-  boost::signal<void(bool)> on_allow_reszie_change;
+  boost::signal<void(bool)> on_allow_resize_change;
 
   void set_mouse_grab(bool);
   bool get_mouse_grab();

Modified: trunk/pingus/src/option_menu.cpp
===================================================================
--- trunk/pingus/src/option_menu.cpp    2008-12-13 23:35:17 UTC (rev 3945)
+++ trunk/pingus/src/option_menu.cpp    2008-12-14 04:14:07 UTC (rev 3946)
@@ -61,6 +61,7 @@
   }
 
   void on_click() {
+    parent->save_language();
     config_manager.save();
     parent->close_screen();
     Sound::PingusSound::play_sound("yipee");
@@ -117,6 +118,7 @@
   resolution_box->set_current_choice(current_choice);
 
   std::string current_language = dictionary_manager.get_current_language();
+  language = current_language;
   current_choice = -1;
   n = 0;
 
@@ -127,7 +129,10 @@
     {
       TinyGetText::LanguageDef* lang = TinyGetText::get_language_def(*i);
       if (lang)
-        languages.push_back(lang->name);
+        {
+          languages.push_back(lang->name);
+          language_map[lang->name] = *i;
+        }
     }
   std::sort(languages.begin(), languages.end());
 
@@ -165,16 +170,17 @@
   
C(sound_volume_box->on_change.connect(boost::bind(&OptionMenu::on_sound_volume_change,
 this, _1)));
   
C(music_volume_box->on_change.connect(boost::bind(&OptionMenu::on_music_volume_change,
 this, _1)));
 
+  
C(language_box->on_change.connect(boost::bind(&OptionMenu::on_language_change, 
this, _1)));
   
C(resolution_box->on_change.connect(boost::bind(&OptionMenu::on_resolution_change,
 this, _1)));
 
   add_item(_("Language:"),        language_box);
-  add_item(_("Scroll Mode:"),     scroll_box);
+//  add_item(_("Scroll Mode:"),     scroll_box);
   add_item(_("Resolution:"),      resolution_box);
   add_item(_("Fullscreen:"),      fullscreen_box);
-  add_item(_("Autoscrolling:"),   autoscroll_box);
   add_item(_("Master Volume:"),   master_volume_box);
   add_item(_("Sound Volume:"),    sound_volume_box);
   add_item(_("Music Volume:"),    music_volume_box);
+  add_item(_("Autoscrolling:"),   autoscroll_box);
   add_item(_("Print FPS:"),       printfps_box);
   add_item(_("Mouse Grab:"),      mousegrab_box);
   add_item(_("Software Cursor:"), swcursor_box);
@@ -367,6 +373,12 @@
 }
 
 void
+OptionMenu::on_language_change(const std::string &str)
+{
+  language = str;
+}
+
+void
 OptionMenu::on_resolution_change(const std::string& str)
 {
   if (str != "Custom")
@@ -379,4 +391,10 @@
     }
 }
 
+void
+OptionMenu::save_language()
+{
+  config_manager.set_language(language_map[language]);
+}
+
 /* EOF */

Modified: trunk/pingus/src/option_menu.hpp
===================================================================
--- trunk/pingus/src/option_menu.hpp    2008-12-13 23:35:17 UTC (rev 3945)
+++ trunk/pingus/src/option_menu.hpp    2008-12-14 04:14:07 UTC (rev 3946)
@@ -18,6 +18,7 @@
 #define HEADER_OPTION_MENU_HPP
 
 #include <vector>
+#include <map>
 #include <boost/signals.hpp>
 #include "sprite.hpp"
 #include "screen/gui_screen.hpp"
@@ -65,6 +66,9 @@
   typedef std::vector<boost::signals::connection> Connections;
   Connections connections;
 
+  std::string language;
+  std::map<std::string, std::string> language_map;
+
 public:
   OptionMenu();
   ~OptionMenu();
@@ -88,8 +92,11 @@
   void on_sound_volume_change(int v);
   void on_music_volume_change(int v);
 
+  void on_language_change(const std::string& str);
   void on_resolution_change(const std::string& str);
 
+  void save_language();
+
 private:
   OptionMenu (const OptionMenu&);
   OptionMenu& operator= (const OptionMenu&);





reply via email to

[Prev in Thread] Current Thread [Next in Thread]