void action_bar_layer_add_to_window(ActionBarLayer *action_bar, struct Window *window) { GRect p=window->layer.frame; layer_insert_below_sibling((Layer*)action_bar,&window->layer); layer_set_frame ((Layer*)action_bar,GRect(p.size.w-ACTION_BAR_WIDTH,ACTION_BAR_SPACING,ACTION_BAR_WIDTH,p.size.h-2*ACTION_BAR_SPACING)); window_set_click_config_provider_with_context (window,action_bar_click_config_provider,action_bar); action_bar->window=window; }
static void main_window_load(Window *window) { //APP_LOG(APP_LOG_LEVEL_ERROR, "In Main_window_load"); // Use system font, apply it and add to Window s_3_font = fonts_load_custom_font(resource_get_handle(RESOURCE_ID_PTN_64)); s_2_font = fonts_load_custom_font(resource_get_handle(RESOURCE_ID_PTN_59)); s_4_font = fonts_load_custom_font(resource_get_handle(RESOURCE_ID_PTN_50)); s_6_font = fonts_load_custom_font(resource_get_handle(RESOURCE_ID_PTN_47)); s_title_font = fonts_get_system_font(FONT_KEY_GOTHIC_14); s_large_title_font = fonts_get_system_font(FONT_KEY_GOTHIC_24_BOLD); s_medium_title_font = fonts_get_system_font(FONT_KEY_GOTHIC_18_BOLD); inverter = inverter_layer_create(GRect(0,0,144,168)); layer_set_bounds(inverter_layer_get_layer(inverter),GRectZero); flash = inverter_layer_create(GRect(2,7,7,7)); int jj; for (jj = 0; jj < 6; jj++) { dataInverter[jj] = inverter_layer_create(GRect(0,0,144,168)); layer_set_bounds(inverter_layer_get_layer(dataInverter[jj]),GRectZero); } // Create Display RectAngles // Six data fields & their titles #define SIX_FIELD_INDEX 0 #define SIX_FIELD_MAX 5 s_data_layer[0] = text_layer_create(GRect(0, 2, 71, 49)); s_data_title[0] = text_layer_create(GRect(0, 49, 71, 15)); s_data_layer[1] = text_layer_create(GRect(73, 2, 71, 49)); s_data_title[1] = text_layer_create(GRect(73, 49, 71, 15)); s_data_layer[2] = text_layer_create(GRect(0, 53, 71, 49)); s_data_title[2] = text_layer_create(GRect(0, 102, 71, 14)); s_data_layer[3] = text_layer_create(GRect(73, 53, 71, 49)); s_data_title[3] = text_layer_create(GRect(73, 102, 71, 14)); s_data_layer[4] = text_layer_create(GRect(0, 105, 71, 49)); s_data_title[4] = text_layer_create(GRect(0, 154, 71, 15)); s_data_layer[5] = text_layer_create(GRect(73, 105, 71, 49)); s_data_title[5] = text_layer_create(GRect(73, 154, 71, 15)); // Two data fields & their titles #define TWO_FIELD_INDEX 6 #define TWO_FIELD_MAX 7 s_data_layer[6] = text_layer_create(GRect(0, 2, 288, 60)); layer_set_frame((Layer *) s_data_layer[6], GRect(0, 2, 144, 60)); s_data_title[6] = text_layer_create(GRect(0, 64, 144, 28)); s_data_layer[7] = text_layer_create(GRect(0, 79, 288, 60)); layer_set_frame((Layer *) s_data_layer[7], GRect(0, 79, 144, 60)); s_data_title[7] = text_layer_create(GRect(0, 140, 144, 28)); // Four data fields & their titles #define FOUR_FIELD_INDEX 8 #define FOUR_FIELD_MAX 11 s_data_layer[8] = text_layer_create(GRect(0, 12, 142, 51)); layer_set_frame((Layer *) s_data_layer[8], GRect(0, 12, 71, 51)); s_data_title[8] = text_layer_create(GRect(0, 65, 71, 24)); s_data_layer[9] = text_layer_create(GRect(73, 12, 71, 51)); s_data_title[9] = text_layer_create(GRect(73, 65, 71, 24)); s_data_layer[10] = text_layer_create(GRect(0, 91, 142, 51)); layer_set_frame((Layer *) s_data_layer[10], GRect(0, 91, 71, 51)); s_data_title[10] = text_layer_create(GRect(0, 144, 71, 24)); s_data_layer[11] = text_layer_create(GRect(73, 91, 71, 51)); s_data_title[11] = text_layer_create(GRect(73, 144, 71, 24)); // Three fields - One big, two small //#define THREE_FIELD_INDEX 12 #define THREE_FIELD_MAX 14 s_data_layer[12] = text_layer_create(GRect(0, 10, 432, 65)); layer_set_frame((Layer *) s_data_layer[12], GRect(0, 10, 144, 65)); s_data_title[12] = text_layer_create(GRect(0, 75, 144, 28)); s_data_layer[13] = text_layer_create(GRect(0, 91, 150, 51)); layer_set_frame((Layer *) s_data_layer[13], GRect(0, 91, 71, 51)); s_data_title[13] = text_layer_create(GRect(0, 144, 71, 24)); //s_data_layer[14] = text_layer_create(GRect(73, 91, 142, 51)); //layer_set_frame((Layer *) s_data_layer[14], GRect(73, 91, 71, 51)); s_data_layer[14] = text_layer_create(GRect(73, 91, 71, 51)); s_data_title[14] = text_layer_create(GRect(73, 144, 71, 24)); // Top title s_data_layer[TITLE_INDEX] = text_layer_create(GRect(0, 0, 144, 16)); // Set up top title area text_layer_set_background_color(s_data_layer[TITLE_INDEX], GColorBlack); text_layer_set_text_color(s_data_layer[TITLE_INDEX], GColorWhite); text_layer_set_text_alignment(s_data_layer[TITLE_INDEX], GTextAlignmentCenter); text_layer_set_text(s_data_layer[TITLE_INDEX], "StartLine"); text_layer_set_font(s_data_layer[TITLE_INDEX], s_title_font); layer_add_child(window_get_root_layer(window), text_layer_get_layer(s_data_layer[TITLE_INDEX])); window_set_background_color(window, GColorBlack); // Set up the messgage layer messageLayer = text_layer_create(GRect(10,30,124,120)); text_layer_set_background_color(messageLayer, GColorClear); text_layer_set_text_color(messageLayer, GColorWhite); text_layer_set_text_alignment(messageLayer, GTextAlignmentCenter); text_layer_set_font(messageLayer, s_large_title_font); titleLayer = layer_create(GRect(0, 0, 144, 168)); layer_insert_below_sibling(titleLayer, (Layer *)s_data_layer[TITLE_INDEX]); dataLayer = layer_create(GRect(0, 0, 144, 168)); layer_insert_below_sibling(dataLayer, titleLayer); int i; for (i =0; i < TITLE_INDEX; i++) { //Data text_layer_set_background_color(s_data_layer[i], GColorClear); text_layer_set_text_color(s_data_layer[i], GColorWhite); text_layer_set_text_alignment(s_data_layer[i], GTextAlignmentCenter); text_layer_set_overflow_mode(s_data_layer[i], GTextOverflowModeWordWrap); layer_add_child(dataLayer, text_layer_get_layer(s_data_layer[i])); //Title text_layer_set_background_color(s_data_title[i], GColorClear); text_layer_set_text_color(s_data_title[i], GColorWhite); text_layer_set_text_alignment(s_data_title[i], GTextAlignmentCenter); if (i >= SIX_FIELD_INDEX && i <= SIX_FIELD_MAX) // Small title fonts on the 6 field layout { text_layer_set_font(s_data_layer[i], s_6_font); text_layer_set_font(s_data_title[i], s_title_font); } else if (i >= TWO_FIELD_INDEX && i <= TWO_FIELD_MAX) // This is 2 fields { text_layer_set_font(s_data_layer[i], s_2_font); text_layer_set_font(s_data_title[i], s_large_title_font); } else if (i >= FOUR_FIELD_INDEX && i <= FOUR_FIELD_MAX) // 4 field layout { text_layer_set_font(s_data_layer[i], s_4_font); text_layer_set_font(s_data_title[i], s_medium_title_font); } else if (i >= THREE_FIELD_INDEX && i <= THREE_FIELD_MAX) { if (i == THREE_FIELD_INDEX) // First field is big { text_layer_set_font(s_data_layer[i], s_3_font); text_layer_set_font(s_data_title[i], s_large_title_font); } else { text_layer_set_font(s_data_layer[i], s_4_font); text_layer_set_font(s_data_title[i], s_medium_title_font); } } layer_add_child(titleLayer, text_layer_get_layer(s_data_title[i])); } layer_add_child(window_get_root_layer(window), inverter_layer_get_layer(inverter)); int ii; for (ii = 0; ii < 6; ii++) { layer_add_child(window_get_root_layer(window), inverter_layer_get_layer(dataInverter[ii])); } layer_add_child(window_get_root_layer(window), text_layer_get_layer(messageLayer)); layer_add_child(window_get_root_layer(window), inverter_layer_get_layer(flash)); // Go find a screen with some fields in use for (currentScreen = 0; screens[currentScreen].num_fields == 0; currentScreen++) ; // Add the padlock icon - steals the rest of my heap!! s_padlockLayer = bitmap_layer_create(GRect(133, 3, 8, 11)); s_res_padlock = gbitmap_create_with_resource(RESOURCE_ID_PADLOCK); bitmap_layer_set_bitmap(s_padlockLayer, s_res_padlock); layer_add_child(window_get_root_layer(window), (Layer *)s_padlockLayer); layer_set_hidden((Layer *)s_padlockLayer, configLock == 1); // And make it the current screen updatescreen(currentScreen,"00"); }