NDEVR
API Documentation
RandomMessageView

A widget that cycles through randomly selected messages on a timer, displaying them one at a time in a stacked layout with animated transitions. More...

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

Public Member Functions

 RandomMessageView (const RandomMessageGenerator &generator, QWidget *parent=nullptr)
 Constructs a random message view using the given generator.
QLabel * label () const
 Returns the label widget used to display the current message.
void setMessageDuration (TimeSpan span)
 Sets the duration each message is displayed before cycling to the next.
void setMessageGenerator (const RandomMessageGenerator &generator)
 Replaces the message generator used to supply random messages.
Public Member Functions inherited from QCustomStackedWidget
 QCustomStackedWidget (QWidget *parent=nullptr)
 Constructs a stacked widget.
uint04 activeIndex () const
 Returns the index of the currently active (or animating-to) widget.
QWidget * activeWidget () const
 Returns the currently active (or animating-to) widget.
virtual uint04 addWidget (QWidget *w) override
 Adds a widget as a new page in the stacked widget.
uint04 count () const
 Returns the number of pages in the stacked widget.
uint04 currentIndex () const
 Returns the index of the currently displayed page.
QWidget * currentWidget () const
 Returns the currently displayed widget.
bool hasWidget (QWidget *widget) const
 Checks whether the given widget is contained in the stacked widget.
uint04 indexOf (QWidget *widget) const
 Returns the index of the given widget.
void insertWidget (uint04 index, QWidget *w)
 Inserts a widget at a specific index.
void moveContent (uint04 from, uint04 to) override
 Moves a child widget from one index to another.
void removeWidget (QWidget *widget)
 Removes a widget from the stacked widget.
void removeWidget (QWidget *widget, QWidget *slide_in)
 Removes a widget and slides to a replacement widget if it was active.
void setCurrentIndex (uint04 idx)
 Sets the current visible page index without animation.
void slideInAnimation (enum StackAnimationDirection direction=e_automatic, bool cache_in_image=false) override
 Executes the slide animation between the current and next pages.
void slideInAnimation (PopupInfo origin_rect, enum StackAnimationDirection direction=e_automatic, bool cache_in_image=false) override
 Executes the slide animation using popup origin information.
void slideInIdx (uint04 idx, enum StackAnimationDirection direction) override
 Slides to the page at the given index with the specified direction.
void slideInIdx (uint04 idx, int delay_time=0, enum StackAnimationDirection direction=e_automatic) override
 Slides to the page at the given index with animation.
void slideInIdx (uint04 idx, PopupInfo origin_rect, int delay_time=0, enum StackAnimationDirection direction=e_automatic) override
 Slides to the page at the given index with animation and popup origin info.
virtual void slideInNext () override
 Slides to the next page with animation.
virtual void slideInPrev () override
 Slides to the previous page with animation.
void slideInWgt (QWidget *widget, enum StackAnimationDirection direction=e_automatic, bool force_slide=false) override
 Slides to a specific widget with animation.
void swapIndices (uint04 a, uint04 b) override
 Swaps two child widgets at the given indices.
QWidget * widget (uint04 idx) const
 Returns the widget at the given index.
Public Member Functions inherited from QCustomStackedWidgetBase
void animationFinished ()
 Signal emitted when a slide animation completes.
QSize minimumSizeHint () const override
 Returns the minimum recommended size for the stacked widget.
void setAnimation (enum QEasingCurve::Type animationtype)
 Sets the easing curve type used for slide animations.
virtual void setCurrentIdx (uint04 current_index)
 Sets the current visible page index without animation.
void setCustomPixmap (QPixmap *pixmap)
 Sets a custom pixmap to render during slide transitions instead of widget captures.
void setSpeed (int speed)
 Sets the animation duration in milliseconds for slide transitions.
void setVerticalMode (bool vertical=true)
 Enables or disables vertical slide animation mode.
void setWrap (bool wrap)
 Sets whether page navigation wraps around from last to first and vice versa.
QSize sizeHint () const override
 Returns the recommended size for the stacked widget.

Protected Member Functions

void showNewMessageSlot ()
 Slot that selects and displays a new random message.
Protected Member Functions inherited from QCustomStackedWidgetBase
 QCustomStackedWidgetBase (QWidget *parent=nullptr)
 Constructs the stacked widget base.
uint04 activeIndex () const
 Returns the index of the currently active (or animating-to) widget.
QWidget * activeWidget () const
 Returns the currently active (or animating-to) widget.
void animationDoneSlot ()
 Slot called when the slide animation completes to finalize the transition.
double animationPercent () const
 Returns the current animation interpolation percent.
void childDestroyedSlot (QObject *widget)
 Slot called when a child widget is destroyed, to remove it from the page list.
uint04 count () const
 Returns the number of pages in the stacked widget.
uint04 currentIndex () const
 Returns the index of the currently displayed page.
QWidget * currentWidget () const
 Returns the currently displayed widget.
bool eventFilter (QObject *object, QEvent *event) override
 Filters events for child widgets to handle layout and visibility changes.
uint04 indexOf (QWidget *widget) const
 Returns the index of the given widget in the stacked widget.
void insertWidget (uint04 index, QWidget *w)
 Inserts a widget at a specific index in the stacked widget.
void paintEvent (QPaintEvent *) override
 Custom paint event that renders slide transition animations.
void removeWidget (QWidget *widget)
 Removes a widget from the stacked widget.
void removeWidget (QWidget *widget, QWidget *slide_to_if_active)
 Removes a widget and slides to a replacement widget if it was the active page.
void resizeEvent (QResizeEvent *event) override
 Handles resize events to update child widget geometries.
void setAnimationPercent (double animation_percent)
 Sets the current animation interpolation percent for the Q_PROPERTY system.
void showEvent (QShowEvent *event) override
 Handles show events to ensure proper layout of the active widget.
QWidget * widget (uint04 index) const
 Returns the widget at the given index.

Additional Inherited Members

Public Types inherited from QCustomStackedWidgetBase
enum  StackAnimationDirection {
  e_left_to_right , e_right_to_left , e_top_to_bottom , e_bottom_to_top ,
  e_automatic
}
 Defines the direction of slide animations between stacked pages. More...
Static Public Attributes inherited from QCustomStackedWidgetBase
static ApplicationOption< sint04default_stack_animation_speed
 Default time in milliseconds to animate a slide transition.
Protected Attributes inherited from QCustomStackedWidgetBase
double m_animation_percent
 The current animation interpolation percent (0.0 to 1.0).
enum QEasingCurve::Type m_animationtype
 The easing curve type for slide animations.
Buffer< QWidget * > m_child_widgets
 The list of child page widgets.
uint04 m_current_index
 The index of the currently displayed page.
bool m_is_animating
 Whether a slide animation is currently in progress.
uint04 m_last
 The index of the previously displayed page.
int m_last_animation_time
 The duration of the last animation in milliseconds.
QPointer< QPropertyAnimation > m_move_animation
 The property animation driving slide transitions.
uint04 m_next
 The index of the page being animated to.
uint04 m_now
 The index of the currently displayed page during animation.
QPoint m_offset
 The pixel offset used during slide animation rendering.
PopupInfo m_popup_info
 The popup info used for animation origin calculations.
int m_speed
 The animation duration in milliseconds.
bool m_vertical
 Whether slide animations are in vertical mode.
bool m_wrap = false
 Whether page navigation wraps around at boundaries.

Detailed Description

A widget that cycles through randomly selected messages on a timer, displaying them one at a time in a stacked layout with animated transitions.


Definition at line 13 of file RandomMessageView.h.

Constructor & Destructor Documentation

◆ RandomMessageView()

RandomMessageView::RandomMessageView ( const RandomMessageGenerator & generator,
QWidget * parent = nullptr )

Constructs a random message view using the given generator.

Parameters
[in]generatorThe message generator supplying random messages.
[in]parentOptional parent widget.

Member Function Documentation

◆ label()

QLabel * RandomMessageView::label ( ) const
inline

Returns the label widget used to display the current message.

Returns
Pointer to the QLabel.

Definition at line 38 of file RandomMessageView.h.

◆ setMessageDuration()

void RandomMessageView::setMessageDuration ( TimeSpan span)

Sets the duration each message is displayed before cycling to the next.

Parameters
[in]spanThe display duration per message.

◆ setMessageGenerator()

void RandomMessageView::setMessageGenerator ( const RandomMessageGenerator & generator)

Replaces the message generator used to supply random messages.

Parameters
[in]generatorThe new message generator.

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