void win_add_duration_init(void) { window = window_create(); layer = layer_create_fullscreen(window); layer_set_update_proc(layer, layer_update); layer_add_to_window(layer, window); layer_action_bar = action_bar_layer_create(); action_bar_layer_add_to_window(layer_action_bar, window); action_bar_layer_set_click_config_provider(layer_action_bar, layer_action_bar_click_config_provider); action_bar_layer_set_icon(layer_action_bar, BUTTON_ID_UP, bitmaps_get_bitmap(RESOURCE_ID_ACTION_INC)); action_bar_layer_set_icon(layer_action_bar, BUTTON_ID_DOWN, bitmaps_get_bitmap(RESOURCE_ID_ACTION_DEC)); action_bar_layer_set_icon(layer_action_bar, BUTTON_ID_SELECT, bitmaps_get_bitmap(RESOURCE_ID_ACTION_OK)); font_duration = fonts_load_custom_font(resource_get_handle(RESOURCE_ID_FONT_AUDI_70_BOLD)); }
GBitmap* bitmaps_get_sub_bitmap(uint32_t res_id, GRect rect) { if (! bitmaps) { return NULL; } GBitmap* parent = NULL; uint8_t count = linked_list_count(bitmaps); for (uint8_t b = 0; b < count; b += 1) { AppBitmap* bmp = (AppBitmap*)linked_list_get(bitmaps, b); if (bmp->res_id == res_id) { if (bmp->is_sub) { if (grect_equal(bmp->rect, &rect)) { return bmp->bitmap; } } else { parent = bmp->bitmap; } } } if (! parent) { parent = bitmaps_get_bitmap(res_id); if (! parent) { return NULL; } } AppBitmap* app_bmp = malloc(sizeof(AppBitmap)); if (app_bmp == NULL) { return NULL; } app_bmp->res_id = res_id; app_bmp->bitmap = gbitmap_create_as_sub_bitmap(parent, rect); if (app_bmp->bitmap == NULL) { return NULL; } app_bmp->rect = malloc(sizeof(GRect)); app_bmp->rect->origin = rect.origin; app_bmp->rect->size = rect.size; app_bmp->is_sub = true; linked_list_append(bitmaps, app_bmp); return app_bmp->bitmap; }
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); }