API Documentation
Loading...
Searching...
No Matches
Button Class Reference

#include <Button.h>

Inheritance diagram for Button:
[legend]
Collaboration diagram for Button:
[legend]

Public Types

enum  ButtonState {
  e_large , e_medium , e_medium_centered , e_small ,
  e_circular , e_circular_small , e_push_button , e_none
}
 

Public Member Functions

 Button (QWidget *parent=nullptr)
 
 Button (ButtonState state, QWidget *parent=nullptr)
 
 Button (const TranslatedString &name, const String &icon="", QWidget *parent=nullptr)
 
 Button (const std::function< void(Button *)> &on_click, QWidget *parent=nullptr)
 
 Button (const TranslatedString &name, const std::function< void(Button *)> &on_click, QWidget *parent=nullptr)
 
 Button (const TranslatedString &name, const String &icon, const std::function< void(Button *)> &on_click, QWidget *parent=nullptr)
 
 Button (const TranslatedString &name, const String &icon, TooltipType tooltip, const std::function< void(Button *)> &on_click, QWidget *parent=nullptr)
 
 ~Button ()
 
void paintEvent (QPaintEvent *event) override
 
void setAlignment (Qt::Alignment m_alignment)
 
void setup (const TranslatedString &name, const String &icon, const std::function< void(Button *)> &on_click)
 
void setup (const TranslatedString &name, const String &icon, TooltipType tooltip, const std::function< void(Button *)> &on_click)
 
void setup (const TranslatedString &name, const String &icon, Resource< bool > &checked_var)
 
void setup (GenericOption &checked_var)
 
void setup (ApplicationOption< bool > &checked_var)
 
void setup (const TranslatedString &name, const String &icon, ApplicationOption< bool > &checked_var)
 
int styleDefaultIconSize () const
 
int scaledIconSize () const
 
void setToolTip (TooltipType type)
 
void setToolTip (const QString &tip)
 
void setButtonState (ButtonState state)
 
void showPopupMenu (QWidget *widget, bool is_popup=true)
 
bool requestButtonState (ButtonState state)
 
void requestFixedState (bool fixed_state)
 
ButtonState buttonState () const
 
void setFunction (const std::function< void(Button *)> &on_click)
 
void setHoverFunction (const std::function< void(Button *, bool hovering)> &on_hover)
 
void setPressFunction (const std::function< void(Button *, bool hovering)> &on_press)
 
void enterEvent (ButtonEnterEvent *e) override
 
void leaveEvent (QEvent *e) override
 
void setMargin (uint04 margin)
 
void setIconSize (int size)
 
void setProgressPercent (fltp04 progress)
 
bool event (QEvent *e) override
 
void setIconSizeMultiplier (fltp04 icon_size_multiplier)
 
void setHoverIconSizeMultiplier (fltp04 icon_size_multiplier)
 
void setTitle (const TranslatedString &title)
 
void setText (const QString &text)
 
const TranslatedStringtitle () const
 
const StringiconName () const
 
void setIconName (const String &icon)
 
void setIcon (const QIcon &icon)
 
void setHoverIconName (const String &icon)
 
void setCheckedIconName (const String &icon)
 
bool eventFilter (QObject *watched, QEvent *event) override
 
void setToolTip (const TranslatedString &tooltip)
 
void setDisabledToolTip (const TranslatedString &tooltip)
 
void setToolTip (const TranslatedString &enabled_tooltip, const TranslatedString &disabled_tooltip)
 
void setFlat (bool is_flat)
 
void setButtonDialog (ButtonDialog *dialog)
 
void setSound (const String &sound)
 
void setIgnoreClicks (bool ignore_clicks)
 
void copyButtonFrom (Button *button)
 
void setBackgroundOpacity (fltp04 background_opacity)
 
void setMenuDialog (QWidget *widget)
 
void setIconColor (const RGBColor &color)
 
void setBackgroundColor (const RGBColor &color, bool update_foreground=true)
 
void clearBackgroundColor ()
 
void setFocusOnPress (bool focus_on_press)
 
void setAutoDefault (bool is_auto_default)
 
void setDefault (bool is_default)
 
void setCheckable (bool checkable)
 
void setChecked (bool checked)
 
QSize sizeHint () const override
 
QSize minimumSizeHint () const override
 
void virtualMouseEvent (QEvent::Type event)
 
