Skip to main content

SwipeContainer

touchgfx/containers/SwipeContainer.hpp

A SwipeContainer is a Container with a horizontally laid out list of identically sized Drawables. The bottom of the SwipeContainer shows a page indicator to indicate the position in the horizontal list of items in the SwipeContainer.

See: ListLayout

Inherits from: Container, Drawable

Public Functions

virtual voidadd(Drawable & page)
Adds a page to the container.
uint8_tgetAnimationDuration() const
Gets the animation duration for swiping with button.
uint8_tgetNumberOfPages()
Gets number of pages.
uint8_tgetSelectedPage() const
Gets the currently selected page.
voidgoNextPage(uint8_t duration =20)
Go to next page with animation.
voidgoPreviousPage(uint8_t duration =20)
Go to previous page with animation.
voidgoToPage(uint8_t page, uint8_t duration =20)
Go to the indicated page with animation.
virtual voidhandleClickEvent(const ClickEvent & event)
Defines the event handler interface for ClickEvents.
virtual voidhandleDragEvent(const DragEvent & event)
Defines the event handler interface for DragEvents.
virtual voidhandleGestureEvent(const GestureEvent & event)
Defines the event handler interface for GestureEvents.
virtual voidhandleTickEvent()
Called periodically by the framework if the Drawable instance has subscribed to timer ticks.
virtual voidremove(Drawable & page)
Removes the page from the container.
voidsetAnimationDuration(uint8_t newDuration)
Sets the animation duration for swiping with button.
voidsetEndSwipeElasticWidth(uint16_t width)
When dragging either one of the end pages a part of the background will become visible until the user stop dragging and the end page swipes back to its position.
voidsetPageIndicatorBitmaps(const Bitmap & normalPage, const Bitmap & highlightedPage)
Sets the bitmaps that are used by the page indicator.
voidsetPageIndicatorCenteredX()
Sets the page indicator centered inside the SwipeContainer without changing the y position.
voidsetPageIndicatorCenteredX(int16_t x)
Sets the x position of the page indicator without changing the y position.
voidsetPageIndicatorXY(int16_t x, int16_t y)
Sets the x and y position of the page indicator.
voidsetPageIndicatorXYWithCenteredX(int16_t x, int16_t y)
Sets the x and y position of the page indicator.
voidsetSelectedPage(uint8_t pageIndex)
Sets the selected page.
virtual voidsetSwipeCutoff(uint16_t cutoff)
Set the swipe cutoff which indicates how far you should drag a page before it results in a page change.
SwipeContainer()
virtual ~SwipeContainer()

Additional inherited members

Public Functions inherited from Container

Container()
virtual boolcontains(const Drawable & d)
Query if a given Drawable has been added directly to this Container.
virtual voiddraw(const Rect & invalidatedArea) const
Draw this drawable.
virtual voidforEachChild(GenericCallback< Drawable & > * function)
Executes the specified callback function for each child in the Container.
virtual Drawable *getFirstChild()
Obtain a pointer to the first child of this container.
virtual voidgetLastChild(int16_t x, int16_t y, Drawable ** last)
Gets the last child in the list of children in this Container.
virtual voidgetLastChildNear(int16_t x, int16_t y, Drawable * last, int16_t fingerAdjustmentX, int16_t * fingerAdjustmentY)
Works similar to getLastChild() but also considers the current set finger size in HAL.
virtual RectgetSolidRect() const
Get (the largest possible) rectangle that is guaranteed to be solid (opaque).
virtual voidinsert(Drawable * previous, Drawable & d)
Inserts a Drawable after a specific child node.
virtual voidremoveAll()
Removes all children in the Container by resetting their parent and sibling pointers.
virtual voidunlink()
Removes all children by unlinking the first child.

Protected Functions inherited from Container

virtual RectgetContainedArea() const
Gets a rectangle describing the total area covered by the children of this container.
virtual voidmoveChildrenRelative(int16_t deltaX, int16_t deltaY)
Calls moveRelative on all children.

Protected Attributes inherited from Container

Drawable *firstChild
Pointer to the first child of this container. Subsequent children can be found through firstChild's nextSibling.

Public Functions inherited from Drawable

