Split supertux/options_menu.?pp
authorgrumbel <grumbel@837edb03-e0f3-0310-88ca-d4d4e8b29345>
Wed, 18 Nov 2009 03:25:12 +0000 (03:25 +0000)
committergrumbel <grumbel@837edb03-e0f3-0310-88ca-d4d4e8b29345>
Wed, 18 Nov 2009 03:25:12 +0000 (03:25 +0000)
git-svn-id: http://supertux.lethargik.org/svn/supertux/trunk/supertux@6026 837edb03-e0f3-0310-88ca-d4d4e8b29345

src/supertux/language_menu.cpp [new file with mode: 0644]
src/supertux/language_menu.hpp [new file with mode: 0644]
src/supertux/options_menu.cpp
src/supertux/options_menu.hpp

diff --git a/src/supertux/language_menu.cpp b/src/supertux/language_menu.cpp
new file mode 100644 (file)
index 0000000..d7a0fb1
--- /dev/null
@@ -0,0 +1,74 @@
+//  SuperTux
+//  Copyright (C) 2004 Tobas Glaesser <tobi.web@gmx.de>
+//  Copyright (C) 2006 Matthias Braun <matze@braunis.de>
+//
+//  This program is free software: you can redistribute it and/or modify
+//  it under the terms of the GNU General Public License as published by
+//  the Free Software Foundation, either version 3 of the License, or
+//  (at your option) any later version.
+//
+//  This program is distributed in the hope that it will be useful,
+//  but WITHOUT ANY WARRANTY; without even the implied warranty of
+//  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+//  GNU General Public License for more details.
+//
+//  You should have received a copy of the GNU General Public License
+//  along with this program.  If not, see <http://www.gnu.org/licenses/>.
+
+#include "supertux/language_menu.hpp"
+
+#include "gui/menu_item.hpp"
+#include "supertux/gameconfig.hpp"
+
+LanguageMenu::LanguageMenu() 
+{
+  add_label(_("Language"));
+  add_hl();
+  add_entry(0, std::string("<")+_("auto-detect")+">");
+  add_entry(1, "English");
+
+  int mnid = 10;    
+  std::set<std::string> languages = dictionary_manager.get_languages();
+  for (std::set<std::string>::iterator i = languages.begin(); i != languages.end(); i++) {
+    std::string locale_name = *i;
+    TinyGetText::LanguageDef ldef = TinyGetText::get_language_def(locale_name);
+    std::string locale_fullname = locale_name;
+    if (std::string(ldef.code) == locale_name) {
+      locale_fullname = ldef.name;
+    }
+    add_entry(mnid++, locale_fullname);
+  } 
+
+  add_hl();
+  add_back(_("Back"));
+}
+
+void
+LanguageMenu::menu_action(MenuItem* item) 
+{
+  if (item->id == 0) {
+    g_config->locale = "";
+    dictionary_manager.set_language(g_config->locale);
+    g_config->save();
+    Menu::pop_current();
+  }
+  else if (item->id == 1) {
+    g_config->locale = "en";
+    dictionary_manager.set_language(g_config->locale);
+    g_config->save();
+    Menu::pop_current();
+  }
+  int mnid = 10;    
+  std::set<std::string> languages = dictionary_manager.get_languages();
+  for (std::set<std::string>::iterator i = languages.begin(); i != languages.end(); i++) {
+    std::string locale_name = *i;
+    if (item->id == mnid++) {
+      g_config->locale = locale_name;
+      dictionary_manager.set_language(g_config->locale);
+      g_config->save();
+      Menu::pop_current();
+    }
+  }
+}
+
+/* EOF */
diff --git a/src/supertux/language_menu.hpp b/src/supertux/language_menu.hpp
new file mode 100644 (file)
index 0000000..c2d3a0f
--- /dev/null
@@ -0,0 +1,36 @@
+//  SuperTux
+//  Copyright (C) 2004 Tobas Glaesser <tobi.web@gmx.de>
+//  Copyright (C) 2006 Matthias Braun <matze@braunis.de>
+//
+//  This program is free software: you can redistribute it and/or modify
+//  it under the terms of the GNU General Public License as published by
+//  the Free Software Foundation, either version 3 of the License, or
+//  (at your option) any later version.
+//
+//  This program is distributed in the hope that it will be useful,
+//  but WITHOUT ANY WARRANTY; without even the implied warranty of
+//  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+//  GNU General Public License for more details.
+//
+//  You should have received a copy of the GNU General Public License
+//  along with this program.  If not, see <http://www.gnu.org/licenses/>.
+
+#ifndef HEADER_SUPERTUX_SUPERTUX_LANGUAGE_MENU_HPP
+#define HEADER_SUPERTUX_SUPERTUX_LANGUAGE_MENU_HPP
+
+#include <set>
+
+#include "util/gettext.hpp"
+#include "gui/menu.hpp"
+
+class LanguageMenu : public Menu
+{
+public:
+  LanguageMenu();
+
+  virtual void menu_action(MenuItem* item);
+};
+
+#endif
+
+/* EOF */
index 06556bd..e218a10 100644 (file)
@@ -24,6 +24,7 @@
 #include "supertux/gameconfig.hpp"
 #include "supertux/main.hpp"
 #include "supertux/profile_menu.hpp"
