| 127 | } |
| 128 | |
| 129 | static void statusbar_constructor(const lv_obj_class_t* class_p, lv_obj_t* obj) { |
| 130 | LV_UNUSED(class_p); |
| 131 | LV_TRACE_OBJ_CREATE("begin"); |
| 132 | lv_obj_remove_flag(obj, LV_OBJ_FLAG_SCROLLABLE); |
| 133 | LV_TRACE_OBJ_CREATE("finished"); |
| 134 | auto* statusbar = (Statusbar*)obj; |
| 135 | statusbar->pubsub_subscription = statusbar_data.pubsub->subscribe([statusbar](auto) { |
| 136 | statusbar_pubsub_event(statusbar); |
| 137 | }); |
| 138 | |
| 139 | if (!statusbar_data.time_update_timer->isRunning()) { |
| 140 | statusbar_data.time_update_timer->start(); |
| 141 | statusbar_data.systemEventSubscription = kernel::subscribeSystemEvent( |
| 142 | kernel::SystemEvent::Time, |
| 143 | onTimeChanged |
| 144 | ); |
| 145 | } |
| 146 | } |
| 147 | |
| 148 | static void statusbar_destructor(const lv_obj_class_t* class_p, lv_obj_t* obj) { |
| 149 | auto* statusbar = (Statusbar*)obj; |
nothing calls this directly
no test coverage detected