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