SuperTuxKart
|
A small extension to the spinner widget to add features like player ID management or badging. More...
#include <player_name_spinner.hpp>
Public Member Functions | |
PlayerNameSpinner (KartSelectionScreen *parent, const int playerID) | |
void | setID (const int m_playerID) |
void | markAsIncorrect () |
Add a red mark on the spinner to mean "invalid choice". | |
void | markAsCorrect () |
Remove any red mark set with 'markAsIncorrect'. | |
Public Member Functions inherited from GUIEngine::SpinnerWidget | |
SpinnerWidget (const bool gauge=false) | |
virtual void | move (const int x, const int y, const int w, const int h) |
Call to resize/move the widget. | |
void | addLabel (irr::core::stringw label) |
void | clearLabels () |
void | setUseBackgroundColor () |
bool | getUseBackgroundColor () |
void | setSpinnerWidgetPlayerID (int playerID) |
int | getSpinnerWidgetPlayerID () |
void | unsetUseBackgroundColor () |
void | activateSelectedButton () |
void | setSelectedButton (bool right) |
void | clearSelected () |
bool | isButtonSelected (bool right) |
void | setListener (ISpinnerConfirmListener *listener) |
virtual void | add () |
implement method from base class Widget | |
void | setValue (const int new_value) |
sets the current value of the spinner | |
void | setFloatValue (const float new_value) |
sets the float value of the spinner | |
void | setValue (irr::core::stringw new_value) |
sets the current value of the spinner | |
bool | isGauge () const |
bool | isColorSlider () const |
int | getValue () const |
retrieve the current value of the spinner | |
float | getFloatValue () const |
retrieve the current value of the spinner | |
irr::core::stringw | getStringValue () const |
retrieve the current value of the spinner | |
irr::core::stringw | getStringValueFromID (unsigned id) const |
retrieve the value of the spinner from id | |
float | getStep () const |
Returns the step value. | |
void | setStep (float n) |
Sets the maximum value for a spinner. | |
int | getMax () const |
Returns the maximum value. | |
void | setMax (int n) |
Sets the maximum value for a spinner. | |
int | getMin () const |
void | setMin (int n) |
Sets the minimum value for a spinner. | |
virtual void | setActive (bool active=true) |
Override method from base class Widget. | |
void | setCustomText (const core::stringw &text) |
Display custom text in spinner. | |
const core::stringw & | getCustomText () const |
void | setRange (float min, float max, float step) |
void | setRange (int min, int max) |
void | onPressed (int x, int y) |
void | doValueUpdatedCallback () |
void | setValueUpdatedCallback (std::function< void(SpinnerWidget *spinner)> callback) |
Public Member Functions inherited from GUIEngine::Widget | |
Widget (WidgetType type, bool reserve_id=false) | |
virtual void | setEventCallbackActive (Input::InputType type, bool active) |
Allow (or not) an event callback for this widget based on input type. | |
virtual bool | isEventCallbackActive (Input::InputType type) const |
Return if there should be an event callback for this widget based on input type. | |
void | setParent (irr::gui::IGUIElement *parent) |
Set the irrlicht widget to be used as parent of this widget next time Widget::add() is invoked on this widget. | |
virtual void | setVisible (bool visible) |
Sets the widget (and its children, if any) visible or not. | |
virtual void | setCollapsed (bool collapsed, Screen *calling_screen=NULL) |
Sets the widget (and its children, if any) collapsed or not. | |
virtual void | setCollapsed (bool collapsed, int uncollapsed_height, Screen *calling_screen=NULL) |
Sets the widget (and its children, if any) collapsed or not. | |
bool | isVisible () const |
Returns if the element is visible. | |
bool | isCollapsed () const |
Returns whether the element is collapsed (through setCollapsed). | |
bool | isActivated () const |
virtual EventPropagation | onActivationInput (const int playerID) |
virtual void | move (const int x, const int y, const int w, const int h) |
Call to resize/move the widget. | |
bool | isSelected (const int playerID) const |
Get whether this widget is selected (only makes sense in some cases where a widget is part of a bigger widget, e.g. | |
void | setSelected (const int playerID, bool state) |
bool | isBottomBar () const |
bool | isTopBar () const |
bool | ok () const |
virtual EventPropagation | onClick () |
Gets called when the widget is active and got clicked. | |
virtual irr::core::dimension2di | getDimension () const |
template<typename T > | |
T * | getIrrlichtElement () |
Get the underlying irrLicht GUI element, casted to the right type. | |
template<typename T > | |
const T * | getIrrlichtElement () const |
Get the underlying irrLicht GUI element, casted to the right type; const version. | |
irr::gui::IGUIElement * | getIrrlichtElement () |
Get the underlying irrLicht GUI element. | |
void | moveIrrlichtElement () |
bool | isSameIrrlichtWidgetAs (const Widget *ref) const |
virtual void | setText (const irr::core::stringw &s) |
Sets the text of a widget from a wchar_t. | |
const irr::core::stringw & | getText () const |
Returns the text of a widget. | |
WidgetType | getType () const |
int | getID () const |
Get the irrlicht widget ID attributed to this widget. | |
bool | isFocusable () const |
Get whether this object is allowed to receive focus. | |
void | setFocusable (bool f) |
void | setFocusForPlayer (const int playerID) |
Focus the widget for the given player. | |
bool | isFocusedForPlayer (const int playerID) |
Find whether this widget is focused by a given player. | |
void | unsetFocusForPlayer (const int playerID) |
Internal method, do not call it. | |
const PtrVector< Widget > & | getChildren () const |
PtrVector< Widget > & | getChildren () |
bool | deleteChild (const char *id) |
removes and deletes the child with the given PROP_ID | |
virtual void | update (float delta) |
Override in children to possibly receive updates (you may need to register to them first) | |
virtual void | elementRemoved () |
Called when irrLicht widgets cleared. | |
bool | searchInsideMe () const |
void | setBadge (BadgeType badge_bit) |
adds a particular badge to this widget. | |
void | unsetBadge (BadgeType badge_bit) |
removes a particular bade from this widget, if it had it. | |
void | resetAllBadges () |
sets this widget to have no badge | |
int | getBadges () const |
Get which badges are currently on this widget. | |
bool | hasTooltip () const |
irr::core::stringw | getTooltipText () const |
Only call if hasTooltip() returned true. | |
void | setTooltip (irr::core::stringw s) |
Private Attributes | |
int | m_player_id |
bool | m_incorrect |
irr::gui::IGUIImage * | m_red_mark_widget |
KartSelectionScreen * | m_parent |
Additional Inherited Members | |
Static Public Member Functions inherited from GUIEngine::Widget | |
static void | resetIDCounters () |
When switching to a new screen, this function will be called to reset ID counters (so we start again from ID 0, and don't grow to big numbers) | |
static int | getNewID () |
Provides a new unique ID on each call, for widgets that can be focused. | |
static int | getNewNoFocusID () |
Provides a new unique ID on each call, for widgets that can not be focused. | |
static bool | isFocusableId (const int id) |
get whether the given ID represents an ID of a widget that can be focused | |
Public Attributes inherited from GUIEngine::Widget | |
Widget * | m_event_handler |
This is set to NULL by default; set to something else in a widget to mean that events happening on this widget should also be passed to m_event_handler->transmitEvent, which is usually the parent analysing events from its children. | |
bool | m_supports_multiplayer |
Whether this widget supports multiplayer interaction (i.e. | |
int | m_tab_down_root |
Instead of searching for widget IDs smaller/greater than that of this object, navigation through widgets will start from these IDs (if they are set). | |
int | m_tab_up_root |
Instead of searching for widget IDs smaller/greater than that of this object, navigation through widgets will start from these IDs (if they are set). | |
int | m_x |
Coordinates of the widget once added (the difference between those x/h and PROP_WIDTH/PROP_HEIGHT is that the props are read in raw form from the XML file; PROP_WIDTH can then be e.g. | |
int | m_y |
int | m_w |
int | m_h |
bool | m_show_bounding_box |
Whether to show a bounding box around this widget (used for sections) | |
bool | m_is_bounding_box_round |
Only used if m_show_bounding_box is true. | |
int | m_reserved_id |
Used in two cases : 1) For 'placeholder' divisions; at the time the layout is created, there is nothing to place there yet, but we know there eventually will. | |
std::map< Property, std::string > | m_properties |
A map that holds values for all specified widget properties (in the XML file) | |
Public Attributes inherited from GUIEngine::SkinWidgetContainer | |
int | m_skin_x |
int | m_skin_y |
int | m_skin_w |
int | m_skin_h |
bool | m_skin_dest_areas_inited |
bool | m_skin_dest_areas_yflip_inited |
int | m_skin_dest_x |
int | m_skin_dest_y |
int | m_skin_dest_x2 |
int | m_skin_dest_y2 |
core::rect< s32 > | m_skin_dest_area_left |
core::rect< s32 > | m_skin_dest_area_center |
core::rect< s32 > | m_skin_dest_area_right |
core::rect< s32 > | m_skin_dest_area_top |
core::rect< s32 > | m_skin_dest_area_bottom |
core::rect< s32 > | m_skin_dest_area_top_left |
core::rect< s32 > | m_skin_dest_area_top_right |
core::rect< s32 > | m_skin_dest_area_bottom_left |
core::rect< s32 > | m_skin_dest_area_bottom_right |
core::rect< s32 > | m_skin_dest_area_left_yflip |
core::rect< s32 > | m_skin_dest_area_center_yflip |
core::rect< s32 > | m_skin_dest_area_right_yflip |
core::rect< s32 > | m_skin_dest_area_top_yflip |
core::rect< s32 > | m_skin_dest_area_bottom_yflip |
core::rect< s32 > | m_skin_dest_area_top_left_yflip |
core::rect< s32 > | m_skin_dest_area_top_right_yflip |
core::rect< s32 > | m_skin_dest_area_bottom_left_yflip |
core::rect< s32 > | m_skin_dest_area_bottom_right_yflip |
short | m_skin_r |
short | m_skin_g |
short | m_skin_b |
Protected Member Functions inherited from GUIEngine::SpinnerWidget | |
virtual EventPropagation | transmitEvent (Widget *w, const std::string &originator, const int playerID) |
implementing method from base class Widget | |
virtual EventPropagation | rightPressed (const int playerID) |
implementing method from base class Widget | |
virtual EventPropagation | leftPressed (const int playerID) |
implementing method from base class Widget | |
virtual int | getWidthNeededAroundLabel () const |
When inferring widget size from its label length, this method will be called to if/how much space must be added to the raw label's size for the widget to be large enough. | |
virtual int | getHeightNeededAroundLabel () const |
When inferring widget size from its label length, this method will be called to if/how much space must be added to the raw label's size for the widget to be large enough. | |
irr::video::ITexture * | getTexture () |
Call only if this spinner is graphical. | |
Protected Member Functions inherited from GUIEngine::Widget | |
virtual EventPropagation | rightPressed (const int playerID) |
called when right key is pressed and focus is on widget. | |
virtual EventPropagation | leftPressed (const int playerID) |
called when left key is pressed and focus is on widget. | |
virtual EventPropagation | upPressed (const int playerID) |
called when up key is pressed and focus is on widget. | |
virtual EventPropagation | downPressed (const int playerID) |
called when down key is pressed and focus is on widget. | |
virtual EventPropagation | mouseHovered (Widget *child, const int playerID) |
used when you set eventSupervisors - see m_event_handler explainations below called when one of a widget's children is hovered. | |
virtual EventPropagation | focused (const int playerID) |
override in children if you need to know when the widget is focused. | |
virtual void | unfocused (const int playerID, Widget *new_focus) |
override in children if you need to know when the widget is unfocused. | |
Protected Attributes inherited from GUIEngine::SpinnerWidget | |
std::function< void(SpinnerWidget *spinner)> | m_value_updated_callback |
ISpinnerConfirmListener * | m_listener |
int | m_value |
int | m_min |
int | m_max |
float | m_step |
int | m_spinner_widget_player_id |
bool | m_use_background_color |
std::vector< irr::core::stringw > | m_labels |
If each value the spinner can take has an associated text, this vector will be non-empty. | |
bool | m_graphical |
Whether the value of this spinner is displayed using an icon rather than with a plain label. | |
bool | m_gauge |
Whether this widget is a gauge the behaviour is the same but the look is a bit different, instead of displaying a number, it displays how close the value is to the maximum by filling a line. | |
bool | m_wrap_around |
Whether to wrap back to the first value when going "beyond" the last value. | |
bool | m_color_slider |
Whether this widget is a color slider. | |
bool | m_left_selected |
Whether the left arrow is the currently selected one | |
bool | m_right_selected |
Whether the right arrow is the currently selected one | |
core::stringw | m_custom_text |
Keeps track of the custom text in spinner (a text which isn't related to a value) to remember it and set it back (example : when we deactivate the widget) | |
Protected Attributes inherited from GUIEngine::Widget | |
unsigned int | m_magic_number |
std::bitset< Input::IT_LAST+1 > | m_active_event_callback |
int | m_absolute_x |
Used during loading, by the layout engine. | |
int | m_absolute_y |
int | m_absolute_w |
int | m_absolute_h |
int | m_absolute_reverse_x |
int | m_absolute_reverse_y |
float | m_relative_x |
float | m_relative_y |
float | m_relative_w |
float | m_relative_h |
irr::core::stringw | m_text |
PROP_TEXT is a special case : since it can be translated it can't go in the map above, which uses narrow strings. | |
bool | m_title_font |
When true, this widget shall use a bigger and more colourful font. | |
bool | m_selected [MAX_PLAYER_COUNT] |
Can be used in children to indicate whether a widget is selected or not. | |
bool | m_check_inside_me |
Whether to descend in the children of this widget when searching a widget from its ID or name. | |
irr::gui::IGUIElement * | m_parent |
An irrlicht parent (most often used to put widgets in dialogs) | |
irr::gui::IGUIElement * | m_element |
IrrLicht widget created to represent this object. | |
int | m_id |
numerical ID used by irrLicht to identify this widget (not the same as the string identificator specified in the XML file) | |
bool | m_player_focus [MAX_PLAYER_COUNT] |
Usually, only one widget at a time can be focused. | |
bool | m_reserve_id |
Whether to reserve an ID in 'm_reserved_id' when widget is added. | |
WidgetType | m_type |
Type of this widget. | |
PtrVector< Widget > | m_children |
If this widget has any children, they go here. | |
int | m_badges |
A bitmask of which badges to show, if any; choices are *_BADGE, defined above. | |
bool | m_deactivated |
A simple flag that can be raised to deactivate this widget. | |
bool | m_is_visible |
A flag to indicate whether this widget should be visible or not. | |
bool | m_focusable |
Set to false if widget is something that should not receive focus. | |
bool | m_bottom_bar |
bool | m_top_bar |
int | m_badge_x_shift |
If a badge wouldn't look too pretty on the very side of the widget. | |
bool | m_has_tooltip |
irr::core::stringw | m_tooltip_text |
int | m_uncollapsed_height |
height of the widget before it was collapsed (only set if widget got collapsed) | |
bool | m_is_collapsed |
A flag to indicate whether this widget got collapsed. | |
A small extension to the spinner widget to add features like player ID management or badging.