voidcenter()
Centers the Drawable inside its parent.
voidcenterX()
Center the Drawable horizontally inside its parent.
voidcenterY()
Center the Drawable vertically inside its parent.
virtual voidchildGeometryChanged()
This function can be called on parent nodes to signal that the size or position of one or more of its children has changed.
virtual voiddraw(const Rect & invalidatedArea) const =0
Draw this drawable.
Drawable()
Initializes a new instance of the Drawable class.
voiddrawToDynamicBitmap(BitmapId id)
Render the Drawable object into a dynamic bitmap.
voidexpand(int margin =0)
Expands the Drawable to have the same size as its parent with a given margin around the edge.
RectgetAbsoluteRect() const
Helper function for obtaining the rectangle this Drawable covers, expressed in absolute coordinates.
virtual Drawable *getFirstChild()
Function for obtaining the first child of this drawable if any.
int16_tgetHeight() const
Gets the height of this Drawable.
virtual voidgetLastChild(int16_t x, int16_t y, Drawable ** last) =0
Function for obtaining the the last child of this drawable that intersects with the specified point.
Drawable *getNextSibling()
Gets the next sibling node.
Drawable *getParent() const
Returns the parent node.
const Rect &getRect() const
Gets the rectangle this Drawable covers, in coordinates relative to its parent.
virtual RectgetSolidRect() const =0
Get (the largest possible) rectangle that is guaranteed to be solid (opaque).
virtual RectgetSolidRectAbsolute()
Helper function for obtaining the largest solid rect (as implemented by getSolidRect()) expressed in absolute coordinates.
virtual voidgetVisibleRect(Rect & rect) const
Function for finding the visible part of this drawable.
int16_tgetWidth() const
Gets the width of this Drawable.
int16_tgetX() const
Gets the x coordinate of this Drawable, relative to its parent.
int16_tgetY() const
Gets the y coordinate of this Drawable, relative to its parent.
virtual voidinvalidate() const
Tell the framework that this entire Drawable needs to be redrawn.
virtual voidinvalidateContent() const
Tell the framework that the contents of the Drawable needs to be redrawn.
virtual voidinvalidateRect(Rect & invalidatedArea) const
Request that a region of this drawable is redrawn.
boolisTouchable() const
Gets whether this Drawable receives touch events or not.
boolisVisible() const
Gets whether this Drawable is visible.
virtual voidmoveRelative(int16_t x, int16_t y)
Moves the drawable.
virtual voidmoveTo(int16_t x, int16_t y)
Moves the drawable.
virtual voidsetHeight(int16_t height)
Sets the height of this drawable.
voidsetPosition(const Drawable & drawable)
Sets the position of the Drawable to the same as the given Drawable.
voidsetPosition(int16_t x, int16_t y, int16_t width, int16_t height)
Sets the size and position of this Drawable, relative to its parent.
voidsetTouchable(bool touch)
Controls whether this Drawable receives touch events or not.
voidsetVisible(bool vis)
Controls whether this Drawable should be visible.
virtual voidsetWidth(int16_t width)
Sets the width of this drawable.
voidsetWidthHeight(const Bitmap & bitmap)
Sets the dimensions (width and height) of the Drawable without changing the x and y coordinates).
voidsetWidthHeight(const Drawable & drawable)
Sets the dimensions (width and height) of the Drawable without changing the x and y coordinates).
voidsetWidthHeight(const Rect & other)
Sets the dimensions (width and height) of the Drawable without changing the x and y coordinates).
voidsetWidthHeight(int16_t width, int16_t height)
Sets the dimensions (width and height) of the Drawable without changing the x and y coordinates).
virtual voidsetX(int16_t x)
Sets the x coordinate of this Drawable, relative to its parent.
voidsetXY(const Drawable & drawable)
Sets the x and y coordinates of this Drawable.
voidsetXY(int16_t x, int16_t y)
Sets the x and y coordinates of this Drawable, relative to its parent.
virtual voidsetY(int16_t y)
Sets the y coordinate of this Drawable, relative to its parent.
virtual voidtranslateRectToAbsolute(Rect & r) const
Helper function for converting a region of this Drawable to absolute coordinates.
virtual ~Drawable()
Finalizes an instance of the Drawable class.

Protected Attributes inherited from Drawable

Drawable *nextSibling
Pointer to the next Drawable.
Drawable *parent
Pointer to this drawable's parent.
Rectrect
The coordinates of this Drawable, relative to its parent.
booltouchable
True if this drawable should receive touch events.
boolvisible
True if this drawable should be drawn.

Public Functions Documentation

add

virtual void add(Drawable &page)

Adds a page to the container.

Parameters:
pageThe page to add.
Note

All pages must have the same width and height.

Reimplements: touchgfx::Container::add

getAnimationDuration

uint8_t getAnimationDuration()const

Gets the animation duration for swiping with button.

Returns:

the animation's duration

See also:

getNumberOfPages

uint8_t getNumberOfPages()

Gets number of pages.

Returns:

The number of pages.

getSelectedPage

uint8_t getSelectedPage()const

