From: <uni...@us...> - 2013-06-25 15:16:08
|
Revision: 12976 http://sourceforge.net/p/supertuxkart/code/12976 Author: unitraxx Date: 2013-06-25 15:16:03 +0000 (Tue, 25 Jun 2013) Log Message: ----------- [GSoC Uni_] Moved online gaming related gui xml files to a separate folder. Changed the login dialog to have an input message and started with a registration dialog. Modified Paths: -------------- main/branches/uni/sources.cmake main/branches/uni/src/states_screens/dialogs/login_dialog.cpp main/branches/uni/src/states_screens/dialogs/login_dialog.hpp main/branches/uni/src/states_screens/online_screen.cpp Added Paths: ----------- main/branches/uni/data/gui/online/ main/branches/uni/data/gui/online/login_dialog.stkgui main/branches/uni/data/gui/online/online.stkgui main/branches/uni/data/gui/online/registration_info.stkgui main/branches/uni/src/states_screens/dialogs/registration_dialog.cpp main/branches/uni/src/states_screens/dialogs/registration_dialog.hpp Removed Paths: ------------- main/branches/uni/data/gui/login_dialog.stkgui main/branches/uni/data/gui/online.stkgui Deleted: main/branches/uni/data/gui/login_dialog.stkgui =================================================================== --- main/branches/uni/data/gui/login_dialog.stkgui 2013-06-25 10:53:29 UTC (rev 12975) +++ main/branches/uni/data/gui/login_dialog.stkgui 2013-06-25 15:16:03 UTC (rev 12976) @@ -1,40 +0,0 @@ -<stkgui> - - <div x="2%" y="10%" width="96%" height="80%" layout="vertical-row" > - - <header id="title" width="96%" proportion="2" text_align="center" word_wrap="true" - I18N="In the login dialog' dialog" text="Sign in"/> - - <spacer height="50" width="50"> - - <div width="80%" align="center" layout="vertical-row" proportion="4"> - <div width="100%" height="fit" layout="horizontal-row" > - <label proportion="1" text_align="left" I18N="In the login form" text="Username"/> - <textbox proportion="2" id="username" I18N="In the login dialog"/> - </div> - - <spacer height="20" width="20"> - - <div width="100%" height="fit" layout="horizontal-row" > - <label proportion="1" text_align="left" I18N="In the login form" text="Password"/> - <textbox proportion="2" id="password" I18N="In the login dialog"/> - </div> - </div> - - <label id="info" proportion="2" width="90%" align="center" text_align="center" word_wrap="true" - I18N="In the login dialog' dialog" text=""/> - - <spacer height="20" width="50"> - - <div id="options" width="fit" height="fit" align="center" layout="horizontal-row"> - <button id="signin" height="100%" align="center" width="fit" I18N="In the login dialog" text="Sign In"/> - <spacer height="50" width="50"> - <button id="signup" height="100%" align="center" width="fit" I18N="In the login dialog" text="Register"/> - <spacer height="50" width="50"> - <button id="cancel" height="100%" align="center" width="fit" I18N="In the login dialog" text="Cancel"/> - </div> - - - </div> - -</stkgui> Copied: main/branches/uni/data/gui/online/login_dialog.stkgui (from rev 12973, main/branches/uni/data/gui/login_dialog.stkgui) =================================================================== --- main/branches/uni/data/gui/online/login_dialog.stkgui (rev 0) +++ main/branches/uni/data/gui/online/login_dialog.stkgui 2013-06-25 15:16:03 UTC (rev 12976) @@ -0,0 +1,39 @@ +<stkgui> + + <div x="2%" y="5%" width="96%" height="90%" layout="vertical-row" > + + <header id="title" width="96%" proportion="2" text_align="center" word_wrap="true" + I18N="In the login dialog' dialog" text="Sign in"/> + + <spacer height="50" width="50"> + + <div width="80%" align="center" layout="vertical-row" proportion="4"> + <div width="100%" height="fit" layout="horizontal-row" > + <label proportion="1" text_align="left" I18N="In the login dialog" text="Username"/> + <textbox proportion="2" id="username" I18N="In the login dialog"/> + </div> + + <spacer height="20" width="20"> + + <div width="100%" height="fit" layout="horizontal-row" > + <label proportion="1" text_align="left" I18N="In the login dialog" text="Password"/> + <textbox proportion="2" id="password" I18N="In the login dialog"/> + </div> + </div> + + <label id="info" proportion="2" width="90%" align="center" text_align="center" word_wrap="true" dialog" text=""/> + + <spacer height="20" width="50"> + + <div id="options" width="fit" proportion="2" align="center" layout="horizontal-row"> + <button id="signin" height="fit" align="center" width="fit" I18N="In the login dialog" text="Sign In"/> + <spacer height="50" width="50"> + <button id="signup" height="fit" align="center" width="fit" I18N="In the login dialog" text="Register"/> + <spacer height="50" width="50"> + <button id="cancel" height="fit" align="center" width="fit" I18N="In the login dialog" text="Cancel"/> + </div> + + + </div> + +</stkgui> Copied: main/branches/uni/data/gui/online/online.stkgui (from rev 12875, main/branches/uni/data/gui/online.stkgui) =================================================================== --- main/branches/uni/data/gui/online/online.stkgui (rev 0) +++ main/branches/uni/data/gui/online/online.stkgui 2013-06-25 15:16:03 UTC (rev 12976) @@ -0,0 +1,33 @@ +<stkgui> + + <div x="0" y="0" width="100%" height="100%" layout="vertical-row" > + + <icon id="logo" align="center" proportion="5" width="100%" icon="gui/logo.png"/> + + <buttonbar id="menu_toprow" proportion="3" width="75%" align="center"> + <icon-button id="login" width="128" height="128" + icon="gui/menu_race.png" focus_icon="gui/menu_race_focus.png" + I18N="Online menu button" text="Sign in"/> + </buttonbar> + + <spacer width="10" height="7%"/> + + <bottombar width="100%" height="10%" layout="horizontal-row"> + + <spacer width="10" height="10" /> + + <label proportion="3" height="100%" id="info_addons" + I18N="In the main screen" + text="" + align="center" text_align="left" /> + + <spacer width="10" height="10" /> + + <buttonbar id="menu_bottomrow" x="0" y="0" width="30%" height="100%" align="center"> + </buttonbar> + + </bottombar> + + </div> + +</stkgui> Added: main/branches/uni/data/gui/online/registration_info.stkgui =================================================================== --- main/branches/uni/data/gui/online/registration_info.stkgui (rev 0) +++ main/branches/uni/data/gui/online/registration_info.stkgui 2013-06-25 15:16:03 UTC (rev 12976) @@ -0,0 +1,61 @@ +<stkgui> + + <div x="2%" y="5%" width="96%" height="90%" layout="vertical-row" > + + <header id="title" width="96%" proportion="1" text_align="center" word_wrap="true" + I18N="In the registration dialog' dialog" text="Registration"/> + + <spacer height="50" width="50"> + + <div width="80%" align="center" layout="vertical-row" proportion="6"> + <div width="100%" height="fit" layout="horizontal-row" > + <label proportion="1" text_align="left" I18N="In the registration dialog" text="Username"/> + <textbox proportion="2" id="username" I18N="In the registration dialog"/> + </div> + + <spacer height="20" width="20"> + + <div width="100%" height="fit" layout="horizontal-row" > + <label proportion="1" text_align="left" I18N="In the registration dialog" text="Password"/> + <textbox proportion="2" id="password" I18N="In the registration dialog"/> + </div> + + <spacer height="20" width="20"> + + <div width="100%" height="fit" layout="horizontal-row" > + <label proportion="1" text_align="left" I18N="In the registration dialog" text="Confirm"/> + <textbox proportion="2" id="password_confirm" I18N="In the registration dialog"/> + </div> + + <spacer height="20" width="20"> + + <div width="100%" height="fit" layout="horizontal-row" > + <label proportion="1" text_align="left" I18N="In the registration dialog" text="Email"/> + <textbox proportion="2" id="email" I18N="In the registration dialog"/> + </div> + + <spacer height="20" width="20"> + + <div width="100%" height="fit" layout="horizontal-row" > + <label proportion="1" text_align="left" I18N="In the registration dialog" text="Confirm"/> + <textbox proportion="2" id="email_confirm" I18N="In the registration dialog"/> + </div> + </div> + + <label id="info" proportion="1" width="90%" align="center" text_align="center" word_wrap="true" + I18N="In the registration dialog' dialog" text=""/> + + <spacer height="20" width="50"> + + <div id="options" width="fit" proportion="1" align="center" layout="horizontal-row"> + <button id="previous" height="fit" align="center" width="fit" I18N="In the registration dialog" text="Previous"/> + <spacer height="50" width="50"> + <button id="next" height="fit" align="center" width="fit" I18N="In the registration dialog" text="Next"/> + <spacer height="50" width="50"> + <button id="cancel" height="fit" align="center" width="fit" I18N="In the registration dialog" text="Cancel"/> + </div> + + + </div> + +</stkgui> Deleted: main/branches/uni/data/gui/online.stkgui =================================================================== --- main/branches/uni/data/gui/online.stkgui 2013-06-25 10:53:29 UTC (rev 12975) +++ main/branches/uni/data/gui/online.stkgui 2013-06-25 15:16:03 UTC (rev 12976) @@ -1,33 +0,0 @@ -<stkgui> - - <div x="0" y="0" width="100%" height="100%" layout="vertical-row" > - - <icon id="logo" align="center" proportion="5" width="100%" icon="gui/logo.png"/> - - <buttonbar id="menu_toprow" proportion="3" width="75%" align="center"> - <icon-button id="login" width="128" height="128" - icon="gui/menu_race.png" focus_icon="gui/menu_race_focus.png" - I18N="Online menu button" text="Sign in"/> - </buttonbar> - - <spacer width="10" height="7%"/> - - <bottombar width="100%" height="10%" layout="horizontal-row"> - - <spacer width="10" height="10" /> - - <label proportion="3" height="100%" id="info_addons" - I18N="In the main screen" - text="" - align="center" text_align="left" /> - - <spacer width="10" height="10" /> - - <buttonbar id="menu_bottomrow" x="0" y="0" width="30%" height="100%" align="center"> - </buttonbar> - - </bottombar> - - </div> - -</stkgui> Modified: main/branches/uni/sources.cmake =================================================================== --- main/branches/uni/sources.cmake 2013-06-25 10:53:29 UTC (rev 12975) +++ main/branches/uni/sources.cmake 2013-06-25 15:16:03 UTC (rev 12976) @@ -177,6 +177,7 @@ src/states_screens/dialogs/player_info_dialog.cpp src/states_screens/dialogs/press_a_key_dialog.cpp src/states_screens/dialogs/race_paused_dialog.cpp +src/states_screens/dialogs/registration_dialog.cpp src/states_screens/dialogs/select_challenge.cpp src/states_screens/dialogs/track_info_dialog.cpp src/states_screens/dialogs/tutorial_message_dialog.cpp @@ -442,6 +443,7 @@ src/states_screens/dialogs/player_info_dialog.hpp src/states_screens/dialogs/press_a_key_dialog.hpp src/states_screens/dialogs/race_paused_dialog.hpp +src/states_screens/dialogs/registration_dialog.hpp src/states_screens/dialogs/select_challenge.hpp src/states_screens/dialogs/track_info_dialog.hpp src/states_screens/dialogs/tutorial_message_dialog.hpp @@ -516,5 +518,6 @@ src/utils/synchronised.hpp src/utils/time.hpp src/utils/translation.hpp +src/utils/types.hpp src/utils/vec3.hpp ) Modified: main/branches/uni/src/states_screens/dialogs/login_dialog.cpp =================================================================== --- main/branches/uni/src/states_screens/dialogs/login_dialog.cpp 2013-06-25 10:53:29 UTC (rev 12975) +++ main/branches/uni/src/states_screens/dialogs/login_dialog.cpp 2013-06-25 15:16:03 UTC (rev 12976) @@ -20,7 +20,6 @@ #include <IGUIEnvironment.h> #include "audio/sfx_manager.hpp" -#include "challenges/unlock_manager.hpp" #include "config/player.hpp" #include "guiengine/engine.hpp" #include "guiengine/widgets/button_widget.hpp" @@ -30,6 +29,7 @@ #include "utils/translation.hpp" #include "utils/string_utils.hpp" #include "online/current_online_user.hpp" +#include "states_screens/dialogs/registration_dialog.hpp" using namespace GUIEngine; @@ -38,19 +38,23 @@ // ----------------------------------------------------------------------------- -LoginDialog::LoginDialog(const float w, const float h) : +LoginDialog::LoginDialog(const float w, const float h, const core::stringw& msg) : ModalDialog(w,h) { m_self_destroy = false; - loadFromFile("login_dialog.stkgui"); + loadFromFile("online/login_dialog.stkgui"); - TextBoxWidget* textCtrl = getWidget<TextBoxWidget>("password"); - assert(textCtrl != NULL); - textCtrl->setPasswordBox(true,L'*'); + TextBoxWidget* textBox = getWidget<TextBoxWidget>("password"); + assert(textBox != NULL); + textBox->setPasswordBox(true,L'*'); - textCtrl = getWidget<TextBoxWidget>("username"); - assert(textCtrl != NULL); - textCtrl->setFocusForPlayer(PLAYER_ID_GAME_MASTER); + textBox = getWidget<TextBoxWidget>("username"); + assert(textBox != NULL); + textBox->setFocusForPlayer(PLAYER_ID_GAME_MASTER); + + LabelWidget * info = getWidget<LabelWidget>("info"); + assert(info != NULL); + info->setText(msg, false); } // ----------------------------------------------------------------------------- @@ -87,6 +91,12 @@ getWidget<LabelWidget>("info")->setText(info, false); return GUIEngine::EVENT_BLOCK; } + else if(eventSource == "signup") + { + m_self_destroy = true; + new RegistrationDialog(0.6f, 0.9f); + return GUIEngine::EVENT_BLOCK; + } return GUIEngine::EVENT_LET; } Modified: main/branches/uni/src/states_screens/dialogs/login_dialog.hpp =================================================================== --- main/branches/uni/src/states_screens/dialogs/login_dialog.hpp 2013-06-25 10:53:29 UTC (rev 12975) +++ main/branches/uni/src/states_screens/dialogs/login_dialog.hpp 2013-06-25 15:16:03 UTC (rev 12976) @@ -23,13 +23,6 @@ #include "guiengine/modaldialog.hpp" #include "guiengine/widgets/text_box_widget.hpp" -/* -namespace GUIEngine -{ - class TextBoxWidget; - class ButtonWidget; - class LabelWidget; -}*/ /** * \brief Dialog that allows a user to sign in @@ -47,7 +40,7 @@ /** * Creates a modal dialog with given percentage of screen width and height */ - LoginDialog(const float percentWidth, const float percentHeight); + LoginDialog(const float percentWidth, const float percentHeight, const core::stringw& msg); ~LoginDialog(); void onEnterPressedInternal(); Added: main/branches/uni/src/states_screens/dialogs/registration_dialog.cpp =================================================================== --- main/branches/uni/src/states_screens/dialogs/registration_dialog.cpp (rev 0) +++ main/branches/uni/src/states_screens/dialogs/registration_dialog.cpp 2013-06-25 15:16:03 UTC (rev 12976) @@ -0,0 +1,123 @@ +// SuperTuxKart - a fun racing game with go-kart +// Copyright (C) 2013 Glenn De Jonghe +// +// 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, write to the Free Software +// Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. + +#include "states_screens/dialogs/registration_dialog.hpp" + +#include <IGUIEnvironment.h> + +#include "audio/sfx_manager.hpp" +#include "config/player.hpp" +#include "guiengine/engine.hpp" +#include "guiengine/widgets/button_widget.hpp" +#include "guiengine/widgets/label_widget.hpp" +#include "guiengine/widgets/text_box_widget.hpp" +#include "states_screens/state_manager.hpp" +#include "utils/translation.hpp" +#include "utils/string_utils.hpp" +#include "online/current_online_user.hpp" + + +using namespace GUIEngine; +using namespace irr; +using namespace irr::gui; + +// ----------------------------------------------------------------------------- + +RegistrationDialog::RegistrationDialog(const float w, const float h) : + ModalDialog(w,h) +{ + m_self_destroy = false; + loadFromFile("online/registration_info.stkgui"); + + TextBoxWidget* textBox = getWidget<TextBoxWidget>("password"); + assert(textBox != NULL); + textBox->setPasswordBox(true,L'*'); + + textBox = getWidget<TextBoxWidget>("password_confirm"); + assert(textBox != NULL); + textBox->setPasswordBox(true,L'*'); + + textBox = getWidget<TextBoxWidget>("username"); + assert(textBox != NULL); + textBox->setFocusForPlayer(PLAYER_ID_GAME_MASTER); +} + +// ----------------------------------------------------------------------------- + +RegistrationDialog::~RegistrationDialog() +{ +} + + +// ----------------------------------------------------------------------------- + +GUIEngine::EventPropagation RegistrationDialog::processEvent(const std::string& eventSource) +{ + if (eventSource == "cancel") + { + dismiss(); + return GUIEngine::EVENT_BLOCK; + } + else if(eventSource == "signin") + { + // ---- See if we can accept the input + const stringw username = getWidget<TextBoxWidget>("username")->getText().trim(); + const stringw password = getWidget<TextBoxWidget>("password")->getText().trim(); + stringw info = ""; + if(CurrentOnlineUser::get()->signIn(username,password,info)) + { + m_self_destroy = true; + } + else + { + sfx_manager->quickSound( "anvil" ); + m_self_destroy = false; + } + getWidget<LabelWidget>("info")->setText(info, false); + return GUIEngine::EVENT_BLOCK; + } + return GUIEngine::EVENT_LET; +} + +// ----------------------------------------------------------------------------- + +void RegistrationDialog::onEnterPressedInternal() +{ + // ---- Cancel button pressed + const int playerID = PLAYER_ID_GAME_MASTER; + ButtonWidget* cancelButton = getWidget<ButtonWidget>("cancel"); + if (GUIEngine::isFocusedForPlayer(cancelButton, playerID)) + { + std::string fakeEvent = "cancel"; + processEvent(fakeEvent); + return; + } + + +} + +// ----------------------------------------------------------------------------- + +void RegistrationDialog::onUpdate(float dt) +{ + // It's unsafe to delete from inside the event handler so we do it here + if (m_self_destroy) + { + GUIEngine::getGUIEnv()->removeFocus( m_irrlicht_window ); + ModalDialog::dismiss(); + } +} Added: main/branches/uni/src/states_screens/dialogs/registration_dialog.hpp =================================================================== --- main/branches/uni/src/states_screens/dialogs/registration_dialog.hpp (rev 0) +++ main/branches/uni/src/states_screens/dialogs/registration_dialog.hpp 2013-06-25 15:16:03 UTC (rev 12976) @@ -0,0 +1,53 @@ +// SuperTuxKart - a fun racing game with go-kart +// Copyright (C) 2013 Glenn De Jonghe +// +// 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, write to the Free Software +// Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. + + +#ifndef HEADER_REGISTRATION_DIALOG_HPP +#define HEADER_REGISTRATION_DIALOG_HPP + +#include <irrString.h> + +#include "guiengine/modaldialog.hpp" +#include "guiengine/widgets/text_box_widget.hpp" + +/** + * \brief Dialog that allows a user to register + * \ingroup states_screens + */ +class RegistrationDialog : public GUIEngine::ModalDialog +{ + +private: + + bool m_self_destroy; + +public: + + /** + * Creates a modal dialog with given percentage of screen width and height + */ + RegistrationDialog(const float percentWidth, const float percentHeight); + ~RegistrationDialog(); + + void onEnterPressedInternal(); + GUIEngine::EventPropagation processEvent(const std::string& eventSource); + + virtual void onUpdate(float dt); + //virtual void onTextUpdated(); +}; + +#endif Modified: main/branches/uni/src/states_screens/online_screen.cpp =================================================================== --- main/branches/uni/src/states_screens/online_screen.cpp 2013-06-25 10:53:29 UTC (rev 12975) +++ main/branches/uni/src/states_screens/online_screen.cpp 2013-06-25 15:16:03 UTC (rev 12976) @@ -22,7 +22,6 @@ #include <string> #include <iostream> -#include "addons/inetwork_http.hpp" #include "challenges/game_slot.hpp" #include "challenges/unlock_manager.hpp" #include "graphics/irr_driver.hpp" @@ -33,20 +32,11 @@ #include "input/device_manager.hpp" #include "input/input_manager.hpp" #include "io/file_manager.hpp" -#include "karts/kart_properties_manager.hpp" #include "main_loop.hpp" -#include "modes/cutscene_world.hpp" -#include "modes/overworld.hpp" -#include "modes/demo_world.hpp" -#include "network/network_manager.hpp" #include "states_screens/online_screen.hpp" -#include "states_screens/addons_screen.hpp" -#include "states_screens/credits.hpp" -#include "states_screens/help_screen_1.hpp" -#include "states_screens/kart_selection.hpp" -#include "states_screens/options_screen_video.hpp" #include "states_screens/state_manager.hpp" #include "modes/demo_world.hpp" +#include "utils/translation.hpp" #include "states_screens/dialogs/login_dialog.hpp" @@ -56,7 +46,7 @@ // ---------------------------------------------------------------------------- -OnlineScreen::OnlineScreen() : Screen("online.stkgui") +OnlineScreen::OnlineScreen() : Screen("online/online.stkgui") { } // OnlineScreen @@ -119,7 +109,7 @@ if (selection == "login") { - new LoginDialog(0.6f, 0.7f); + new LoginDialog(0.6f, 0.6f, _("Not yet an account? Press register beneath!")); } } // eventCallback This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |