UiUiUi
A user interface library for micro controller sketches based on U8g2
Public Member Functions | Protected Attributes | List of all members
UIWidgetGroup Class Reference

Main abstraction of a group of interface widgets. More...

#include <UIWidgetGroup.h>

Inheritance diagram for UIWidgetGroup:
Inheritance graph
[legend]
Collaboration diagram for UIWidgetGroup:
Collaboration graph
[legend]

Public Member Functions

 UIWidgetGroup (UIWidget *firstChild, UIWidget *next=nullptr)
 Create a widget group with a linked list of sub-widgets and a potential successor.
 
UIArearender (U8G2 *display, bool force)
 Default implementation of rendering a widget group is to render all of its sub-widgets. More...
 
virtual void childNeedsRendering (UIWidget *child)
 Called by any child of this group to indicate that it wants to be rendered. More...
 
- Public Member Functions inherited from UIWidget
UISize preferredSize (U8G2 *display)
 Return the preferred size of this widget, will be called before a call to layout(). More...
 
virtual void layout (U8G2 *display, UIArea *area)
 Layout widget in the given rectanglar area, will be called before first call to render(). More...
 
virtual UIArearender (U8G2 *display, bool force)=0
 Render component in the space given in layout(). More...
 
virtual void setParent (UIParent *parent)
 Set the parent widget group (if it exists). More...
 
virtual void childNeedsRendering (UIWidget *child)=0
 Called by any child of this group to indicate that it wants to be rendered. More...
 

Protected Attributes

UIWidgetfirstChild
 The first of the widgets grouped by this widget group.
 
bool renderChildren
 Flag whether any child of this group needs to be rendered.
 
- Protected Attributes inherited from UIWidget
UIArea dim
 Actual area of this widget, set in layout().
 
UIParentparent
 Reference to the group this widget is connected to.
 

Additional Inherited Members

- Public Attributes inherited from UIWidget
UIWidgetnext
 Pointer to the next widget on the same level.
 
- Protected Member Functions inherited from UIWidget
 UIWidget (UIWidget *next=nullptr)
 Initialize this widget and potentially set its successor.
 
void clearBox (U8G2 *display, UIArea *dimm)
 Clear the given area.
 
void clearFull (U8G2 *display)
 Clear the full area of this widget.
 
void clip (U8G2 *display)
 Set U8g2's clip window to the area of this widget, should be called from render().
 
virtual void computePreferredSize (U8G2 *display, UISize *preferredSize)=0
 Store preferred size of this widget into the preferredSize reference. More...
 
void signalNeedsRendering ()
 Called internally: Signals to parent that this widget needs to be rendered.
 

Detailed Description

Main abstraction of a group of interface widgets.

A widget group organizes a number of widgets in a certain way. These organized widgets form a linked list via their "next" pointers. The widget group gets the first of these widgets as their "first widget".

As a widget group itself is also a widget, it has itself potentially a successor which allows forming another widget group on a "higher level".

Widget groups are the key to create complex interfaces with UiUiUi. Be sure to understand the concept behind them.

As with the UIWidget class, UIWidgetGroup itself only implements a tiny portion of the business logic. The derived classes actually create a semantic onto the grouped widgets, e.g. aligning them horizontally or vertically.

Member Function Documentation

◆ childNeedsRendering()

void UIWidgetGroup::childNeedsRendering ( UIWidget child)
virtual

Called by any child of this group to indicate that it wants to be rendered.

Implements UIParent.

Reimplemented in UICards.

◆ render()

UIArea * UIWidgetGroup::render ( U8G2 *  display,
bool  force 
)
virtual

Default implementation of rendering a widget group is to render all of its sub-widgets.

Implements UIWidget.


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