MPLABĀ® Harmony Graphics Suite  GFX v3.13.0
Legato API Documentation
legato_widget_radial_menu.h
Go to the documentation of this file.
1 /*******************************************************************************
2 * Copyright (C) 2020 Microchip Technology Inc. and its subsidiaries.
3 *
4 * Subject to your compliance with these terms, you may use Microchip software
5 * and any derivatives exclusively with Microchip products. It is your
6 * responsibility to comply with third party license terms applicable to your
7 * use of third party software (including open source software) that may
8 * accompany Microchip software.
9 *
10 * THIS SOFTWARE IS SUPPLIED BY MICROCHIP "AS IS". NO WARRANTIES, WHETHER
11 * EXPRESS, IMPLIED OR STATUTORY, APPLY TO THIS SOFTWARE, INCLUDING ANY IMPLIED
12 * WARRANTIES OF NON-INFRINGEMENT, MERCHANTABILITY, AND FITNESS FOR A
13 * PARTICULAR PURPOSE.
14 *
15 * IN NO EVENT WILL MICROCHIP BE LIABLE FOR ANY INDIRECT, SPECIAL, PUNITIVE,
16 * INCIDENTAL OR CONSEQUENTIAL LOSS, DAMAGE, COST OR EXPENSE OF ANY KIND
17 * WHATSOEVER RELATED TO THE SOFTWARE, HOWEVER CAUSED, EVEN IF MICROCHIP HAS
18 * BEEN ADVISED OF THE POSSIBILITY OR THE DAMAGES ARE FORESEEABLE. TO THE
19 * FULLEST EXTENT ALLOWED BY LAW, MICROCHIP'S TOTAL LIABILITY ON ALL CLAIMS IN
20 * ANY WAY RELATED TO THIS SOFTWARE WILL NOT EXCEED THE AMOUNT OF FEES, IF ANY,
21 * THAT YOU HAVE PAID DIRECTLY TO MICROCHIP FOR THIS SOFTWARE.
22 *******************************************************************************/
23 
24 /*******************************************************************************
25  Module for Microchip Graphics Library - Legato User Interface Library
26 
27  Company:
28  Microchip Technology Inc.
29 
30  File Name:
31  legato_widget_radial_menu.h
32 
33  Summary:
34 
35 
36  Description:
37  This module implements radial menu widget functions.
38 *******************************************************************************/
39 
46 #ifndef LEGATO_RADIALMENU_H
47 #define LEGATO_RADIALMENU_H
48 
50 
51 #if LE_RADIALMENU_WIDGET_ENABLED == 1
52 
53 #ifdef __cplusplus
54 extern "C" {
55 #endif
56 
61 
62 typedef struct leRadialMenuWidget leRadialMenuWidget;
63 
64 typedef void (* leRadialMenuWidget_ItemProminenceChangedEvent)(leRadialMenuWidget*, leWidget*, int32_t);
65 
66 // *****************************************************************************
67 // *****************************************************************************
68 // Section: Data Types and Constants
69 // *****************************************************************************
70 // *****************************************************************************
75 typedef enum leRadialMenuWidgetState
76 {
77  LE_RADIAL_MENU_INIT,
78  LE_RADIAL_MENU_INPUT_READY,
79  LE_RADIAL_MENU_HANDLE_USER_MOVE_REQUEST,
80  LE_RADIAL_MENU_RESET_TO_INPUT_POS
81 } leRadialMenuWidgetState;
82 
87 typedef enum leRadialMenuWidgetInterpolationMode
88 {
89  LE_RADIAL_MENU_INTERPOLATE_OFF,
90  LE_RADIAL_MENU_INTERPOLATE_GRADUAL,
91  LE_RADIAL_MENU_INTERPOLATE_PROMINENT
92 } leRadialMenuWidgetInterpolationMode;
93 
94 /* internal use only */typedef struct leRadialMenuWidget leRadialMenuWidget;
99 
100 #define LE_RADIALMENUWIDGET_VTABLE(THIS_TYPE) \
101  LE_WIDGET_VTABLE(THIS_TYPE) \
102  \
103  leBool (*isProminent)(const THIS_TYPE* _this, const leWidget* widget); \
104  leWidget* (*getProminent)(const THIS_TYPE* _this); \
105  leResult (*setProminent)(THIS_TYPE* _this, const leWidget* widget); \
106  int32_t (*getProminentIndex)(const THIS_TYPE* _this); \
107  leResult (*setProminentIndex)(THIS_TYPE* _this, int32_t index); \
108  leResult (*setNumberOfItemsShown)(THIS_TYPE* _this, uint32_t cnt); \
109  leResult (*setHighlightProminent)(THIS_TYPE* _this, leBool hl); \
110  int32_t (*getMajorAxis)(const THIS_TYPE* _this); \
111  leResult (*setMajorAxis)(THIS_TYPE* _this, int32_t a); \
112  int32_t (*getMinorAxis)(const THIS_TYPE* _this); \
113  leResult (*setMinorAxis)(THIS_TYPE* _this, int32_t b); \
114  int32_t (*getTheta)(const THIS_TYPE* _this); \
115  leResult (*setTheta)(THIS_TYPE* _this, int32_t tht); \
116  leResult (*setScaleMode)(THIS_TYPE* _this, leRadialMenuWidgetInterpolationMode mode); \
117  leResult (*setScaleRange)(THIS_TYPE* _this, int32_t min, int32_t max); \
118  leResult (*setBlendMode)(THIS_TYPE* _this, leRadialMenuWidgetInterpolationMode mode); \
119  leResult (*setBlendRange)(THIS_TYPE* _this, int32_t min, int32_t max); \
120  leResult (*setTouchArea)(THIS_TYPE* _this, int32_t x, int32_t y, int32_t width, int32_t height); \
121  leResult (*setDrawEllipse)(THIS_TYPE* _this, leBool b); \
122  leRadialMenuWidget_ItemProminenceChangedEvent (*getItemProminenceChangedEventCallback)(const THIS_TYPE* _this); \
123  leResult (*setItemProminenceChangedEventCallback)(THIS_TYPE* _this, leRadialMenuWidget_ItemProminenceChangedEvent cb);
124 
125 typedef struct leRadialMenuWidgetVTable
126 {
127  LE_RADIALMENUWIDGET_VTABLE(leRadialMenuWidget)
128 } leRadialMenuWidgetVTable;
129 
135 enum leRadialMenuItemState
136 {
137  LE_RMI_NOT_VISIBLE,
138  LE_RMI_WAITING_FOR_SORT,
139  LE_RMI_VISIBLE,
140  LE_RMI_PROMINENT
141 };
142 
147 typedef struct leRadialMenuItemNode
148 {
149  leWidget* widget; // point to the widget of the item
150  lePoint point;
151  int32_t angle;
152  int32_t absAngle;
153  int32_t adjustedAngle;
154  int32_t paintAngle;
155  uint32_t percent;
156 
157  leRect origSize; //the original size of the widget, it is a reference point for scaling
158  uint32_t origAlphaAmount; //the original alpha value of the widget, it is a reference point for scaling
159 
160  enum leRadialMenuItemState state;
161 
162 } leRadialMenuItemNode;
163 
164 // *****************************************************************************
173 typedef struct leRadialMenuWidget
174 {
175  leWidget widget; // widget base class
176 
177  const leRadialMenuWidgetVTable* fn;
178 
179  leRadialMenuWidgetState state;
180 
181  int32_t prominentIndex;
182 
183  leBool drawEllipse; // indicates if the radial menu is selected
184  leBool highlightProminent; // highlight the prominent widget
185 
186  struct
187  {
188  leBool invalid;
189  int32_t a; // the half-length of the 0-180 axis of the ellipse
190  int32_t b; // the half-length of the 90-270 axis of the ellipse
191  int32_t theta; // the angle of rotation of the entire ellipse
192  } ellipse;
193 
194  struct
195  {
196  uint32_t maxWidth;
197  uint32_t maxHeight;
198  uint32_t alpha;
199  int32_t firstVisibleItem;
200  uint32_t lastZ;
201  } paintState;
202 
203  leBool touchPressed; // keep track of users touch input
204  int32_t rotationDegrees;
205  int32_t angleSlice;
206 
207  leRadialMenuWidgetInterpolationMode scaleMode; // the enable item size scaling within the widget
208 
209  int32_t maxSizePercent; // the maximum size scale between 1 - 200%
210  int32_t minSizePercent; // the minimum size scale between 1 - 200%
211 
212  uint32_t touchX; // the x offset of the touch area as a percentage
213  uint32_t touchY; // the y offset of the touch area as a percentage
214  uint32_t touchWidth; // the width of the touch area as a percentage
215  uint32_t touchHeight; // the height of the touch area as a percentage
216 
217  leRect touchArea; // the area specified within the widget that touch events are detected in pixels
218 
219  int32_t minFlickDelta; // amount of distance that must be dragged in a single
220  // frame to trigger momentum mode
221 
222  int32_t momentum; // current momentum value
223  int32_t maxMomentum; // maximum momentum value
224  int32_t momentumFalloff; // momentum falloff rate
225  int32_t rotation; // determines actual rotation of the wheel
226  int32_t rotationCounter; // time-based limiter for rotation calculations
227  int32_t rotationTick; // rotation time accumulator
228 
229  int32_t snapState;
230  int32_t snapCounter;
231  int32_t snapMagnitude;
232 
233  leRadialMenuWidgetInterpolationMode blendMode; // the enable item alpha scaling within the widget
234 
235  int32_t maxAlphaAmount; // the maximum alpha between 0 - 255
236  int32_t minAlphaAmount; // the minimum alpha between 0 - 255
237 
238  uint32_t itemsShown; // keeps count of how many items to visible, this number should be less than or equal to total number of widget items
239  leList widgetList; // this is the list of widgets
240  leBool positionsInvalid;
241 
242  leRadialMenuWidget_ItemProminenceChangedEvent itemProminenceChangedEvent; // whenever a new item is in prominence event callback
243 } leRadialMenuWidget;
244 
245 
246 // *****************************************************************************
247 // *****************************************************************************
248 // Section: Routines
249 // *****************************************************************************
250 // *****************************************************************************
251 
263 leRadialMenuWidget* leRadialMenuWidget_New(void);
264 
275 void leRadialMenuWidget_Constructor(leRadialMenuWidget* wgt);
276 
277 #ifdef _DOXYGEN_
278 #define THIS_TYPE struct leWidget
279 
280 // *****************************************************************************
281 /* Virtual Member Function:
282  leBool isProminent(const leRadialMenuWidget* _this,
283  const leWidget* widget)
284 
285  Summary:
286  Evaluates a widget to see if it is the prominent widget
287 
288  Description:
289  Evaluates a widget to see if it is the prominent widget
290 
291  Parameters:
292  const leRadialMenuWidget* _this - The radial menu bar widget to operate on
293  const leWidget* widget -
294 
295  Remarks:
296  Usage - _this->fn->isProminent(_this, widget);
297 
298  Returns:
299  leBool - the prominent indicator
300 */
301 
302 // *****************************************************************************
303 /* Virtual Member Function:
304  leWidget* getProminent(const leRadialMenuWidget* _this)
305 
306  Summary:
307  Gets the prominent child widget
308 
309  Description:
310  Gets the prominent child widget
311 
312  Parameters:
313  const leRadialMenuWidget* _this - The radial menu widget to operate on
314 
315  Remarks:
316  Usage - _this->fn->getProminent(_this);
317 
318  Returns:
319  leWidget* - the prominent child widget
320 */
321 
322 // *****************************************************************************
323 /* Virtual Member Function:
324  leResult setProminent(leRadialMenuWidget* _this,
325  const leWidget* widget)
326 
327  Summary:
328  Sets a widget as prominent
329 
330  Description:
331  Sets a widget as prominent
332 
333  Parameters:
334  leRadialMenuWidget* _this - The radial menu bar widget to operate on
335  const leWidget* widget - the widget to test
336 
337  Remarks:
338  Usage - _this->fn->setProminent(_this, widget);
339 
340  Returns:
341  leResult - the result of the operation
342 */
355 virtual leResult setProminent(leRadialMenuWidget* _this,
356  const leWidget* widget);
357 
358 
359 // *****************************************************************************
360 /* Virtual Member Function:
361  int32_t getProminentIndex(const leRadialMenuWidget* _this)
362 
363  Summary:
364  Gets the prominent item index
365 
366  Description:
367  Gets the prominent item index
368 
369  Parameters:
370  const leRadialMenuWidget* _this - The radial menu bar widget to operate on
371 
372  Remarks:
373  Usage - _this->fn->getProminentIndex(_this);
374 
375  Returns:
376  int32_t - the prominent index
377 */
388 virtual int32_t getProminentIndex(const leRadialMenuWidget* _this);
389 
390 // *****************************************************************************
391 /* Virtual Member Function:
392  leResult setProminentIndex(leRadialMenuWidget* _this,
393  int32_t index)
394 
395  Summary:
396  Sets the prominent item index
397 
398  Description:
399  Sets the prominent item index
400 
401  Parameters:
402  leRadialMenuWidget* _this - The radial menu bar widget to operate on
403  int32_t index - the desired prominent index
404 
405  Remarks:
406  Usage - _this->fn->setProminentIndex(_this, index);
407 
408  Returns:
409  leResult - the result of the operation
410 */
423 virtual leResult setProminentIndex(leRadialMenuWidget* _this,
424  int32_t index);
425 
426 // *****************************************************************************
427 /* Virtual Member Function:
428  leResult setNumberOfItemsShown(leRadialMenuWidget* _this,
429  uint32_t cnt)
430 
431  Summary:
432  Sets the number of items shown
433 
434  Description:
435  Sets the number of items shown
436 
437  Parameters:
438  leRadialMenuWidget* _this - The radial menu bar widget to operate on
439  uint32_t cnt - the item count
440 
441  Remarks:
442  Usage - _this->fn->setNumberOfItemsShown(_this, cnt);
443 
444  Returns:
445  leResult - the result of the operation
446 */
447 
448 // *****************************************************************************
449 /* Virtual Member Function:
450  leResult setHighlightProminent(leRadialMenuWidget* _this,
451  leBool hl)
452 
453  Summary:
454  Sets the highlight prominent setting value
455 
456  Description:
457  Sets the highlight prominent setting value
458 
459  Parameters:
460  leRadialMenuWidget* _this - The radial menu bar widget to operate on
461  leBool hl - the setting value
462 
463  Remarks:
464  Usage - _this->fn->setHighlightProminent(_this, hl);
465 
466  Returns:
467  leResult - the result of the operation
468 */
481 virtual leResult setHighlightProminent(leRadialMenuWidget* _this,
482  leBool hl);
483 
484 // *****************************************************************************
485 /* Virtual Member Function:
486  int32_t getTheta(const leRadialMenuWidget* _this)
487 
488  Summary:
489  Gets the menu ellipse rotation coefficient
490 
491  Description:
492  Gets the menu ellipse rotation coefficient
493 
494  Parameters:
495  const leRadialMenuWidget* _this - The radial menu bar widget to operate on
496 
497  Remarks:
498  Usage - _this->fn->getTheta(_this);
499 
500  Returns:
501  int32_t - the theta value
502 */
513 virtual int32_t getTheta(const leRadialMenuWidget* _this);
514 
515 // *****************************************************************************
516 /* Virtual Member Function:
517  leResult setTheta(leRadialMenuWidget* _this,
518  int32_t tht)
519 
520  Summary:
521  Sets the menu ellipse rotation coefficient
522 
523  Description:
524  Sets the menu ellipse rotation coefficient
525 
526  Parameters:
527  leRadialMenuWidget* _this - The radial menu bar widget to operate on
528  int32_t tht - the theta value
529 
530  Remarks:
531  Usage - _this->fn->setTheta(_this, tht);
532 
533  Returns:
534  leResult - the result of the operation
535 */
548 virtual leResult setTheta(leRadialMenuWidget* _this,
549  int32_t tht);
550 
551 // *****************************************************************************
552 /* Virtual Member Function:
553  leResult setEllipseType(leRadialMenuWidget* _this,
554  leRadialMenuEllipseType type)
555 
556  Summary:
557  Sets the menu ellipse type
558 
559  Description:
560  Sets the menu ellipse type
561 
562  Parameters:
563  leRadialMenuWidget* _this - The radial menu bar widget to operate on
564  leRadialMenuEllipseType type - the type
565 
566  Remarks:
567  Usage - _this->fn->setEllipseType(_this, type);
568 
569  Returns:
570  leResult - the result of the operation
571 */
584 virtual leResult setEllipseType(leRadialMenuWidget* _this,
585  leRadialMenuEllipseType type);
586 
587 // *****************************************************************************
588 /* Virtual Member Function:
589  leResult addWidget(leRadialMenuWidget* _this,
590  leWidget* wgt)
591 
592  Summary:
593  Adds a widget to the ellipse
594 
595  Description:
596  Adds a widget to the ellipse
597 
598  Parameters:
599  leRadialMenuWidget* _this - The radial menu bar widget to operate on
600  leWidget* wgt - the widget to add
601 
602  Remarks:
603  Usage - _this->fn->addWidget(_this, wgt);
604 
605  Returns:
606  leResult - the result of the operation
607 */
620 virtual leResult addWidget(leRadialMenuWidget* _this,
621  leWidget* wgt);
622 
623 // *****************************************************************************
624 /* Virtual Member Function:
625  leResult removeWidget(leRadialMenuWidget* _this,
626  leWidget* wgt)
627 
628  Summary:
629  Removes a widget from the ellipse
630 
631  Description:
632  Removes a widget from the ellipse
633 
634  Parameters:
635  leRadialMenuWidget* _this - The radial menu bar widget to operate on
636  leWidget* wgt - the widget to remove
637 
638  Remarks:
639  Usage - _this->fn->removeWidget(_this, wgt);
640 
641  Returns:
642  leResult - the result of the operation
643 */
656 virtual leResult removeWidget(leRadialMenuWidget* _this,
657  leWidget* wgt);
658 
659 // *****************************************************************************
660 /* Virtual Member Function:
661  leWidget* getWidgetAtIndex(const leRadialMenuWidget* _this,
662  int32_t idx)
663 
664  Summary:
665  Gets a widget at a given index
666 
667  Description:
668  Gets a widget at a given index
669 
670  Parameters:
671  const leRadialMenuWidget* _this - The radial menu bar widget to operate on
672  int32_t idx - the index
673 
674  Remarks:
675  Usage - _this->fn->getWidgetAtIndex(_this, idx);
676 
677  Returns:
678  leWidget* - the widget
679 */
691 virtual leWidget* getWidgetAtIndex(const leRadialMenuWidget* _this,
692  int32_t idx);
693 
694 // *****************************************************************************
695 /* Virtual Member Function:
696  leResult setWidgetAtIndex(leRadialMenuWidget* _this,
697  int32_t idx,
698  leWidget* wgt)
699 
700  Summary:
701  Sets a widget at a given index
702 
703  Description:
704  Sets a widget at a given index
705 
706  Parameters:
707  leRadialMenuWidget* _this - The radial menu bar widget to operate on
708  int32_t idx - the index
709  leWidget* wgt - the widget to set
710 
711  Remarks:
712  Usage - _this->fn->setWidgetAtIndex(_this, idx, wgt);
713 
714  Returns:
715  leResult - the result of the operation
716 */
730 virtual leResult setWidgetAtIndex(leRadialMenuWidget* _this,
731  int32_t idx,
732  leWidget* wgt);
733 
734 // *****************************************************************************
735 /* Virtual Member Function:
736  leResult removeAllWidgets(leRadialMenuWidget* _this)
737 
738  Summary:
739  Removes all widgets from the menu
740 
741  Description:
742  Removes all widgets from the menu
743 
744  Parameters:
745  leRadialMenuWidget* _this - The radial menu bar widget to operate on
746 
747  Remarks:
748  Usage - _this->fn->removeAllWidgets(_this);
749 
750  Returns:
751  leResult - the result of the operation
752 */
764 virtual leResult removeAllWidgets(leRadialMenuWidget* _this);
765 
766 // *****************************************************************************
767 /* Virtual Member Function:
768  leResult setScaleMode(leRadialMenuWidget* _this,
769  leRadialMenuWidgetInterpolationMode mode)
770 
771  Summary:
772  Sets the menu item scaling mode
773 
774  Description:
775  Sets the menu item scaling mode
776 
777  Parameters:
778  leRadialMenuWidget* _this - The radial menu bar widget to operate on
779  leRadialMenuWidgetInterpolationMode mode -
780 
781  Remarks:
782  Usage - _this->fn->setScaleMode(_this, mode);
783 
784  Returns:
785  leResult - the result of the operation
786 */
799 virtual leResult setScaleMode(leRadialMenuWidget* _this,
800  leRadialMenuWidgetInterpolationMode mode);
801 
802 // *****************************************************************************
803 /* Virtual Member Function:
804  leResult setScaleRange(leRadialMenuWidget* _this,
805  int32_t min,
806  int32_t max)
807 
808  Summary:
809  Sets the scale range for menu items
810 
811  Description:
812  Sets the scale range for menu items
813 
814  Parameters:
815  leRadialMenuWidget* _this - The radial menu bar widget to operate on
816  int32_t min - the minimum value
817  int32_t max - the maximum value
818 
819  Remarks:
820  Usage - _this->fn->setScaleRange(_this, min, max);
821 
822  Returns:
823  leResult - the result of the operation
824 */
838 virtual leResult setScaleRange(leRadialMenuWidget* _this,
839  int32_t min,
840  int32_t max);
841 
842 // *****************************************************************************
843 /* Virtual Member Function:
844  leResult setBlendMode(leRadialMenuWidget* _this,
845  leRadialMenuWidgetInterpolationMode mode)
846 
847  Summary:
848  Sets the menu item blending mode
849 
850  Description:
851  Sets the menu item blending mode
852 
853  Parameters:
854  leRadialMenuWidget* _this - The radial menu bar widget to operate on
855  leRadialMenuWidgetInterpolationMode mode -
856 
857  Remarks:
858  Usage - _this->fn->setBlendMode(_this, mode);
859 
860  Returns:
861  leResult - the result of the operation
862 */
876 virtual leResult setBlendMode(leRadialMenuWidget* _this,
877  leRadialMenuWidgetInterpolationMode mode);
878 
879 // *****************************************************************************
880 /* Virtual Member Function:
881  leResult setBlendRange(leRadialMenuWidget* _this,
882  int32_t min,
883  int32_t max)
884 
885  Summary:
886  Sets the blending range
887 
888  Description:
889  Sets the blending range
890 
891  Parameters:
892  leRadialMenuWidget* _this - The radial menu bar widget to operate on
893  int32_t min - the minimum value
894  int32_t max - the maximum value
895 
896  Remarks:
897  Usage - _this->fn->setBlendRange(_this, min, max);
898 
899  Returns:
900  leResult - the result of the operation
901 */
916 virtual leResult setBlendRange(leRadialMenuWidget* _this,
917  int32_t min,
918  int32_t max);
919 
920 // *****************************************************************************
921 /* Virtual Member Function:
922  leResult setTouchArea(leRadialMenuWidget* _this,
923  int32_t x,
924  int32_t y,
925  int32_t width,
926  int32_t height)
927 
928  Summary:
929  Sets the menu touch area
930 
931  Description:
932  Sets the menu touch area
933 
934  Parameters:
935  leRadialMenuWidget* _this - The radial menu bar widget to operate on
936  int32_t x - the X value
937  int32_t y - the Y value
938  int32_t width - the width value
939  int32_t height - the height value
940 
941  Remarks:
942  Usage - _this->fn->setTouchArea(_this, x, y, width, height);
943 
944  Returns:
945  leResult - the result of the operation
946 */
961 virtual leResult setTouchArea(leRadialMenuWidget* _this,
962  int32_t x,
963  int32_t y,
964  int32_t width,
965  int32_t height);
966 
967 // *****************************************************************************
968 /* Virtual Member Function:
969  leResult setDrawEllipse(leRadialMenuWidget* _this,
970  leBool b)
971 
972  Summary:
973  Sets the draw ellipse setting value
974 
975  Description:
976  Sets the draw ellipse setting value
977 
978  Parameters:
979  leRadialMenuWidget* _this - The radial menu bar widget to operate on
980  leBool b - the setting value
981 
982  Remarks:
983  Usage - _this->fn->setDrawEllipse(_this, b);
984 
985  Returns:
986  leResult - the result of the operation
987 */
1000 virtual leResult setDrawEllipse(leRadialMenuWidget* _this,
1001  leBool b);
1002 
1013 virtual leRadialMenuWidget_ItemSelectedEvent getItemSelectedEventCallback(const leRadialMenuWidget* _this)
1014 
1015 
1028 virtual leResult setItemSelectedEventCallback(leRadialMenuWidget* _this,
1029  leRadialMenuWidget_ItemSelectedEvent cb);
1030 
1041 virtual leRadialMenuWidget_ItemProminenceChangedEvent getItemProminenceChangedEventCallback
1042  (const leRadialMenuWidget* _this)
1043 
1044 
1057 virtual leResult setItemProminenceChangedEventCallback(leRadialMenuWidget* _this,
1058  leRadialMenuWidget_ItemProminenceChangedEvent cb)
1059 
1060 #undef THIS_TYPE
1061 #endif
1062 
1063 #ifdef __cplusplus
1064 }
1065 #endif
1066 
1067 #endif // LE_RADIALMENU_WIDGET_ENABLED
1068 #endif /* LEGATO_RADIALMENU_H */
Common macros and definitions used by Legato.
leResult
This enum represents function call results.
Definition: legato_common.h:123
This struct represents a rectangle.
Definition: legato_common.h:394
Image widget menu functions and definitions.
This struct represents a list.
Definition: legato_list.h:94
Used to define a widget.
Definition: legato_widget.h:624
A linked list implementation.
This structure represents a integer Cartesian point.
Definition: legato_common.h:346
Legato widget definitions.
leBool
This enum represents booleans.
Definition: legato_common.h:146
Definition: widget.py:1
Fixed string functions and definitions.