A ButtonHandle represents a single button from any device, including keyboard buttons and mouse buttons (but see KeyboardButton and MouseButton). More...
#include "buttonHandle.h"
Public Member Functions | |
constexpr | ButtonHandle (int index) |
Constructs a ButtonHandle with the corresponding index number, which may have been returned by an earlier call to ButtonHandle::get_index(). More... | |
ButtonHandle (const std::string &name) | |
Constructs a ButtonHandle with the corresponding name, which is looked up in the ButtonRegistry. More... | |
int | compare_to (const ButtonHandle &other) const |
Sorts ButtonHandles arbitrarily (according to <, >, etc.). More... | |
ButtonHandle | get_alias () const |
char | get_ascii_equivalent () const |
size_t | get_hash () const |
Returns a hash code suitable for phash_map. More... | |
constexpr int | get_index () const |
std::string | get_name () const |
bool | has_ascii_equivalent () const |
bool | matches (const ButtonHandle &other) const |
Returns true if this ButtonHandle is the same as the other one, or if the other one is an alias for this one. More... | |
bool | operator != (const ButtonHandle &other) const |
bool | operator > (const ButtonHandle &other) const |
bool | operator >= (const ButtonHandle &other) const |
operator bool () const | |
ButtonHandle::none() evaluates to false, everything else evaluates to true. More... | |
bool | operator< (const ButtonHandle &other) const |
bool | operator<= (const ButtonHandle &other) const |
bool | operator== (const ButtonHandle &other) const |
void | output (std::ostream &out) const |
Static Public Member Functions | |
static TypeHandle | get_class_type () |
static void | init_type () |
static constexpr ButtonHandle | none () |
Public Attributes | |
get_alias | |
Returns the alias (alternate name) associated with the button, if any, or ButtonHandle::none() if the button has no alias. More... | |
get_ascii_equivalent | |
Returns the character code associated with the button, or '\0' if no ASCII code was associated. More... | |
get_index | |
Returns the integer index associated with this ButtonHandle. More... | |
get_name | |
Returns the name of the button. More... | |
has_ascii_equivalent | |
Returns true if the button was created with an ASCII equivalent code (e.g. More... | |
Friends | |
class | ButtonRegistry |
A ButtonHandle represents a single button from any device, including keyboard buttons and mouse buttons (but see KeyboardButton and MouseButton).
Definition at line 26 of file buttonHandle.h.
constexpr ButtonHandle::ButtonHandle | ( | int | index | ) |
Constructs a ButtonHandle with the corresponding index number, which may have been returned by an earlier call to ButtonHandle::get_index().
Definition at line 19 of file buttonHandle.I.
ButtonHandle::ButtonHandle | ( | const std::string & | name | ) |
Constructs a ButtonHandle with the corresponding name, which is looked up in the ButtonRegistry.
This exists for the purpose of being able to automatically coerce a string into a ButtonHandle; for most purposes, you should use either the static KeyboardButton/MouseButton getters or ButtonRegistry::register_button().
Definition at line 27 of file buttonHandle.cxx.
References ButtonRegistry::get_button(), and ButtonRegistry::ptr().
|
inline |
Sorts ButtonHandles arbitrarily (according to <, >, etc.).
Returns a number less than 0 if this type sorts before the other one, greater than zero if it sorts after, 0 if they are equivalent.
Definition at line 76 of file buttonHandle.I.
|
inline |
Returns a hash code suitable for phash_map.
Definition at line 84 of file buttonHandle.I.
|
inline |
Returns true if this ButtonHandle is the same as the other one, or if the other one is an alias for this one.
(Does not return true if this button is an alias for the other one, however.)
This is a more general comparison than operator ==.
Definition at line 114 of file buttonHandle.I.
References ButtonRegistry::get_alias().
Referenced by ModifierButtons::has_button().
|
inline |
ButtonHandle::none() evaluates to false, everything else evaluates to true.
Definition at line 144 of file buttonHandle.I.
ButtonHandle ButtonHandle::get_alias |
Returns the alias (alternate name) associated with the button, if any, or ButtonHandle::none() if the button has no alias.
Each button is allowed to have one alias, and multiple different buttons can refer to the same alias. The alias should be the more general name for the button, for instance, shift is an alias for lshift, but not vice-versa.
Definition at line 64 of file buttonHandle.h.
|
inline |
Returns the character code associated with the button, or '\0' if no ASCII code was associated.
Definition at line 63 of file buttonHandle.h.
constexpr int ButtonHandle::get_index |
Returns the integer index associated with this ButtonHandle.
Each different ButtonHandle will have a different index. However, you probably shouldn't be using this method; you should just treat the ButtonHandles as opaque classes. This is provided for the convenience of non-C++ scripting languages to build a hashtable of ButtonHandles.
Definition at line 60 of file buttonHandle.h.
Referenced by ButtonMap::get_mapped_button(), ButtonMap::get_mapped_button_label(), RocketInputHandler::get_rocket_key(), MouseWatcher::is_button_down(), and ButtonMap::map_button().
std::string ButtonHandle::get_name |
Returns the name of the button.
Definition at line 61 of file buttonHandle.h.
Referenced by PGEntry::get_accept_event(), PGEntry::get_accept_failed_event(), PGButton::get_click_event(), PGItem::get_press_event(), PGItem::get_release_event(), PGItem::get_repeat_event(), ButtonThrower::write(), and ButtonEvent::write_datagram().
|
inline |
Returns true if the button was created with an ASCII equivalent code (e.g.
for a standard keyboard button).
Definition at line 63 of file buttonHandle.h.