Gets the currently selected page.

Returns:

Zero-based index of the current page. Rage from 0 to numberOfPages-1.

See also:

goNextPage

void goNextPage(uint8_tduration =20)

Go to next page with animation.

Parameters:
durationduration of the swiping animation when using button.
Note

next page selected

goPreviousPage

void goPreviousPage(uint8_tduration =20)

Go to previous page with animation.

Parameters:
durationduration of the swiping animation when using button.
Note

previous page selected

goToPage

void goToPage(uint8_tpage ,
uint8_tduration =20
)

Go to the indicated page with animation.

Parameters:
pagethe page to go to.
durationduration of the swiping animation when using button.
Note

previous page selected

handleClickEvent

virtual void handleClickEvent(const ClickEvent &event)

Defines the event handler interface for ClickEvents.

The default implementation ignores the event. The event is only received if the Drawable is touchable and visible.

Parameters:
eventThe ClickEvent received from the HAL.

Reimplements: touchgfx::Drawable::handleClickEvent

handleDragEvent

virtual void handleDragEvent(const DragEvent &event)

Defines the event handler interface for DragEvents.

The default implementation ignores the event. The event is only received if the drawable is touchable and visible.

Parameters:
eventThe DragEvent received from the HAL.

Reimplements: touchgfx::Drawable::handleDragEvent

handleGestureEvent

virtual void handleGestureEvent(const GestureEvent &event)

Defines the event handler interface for GestureEvents.

The default implementation ignores the event. The event is only received if the Drawable is touchable and visible.

Parameters:
eventThe GestureEvent received from the HAL.

Reimplements: touchgfx::Drawable::handleGestureEvent

handleTickEvent

virtual void handleTickEvent()

Called periodically by the framework if the Drawable instance has subscribed to timer ticks.

See also:

Reimplements: touchgfx::Drawable::handleTickEvent

remove

virtual void remove(Drawable &page)

Removes the page from the container.

Parameters:
pageThe page to remove.
Note

This is safe to call even if page is not a page (in which case nothing happens).

Reimplements: touchgfx::Container::remove

setAnimationDuration

void setAnimationDuration(uint8_tnewDuration)

Sets the animation duration for swiping with button.

Parameters:
newDurationduration of the swiping animation when using button.
See also:

setEndSwipeElasticWidth

void setEndSwipeElasticWidth(uint16_twidth)

When dragging either one of the end pages a part of the background will become visible until the user stop dragging and the end page swipes back to its position.

The width of this area is set by this method.

Parameters:
widthThe width in pixels.

setPageIndicatorBitmaps

void setPageIndicatorBitmaps(const Bitmap &normalPage ,
const Bitmap &highlightedPage
)

Sets the bitmaps that are used by the page indicator.

The bitmap for the normal page is repeated side-by-side and the bitmap for a highlighted page is put in the proper position.

Parameters:
normalPageThe normal page.
highlightedPageThe highlighted page.

setPageIndicatorCenteredX

Sets the page indicator centered inside the SwipeContainer without changing the y position.

Note

This method should not be used until all pages have been added, the setPageIndicatorBitmaps() has been called and the page indicator therefore has the correct width.

See also:

setPageIndicatorCenteredX

Sets the x position of the page indicator without changing the y position.

The value specified as x will be the center coordinate of the page indicators.

Parameters:
xThe center x coordinate.
Note

This method should not be used until all pages have been added, the setPageIndicatorBitmaps() has been called and the page indicator therefore has the correct width.

See also:

setPageIndicatorXY

void setPageIndicatorXY(int16_tx ,
int16_ty
)

Sets the x and y position of the page indicator.

Parameters:
xThe x coordinate.
yThe y coordinate.
See also:

setPageIndicatorXYWithCenteredX

void setPageIndicatorXYWithCenteredX(int16_tx ,
int16_ty
)

Sets the x and y position of the page indicator.

The value specified as x will be the center coordinate of the page indicators.

Parameters:
xThe center x coordinate.
yThe y coordinate.
Note

This method should not be used until all pages have been added, the setPageIndicatorBitmaps() has been called and the page indicator therefore has the correct width.

See also:

setSelectedPage

void setSelectedPage(uint8_tpageIndex)

Sets the selected page.

Parameters:
pageIndexZero-based index of the page. Range from 0 to numberOfPages-1.
See also:

setSwipeCutoff

virtual void setSwipeCutoff(uint16_tcutoff)

Set the swipe cutoff which indicates how far you should drag a page before it results in a page change.

Parameters:
cutoffThe cutoff in pixels.

SwipeContainer

~SwipeContainer

virtual ~SwipeContainer()