[Top][All Lists]
[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&);
[Prev in Thread] |
Current Thread |
[Next in Thread] |
- [Pingus-CVS] r3946 - trunk/pingus/src,
jsalmon3 <=