MPLAB® Harmony Graphics Suite > Graphics Library > Aria Graphics Library > Aria User Interface Library Interface > b) Data Types and Constants > laRadialMenuWidget Structure
MPLAB® Harmony Graphics Suite
laRadialMenuWidget Structure

Enumeration: laRadialMenuWidget_t 

A radial menu is a master widget that manages the movement, in an elliptical track, of a list of widgets. It also manages the draw order and scaling of each widget item. 

It is essentially a group of widgets which provides a mutually exclusive selection capability so that only one item may be selected at any one time.

C
typedef struct laRadialMenuWidget_t {
  laWidget widget;
  laRadialMenuWidgetState state;
  int32_t prominentIndex;
  int32_t lastProminentIndex;
  int32_t userRequestedAngleDiff;
  int32_t targetAngleDiff;
  int32_t userRequestedDirection;
  laBool drawEllipse;
  laBool highlightProminent;
  laHAlignment halign;
  laVAlignment valign;
  laImageWidget* highlighter;
  int32_t a;
  int32_t b;
  int32_t theta;
  laBool touchPressed;
  laBool ellipseChanged;
  laRadialMenuWidgetScaleType scaleItemSize;
  int32_t maxSizePercent;
  int32_t minSizePercent;
  GFX_Rect touchArea;
  laRadialMenuWidgetScaleType scaleItemAlpha;
  int32_t maxAlphaAmount;
  int32_t minAlphaAmount;
  int32_t itemsShown;
  laList widgetList;
  laList shownList;
  laList hiddenList;
  laRadialMenuItemNode* widestWidgetItem;
  laRadialMenuItemNode* tallestWidgetItem;
  laRadialMenuWidget_ItemSelectedEvent itemSelectedEvent;
  laRadialMenuWidget_ItemProminenceChangedEvent itemProminenceChangedEvent;
  laRadialMenuEllipseType ellipseType;
  GFXU_ExternalAssetReader* reader;
} laRadialMenuWidget;
Members
Members 
Description 
laWidget widget; 
widget base class 
int32_t userRequestedAngleDiff; 
the angle for the radial menu to rotate as requested by user 
int32_t targetAngleDiff; 
the angle for the radial menu to rotate for prominent item to be in front 
int32_t userRequestedDirection; 
tracks the direction that the user requested for rotation 
laBool drawEllipse; 
indicates if the radial menu is selected 
laBool highlightProminent; 
highlight the prominent widget 
laHAlignment halign; 
horizontal alignment 
laVAlignment valign; 
vertical alignment 
laImageWidget* highlighter; 
this widget manages the selector art asset 
int32_t a; 
the half-length of the 0-180 axis of the ellipse 
int32_t b; 
the half-length of the 90-270 axis of the ellipse 
int32_t theta; 
the angle of rotation of the entire ellipse 
laBool touchPressed; 
keep track of users touch input 
laBool ellipseChanged; 
keeps track if the elliptical track has changed 
laRadialMenuWidgetScaleType scaleItemSize; 
the enable item size scaling within the widget 
int32_t maxSizePercent; 
the maximum size scale between 1 - 200 
int32_t minSizePercent; 
the minimum size scale between 1 - 200 
GFX_Rect touchArea; 
the area specified within the widget that touch events are detected 
laRadialMenuWidgetScaleType scaleItemAlpha; 
the enable item alpha scaling within the widget 
int32_t maxAlphaAmount; 
the maximum alpha between 0 - 255 
int32_t minAlphaAmount; 
the minimum alpha between 0 - 255 
int32_t itemsShown; 
keeps count of how many items to visible, this number should be less than or equal to total number of widget items 
laList widgetList; 
this is the list of widgets 
laList shownList; 
this is the partial list of widgets shown 
laList hiddenList; 
this is the partial list of widgets hidden 
laRadialMenuItemNode* widestWidgetItem; 
keeps track of which widget is the widgets for major axis calculation 
laRadialMenuItemNode* tallestWidgetItem; 
keeps track of which widget is the widgets for minor axis calculation 
laRadialMenuWidget_ItemSelectedEvent itemSelectedEvent; 
an item is selected event callback 
laRadialMenuWidget_ItemProminenceChangedEvent itemProminenceChangedEvent; 
whenever a new item is in prominence event callback 
GFXU_ExternalAssetReader* reader; 
asset reader 
Remarks

None.

MPLAB® Harmony Graphics Suite