SuperTuxKart
Loading...
Searching...
No Matches
Public Member Functions | Protected Member Functions | Private Types | Private Member Functions | Private Attributes | List of all members
BaseUserScreen Class Reference

The user management screen. More...

#include <user_screen.hpp>

Inheritance diagram for BaseUserScreen:
Inheritance graph
[legend]

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 MusicInformationgetMusic () const
 
virtual MusicInformationgetInGameMenuMusic () 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
 
WidgetgetWidget (const char *name)
 This function returns a widget by name if that widget is found.
 
WidgetgetWidget (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.
 
WidgetgetFirstWidget (PtrVector< Widget > *within_vector=NULL)
 This function returns the first widget found in within_vector.
 
WidgetgetLastWidget (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.
 
PlayerProfilegetSelectedPlayer ()
 
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::CheckBoxWidgetm_online_cb
 Online check box.
 
GUIEngine::TextBoxWidgetm_username_tb
 User name entry field.
 
GUIEngine::TextBoxWidgetm_password_tb
 Password widget.
 
GUIEngine::LabelWidgetm_info_widget
 Label field for warning and error messages.
 
GUIEngine::RibbonWidgetm_options_widget
 The ribbon with all buttons.
 
GUIEngine::DynamicRibbonWidgetm_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 WidgetgetWidget (const char *name, PtrVector< Widget > *within_vector)
 This function returns a widget by name if that widget is found in within_vector.
 
static WidgetgetWidget (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
 
Widgetm_first_widget
 AbstractTopLevelContainer is generally able to determine its first widget just fine, but in highly complex screens (e.g.
 
Widgetm_last_widget
 AbstractTopLevelContainer is generally able to determine its last widget just fine, but in highly complex screens (e.g.
 

Detailed Description

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.

Member Enumeration Documentation

◆ UserScreenState

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.

Member Function Documentation

◆ beforeAddingWidget()

void BaseUserScreen::beforeAddingWidget ( )
virtual

implement callback from parent class GUIEngine::Screen

Reimplemented from GUIEngine::Screen.

◆ doDeletePlayer()

void BaseUserScreen::doDeletePlayer ( )
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.

◆ eventCallback()

void BaseUserScreen::eventCallback ( GUIEngine::Widget widget,
const std::string &  name,
const int  playerID 
)
virtual

implement callback from parent class GUIEngine::Screen

Called when the user selects anything on the screen.

Implements GUIEngine::Screen.

Reimplemented in TabbedUserScreen.

◆ filterActions()

EventPropagation BaseUserScreen::filterActions ( PlayerAction  action,
int  deviceID,
const unsigned int  value,
Input::InputType  type,
int  playerId 
)
virtual

Override this if you need to be notified of player actions in subclasses.

Reimplemented from GUIEngine::Screen.

◆ init()

void BaseUserScreen::init ( )
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.

◆ loadedFromFile()

void BaseUserScreen::loadedFromFile ( )
virtual

implement callback from parent class GUIEngine::Screen

Implements GUIEngine::Screen.

◆ login()

void BaseUserScreen::login ( )
private

Called when OK or OK-and-save is clicked.

This will trigger the actual login (if requested) etc.

Parameters
remember_meTrue if the login details should be remembered, so that next time this menu can be skipped.

◆ loginError()

void BaseUserScreen::loginError ( const irr::core::stringw &  error_message,
bool  clear_password 
)

Callback from player profile if login was unsuccessful.

Parameters
error_messageContains the error message.

◆ logoutError()

void BaseUserScreen::logoutError ( const irr::core::stringw &  error_message)

Callback from player profile if login was unsuccessful.

Parameters
error_messageContains the error message.

◆ makeEntryFieldsVisible()

void BaseUserScreen::makeEntryFieldsVisible ( )
private

Make the entry fields either visible or invisible.

Parameters
onlineOnline state, which dicates if the entry fields are visible (true) or not.

◆ onUpdate()

void BaseUserScreen::onUpdate ( float  dt)
privatevirtual

Called once every frame.

It will replace this screen with the main menu screen if a successful login happened.

Reimplemented from GUIEngine::Screen.

◆ selectUser()

void BaseUserScreen::selectUser ( int  index)
private

Called when a user is selected.

It updates the online checkbox and entry fields.

◆ setNewAccountData()

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.

Parameters
onlineIf the user created an online account.
auto-loginIf 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_nameThe online account name.
passwordThe password for the online account.

◆ tearDown()

void BaseUserScreen::tearDown ( )
virtual

implement callback from parent class GUIEngine::Screen

Reimplemented from GUIEngine::Screen.

◆ unloaded()

void BaseUserScreen::unloaded ( )
virtual

implement optional callback from parent class GUIEngine::Screen

Reimplemented from GUIEngine::Screen.

Member Data Documentation

◆ m_sign_in_name

irr::core::stringw BaseUserScreen::m_sign_in_name
private

The user name that is currently being logged out.

Used to display more meaningful sign-out message.

◆ m_sign_out_name

irr::core::stringw BaseUserScreen::m_sign_out_name
private

The user name that is currently being logged out.

Used to display more meaningful sign-out message.


The documentation for this class was generated from the following files: