Krotos Modules 3
Loading...
Searching...
No Matches
krotos::XYButton Class Reference

An XY Button UI component with a puck following the mouse position. More...

#include <XYButton.h>

Inheritance diagram for krotos::XYButton:

Classes

struct  Layout
 

Public Member Functions

 XYButton (String xLabel="X", String yLabel="Y")
 
void setNormalisedPuckPosition (Point< float > pos)
 
void setPuckPosition (Point< int > pos)
 
void setToggleValue (float x)
 
bool getToggleValue ()
 
Point< float > getPuckPosition ()
 
void createMask (const void *data, const size_t numBytes)
 
void setPaintBackground (bool val)
 
bool getPaintBackground ()
 
void setMaskNotStreched ()
 

Public Attributes

std::function< void(Point< float >)> puckPositionChanged {nullptr}
 
std::function< void()> dragStarted {nullptr}
 
std::function< void()> dragEnded {nullptr}
 

Static Public Attributes

static const std::string analyticsEventMouseDown {"analyticsEventMouseDown"}
 

Private Member Functions

void resized () override
 
void paintButton (Graphics &, bool, bool) override
 
void paintOverChildren (Graphics &g) override
 
void mouseDrag (const MouseEvent &) override
 
void mouseDown (const MouseEvent &) override
 
void mouseUp (const MouseEvent &) override
 
void mouseMove (const MouseEvent &) override
 
void drawGradientLine (Graphics &g, float startX, float startY, float endX, float endY, float lineWidth, float minOpacity, float maxOpacity)
 

Private Attributes

struct krotos::XYButton::Layout m_layout
 
bool m_maskStreched {true}
 
std::unique_ptr< Drawable > m_background
 
std::unique_ptr< Drawable > m_twoZoneMask
 
Point< float > m_puckPosition
 
Point< float > m_scaledPuckPosition
 
bool m_mouseIsDown = false
 
bool m_mouseOverPuck = false
 
Rectangle< int > m_bounds
 
Rectangle< float > m_puckBounds
 
Rectangle< int > m_puckBoundary
 
Rectangle< int > m_maskBounds
 
Rectangle< int > m_wholeBounds
 
bool m_paintBackground {true}
 
bool m_toggleValue
 

Detailed Description

An XY Button UI component with a puck following the mouse position.

This class implements a grahBackground box with a mouse moving inside of it and a puck following the position of the mouse. If the mouse is clicked, the puck becomes larger and filled with colour to indicate the mouseDown action and the beggining of sending data to the attached parameters.

Constructor & Destructor Documentation

◆ XYButton()

krotos::XYButton::XYButton ( String xLabel = "X",
String yLabel = "Y" )

Member Function Documentation

◆ createMask()

void krotos::XYButton::createMask ( const void * data,
const size_t numBytes )

Set the binary data destination and create mask on the background image.

◆ drawGradientLine()

void krotos::XYButton::drawGradientLine ( Graphics & g,
float startX,
float startY,
float endX,
float endY,
float lineWidth,
float minOpacity,
float maxOpacity )
private

◆ getPaintBackground()

bool krotos::XYButton::getPaintBackground ( )
inline

Get whether the XY should draw for reformer or standard

◆ getPuckPosition()

Point< float > krotos::XYButton::getPuckPosition ( )
inline

Gets the position of the XY puck dot as a Point<float>

◆ getToggleValue()

bool krotos::XYButton::getToggleValue ( )

◆ mouseDown()

void krotos::XYButton::mouseDown ( const MouseEvent & event)
overrideprivate

◆ mouseDrag()

void krotos::XYButton::mouseDrag ( const MouseEvent & event)
overrideprivate

◆ mouseMove()

void krotos::XYButton::mouseMove ( const MouseEvent & event)
overrideprivate

◆ mouseUp()

void krotos::XYButton::mouseUp ( const MouseEvent & event)
overrideprivate

◆ paintButton()

void krotos::XYButton::paintButton ( Graphics & ,
bool ,
bool  )
inlineoverrideprivate

◆ paintOverChildren()

void krotos::XYButton::paintOverChildren ( Graphics & g)
overrideprivate

◆ resized()

void krotos::XYButton::resized ( )
overrideprivate

◆ setMaskNotStreched()

void krotos::XYButton::setMaskNotStreched ( )
inline

◆ setNormalisedPuckPosition()

void krotos::XYButton::setNormalisedPuckPosition ( Point< float > pos)

Sets the position of the XY puck dot

Parameters
posThe new puck position as floats normalised to 0.f -> 1.f

◆ setPaintBackground()

void krotos::XYButton::setPaintBackground ( bool val)
inline

Set whether the XY should draw for reformer or standard

◆ setPuckPosition()

void krotos::XYButton::setPuckPosition ( Point< int > pos)

Sets the position of the XY puck from screen position

Parameters
posThe new puck position in pixels relative to bounds

◆ setToggleValue()

void krotos::XYButton::setToggleValue ( float x)

Member Data Documentation

◆ analyticsEventMouseDown

const std::string krotos::XYButton::analyticsEventMouseDown {"analyticsEventMouseDown"}
static

◆ dragEnded

std::function<void()> krotos::XYButton::dragEnded {nullptr}

Gets called from mouseUp. Ends gesture on both parameters

◆ dragStarted

std::function<void()> krotos::XYButton::dragStarted {nullptr}

Gets called from mouseDown. Begins gestures on both parameters

◆ m_background

std::unique_ptr<Drawable> krotos::XYButton::m_background
private

◆ m_bounds

Rectangle<int> krotos::XYButton::m_bounds
private

◆ m_layout

struct krotos::XYButton::Layout krotos::XYButton::m_layout
private

◆ m_maskBounds

Rectangle<int> krotos::XYButton::m_maskBounds
private

◆ m_maskStreched

bool krotos::XYButton::m_maskStreched {true}
private

◆ m_mouseIsDown

bool krotos::XYButton::m_mouseIsDown = false
private

◆ m_mouseOverPuck

bool krotos::XYButton::m_mouseOverPuck = false
private

◆ m_paintBackground

bool krotos::XYButton::m_paintBackground {true}
private

◆ m_puckBoundary

Rectangle<int> krotos::XYButton::m_puckBoundary
private

◆ m_puckBounds

Rectangle<float> krotos::XYButton::m_puckBounds
private

◆ m_puckPosition

Point<float> krotos::XYButton::m_puckPosition
private

◆ m_scaledPuckPosition

Point<float> krotos::XYButton::m_scaledPuckPosition
private

◆ m_toggleValue

bool krotos::XYButton::m_toggleValue
private

◆ m_twoZoneMask

std::unique_ptr<Drawable> krotos::XYButton::m_twoZoneMask
private

◆ m_wholeBounds

Rectangle<int> krotos::XYButton::m_wholeBounds
private

◆ puckPositionChanged

std::function<void(Point<float>)> krotos::XYButton::puckPositionChanged {nullptr}

Gets called from setPuckPosition(Point<float> pos). Updated both parameter values as part of gesture


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