Stellarium  0.17.0
Public Types | Public Slots | Signals | Public Member Functions | Protected Member Functions | Friends
StelButton Class Reference

A Button Graphicsitem for use in Stellarium's graphic widgets.

#include <StelGuiItems.hpp>

Public Types

enum  { ButtonStateOff = 0, ButtonStateOn = 1, ButtonStateNoChange = 2 }
 Button states.
 

Public Slots

void setChecked (int b)
 set whether the button is checked
 
void setChecked (bool b)
 

Signals

void toggled (bool)
 Triggered when the button state changes.
 
void triggered ()
 Triggered when the button state changes.
 
void hoverChanged (bool b)
 Emitted when the hover state change. More...
 

Public Member Functions

 StelButton (QGraphicsItem *parent, const QPixmap &pixOn, const QPixmap &pixOff, const QPixmap &pixHover=QPixmap(), class StelAction *action=Q_NULLPTR, bool noBackground=false)
 Constructor. More...
 
 StelButton (QGraphicsItem *parent, const QPixmap &pixOn, const QPixmap &pixOff, const QPixmap &pixHover, const QString &actionId, bool noBackground=false)
 Constructor. More...
 
 StelButton (QGraphicsItem *parent, const QPixmap &pixOn, const QPixmap &pixOff, const QPixmap &pixNoChange, const QPixmap &pixHover, const QString &actionId=QString(), bool noBackground=false, bool isTristate=true)
 Constructor. More...
 
int isChecked () const
 Get whether the button is checked.
 
int getButtonPixmapWidth () const
 Get the width of the button image. More...
 
void setOpacity (double v)
 Set the button opacity.
 
void setBackgroundPixmap (const QPixmap &newBackground)
 Set the background pixmap of the button.
 
void setFocusOnSky (bool b)
 While configuring buttons, call this with true when after key release focus should go back to the sky (typical for bottom buttons; left buttons call panels which receive focus after button press, so those should be configured with b=false)
 

Protected Member Functions

virtual void mousePressEvent (QGraphicsSceneMouseEvent *event)
 
virtual void hoverEnterEvent (QGraphicsSceneHoverEvent *event)
 
virtual void hoverLeaveEvent (QGraphicsSceneHoverEvent *event)
 
virtual void mouseReleaseEvent (QGraphicsSceneMouseEvent *event)
 

Friends

class BottomStelBar
 
class LeftStelBar
 

Constructor & Destructor Documentation

StelButton::StelButton ( QGraphicsItem *  parent,
const QPixmap &  pixOn,
const QPixmap &  pixOff,
const QPixmap &  pixHover = QPixmap(),
class StelAction action = Q_NULLPTR,
bool  noBackground = false 
)
Parameters
parentthe parent item
pixOnthe pixmap to display when the button is toggled
pixOffthe pixmap to display when the button is not toggled
pixHovera pixmap slowly blended when mouse is over the button
actionthe associated action. Connections are automatically done with the signals if relevant.
noBackgrounddefine whether the button background image have to be used
StelButton::StelButton ( QGraphicsItem *  parent,
const QPixmap &  pixOn,
const QPixmap &  pixOff,
const QPixmap &  pixHover,
const QString &  actionId,
bool  noBackground = false 
)
Parameters
parentthe parent item
pixOnthe pixmap to display when the button is toggled
pixOffthe pixmap to display when the button is not toggled
pixHovera pixmap slowly blended when mouse is over the button
actionIdthe id of the associated action. Connections are automatically done with the signals if relevant.
noBackgrounddefine whether the button background image have to be used
StelButton::StelButton ( QGraphicsItem *  parent,
const QPixmap &  pixOn,
const QPixmap &  pixOff,
const QPixmap &  pixNoChange,
const QPixmap &  pixHover,
const QString &  actionId = QString(),
bool  noBackground = false,
bool  isTristate = true 
)
Parameters
parentthe parent item
pixOnthe pixmap to display when the button is toggled
pixOffthe pixmap to display when the button is not toggled
pixNoChangethe pixmap to display when the button state of a tristate is not changed
pixHovera pixmap slowly blended when mouse is over the button
actionIdthe associated action. Connections are automatically done with the signals if relevant.
noBackgrounddefine whether the button background image have to be used
isTristatedefine whether the button is a tristate or an on/off button

Member Function Documentation

int StelButton::getButtonPixmapWidth ( ) const
inline

The width is based on pixOn.

void StelButton::hoverChanged ( bool  b)
signal
Parameters
btrue if the mouse entered the button