+#include "supertux/language_menu.hpp"
 #include "util/gettext.hpp"
 #include "video/renderer.hpp"
 
@@ -39,71 +40,6 @@ enum OptionsMenuIDs {
   MNID_MUSIC
 };
 
-class LanguageMenu : public Menu
-{
-public:
-  LanguageMenu() {
-    add_label(_("Language"));
-    add_hl();
-    add_entry(0, std::string("<")+_("auto-detect")+">");
-    add_entry(1, "English");
-
-    int mnid = 10;    
-    std::set<std::string> languages = dictionary_manager.get_languages();
-    for (std::set<std::string>::iterator i = languages.begin(); i != languages.end(); i++) {
-      std::string locale_name = *i;
-      TinyGetText::LanguageDef ldef = TinyGetText::get_language_def(locale_name);
-      std::string locale_fullname = locale_name;
-      if (std::string(ldef.code) == locale_name) {
-        locale_fullname = ldef.name;
-      }
-      add_entry(mnid++, locale_fullname);
-    } 
-
-    add_hl();
-    add_back(_("Back"));
-  }
-
-  virtual void menu_action(MenuItem* item) {
-    if (item->id == 0) {
-      g_config->locale = "";
-      dictionary_manager.set_language(g_config->locale);
-      g_config->save();
-      Menu::pop_current();
-    }
-    else if (item->id == 1) {
-      g_config->locale = "en";
-      dictionary_manager.set_language(g_config->locale);
-      g_config->save();
-      Menu::pop_current();
-    }
-    int mnid = 10;    
-    std::set<std::string> languages = dictionary_manager.get_languages();
-    for (std::set<std::string>::iterator i = languages.begin(); i != languages.end(); i++) {
-      std::string locale_name = *i;
-      if (item->id == mnid++) {
-        g_config->locale = locale_name;
-        dictionary_manager.set_language(g_config->locale);
-        g_config->save();
-        Menu::pop_current();
-      }
-    }
-  }
-};
-
-class OptionsMenu : public Menu
-{
-public:
-  OptionsMenu();
-  virtual ~OptionsMenu();
-
-  virtual void menu_action(MenuItem* item);
-
-protected:
-  std::auto_ptr<LanguageMenu> language_menu;
-  
-};
-
 OptionsMenu::OptionsMenu() :
   language_menu()
 {
index 998bd27..be2264d 100644 (file)
 #ifndef HEADER_SUPERTUX_SUPERTUX_OPTIONS_MENU_HPP
 #define HEADER_SUPERTUX_SUPERTUX_OPTIONS_MENU_HPP
 
-class Menu;
+#include <memory>
+
+#include "gui/menu.hpp"
+
+class LanguageMenu;
+
 Menu* get_options_menu();
 void free_options_menu();
 
+class OptionsMenu : public Menu
+{
+public:
+  OptionsMenu();
+  virtual ~OptionsMenu();
+
+  virtual void menu_action(MenuItem* item);
+
+protected:
+  std::auto_ptr<LanguageMenu> language_menu;
+  
+};
+
 #endif
 
 /* EOF */