acid-drop- Hacking the planet from a LilyGo T-Deck using custom firmware |
git clone git://git.acid.vegas/acid-drop.git |
Log | Files | Refs | Archive | README | LICENSE |
lv_objx_templ.c (3300B)
1 /** 2 * @file lv_templ.c 3 * 4 */ 5 6 /** 7 * TODO Remove these instructions 8 * Search and replace: templ -> object short name with lower case(e.g. btn, label etc) 9 * TEMPL -> object short name with upper case (e.g. BTN, LABEL etc.) 10 * 11 * You can remove the defined() clause from the #if statement below. This exists because 12 * LV_USE_TEMPL is not in lv_conf.h or lv_conf_template.h by default. 13 */ 14 15 /********************* 16 * INCLUDES 17 *********************/ 18 //#include "lv_templ.h" /*TODO uncomment this*/ 19 20 #if defined(LV_USE_TEMPL) && LV_USE_TEMPL != 0 21 22 /********************* 23 * DEFINES 24 *********************/ 25 #define MY_CLASS &lv_templ_class 26 27 /********************** 28 * TYPEDEFS 29 **********************/ 30 31 /********************** 32 * STATIC PROTOTYPES 33 **********************/ 34 static void lv_templ_constructor(const lv_obj_class_t * class_p, lv_obj_t * obj); 35 static void lv_templ_destructor(const lv_obj_class_t * class_p, lv_obj_t * obj); 36 static void lv_templ_event(const lv_obj_class_t * class_p, lv_event_t * e); 37 38 /********************** 39 * STATIC VARIABLES 40 **********************/ 41 const lv_obj_class_t lv_templ_class = { 42 .constructor_cb = lv_templ_constructor, 43 .destructor_cb = lv_templ_destructor, 44 .event_cb = lv_templ_event, 45 .width_def = LV_DPI_DEF, 46 .height_def = LV_DPI_DEF, 47 .instance_size = sizeof(lv_templ_t), 48 .group_def = LV_OBJ_CLASS_GROUP_DEF_INHERIT, 49 .editable = LV_OBJ_CLASS_EDITABLE_INHERIT, 50 .base_class = &lv_templ_class 51 }; 52 53 /********************** 54 * MACROS 55 **********************/ 56 57 /********************** 58 * GLOBAL FUNCTIONS 59 **********************/ 60 61 lv_obj_t * lv_templ_create(lv_obj_t * parent) 62 { 63 64 LV_LOG_INFO("begin"); 65 lv_obj_t * obj = lv_obj_class_create_obj(MY_CLASS, parent); 66 lv_obj_class_init_obj(obj); 67 return obj; 68 } 69 70 /*====================== 71 * Add/remove functions 72 *=====================*/ 73 74 /* 75 * New object specific "add" or "remove" functions come here 76 */ 77 78 /*===================== 79 * Setter functions 80 *====================*/ 81 82 /* 83 * New object specific "set" functions come here 84 */ 85 86 /*===================== 87 * Getter functions 88 *====================*/ 89 90 /* 91 * New object specific "get" functions come here 92 */ 93 94 /*===================== 95 * Other functions 96 *====================*/ 97 98 /* 99 * New object specific "other" functions come here 100 */ 101 102 /********************** 103 * STATIC FUNCTIONS 104 **********************/ 105 106 static void lv_templ_constructor(const lv_obj_class_t * class_p, lv_obj_t * obj) 107 { 108 LV_UNUSED(class_p); 109 LV_TRACE_OBJ_CREATE("begin"); 110 111 lv_templ_t * templ = (lv_templ_t *)obj; 112 /*Initialize the widget's data*/ 113 114 LV_TRACE_OBJ_CREATE("finished"); 115 } 116 117 static void lv_templ_destructor(const lv_obj_class_t * class_p, lv_obj_t * obj) 118 { 119 lv_templ_t * templ = (lv_templ_t *)obj; 120 /*Free the widget specific data*/ 121 } 122 123 static void lv_templ_event(const lv_obj_class_t * class_p, lv_event_t * e) 124 { 125 LV_UNUSED(class_p); 126 127 lv_res_t res; 128 129 /*Call the ancestor's event handler*/ 130 res = lv_obj_event_base(MY_CLASS, e); 131 if(res != LV_RES_OK) return; 132 133 /*Add the widget specific event handling here*/ 134 } 135 136 #else /*Enable this file at the top*/ 137 138 /*This dummy typedef exists purely to silence -Wpedantic.*/ 139 typedef int keep_pedantic_happy; 140 #endif