 |
MPLABĀ® Harmony Graphics Suite
|
Go to the documentation of this file.
45 #ifndef LEGATO_WIDGET_LINE_GRAPH_H
46 #define LEGATO_WIDGET_LINE_GRAPH_H
50 #if LE_LINEGRAPH_WIDGET_ENABLED == 1
68 typedef enum leLineGraphValueAxis
70 LINE_GRAPH_AXIS_0 = 0,
72 } leLineGraphValueAxis;
81 typedef enum leLineGraphTickPosition
85 LINE_GRAPH_TICK_CENTER,
86 } leLineGraphTickPosition;
95 typedef enum leLineGraphDataPointType
97 LINE_GRAPH_DATA_POINT_NONE,
98 LINE_GRAPH_DATA_POINT_CIRCLE,
99 LINE_GRAPH_DATA_POINT_SQUARE,
100 } leLineGraphDataPointType;
115 typedef struct leLineGraphDataSeries
119 leLineGraphValueAxis axis;
120 leLineGraphDataPointType pointType;
124 } leLineGraphDataSeries;
139 typedef struct leLineGraphCategory
144 } leLineGraphCategory;
151 typedef struct leLineGraphWidget leLineGraphWidget;
153 #define LE_LINEGRAPHWIDGET_VTABLE(THIS_TYPE) \
154 LE_WIDGET_VTABLE(THIS_TYPE) \
156 uint32_t (*getTickLength)(const THIS_TYPE* _this); \
157 leResult (*setTickLength)(THIS_TYPE* _this, uint32_t len); \
158 leBool (*getStacked)(const THIS_TYPE* _this); \
159 leResult (*setStacked)(THIS_TYPE* _this, leBool stk); \
160 int32_t (*getMaxValue)(const THIS_TYPE* _this, leLineGraphValueAxis axis); \
161 leResult (*setMaxValue)(THIS_TYPE* _this, leLineGraphValueAxis axis, int32_t val); \
162 int32_t (*getMinValue)(const THIS_TYPE* _this, leLineGraphValueAxis axis); \
163 leResult (*setMinValue)(THIS_TYPE* _this, leLineGraphValueAxis axis, int32_t val); \
164 leBool (*getValueAxisLabelsVisible)(const THIS_TYPE* _this, leLineGraphValueAxis axis); \
165 leResult (*setValueAxisLabelsVisible)(THIS_TYPE* _this, leLineGraphValueAxis axis, leBool vis); \
166 leBool (*getFillGraphArea)(const THIS_TYPE* _this); \
167 leResult (*setFillGraphArea)(THIS_TYPE* _this, leBool fill); \
168 leBool (*getFillSeriesArea)(const THIS_TYPE* _this); \
169 leResult (*setFillSeriesArea)(THIS_TYPE* _this, leBool fill); \
170 leBool (*getGridLinesVisible)(const THIS_TYPE* _this, leLineGraphValueAxis axis); \
171 leResult (*setGridLinesVisible)(THIS_TYPE* _this, leLineGraphValueAxis axis, leBool visible); \
172 leBool (*getValueAxisTicksVisible)(const THIS_TYPE* _this, leLineGraphValueAxis axis); \
173 leResult (*setValueAxisTicksVisible)(THIS_TYPE* _this, leLineGraphValueAxis axis, leBool vis); \
174 uint32_t (*getValueAxisTickInterval)(const THIS_TYPE* _this, leLineGraphValueAxis axis); \
175 leResult (*setValueAxisTickInterval)(THIS_TYPE* _this, leLineGraphValueAxis axis, uint32_t inv); \
176 uint32_t (*getValueAxisSubtickInterval)(const THIS_TYPE* _this, leLineGraphValueAxis axis); \
177 leResult (*setValueAxisSubtickInterval)(THIS_TYPE* _this, leLineGraphValueAxis axis, uint32_t inv); \
178 leBool (*getValueAxisSubticksVisible)(const THIS_TYPE* _this, leLineGraphValueAxis axis); \
179 leResult (*setValueAxisSubticksVisible)(THIS_TYPE* _this, leLineGraphValueAxis axis, leBool vis); \
180 leBool (*getCategoryAxisTicksVisible)(const THIS_TYPE* _this); \
181 leResult (*setCategoryAxisTicksVisible)(THIS_TYPE* _this, leBool vis); \
182 int32_t (*addCategory)(THIS_TYPE* _this); \
183 leString* (*getCategoryString)(const THIS_TYPE* _this, int32_t categoryID); \
184 leResult (*setCategoryString)(THIS_TYPE* _this, int32_t categoryID, const leString* str); \
185 int32_t (*addSeries)(THIS_TYPE* _this); \
186 int32_t (*addDataToSeries)(THIS_TYPE* _this, int32_t seriesID, int32_t val); \
187 leResult (*setDataInSeries)(THIS_TYPE* _this, int32_t seriesID, int32_t idx, int32_t val); \
188 leScheme* (*getSeriesScheme)(const THIS_TYPE* _this, int32_t seriesID); \
189 leResult (*setSeriesScheme)(THIS_TYPE* _this, int32_t seriesID, const leScheme* schm); \
190 leBool (*getSeriesFillPoints)(const THIS_TYPE* _this, int32_t seriesID); \
191 leResult (*setSeriesFillPoints)(THIS_TYPE* _this, int32_t seriesID, leBool fill); \
192 leBool (*getSeriesLinesVisible)(const THIS_TYPE* _this, int32_t seriesID); \
193 leResult (*setSeriesLinesVisible)(THIS_TYPE* _this, int32_t seriesID, leBool vis); \
194 leLineGraphDataPointType (*getSeriesPointType)(const THIS_TYPE* _this, int32_t seriesID); \
195 leResult (*setSeriesPointType)(THIS_TYPE* _this, int32_t seriesID, leLineGraphDataPointType type); \
196 uint32_t (*getSeriesPointSize)(const THIS_TYPE* _this, int32_t seriesID); \
197 leResult (*setSeriesPointSize)(THIS_TYPE* _this, int32_t seriesID, uint32_t size); \
198 leResult (*clear)(THIS_TYPE* _this); \
199 leResult (*setTicksLabelFont)(THIS_TYPE* _this, const leFont* font); \
200 leBool (*getCategoryAxisLabelsVisible)(const THIS_TYPE* _this); \
201 leResult (*setCategoryAxisLabelsVisible)(THIS_TYPE* _this, leBool vis); \
202 leLineGraphTickPosition (*getValueAxisTicksPosition)(const THIS_TYPE* _this, leLineGraphValueAxis axis); \
203 leResult (*setValueAxisTicksPosition)(THIS_TYPE* _this, leLineGraphValueAxis axis, leLineGraphTickPosition position); \
204 leLineGraphTickPosition (*getValueAxisSubticksPosition)(const THIS_TYPE* _this, leLineGraphValueAxis axis); \
205 leResult (*setValueAxisSubticksPosition)(THIS_TYPE* _this, leLineGraphValueAxis axis, leLineGraphTickPosition position); \
206 leLineGraphTickPosition (*getCategoryAxisTicksPosition)(const THIS_TYPE* _this); \
207 leResult (*setCategoryAxisTicksPosition)(THIS_TYPE* _this, leLineGraphTickPosition position); \
209 typedef struct leLineGraphWidgetVTable
211 LE_LINEGRAPHWIDGET_VTABLE(leLineGraphWidget)
212 } leLineGraphWidgetVTable;
226 typedef struct leLineGraphWidget
230 const leLineGraphWidgetVTable* fn;
239 uint32_t tickInterval;
240 uint32_t subtickInterval;
241 leBool valueAxisLabelsVisible;
242 leBool valueAxisTicksVisible;
243 leBool valueAxisSubticksVisible;
244 leBool valueGridLinesVisible;
247 const leFont* ticksLabelFont;
248 leLineGraphTickPosition valueAxisTicksPosition;
249 leLineGraphTickPosition valueAxisSubticksPosition;
252 leBool categAxisLabelsVisible;
253 leBool categAxisTicksVisible;
254 leLineGraphTickPosition categAxisTicksPosition;
275 LIB_EXPORT leLineGraphWidget* leLineGraphWidget_New();
287 LIB_EXPORT
void leLineGraphWidget_Constructor(leLineGraphWidget* wgt);
1455 #endif // LE_LINEGRAPH_WIDGET_ENABLED
Error functions, macros and definitions.
leResult
This enum represents function call results.
Definition: legato_common.h:134
This struct represents a rectangle.
Definition: legato_common.h:405
Memory functions and definitions.
leResult leArray_PushBack(leArray *arr, void *val)
Push value on back.
Definition: legato_array.c:147
This struct represents a array.
Definition: legato_array.h:61
LIB_EXPORT leRect leRectCombine(const leRect *l_rect, const leRect *r_rect)
Combine rectangles.
Definition: legato_rect.c:61
This struct represents a font object.
Definition: legato_font.h:136
leResult leArray_Create(leArray *arr)
Create a new array.
Definition: legato_array.c:73
This struct represents a string.
Definition: legato_string.h:108
leBool
This enum represents booleans.
Definition: legato_common.h:157
virtual uint32_t length(const leString *_this)
Get length of the string.
void leUtils_PointToScreenSpace(const leWidget *widget, lePoint *pnt)
Converts a point from widget space into screen space.
Definition: legato_utils.c:75
@ LE_FALSE
Definition: legato_common.h:158
General internal utilities for the library.
Fixed string functions and definitions.
leResult leArray_Clear(leArray *arr)
Clear array.
Definition: legato_array.c:279
The header file joins all header files used in the graphics object library.
Definition: legato_scheme.h:154
void * leArray_Get(const leArray *arr, uint32_t idx)
Get entry at index.
Definition: legato_array.c:224
leColor leScheme_GetRenderColor(const leScheme *schm, leSchemeColor clr)
Gets a scheme render color for the current layer color mode.
Definition: legato_scheme.c:68
@ LE_TRUE
Definition: legato_common.h:159
virtual void clear(leString *_this)
Clear string.
Common macros and definitions used by Legato.
const leStringVTable * fn
Definition: legato_string.h:109
virtual void destructor(leString *_this)
Destruct string.
This structure represents a integer Cartesian point.
Definition: legato_common.h:357