Ejemplo n.º 1
0
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);
}
Ejemplo n.º 2
0
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);
}