void setFontMultiplier (fltp04 font_multiplier)
 
void setBold (bool is_bold)
 
void setMenu (QMenu *menu)
 
void setClickCooldown (const TimeSpan &span)
 
QMenu * menu () const
 

Static Public Attributes

static String s_default_sound = "tap-warm"
 

Protected Slots

void onButtonClickSlot ()
 
void onButtonPressSlot ()
 
void onButtonReleaseSlot ()
 

Protected Member Functions

QString autoWrapText (const QFontMetrics &metrics)
 
void updateTooltip ()
 
void updateText ()
 
void mouseReleaseEvent (QMouseEvent *) override
 
void mousePressEvent (QMouseEvent *) override
 
bool ignorePress () const
 
void setup ()
 
void _setIcon (const String &icon, bool force=false)
 
void updateFont ()
 
void _defaultRender (QStylePainter *p, QStyleOptionToolButton *tool_button, QIcon::State state, QIcon::Mode mode, bool draw_backgound, bool is_default)
 

Protected Attributes

std::function< void(Button *)> m_on_click = nullptr
 
std::function< void(Button *, bool hovering)> m_on_hover = nullptr
 
std::function< void(Button *, bool pressing)> m_on_press = nullptr
 
QTResourceListenerm_icon_theme_listener = nullptr
 
ButtonDialogm_dialog = nullptr
 
QPointer< QWidget > m_menu_dialog = nullptr
 
TranslatedString m_title
 
TranslatedString m_disabled_tooltip
 
TranslatedString m_enabled_tooltip
 
String m_icon
 
String m_current_icon
 
String m_hover_icon
 
String m_checked_icon
 
String m_sound
 
Time m_last_click_time = Time(0)
 
TimeSpan m_click_cooldown = TimeSpan(0.1)
 
fltp04 m_icon_size_multiplier = 1.0f
 
uint04 m_margin = Constant<uint04>::NaN
 
fltp04 m_hover_icon_size_multiplier = Constant<fltp04>::NaN
 
fltp04 m_progress = Constant<fltp04>::NaN
 
fltp04 m_background_opacity = 1.0f
 
ButtonState m_state = ButtonState::e_large
 
bool m_ignore_clicks = false
 
bool m_fixed_state_requested = false
 
bool m_has_custom_background_color = false
 
bool m_focus_on_press = true
 
Qt::Alignment m_alignment
 
RGBColor m_icon_color
 
QPushButton * m_push_button = nullptr
 
bool m_is_default_button = false
 
bool m_is_auto_default_button = false
 
fltp04 m_font_multiplier = 1.0f
 
bool m_is_bold = false
 

Friends

class HoverButtonIconWatch
 

Member Enumeration Documentation

◆ ButtonState

Enumerator
e_large 
e_medium 
e_medium_centered 
e_small 
e_circular 
e_circular_small 
e_push_button 
e_none 

Constructor & Destructor Documentation

◆ Button() [1/7]

Button ( QWidget * parent = nullptr)

◆ Button() [2/7]

Button ( ButtonState state,
QWidget * parent = nullptr )

◆ Button() [3/7]

Button ( const TranslatedString & name,
const String & icon = "",
QWidget * parent = nullptr )

◆ Button() [4/7]

Button ( const std::function< void(Button *)> & on_click,
QWidget * parent = nullptr )

◆ Button() [5/7]

Button ( const TranslatedString & name,
const std::function< void(Button *)> & on_click,
QWidget * parent = nullptr )

◆ Button() [6/7]

Button ( const TranslatedString & name,
const String & icon,
const std::function< void(Button *)> & on_click,
QWidget * parent = nullptr )

◆ Button() [7/7]

Button ( const TranslatedString & name,
const String & icon,
TooltipType tooltip,
const std::function< void(Button *)> & on_click,
QWidget * parent = nullptr )

◆ ~Button()

~Button ( )

Member Function Documentation

◆ _defaultRender()

void _defaultRender ( QStylePainter * p,
QStyleOptionToolButton * tool_button,
QIcon::State state,
QIcon::Mode mode,
bool draw_backgound,
bool is_default )
protected

◆ _setIcon()

void _setIcon ( const String & icon,
bool force = false )
protected

◆ autoWrapText()

QString autoWrapText ( const QFontMetrics & metrics)
protected

◆ buttonState()

ButtonState buttonState ( ) const
inline

