NDEVR
API Documentation

A Button that toggles between on and off. More...

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

Public Member Functions

 Toggle (const std::function< void(Button *)> &on_click)
 Constructs a Toggle with a click callback.
 Toggle (const TranslatedString &name, const std::function< void(Button *)> &on_click)
 Constructs a Toggle with a label and click callback.
 Toggle (const TranslatedString &name, const StringView &icon, const std::function< void(Button *)> &on_click)
 Constructs a Toggle with a label, icon, and click callback.
 Toggle (const TranslatedString &name, const StringView &icon, Resource< bool > &on_click)
 Constructs a Toggle bound to a boolean Resource.
 Toggle (QWidget *parent=nullptr)
 Constructs a Toggle with an optional parent widget.
QSize minimumSizeHint () const override
 Returns the minimum recommended size for the toggle widget.
float offset () const
 Returns the current horizontal offset of the slider knob.
void setOffset (float o)
 Sets the horizontal offset of the slider knob and triggers a repaint.
QSize sizeHint () const override
 Returns the recommended size for the toggle widget.
Public Member Functions inherited from Button
 Button (ButtonState state, QWidget *parent=nullptr)
 Constructs a Button with a specified visual state.
 Button (const std::function< void(Button *)> &on_click, QWidget *parent=nullptr)
 Constructs a Button with a click callback.
 Button (const TranslatedString &name, const std::function< void(Button *)> &on_click, QWidget *parent=nullptr)
 Constructs a Button with a title and click callback.
 Button (const TranslatedString &name, const StringView &icon, const std::function< void(Button *)> &on_click, QWidget *parent=nullptr)
 Constructs a Button with a title, icon, and click callback.
 Button (const TranslatedString &name, const StringView &icon, TooltipType tooltip, const std::function< void(Button *)> &on_click, QWidget *parent=nullptr)
 Constructs a Button with a title, icon, tooltip type, and click callback.
 Button (const TranslatedString &name, const StringView &icon=StringView(), QWidget *parent=nullptr)
 Constructs a Button with a title and optional icon.
 Button (QWidget *parent=nullptr)
 Constructs a Button with an optional parent widget.
 ~Button ()
 Destroys the Button and releases resources.
ButtonState buttonState () const
 Returns the current visual state of the button.
void clearBackgroundColor ()
 Clears any custom background color, reverting to the theme default.
void copyButtonFrom (Button *button)
 Copies all visual properties and settings from another Button.
void enterEvent (ButtonEnterEvent *e) override
 Handles the mouse enter event.
bool event (QEvent *e) override
 Processes a generic event, handling theme and style changes.
bool eventFilter (QObject *watched, QEvent *event) override
 Filters events for watched objects, used for push button event forwarding.
const StringiconName () const
 Returns the current icon resource name.
void leaveEvent (QEvent *e) override
 Handles the mouse leave event.
QMenu * menu () const
 Returns the dropdown menu attached to this button, if any.
QSize minimumSizeHint () const override
 Returns the minimum recommended size for the button.
void paintEvent (QPaintEvent *event) override
 Handles the paint event, rendering the button with its current style and state.
bool requestButtonState (ButtonState state)
 Requests that the button adopt the specified state, returning whether it was accepted.
void requestFixedState (bool fixed_state)
 Requests that the button maintain a fixed state, preventing automatic state changes.
int scaledIconSize () const
 Returns the icon size after applying the current size multiplier.
void setAlignment (Qt::Alignment m_alignment)
 Sets the text alignment within the button.
void setAutoDefault (bool is_auto_default)
 Sets whether the button is an auto-default button in dialogs.
void setBackgroundColor (const RGBColor &color, bool update_foreground=true)
 Sets a custom background color for the button.
void setBackgroundOpacity (fltp04 background_opacity)
 Sets the opacity of the button background (0.0 = transparent, 1.0 = opaque).
void setBold (bool is_bold)
 Sets whether the button text is rendered in bold.
void setButtonDialog (ButtonDialog *dialog)
 Associates a ButtonDialog with this button for toggle-controlled dialog visibility.
