Container
A Container is a component in TouchGFX that can contain child nodes.
To read more about the fundamental nature of the concept of Containers, read the Widgets and Containers page.
It is also possible to generate a Container as a CachableContainer. A CacheableContainer can render its content to a dynamic bitmap. This is explained more in detail on the Achieving Better Performance with CacheableContainer page.
Widget Group
The Container can be found in the Containers widget group in TouchGFX Designer.
Properties
The properties for a Container in TouchGFX Designer.
Property Group | Property Descriptions |
---|---|
Name | Name of the widget. Name is the unique identifier used in TouchGFX Designer and code. |
Location | X and Y specify the top left corner of the widget relative to its parent. W and H specify the width and height of the widget. Lock specifies if the widget should be locked in its current X, Y, W and H. Locking the widget also disables interacting with the widget through the screen. Visible specifies the visibility of the widget. Making the widget invisible also disables interacting with the widget through the screen. |
Caching | Cachable specifies if the Container should be generated as a CachableContainer. |
Mixins | Draggable specifies if the widget is draggable at runtime. ClickListener specifies if the widget emits a callback when clicked. FadeAnimator specifies if the widget can animate changes to its Alpha value. MoveAnimator specifies if the widget can animate changes to X and Y values. |
Interactions
The actions and triggers supported by a Container in TouchGFX Designer.
Actions
Widget specific action | Description |
---|---|
Resize widget | Resize the width and height of a widget. |
Standard widget action | Description |
---|---|
Move widget | Move a widget to a new position over time. |
Hide widget | Hides a widget (sets visibility to false). |
Show widget | Make a hidden widget visible (sets visibility to true). |
Triggers
A Container does not emit any triggers.
Performance
A Container itself does not have any impact on performance and is entirely dependent on its children. Therefore, the Container is considered a very fast widget on most platforms.
In certain cases, using a CachableContainer to cache UI elements in a dynamic bitmap can significantly improve performance throughout an application. This is explained more in detail in the Achieving Better Performance with CacheableContainer article.
For more general details on drawing performance, read the General UI Component Performance section.
Examples
Generated Code
In the generated code for the View base class we can see how TouchGFX Designer sets up a Container.
Screen1ViewBase.cpp
#include <gui_generated/screen1_screen/Screen1ViewBase.hpp>
#include "BitmapDatabase.hpp"
Screen1ViewBase::Screen1ViewBase()
{
container1.setPosition(67, 11, 347, 250);
image1.setXY(109, 61);
image1.setBitmap(touchgfx::Bitmap(BITMAP_BLUE_LOGO_TOUCHGFX_LOGO_ID));
container1.add(image1);
add(container1);
}
Tip
container1.invalidate()
orcontainer1.invalidateContent()
if you change the appearance of the widget. When using container1.invalidateContent()
, you must callcontainer1.invalidateContent()
before and after you change the appearance of the widget. Note: container1.invalidateContent()
will call invalidateContent()
on all children of the container.