SuperTuxKart
|
The user management screen. More...
#include <user_screen.hpp>
Public Member Functions | |
virtual void | loadedFromFile () OVERRIDE |
implement callback from parent class GUIEngine::Screen | |
virtual void | eventCallback (GUIEngine::Widget *widget, const std::string &name, const int playerID) OVERRIDE |
implement callback from parent class GUIEngine::Screen | |
virtual void | beforeAddingWidget () OVERRIDE |
implement callback from parent class GUIEngine::Screen | |
virtual void | init () OVERRIDE |
implement callback from parent class GUIEngine::Screen | |
virtual void | tearDown () OVERRIDE |
implement callback from parent class GUIEngine::Screen | |
virtual void | unloaded () OVERRIDE |
implement optional callback from parent class GUIEngine::Screen | |
void | setNewAccountData (bool online, bool auto_login, const core::stringw &online_name="", const core::stringw &password="") |
Stores information from the register screen. | |
void | loginSuccessful () |
Callback from player profile if login was successful. | |
void | loginError (const irr::core::stringw &error_message, bool clear_password) |
Callback from player profile if login was unsuccessful. | |
void | logoutSuccessful () |
Callback from player profile if logout was successful. | |
void | logoutError (const irr::core::stringw &error_message) |
Callback from player profile if login was unsuccessful. | |
virtual GUIEngine::EventPropagation | filterActions (PlayerAction action, int deviceID, const unsigned int value, Input::InputType type, int playerId) OVERRIDE |
Override this if you need to be notified of player actions in subclasses. | |
Public Member Functions inherited from GUIEngine::Screen | |
std::function< Screen *()> | getNewScreenPointer () const |
Save the function before GUIEngine::clearScreenCache, call it after to get the new screen instance pointer. | |
void | setScreenPointerFunction (const std::function< Screen *()> &f) |
Screen (bool pause_race=true) | |
Creates a dummy incomplete object; only use to override behaviour in sub-class. | |
Screen (const char *filename, bool pause_race=true) | |
Creates a screen populated by the widgets described in a STK GUI file. | |
bool | operator== (const char *filename) const |
void | loadFromFile () |
loads this Screen from the file passed to the constructor | |
bool | isLoaded () const |
void | addWidgets () |
Adds the IrrLicht widgets corresponding to this screen to the IGUIEnvironment. | |
void | calculateLayout () |
Called after all widgets have been added. | |
void | manualAddWidget (Widget *w) |
Can be used for custom purposes for which the load-screen-from-XML code won't make it. | |
void | manualRemoveWidget (Widget *w) |
Can be used for custom purposes for which the load-screen-from-XML code won't make it. | |
void | setUpdateInBackground (bool value) |
When set to true it updates the screen even if modal dialog is opened. | |
bool | getUpdateInBackground () |
const std::string & | getName () const |
virtual void | unload () |
Next time this menu needs to be shown, don't use cached values, re-calculate everything. | |
bool | needs3D () |
Will be called to determine if the 3D scene must be rendered when at this screen. | |
void | setNeeds3D (bool needs3D) |
Invoke this method for screens that use a 3D scene as background. | |
virtual void | loadedFromFile ()=0 |
Callback invoked when loading this menu. | |
virtual void | unloaded () |
Callback invoked when this screen is being unloaded. | |
virtual void | beforeAddingWidget () |
Optional callback invoked very early, before widgets have been added (contrast with init(), which is invoked afer widgets were added) | |
virtual void | init () |
Callback invoked when entering this menu (after the widgets have been added). | |
void | push () |
Displays this screen bu pushing it onto the stack of screen in the state manager. | |
virtual void | tearDown () |
Callback invoked before leaving this menu. | |
virtual bool | onEscapePressed () |
Called when escape is pressed. | |
virtual void | eventCallback (Widget *widget, const std::string &name, const int playerID)=0 |
will be called everytime something happens. | |
virtual void | onUpdate (float dt) |
optional callback you can override to be notified at every frame. | |
virtual void | onDraw (float dt) |
optional callback you can override to be notified at every frame. | |
virtual MusicInformation * | getMusic () const |
virtual MusicInformation * | getInGameMenuMusic () const |
virtual int | getWidth () |
virtual int | getHeight () |
virtual bool | isResizable () const |
virtual EventPropagation | filterActions (PlayerAction action, int deviceID, const unsigned int value, Input::InputType type, int playerId) |
Override this if you need to be notified of player actions in subclasses. | |
virtual void | onDisabledItemClicked (const std::string &item) |
Callback you can use if you want to know when the user pressed on a disabled ribbon item. | |
virtual void | filterInput (Input::InputType type, int deviceID, int btnID, int axisDir, int value) |
Override this if you need to be notified of raw input in subclasses. | |
virtual void | onDialogClose () |
Callback that gets called when a dialog is closed. | |
virtual void | onFocusChanged (Widget *previous, Widget *focus, int playerID) |
Callback called when focus changes. | |
Public Member Functions inherited from GUIEngine::AbstractTopLevelContainer | |
virtual int | getWidth ()=0 |
virtual int | getHeight ()=0 |
Widget * | getWidget (const char *name) |
This function returns a widget by name if that widget is found. | |
Widget * | getWidget (const int id) |
This function returns a widget by irrlicht ID if that widget is found. | |
template<typename T > | |
T * | getWidget (const char *name) |
This function searches and returns a widget by name, cast as specified type, if that widget is found and the type is correct. | |
Widget * | getFirstWidget (PtrVector< Widget > *within_vector=NULL) |
This function returns the first widget found in within_vector. | |
Widget * | getLastWidget (PtrVector< Widget > *within_vector=NULL) |
This function returns the last widget found in within_vector. | |
void | elementsWereDeleted (PtrVector< Widget > *within_vector=NULL) |
This function is called when screen is removed. | |
bool | isMyChild (Widget *widget) const |
This function checks if a widget is a child of the container. | |
virtual bool | enableScreenPadding () const |
Protected Member Functions | |
BaseUserScreen (const std::string &name) | |
Protected Member Functions inherited from GUIEngine::AbstractTopLevelContainer | |
void | addWidgetsRecursively (PtrVector< Widget > &widgets, Widget *parent=NULL) |
This function adds a list of widgets recursively, effectively creating the hierarchy of widgets. | |
Private Types | |
enum | UserScreenState { STATE_NONE =0 , STATE_LOGIN =1 , STATE_LOGOUT =2 } |
The state of the user screen. More... | |
Private Member Functions | |
void | selectUser (int index) |
Called when a user is selected. | |
void | makeEntryFieldsVisible () |
Make the entry fields either visible or invisible. | |
void | login () |
Called when OK or OK-and-save is clicked. | |
void | closeScreen () |
Closes the BaseUserScreen, and makes sure that the right screen is displayed next. | |
void | deletePlayer () |
Called when a player will be deleted. | |
void | doDeletePlayer () |
Callback when the user confirms to delete a player. | |
PlayerProfile * | getSelectedPlayer () |
virtual void | onUpdate (float dt) OVERRIDE |
Called once every frame. | |
Private Attributes | |
enum BaseUserScreen::UserScreenState | m_state |
irr::core::stringw | m_sign_out_name |
The user name that is currently being logged out. | |
irr::core::stringw | m_sign_in_name |
The user name that is currently being logged out. | |
GUIEngine::CheckBoxWidget * | m_online_cb |
Online check box. | |
GUIEngine::TextBoxWidget * | m_username_tb |
User name entry field. | |
GUIEngine::TextBoxWidget * | m_password_tb |
Password widget. | |
GUIEngine::LabelWidget * | m_info_widget |
Label field for warning and error messages. | |
GUIEngine::RibbonWidget * | m_options_widget |
The ribbon with all buttons. | |
GUIEngine::DynamicRibbonWidget * | m_players |
The dynamic ribbon containing all players. | |
bool | m_new_registered_data |
Set to indicate when the sceen is initialised that new data from a registration are available, and therefore entry fields are not all cleared. | |
bool | m_auto_login |
Set from the register screen if the newly created account can be used directly without waiting to confirm the account. | |
Additional Inherited Members | |
Static Public Member Functions inherited from GUIEngine::Screen | |
static void | parseScreenFileDiv (irr::io::IXMLReader *xml, PtrVector< Widget > &append_to, irr::gui::IGUIElement *parent=NULL) |
Loads a GUI screen from its XML file. | |
Static Public Member Functions inherited from GUIEngine::AbstractTopLevelContainer | |
static Widget * | getWidget (const char *name, PtrVector< Widget > *within_vector) |
This function returns a widget by name if that widget is found in within_vector. | |
static Widget * | getWidget (const int id, PtrVector< Widget > *within_vector) |
This function returns a widget by irrlicht ID if that widget is found. | |
Protected Attributes inherited from GUIEngine::Screen | |
bool | m_resizable |
True if this screen is resizable. | |
Protected Attributes inherited from GUIEngine::AbstractTopLevelContainer | |
PtrVector< Widget, HOLD > | m_widgets |
the widgets in this screen | |
Widget * | m_first_widget |
AbstractTopLevelContainer is generally able to determine its first widget just fine, but in highly complex screens (e.g. | |
Widget * | m_last_widget |
AbstractTopLevelContainer is generally able to determine its last widget just fine, but in highly complex screens (e.g. | |
The user management screen.
The screen cames in two variations: either as a stand-alone screen before the main menu (on first time STK is started, or it the user is not remembered), but also as tab in the options menu. To implement this, we use one common base class that implements nearly all functionality, and derive to classes - one for the stand alone version, one for the version with tabs.
|
private |
The state of the user screen.
Note that this is a bit mask, since the current user can be logged out, and the new one logged in at the same time.
|
virtual |
implement callback from parent class GUIEngine::Screen
Reimplemented from GUIEngine::Screen.
|
private |
Callback when the user confirms to delete a player.
This function actually deletes the player, discards the dialog, and re-initialised the BaseUserScreen to display only the available players.
|
virtual |
implement callback from parent class GUIEngine::Screen
Called when the user selects anything on the screen.
Implements GUIEngine::Screen.
Reimplemented in TabbedUserScreen.
|
virtual |
Override this if you need to be notified of player actions in subclasses.
Reimplemented from GUIEngine::Screen.
|
virtual |
implement callback from parent class GUIEngine::Screen
Initialises the user screen.
Searches for all players to fill the list of users with their icons, and initialises all widgets for the current user (e.g. the online flag etc).
Reimplemented from GUIEngine::Screen.
Reimplemented in TabbedUserScreen.
|
virtual |
implement callback from parent class GUIEngine::Screen
Implements GUIEngine::Screen.
|
private |
Called when OK or OK-and-save is clicked.
This will trigger the actual login (if requested) etc.
remember_me | True if the login details should be remembered, so that next time this menu can be skipped. |
void BaseUserScreen::loginError | ( | const irr::core::stringw & | error_message, |
bool | clear_password | ||
) |
Callback from player profile if login was unsuccessful.
error_message | Contains the error message. |
void BaseUserScreen::logoutError | ( | const irr::core::stringw & | error_message | ) |
Callback from player profile if login was unsuccessful.
error_message | Contains the error message. |
|
private |
Make the entry fields either visible or invisible.
online | Online state, which dicates if the entry fields are visible (true) or not. |
|
privatevirtual |
Called once every frame.
It will replace this screen with the main menu screen if a successful login happened.
Reimplemented from GUIEngine::Screen.
|
private |
Called when a user is selected.
It updates the online checkbox and entry fields.
void BaseUserScreen::setNewAccountData | ( | bool | online, |
bool | auto_login, | ||
const core::stringw & | online_name = "" , |
||
const core::stringw & | password = "" |
||
) |
Stores information from the register screen.
It allows this screen to use the entered user name and password to prefill fields so that the user does not have to enter them again.
online | If the user created an online account. |
auto-login | If the user should be automatically logged in online. This can not be done for newly created online accounts, since they need to be confirmed first. |
online_name | The online account name. |
password | The password for the online account. |
|
virtual |
implement callback from parent class GUIEngine::Screen
Reimplemented from GUIEngine::Screen.
|
virtual |
implement optional callback from parent class GUIEngine::Screen
Reimplemented from GUIEngine::Screen.
|
private |
The user name that is currently being logged out.
Used to display more meaningful sign-out message.
|
private |
The user name that is currently being logged out.
Used to display more meaningful sign-out message.