 |
MPLABĀ® Harmony Graphics Suite
|
Go to the documentation of this file.
45 #ifndef LEGATO_WIDGET_CIRCULAR_GAUGE_H
46 #define LEGATO_WIDGET_CIRCULAR_GAUGE_H
50 #if LE_CIRCULARGAUGE_WIDGET_ENABLED == 1
64 typedef struct leCircularGaugeWidget leCircularGaugeWidget;
78 typedef void (*leCircularGaugeWidget_ValueChangedEvent)(leCircularGaugeWidget*,
87 #define LE_CIRCULARGAUGEWIDGET_VTABLE(THIS_TYPE) \
88 LE_WIDGET_VTABLE(THIS_TYPE) \
90 uint32_t (*getRadius)(const THIS_TYPE* _this); \
91 leResult (*setRadius)(THIS_TYPE* _this, uint32_t rad); \
92 int32_t (*getStartAngle)(const THIS_TYPE* _this); \
93 leResult (*setStartAngle)(THIS_TYPE* _this, int32_t ang); \
94 int32_t (*getCenterAngle)(const THIS_TYPE* _this); \
95 leResult (*setCenterAngle)(THIS_TYPE* _this, int32_t ang); \
96 uint32_t (*getValue)(const THIS_TYPE* _this); \
97 leResult (*setValue)(THIS_TYPE* _this, uint32_t val); \
99 int32_t (*addArc)(THIS_TYPE* _this, uint32_t startAngle, uint32_t endAngle, int32_t offset, const leScheme* schm, uint32_t thk); \
100 leResult (*deleteArc)(THIS_TYPE* _this, uint32_t idx); \
101 leResult (*deleteAllArcs)(THIS_TYPE* _this); \
102 uint32_t (*arcCount)(const THIS_TYPE* _this); \
103 leBool (*getArcEnabled)(const THIS_TYPE* _this, uint32_t idx); \
104 leResult (*setArcEnabled)(THIS_TYPE* _this, uint32_t idx, leBool b); \
105 uint32_t (*getArcStartAngle)(const THIS_TYPE* _this, uint32_t idx); \
106 leResult (*setArcStartAngle)(THIS_TYPE* _this, uint32_t idx, uint32_t val); \
107 uint32_t (*getArcEndAngle)(const THIS_TYPE* _this, uint32_t idx); \
108 leResult (*setArcEndAngle)(THIS_TYPE* _this, uint32_t idx, uint32_t val); \
109 int32_t (*getArcOffset)(const THIS_TYPE* _this, uint32_t idx); \
110 leResult (*setArcOffset)(THIS_TYPE* _this, uint32_t idx, int32_t offs); \
111 const leScheme* (*getArcScheme)(const THIS_TYPE* _this, uint32_t idx); \
112 leResult (*setArcScheme)(THIS_TYPE* _this, uint32_t idx, const leScheme* schm); \
113 uint32_t (*getArcThickness)(const THIS_TYPE* _this, uint32_t idx); \
114 leResult (*setArcThickness)(THIS_TYPE* _this, uint32_t idx, uint32_t thk); \
116 int32_t (*addTickRange)(THIS_TYPE* _this, uint32_t startAngle, uint32_t endAngle, int32_t offset, const leScheme* schm, uint32_t thk, uint32_t div); \
117 leResult (*deleteTickRange)(THIS_TYPE* _this, uint32_t idx); \
118 leResult (*deleteAllTickRanges)(THIS_TYPE* _this); \
119 uint32_t (*tickRangeCount)(const THIS_TYPE* _this); \
120 leBool (*getTickRangeEnabled)(const THIS_TYPE* _this, uint32_t idx); \
121 leResult (*setTickRangeEnabled)(THIS_TYPE* _this, uint32_t idx, leBool b); \
122 uint32_t (*getTickRangeStartAngle)(const THIS_TYPE* _this, uint32_t idx); \
123 leResult (*setTickRangeStartAngle)(THIS_TYPE* _this, uint32_t idx, uint32_t val); \
124 uint32_t (*getTickRangeEndAngle)(const THIS_TYPE* _this, uint32_t idx); \
125 leResult (*setTickRangeEndAngle)(THIS_TYPE* _this, uint32_t idx, uint32_t val); \
126 int32_t (*getTickRangeOffset)(const THIS_TYPE* _this, uint32_t idx); \
127 leResult (*setTickRangeOffset)(THIS_TYPE* _this, uint32_t idx, int32_t offs); \
128 const leScheme* (*getTickRangeScheme)(const THIS_TYPE* _this, uint32_t idx); \
129 leResult (*setTickRangeScheme)(THIS_TYPE* _this, uint32_t idx, const leScheme* schm); \
130 uint32_t (*getTickRangeThickness)(const THIS_TYPE* _this, uint32_t idx); \
131 leResult (*setTickRangeThickness)(THIS_TYPE* _this, uint32_t idx, uint32_t thk); \
132 uint32_t (*getTickRangeDivisions)(const THIS_TYPE* _this, uint32_t idx); \
133 leResult (*setTickRangeDivisions)(THIS_TYPE* _this, uint32_t idx, uint32_t div); \
135 int32_t (*addLabelRange)(THIS_TYPE* _this, uint32_t startVal, uint32_t endVal, int32_t offset, const leScheme* schm, const leFont* fnt, uint32_t div); \
136 leResult (*deleteLabelRange)(THIS_TYPE* _this, uint32_t idx); \
137 leResult (*deleteAllLabelRanges)(THIS_TYPE* _this); \
138 uint32_t (*labelRangeCount)(const THIS_TYPE* _this); \
139 leBool (*getLabelRangeEnabled)(const THIS_TYPE* _this, uint32_t idx); \
140 leResult (*setLabelRangeEnabled)(THIS_TYPE* _this, uint32_t idx, leBool b); \
141 uint32_t (*getLabelRangeStartAngle)(const THIS_TYPE* _this, uint32_t idx); \
142 leResult (*setLabelRangeStartAngle)(THIS_TYPE* _this, uint32_t idx, uint32_t val); \
143 uint32_t (*getLabelRangeEndAngle)(const THIS_TYPE* _this, uint32_t idx); \
144 leResult (*setLabelRangeEndAngle)(THIS_TYPE* _this, uint32_t idx, uint32_t val); \
145 int32_t (*getLabelRangeOffset)(const THIS_TYPE* _this, uint32_t idx); \
146 leResult (*setLabelRangeOffset)(THIS_TYPE* _this, uint32_t idx, int32_t offs); \
147 const leScheme* (*getLabelRangeScheme)(const THIS_TYPE* _this, uint32_t idx); \
148 leResult (*setLabelRangeScheme)(THIS_TYPE* _this, uint32_t idx, const leScheme* schm); \
149 const leFont* (*getLabelRangeFont)(const THIS_TYPE* _this, uint32_t idx); \
150 leResult (*setLabelRangeFont)(THIS_TYPE* _this, uint32_t idx, const leFont* font); \
151 uint32_t (*getLabelRangeDivisions)(const THIS_TYPE* _this, uint32_t idx); \
152 leResult (*setLabelRangeDivisions)(THIS_TYPE* _this, uint32_t idx, uint32_t div); \
154 leBool (*getHandVisible)(const THIS_TYPE* _this); \
155 leResult (*setHandVisible)(THIS_TYPE* _this, leBool vis); \
156 uint32_t (*getHandRadius)(const THIS_TYPE* _this); \
157 leResult (*setHandRadius)(THIS_TYPE* _this, uint32_t rad); \
158 leBool (*getCenterCircleVisible)(const THIS_TYPE* _this); \
159 leResult (*setCenterCircleVisible)(THIS_TYPE* _this, leBool vis); \
160 uint32_t (*getCenterCircleRadius)(const THIS_TYPE* _this); \
161 leResult (*setCenterCircleRadius)(THIS_TYPE* _this, uint32_t rad); \
162 uint32_t (*getCenterCircleThickness)(const THIS_TYPE* _this); \
163 leResult (*setCenterCircleThickness)(THIS_TYPE* _this, uint32_t thk); \
164 leResult (*setValueChangedEventCallback)(THIS_TYPE* _this, leCircularGaugeWidget_ValueChangedEvent cb); \
166 typedef struct leCircularGaugeWidgetVTable
168 LE_CIRCULARGAUGEWIDGET_VTABLE(leCircularGaugeWidget)
169 } leCircularGaugeWidgetVTable;
196 typedef struct leCircularGaugeWidget
200 const leCircularGaugeWidgetVTable* fn;
211 leBool centerCircleVisible;
212 uint32_t centerCircleRadius;
213 uint32_t centerCircleThickness;
220 leCircularGaugeWidget_ValueChangedEvent cb;
221 } leCircularGaugeWidget;
241 typedef struct leCircularGaugeArc
249 } leCircularGaugeArc;
269 typedef struct leCircularGaugeTickRange
278 } leCircularGaugeTickRange;
298 typedef struct leCircularGaugeLabelRange
307 } leCircularGaugeLabelRange;
326 leCircularGaugeWidget* leCircularGaugeWidget_New();
339 void leCircularGaugeWidget_Constructor(leCircularGaugeWidget* gauge);
343 #define THIS_TYPE struct leWidget
356 virtual uint32_t
getRadius(
const leCircularGaugeWidget* _this);
407 virtual int32_t
getStartAngle(
const leCircularGaugeWidget* _this);
438 virtual int32_t
getCenterAngle(
const leCircularGaugeWidget* _this);
471 virtual leBool getHandVisible(
const leCircularGaugeWidget* _this);
487 virtual leResult setTickLabelsVisible(leCircularGaugeWidget* _this,
501 virtual leBool getHandVisible(
const leCircularGaugeWidget* _this);
517 virtual leResult setHandVisible(leCircularGaugeWidget* _this,
531 virtual uint32_t getHandRadius(
const leCircularGaugeWidget* _this);
547 virtual leResult setHandRadius(leCircularGaugeWidget* _this,
562 virtual leBool getCenterCircleVisible(
const leCircularGaugeWidget* _this);
579 virtual leResult setCenterCircleVisible(leCircularGaugeWidget* _this,
593 virtual uint32_t getCenterCircleRadius(
const leCircularGaugeWidget* _this);
610 virtual leResult setCenterCircleRadius(leCircularGaugeWidget* _this,
625 virtual uint32_t getCenterCircleThickness(
const leCircularGaugeWidget* _this);
642 virtual leResult setCenterCircleThickness(leCircularGaugeWidget* _this,
658 virtual leResult setValueChangedEventCallback(leCircularGaugeWidget* _this,
659 leCircularGaugeWidget_ValueChangedEvent cb);
664 #endif // LE_CIRCULARGAUGE_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
leResult leArray_RemoveAt(leArray *arr, uint32_t idx)
Remove value at index.
Definition: legato_array.c:197
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
An array implementation for storing pointers.
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
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.
leResult leArray_Clear(leArray *arr)
Clear array.
Definition: legato_array.c:279
Schemes support various properties that make it possible to customize the color of widgets.
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.
This structure represents a integer Cartesian point.
Definition: legato_common.h:357