◆ clearBackgroundColor()

void clearBackgroundColor ( )

◆ copyButtonFrom()

void copyButtonFrom ( Button * button)

◆ enterEvent()

void enterEvent ( ButtonEnterEvent * e)
override

◆ event()

bool event ( QEvent * e)
override

◆ eventFilter()

bool eventFilter ( QObject * watched,
QEvent * event )
override

◆ iconName()

const String & iconName ( ) const

◆ ignorePress()

bool ignorePress ( ) const
protected

◆ leaveEvent()

void leaveEvent ( QEvent * e)
override

◆ menu()

QMenu * menu ( ) const

◆ minimumSizeHint()

QSize minimumSizeHint ( ) const
override

◆ mousePressEvent()

void mousePressEvent ( QMouseEvent * event)
overrideprotected

◆ mouseReleaseEvent()

void mouseReleaseEvent ( QMouseEvent * event)
overrideprotected

◆ onButtonClickSlot

void onButtonClickSlot ( )
protectedslot

◆ onButtonPressSlot

void onButtonPressSlot ( )
protectedslot

◆ onButtonReleaseSlot

void onButtonReleaseSlot ( )
protectedslot

◆ paintEvent()

void paintEvent ( QPaintEvent * event)
override

◆ requestButtonState()

bool requestButtonState ( ButtonState state)

◆ requestFixedState()

void requestFixedState ( bool fixed_state)

◆ scaledIconSize()

int scaledIconSize ( ) const

◆ setAlignment()

void setAlignment ( Qt::Alignment m_alignment)

◆ setAutoDefault()

void setAutoDefault ( bool is_auto_default)

◆ setBackgroundColor()

void setBackgroundColor ( const RGBColor & color,
bool update_foreground = true )

◆ setBackgroundOpacity()

void setBackgroundOpacity ( fltp04 background_opacity)

◆ setBold()

void setBold ( bool is_bold)

◆ setButtonDialog()

void setButtonDialog ( ButtonDialog * dialog)

◆ setButtonState()

void setButtonState ( ButtonState state)

◆ setCheckable()

void setCheckable ( bool checkable)

◆ setChecked()

void setChecked ( bool checked)

◆ setCheckedIconName()

void setCheckedIconName ( const String & icon)

◆ setClickCooldown()

void setClickCooldown ( const TimeSpan & span)

◆ setDefault()

void setDefault ( bool is_default)

◆ setDisabledToolTip()

void setDisabledToolTip ( const TranslatedString & tooltip)

◆ setFlat()

void setFlat ( bool is_flat)

◆ setFocusOnPress()

void setFocusOnPress ( bool focus_on_press)

◆ setFontMultiplier()

void setFontMultiplier ( fltp04 font_multiplier)

◆ setFunction()

void setFunction ( const std::function< void(Button *)> & on_click)
inline

◆ setHoverFunction()

void setHoverFunction ( const std::function< void(Button *, bool hovering)> & on_hover)
inline

◆ setHoverIconName()

void setHoverIconName ( const String & icon)

◆ setHoverIconSizeMultiplier()

void setHoverIconSizeMultiplier ( fltp04 icon_size_multiplier)

◆ setIcon()

void setIcon ( const QIcon & icon)

◆ setIconColor()

void setIconColor ( const RGBColor & color)

◆ setIconName()

void setIconName ( const String & icon)

◆ setIconSize()

void setIconSize ( int size)

◆ setIconSizeMultiplier()

void setIconSizeMultiplier ( fltp04 icon_size_multiplier)

◆ setIgnoreClicks()

void setIgnoreClicks ( bool ignore_clicks)
inline

◆ setMargin()

void setMargin ( uint04 margin)

◆ setMenu()

void setMenu ( QMenu * menu)

◆ setMenuDialog()

void setMenuDialog ( QWidget * widget)

◆ setPressFunction()

void setPressFunction ( const std::function< void(Button *, bool hovering)> & on_press)
inline

◆ setProgressPercent()

void setProgressPercent ( fltp04 progress)

◆ setSound()

void setSound ( const String & sound)

◆ setText()

void setText ( const QString & text)

◆ setTitle()

void setTitle ( const TranslatedString & title)

◆ setToolTip() [1/4]

void setToolTip ( const QString & tip)

◆ setToolTip() [2/4]

void setToolTip ( const TranslatedString & enabled_tooltip,
const TranslatedString & disabled_tooltip )

