#include #include #include ui::Label* g_label; void update_time() { time_t t = time(NULL); struct tm* tp = localtime(&t); static char buf[2048]; strftime(buf, sizeof(buf), "%H:%M:%S", tp); g_label->set_text(StringView { buf }); os::EventLoop::the().register_timer(1000, update_time); ui::App::the().main_window()->draw(); } Result luna_main(int argc, char** argv) { ui::App app; TRY(app.init(argc, argv)); auto* window = TRY(ui::Window::create(ui::Rect { 500, 400, 100, 50 })); app.set_main_window(window); window->set_title("Clock"); window->set_background(ui::GRAY); g_label = TRY(make("00:00:00")); g_label->set_font(ui::Font::default_bold_font()); g_label->set_color(ui::BLACK); window->set_main_widget(*g_label); update_time(); return app.run(); }