C
StateManager Class
class SafeRenderer::StateManagerThe StateManager class maintains the state of the indicators. More...
Header: | #include <StateManager> |
Since: | QtSafeRenderer 1.0 |
Public Types
enum | Visibility { Hidden, Visible } |
Public Functions
StateManager(SafeRenderer::AbstractWindow &window, SafeRenderer::QSafeLayout &layout, const SafeRenderer::ARGB clearColorArg = ARGB()) | |
void | addLayout(SafeRenderer::QSafeLayout *const layout) |
void | advanceAnimations() |
void | connect(const SafeRenderer::quint32 eventArg, const SafeRenderer::qchar *const stateName) |
void | connect(const SafeRenderer::quint32 eventArg, const SafeRenderer::quint32 stateIdArg) |
SafeRenderer::quint32 | getItemAtPosition(const SafeRenderer::quint32 xArg, const SafeRenderer::quint32 yArg) const |
SafeRenderer::quint32 | getItemState(const SafeRenderer::quint32 itemIdArg) const |
SafeRenderer::quint32 | getLayout() const |
const SafeRenderer::LayoutData & | getLayoutItem(const SafeRenderer::quint32 idArg) const |
void | handleConnection(const SafeRenderer::QSafeEventSystem &eventArg) |
bool | isInTransition() const |
bool | isItemInTransition(const SafeRenderer::quint32 itemIdArg) const |
bool | setLayout(SafeRenderer::QSafeLayout *const layout) |
Member Type Documentation
enum StateManager::Visibility
This enum describes the ON and OFF states.
Constant | Value | Description |
---|---|---|
SafeRenderer::StateManager::Hidden | 0 | The item is hidden. |
SafeRenderer::StateManager::Visible | 1 | The item is visible. |
Member Function Documentation
StateManager::StateManager(SafeRenderer::AbstractWindow &window, SafeRenderer::QSafeLayout &layout, const SafeRenderer::ARGB clearColorArg = ARGB())
Constructs a StateManager object with the given window framebuffer, the layout default layout, and the clearColorArg clear color value.
In case of a failure, one of the following exceptions will be thrown:
Exception | Id | Description |
---|---|---|
SafeRenderer::QSafeLayoutException | SafeRenderer::QSafeLayoutException::LayoutException::UnknownBitmapId | The bitmap could not found by the given bitmap ID. |
SafeRenderer::QSafeLayoutException | SafeRenderer::QSafeLayoutException::LayoutException::UnknownItem | The item could not be found. |
SafeRenderer::QSafeLayoutException | SafeRenderer::QSafeLayoutException::LayoutException::ItemOutOfBounds | The item's position is out of the layout boundaries. |
SafeRenderer::QSafeLayoutException | SafeRenderer::QSafeLayoutException::LayoutException::DataSizeMismatch | The resource file does not contain enough data or data is invalid. |
SafeRenderer::QSafeRendererException | SafeRenderer::QSafeRendererException::RendererException::UnsupportedSurfaceFormat | The bits per pixel value in the window is neither 16 or 32. |
SafeRenderer::QStateManagerException | SafeRenderer::QStateManagerException::StateManagerException::InvalidLayoutObject | The \a layout is not in OK state. |
void StateManager::addLayout(SafeRenderer::QSafeLayout *const layout)
Adds new layout to the state manager. At this point layout is not taken into use. Each QSafeLayout instances has an unique id which is the hash value of the layout file. This value is used in QSafeEventChangeLayout event when requesting a layout change.
In case of a failure, one of the following exceptions will be thrown:
Exception | Id | Description |
---|---|---|
SafeRenderer::QStateManagerException | SafeRenderer::QStateManagerException::StateManagerException::MaxNumOfLayoutsExceed | Maximum amount of layouts exceeds. |
SafeRenderer::QStateManagerException | SafeRenderer::QStateManagerException::StateManagerException::LayoutAlreadyExists | Layout with same id is already added. |
void StateManager::advanceAnimations()
Advances animations if there are transitions ongoing. This function should be called by the animation timer. If there is no transitions ongoing this function does nothing.
void StateManager::connect(const SafeRenderer::quint32 eventArg, const SafeRenderer::qchar *const stateName)
Connects the external eventArg to the stateName layout item. stateName is the objectName of the safe item in QML.
In case of a failure, one of the following exceptions will be thrown:
Exception | Id | Description |
---|---|---|
SafeRenderer::QStateManagerException | SafeRenderer::QStateManagerException::StateManagerException::ConnectionAlreadyExists | The event is already connected. |
SafeRenderer::QStateManagerException | SafeRenderer::QStateManagerException::StateManagerException::NotConnectedEvent | The event is not connected. |
SafeRenderer::QStateManagerException | SafeRenderer::QStateManagerException::StateManagerException::TooManyConnections | The number of connections exceeds the value defined in SafeRenderer::Constraints::MAX_NUM_OF_CONNECTIONS. |
SafeRenderer::QStateManagerException | SafeRenderer::QStateManagerException::StateManagerException::StateNotFound | The connected item could not be found. |
An example of the QML definiton:
SafePicture { id: iconCoolant objectName: "iconCoolant" width: 30 height: 30 color: "#e41e25" source: "qrc:/iso-icons/iso_grs_7000_4_2426.dat" }
You can connect the external event EventEngineTemperature to the iconCoolant item as follows:
stateManager.connect(SafeRenderer::EventEngineTemperature, "iconCoolant");
void StateManager::connect(const SafeRenderer::quint32 eventArg, const SafeRenderer::quint32 stateIdArg)
Connects the external eventArg to the stateIdArg layout item. stateIdArg is the calculated hash of the safe item objectName in QML.
In case of a failure, one of the following exceptions will be thrown:
Exception | Id | Description |
---|---|---|
SafeRenderer::QStateManagerException | SafeRenderer::QStateManagerException::StateManagerException::ConnectionAlreadyExists | The event is already connected. |
SafeRenderer::QStateManagerException | SafeRenderer::QStateManagerException::StateManagerException::NotConnectedEvent | The event is not connected. |
SafeRenderer::QStateManagerException | SafeRenderer::QStateManagerException::StateManagerException::TooManyConnections | The number of connections exceeds the value defined in SafeRenderer::Constraints::MAX_NUM_OF_CONNECTIONS. |
SafeRenderer::QStateManagerException | SafeRenderer::QStateManagerException::StateManagerException::StateNotFound | The connected item could not be found. |
[since QtSafeRenderer 2.0]
SafeRenderer::quint32 StateManager::getItemAtPosition(const SafeRenderer::quint32 xArg, const SafeRenderer::quint32 yArg) const
Returns the ID of the item at the xArg and yArg position. In case there are multiple items at the same position, the top-most visible item is returned. Returns 0 if there is no visible item at the position.
This function was introduced in QtSafeRenderer 2.0.
SafeRenderer::quint32 StateManager::getItemState(const SafeRenderer::quint32 itemIdArg) const
Returns the state of an itemIdArg.
SafeRenderer::quint32 StateManager::getLayout() const
Returns the ID of the active layout.
const SafeRenderer::LayoutData &StateManager::getLayoutItem(const SafeRenderer::quint32 idArg) const
Returns SafeRenderer::LayoutData item idenfified by idArg.
void StateManager::handleConnection(const SafeRenderer::QSafeEventSystem &eventArg)
Handles an eventArg that can change its associated state between ON and OFF.
In case of a failure, one of the following exceptions will be thrown:
Exception | Id | Description |
---|---|---|
SafeRenderer::QSafeRendererException | SafeRenderer::QSafeRendererException::RendererException::BitmapOutfOfScreen | The bitmap does not fit inside screen area. |
SafeRenderer::QSafeRendererException | SafeRenderer::QSafeRendererException::RendererException::InvalidBitmapPointer | The bitmap pointer is a null pointer. |
SafeRenderer::QSafeRendererException | SafeRenderer::QSafeRendererException::RendererException::InvalidBitmapId | The bitmap ID is 0. |
SafeRenderer::QStateManagerException | SafeRenderer::QStateManagerException::StateManagerException::NotConnectedEvent | The event is not connected. |
bool StateManager::isInTransition() const
Returns true if there is transitions ongoing otherwise returns false.
bool StateManager::isItemInTransition(const SafeRenderer::quint32 itemIdArg) const
Returns true if the item itemIdArg is in transtion otherwise returns false.
bool StateManager::setLayout(SafeRenderer::QSafeLayout *const layout)
Changes the current layout of StateManager to layout.
Returns true if the layout change succeeded, otherwise false.
In case of a failure, one of the following exceptions will be thrown:
Exception | Id | Description |
---|---|---|
SafeRenderer::QSafeRendererException | SafeRenderer::QSafeRendererException::RendererException::BitmapOufOfScreen | The bitmap does not fit inside screen area. |
SafeRenderer::QSafeRendererException | SafeRenderer::QSafeRendererException::RendererException::InvalidBitmapPointer | The bitmap pointer is a null pointer. |
SafeRenderer::QSafeRendererException | SafeRenderer::QSafeRendererException::RendererException::InvalidBitmapId | The bitmap ID is 0. |
Available under certain Qt licenses.
Find out more.