widelands-dev team mailing list archive
-
widelands-dev team
-
Mailing list archive
-
Message #03070
[Merge] lp:~widelands-dev/widelands/bug-859245 into lp:widelands
GunChleoc has proposed merging lp:~widelands-dev/widelands/bug-859245 into lp:widelands.
Requested reviews:
Widelands Developers (widelands-dev)
Related bugs:
Bug #859245 in widelands: "Authors / developers button in main menu"
https://bugs.launchpad.net/widelands/+bug/859245
For more details, see:
https://code.launchpad.net/~widelands-dev/widelands/bug-859245/+merge/241549
Uniform layout for all fullscreen menus that have only buttons in them, with a new superclass "FullscreenMenuMainMenu".
Added an "Authors" button to the main menu.
--
https://code.launchpad.net/~widelands-dev/widelands/bug-859245/+merge/241549
Your team Widelands Developers is requested to review the proposed merge of lp:~widelands-dev/widelands/bug-859245 into lp:widelands.
=== modified file 'src/build_info.h'
--- src/build_info.h 2014-07-05 16:41:51 +0000
+++ src/build_info.h 2014-11-12 13:15:31 +0000
@@ -20,10 +20,11 @@
#ifndef WL_BUILD_INFO_H
#define WL_BUILD_INFO_H
-#define WLCR "(C) 2002-2014 "
-
#include <string>
+constexpr uint16_t kWidelandsCopyrightStart = 2002;
+constexpr uint16_t kWidelandsCopyrightEnd = 2014;
+
///\return the build id which is automagically created from the checkout's
///revision number or the VERSION file
const std::string & build_id();
=== modified file 'src/ui_fsmenu/CMakeLists.txt'
--- src/ui_fsmenu/CMakeLists.txt 2014-11-03 06:55:18 +0000
+++ src/ui_fsmenu/CMakeLists.txt 2014-11-12 13:15:31 +0000
@@ -22,6 +22,8 @@
load_map_or_game.h
main.cc
main.h
+ main_menu.cc
+ main_menu.h
mapselect.cc
mapselect.h
multiplayer.cc
=== modified file 'src/ui_fsmenu/base.cc'
--- src/ui_fsmenu/base.cc 2014-09-18 18:52:34 +0000
+++ src/ui_fsmenu/base.cc 2014-11-12 13:15:31 +0000
@@ -117,3 +117,7 @@
{
return d->textstyle_big.font;
}
+
+int32_t FullscreenMenuBase::get_y_from_preceding(UI::Panel& preceding_panel) {
+ return preceding_panel.get_y() + preceding_panel.get_h();
+}
=== modified file 'src/ui_fsmenu/base.h'
--- src/ui_fsmenu/base.h 2014-09-10 14:08:25 +0000
+++ src/ui_fsmenu/base.h 2014-11-12 13:15:31 +0000
@@ -52,6 +52,10 @@
UI::Font * font_small();
UI::Font * font_big();
+protected:
+ // Returns a y coordinate that can be used to position a Panel below the Panel directly above it
+ int32_t get_y_from_preceding(UI::Panel& preceding_panel);
+
private:
/**
* Query the configured screen resolution.
=== modified file 'src/ui_fsmenu/editor.cc'
--- src/ui_fsmenu/editor.cc 2014-09-27 09:28:51 +0000
+++ src/ui_fsmenu/editor.cc 2014-11-12 13:15:31 +0000
@@ -24,43 +24,35 @@
#include "wui/text_constants.h"
FullscreenMenuEditor::FullscreenMenuEditor() :
- FullscreenMenuBase("ui_fsmenu.jpg"),
-
-// Values for alignment and size
- m_butw (get_w() * 7 / 20),
- m_buth (get_h() * 19 / 400),
- m_butx ((get_w() - m_butw) / 2),
+ FullscreenMenuMainMenu(),
// Title
title
- (this, get_w() / 2, get_h() * 3 / 40, _("Editor"), UI::Align_HCenter),
+ (this, get_w() / 2, m_title_y, _("Editor"), UI::Align_HCenter),
// Buttons
new_map
(this, "new_map",
- m_butx, get_h() * 6 / 25, m_butw, m_buth,
- g_gr->images().get("pics/but1.png"),
- _("New Map"), std::string(), true, false),
+ m_butx, m_buty, m_butw, m_buth,
+ g_gr->images().get(m_button_background),
+ _("New Map"), "", true, false),
load_map
(this, "load_map",
- m_butx, get_h() * 61 / 200, m_butw, m_buth,
- g_gr->images().get("pics/but1.png"),
- _("Load Map"), std::string(), true, false),
+ m_butx, get_y_from_preceding(new_map) + m_padding, m_butw, m_buth,
+ g_gr->images().get(m_button_background),
+ _("Load Map"), "", true, false),
back
(this, "back",
- m_butx, get_h() * 3 / 4, m_butw, m_buth,
- g_gr->images().get("pics/but0.png"),
- _("Back"), std::string(), true, false)
+ m_butx, m_back_button_y, m_butw, m_buth,
+ g_gr->images().get(m_button_background),
+ _("Back"), "", true, false)
{
new_map.sigclicked.connect
- (boost::bind(&FullscreenMenuEditor::end_modal, boost::ref(*this), static_cast<int32_t>(New_Map)));
+ (boost::bind(&FullscreenMenuEditor::end_modal, boost::ref(*this), static_cast<int32_t>(MenuTarget::kNewMap)));
load_map.sigclicked.connect
- (boost::bind(&FullscreenMenuEditor::end_modal, boost::ref(*this), static_cast<int32_t>(Load_Map)));
+ (boost::bind(&FullscreenMenuEditor::end_modal, boost::ref(*this), static_cast<int32_t>(MenuTarget::kLoadMap)));
back.sigclicked.connect
- (boost::bind(&FullscreenMenuEditor::end_modal, boost::ref(*this), static_cast<int32_t>(Back)));
+ (boost::bind(&FullscreenMenuEditor::end_modal, boost::ref(*this), static_cast<int32_t>(MenuTarget::kBack)));
- new_map.set_font(font_small());
- load_map.set_font(font_small());
- back.set_font(font_small());
title.set_font(ui_fn(), fs_big(), UI_FONT_CLR_FG);
}
=== modified file 'src/ui_fsmenu/editor.h'
--- src/ui_fsmenu/editor.h 2014-09-10 14:08:25 +0000
+++ src/ui_fsmenu/editor.h 2014-11-12 13:15:31 +0000
@@ -20,7 +20,7 @@
#ifndef WL_UI_FSMENU_EDITOR_H
#define WL_UI_FSMENU_EDITOR_H
-#include "ui_fsmenu/base.h"
+#include "ui_fsmenu/main_menu.h"
#include "ui_basic/button.h"
#include "ui_basic/textarea.h"
@@ -28,19 +28,20 @@
* Fullscreen Menu for Editor.
* Here you select what game you want to play.
*/
-struct FullscreenMenuEditor : public FullscreenMenuBase {
+struct FullscreenMenuEditor : public FullscreenMenuMainMenu {
FullscreenMenuEditor();
- enum {Back = dying_code, New_Map, Load_Map};
+ enum class MenuTarget: int32_t {
+ kBack = UI::Panel::dying_code,
+ kNewMap,
+ kLoadMap
+ };
private:
- uint32_t m_butw;
- uint32_t m_buth;
- uint32_t m_butx;
- UI::Textarea title;
- UI::Button new_map;
- UI::Button load_map;
- UI::Button back;
+ UI::Textarea title;
+ UI::Button new_map;
+ UI::Button load_map;
+ UI::Button back;
};
#endif // end of include guard: WL_UI_FSMENU_EDITOR_H
=== modified file 'src/ui_fsmenu/load_map_or_game.cc'
--- src/ui_fsmenu/load_map_or_game.cc 2014-10-28 12:53:29 +0000
+++ src/ui_fsmenu/load_map_or_game.cc 2014-11-12 13:15:31 +0000
@@ -87,12 +87,6 @@
return FullscreenMenuBase::handle_key(down, code);
}
-
-int32_t FullscreenMenuLoadMapOrGame::get_y_from_preceding(UI::Panel& preceding_panel) {
- return preceding_panel.get_y() + preceding_panel.get_h();
-}
-
-
int32_t FullscreenMenuLoadMapOrGame::get_right_column_w(int32_t x) {
return get_w() - m_right_column_margin - x;
}
=== modified file 'src/ui_fsmenu/load_map_or_game.h'
--- src/ui_fsmenu/load_map_or_game.h 2014-10-31 07:40:54 +0000
+++ src/ui_fsmenu/load_map_or_game.h 2014-11-12 13:15:31 +0000
@@ -93,9 +93,6 @@
return has_selection;
}
- // Returns a y coordinate that can be used to position a Panel below the Panel directly above it
- int32_t get_y_from_preceding(UI::Panel& preceding_panel);
-
// Returns the width that a Panel in the right column should have, depending on its x position
int32_t get_right_column_w(int32_t x);
=== modified file 'src/ui_fsmenu/main.cc'
--- src/ui_fsmenu/main.cc 2014-10-11 08:43:07 +0000
+++ src/ui_fsmenu/main.cc 2014-11-12 13:15:31 +0000
@@ -19,76 +19,80 @@
#include "ui_fsmenu/main.h"
+#include <boost/format.hpp>
+
#include "base/i18n.h"
#include "build_info.h"
#include "graphic/graphic.h"
FullscreenMenuMain::FullscreenMenuMain() :
- FullscreenMenuBase("mainmenu.jpg"),
-
-// Values for alignment and size
- m_butx (get_w() * 13 / 40),
- m_butw (get_w() * 7 / 20),
- m_buth (get_h() * 19 / 400),
- wlcr (WLCR),
+ FullscreenMenuMainMenu("mainmenu.jpg"),
// Buttons
playtutorial
(this, "play_tutorial",
m_butx, get_h() * 42 / 200, m_butw, m_buth,
- g_gr->images().get("pics/but3.png"),
- _("Play Tutorial"), std::string(), true, false),
+ g_gr->images().get(m_button_background),
+ _("Play Tutorial"), "", true, false),
singleplayer
(this, "single_player",
- m_butx, get_h() * 61 / 200, m_butw, m_buth,
- g_gr->images().get("pics/but3.png"),
- _("Single Player"), std::string(), true, false),
+ m_butx, get_y_from_preceding(playtutorial) + m_buth, m_butw, m_buth,
+ g_gr->images().get(m_button_background),
+ _("Single Player"), "", true, false),
multiplayer
(this, "multi_player",
- m_butx, get_h() * 37 / 100, m_butw, m_buth,
- g_gr->images().get("pics/but3.png"),
- _("Multiplayer"), std::string(), true, false),
+ m_butx, get_y_from_preceding(singleplayer) + m_padding, m_butw, m_buth,
+ g_gr->images().get(m_button_background),
+ _("Multiplayer"), "", true, false),
replay
(this, "replay",
- m_butx, get_h() * 87 / 200, m_butw, m_buth,
- g_gr->images().get("pics/but3.png"),
- _("Watch Replay"), std::string(), true, false),
+ m_butx, get_y_from_preceding(multiplayer) + m_padding, m_butw, m_buth,
+ g_gr->images().get(m_button_background),
+ _("Watch Replay"), "", true, false),
editor
(this, "editor",
- m_butx, get_h() * 100 / 200, m_butw, m_buth,
- g_gr->images().get("pics/but3.png"),
- _("Editor"), std::string(), true, false),
+ m_butx, get_y_from_preceding(replay) + m_padding, m_butw, m_buth,
+ g_gr->images().get(m_button_background),
+ _("Editor"), "", true, false),
options
(this, "options",
- m_butx, get_h() * 119 / 200, m_butw, m_buth,
- g_gr->images().get("pics/but3.png"),
- _("Options"), std::string(), true, false),
+ m_butx, get_y_from_preceding(editor) + m_buth, m_butw, m_buth,
+ g_gr->images().get(m_button_background),
+ _("Options"), "", true, false),
readme
(this, "readme",
- m_butx, get_h() * 138 / 200, m_butw, m_buth,
- g_gr->images().get("pics/but3.png"),
- _("View Readme"), std::string(), true, false),
+ m_butx, get_y_from_preceding(options) + m_buth, m_butw, m_buth,
+ g_gr->images().get(m_button_background),
+ _("View Readme"), "", true, false),
license
(this, "license",
- m_butx, get_h() * 151 / 200, m_butw, m_buth,
- g_gr->images().get("pics/but3.png"),
- _("License"), std::string(), true, false),
+ m_butx, get_y_from_preceding(readme) + m_padding, m_butw, m_buth,
+ g_gr->images().get(m_button_background),
+ _("License"), "", true, false),
+ authors
+ (this, "authors",
+ m_butx, get_y_from_preceding(license) + m_padding, m_butw, m_buth,
+ g_gr->images().get(m_button_background),
+ _("Authors"), "", true, false),
exit
(this, "exit",
- m_butx, get_h() * 178 / 200, m_butw, m_buth,
- g_gr->images().get("pics/but3.png"),
- _("Exit Widelands"), std::string(), true, false),
+ m_butx, get_y_from_preceding(authors) + m_buth, m_butw, m_buth,
+ g_gr->images().get(m_button_background),
+ _("Exit Widelands"), "", true, false),
// Textlabels
version
(this,
get_w(), get_h(),
- _("Version ") + build_id() + '(' + build_type() + ')',
+ /** TRANSLATORS: %1$s = version string, %2%s = "Debug" or "Release" */
+ (boost::format(_("Version %1$s (%2$s)")) % build_id().c_str() % build_type().c_str()).str(),
UI::Align_BottomRight),
copyright
(this,
0, get_h() - 0.5 * m_buth,
- (wlcr + _("by the Widelands Development Team")).c_str(),
+ /** TRANSLATORS: Placeholders are the copyright years */
+ (boost::format(_("(C) %1%-%2% by the Widelands Development Team"))
+ % kWidelandsCopyrightStart % kWidelandsCopyrightEnd).str(),
UI::Align_BottomLeft),
gpl
(this,
@@ -99,51 +103,41 @@
playtutorial.sigclicked.connect
(boost::bind
(&FullscreenMenuMain::end_modal, boost::ref(*this),
- static_cast<int32_t>(mm_playtutorial)));
+ static_cast<int32_t>(MenuTarget::kTutorial)));
singleplayer.sigclicked.connect
(boost::bind
(&FullscreenMenuMain::end_modal, boost::ref(*this),
- static_cast<int32_t>(mm_singleplayer)));
+ static_cast<int32_t>(MenuTarget::kSinglePlayer)));
multiplayer.sigclicked.connect
(boost::bind
(&FullscreenMenuMain::end_modal, boost::ref(*this),
- static_cast<int32_t>(mm_multiplayer)));
+ static_cast<int32_t>(MenuTarget::kMultiplayer)));
replay.sigclicked.connect
(boost::bind
(&FullscreenMenuMain::end_modal, boost::ref(*this),
- static_cast<int32_t>(mm_replay)));
+ static_cast<int32_t>(MenuTarget::kReplay)));
editor.sigclicked.connect
(boost::bind
(&FullscreenMenuMain::end_modal, boost::ref(*this),
- static_cast<int32_t>(mm_editor)));
+ static_cast<int32_t>(MenuTarget::kEditor)));
options.sigclicked.connect
(boost::bind
(&FullscreenMenuMain::end_modal, boost::ref(*this),
- static_cast<int32_t>(mm_options)));
+ static_cast<int32_t>(MenuTarget::kOptions)));
readme.sigclicked.connect
(boost::bind
(&FullscreenMenuMain::end_modal, boost::ref(*this),
- static_cast<int32_t>(mm_readme)));
+ static_cast<int32_t>(MenuTarget::kReadme)));
license.sigclicked.connect
(boost::bind
(&FullscreenMenuMain::end_modal, boost::ref(*this),
- static_cast<int32_t>(mm_license)));
+ static_cast<int32_t>(MenuTarget::kLicense)));
+ authors.sigclicked.connect
+ (boost::bind
+ (&FullscreenMenuMain::end_modal, boost::ref(*this),
+ static_cast<int32_t>(MenuTarget::kAuthors)));
exit.sigclicked.connect
(boost::bind
(&FullscreenMenuMain::end_modal, boost::ref(*this),
- static_cast<int32_t>(mm_exit)));
-
- playtutorial.set_font(font_small());
- singleplayer.set_font(font_small());
- multiplayer.set_font(font_small());
- replay.set_font(font_small());
- editor.set_font(font_small());
- options.set_font(font_small());
- readme.set_font(font_small());
- license.set_font(font_small());
- exit.set_font(font_small());
-
- version.set_textstyle(ts_small());
- copyright.set_textstyle(ts_small());
- gpl.set_textstyle(ts_small());
+ static_cast<int32_t>(MenuTarget::kExit)));
}
=== modified file 'src/ui_fsmenu/main.h'
--- src/ui_fsmenu/main.h 2014-09-10 14:08:25 +0000
+++ src/ui_fsmenu/main.h 2014-11-12 13:15:31 +0000
@@ -20,7 +20,7 @@
#ifndef WL_UI_FSMENU_MAIN_H
#define WL_UI_FSMENU_MAIN_H
-#include "ui_fsmenu/base.h"
+#include "ui_fsmenu/main_menu.h"
#include "ui_basic/button.h"
#include "ui_basic/textarea.h"
@@ -28,37 +28,34 @@
* This runs the main menu. There, you can select
* between different playmodes, exit and so on.
*/
-struct FullscreenMenuMain : public FullscreenMenuBase {
+struct FullscreenMenuMain : public FullscreenMenuMainMenu {
FullscreenMenuMain();
- enum {
- mm_summary,
- mm_playtutorial,
- mm_singleplayer,
- mm_multiplayer,
- mm_replay,
- mm_editor,
- mm_options,
- mm_readme,
- mm_license,
- mm_exit
+ enum class MenuTarget: int32_t {
+ kTutorial,
+ kSinglePlayer,
+ kMultiplayer,
+ kReplay,
+ kEditor,
+ kOptions,
+ kReadme,
+ kLicense,
+ kAuthors,
+ kExit
};
private:
- uint32_t m_butx;
- uint32_t m_butw;
- uint32_t m_buth;
- std::string wlcr;
- UI::Button playtutorial;
- UI::Button singleplayer;
- UI::Button multiplayer;
- UI::Button replay;
- UI::Button editor;
- UI::Button options;
- UI::Button readme;
- UI::Button license;
- UI::Button exit;
- UI::Textarea version;
- UI::Textarea copyright;
- UI::Textarea gpl;
+ UI::Button playtutorial;
+ UI::Button singleplayer;
+ UI::Button multiplayer;
+ UI::Button replay;
+ UI::Button editor;
+ UI::Button options;
+ UI::Button readme;
+ UI::Button license;
+ UI::Button authors;
+ UI::Button exit;
+ UI::Textarea version;
+ UI::Textarea copyright;
+ UI::Textarea gpl;
};
#endif // end of include guard: WL_UI_FSMENU_MAIN_H
=== added file 'src/ui_fsmenu/main_menu.cc'
--- src/ui_fsmenu/main_menu.cc 1970-01-01 00:00:00 +0000
+++ src/ui_fsmenu/main_menu.cc 2014-11-12 13:15:31 +0000
@@ -0,0 +1,38 @@
+/*
+ * Copyright (C) 2002-2004, 2006-2009 by the Widelands Development Team
+ *
+ * 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 2
+ * 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, write to the Free Software
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+ *
+ */
+
+#include "ui_fsmenu/main_menu.h"
+
+FullscreenMenuMainMenu::FullscreenMenuMainMenu():
+ FullscreenMenuMainMenu("ui_fsmenu.jpg")
+ {}
+
+FullscreenMenuMainMenu::FullscreenMenuMainMenu(const char* background_image):
+ FullscreenMenuBase(background_image),
+
+ // Values for alignment and size
+ m_butx(get_w() * 13 / 40),
+ m_buty(get_h() * 6 / 25),
+ m_butw(get_w() * 7 / 20),
+ m_buth(get_h() * 9 / 200),
+ m_back_button_y(get_h() * 3 / 4),
+ m_title_y(get_h() * 3 / 40),
+ m_padding(m_buth / 3),
+ m_button_background("pics/but3.png")
+{}
=== added file 'src/ui_fsmenu/main_menu.h'
--- src/ui_fsmenu/main_menu.h 1970-01-01 00:00:00 +0000
+++ src/ui_fsmenu/main_menu.h 2014-11-12 13:15:31 +0000
@@ -0,0 +1,41 @@
+/*
+ * Copyright (C) 2002, 2006-2008 by the Widelands Development Team
+ *
+ * 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 2
+ * 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, write to the Free Software
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+ *
+ */
+
+#ifndef WL_UI_FSMENU_MAIN_MENU_H
+#define WL_UI_FSMENU_MAIN_MENU_H
+
+#include "ui_fsmenu/base.h"
+
+/**
+ * This sets the values for alignment and size and other common properties
+ * for main menus that contain only buttons.
+ */
+struct FullscreenMenuMainMenu : public FullscreenMenuBase {
+ FullscreenMenuMainMenu();
+ FullscreenMenuMainMenu(char const * background_image);
+
+protected:
+ uint32_t m_butx, m_buty, m_butw, m_buth;
+ uint32_t m_back_button_y, m_title_y;
+ uint32_t m_padding;
+
+ const std::string m_button_background;
+};
+
+#endif // end of include guard: WL_UI_FSMENU_MAIN_MENU_H
=== modified file 'src/ui_fsmenu/multiplayer.cc'
--- src/ui_fsmenu/multiplayer.cc 2014-09-29 19:25:24 +0000
+++ src/ui_fsmenu/multiplayer.cc 2014-11-12 13:15:31 +0000
@@ -25,52 +25,44 @@
#include "wui/text_constants.h"
FullscreenMenuMultiPlayer::FullscreenMenuMultiPlayer() :
- FullscreenMenuBase("ui_fsmenu.jpg"),
-
-// Values for alignment and size
- m_butw (get_w() * 7 / 20),
- m_buth (get_h() * 19 / 400),
- m_butx ((get_w() - m_butw) / 2),
- m_fs (fs_small()),
- m_fn (ui_fn()),
+ FullscreenMenuMainMenu(),
// Title
title
(this,
- get_w() / 2, get_h() * 3 / 40,
+ get_w() / 2, m_title_y,
_("Choose game type"), UI::Align_HCenter),
// Buttons
metaserver
(this, "metaserver",
- m_butx, get_h() * 6 / 25, m_butw, m_buth,
- g_gr->images().get("pics/but1.png"),
- _("Internet game"), std::string(), true, false),
+ m_butx, m_buty, m_butw, m_buth,
+ g_gr->images().get(m_button_background),
+ _("Internet game"), "", true, false),
lan
(this, "lan",
- m_butx, get_h() * 61 / 200, m_butw, m_buth,
- g_gr->images().get("pics/but1.png"),
- _("LAN / Direct IP"), std::string(), true, false),
+ m_butx, get_y_from_preceding(metaserver) + m_padding, m_butw, m_buth,
+ g_gr->images().get(m_button_background),
+ _("LAN / Direct IP"), "", true, false),
back
(this, "back",
- m_butx, get_h() * 3 / 4, m_butw, m_buth,
- g_gr->images().get("pics/but0.png"),
- _("Back"), std::string(), true, false)
+ m_butx, m_back_button_y, m_butw, m_buth,
+ g_gr->images().get(m_button_background),
+ _("Back"), "", true, false)
{
metaserver.sigclicked.connect(boost::bind(&FullscreenMenuMultiPlayer::internet_login, boost::ref(*this)));
- metaserver.set_font(font_small());
- lan.set_font(font_small());
+
lan.sigclicked.connect
(boost::bind
(&FullscreenMenuMultiPlayer::end_modal, boost::ref(*this),
- static_cast<int32_t>(Lan)));
- back.set_font(font_small());
+ static_cast<int32_t>(MenuTarget::kLan)));
+
back.sigclicked.connect
(boost::bind
(&FullscreenMenuMultiPlayer::end_modal, boost::ref(*this),
- static_cast<int32_t>(Back)));
+ static_cast<int32_t>(MenuTarget::kBack)));
- title.set_font(m_fn, fs_big(), UI_FONT_CLR_FG);
+ title.set_font(ui_fn(), fs_big(), UI_FONT_CLR_FG);
Section & s = g_options.pull_section("global");
m_auto_log = s.get_bool("auto_log", false);
@@ -115,7 +107,7 @@
m_nickname = s.get_string("nickname", _("nobody"));
m_password = s.get_string("password", "nobody");
m_register = s.get_bool("registered", false);
- end_modal(Metaserver);
+ end_modal(static_cast<int32_t>(MenuTarget::kMetaserver));
return;
}
@@ -128,6 +120,6 @@
s.set_bool("registered", lb.registered());
s.set_bool("auto_log", lb.set_automaticlog());
- end_modal(Metaserver);
+ end_modal(static_cast<int32_t>(MenuTarget::kMetaserver));
}
}
=== modified file 'src/ui_fsmenu/multiplayer.h'
--- src/ui_fsmenu/multiplayer.h 2014-09-20 09:37:47 +0000
+++ src/ui_fsmenu/multiplayer.h 2014-11-12 13:15:31 +0000
@@ -20,7 +20,7 @@
#ifndef WL_UI_FSMENU_MULTIPLAYER_H
#define WL_UI_FSMENU_MULTIPLAYER_H
-#include "ui_fsmenu/base.h"
+#include "ui_fsmenu/main_menu.h"
#include "network/internet_gaming.h"
#include "ui_basic/button.h"
#include "ui_basic/textarea.h"
@@ -29,10 +29,14 @@
* Fullscreen Menu for MultiPlayer.
* Here you select what game you want to play.
*/
-struct FullscreenMenuMultiPlayer : public FullscreenMenuBase {
+struct FullscreenMenuMultiPlayer : public FullscreenMenuMainMenu {
FullscreenMenuMultiPlayer();
- enum {Back = dying_code, Metaserver, Lan};
+ enum class MenuTarget: int32_t {
+ kBack = UI::Panel::dying_code,
+ kMetaserver,
+ kLan
+ };
void show_internet_login();
void internet_login();
@@ -41,16 +45,11 @@
bool registered() {return m_register;}
private:
- uint32_t m_butw;
- uint32_t m_buth;
- uint32_t m_butx;
- uint32_t m_fs;
- std::string m_fn;
- UI::Textarea title;
- UI::Button metaserver;
- UI::Button * showloginbox;
- UI::Button lan;
- UI::Button back;
+ UI::Textarea title;
+ UI::Button metaserver;
+ UI::Button* showloginbox;
+ UI::Button lan;
+ UI::Button back;
// Values from internet login window
std::string m_nickname;
=== modified file 'src/ui_fsmenu/singleplayer.cc'
--- src/ui_fsmenu/singleplayer.cc 2014-09-27 09:28:51 +0000
+++ src/ui_fsmenu/singleplayer.cc 2014-11-12 13:15:31 +0000
@@ -24,65 +24,56 @@
#include "wui/text_constants.h"
FullscreenMenuSinglePlayer::FullscreenMenuSinglePlayer() :
-FullscreenMenuBase("ui_fsmenu.jpg"),
-
-// Values for alignment and size
- m_butw (get_w() * 7 / 20),
- m_buth (get_h() * 19 / 400),
- m_butx ((get_w() - m_butw) / 2),
- m_fs (fs_small()),
- m_fn (ui_fn()),
+ FullscreenMenuMainMenu(),
// Title
title
(this,
- get_w() / 2, get_h() * 3 / 40,
+ get_w() / 2, m_title_y,
_("Single Player"), UI::Align_HCenter),
// Buttons
new_game
(this, "new_game",
- m_butx, get_h() * 6 / 25, m_butw, m_buth,
- g_gr->images().get("pics/but1.png"),
- _("New Game"), std::string(), true, false),
+ m_butx, m_buty, m_butw, m_buth,
+ g_gr->images().get(m_button_background),
+ _("New Game"), "", true, false),
campaign
(this, "campaigns",
- m_butx, get_h() * 61 / 200, m_butw, m_buth,
- g_gr->images().get("pics/but1.png"),
- _("Campaigns"), std::string(), true, false),
+ m_butx, get_y_from_preceding(new_game) + m_padding, m_butw, m_buth,
+ g_gr->images().get(m_button_background),
+ _("Campaigns"), "", true, false),
load_game
(this, "load_game",
- m_butx, get_h() * 87 / 200, m_butw, m_buth,
- g_gr->images().get("pics/but1.png"),
- _("Load Game"), std::string(), true, false),
+ m_butx, get_y_from_preceding(campaign) + 2 * m_buth, m_butw, m_buth,
+ g_gr->images().get(m_button_background),
+ _("Load Game"), "", true, false),
back
(this, "back",
- m_butx, get_h() * 3 / 4, m_butw, m_buth,
- g_gr->images().get("pics/but0.png"),
- _("Back"), std::string(), true, false)
+ m_butx, m_back_button_y, m_butw, m_buth,
+ g_gr->images().get(m_button_background),
+ _("Back"), "", true, false)
{
new_game.sigclicked.connect
(boost::bind
(&FullscreenMenuSinglePlayer::end_modal,
boost::ref(*this),
- static_cast<int32_t>(New_Game)));
+ static_cast<int32_t>(MenuTarget::kNewGame)));
campaign.sigclicked.connect
(boost::bind
(&FullscreenMenuSinglePlayer::end_modal,
boost::ref(*this),
- static_cast<int32_t>(Campaign)));
+ static_cast<int32_t>(MenuTarget::kCampaign)));
load_game.sigclicked.connect
(boost::bind
(&FullscreenMenuSinglePlayer::end_modal,
boost::ref(*this),
- static_cast<int32_t>(Load_Game)));
+ static_cast<int32_t>(MenuTarget::kLoadGame)));
back.sigclicked.connect
- (boost::bind(&FullscreenMenuSinglePlayer::end_modal, boost::ref(*this), static_cast<int32_t>(Back)));
-
- back.set_font(font_small());
- new_game.set_font(font_small());
- campaign.set_font(font_small());
- load_game.set_font(font_small());
-
- title.set_font(m_fn, fs_big(), UI_FONT_CLR_FG);
+ (boost::bind
+ (&FullscreenMenuSinglePlayer::end_modal,
+ boost::ref(*this),
+ static_cast<int32_t>(MenuTarget::kBack)));
+
+ title.set_font(ui_fn(), fs_big(), UI_FONT_CLR_FG);
}
=== modified file 'src/ui_fsmenu/singleplayer.h'
--- src/ui_fsmenu/singleplayer.h 2014-09-10 14:08:25 +0000
+++ src/ui_fsmenu/singleplayer.h 2014-11-12 13:15:31 +0000
@@ -20,7 +20,7 @@
#ifndef WL_UI_FSMENU_SINGLEPLAYER_H
#define WL_UI_FSMENU_SINGLEPLAYER_H
-#include "ui_fsmenu/base.h"
+#include "ui_fsmenu/main_menu.h"
#include "ui_basic/button.h"
#include "ui_basic/textarea.h"
@@ -28,22 +28,22 @@
* Fullscreen Menu for SinglePlayer.
* Here you select what game you want to play.
*/
-struct FullscreenMenuSinglePlayer : public FullscreenMenuBase {
+struct FullscreenMenuSinglePlayer : public FullscreenMenuMainMenu {
FullscreenMenuSinglePlayer();
- enum {Back = dying_code, New_Game, Campaign, Load_Game};
+ enum class MenuTarget: int32_t {
+ kBack = UI::Panel::dying_code,
+ kNewGame,
+ kCampaign,
+ kLoadGame
+ };
private:
- uint32_t m_butw;
- uint32_t m_buth;
- uint32_t m_butx;
- uint32_t m_fs;
- std::string m_fn;
- UI::Textarea title;
- UI::Button new_game;
- UI::Button campaign;
- UI::Button load_game;
- UI::Button back;
+ UI::Textarea title;
+ UI::Button new_game;
+ UI::Button campaign;
+ UI::Button load_game;
+ UI::Button back;
};
#endif // end of include guard: WL_UI_FSMENU_SINGLEPLAYER_H
=== modified file 'src/wlapplication.cc'
--- src/wlapplication.cc 2014-11-08 14:59:03 +0000
+++ src/wlapplication.cc 2014-11-12 13:15:31 +0000
@@ -1099,38 +1099,43 @@
try {
switch (mm.run()) {
- case FullscreenMenuMain::mm_playtutorial:
+ case static_cast<int32_t>(FullscreenMenuMain::MenuTarget::kTutorial):
mainmenu_tutorial();
break;
- case FullscreenMenuMain::mm_singleplayer:
+ case static_cast<int32_t>(FullscreenMenuMain::MenuTarget::kSinglePlayer):
mainmenu_singleplayer();
break;
- case FullscreenMenuMain::mm_multiplayer:
+ case static_cast<int32_t>(FullscreenMenuMain::MenuTarget::kMultiplayer):
mainmenu_multiplayer();
break;
- case FullscreenMenuMain::mm_replay:
+ case static_cast<int32_t>(FullscreenMenuMain::MenuTarget::kReplay):
replay();
break;
- case FullscreenMenuMain::mm_options: {
+ case static_cast<int32_t>(FullscreenMenuMain::MenuTarget::kOptions): {
Section & s = g_options.pull_section("global");
OptionsCtrl om(s);
break;
}
- case FullscreenMenuMain::mm_readme: {
+ case static_cast<int32_t>(FullscreenMenuMain::MenuTarget::kReadme): {
FullscreenMenuFileView ff("txts/README.lua");
ff.run();
break;
}
- case FullscreenMenuMain::mm_license: {
+ case static_cast<int32_t>(FullscreenMenuMain::MenuTarget::kLicense): {
FullscreenMenuFileView ff("txts/license");
ff.run();
break;
}
- case FullscreenMenuMain::mm_editor:
+ case static_cast<int32_t>(FullscreenMenuMain::MenuTarget::kAuthors): {
+ FullscreenMenuFileView ff("txts/developers");
+ ff.run();
+ break;
+ }
+ case static_cast<int32_t>(FullscreenMenuMain::MenuTarget::kEditor):
mainmenu_editor();
break;
default:
- case FullscreenMenuMain::mm_exit:
+ case static_cast<int32_t>(FullscreenMenuMain::MenuTarget::kExit):
return;
}
} catch (const WLWarning & e) {
@@ -1199,7 +1204,8 @@
// This is the code returned by UI::Panel::run() when the panel is dying.
// Make sure that the program exits when the window manager says so.
static_assert
- (FullscreenMenuSinglePlayer::Back == UI::Panel::dying_code, "Panel should be dying.");
+ (static_cast<int32_t>(FullscreenMenuSinglePlayer::MenuTarget::kBack) == UI::Panel::dying_code,
+ "Panel should be dying.");
for (;;) {
int32_t code;
@@ -1208,17 +1214,17 @@
code = single_player_menu.run();
}
switch (code) {
- case FullscreenMenuSinglePlayer::Back:
+ case static_cast<int32_t>(FullscreenMenuSinglePlayer::MenuTarget::kBack):
return;
- case FullscreenMenuSinglePlayer::New_Game:
+ case static_cast<int32_t>(FullscreenMenuSinglePlayer::MenuTarget::kNewGame):
if (new_game())
return;
break;
- case FullscreenMenuSinglePlayer::Load_Game:
+ case static_cast<int32_t>(FullscreenMenuSinglePlayer::MenuTarget::kLoadGame):
if (load_game())
return;
break;
- case FullscreenMenuSinglePlayer::Campaign:
+ case static_cast<int32_t>(FullscreenMenuSinglePlayer::MenuTarget::kCampaign):
if (campaign_game())
return;
break;
@@ -1240,12 +1246,12 @@
bool internet = false;
FullscreenMenuMultiPlayer mp;
switch (mp.run()) {
- case FullscreenMenuMultiPlayer::Back:
+ case static_cast<int32_t>(FullscreenMenuMultiPlayer::MenuTarget::kBack):
return;
- case FullscreenMenuMultiPlayer::Metaserver:
+ case static_cast<int32_t>(FullscreenMenuMultiPlayer::MenuTarget::kMetaserver):
internet = true;
break;
- case FullscreenMenuMultiPlayer::Lan:
+ case static_cast<int32_t>(FullscreenMenuMultiPlayer::MenuTarget::kLan):
break;
default:
assert(false);
@@ -1315,7 +1321,8 @@
// This is the code returned by UI::Panel::run() when the panel is dying.
// Make sure that the program exits when the window manager says so.
static_assert
- (FullscreenMenuEditor::Back == UI::Panel::dying_code, "Editor should be dying.");
+ (static_cast<int32_t>(FullscreenMenuEditor::MenuTarget::kBack) == UI::Panel::dying_code,
+ "Editor should be dying.");
for (;;) {
int32_t code;
@@ -1324,12 +1331,12 @@
code = editor_menu.run();
}
switch (code) {
- case FullscreenMenuEditor::Back:
+ case static_cast<int32_t>(FullscreenMenuEditor::MenuTarget::kBack):
return;
- case FullscreenMenuEditor::New_Map:
+ case static_cast<int32_t>(FullscreenMenuEditor::MenuTarget::kNewMap):
EditorInteractive::run_editor(m_filename, m_script_to_run);
return;
- case FullscreenMenuEditor::Load_Map: {
+ case static_cast<int32_t>(FullscreenMenuEditor::MenuTarget::kLoadMap): {
std::string filename;
{
SinglePlayerGameSettingsProvider sp;
=== modified file 'txts/developers'
--- txts/developers 2014-10-12 12:22:54 +0000
+++ txts/developers 2014-11-12 13:15:31 +0000
@@ -1,4 +1,4 @@
-title=_ Development
+title=_Authors
text=_""<rt text-align=center><p font-size=28 font-decoration=bold font-face=DejaVuSerif font-color=2F9131>"
_ "Widelands Development Team"
"</p></rt>"
Follow ups