#include #include static Window *s_main_window; static TextLayer *s_time_layer; static TextLayer *s_date_layer; static TextLayer *s_cd_layer; static EffectLayer *s_effect_layer; static void main_window_load(Window *window) { Layer *window_layer = window_get_root_layer(window); GRect bounds = layer_get_bounds(window_layer); s_effect_layer = effect_layer_create(bounds); effect_layer_add_effect(s_effect_layer, effect_invert, NULL); layer_add_child(window_layer,effect_layer_get_layer(s_effect_layer)); s_time_layer = text_layer_create( GRect(0, PBL_IF_ROUND_ELSE(58,52), bounds.size.w, 50) ); // Improve the layout to be more like a watchface text_layer_set_background_color(s_time_layer, GColorClear); text_layer_set_text_color(s_time_layer, GColorWhite); text_layer_set_text(s_time_layer, "00:00"); text_layer_set_font(s_time_layer, fonts_get_system_font(FONT_KEY_ROBOTO_BOLD_SUBSET_49)); text_layer_set_text_alignment(s_time_layer, GTextAlignmentCenter); // Add it as a child layer to the Window's root layer layer_add_child(window_layer, text_layer_get_layer(s_time_layer)); s_date_layer = text_layer_create( GRect(0, PBL_IF_ROUND_ELSE(108,102), bounds.size.w, 50) ); // Improve the layout to be more like a watchface text_layer_set_background_color(s_date_layer, GColorClear); text_layer_set_text_color(s_date_layer, GColorWhite); text_layer_set_text(s_date_layer, "Wed 1st Jan"); text_layer_set_font(s_date_layer, fonts_get_system_font(FONT_KEY_ROBOTO_CONDENSED_21)); text_layer_set_text_alignment(s_date_layer, GTextAlignmentCenter); // Add it as a child layer to the Window's root layer layer_add_child(window_layer, text_layer_get_layer(s_date_layer)); s_cd_layer = text_layer_create( GRect(0, PBL_IF_ROUND_ELSE(18,12), bounds.size.w, 50) ); // Improve the layout to be more like a watchface text_layer_set_background_color(s_cd_layer, GColorClear); text_layer_set_text_color(s_cd_layer, GColorWhite); text_layer_set_text(s_cd_layer, "-----=========="); text_layer_set_font(s_cd_layer, fonts_get_system_font(FONT_KEY_GOTHIC_18)); text_layer_set_text_alignment(s_cd_layer, GTextAlignmentCenter); // Add it as a child layer to the Window's root layer layer_add_child(window_layer, text_layer_get_layer(s_cd_layer)); } static void main_window_unload(Window *window) { text_layer_destroy(s_time_layer); text_layer_destroy(s_date_layer); text_layer_destroy(s_cd_layer); effect_layer_destroy(s_effect_layer); } static void update_time() { time_t temp = time(NULL); struct tm *tick_time = localtime(&temp); static char s_buffer[8]; strftime(s_buffer, sizeof(s_buffer), clock_is_24h_style() ? "%H:%M" : "%I:%M", tick_time); text_layer_set_text(s_time_layer, s_buffer); static char d_buffer[12]; strftime(d_buffer, sizeof(d_buffer), "%a %d %b", tick_time); text_layer_set_text(s_date_layer, d_buffer); } static void tick_handler(struct tm *tick_time, TimeUnits units_changed) { update_time(); } static void init() { s_main_window = window_create(); window_set_window_handlers(s_main_window, (WindowHandlers) { .load = main_window_load, .unload = main_window_unload }); window_stack_push(s_main_window, true); tick_timer_service_subscribe(MINUTE_UNIT, tick_handler); update_time(); } static void deinit() { window_destroy(s_main_window); } int main(void) { init(); app_event_loop(); deinit(); return 0; }