void setButtonState (ButtonState state)
 Sets the visual state/style of the button.
void setCheckable (bool checkable)
 Sets whether the button supports a checked/unchecked toggle state.
void setChecked (bool checked)
 Sets the checked state of the button.
void setCheckedIconName (const StringView &icon)
 Sets an alternate icon displayed when the button is checked.
void setClickCooldown (const TimeSpan &span)
 Sets the minimum time between successive click events.
void setDefault (bool is_default)
 Sets whether the button is the default button in dialogs.
void setDisabledToolTip (const TranslatedString &tooltip)
 Sets the tooltip shown when the button is disabled.
void setFlat (bool is_flat)
 Sets whether the button has a flat (borderless) appearance.
void setFocusOnPress (bool focus_on_press)
 Sets whether the button should receive focus when pressed.
void setFontMultiplier (fltp04 font_multiplier)
 Sets a multiplier for the button's font size.
void setForErrorOrSuccess (bool is_error, bool is_success)
 Sets the button's visual state to indicate an error or success condition.
void setFunction (const std::function< void(Button *)> &on_click)
 Sets the callback function invoked when the button is clicked.
void setHoverFunction (const std::function< void(Button *, bool hovering)> &on_hover)
 Sets a callback function invoked when the mouse enters or leaves the button.
void setHoverIconName (const StringView &icon)
 Sets an alternate icon displayed when the button is hovered.
void setHoverIconSizeMultiplier (fltp04 icon_size_multiplier)
 Sets a multiplier for the icon size when the button is hovered.
void setIcon (const QIcon &icon)
 Sets the icon directly from a QIcon object.
void setIconColor (const RGBColor &color)
 Sets a custom color for the button icon.
void setIconName (const StringView &icon)
 Sets the icon by resource name, triggering an icon update.
void setIconSize (int size)
 Sets the icon size in pixels, overriding automatic scaling.
void setIconSizeMultiplier (fltp04 icon_size_multiplier)
 Sets a multiplier for the default icon size.
void setIgnoreClicks (bool ignore_clicks)
 Sets whether click events should be ignored.
void setLogOutput (bool log_output)
 Enables or disables logging of button click events.
void setMargin (uint04 margin)
 Sets the margin around the button content in pixels.
void setMenu (QMenu *menu)
 Sets a dropdown QMenu to display when the button is clicked.
void setMenuDialog (QWidget *widget)
 Sets a widget to be shown as a popup menu when the button is clicked.
void setPressFunction (const std::function< void(Button *, bool hovering)> &on_press)
 Sets a callback function invoked when the button is pressed or released.
void setProgressPercent (fltp04 progress)
 Sets a progress percentage to display as an overlay on the button.
void setSound (const StringView &sound)
 Sets the sound played when the button is clicked.
void setText (const QString &text)
 Sets the display text of the button (Qt override).
void setTitle (const TranslatedString &title)
 Sets the display title of the button.
void setToolTip (const QString &tip)
 Sets the tooltip text from a QString.
void setToolTip (const TranslatedString &enabled_tooltip, const TranslatedString &disabled_tooltip)
 Sets separate tooltips for the enabled and disabled states.
void setToolTip (const TranslatedString &tooltip)
 Sets the tooltip text from a TranslatedString.
void setToolTip (TooltipType type)
 Sets the tooltip from a predefined tooltip type.
void setup (ApplicationOption< bool > &checked_var)
 Sets up the button as a checkable toggle bound to an ApplicationOption<bool>.
void setup (const TranslatedString &name, const StringView &icon, ApplicationOption< bool > &checked_var)
 Sets up the button with a name, icon, and ApplicationOption<bool> binding.
void setup (const TranslatedString &name, const StringView &icon, const std::function< void(Button *)> &on_click)
 Sets up the button with a name, icon, and click callback.
void setup (const TranslatedString &name, const StringView &icon, Resource< bool > &checked_var)
 Sets up the button as a checkable toggle bound to a bool Resource.
