跳转到主要内容

ModalWindow

touchgfx/containers/ModalWindow.hpp

Container for displaying a modal window and hijacking touch event and prevent them from reaching the underlying view and widgets. The container has a background image and a surrounding box that acts as a shade on top of the rest of the screen. The background image must be set (using setBackground()) and the shade can be adjusted (using setShadeAlpha() and setShadeColor()).

The ModalWindow can either be used directly by adding widgets/containers to the ModalWindow from your view or by sub-classing it if you need a specific ModalWindow with predefined behavior across your application.

The ModalWindow should be instantiated in the view class and added as the last element (to always be on top, i.e. be modal). The ModalWindow will fill up the entire screen so it should always be placed at x=0, y=0 on the display.

To control the visibility of the ModalWindow use the show and hide methods.

Inherits from: Container, Drawable

Public Functions

virtual voidadd(Drawable & d)
Adds a Drawable instance as child to this Container.
virtual uint16_tgetBackgroundHeight() const
Gets the height of the actual window (the background images).
virtual uint16_tgetBackgroundWidth() const
Gets the width of the actual window (the background images).
virtual uint8_tgetShadeAlpha() const
Gets the alpha value of the background shade.
virtual colortypegetShadeColor() const
Gets the color of the background shade.
virtual voidhide()
Make the ModalWindow invisible.
ModalWindow()
virtual voidremove(Drawable & d)
Removes a Drawable from the container by removing it from the linked list of children.
virtual voidsetBackground(const BitmapId & bmpId)
Sets the background of the actual window.
virtual voidsetBackground(const BitmapId & bmpId, int16_t backgroundX, int16_t backgroundY)
Sets the background of the actual window.
virtual voidsetShadeAlpha(uint8_t alpha)
Sets the alpha value of the background shade.
virtual voidsetShadeColor(colortype color)
Sets the color of the background shade.
virtual voidshow()
Make the ModalWindow visible.

Protected Attributes

BoxbackgroundShade
The background shade.
ImagewindowBackground
The window background.
ContainerwindowContainer
The window container that defines the active container area where both the windowBackground and added drawables are placed.

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 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 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 &d)

Adds a Drawable instance as child to this Container.

The Drawable added will be placed as the element to be drawn last, and thus appear on top of all previously added drawables in the Container.

Parameters:
dThe Drawable to add.
Note

Never add a drawable more than once!

Reimplements: touchgfx::Container::add

getBackgroundHeight

virtual uint16_t getBackgroundHeight()const

Gets the height of the actual window (the background images).

Whereas the getHeight() method will return the height including the shade.

Returns:

The height of the actual window.

getBackgroundWidth

virtual uint16_t getBackgroundWidth()const

Gets the width of the actual window (the background images).

Whereas the getWidth() method will return the width including the shade.

Returns:

The width of the actual window.

getShadeAlpha

virtual uint8_t getShadeAlpha()const

Gets the alpha value of the background shade.

Returns:

The background shades alpha.

getShadeColor

virtual colortype getShadeColor()const

Gets the color of the background shade.

Returns:

The color of the background shade.

hide

virtual void hide()

Make the ModalWindow invisible.

remove

virtual void remove(Drawable &d)

Removes a Drawable from the container by removing it from the linked list of children.

If the Drawable is not in the list of children, nothing happens. It is possible to remove an element from whichever Container it is a member of using:

if (d.getParent()) d.getParent()->remove(d);

The Drawable will have the parent and next sibling cleared, but is otherwise left unaltered.

Parameters:
dThe Drawable to remove.
Note

This is safe to call even if d is not a child of this Container (in which case nothing happens).

Reimplements: touchgfx::Container::remove

setBackground

virtual void setBackground(const BitmapId &bmpId)

Sets the background of the actual window.

The remaining area of the screen will be covered by the shade. The background image is centered on the screen.

Parameters:
bmpIdIdentifier for the background bitmap.

setBackground

virtual void setBackground(const BitmapId &bmpId ,
int16_tbackgroundX ,
int16_tbackgroundY
)

Sets the background of the actual window.

The remaining area of the screen will be covered by the shade. The background image will be placed at the backgroundX and backgroundY coordinate.

Parameters:
bmpIdIdentifier for the bitmap.
backgroundXThe background x coordinate.
backgroundYThe background y coordinate.

setShadeAlpha

virtual void setShadeAlpha(uint8_talpha)

Sets the alpha value of the background shade.

Default, if not set, is 96.

Parameters:
alphaThe new alpha.

setShadeColor

virtual void setShadeColor(colortypecolor)

Sets the color of the background shade.

Default is black.

Parameters:
colorThe new color.

show

virtual void show()

Make the ModalWindow visible.

Protected Attributes Documentation

backgroundShade

Box backgroundShade

The background shade.

windowBackground

Image windowBackground

The window background.

windowContainer

Container windowContainer

The window container that defines the active container area where both the windowBackground and added drawables are placed.