ButtonHandle¶
-
class
ButtonHandle
¶ A ButtonHandle represents a single button from any device, including keyboard buttons and mouse buttons (but see
KeyboardButton
andMouseButton
).Inheritance diagram
-
ButtonHandle
(void) = default¶
-
constexpr
ButtonHandle
(int index)¶
-
ButtonHandle
(std::string const &name)¶
-
ButtonHandle
(ButtonHandle const&) = default¶ The default constructor must do nothing, because we can’t guarantee ordering of static initializers. If the constructor tried to initialize its value, it might happen after the value had already been set previously by another static initializer!
Constructs a
ButtonHandle
with the corresponding index number, which may have been returned by an earlier call toget_index()
.Constructs a
ButtonHandle
with the corresponding name, which is looked up in theButtonRegistry
. This exists for the purpose of being able to automatically coerce a string into aButtonHandle
; for most purposes, you should use either the static KeyboardButton/MouseButton getters or ButtonRegistry::register_button().
-
int
compare_to
(ButtonHandle const &other) const¶ 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.
-
ButtonHandle
get_alias
(void) const¶ 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.
-
char
get_ascii_equivalent
(void) const¶ Returns the character code associated with the button, or ‘0’ if no ASCII code was associated.
-
static TypeHandle
get_class_type
(void)¶
-
std::size_t
get_hash
(void) const¶ Returns a hash code suitable for phash_map.
-
constexpr int
get_index
(void) const¶ Returns the integer index associated with this
ButtonHandle
. Each differentButtonHandle
will have a different index. However, you probably shouldn’t be using this method; you should just treat theButtonHandles
as opaque classes. This is provided for the convenience of non-C++ scripting languages to build a hashtable ofButtonHandles
.
-
std::string
get_name
(void) const¶ Returns the name of the button.
-
bool
has_ascii_equivalent
(void) const¶ Returns true if the button was created with an ASCII equivalent code (e.g. for a standard keyboard button).
-
bool
matches
(ButtonHandle const &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. (Does not return true if this button is an alias for the other one, however.)This is a more general comparison than operator ==.
-
static constexpr ButtonHandle
none
(void)¶
-
void
output
(std::ostream &out) const¶
-