  | 
  
    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