GraphElementGridX
touchgfx/widgets/graph/GraphElements.hpp
GraphElementGridX draws vertical lines at selected intervals along the x axis. By combining two GraphElementGridX instances, it is possible to have minor and major grid lines.
Note: The grid lines are drawn using LCD::fillRect for higher performance.
Inherits from: GraphElementGridBase, AbstractGraphElementNoCWR, AbstractGraphElement, CanvasWidget, Widget, Drawable
Public Functions
virtual int | getCorrectlyScaledGridInterval(const AbstractDataGraph * graph) const |
Gets correctly scaled minor interval, as the minor grid may have a scale that differs the scale of the graph and this grid line. | |
Protected Functions
virtual Rect | enclosingArea(const AbstractDataGraph * graph) const |
Return the enclosing area for the grid lines. | |
virtual int | getGraphAreaEndPos(const AbstractDataGraph * graph) const |
Gets graph area end position. | |
virtual int | getGraphAreaLength(const AbstractDataGraph * graph) const |
Gets graph area length (distance from border to border). | |
virtual int | getGraphAreaStart(const AbstractDataGraph * graph) const |
Gets graph area start (distance from the border). | |
virtual int | getGraphAreaStartPos(const AbstractDataGraph * graph) const |
Gets graph area start position. | |
virtual int | getGraphRangeMaxScaled(const AbstractDataGraph * graph) const |
Gets graph range maximum x/y scaled. | |
virtual int | getGraphRangeMinScaled(const AbstractDataGraph * graph) const |
Gets graph range minimum x/y scaled. | |
virtual Rect | lineRect(int16_t start, int16_t length, int16_t pos, int16_t width) const |
Return the specific rectangle for line. | |
virtual CWRUtil::Q5 | valueToScreenQ5(const AbstractDataGraph * graph, int value) const |
The graph value to the correct screen coordinate in Q5. | |
Additional inherited members
Public Functions inherited from GraphElementGridBase
virtual void | draw(const Rect & invalidatedArea) const |
Draws the given invalidated area. | |
virtual int | getCorrectlyScaledMajorInterval(const AbstractDataGraph * graph) const |
Gets correctly scaled major interval, as the major grid may have a scale that differs the scale of the graph and this grid line. | |
FORCE_INLINE_FUNCTION float | getIntervalAsFloat() const |
Gets the interval between each grid line. | |
FORCE_INLINE_FUNCTION int | getIntervalAsInt() const |
Gets the interval between each grid line. | |
FORCE_INLINE_FUNCTION int | getIntervalScaled() const |
Gets the interval between each grid line. | |
FORCE_INLINE_FUNCTION uint8_t | getLineWidth() const |
Gets line width. | |
FORCE_INLINE_FUNCTION int | getScale() const |
Gets the scaling factor set using setScale. | |
GraphElementGridBase() | |
Default constructor. | |
virtual void | invalidateGraphPointAt(int16_t index) |
Invalidate the point at the given index. | |
FORCE_INLINE_FUNCTION void | setInterval(float interval) |
Sets the interval between each grid line. | |
FORCE_INLINE_FUNCTION void | setInterval(int interval) |
Sets the interval between each grid line. | |
FORCE_INLINE_FUNCTION void | setIntervalScaled(int interval) |
Sets the interval between each grid line. | |
FORCE_INLINE_FUNCTION void | setLineWidth(uint8_t width) |
Sets line width of the grid lines. | |
FORCE_INLINE_FUNCTION void | setMajorGrid(const GraphElementGridBase & major) |
Sets "major" grid that will be responsible for drawing major grid lines. | |
FORCE_INLINE_FUNCTION void | setScale(int scale) |
Sets a scaling factor to be multiplied on the grid interval. | |
Protected Functions inherited from GraphElementGridBase
virtual void | drawLine(const Rect & invalidatedArea, int16_t start, int16_t length, int16_t pos, int16_t width, uint8_t a) const |
Draw vertical line using LCD::fillRect and handles negative dimensions properly. | |
Protected Attributes inherited from GraphElementGridBase
int | dataScale |
The scaling factor. | |
int | gridInterval |
The grid line interval. | |
uint8_t | lineWidth |
Width of the line. | |
const GraphElementGridBase * | majorGrid |
A pointer to a major grid, if any. | |
Public Functions inherited from AbstractGraphElementNoCWR
AbstractGraphElementNoCWR() | |
virtual bool | drawCanvasWidget(const Rect & invalidatedArea) const |
Draw canvas widget for the given invalidated area. | |
virtual colortype | getColor() const |
Gets the color of the graph element. | |
virtual void | setColor(colortype newColor) |
Sets the color of the graph element. | |
Protected Functions inherited from AbstractGraphElementNoCWR
void | normalizeRect(Rect & r) const |
Normalize rectangle by changing a rectangle with negative width or height to a rectangle with positive width or height at the correct position. | |
Protected Attributes inherited from AbstractGraphElementNoCWR
Public Functions inherited from AbstractGraphElement
AbstractGraphElement() | |
Default constructor. | |
virtual void | invalidateGraphPointAt(int16_t index) =0 |
Invalidate the point at the given index. | |
Protected Functions inherited from AbstractGraphElement
FORCE_INLINE_FUNCTION int | convertToGraphScaleX(const AbstractDataGraph * graph, int value, int scale) const |
Converts the value to the proper X scale of the graph. | |
FORCE_INLINE_FUNCTION int | convertToGraphScaleY(const AbstractDataGraph * graph, int value, int scale) const |
Converts the value to the proper Y scale of the graph. | |
FORCE_INLINE_FUNCTION AbstractDataGraph * | getGraph() const |
Gets a pointer to the the graph containing the GraphElement. | |
FORCE_INLINE_FUNCTION int | getIndexToXAxis(const AbstractDataGraph * graph, const int valueScaled, const int labelScaled) const |
Convert the given valueScaled (index) to x axis value. | |
FORCE_INLINE_FUNCTION CWRUtil::Q5 | indexToScreenXQ5(const AbstractDataGraph * graph, int16_t index) const |
Gets screen x coordinate for a specific data point added to the graph. | |
FORCE_INLINE_FUNCTION CWRUtil::Q5 | indexToScreenYQ5(const AbstractDataGraph * graph, int16_t index) const |
Gets screen y coordinate for a specific data point added to the graph. | |
bool | isCenterInvisible(const AbstractDataGraph * graph, int16_t index) const |
Query if the center of a given data point index is visible inside the graph area. | |
Rect | rectAround(CWRUtil::Q5 xQ5, CWRUtil::Q5 yQ5, CWRUtil::Q5 diameterQ5) const |
Find the screen rectangle around a given point with the specified diameter. | |
Rect | rectFromQ5Coordinates(CWRUtil::Q5 screenXminQ5, CWRUtil::Q5 screenYminQ5, CWRUtil::Q5 screenXmaxQ5, CWRUtil::Q5 screenYmaxQ5) const |
Find the screen rectangle containing the Q5 screen rectangle by rounding the coordinates up/down. | |
FORCE_INLINE_FUNCTION CWRUtil::Q5 | roundQ5(CWRUtil::Q5 q5) const |
Round the given CWRUtil::Q5 to the nearest integer and return it as a CWRUtil::Q5 instead of an integer. | |
FORCE_INLINE_FUNCTION CWRUtil::Q5 | valueToScreenXQ5(const AbstractDataGraph * graph, int x) const |
Gets graph screen x for x value. | |
FORCE_INLINE_FUNCTION CWRUtil::Q5 | valueToScreenYQ5(const AbstractDataGraph * graph, int y) const |
Gets graph screen y for y value. | |
FORCE_INLINE_FUNCTION bool | xScreenRangeToIndexRange(const AbstractDataGraph * graph, int16_t xMin, int16_t xMax, int16_t & indexMin, int16_t & indexMax) const |
Gets graph element range for screen x coordinate range. | |
Public Functions inherited from CanvasWidget
CanvasWidget() | |
virtual void | draw(const Rect & invalidatedArea) const |
Draws the given invalidated area. | |
virtual bool | drawCanvasWidget(const Rect & invalidatedArea) const =0 |
Draw canvas widget for the given invalidated area. | |
virtual uint8_t | getAlpha() const |
Gets the current alpha value of the widget. | |
virtual Rect | getMinimalRect() const |
Gets minimal rectangle containing the shape drawn by this widget. | |
const AbstractPainter * | getPainter() const |
Gets the current painter for the CanvasWidget. | |
virtual Rect | getSolidRect() const |
Gets the largest solid (non-transparent) rectangle. | |
virtual void | invalidate() const |
Invalidates the area covered by this CanvasWidget. | |
virtual void | setAlpha(uint8_t newAlpha) |
Sets the opacity (alpha value). | |
void | setPainter(const AbstractPainter & painter) |
Sets a painter for the CanvasWidget. | |
Protected Attributes inherited from CanvasWidget
uint8_t | alpha |
The Alpha for this CanvasWidget. | |
Public Functions inherited from Widget
virtual void | getLastChild(int16_t , int16_t , Drawable ** last) |
Since a Widget is only one Drawable, Widget::getLastChild simply yields itself as result, but only if the Widget isVisible and isTouchable. | |
Public Functions inherited from Drawable
void | center() |
Centers the Drawable inside its parent. | |
void | centerX() |
Center the Drawable horizontally inside its parent. | |
void | centerY() |
Center the Drawable vertically inside its parent. | |
virtual void | childGeometryChanged() |
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 void | draw(const Rect & invalidatedArea) const =0 |
Draw this drawable. | |
Drawable() | |
Initializes a new instance of the Drawable class. | |
void | drawToDynamicBitmap(BitmapId id) |
Render the Drawable object into a dynamic bitmap. | |
void | expand(int margin =0) |
Expands the Drawable to have the same size as its parent with a given margin around the edge. | |
Rect | getAbsoluteRect() 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_t | getHeight() const |
Gets the height of this Drawable. | |
virtual void | getLastChild(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 Rect | getSolidRect() const =0 |
Get (the largest possible) rectangle that is guaranteed to be solid (opaque). | |
virtual Rect | getSolidRectAbsolute() |
Helper function for obtaining the largest solid rect (as implemented by getSolidRect()) expressed in absolute coordinates. | |
virtual void | getVisibleRect(Rect & rect) const |
Function for finding the visible part of this drawable. | |
int16_t | getWidth() const |
Gets the width of this Drawable. | |
int16_t | getX() const |
Gets the x coordinate of this Drawable, relative to its parent. | |
int16_t | getY() const |
Gets the y coordinate of this Drawable, relative to its parent. | |
virtual void | handleClickEvent(const ClickEvent & event) |
Defines the event handler interface for ClickEvents. | |
virtual void | handleDragEvent(const DragEvent & event) |
Defines the event handler interface for DragEvents. | |
virtual void | handleGestureEvent(const GestureEvent & event) |
Defines the event handler interface for GestureEvents. | |
virtual void | handleTickEvent() |
Called periodically by the framework if the Drawable instance has subscribed to timer ticks. | |
virtual void | invalidate() const |
Tell the framework that this entire Drawable needs to be redrawn. | |
virtual void | invalidateContent() const |
Tell the framework that the contents of the Drawable needs to be redrawn. | |
virtual void | invalidateRect(Rect & invalidatedArea) const |
Request that a region of this drawable is redrawn. | |
bool | isTouchable() const |
Gets whether this Drawable receives touch events or not. | |
bool | isVisible() const |
Gets whether this Drawable is visible. | |
virtual void | moveRelative(int16_t x, int16_t y) |
Moves the drawable. | |
virtual void | moveTo(int16_t x, int16_t y) |
Moves the drawable. | |
virtual void | setHeight(int16_t height) |
Sets the height of this drawable. | |
void | setPosition(const Drawable & drawable) |
Sets the position of the Drawable to the same as the given Drawable. | |
void | setPosition(int16_t x, int16_t y, int16_t width, int16_t height) |
Sets the size and position of this Drawable, relative to its parent. | |
void | setTouchable(bool touch) |
Controls whether this Drawable receives touch events or not. | |
void | setVisible(bool vis) |
Controls whether this Drawable should be visible. | |
virtual void | setWidth(int16_t width) |
Sets the width of this drawable. | |
void | setWidthHeight(const Bitmap & bitmap) |
Sets the dimensions (width and height) of the Drawable without changing the x and y coordinates). | |
void | setWidthHeight(const Drawable & drawable) |
Sets the dimensions (width and height) of the Drawable without changing the x and y coordinates). | |
void | setWidthHeight(const Rect & other) |
Sets the dimensions (width and height) of the Drawable without changing the x and y coordinates). | |
void | setWidthHeight(int16_t width, int16_t height) |
Sets the dimensions (width and height) of the Drawable without changing the x and y coordinates). | |
virtual void | setX(int16_t x) |
Sets the x coordinate of this Drawable, relative to its parent. | |
void | setXY(const Drawable & drawable) |
Sets the x and y coordinates of this Drawable. | |
void | setXY(int16_t x, int16_t y) |
Sets the x and y coordinates of this Drawable, relative to its parent. | |
virtual void | setY(int16_t y) |
Sets the y coordinate of this Drawable, relative to its parent. | |
virtual void | translateRectToAbsolute(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. | |
Rect | rect |
The coordinates of this Drawable, relative to its parent. | |
bool | touchable |
True if this drawable should receive touch events. | |
bool | visible |
True if this drawable should be drawn. | |
Public Functions Documentation
getCorrectlyScaledGridInterval
virtual int getCorrectlyScaledGridInterval | ( | const AbstractDataGraph * | graph | ) | |
Gets correctly scaled minor interval, as the minor grid may have a scale that differs the scale of the graph and this grid line.
graph | The graph. |
The correctly scaled minor interval.
Reimplements: touchgfx::GraphElementGridBase::getCorrectlyScaledGridInterval
Protected Functions Documentation
enclosingArea
virtual Rect enclosingArea | ( | const AbstractDataGraph * | graph | ) | |
Return the enclosing area for the grid lines.
Vertical lines are allowed to go a bit to the left and right, but not above or below. Vice versa for horizontal gridlines.
graph | The graph. |
A Rect which the grid lines should be inside.
Reimplements: touchgfx::GraphElementGridBase::enclosingArea
getGraphAreaEndPos
virtual int getGraphAreaEndPos | ( | const AbstractDataGraph * | graph | ) | |
Gets graph area end position.
Horizontal offset of last vertical line or vertical offset of last horizontal line.
graph | The graph. |
The graph area end position. Horizontal offset of last vertical line or vertical offset of last horizontal line.
Reimplements: touchgfx::GraphElementGridBase::getGraphAreaEndPos
getGraphAreaLength
virtual int getGraphAreaLength | ( | const AbstractDataGraph * | graph | ) | |
Gets graph area length (distance from border to border).
graph | The graph. |
The graph area length (distance from border to border.
Reimplements: touchgfx::GraphElementGridBase::getGraphAreaLength
getGraphAreaStart
virtual int getGraphAreaStart | ( | const AbstractDataGraph * | graph | ) | |
Gets graph area start (distance from the border).
graph | The graph. |
The graph area start (distance from the border).
Reimplements: touchgfx::GraphElementGridBase::getGraphAreaStart
getGraphAreaStartPos
virtual int getGraphAreaStartPos | ( | const AbstractDataGraph * | graph | ) | |
Gets graph area start position.
Horizontal offset of first vertical line or vertical offset of first horizontal line.
graph | The graph. |
The graph area start position. Horizontal offset of first vertical line or vertical offset og first horizontal line.
Reimplements: touchgfx::GraphElementGridBase::getGraphAreaStartPos
getGraphRangeMaxScaled
virtual int getGraphRangeMaxScaled | ( | const AbstractDataGraph * | graph | ) | |
Gets graph range maximum x/y scaled.
graph | The graph. |
The graph range maximum scaled.
Reimplements: touchgfx::GraphElementGridBase::getGraphRangeMaxScaled
getGraphRangeMinScaled
virtual int getGraphRangeMinScaled | ( | const AbstractDataGraph * | graph | ) | |
Gets graph range minimum x/y scaled.
graph | The graph. |
The graph range minimum scaled.
Reimplements: touchgfx::GraphElementGridBase::getGraphRangeMinScaled
lineRect
virtual Rect lineRect | ( | int16_t | start , | const | |
int16_t | length , | const | |||
int16_t | pos , | const | |||
int16_t | width | const | |||
) | const |
Return the specific rectangle for line.
start | The start (distance from the border). |
length | The length (length of the line). |
pos | The position (horizonal offset for vertical lines, vertical offset for horizontal lines). |
width | The (line) width. |
A Rect.
Reimplements: touchgfx::GraphElementGridBase::lineRect
valueToScreenQ5
virtual CWRUtil::Q5 valueToScreenQ5 | ( | const AbstractDataGraph * | graph , | const | |
int | value | const | |||
) | const |
The graph value to the correct screen coordinate in Q5.
graph | The graph. |
value | The value. |
The graph value to the correct screen coordinate in Q5.
Reimplements: touchgfx::GraphElementGridBase::valueToScreenQ5