void setup (const TranslatedString &name, const StringView &icon, TooltipType tooltip, const std::function< void(Button *)> &on_click)
 Sets up the button with a name, icon, tooltip type, and click callback.
void setup (GenericOption &checked_var)
 Sets up the button from a GenericOption, using its name, icon, and value.
void showPopupMenu (QWidget *widget, bool is_popup=true)
 Shows a popup menu widget anchored to this button.
void showToolTip () const
 Programmatically shows the button's tooltip at the button's position.
QSize sizeHint () const override
 Returns the recommended size for the button.
int styleDefaultIconSize () const
 Returns the default icon size as determined by the current style.
const TranslatedStringtitle () const
 Returns the translated title of the button.
void virtualMouseEvent (QEvent::Type event)
 Simulates a mouse event of the given type on the button.

Protected Member Functions

void mouseReleaseEvent (QMouseEvent *) override
 Handles mouse release to toggle the checked state.
void onChecked (bool checked)
 Slot invoked when the checked state changes, triggers the slide animation.
void paintEvent (QPaintEvent *) override
 Custom paint handler that draws the toggle slider in touch mode.
void setupToggle ()
 Performs initial configuration of the toggle appearance and behavior.
int sliderHeight () const
 Returns the height of the slider track in pixels.
QRect sliderRect () const
 Returns the bounding rectangle of the slider knob.
int sliderWidth () const
 Returns the width of the slider track in pixels.
int spacing () const
 Returns the spacing between the slider and the label in pixels.
Protected Member Functions inherited from Button
void mousePressEvent (QMouseEvent *) override
 Handles the mouse press event.
void mouseReleaseEvent (QMouseEvent *) override
 Handles the mouse release event for click detection.
void onButtonClickSlot ()
 Slot invoked when the button is clicked, executing the click callback.
void onButtonPressSlot ()
 Slot invoked when the button is pressed down.
void onButtonReleaseSlot ()
 Slot invoked when the button is released.

Additional Inherited Members

Public Types inherited from Button
enum  ButtonState {
  e_large , e_medium , e_medium_centered , e_small ,
  e_circular , e_circular_small , e_push_button , e_none
}
 Defines the visual size and style of the button. More...
Static Public Attributes inherited from Button
static String s_default_sound
 The default sound played by all buttons on click.
Protected Attributes inherited from Button
Qt::Alignment m_alignment
 Text alignment within the button.
fltp04 m_background_opacity = 1.0f
 Opacity of the button background.
String m_checked_icon
 Icon resource name displayed when checked.
TimeSpan m_click_cooldown = TimeSpan(0.1)
 Minimum duration between successive clicks.
String m_current_icon
 The currently displayed icon resource name.
ButtonDialogm_dialog = nullptr
 Associated ButtonDialog for toggle-controlled visibility.
TranslatedString m_disabled_tooltip
 Tooltip shown when the button is disabled.
TranslatedString m_enabled_tooltip
 Tooltip shown when the button is enabled.
bool m_fixed_state_requested = false
 Whether the button state has been locked.
bool m_focus_on_press = true
 Whether the button receives focus when pressed.
fltp04 m_font_multiplier = 1.0f
 Multiplier applied to the default font size.
bool m_has_custom_background_color = false
 Whether a custom background color has been set.
String m_hover_icon
 Icon resource name displayed on hover.
fltp04 m_hover_icon_size_multiplier = Constant<fltp04>::Invalid
 Icon size multiplier when hovered, or Invalid for default.
String m_icon
 The requested icon resource name.
RGBColor m_icon_color
 Custom icon color override.
fltp04 m_icon_size_multiplier = 1.0f
 Multiplier applied to the default icon size.
QTResourceListenerm_icon_theme_listener = nullptr
 Listener for icon theme changes.
bool m_ignore_clicks = false
 Whether to ignore click events.
bool m_is_auto_default_button = false
 Whether this is an auto-default button in a dialog.
bool m_is_bold = false
 Whether the button text is bold.
bool m_is_default_button = false
 Whether this is the default button in a dialog.
Time m_last_click_time = Time(0)
 Timestamp of the most recent click event.
