static void layer_update(Layer* me, GContext* ctx) { if (timer == NULL) { return; } graphics_context_set_text_color(ctx, GColorBlack); graphics_context_set_stroke_color(ctx, GColorBlack); char summary_str[32]; timer_duration_str(timer->length, settings()->timers_hours, summary_str, 32); graphics_draw_text(ctx, summary_str, fonts_get_system_font(FONT_KEY_GOTHIC_28_BOLD), GRect(0, 0, 144 - 16, 28), GTextOverflowModeFill, GTextAlignmentCenter, NULL); // Draw Minutes char* time_str = "000"; char mode_str[16]; switch (mode) { case MODE_HOURS: snprintf(time_str, 3, "%02d", hours); snprintf(mode_str, 16, hours == 1 ? "HOUR" : "HOURS"); break; case MODE_MINUTES: snprintf(time_str, 3, "%02d", minutes); snprintf(mode_str, 16, seconds == 1 ? "MINUTE" : "MINUTES"); break; case MODE_SECONDS: snprintf(time_str, 3, "%02d", seconds); snprintf(mode_str, 16, seconds == 1 ? "SECOND" : "SECONDS"); break; } graphics_draw_text(ctx, time_str, font_duration, GRect(0, 27, 144 - 16, 70), GTextOverflowModeTrailingEllipsis, GTextAlignmentCenter, NULL); graphics_draw_text(ctx, mode_str, fonts_get_system_font(FONT_KEY_GOTHIC_18_BOLD), GRect(0, 98, 144 - 16, 18), GTextOverflowModeTrailingEllipsis, GTextAlignmentCenter, NULL); }
void timer_draw(Timer* timer, GContext* ctx) { char* time_left = malloc(32); GBitmap* row_bmp = NULL; GBitmap* dir_bmp = NULL; if (NULL == timer) { return; } timer_duration_str(timer->time_left, settings()->timers_hours, time_left, 32); switch (timer->status) { case TIMER_STATUS_RUNNING: row_bmp = bitmaps_get_bitmap(RESOURCE_ID_MENU_ICON_PLAY); break; case TIMER_STATUS_PAUSED: row_bmp = bitmaps_get_bitmap(RESOURCE_ID_MENU_ICON_PAUSE); break; case TIMER_STATUS_STOPPED: row_bmp = bitmaps_get_bitmap(RESOURCE_ID_MENU_ICON_STOP); break; case TIMER_STATUS_FINISHED: row_bmp = bitmaps_get_bitmap(RESOURCE_ID_MENU_ICON_DONE); break; } switch (timer->direction) { case TIMER_DIRECTION_UP: dir_bmp = bitmaps_get_bitmap(RESOURCE_ID_ARROW_UP); break; case TIMER_DIRECTION_DOWN: dir_bmp = bitmaps_get_bitmap(RESOURCE_ID_ARROW_DOWN); break; } graphics_context_set_text_color(ctx, GColorBlack); if (row_bmp != NULL) { graphics_draw_bitmap_in_rect(ctx, row_bmp, GRect(8, 10, 20, 20)); } graphics_draw_text(ctx, time_left, fonts_get_system_font(FONT_KEY_GOTHIC_28_BOLD), GRect(36, 1, 110, 32), 0, GTextAlignmentLeft, NULL); if (dir_bmp != NULL) { graphics_draw_bitmap_in_rect(ctx, dir_bmp, GRect(132, 16, 8, 8)); } free(time_left); }