 |
MPLABĀ® Harmony Graphics Suite
|
Go to the documentation of this file.
45 #ifndef LEGATO_WIDGET_BAR_GRAPH_H
46 #define LEGATO_WIDGET_BAR_GRAPH_H
50 #if LE_BARGRAPH_WIDGET_ENABLED
73 typedef enum leBarGraphValueAxis
77 } leBarGraphValueAxis;
91 typedef enum leBarGraphTickPosition
95 BAR_GRAPH_TICK_CENTER,
96 } leBarGraphTickPosition;
116 typedef struct leBarGraphDataSeries
120 leBarGraphValueAxis axis;
121 } leBarGraphDataSeries;
123 typedef struct leBarGraphCategory
127 } leBarGraphCategory;
129 typedef struct leBarGraphWidget leBarGraphWidget;
135 #define LE_BARGRAPHWIDGET_VTABLE(THIS_TYPE) \
136 LE_WIDGET_VTABLE(THIS_TYPE) \
138 uint32_t (*getTickLength)(const THIS_TYPE* _this); \
139 leResult (*setTickLength)(THIS_TYPE* _this, uint32_t len); \
140 uint32_t (*getMinValue)(const THIS_TYPE* _this, leBarGraphValueAxis axis); \
141 leResult (*setMinValue)(THIS_TYPE* _this, leBarGraphValueAxis axis, int32_t min); \
142 uint32_t (*getMaxValue)(const THIS_TYPE* _this, leBarGraphValueAxis axis); \
143 leResult (*setMaxValue)(THIS_TYPE* _this, leBarGraphValueAxis axis, int32_t max); \
144 leBool (*getValueAxisLabelsVisible)(const THIS_TYPE* _this, leBarGraphValueAxis axis); \
145 leResult (*setValueAxisLabelsVisible)(THIS_TYPE* _this, leBarGraphValueAxis axis, leBool vis); \
146 leBool (*getValueAxisTicksVisible)(const THIS_TYPE* _this, leBarGraphValueAxis axis); \
147 leResult (*setValueAxisTicksVisible)(THIS_TYPE* _this, leBarGraphValueAxis axis, leBool vis); \
148 uint32_t (*getValueAxisTicksInterval)(const THIS_TYPE* _this, leBarGraphValueAxis axis); \
149 leResult (*setValueAxisTicksInterval)(THIS_TYPE* _this, leBarGraphValueAxis axis, uint32_t itv); \
150 leBarGraphTickPosition (*getValueAxisTicksPosition)(const THIS_TYPE* _this, leBarGraphValueAxis axis); \
151 leResult (*setValueAxisTicksPosition)(THIS_TYPE* _this, leBarGraphValueAxis axis, leBarGraphTickPosition pos); \
152 leBool (*getValueAxisSubticksVisible)(const THIS_TYPE* _this, leBarGraphValueAxis axis); \
153 leResult (*setValueAxisSubticksVisible)(THIS_TYPE* _this, leBarGraphValueAxis axis, leBool vis); \
154 uint32_t (*getValueAxisSubticksInterval)(const THIS_TYPE* _this, leBarGraphValueAxis axis); \
155 leResult (*setValueAxisSubticksInterval)(THIS_TYPE* _this, leBarGraphValueAxis axis, uint32_t itv); \
156 leBarGraphTickPosition (*getValueAxisSubticksPosition)(const THIS_TYPE* _this, leBarGraphValueAxis axis); \
157 leResult (*setValueAxisSubticksPosition)(THIS_TYPE* _this, leBarGraphValueAxis axis, leBarGraphTickPosition pos); \
158 leBool (*getCategoryAxisTicksVisible)(const THIS_TYPE* _this); \
159 leResult (*setCategoryAxisTicksVisible)(THIS_TYPE* _this, leBool vis); \
160 leBarGraphTickPosition (*getCategoryAxisTicksPosition)(const THIS_TYPE* _this); \
161 leResult (*setCategoryAxisTicksPosition)(THIS_TYPE* _this, leBarGraphTickPosition pos); \
162 leBool (*getCategoryAxisLabelsVisible)(const THIS_TYPE* _this); \
163 leResult (*setCategoryAxisLabelsVisible)(THIS_TYPE* _this, leBool vis); \
164 leResult (*addSeries)(THIS_TYPE* _this, uint32_t* seriesID); \
165 leScheme* (*getSeriesScheme)(const THIS_TYPE* _this, uint32_t seriesID); \
166 leResult (*setSeriesScheme)(THIS_TYPE* _this, uint32_t seriesID, const leScheme* schm); \
167 leResult (*addDataToSeries)(THIS_TYPE* _this, uint32_t seriesID, int32_t val, uint32_t* idx); \
168 leResult (*setDataInSeries)(THIS_TYPE* _this, uint32_t seriesID, uint32_t index, int32_t value); \
169 leResult (*clearData)(THIS_TYPE* _this); \
170 leFont* (*getTicksLabelFont)(THIS_TYPE* _this); \
171 leResult (*setTicksLabelFont)(THIS_TYPE* _this, const leFont* font); \
172 leBool (*getGridLinesVisible)(const THIS_TYPE* _this, leBarGraphValueAxis axis); \
173 leResult (*setGridLinesVisible)(THIS_TYPE* _this, leBarGraphValueAxis axis, leBool vis); \
174 leResult (*addCategory)(THIS_TYPE* _this, uint32_t* id); \
175 leString* (*getCategoryString)(const THIS_TYPE* _this, uint32_t id); \
176 leResult (*setCategoryString)(THIS_TYPE* _this, uint32_t id, const leString* str); \
177 leBool (*getStacked)(const THIS_TYPE* _this); \
178 leResult (*setStacked)(THIS_TYPE* _this, leBool stk); \
179 leBool (*getFillGraphArea)(const THIS_TYPE* _this); \
180 leResult (*setFillGraphArea)(THIS_TYPE* _this, leBool fill); \
184 typedef struct leBarGraphWidgetVTable
186 LE_BARGRAPHWIDGET_VTABLE(leBarGraphWidget)
187 } leBarGraphWidgetVTable;
216 typedef struct leBarGraphWidget
220 const leBarGraphWidgetVTable* fn;
228 uint32_t tickInterval;
229 uint32_t subtickInterval;
230 leBool valueAxisLabelsVisible;
231 leBool valueAxisTicksVisible;
232 leBool valueAxisSubticksVisible;
233 leBool valueGridLinesVisible;
236 const leFont* ticksLabelFont;
237 leBarGraphTickPosition valueAxisTicksPosition;
238 leBarGraphTickPosition valueAxisSubticksPosition;
241 leBool categAxisLabelsVisible;
242 leBool categAxisTicksVisible;
243 leBarGraphTickPosition categAxisTicksPosition;
264 LIB_EXPORT leBarGraphWidget* leBarGraphWidget_New();
276 LIB_EXPORT
void leBarGraphWidget_Constructor(leBarGraphWidget* wgt);
279 #define THIS_TYPE struct leWidget
292 uint32_t getTickLength(
const leBarGraphWidget* _this);
309 virtual leResult setTickLength(leBarGraphWidget* _this,
326 virtual uint32_t getMinValue(
const leBarGraphWidget* _this,
327 leBarGraphValueAxis axis);
345 virtual leResult setMinValue(leBarGraphWidget* _this,
346 leBarGraphValueAxis axis,
363 virtual uint32_t getMaxValue(
const leBarGraphWidget* _this,
364 leBarGraphValueAxis axis);
382 virtual leResult setMaxValue(leBarGraphWidget* _this,
383 leBarGraphValueAxis axis,
399 virtual leBool getValueAxisLabelsVisible(
const leBarGraphWidget* _this,
400 leBarGraphValueAxis axis);
419 virtual leResult setValueAxisLabelsVisible(leBarGraphWidget* _this,
420 leBarGraphValueAxis axis,
437 virtual leBool getValueAxisTicksVisible(
const leBarGraphWidget* _this,
438 leBarGraphValueAxis axis);
457 virtual leResult setValueAxisTicksVisible(leBarGraphWidget* _this,
458 leBarGraphValueAxis axis,
475 virtual uint32_t getValueAxisTicksInterval(
const leBarGraphWidget* _this,
476 leBarGraphValueAxis axis);
495 virtual leResult setValueAxisTicksInterval(leBarGraphWidget* _this,
496 leBarGraphValueAxis axis,
514 virtual leBarGraphTickPosition getValueAxisTicksPosition(
const leBarGraphWidget* _this,
515 leBarGraphValueAxis axis);
533 virtual leResult setValueAxisTicksPosition(leBarGraphWidget* _this,
534 leBarGraphValueAxis axis,
535 leBarGraphTickPosition pos);
552 virtual leBool getValueAxisSubticksVisible(
const leBarGraphWidget* _this,
553 leBarGraphValueAxis axis);
572 virtual leResult setValueAxisSubticksVisible(leBarGraphWidget* _this,
573 leBarGraphValueAxis axis,
591 virtual uint32_t getValueAxisSubticksInterval(
const leBarGraphWidget* _this,
592 leBarGraphValueAxis axis);
611 virtual leResult setValueAxisSubticksInterval(leBarGraphWidget* _this,
612 leBarGraphValueAxis axis,
629 virtual leBarGraphTickPosition getValueAxisSubticksPosition(
const leBarGraphWidget* _this,
630 leBarGraphValueAxis axis);
648 virtual leResult setValueAxisSubticksPosition(leBarGraphWidget* _this,
649 leBarGraphValueAxis axis,
650 leBarGraphTickPosition pos);
664 virtual leBool getCategoryAxisTicksVisible(
const leBarGraphWidget* _this);
679 virtual leResult setCategoryAxisTicksVisible(leBarGraphWidget* _this,
693 virtual leBarGraphTickPosition getCategoryAxisTicksPosition(
const leBarGraphWidget* _this);
708 virtual leResult setCategoryAxisTicksPosition(leBarGraphWidget* _this,
709 leBarGraphTickPosition pos)
726 virtual leResult setCategoryAxisLabelsVisible(leBarGraphWidget* _this,
742 virtual leResult addSeries(leBarGraphWidget* _this,
757 virtual leScheme* getSeriesScheme(
const leBarGraphWidget* _this,
776 leResult setSeriesScheme(leBarGraphWidget* _this,
798 leResult setDataInSeries(leBarGraphWidget* _this,
813 virtual leResult clearData(leBarGraphWidget* _this);
826 virtual leFont* getTicksLabelFont(leBarGraphWidget* _this);
842 virtual leResult setTicksLabelFont(
const leBarGraphWidget* _this,
858 virtual leBool getGridLinesVisible(
const leBarGraphWidget* _this,
859 leBarGraphValueAxis axis);
877 virtual leResult setGridLinesVisible(leBarGraphWidget* _this,
878 leBarGraphValueAxis axis,
894 virtual leResult addCategory(leBarGraphWidget* _this,
910 virtual leString* getCategoryString(
const leBarGraphWidget* _this,
928 virtual leResult setCategoryString(leBarGraphWidget* _this,
942 virtual leBool getStacked(
const leBarGraphWidget* _this);
957 virtual leResult setStacked(leBarGraphWidget* _this,
970 virtual leBool getFillGraphArea(
const leBarGraphWidget* _this);
984 virtual leResult setFillGraphArea(THIS_TYPE* _this,
990 #endif // LE_BARGRAPH_WIDGET_ENABLED
Defines common math functions for general use.
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
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
String utility functions and definitions.
Dynamic string functions and definitions.
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
Common macros and definitions used by Legato.
const leStringVTable * fn
Definition: legato_string.h:109
LIB_EXPORT leScheme * leGetDefaultScheme()
Get default scheme.
Definition: legato_state.c:485
LIB_EXPORT leResult leStringUtils_GetRectCStr(const char *str, const leFont *font, leRect *rect)
Gets the bounding rectangle for a C-style string.
Definition: legato_stringutils.c:128
This structure represents a integer Cartesian point.
Definition: legato_common.h:357