MPLAB® Harmony Graphics Suite
|
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.
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 |
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 |
None.
MPLAB® Harmony Graphics Suite
|