1 /**
2  * @file lv_arc_private.h
3  *
4  */
5 
6 #ifndef LV_ARC_PRIVATE_H
7 #define LV_ARC_PRIVATE_H
8 
9 #ifdef __cplusplus
10 extern "C" {
11 #endif
12 
13 /*********************
14  *      INCLUDES
15  *********************/
16 #include "../../core/lv_obj_private.h"
17 #include "lv_arc.h"
18 
19 #if LV_USE_ARC != 0
20 
21 /*********************
22  *      DEFINES
23  *********************/
24 
25 /**********************
26  *      TYPEDEFS
27  **********************/
28 
29 struct _lv_arc_t {
30     lv_obj_t obj;
31     int32_t rotation;
32     lv_value_precise_t indic_angle_start;
33     lv_value_precise_t indic_angle_end;
34     lv_value_precise_t bg_angle_start;
35     lv_value_precise_t bg_angle_end;
36     int32_t value;              /**< Current value of the arc */
37     int32_t min_value;          /**< Minimum value of the arc */
38     int32_t max_value;          /**< Maximum value of the arc */
39     uint32_t dragging    : 1;
40     uint32_t type        : 2;
41     uint32_t min_close   : 1;   /**< 1: the last pressed angle was closer to minimum end */
42     uint32_t in_out      : 1;   /**< 1: The click was within the background arc angles. 0: Click outside */
43     uint32_t chg_rate;          /**< Drag angle rate of change of the arc (degrees/sec) */
44     uint32_t last_tick;         /**< Last dragging event timestamp of the arc */
45     lv_value_precise_t last_angle;  /**< Last dragging angle of the arc */
46     int16_t knob_offset;        /**< knob offset from the main arc */
47 };
48 
49 
50 /**********************
51  * GLOBAL PROTOTYPES
52  **********************/
53 
54 /**********************
55  *      MACROS
56  **********************/
57 
58 #endif /* LV_USE_ARC != 0 */
59 
60 #ifdef __cplusplus
61 } /*extern "C"*/
62 #endif
63 
64 #endif /*LV_ARC_PRIVATE_H*/
65