SuperTuxKart
Public Member Functions | Static Public Member Functions | Protected Types | Private Member Functions | Private Attributes | Static Private Attributes | List of all members
GUIEngine::ScreenKeyboard Class Reference

Class representing a screen keyboard. More...

#include <screen_keyboard.hpp>

Inheritance diagram for GUIEngine::ScreenKeyboard:
Inheritance graph
[legend]

Public Member Functions

 ScreenKeyboard (float percent_width, float percent_height, CGUIEditBox *edit_box)
 The screen keyboard constructor. More...
 
 ~ScreenKeyboard ()
 The screen keyboard destructor.
 
void init ()
 Screen keyboard initialization, needs to be called after new to take into account for runtime polymorphism.
 
virtual EventPropagation processEvent (const std::string &eventSource)
 A function that handles buttons events. More...
 
virtual void onUpdate (float dt)
 Override to be notified of updates.
 
bool onEvent (const SEvent &event)
 A function that handles irrlicht events. More...
 
irr::gui::IGUIWindow * getIrrlichtElement ()
 Get irrlicht window used by the keyboard widget.
 
bool isMyIrrChild (irr::gui::IGUIElement *widget) const
 Checks if the screen keyboard is a parent of the selected item. More...
 
int getWidth ()
 Returns width of the screen keyboard.
 
int getHeight ()
 Returns height of the screen keyboard.
 
CGUIEditBoxgetEditBox ()
 Returns assigned edit box.
 
virtual KeyboardLayoutProportions getKeyboardLayoutProportions () const
 
virtual KeyboardLayout * getKeyboardLayout (ButtonsType bt) const
 
virtual ButtonsType getDefaultButtonsType () const
 
- Public Member Functions inherited from GUIEngine::AbstractTopLevelContainer
WidgetgetWidget (const char *name)
 This function returns a widget by name if that widget is found. More...
 
WidgetgetWidget (const int id)
 This function returns a widget by irrlicht ID if that widget is found. More...
 
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. More...
 
WidgetgetFirstWidget (PtrVector< Widget > *within_vector=NULL)
 This function returns the first widget found in within_vector. More...
 
WidgetgetLastWidget (PtrVector< Widget > *within_vector=NULL)
 This function returns the last widget found in within_vector. More...
 
void elementsWereDeleted (PtrVector< Widget > *within_vector=NULL)
 This function is called when screen is removed. More...
 
bool isMyChild (Widget *widget) const
 This function checks if a widget is a child of the container. More...
 

Static Public Member Functions

static void dismiss ()
 A function that closes the keyboard.
 
static bool onEscapePressed ()
 A function that handles escape pressed event.
 
static ScreenKeyboardgetCurrent ()
 Returns pointer to the created keyboard or NULL if keyboard was not created.
 
static bool isActive ()
 Returns true if keyboard is created.
 
static bool shouldUseScreenKeyboard ()
 A function that determines if (native) screen keyboard should be activated.
 
static bool hasSystemScreenKeyboard ()
 Returns true if system screen keyboard is available.
 
- 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. More...
 
static WidgetgetWidget (const int id, PtrVector< Widget > *within_vector)
 This function returns a widget by irrlicht ID if that widget is found. More...
 

Protected Types

enum  ButtonsType {
  BUTTONS_NONE, BUTTONS_LOWER, BUTTONS_UPPER, BUTTONS_DIGITS,
  BUTTONS_DIGITS2, BUTTONS_EMOJI
}
 
typedef std::vector< std::vector< std::string > > KeyboardLayout
 
typedef std::vector< std::vector< int > > KeyboardLayoutProportions
 

Private Member Functions

void createButtons ()
 Creates all button widgets.
 
void assignButtons (ButtonsType buttons_type)
 A function that allows to select one of the available buttons layout. More...
 
core::stringw getKeyName (std::string key_id)
 

Private Attributes

float m_percent_width
 A value in range of 0.0 to 1.0 that determines width of the screen that is used by the keyboard.
 
float m_percent_height
 A value in range of 0.0 to 1.0 that determines height of the screen that is used by the keyboard.
 
unsigned int m_repeat_time
 A time for repeat key feature.
 
bool m_back_button_pressed
 True if backspace button was pressed.
 
bool m_schedule_close
 True if screen keyboard is going to be closed.
 
CGUIEditBoxm_edit_box
 The edit box that is assigned to the keyboard.
 
irr::gui::IGUIButton * m_back_button
 A button that is used as backspace key.
 
ButtonsType m_buttons_type
 Remembers currently selected button type.
 
irr::gui::IGUIWindow * m_irrlicht_window
 Irrlicht window used by the keyboard widget.
 
irr::core::rect< irr::s32 > m_area
 Contains position and dimensions of the keyboard.
 
std::vector< ButtonWidget * > m_buttons
 Contans the pointers to all button widgets.
 
InputManager::InputDriverMode m_previous_mode
 Remembered input mode that was used before keyboard creation.
 

Static Private Attributes

static ScreenKeyboardm_screen_keyboard = NULL
 Global instance of the current screen keyboard.
 

Additional Inherited Members

- 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::AbstractTopLevelContainer
void addWidgetsRecursively (PtrVector< Widget > &widgets, Widget *parent=NULL)
 This function adds a list of widgets recursively, effectively creating the hierarchy of widgets. More...
 
- 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. More...
 
Widgetm_last_widget
 AbstractTopLevelContainer is generally able to determine its last widget just fine, but in highly complex screens (e.g. More...
 

Detailed Description

Class representing a screen keyboard.

Only once instance at a time (if you create a 2nd the first will be destroyed). You can call static function 'dismiss' to simply close the keyboard (so you don't need to keep track of instances yourself)

Constructor & Destructor Documentation

◆ ScreenKeyboard()

ScreenKeyboard::ScreenKeyboard ( float  percent_width,
float  percent_height,
CGUIEditBox edit_box 
)

The screen keyboard constructor.

Parameters
percent_widthA relative value in range of 0.0 to 1.0 that determines width of the screen that will be used by the keyboard.
percent_heightA relative value in range of 0.0 to 1.0 that determines height of the screen that will be used by the keyboard.
edit_boxThe edit box that is assigned to the keyboard.

Member Function Documentation

◆ assignButtons()

void ScreenKeyboard::assignButtons ( ButtonsType  buttons_type)
private

A function that allows to select one of the available buttons layout.

Parameters
buttons_typeOne of the available buttons type

◆ isMyIrrChild()

bool GUIEngine::ScreenKeyboard::isMyIrrChild ( irr::gui::IGUIElement *  widget) const
inline

Checks if the screen keyboard is a parent of the selected item.

Parameters
widgetA widget that should be checked
Returns
True if keyboard is the parent

◆ onEvent()

bool ScreenKeyboard::onEvent ( const SEvent &  event)

A function that handles irrlicht events.

Parameters
eventIrrlicht event
Returns
Block event if true

◆ processEvent()

EventPropagation ScreenKeyboard::processEvent ( const std::string &  eventSource)
virtual

A function that handles buttons events.

Parameters
eventSourceButton ID
Returns
Block event if edit box is assigned

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