HoverRace  2.0
Classes | Public Member Functions | Private Types | Private Attributes | List of all members
HoverRace::Display::KeycapIcon Class Reference

Icon for a keycap (keyboard key or gamepad button(. More...

#include <KeycapIcon.h>

+ Inheritance diagram for HoverRace::Display::KeycapIcon:

Classes

struct  Props
 

Public Member Functions

 KeycapIcon (double height, int keyHash, const Color color=COLOR_WHITE, uiLayoutFlags_t layoutFlags=0)
 Construcotr. More...
 
virtual ~KeycapIcon ()
 
void AdjustHeight (double h) override
 Adjust the height, preserving the preferred aspect ratio. More...
 
void AdjustWidth (double w) override
 Adjust the width, preserving the preferred aspect ratio. More...
 
void AttachView (Display &disp) override
 
int GetKeyHash () const
 
Vec3 Measure () override
 Calculate the size of the component. More...
 
void SetKeyHash (int keyHash)
 
- Public Member Functions inherited from HoverRace::Display::FillBox
 FillBox (const Vec2 &size, const Color color, uiLayoutFlags_t layoutFlags=0)
 Constructor. More...
 
 FillBox (double w, double h, const Color color, uiLayoutFlags_t layoutFlags=0)
 Constructor. More...
 
 FillBox (const Vec2 &size, const Color color, double border, const Color borderColor, uiLayoutFlags_t layoutFlags=0)
 Constructor with border. More...
 
 FillBox (double w, double h, const Color color, double border, const Color borderColor, uiLayoutFlags_t layoutFlags=0)
 Constructor with border. More...
 
virtual ~FillBox ()
 
double GetBorder () const
 
const Color GetBorderColor () const
 
const Color GetColor () const
 
void SetBorder (double border)
 Set the border thickness. More...
 
void SetBorderColor (const Color color)
 Set the color of the border. More...
 
void SetColor (const Color color)
 Set the color of the box. More...
 
- Public Member Functions inherited from HoverRace::Display::Box
 Box (const Vec2 &size, uiLayoutFlags_t layoutFlags=0)
 
virtual ~Box ()
 
const Vec2GetSize () const
 Retrieve the size of the box. More...
 
void SetSize (const Vec2 &size)
 Set the size of the box. More...
 
void SetSize (double w, double h)
 Convenience function for SetSize(const Vec2&). More...
 
- Public Member Functions inherited from HoverRace::Display::UiViewModel
 UiViewModel (uiLayoutFlags_t layoutFlags=0)
 
virtual ~UiViewModel ()
 
virtual void DropFocus ()
 Force this widget to give up focus, if it is currently focused. More...
 
Vec2 GetAlignedPos (const Vec2 &pos, double w, double h) const
 Retrieve an arbitrary position adjusted by the current alignment. More...
 
Vec2 GetAlignedPos (double w, double h) const
 Retrieve the position adjusted by the current alignment. More...
 
Alignment GetAlignment () const
 Retrieve the alignment of the component. More...
 
focusRelinquishedSignal_tGetFocusRelinquishedSignal ()
 
focusRequestedSignal_tGetFocusRequestedSignal ()
 
uiLayoutFlags_t GetLayoutFlags () const
 Retrieve the layout flags. More...
 
const Vec2GetPos () const
 Get the position of the component. More...
 
const Vec2GetTranslation () const
 Retrieves the position translation. More...
 
bool IsFocused () const
 Check if this widget currently has input focus. More...
 
uiLayoutFlags_t IsLayoutFloating () const
 
uiLayoutFlags_t IsLayoutUnscaled () const
 
virtual bool OnAction ()
 
virtual bool OnMouseMoved (const Vec2 &)
 
virtual bool OnMousePressed (const Control::Mouse::Click &)
 
virtual bool OnMouseReleased (const Control::Mouse::Click &)
 
virtual bool OnMouseScrolled (const Control::Mouse::Scroll &)
 
virtual bool OnNavigate (const Control::Nav &)
 
void RequestFocus ()
 Attempt to hand over the input focus to this widget. More...
 
void SetAlignment (Alignment alignment)
 Set the alignment of the component. More...
 
void SetPos (const Vec2 &pos)
 Set the position of the component. More...
 
void SetPos (double x, double y)
 Convenience function for SetPos(const Vec2&). More...
 
void SetTranslation (const Vec2 &translation)
 Sets the position translation. More...
 
void SetTranslation (double x, double y)
 Convenience function for SetTranslation(const Vec2&). More...
 
virtual bool TryFocus (const Control::Nav &nav=Control::Nav::NEUTRAL)
 Attempts to give this widget focus. More...
 
- Public Member Functions inherited from HoverRace::Display::ViewModel
 ViewModel ()
 
virtual ~ViewModel ()
 
ViewGetView () const
 
void PrepareRender ()
 
void Render ()
 
void SetView (std::unique_ptr< View > &&view)
 

Private Types

using SUPER = FillBox
 

Private Attributes

int keyHash
 

Additional Inherited Members

- Public Types inherited from HoverRace::Display::UiViewModel
enum  Alignment {
  Alignment::NW, Alignment::N, Alignment::NE, Alignment::E,
  Alignment::SE, Alignment::S, Alignment::SW, Alignment::W,
  Alignment::CENTER
}
 Imagine the component pinned to the container with a thumbtack. More...
 
using focusRelinquishedSignal_t = boost::signals2::signal< void(UiViewModel &, const Control::Nav &)>
 
using focusRequestedSignal_t = boost::signals2::signal< void(UiViewModel &)>
 
- Protected Member Functions inherited from HoverRace::Display::UiViewModel
void RelinquishFocus (const Control::Nav &nav)
 Voluntarily give up input focus, passing it on to the next widget. More...
 
void SetFocused (bool focused)
 Set the focused state. More...
 
- Protected Member Functions inherited from HoverRace::Display::ViewModel
template<class T >
void AttachViewDynamic (Display &disp, T *self)
 
virtual void FireModelUpdate (int prop)
 Indicate that a model property has changed. More...
 
virtual void Layout ()
 Adjust the size and position of any child elements. More...
 
void RequestLayout ()
 Indicate that the current layout is out-of-date and needs to be adjusted. More...
 

Detailed Description

Icon for a keycap (keyboard key or gamepad button(.

Author
Michael Imamura

Member Typedef Documentation

Constructor & Destructor Documentation

HoverRace::Display::KeycapIcon::KeycapIcon ( double  height,
int  keyHash,
const Color  color = COLOR_WHITE,
uiLayoutFlags_t  layoutFlags = 0 
)

Construcotr.

Parameters
heightThe height of the icon (the width is automatic).
keyHashThe input hash for the keyboard key or gamepad button.
colorThe color of the icon (including alpha). Note that some parts of the icon may use a different color depending on the rules for gamepads.
layoutFlagsOptional layout flags.
virtual HoverRace::Display::KeycapIcon::~KeycapIcon ( )
inlinevirtual

Member Function Documentation

void HoverRace::Display::KeycapIcon::AdjustHeight ( double  h)
overridevirtual

Adjust the height, preserving the preferred aspect ratio.

Parameters
hThe new height.

Reimplemented from HoverRace::Display::Box.

void HoverRace::Display::KeycapIcon::AdjustWidth ( double  w)
overridevirtual

Adjust the width, preserving the preferred aspect ratio.

Parameters
wThe new width.

Reimplemented from HoverRace::Display::Box.

void HoverRace::Display::KeycapIcon::AttachView ( Display disp)
inlineoverridevirtual

Reimplemented from HoverRace::Display::FillBox.

int HoverRace::Display::KeycapIcon::GetKeyHash ( ) const
inline
Vec3 HoverRace::Display::KeycapIcon::Measure ( )
inlineoverridevirtual

Calculate the size of the component.

For UI components, the return value is affected by layout flags.

Returns
The size (may be zero if the size cannot be determined yet).
Warning
Depending on the view, this may be an expensive operation since the view may have to call View::PrepareRender to apply model changes. As such, it is recommended to call Measure in the PrepareRender phase itself.

Reimplemented from HoverRace::Display::Box.

void HoverRace::Display::KeycapIcon::SetKeyHash ( int  keyHash)

Member Data Documentation

int HoverRace::Display::KeycapIcon::keyHash
private

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