bool m_log_output = true
 Whether click events are logged.
uint04 m_margin = Constant<uint04>::Invalid
 Custom margin around button content, or Invalid for default.
QPointer< QWidget > m_menu_dialog = nullptr
 Widget shown as a popup menu on click.
std::function< void(Button *)> m_on_click = nullptr
 Callback invoked on button click.
std::function< void(Button *, bool hovering)> m_on_hover = nullptr
 Callback invoked on hover state change.
std::function< void(Button *, bool pressing)> m_on_press = nullptr
 Callback invoked on press state change.
fltp04 m_progress = Constant<fltp04>::Invalid
 Progress overlay value (0.0-1.0), or Invalid to hide.
QPushButton * m_push_button = nullptr
 Internal QPushButton used for push button state rendering.
String m_sound
 Sound resource name played on click.
ButtonState m_state = ButtonState::e_large
 The current visual state/style of the button.
TranslatedString m_title
 The display title of the button.

Detailed Description

A Button that toggles between on and off.


In desktop mode this looks like a checkbox and in touch mode has a distinct look and feel.

Definition at line 49 of file Toggle.h.

Constructor & Destructor Documentation

◆ Toggle() [1/5]

Toggle::Toggle ( QWidget * parent = nullptr)

Constructs a Toggle with an optional parent widget.

Parameters
[in]parentThe optional parent widget.

Referenced by DesignObjectToggleWidget::DesignObjectToggleWidget(), and Toggle().

◆ Toggle() [2/5]

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

Constructs a Toggle with a click callback.

Parameters
[in]on_clickThe callback function invoked when the toggle is clicked.

References Button::Button().

◆ Toggle() [3/5]

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

Constructs a Toggle with a label and click callback.

Parameters
[in]nameThe translated display label.
[in]on_clickThe callback function invoked when the toggle is clicked.

References Button::Button().

◆ Toggle() [4/5]

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

Constructs a Toggle with a label, icon, and click callback.

Parameters
[in]nameThe translated display label.
[in]iconThe icon identifier string.
[in]on_clickThe callback function invoked when the toggle is clicked.

References Button::Button().

◆ Toggle() [5/5]

Toggle::Toggle ( const TranslatedString & name,
const StringView & icon,
Resource< bool > & on_click )

Constructs a Toggle bound to a boolean Resource.

Parameters
[in]nameThe translated display label.
[in]iconThe icon identifier string.
[in]on_clickThe boolean Resource to bind to the toggle state.

References Toggle().

Member Function Documentation

◆ minimumSizeHint()

QSize Toggle::minimumSizeHint ( ) const
override

Returns the minimum recommended size for the toggle widget.

Returns
The minimum QSize for layout purposes.

◆ offset()

float Toggle::offset ( ) const
inline

Returns the current horizontal offset of the slider knob.

Returns
The slider position as a float.

Definition at line 84 of file Toggle.h.

◆ onChecked()

void Toggle::onChecked ( bool checked)
protected

Slot invoked when the checked state changes, triggers the slide animation.

Parameters
[in]checkedWhether the toggle is now checked.

◆ setOffset()

void Toggle::setOffset ( float o)
inline

Sets the horizontal offset of the slider knob and triggers a repaint.

Parameters
[in]oThe new slider offset.

Definition at line 89 of file Toggle.h.

◆ sizeHint()

QSize Toggle::sizeHint ( ) const
override

Returns the recommended size for the toggle widget.

Returns
The preferred QSize for layout purposes.

◆ sliderHeight()

int Toggle::sliderHeight ( ) const
protected

Returns the height of the slider track in pixels.

Returns
The slider height.

◆ sliderRect()

QRect Toggle::sliderRect ( ) const
protected

Returns the bounding rectangle of the slider knob.

Returns
The slider knob rectangle.

◆ sliderWidth()

int Toggle::sliderWidth ( ) const
protected

Returns the width of the slider track in pixels.

Returns
The slider width.

◆ spacing()

int Toggle::spacing ( ) const
protected

Returns the spacing between the slider and the label in pixels.

Returns
The spacing value.

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