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

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

#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 triggeredRight ()
 
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=nullptr, bool noBackground=false, StelAction *otherAction=nullptr)
 Constructor. More...
 
 StelButton (QGraphicsItem *parent, const QPixmap &pixOn, const QPixmap &pixOff, const QPixmap &pixHover, const QString &actionId, bool noBackground=false, const QString &otherActionId="")
 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...
 
int getButtonPixmapHeight () const
 
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)
 
void setTriggerOnRelease (bool b)
 Configure the button to trigger its action when the mouse click is released (by default buttons trigger on press event).
 
QRectF boundingRect () const override
 

Static Public Member Functions

static double getInputPixmapsDevicePixelRatio ()
 

Protected Member Functions

void hoverEnterEvent (QGraphicsSceneHoverEvent *event) override
 
void hoverLeaveEvent (QGraphicsSceneHoverEvent *event) override
 
void mousePressEvent (QGraphicsSceneMouseEvent *event) override
 
void mouseReleaseEvent (QGraphicsSceneMouseEvent *event) override
 
void paint (QPainter *, const QStyleOptionGraphicsItem *, QWidget *) override
 

Friends

class BottomStelBar
 
class LeftStelBar
 

Detailed Description

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

Constructor & Destructor Documentation

◆ StelButton() [1/3]

StelButton::StelButton ( QGraphicsItem *  parent,
const QPixmap &  pixOn,
const QPixmap &  pixOff,
const QPixmap &  pixHover = QPixmap(),
class StelAction action = nullptr,
bool  noBackground = false,
StelAction otherAction = nullptr 
)

Constructor.

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() [2/3]

StelButton::StelButton ( QGraphicsItem *  parent,
const QPixmap &  pixOn,
const QPixmap &  pixOff,
const QPixmap &  pixHover,
const QString &  actionId,
bool  noBackground = false,
const QString &  otherActionId = "" 
)

Constructor.

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() [3/3]

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 
)

Constructor.

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

◆ getButtonPixmapWidth()

int StelButton::getButtonPixmapWidth ( ) const
inline

Get the width of the button image.

The width is based on pixOn.

◆ hoverChanged

void StelButton::hoverChanged ( bool  b)
signal

Emitted when the hover state change.

Parameters
btrue if the mouse entered the button