◆ setToolTip() [3/4]

void setToolTip ( const TranslatedString & tooltip)

◆ setToolTip() [4/4]

void setToolTip ( TooltipType type)

◆ setup() [1/7]

void setup ( )
protected

◆ setup() [2/7]

void setup ( ApplicationOption< bool > & checked_var)

◆ setup() [3/7]

void setup ( const TranslatedString & name,
const String & icon,
ApplicationOption< bool > & checked_var )

◆ setup() [4/7]

void setup ( const TranslatedString & name,
const String & icon,
const std::function< void(Button *)> & on_click )

◆ setup() [5/7]

void setup ( const TranslatedString & name,
const String & icon,
Resource< bool > & checked_var )

◆ setup() [6/7]

void setup ( const TranslatedString & name,
const String & icon,
TooltipType tooltip,
const std::function< void(Button *)> & on_click )

◆ setup() [7/7]

void setup ( GenericOption & checked_var)

◆ showPopupMenu()

void showPopupMenu ( QWidget * widget,
bool is_popup = true )

◆ sizeHint()

QSize sizeHint ( ) const
override

◆ styleDefaultIconSize()

int styleDefaultIconSize ( ) const

◆ title()

const TranslatedString & title ( ) const

◆ updateFont()

void updateFont ( )
protected

◆ updateText()

void updateText ( )
protected

◆ updateTooltip()

void updateTooltip ( )
protected

◆ virtualMouseEvent()

void virtualMouseEvent ( QEvent::Type event)

Friends And Related Symbol Documentation

◆ HoverButtonIconWatch

friend class HoverButtonIconWatch
friend

Member Data Documentation

◆ m_alignment

Qt::Alignment m_alignment
protected

◆ m_background_opacity

fltp04 m_background_opacity = 1.0f
protected

◆ m_checked_icon

String m_checked_icon
protected

◆ m_click_cooldown

TimeSpan m_click_cooldown = TimeSpan(0.1)
protected

◆ m_current_icon

String m_current_icon
protected

◆ m_dialog

ButtonDialog* m_dialog = nullptr
protected

◆ m_disabled_tooltip

TranslatedString m_disabled_tooltip
protected

◆ m_enabled_tooltip

TranslatedString m_enabled_tooltip
protected

◆ m_fixed_state_requested

bool m_fixed_state_requested = false
protected

◆ m_focus_on_press

bool m_focus_on_press = true
protected

◆ m_font_multiplier

fltp04 m_font_multiplier = 1.0f
protected

◆ m_has_custom_background_color

bool m_has_custom_background_color = false
protected

◆ m_hover_icon

String m_hover_icon
protected

◆ m_hover_icon_size_multiplier

fltp04 m_hover_icon_size_multiplier = Constant<fltp04>::NaN
protected

◆ m_icon

String m_icon
protected

◆ m_icon_color

RGBColor m_icon_color
protected

◆ m_icon_size_multiplier

fltp04 m_icon_size_multiplier = 1.0f
protected

◆ m_icon_theme_listener

QTResourceListener* m_icon_theme_listener = nullptr
protected

◆ m_ignore_clicks

bool m_ignore_clicks = false
protected

◆ m_is_auto_default_button

bool m_is_auto_default_button = false
protected

◆ m_is_bold

bool m_is_bold = false
protected

◆ m_is_default_button

bool m_is_default_button = false
protected

◆ m_last_click_time

Time m_last_click_time = Time(0)
protected

◆ m_margin

uint04 m_margin = Constant<uint04>::NaN
protected

◆ m_menu_dialog

QPointer<QWidget> m_menu_dialog = nullptr
protected

◆ m_on_click

std::function<void(Button*)> m_on_click = nullptr
protected

◆ m_on_hover

std::function<void(Button*, bool hovering)> m_on_hover = nullptr
protected

◆ m_on_press

std::function<void(Button*, bool pressing)> m_on_press = nullptr
protected

◆ m_progress

fltp04 m_progress = Constant<fltp04>::NaN
protected

◆ m_push_button

QPushButton* m_push_button = nullptr
protected

◆ m_sound

String m_sound
protected

◆ m_state

ButtonState m_state = ButtonState::e_large
protected

◆ m_title

TranslatedString m_title
protected

◆ s_default_sound

String s_default_sound = "tap-warm"
static

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