void handle_init(AppContextRef ctx) { window_init(&window, "Simplicity"); window_stack_push(&window, true /* Animated */); window_set_background_color(&window, GColorBlack); resource_init_current_app(&APP_RESOURCES); layer_init(&time_layer, GRect(0, 12, 144, 168-68)); layer_add_child(&window.layer, &time_layer); text_layer_init(&text_date_layer, window.layer.frame); text_layer_set_text_color(&text_date_layer, GColorWhite); text_layer_set_background_color(&text_date_layer, GColorClear); layer_set_frame(&text_date_layer.layer, GRect(8, 0, 144-8, 168-68)); text_layer_set_font(&text_date_layer, fonts_load_custom_font(resource_get_handle(RESOURCE_ID_FONT_ROBOTO_CONDENSED_21))); layer_add_child(&time_layer, &text_date_layer.layer); text_layer_init(&text_time_layer, window.layer.frame); text_layer_set_text_color(&text_time_layer, GColorWhite); text_layer_set_background_color(&text_time_layer, GColorClear); layer_set_frame(&text_time_layer.layer, GRect(7, 24, 144-7, 168-92)); text_layer_set_font(&text_time_layer, fonts_load_custom_font(resource_get_handle(RESOURCE_ID_FONT_ROBOTO_BOLD_SUBSET_49))); layer_add_child(&time_layer, &text_time_layer.layer); layer_init(&line_layer, window.layer.frame); line_layer.update_proc = &line_layer_update_callback; layer_add_child(&time_layer, &line_layer); layer_init(&car_layer, GRect(0, 90, 144, 168-90)); layer_add_child(&window.layer, &car_layer); text_layer_init(&text_rated_layer, window.layer.frame); text_layer_set_text_color(&text_rated_layer, GColorWhite); text_layer_set_background_color(&text_rated_layer, GColorClear); layer_set_frame(&text_rated_layer.layer, GRect(8, 0, 144-8, 168-68)); text_layer_set_font(&text_rated_layer, fonts_load_custom_font(resource_get_handle(RESOURCE_ID_FONT_ROBOTO_CONDENSED_21))); layer_add_child(&car_layer, &text_rated_layer.layer); text_layer_init(&text_state_layer, window.layer.frame); text_layer_set_text_color(&text_state_layer, GColorWhite); text_layer_set_background_color(&text_state_layer, GColorClear); layer_set_frame(&text_state_layer.layer, GRect(8, 20, 144-8, 168-68)); text_layer_set_font(&text_state_layer, fonts_load_custom_font(resource_get_handle(RESOURCE_ID_FONT_ROBOTO_CONDENSED_21))); layer_add_child(&car_layer, &text_state_layer.layer); layer_init(&battery_layer, GRect(72, 10, 144-70, 10)); battery_layer.update_proc = &battery_layer_update_callback; layer_add_child(&car_layer, &battery_layer); Tuplet initial_values[] = { TupletInteger(TESLA_RATED_REMAIN_KEY, (uint16_t) 148), TupletCString(TESLA_STATE_STRING_KEY, "Charging"), TupletInteger(TESLA_BATTERY_PERCENT_KEY, (uint8_t) 72), }; app_sync_init(&sync, sync_buffer, sizeof(sync_buffer), initial_values, ARRAY_LENGTH(initial_values), sync_tuple_changed_callback, sync_error_callback, NULL); }
static void window_load(Window *window) { Layer *window_layer = window_get_root_layer(window); GRect bounds = layer_get_bounds(window_layer); s_icon_layer = bitmap_layer_create(GRect(32, 10, 80, 80)); layer_add_child(window_layer, bitmap_layer_get_layer(s_icon_layer)); s_temperature_layer = text_layer_create(GRect(0, 75, bounds.size.w, 68)); text_layer_set_text_color(s_temperature_layer, GColorWhite); text_layer_set_background_color(s_temperature_layer, GColorClear); text_layer_set_font(s_temperature_layer, fonts_get_system_font(FONT_KEY_GOTHIC_28_BOLD)); text_layer_set_text_alignment(s_temperature_layer, GTextAlignmentCenter); layer_add_child(window_layer, text_layer_get_layer(s_temperature_layer)); s_city_layer = text_layer_create(GRect(0, 105, bounds.size.w, 68)); text_layer_set_text_color(s_city_layer, GColorWhite); text_layer_set_background_color(s_city_layer, GColorClear); text_layer_set_font(s_city_layer, fonts_get_system_font(FONT_KEY_GOTHIC_28_BOLD)); text_layer_set_text_alignment(s_city_layer, GTextAlignmentCenter); layer_add_child(window_layer, text_layer_get_layer(s_city_layer)); Tuplet initial_values[] = { TupletInteger(WEATHER_ICON_KEY, (uint8_t) 1), TupletCString(WEATHER_TEMPERATURE_KEY, "1234\u00B0C"), TupletCString(WEATHER_CITY_KEY, "St Pebblesburg"), }; app_sync_init(&s_sync, s_sync_buffer, sizeof(s_sync_buffer), initial_values, ARRAY_LENGTH(initial_values), sync_tuple_changed_callback, sync_error_callback, NULL ); request_weather(); }
static void window_load(Window *window) { Layer *window_layer = window_get_root_layer(window); temperature_layer = text_layer_create(GRect(0, 140, 155, 40)); text_layer_set_text_color(temperature_layer, GColorWhite); text_layer_set_background_color(temperature_layer, GColorBlack); text_layer_set_font(temperature_layer, fonts_get_system_font(FONT_KEY_GOTHIC_28_BOLD)); text_layer_set_text_alignment(temperature_layer, GTextAlignmentCenter); text_layer_set_text(temperature_layer, temperature); Tuplet initial_values[] = { TupletInteger(WEATHER_ICON_KEY, (uint8_t) 1), TupletCString(WEATHER_TEMPERATURE_KEY, "1234\u00B0C"), }; app_sync_init(&sync, sync_buffer, sizeof(sync_buffer), initial_values, ARRAY_LENGTH(initial_values), sync_tuple_changed_callback, sync_error_callback, NULL); layer_add_child(window_layer, text_layer_get_layer(temperature_layer)); s_time_layer = text_layer_create(GRect(0, 0, 150, 40)); text_layer_set_background_color(s_time_layer, GColorBlack); text_layer_set_text_color(s_time_layer, GColorWhite); text_layer_set_text(s_time_layer, "00:00:00"); text_layer_set_font(s_time_layer, fonts_get_system_font(FONT_KEY_GOTHIC_28)); text_layer_set_text_alignment(s_time_layer, GTextAlignmentCenter); layer_add_child(window_get_root_layer(window), text_layer_get_layer(s_time_layer)); changeWeatherCode(0); timer = app_timer_register(delta, (AppTimerCallback) timer_callback, NULL); }
static void window_load(Window *window) { Layer *window_layer = window_get_root_layer(window); icon_layer = bitmap_layer_create(GRect(12, -5, 120, 120)); layer_add_child(window_layer, bitmap_layer_get_layer(icon_layer)); temperature_layer = text_layer_create(GRect(0, 100, 144, 68)); text_layer_set_text_color(temperature_layer, GColorWhite); text_layer_set_background_color(temperature_layer, GColorClear); text_layer_set_font(temperature_layer, fonts_get_system_font(FONT_KEY_BITHAM_42_LIGHT)); text_layer_set_text_alignment(temperature_layer, GTextAlignmentCenter); text_layer_set_text(temperature_layer, temperature); Tuplet initial_values[] = { TupletInteger(WEATHER_ICON_KEY, (uint8_t) 0), TupletCString(WEATHER_TEMPERATURE_KEY, "70\u00B0F"), TupletCString(WEATHER_REALFEEL_KEY, "70\u00B0F"), }; app_sync_init(&sync, sync_buffer, sizeof(sync_buffer), initial_values, ARRAY_LENGTH(initial_values), sync_tuple_changed_callback, sync_error_callback, NULL); window_set_click_config_provider(window, (ClickConfigProvider) config_provider); layer_add_child(window_layer, text_layer_get_layer(temperature_layer)); }
static void init() { window = window_create(); window_set_background_color(window, GColorBlack); window_set_fullscreen(window, true); icon_layer = bitmap_layer_create(GRect(32, 10, 80, 80)); bitmap_layer_set_bitmap(icon_layer, icon_bitmap); layer_add_child(window_get_root_layer(window), bitmap_layer_get_layer(icon_layer)); temperature_layer = text_layer_create(GRect(0, 100, 144, 68)); text_layer_set_text_color(temperature_layer, GColorWhite); text_layer_set_background_color(temperature_layer, GColorClear); text_layer_set_font(temperature_layer, fonts_get_system_font(FONT_KEY_GOTHIC_28_BOLD)); text_layer_set_text_alignment(temperature_layer, GTextAlignmentCenter); text_layer_set_text(temperature_layer, temperature); layer_add_child(window_get_root_layer(window), text_layer_get_layer(temperature_layer)); Tuplet initial_values[] = { TupletInteger(WEATHER_ICON_KEY, (uint8_t) 1), TupletCString(WEATHER_TEMPERATURE_KEY, "1234\u00B0C"), }; app_message_open(64, 64); send_cmd(); app_sync_init(&sync, sync_buffer, sizeof(sync_buffer), initial_values, ARRAY_LENGTH(initial_values), sync_tuple_changed_callback, sync_error_callback, NULL); window_stack_push(window, true /* Animated */); }
/* Setup app message callbacks for weather */ void qtp_setup_app_message() { #ifdef QTP_DEBUG APP_LOG(APP_LOG_LEVEL_DEBUG, "QTP: setting app message for weather"); #endif const int inbound_size = 100; const int outbound_size = 100; app_message_open(inbound_size, outbound_size); Tuplet initial_values[] = { TupletInteger(QTP_WEATHER_ICON_KEY, (uint8_t) 8), TupletCString(QTP_WEATHER_TEMP_F_KEY, "---\u00B0F"), TupletCString(QTP_WEATHER_TEMP_C_KEY, "---\u00B0F"), TupletCString(QTP_WEATHER_CITY_KEY, "Atlanta "), TupletCString(QTP_WEATHER_DESC_KEY, " ") }; #ifdef QTP_DEBUG APP_LOG(APP_LOG_LEVEL_DEBUG, "QTP: weather tuples intialized"); #endif app_sync_init(&qtp_sync, qtp_sync_buffer, sizeof(qtp_sync_buffer), initial_values, ARRAY_LENGTH(initial_values), qtp_sync_changed_callback, qtp_sync_error_callback, NULL); #ifdef QTP_DEBUG APP_LOG(APP_LOG_LEVEL_DEBUG, "QTP: weather app message initialized"); #endif }
void openweather_init(void) { // init forecast structure forecast_data.day = calloc(OPENWEATHER_FCAST_DAYS, sizeof(ForecastDayType)); // init json parser json_register_callbacks(object_callback, array_callback); // Open channel const int inbound_size = app_message_inbox_size_maximum(); const int outbound_size = app_message_outbox_size_maximum(); APP_LOG(APP_LOG_LEVEL_DEBUG, "Determined sizes: Inbox %u Outbox %u", inbound_size, outbound_size); app_message_open(inbound_size, outbound_size); // Init sync Tuplet initial_values[] = { TupletCString(OPENWEATHER_KEY, "") }; app_sync_init(&sync, sync_buffer, sizeof(sync_buffer), initial_values, ARRAY_LENGTH(initial_values), sync_tuple_changed_callback, sync_error_callback, NULL); // Set update set_timer(OPENWEATHER_REFRESH_INTERVAL); }
// Init function to handle the creation of layers, // event subscribing, etc void handle_init(void) { // window init window = window_create(); window_stack_push(window, true); window_set_background_color(window, GColorWhite); // display layer Layer *window_layer = window_get_root_layer(window); // background leafs = gbitmap_create_with_resource(RESOURCE_ID_BKNG); leafs_layer = bitmap_layer_create(GRect(0, 0, WATCH_WIDTH, WATCH_HEIGHT)); bitmap_layer_set_bitmap(leafs_layer, leafs); layer_add_child(window_layer, bitmap_layer_get_layer(leafs_layer)); GFont prox_reg = fonts_load_custom_font(resource_get_handle(RESOURCE_ID_PROXIMA_REGULAR_16)); GFont prox_bold = fonts_load_custom_font(resource_get_handle(RESOURCE_ID_PROXIMA_BOLD_30)); // time init text_time_layer = text_layer_create(GRect(55, 100,(WATCH_WIDTH - 55), 50)); text_layer_set_font(text_time_layer, prox_bold); text_layer_set_background_color(text_time_layer, GColorClear); layer_add_child(window_layer, text_layer_get_layer(text_time_layer)); // date init text_date_layer = text_layer_create(GRect(55, 130, (WATCH_WIDTH - 55), 20)); text_layer_set_font(text_date_layer, prox_reg); text_layer_set_background_color(text_date_layer, GColorClear); layer_add_child(window_layer, text_layer_get_layer(text_date_layer)); // score init text_score_layer = text_layer_create(GRect(55, 15, (WATCH_WIDTH - 55), 20)); text_layer_set_font(text_score_layer, prox_reg); text_layer_set_text_color(text_score_layer, GColorWhite); text_layer_set_background_color(text_score_layer, GColorClear); layer_add_child(window_layer, text_layer_get_layer(text_score_layer)); //update_display(tick_time); tick_timer_service_subscribe(MINUTE_UNIT, handle_minute_tick); // AppSync stuff const int inbound_size = 64; const int outbound_size = 64; app_message_open(inbound_size, outbound_size); Tuplet initial_values[] = { TupletCString(0, "0-0") }; app_sync_init(&sync, sync_buffer, sizeof(sync_buffer), initial_values, ARRAY_LENGTH(initial_values), sync_tuple_changed_callback, sync_error_callback, NULL); send_cmd(); // setting up timer to send cmds for updates timer = app_timer_register(10000, timer_callback, NULL); }
static void window_load(Window *window) { Layer *window_layer = window_get_root_layer(window); font_last_price_small = fonts_load_custom_font(resource_get_handle(RESOURCE_ID_FONT_DIAVLO_MEDIUM_39)); font_last_price_large = fonts_load_custom_font(resource_get_handle(RESOURCE_ID_FONT_DIAVLO_MEDIUM_39)); font_hash_large = fonts_load_custom_font(resource_get_handle(RESOURCE_ID_FONT_DIAVLO_MEDIUM_39)); text_five_layer = text_layer_create(GRect(0, 0, 144-0, 168-0)); text_layer_set_text_color(text_five_layer, GColorWhite); text_layer_set_background_color(text_five_layer, GColorClear); text_layer_set_font(text_five_layer, font_last_price_large); text_layer_set_text_alignment(text_five_layer, GTextAlignmentCenter); layer_add_child(window_layer, text_layer_get_layer(text_five_layer)); text_hash_layer = text_layer_create(GRect(0, 64, 144-0, 168-40)); text_layer_set_text_color(text_hash_layer, GColorWhite); text_layer_set_background_color(text_hash_layer, GColorClear); text_layer_set_font(text_hash_layer, fonts_get_system_font(FONT_KEY_ROBOTO_CONDENSED_21)); text_layer_set_text_alignment(text_hash_layer, GTextAlignmentCenter); layer_add_child(window_layer, text_layer_get_layer(text_hash_layer)); text_date_layer = text_layer_create(GRect(8, 96, 144-8, 168-96)); text_layer_set_text_color(text_date_layer, GColorWhite); text_layer_set_background_color(text_date_layer, GColorClear); text_layer_set_font(text_date_layer, fonts_load_custom_font(resource_get_handle(RESOURCE_ID_FONT_DIAVLO_15))); layer_add_child(window_layer, text_layer_get_layer(text_date_layer)); text_time_layer = text_layer_create(GRect(7, 114, 144-7, 168-114)); text_layer_set_text_color(text_time_layer, GColorWhite); text_layer_set_background_color(text_time_layer, GColorClear); text_layer_set_font(text_time_layer, fonts_load_custom_font(resource_get_handle(RESOURCE_ID_FONT_DIAVLO_HEAVY_44))); layer_add_child(window_layer, text_layer_get_layer(text_time_layer)); tick_timer_service_subscribe(MINUTE_UNIT, handle_minute_tick); time_t now = time(NULL); struct tm *t = localtime(&now); update_time(t); Tuplet initial_values[] = { TupletCString(FIVE_HASH, "---"), //TupletCString(FIVE_HASH, "---"), // TupletCString(HOUR_HASH, "---"), TupletInteger(INVERT_COLOR_KEY, persist_read_bool(INVERT_COLOR_KEY)), }; app_sync_init(&sync, sync_buffer, sizeof(sync_buffer), initial_values, ARRAY_LENGTH(initial_values), sync_tuple_changed_callback, sync_error_callback, NULL); //send_cmd();last_price timer = app_timer_register(2000, timer_callback, NULL); //set_timer(); }
// This function will set up all the text layers and will initialize the App_Sync. static void window_load(Window *window) { Layer *window_layer = window_get_root_layer(window); //setting up the layer that displays the cardinal direction. direction_layer = text_layer_create(GRect(0, 60, 144, 68)); text_layer_set_text_color(direction_layer, GColorBlack); text_layer_set_background_color(direction_layer, GColorClear); text_layer_set_font(direction_layer, fonts_get_system_font(FONT_KEY_BITHAM_42_BOLD)); text_layer_set_text_alignment(direction_layer, GTextAlignmentCenter); layer_add_child(window_layer, text_layer_get_layer(direction_layer)); // Setting up top-most text layer. top_layer = text_layer_create(GRect(50, 0, 100, 25)); text_layer_set_text_color(top_layer, GColorBlack); text_layer_set_background_color(top_layer, GColorClear); text_layer_set_font(top_layer, fonts_get_system_font(FONT_KEY_GOTHIC_18_BOLD)); text_layer_set_text_alignment(top_layer, GTextAlignmentCenter); layer_add_child(window_layer, text_layer_get_layer(top_layer)); text_layer_set_text(top_layer, "Numeric"); // Setting up bottom-most text layer. bottom_layer = text_layer_create(GRect(50, 140, 100, 30)); text_layer_set_text_color(bottom_layer, GColorBlack); text_layer_set_background_color(bottom_layer, GColorClear); text_layer_set_font(bottom_layer, fonts_get_system_font(FONT_KEY_GOTHIC_18_BOLD)); text_layer_set_text_alignment(bottom_layer, GTextAlignmentCenter); layer_add_child(window_layer, text_layer_get_layer(bottom_layer)); text_layer_set_text(bottom_layer, "Character"); // Setting up "Open App" text layer. init_layer = text_layer_create(GRect(0, 45, 144, 80)); text_layer_set_text_color(init_layer, GColorBlack); text_layer_set_background_color(init_layer, GColorClear); text_layer_set_font(init_layer, fonts_get_system_font(FONT_KEY_GOTHIC_18_BOLD)); text_layer_set_text_alignment(init_layer, GTextAlignmentCenter); text_layer_set_text(init_layer, "Please open the Android companion app, then choose a compass type."); layer_add_child(window_layer, text_layer_get_layer(init_layer)); Tuplet initial_values[]= { TupletCString(DIRECTION_KEY, "Loading...."), TupletCString(NUM_DIRECTION_KEY, "Loading...."), }; // Initializing App_Sync! app_sync_init(&sync, sync_buffer, sizeof(sync_buffer), initial_values, ARRAY_LENGTH(initial_values), sync_tuple_changed_callback, sync_error_callback, NULL); send_cmd(); }
static void window_load(Window *window) { Layer *window_layer = window_get_root_layer(window); gridpower_layer = text_layer_create(GRect(0, 10, 144, 68)); text_layer_set_text_color(gridpower_layer, GColorBlack); text_layer_set_background_color(gridpower_layer, GColorClear); text_layer_set_font(gridpower_layer, fonts_get_system_font(FONT_KEY_GOTHIC_18_BOLD)); text_layer_set_text_alignment(gridpower_layer, GTextAlignmentLeft); layer_add_child(window_layer, text_layer_get_layer(gridpower_layer)); dailyenery_layer = text_layer_create(GRect(0, 30, 144, 68)); text_layer_set_text_color(dailyenery_layer, GColorBlack); text_layer_set_background_color(dailyenery_layer, GColorClear); text_layer_set_font(dailyenery_layer, fonts_get_system_font(FONT_KEY_GOTHIC_18_BOLD)); text_layer_set_text_alignment(dailyenery_layer, GTextAlignmentLeft); layer_add_child(window_layer, text_layer_get_layer(dailyenery_layer)); montlyenergy_layer = text_layer_create(GRect(0, 50, 144, 68)); text_layer_set_text_color(montlyenergy_layer, GColorBlack); text_layer_set_background_color(montlyenergy_layer, GColorClear); text_layer_set_font(montlyenergy_layer, fonts_get_system_font(FONT_KEY_GOTHIC_18_BOLD)); text_layer_set_text_alignment(montlyenergy_layer, GTextAlignmentLeft); layer_add_child(window_layer, text_layer_get_layer(montlyenergy_layer)); yearlyenergy_layer = text_layer_create(GRect(0, 70, 144, 68)); text_layer_set_text_color(yearlyenergy_layer, GColorBlack); text_layer_set_background_color(yearlyenergy_layer, GColorClear); text_layer_set_font(yearlyenergy_layer, fonts_get_system_font(FONT_KEY_GOTHIC_18_BOLD)); text_layer_set_text_alignment(yearlyenergy_layer, GTextAlignmentLeft); layer_add_child(window_layer, text_layer_get_layer(yearlyenergy_layer)); totalenergy_layer = text_layer_create(GRect(0, 90, 144, 68)); text_layer_set_text_color(totalenergy_layer, GColorBlack); text_layer_set_background_color(totalenergy_layer, GColorClear); text_layer_set_font(totalenergy_layer, fonts_get_system_font(FONT_KEY_GOTHIC_18_BOLD)); text_layer_set_text_alignment(totalenergy_layer, GTextAlignmentLeft); layer_add_child(window_layer, text_layer_get_layer(totalenergy_layer)); Tuplet initial_values[] = { TupletCString(SOLAR_GRIDPOWER, "Power:"), TupletCString(SOLAR_DAILYENERGY, "Daily:"), TupletCString(SOLAR_MONTHLYENERGY, "Monthly:"), TupletCString(SOLAR_YEARLYENERGY, "Yearly:"), TupletCString(SOLAR_TOTALENERGY, "Total:"), }; app_sync_init(&sync, sync_buffer, sizeof(sync_buffer), initial_values, ARRAY_LENGTH(initial_values), sync_tuple_changed_callback, sync_error_callback, NULL); send_cmd(0); }
static void config_init(void) { // no need for large inbox/outbox, just handling configuration messages app_message_open(100, 100); Tuplet initial_values[] = { TupletInteger(BACKGROUND_COLOR_KEY, pcb_background.argb), TupletInteger(SILKSCREEN_COLOR_KEY, pcb_silkscreen.argb) }; app_sync_init( &s_sync, s_sync_buffer, sizeof(s_sync_buffer), initial_values, ARRAY_LENGTH(initial_values), sync_changed_handler, sync_error_handler, NULL); }
static void window_load(Window *window) { window_set_background_color(window, BG_COLOR); window_layer = window_get_root_layer(window); GRect bounds = layer_get_bounds(window_layer); bezel_layer = layer_create(bounds); layer_set_update_proc(bezel_layer, bezel_layer_update_proc); layer_add_child(window_layer, bezel_layer); direction_layer = layer_create(bounds); layer_set_update_proc(direction_layer, direction_layer_update_proc); layer_add_child(window_layer, direction_layer); heading_layer = layer_create(GRect(27, 37, 90, 85)); layer_set_update_proc(heading_layer, heading_update_proc); layer_add_child(window_layer, heading_layer); heading_text_label = text_layer_create(GRect(0, 0, 90, 45)); text_layer_set_text(heading_text_label, "N"); text_layer_set_text_color(heading_text_label, FG_COLOR); text_layer_set_background_color(heading_text_label, GColorClear); text_layer_set_text_alignment(heading_text_label, GTextAlignmentCenter); text_layer_set_font(heading_text_label, fonts_get_system_font(FONT_KEY_BITHAM_42_BOLD)); layer_add_child(heading_layer, text_layer_get_layer(heading_text_label)); heading_angle_label = text_layer_create(GRect(0, 45, 90, 40)); text_layer_set_text(heading_angle_label, "0°"); text_layer_set_text_color(heading_angle_label, FG_COLOR); text_layer_set_background_color(heading_angle_label, GColorClear); text_layer_set_text_alignment(heading_angle_label, GTextAlignmentCenter); text_layer_set_font(heading_angle_label, fonts_get_system_font(FONT_KEY_GOTHIC_24_BOLD)); layer_add_child(heading_layer, text_layer_get_layer(heading_angle_label)); status_layer = text_layer_create(GRect(30, 50, 86, 55)); text_layer_set_text_color(status_layer, FG_COLOR); text_layer_set_background_color(status_layer, GColorClear); text_layer_set_text_alignment(status_layer, GTextAlignmentCenter); text_layer_set_font(status_layer, fonts_get_system_font(FONT_KEY_GOTHIC_24_BOLD)); layer_add_child(window_layer, text_layer_get_layer(status_layer)); Tuplet initial_values[] = { TupletInteger(LOCATION_HEADING_KEY, (int16_t) STATUS_WAITING), }; app_sync_init(&sync, sync_buffer, sizeof(sync_buffer), initial_values, ARRAY_LENGTH(initial_values), sync_tuple_changed_callback, sync_error_callback, NULL); }
static void window_load(Window *window) { Layer *window_layer = window_get_root_layer(window); datetime_layer = text_layer_create(GRect(0, 100, 144, 22)); text_layer_set_text_color(datetime_layer, GColorBlack); text_layer_set_background_color(datetime_layer, GColorWhite); text_layer_set_font(datetime_layer, fonts_get_system_font(FONT_KEY_GOTHIC_18_BOLD)); text_layer_set_text_alignment(datetime_layer, GTextAlignmentCenter); layer_add_child(window_layer, text_layer_get_layer(datetime_layer)); icon_layer = bitmap_layer_create(GRect(84, 0, 60, 60)); layer_add_child(window_layer, bitmap_layer_get_layer(icon_layer)); bg_layer = text_layer_create(GRect(0, 5, 83, 68)); text_layer_set_text_color(bg_layer, GColorWhite); text_layer_set_background_color(bg_layer, GColorClear); text_layer_set_font(bg_layer, fonts_get_system_font(FONT_KEY_BITHAM_42_MEDIUM_NUMBERS)); text_layer_set_text_alignment(bg_layer, GTextAlignmentCenter); layer_add_child(window_layer, text_layer_get_layer(bg_layer)); readtime_layer = text_layer_create(GRect(0, 48, 144, 115)); text_layer_set_text_color(readtime_layer, GColorWhite); text_layer_set_background_color(readtime_layer, GColorClear); text_layer_set_font(readtime_layer, fonts_get_system_font(FONT_KEY_BITHAM_42_LIGHT)); text_layer_set_text_alignment(readtime_layer, GTextAlignmentCenter); layer_add_child(window_layer, text_layer_get_layer(readtime_layer)); message_layer = text_layer_create(GRect(0, 124, 144, 68)); text_layer_set_text_color(message_layer, GColorBlack); text_layer_set_background_color(message_layer, GColorWhite); text_layer_set_font(message_layer, fonts_get_system_font(FONT_KEY_GOTHIC_18_BOLD)); text_layer_set_text_alignment(message_layer, GTextAlignmentCenter); layer_add_child(window_layer, text_layer_get_layer(message_layer)); Tuplet initial_values[] = { TupletInteger(CGM_ICON_KEY, (uint8_t) 4), TupletCString(CGM_BG_KEY, ""), TupletCString(CGM_READTIME_KEY, ""), TupletInteger(CGM_ALERT_KEY, 0), TupletCString(CGM_TIME_NOW, "loading..."), TupletCString(CGM_DELTA_KEY, " ") }; app_sync_init(&sync, sync_buffer, sizeof(sync_buffer), initial_values, ARRAY_LENGTH(initial_values),sync_tuple_changed_callback, sync_error_callback, NULL); timer = app_timer_register(100, timer_callback, NULL); }
static void app_init(AppContextRef c) { s_data.current_icon = 0; resource_init_current_app(&WEATHER_APP_RESOURCES); Window* window = &s_data.window; window_init(window, "PebbleWeather"); window_set_background_color(window, GColorBlack); window_set_fullscreen(window, true); // Weather icon layer GRect icon_rect = (GRect) {(GPoint) {32, 10}, (GSize) { 80, 80 }}; bitmap_layer_init(&s_data.icon_layer, icon_rect); layer_add_child(&window->layer, &s_data.icon_layer.layer); // Temperature text layer text_layer_init(&s_data.temperature_layer, GRect(0, 100, 144, 34)); text_layer_set_text_color(&s_data.temperature_layer, GColorWhite); text_layer_set_background_color(&s_data.temperature_layer, GColorClear); text_layer_set_font(&s_data.temperature_layer, fonts_get_system_font(FONT_KEY_GOTHIC_28_BOLD)); text_layer_set_text_alignment(&s_data.temperature_layer, GTextAlignmentCenter); layer_add_child(&window->layer, &s_data.temperature_layer.layer); // Time text layer text_layer_init(&s_data.time_layer, GRect(0, 134, 144, 34)); text_layer_set_text_color(&s_data.time_layer, GColorWhite); text_layer_set_background_color(&s_data.time_layer, GColorClear); text_layer_set_font(&s_data.time_layer, fonts_get_system_font(FONT_KEY_GOTHIC_28_BOLD)); text_layer_set_text_alignment(&s_data.time_layer, GTextAlignmentCenter); handle_minute_tick(c, NULL); layer_add_child(&window->layer, &s_data.time_layer.layer); // Watch <--> Phone communication Tuplet initial_values[] = { TupletInteger(WEATHER_ICON_KEY, (uint8_t) 1), TupletCString(WEATHER_TEMPERATURE_KEY, "-\u00B0C"), }; app_sync_init(&s_data.sync, s_data.sync_buffer, sizeof(s_data.sync_buffer), initial_values, ARRAY_LENGTH(initial_values), sync_tuple_changed_callback, sync_error_callback, NULL); request_weather_update(); window_stack_push(window, true); }
static void window_load(Window *window) { Layer *window_layer = window_get_root_layer(window); lattitude_layer = text_layer_create(GRect(0, 15, 144, 68)); text_layer_set_text_color(lattitude_layer, GColorWhite); text_layer_set_background_color(lattitude_layer, GColorClear); text_layer_set_font(lattitude_layer, fonts_get_system_font(FONT_KEY_GOTHIC_14_BOLD)); text_layer_set_text_alignment(lattitude_layer, GTextAlignmentCenter); layer_add_child(window_layer, text_layer_get_layer(lattitude_layer)); longitude_layer = text_layer_create(GRect(0, 35, 144, 68)); text_layer_set_text_color(longitude_layer, GColorWhite); text_layer_set_background_color(longitude_layer, GColorClear); text_layer_set_font(longitude_layer, fonts_get_system_font(FONT_KEY_GOTHIC_14_BOLD)); text_layer_set_text_alignment(longitude_layer, GTextAlignmentCenter); layer_add_child(window_layer, text_layer_get_layer(longitude_layer)); tracking_layer = text_layer_create(GRect(0, 65, 144, 68)); text_layer_set_text_color(tracking_layer, GColorWhite); text_layer_set_background_color(tracking_layer, GColorClear); text_layer_set_font(tracking_layer, fonts_get_system_font(FONT_KEY_GOTHIC_14_BOLD)); text_layer_set_text_alignment(tracking_layer, GTextAlignmentCenter); layer_add_child(window_layer, text_layer_get_layer(tracking_layer)); activity_layer = text_layer_create(GRect(0, 95, 144, 68)); text_layer_set_text_color(activity_layer, GColorWhite); text_layer_set_background_color(activity_layer, GColorClear); text_layer_set_font(activity_layer, fonts_get_system_font(FONT_KEY_GOTHIC_14_BOLD)); text_layer_set_text_alignment(activity_layer, GTextAlignmentCenter); layer_add_child(window_layer, text_layer_get_layer(activity_layer)); Tuplet initial_values[] = { TupletCString(TRIPCHAIN_LATTITUDE_KEY, "60.1833\u00B0 N"), TupletCString(TRIPCHAIN_LONGITUDE_KEY, "24.8333\u00B0 E"), TupletCString(TRIPCHAIN_TRACKING_KEY, "Not tracking"), TupletCString(TRIPCHAIN_ACTIVITY_KEY, "default"), }; app_sync_init(&sync, sync_buffer, sizeof(sync_buffer), initial_values, ARRAY_LENGTH(initial_values), sync_tuple_changed_callback, sync_error_callback, NULL); send_cmd(); }
void controller_init() { app_message_register_outbox_sent(outbox_sent_callback); app_message_register_outbox_failed(outbox_failed_callback); // Open AppMessage app_message_open(app_message_inbox_size_maximum(), app_message_outbox_size_maximum()); // Setup initial values Tuplet initial_values[] = { TupletCString(KEY_TEMPERATURE, ""), TupletCString(KEY_CONDITIONS, "Weather …"), TupletCString(KEY_PING_MGS, "?"), TupletCString(KEY_TRIGGER_MSG, ""), TupletCString(KEY_TEMPERATURE_US, "") }; // Begin using AppSync app_sync_init(&s_sync, s_sync_buffer, sizeof(s_sync_buffer), initial_values, ARRAY_LENGTH(initial_values), sync_changed_handler, sync_error_handler, NULL); }
static void init_clock(Window *window) { Layer *window_layer = window_get_root_layer(window); GRect bounds = layer_get_bounds(window_layer); time_layer = text_layer_create(GRect(0, 30, bounds.size.w, bounds.size.h-100)); text_layer_set_text_alignment(time_layer, GTextAlignmentCenter); text_layer_set_text_color(time_layer, GColorWhite); text_layer_set_background_color(time_layer, GColorClear); text_layer_set_font(time_layer, fonts_get_system_font(FONT_KEY_ROBOTO_BOLD_SUBSET_49)); time_t now = time(NULL); struct tm *current_time = localtime(&now); handle_tick(current_time, MINUTE_UNIT); tick_timer_service_subscribe(MINUTE_UNIT, handle_tick); layer_add_child(window_get_root_layer(window), text_layer_get_layer(time_layer)); temp_layer = text_layer_create(GRect(0, 130, (bounds.size.w/2), bounds.size.h-130)); text_layer_set_text_color(temp_layer, GColorBlack); text_layer_set_text_alignment(temp_layer, GTextAlignmentCenter); text_layer_set_background_color(temp_layer, GColorWhite); text_layer_set_overflow_mode(temp_layer, GTextOverflowModeFill); text_layer_set_font(temp_layer, fonts_get_system_font(FONT_KEY_GOTHIC_28_BOLD)); layer_add_child(window_get_root_layer(window), text_layer_get_layer(temp_layer)); aqi_value_layer = text_layer_create(GRect(bounds.size.w/2, 130, (bounds.size.w/2), bounds.size.h-130)); text_layer_set_text_color(aqi_value_layer, GColorBlack); text_layer_set_text_alignment(aqi_value_layer, GTextAlignmentCenter); text_layer_set_background_color(aqi_value_layer, GColorWhite); text_layer_set_overflow_mode(aqi_value_layer, GTextOverflowModeFill); text_layer_set_font(aqi_value_layer, fonts_get_system_font(FONT_KEY_GOTHIC_28_BOLD)); layer_add_child(window_layer, text_layer_get_layer(aqi_value_layer)); int aqi = persist_exists(AQI) ? persist_read_int(AQI) : -1; int temperature = persist_exists(TEMPERATURE) ? persist_read_int(TEMPERATURE) : -1; Tuplet initial_values[] = { TupletInteger(AQI, aqi), TupletInteger(TEMPERATURE, temperature) }; app_sync_init(&sync, sync_buffer, sizeof(sync_buffer), initial_values, ARRAY_LENGTH(initial_values), sync_tuple_changed_callback, sync_error_callback, NULL); }
void init(void) { // Init the global stuff window = window_create(); window_stack_push(window, true); Layer *window_layer = window_get_root_layer(window); GRect window_bounds = layer_get_bounds(window_layer); last_hour = -1; last_minute = -1; // Get local values and set them as a defaults seconds = persist_read_int(setting_seconds); background = persist_read_int(setting_background); info = persist_read_int(setting_info); digital = persist_read_int(setting_digital); // Load settings Tuplet tuples[] = { TupletInteger(setting_seconds, seconds), TupletInteger(setting_background, background), TupletInteger(setting_info, info), TupletInteger(setting_digital, digital) }; app_message_open(160, 160); app_sync_init(&app, buffer, sizeof(buffer), tuples, ARRAY_LENGTH(tuples), tuple_changed_callback, app_error_callback, NULL); // Init background background_bitmap = gbitmap_create_with_resource(RESOURCE_ID_IMAGE_BACKGROUND); background_simple_bitmap = gbitmap_create_with_resource(RESOURCE_ID_IMAGE_BACKGROUND_SIMPLE); background_layer = bitmap_layer_create(window_bounds); bitmap_layer_set_bitmap(background_layer, (background == background_simple) ? background_simple_bitmap : background_bitmap); layer_add_child(window_layer, bitmap_layer_get_layer(background_layer)); // Init info info_container = layer_create(window_bounds); layer_add_child(window_layer, info_container); info_layer = layer_create(window_bounds); bluetooth_layer = text_layer_create((GRect) { .origin = { 0, 0 }, .size = { 44, 18 } });
static void window_load(Window *window) { Layer *window_layer = window_get_root_layer(window); temperature_layer = text_layer_create(GRect(0, 100, 144, 68)); text_layer_set_text_color(temperature_layer, GColorWhite); text_layer_set_background_color(temperature_layer, GColorClear); text_layer_set_font(temperature_layer, fonts_get_system_font(FONT_KEY_GOTHIC_28_BOLD)); text_layer_set_text_alignment(temperature_layer, GTextAlignmentCenter); text_layer_set_text(temperature_layer, temperature); Tuplet initial_values[] = { TupletInteger(WEATHER_ICON_KEY, (uint8_t) 1), TupletCString(WEATHER_TEMPERATURE_KEY, "Trader Watch"), }; app_sync_init(&sync, sync_buffer, sizeof(sync_buffer), initial_values, ARRAY_LENGTH(initial_values), sync_tuple_changed_callback, sync_error_callback, NULL); layer_add_child(window_layer, text_layer_get_layer(temperature_layer)); }
static void window_load(Window *window) { Layer *window_layer = window_get_root_layer(window); icon_layer = bitmap_layer_create(GRect(32, 10, 80, 80)); layer_add_child(window_layer, bitmap_layer_get_layer(icon_layer)); // topLayer = text_layer_create(GRect(0, 35, 144, 68)); // text_layer_set_text_color(topLayer, GColorBlack); // text_layer_set_background_color(topLayer, GColorClear); // text_layer_set_font(topLayer, fonts_get_system_font(FONT_KEY_GOTHIC_28_BOLD)); // text_layer_set_text_alignment(topLayer, GTextAlignmentCenter); // layer_add_child(window_layer, text_layer_get_layer(name_layer)); name_layer = text_layer_create(GRect(0, 55, 144, 68)); text_layer_set_text_color(name_layer, GColorBlack); text_layer_set_background_color(name_layer, GColorClear); text_layer_set_font(name_layer, fonts_get_system_font(FONT_KEY_GOTHIC_28_BOLD)); text_layer_set_text_alignment(name_layer, GTextAlignmentCenter); layer_add_child(window_layer, text_layer_get_layer(name_layer)); phone_layer = text_layer_create(GRect(0, 135, 144, 68)); text_layer_set_text_color(phone_layer, GColorBlack); text_layer_set_background_color(phone_layer, GColorClear); text_layer_set_font(phone_layer, fonts_get_system_font(FONT_KEY_GOTHIC_28_BOLD)); text_layer_set_text_alignment(phone_layer, GTextAlignmentCenter); layer_add_child(window_layer, text_layer_get_layer(phone_layer)); Tuplet initial_values[] = { TupletInteger(ID_KEY, (uint8_t) 1), TupletCString(NAME_KEY, "Neel"), TupletCString(PHONE_KEY, "Ready") }; app_sync_init(&sync, sync_buffer, sizeof(sync_buffer), initial_values, ARRAY_LENGTH(initial_values), sync_tuple_changed_callback, sync_error_callback, NULL); //send_cmd(); }
/*----------------------------------------------------------------------------*/ static void window_load(Window * window) { APP_LOG(APP_LOG_LEVEL_INFO, "%s", __FUNCTION__); /* This is just a dummy structure used for initializaton only. */ Tuplet vector_dict[] = { TupletInteger(PP_KEY_CMD, PP_CMD_INVALID), TupletInteger(PP_KEY_X, (int) 0x11111111), TupletInteger(PP_KEY_Y, (int) 0x22222222), TupletInteger(PP_KEY_Z, (int) 0x33333333), }; syncChangeCount = ARRAY_LENGTH(vector_dict); app_sync_init( &sync, sync_buffer, sizeof(sync_buffer), vector_dict, ARRAY_LENGTH(vector_dict), sync_tuple_changed_callback, sync_error_callback, NULL ); syncStats.sync_set++; }
static void window_load(Window *window) { Layer *window_layer = window_get_root_layer(window); GRect bounds = layer_get_bounds(window_layer); title_layer = text_layer_create(GRect(0, 0, 145, 70)); text_layer_set_font(title_layer, fonts_get_system_font(FONT_KEY_GOTHIC_28_BOLD)); text_layer_set_text(title_layer, "Network!"); layer_add_child(window_layer, text_layer_get_layer(title_layer)); subtitle_layer = text_layer_create(GRect(0, 30, 145, 70)); text_layer_set_font(subtitle_layer, fonts_get_system_font(FONT_KEY_GOTHIC_28)); layer_add_child(window_layer, text_layer_get_layer(subtitle_layer)); data_layer = text_layer_create(GRect(0, 75, 145, 70)); text_layer_set_font(data_layer, fonts_get_system_font(FONT_KEY_GOTHIC_24_BOLD)); layer_add_child(window_layer, text_layer_get_layer(data_layer)); percentage_layer = text_layer_create(GRect(0, 100, 145, 70)); text_layer_set_font(percentage_layer, fonts_get_system_font(FONT_KEY_GOTHIC_24_BOLD)); layer_add_child(window_layer, text_layer_get_layer(percentage_layer)); days_layer = text_layer_create(GRect(0, 125, 145, 70)); text_layer_set_font(days_layer, fonts_get_system_font(FONT_KEY_GOTHIC_24_BOLD)); layer_add_child(window_layer, text_layer_get_layer(days_layer)); Tuplet initial_values[] = { TupletCString(0x0, ""), TupletCString(0x1, ""), TupletCString(0x2, ""), TupletCString(0x3, "") }; app_sync_init(&sync, sync_buffer, sizeof(sync_buffer), initial_values, ARRAY_LENGTH(initial_values), sync_tuple_changed_callback, sync_error_callback, NULL); send_cmd(); }
static void init() { const int inbound_size = 128; const int outbound_size = 128; app_message_open(inbound_size, outbound_size); load_persistent_config(); Tuplet initial_values[] = { TupletCString(DialColor_KEY, configs.dialcolor), TupletCString(SecondHandOption_KEY, configs.secondhandoption), TupletCString(DateOption_KEY, configs.dateoption), TupletCString(HourlyVibration_KEY, configs.hourlyvibration), TupletInteger(BluetoothStatusDetection_KEY, configs.bluetoothstatusdetection) }; app_sync_init(&s_sync, s_sync_buffer, sizeof(s_sync_buffer), initial_values, ARRAY_LENGTH(initial_values), s_sync_tuple_changed_callback, NULL, NULL); s_window = window_create(); window_set_window_handlers(s_window, (WindowHandlers) { .load = window_load, .unload = window_unload, });
void handle_init(void) { window = window_create(); window_stack_push(window, true /* Animated */); window_set_background_color(window, GColorBlack); Layer *window_layer = window_get_root_layer(window); // Setup weather bar Layer *weather_holder = layer_create(GRect(0, 0, 144, 50)); layer_add_child(window_layer, weather_holder); icon_layer = bitmap_layer_create(GRect(8, 7, 40, 40)); layer_add_child(weather_holder, bitmap_layer_get_layer(icon_layer)); temp_layer = text_layer_create(GRect(32, 10, 144 - 40, 28)); text_layer_set_text_color(temp_layer, GColorWhite); text_layer_set_background_color(temp_layer, GColorClear); text_layer_set_font(temp_layer, fonts_get_system_font(FONT_KEY_GOTHIC_28_BOLD)); text_layer_set_text_alignment(temp_layer, GTextAlignmentRight); layer_add_child(weather_holder, text_layer_get_layer(temp_layer)); // Initialize date & time text Layer *date_holder = layer_create(GRect(0, 52, 144, 94)); layer_add_child(window_layer, date_holder); ResHandle roboto_21 = resource_get_handle(RESOURCE_ID_FONT_ROBOTO_CONDENSED_21); text_day_layer = text_layer_create(GRect(8, 0, 144-8, 25)); text_layer_set_text_color(text_day_layer, GColorWhite); text_layer_set_background_color(text_day_layer, GColorClear); text_layer_set_font(text_day_layer, fonts_load_custom_font(roboto_21)); layer_add_child(date_holder, text_layer_get_layer(text_day_layer)); text_date_layer = text_layer_create(GRect(8, 21, 144-8, 25)); text_layer_set_text_color(text_date_layer, GColorWhite); text_layer_set_background_color(text_date_layer, GColorClear); text_layer_set_font(text_date_layer, fonts_load_custom_font(roboto_21)); layer_add_child(date_holder, text_layer_get_layer(text_date_layer)); line_layer = layer_create(GRect(8, 47, 144-16, 2)); layer_set_update_proc(line_layer, line_layer_update_callback); layer_add_child(date_holder, line_layer); line_layer = layer_create(GRect(8, 0, 144-16, 2)); layer_set_update_proc(line_layer, line_layer_update_callback); layer_add_child(date_holder, line_layer); ResHandle roboto_49 = resource_get_handle(RESOURCE_ID_FONT_ROBOTO_BOLD_SUBSET_49); text_time_layer = text_layer_create(GRect(7, 45, 144-7, 49)); text_layer_set_text_color(text_time_layer, GColorWhite); text_layer_set_background_color(text_time_layer, GColorClear); text_layer_set_text_alignment(text_time_layer, GTextAlignmentCenter); text_layer_set_font(text_time_layer, fonts_load_custom_font(roboto_49)); layer_add_child(date_holder, text_layer_get_layer(text_time_layer)); // Setup messaging const int inbound_size = 64; const int outbound_size = 64; app_message_open(inbound_size, outbound_size); Tuplet initial_values[] = { TupletInteger(WEATHER_ICON_KEY, (uint8_t) 13), TupletCString(WEATHER_TEMPERATURE_KEY, ""), TupletInteger(INVERT_COLOR_KEY, persist_read_bool(INVERT_COLOR_KEY)), }; app_sync_init(&sync, sync_buffer, sizeof(sync_buffer), initial_values, ARRAY_LENGTH(initial_values), sync_tuple_changed_callback, NULL, NULL); // FIXME testing code battery_text_layer = text_layer_create(GRect(0, 53, 144-8, 30)); text_layer_set_text_color(battery_text_layer, GColorWhite); text_layer_set_background_color(battery_text_layer, GColorClear); text_layer_set_font(battery_text_layer, fonts_load_custom_font(roboto_21)); text_layer_set_text_alignment(battery_text_layer, GTextAlignmentRight); layer_add_child(window_layer, text_layer_get_layer(battery_text_layer)); // Subscribe to notifications bluetooth_connection_service_subscribe(bluetooth_connection_changed); tick_timer_service_subscribe(MINUTE_UNIT, handle_minute_tick); battery_state_service_subscribe(update_battery_state); // Update the battery on launch update_battery_state(battery_state_service_peek()); // TODO: Update display here to avoid blank display on launch? }
static void window_load(Window *window) { Layer *window_layer = window_get_root_layer(window); // Add Mateocons Layer layer_add_child(window_layer, text_layer_get_layer(mateocons_layer)); // Spot Name Layer spot_name_layer = text_layer_create(GRect(0, -6, 120, 52)); text_layer_set_text_color(spot_name_layer, GColorWhite); text_layer_set_background_color(spot_name_layer, GColorClear); text_layer_set_font(spot_name_layer, fonts_get_system_font(FONT_KEY_GOTHIC_24_BOLD)); text_layer_set_text_alignment(spot_name_layer, GTextAlignmentCenter); text_layer_set_overflow_mode(spot_name_layer, GTextOverflowModeWordWrap); layer_add_child(window_layer, text_layer_get_layer(spot_name_layer)); //Surf Image Layer icon_id_layer = bitmap_layer_create(GRect(22, 46, 80, 80)); layer_add_child(window_layer, bitmap_layer_get_layer(icon_id_layer)); // Water Temp Layer water_temp_layer = text_layer_create(GRect(24, 92, 40, 18)); text_layer_set_text_color(water_temp_layer, GColorBlack); text_layer_set_background_color(water_temp_layer, GColorClear); text_layer_set_font(water_temp_layer, fonts_get_system_font(FONT_KEY_GOTHIC_18_BOLD)); text_layer_set_text_alignment(water_temp_layer, GTextAlignmentLeft); layer_add_child(window_layer, text_layer_get_layer(water_temp_layer)); // Surf Height Layer surf_ht_layer = text_layer_create(GRect(72, 76, 30, 24)); text_layer_set_text_color(surf_ht_layer, GColorWhite); text_layer_set_background_color(surf_ht_layer, GColorClear); text_layer_set_font(surf_ht_layer, fonts_get_system_font(FONT_KEY_GOTHIC_24)); text_layer_set_text_alignment(surf_ht_layer, GTextAlignmentRight); layer_add_child(window_layer, text_layer_get_layer(surf_ht_layer)); // Button Bar Layer bmp_button_bar = gbitmap_create_with_resource(RESOURCE_ID_IMAGE_BUTTON_BAR); button_bar_layer = bitmap_layer_create(GRect(120, 0, 24, 152)); bitmap_layer_set_bitmap(button_bar_layer, bmp_button_bar); layer_add_child(window_layer, bitmap_layer_get_layer(button_bar_layer)); // Wind Layer wind_layer = text_layer_create(GRect(46, 122, 74, 32)); text_layer_set_text_color(wind_layer, GColorWhite); text_layer_set_background_color(wind_layer, GColorClear); text_layer_set_font(wind_layer, fonts_get_system_font(FONT_KEY_GOTHIC_24)); text_layer_set_text_alignment(wind_layer, GTextAlignmentLeft); layer_add_child(window_layer, text_layer_get_layer(wind_layer)); Tuplet initial_values[] = { TupletCString(INDEX_KEY, "refresh"), TupletInteger(SURF_ICON_ID_KEY, (uint8_t) 4), TupletCString(SURF_WIND_KEY, "Loading..."), TupletCString(SURF_SPOT_NAME_KEY, "SpitCast.com"), TupletCString(SURF_HT_KEY, "- ft"), TupletCString(WATER_TEMP_KEY, "--\u00B0F") }; app_sync_init(&sync, sync_buffer, sizeof(sync_buffer), initial_values, ARRAY_LENGTH(initial_values), sync_tuple_changed_callback, sync_error_callback, NULL); send_cmd(); }
/* Initialize the application. */ void app_init(void) { const int inbound_size = 64; const int outbound_size = 64; app_message_open(inbound_size, outbound_size); // restore values from persistent storage in case the phone isn't around sunrise_time = persist_exists(SUNRISE_STORAGE_KEY) ? persist_read_int(SUNRISE_STORAGE_KEY) : DEFAULT_SUN_TIME; sunset_time = persist_exists(SUNSET_STORAGE_KEY) ? persist_read_int(SUNSET_STORAGE_KEY) : DEFAULT_SUN_TIME; Tuplet initial_values[] = { TupletInteger(SUNRISE_TIME_KEY, sunrise_time), TupletInteger(SUNSET_TIME_KEY, sunset_time), }; app_sync_init(&sync, sync_buffer, sizeof(sync_buffer), initial_values, ARRAY_LENGTH(initial_values), sync_tuple_changed_callback, sync_error_callback, NULL); // get sunrise/set times from the phone send_cmd(); time_t t = time(NULL); struct tm *tick_time = localtime(&t); TimeUnits units_changed = SECOND_UNIT | MINUTE_UNIT | HOUR_UNIT | DAY_UNIT; ResHandle res_d; ResHandle res_t; Layer *window_layer; window = window_create(); window_layer = window_get_root_layer(window); window_set_background_color(window, GColorBlack); res_d = resource_get_handle(RESOURCE_ID_FONT_ROBOTO_CONDENSED_21); res_t = resource_get_handle(RESOURCE_ID_FONT_ROBOTO_BOLD_SUBSET_49); font_date = fonts_load_custom_font(res_d); font_time = fonts_load_custom_font(res_t); text_day_layer = text_layer_create(GRect(8, 44 + MOVE_AMOUNT, 144-8, 168-44- MOVE_AMOUNT)); text_layer_set_text_color(text_day_layer, GColorWhite); text_layer_set_background_color(text_day_layer, GColorClear); text_layer_set_font(text_day_layer, font_date); layer_add_child(window_layer, text_layer_get_layer(text_day_layer)); text_date_layer = text_layer_create(GRect(8, 68 + MOVE_AMOUNT, 144-8, 168-68- MOVE_AMOUNT)); text_layer_set_text_color(text_date_layer, GColorWhite); text_layer_set_background_color(text_date_layer, GColorClear); text_layer_set_font(text_date_layer, font_date); layer_add_child(window_layer, text_layer_get_layer(text_date_layer)); text_time_layer = text_layer_create(GRect(7, 92 + MOVE_AMOUNT, 144-7, 168-92- MOVE_AMOUNT)); text_layer_set_text_color(text_time_layer, GColorWhite); text_layer_set_background_color(text_time_layer, GColorClear); text_layer_set_font(text_time_layer, font_time); layer_add_child(window_layer, text_layer_get_layer(text_time_layer)); text_sun_layer = text_layer_create(GRect(80, 138, 144-45, 168-80)); text_layer_set_text_color(text_sun_layer, GColorWhite); text_layer_set_background_color(text_sun_layer, GColorClear); text_layer_set_font(text_sun_layer, font_date); layer_add_child(window_layer, text_layer_get_layer(text_sun_layer)); line_layer = layer_create(GRect(0, 0, 144, 168)); layer_set_update_proc(line_layer, line_layer_update_callback); layer_add_child(window_layer, line_layer); handle_minute_tick(tick_time, units_changed); update_sun_time(tick_time); window_stack_push(window, true /* Animated */); tick_timer_service_subscribe(MINUTE_UNIT, handle_minute_tick); }
static void window_load(Window *window) { Layer *window_layer = window_get_root_layer(window); Tuplet initial_values[] = { TupletCString(SERIES_KEY, "Formula 1"), //TupletInteger(ROUND_NUMBER_KEY, (int) 9), TupletCString(ROUND_NUMBER_KEY, "current"), TupletCString(SEASON_KEY, "2014"), TupletCString(ROUND_KEY, "getting sched"), TupletCString(RACENAME_KEY, "Finding Next Grand Prix"), TupletCString(LOCALITY_KEY, "Locating next circuit and location; continent"), TupletCString(DATE_KEY, "countwown to next race"), TupletCString(TIME_KEY, "Time key time key"), TupletInteger(OFFSET_KEY, (int) 7), }; GFont round_font = fonts_load_custom_font(resource_get_handle(RESOURCE_ID_FONT_ARIAL_17)); GFont racename_font = fonts_load_custom_font(resource_get_handle(RESOURCE_ID_FONT_ARIAL_BOLD_22)); //create layers x, y, w, h title_layer = text_layer_create(GRect(0, 0, 144, 50)); text_layer_set_text_alignment(title_layer, GTextAlignmentCenter); text_layer_set_background_color(title_layer, GColorClear); bar_layer = bitmap_layer_create(GRect(0, 33, 144, 10)); flag = gbitmap_create_with_resource(RESOURCE_ID_IMAGE_CHEQUERED_FLAG); bitmap_layer_set_bitmap(bar_layer, flag); // line_layer = text_layer_create(GRect(0, 36, 144, 1)); // line_layer2 = text_layer_create(GRect(0, 39, 144, 1)); // text_layer_set_background_color(line_layer, GColorBlack); // text_layer_set_background_color(line_layer2, GColorBlack); round_layer = text_layer_create(GRect(0, 42, 144, 50)); text_layer_set_background_color(round_layer, GColorClear); text_layer_set_text_alignment(round_layer, GTextAlignmentCenter); text_layer_set_overflow_mode(round_layer, GTextOverflowModeFill); text_layer_set_font(round_layer, round_font); // text_layer_set_font(round_layer, fonts_get_system_font(FONT_KEY_GOTHIC_24_BOLD)); racename_layer = text_layer_create(GRect(2, 57, 142, 150)); // text_layer_set_font(racename_layer, fonts_get_system_font(FONT_KEY_GOTHIC_24_BOLD)); text_layer_set_font(racename_layer, racename_font); text_layer_set_background_color(racename_layer, GColorClear); locality_layer = text_layer_create(GRect(2, 101, 242, 50)); // text_layer_set_font(locality_layer, fonts_get_system_font(FONT_KEY_GOTHIC_14)); text_layer_set_font(locality_layer, fonts_get_system_font(FONT_KEY_GOTHIC_18)); text_layer_set_overflow_mode(locality_layer, GTextOverflowModeWordWrap); text_layer_set_text_alignment(locality_layer, GTextAlignmentLeft); text_layer_set_overflow_mode(locality_layer, GTextOverflowModeTrailingEllipsis); text_layer_set_background_color(locality_layer, GColorClear); date_layer = text_layer_create(GRect(0, 137, 144, 80)); // text_layer_set_text_alignment(date_layer, GTextAlignmentCenter); text_layer_set_overflow_mode(date_layer, GTextOverflowModeWordWrap); text_layer_set_font(date_layer, fonts_get_system_font(FONT_KEY_GOTHIC_24_BOLD)); text_layer_set_background_color(date_layer, GColorClear); text_layer_set_text_alignment(date_layer, GTextAlignmentCenter); time_layer = text_layer_create(GRect(0-20, 168-40, 184, 20)); text_layer_set_background_color(time_layer, GColorClear); text_layer_set_overflow_mode(time_layer, GTextOverflowModeTrailingEllipsis); GFont custom_font_title = fonts_load_custom_font(resource_get_handle(RESOURCE_ID_FONT_TAHOMA_BOLD_28)); text_layer_set_font(title_layer, custom_font_title); layer_add_child(window_layer, text_layer_get_layer(title_layer)); // layer_add_child(window_layer, text_layer_get_layer(line_layer)); // layer_add_child(window_layer, text_layer_get_layer(line_layer2)); layer_add_child(window_layer, bitmap_layer_get_layer(bar_layer)); layer_add_child(window_layer, text_layer_get_layer(round_layer)); layer_add_child(window_layer, text_layer_get_layer(racename_layer)); layer_add_child(window_layer, text_layer_get_layer(locality_layer)); layer_add_child(window_layer, text_layer_get_layer(date_layer)); // layer_add_child(window_layer, text_layer_get_layer(time_layer)); app_sync_init(&sync, sync_buffer, sizeof(sync_buffer), initial_values, ARRAY_LENGTH(initial_values), sync_tuple_changed_callback, sync_error_callback, NULL); tick_timer_service_subscribe(SECOND_UNIT, &handle_second_tick); }
static void window_load(Window *window) { Layer *window_layer = window_get_root_layer(window); icon_layer = bitmap_layer_create(GRect(82, 0, 61, 61)); layer_add_child(window_layer, bitmap_layer_get_layer(icon_layer)); bg_layer = text_layer_create(GRect(0, 0, 83, 40)); text_layer_set_text_color(bg_layer, GColorBlack); text_layer_set_background_color(bg_layer, GColorClear); text_layer_set_font(bg_layer, fonts_get_system_font(FONT_KEY_BITHAM_34_MEDIUM_NUMBERS)); text_layer_set_text_alignment(bg_layer, GTextAlignmentLeft); layer_add_child(window_layer, text_layer_get_layer(bg_layer)); readtime_layer = text_layer_create(GRect(0, 40, 144, 22)); text_layer_set_text_color(readtime_layer, GColorBlack); text_layer_set_background_color(readtime_layer, GColorClear); text_layer_set_font(readtime_layer, fonts_get_system_font(FONT_KEY_GOTHIC_18_BOLD)); text_layer_set_text_alignment(readtime_layer, GTextAlignmentCenter); layer_add_child(window_layer, text_layer_get_layer(readtime_layer)); name_layer = text_layer_create(GRect(0, 62, 144, 22)); text_layer_set_text_color(name_layer, GColorBlack); text_layer_set_background_color(name_layer, GColorWhite); text_layer_set_font(name_layer, fonts_get_system_font(FONT_KEY_GOTHIC_18_BOLD)); text_layer_set_text_alignment(name_layer, GTextAlignmentCenter); layer_add_child(window_layer, text_layer_get_layer(name_layer)); //text_layer_set_text(name_layer, "Phone\45 |NAME| Change"); bg_2_layer = text_layer_create(GRect(0, 84, 144, 40)); text_layer_set_text_color(bg_2_layer, GColorBlack); text_layer_set_background_color(bg_2_layer, GColorWhite); text_layer_set_font(bg_2_layer, fonts_get_system_font(FONT_KEY_BITHAM_34_MEDIUM_NUMBERS)); text_layer_set_text_alignment(bg_2_layer, GTextAlignmentLeft); layer_add_child(window_layer, text_layer_get_layer(bg_2_layer)); //Date icon_2_layer = bitmap_layer_create(GRect(82, 84, 61, 61)); layer_add_child(window_layer, bitmap_layer_get_layer(icon_2_layer)); readtime_2_layer = text_layer_create(GRect(0, 124, 144, 22)); text_layer_set_text_color(readtime_2_layer, GColorBlack); text_layer_set_background_color(readtime_2_layer, GColorClear); text_layer_set_font(readtime_2_layer, fonts_get_system_font(FONT_KEY_GOTHIC_18_BOLD)); text_layer_set_text_alignment(readtime_2_layer, GTextAlignmentCenter); layer_add_child(window_layer, text_layer_get_layer(readtime_2_layer)); name_2_layer = text_layer_create(GRect(0, 146, 144, 22)); text_layer_set_text_color(name_2_layer, GColorBlack); text_layer_set_background_color(name_2_layer, GColorWhite); text_layer_set_font(name_2_layer, fonts_get_system_font(FONT_KEY_GOTHIC_18_BOLD)); text_layer_set_text_alignment(name_2_layer, GTextAlignmentCenter); layer_add_child(window_layer, text_layer_get_layer(name_2_layer)); //text_layer_set_text(name_2_layer, "\45 Name Change"); //draw_date(); Tuplet initial_values[] = { TupletInteger(CGM_ICON_KEY, (uint8_t)4), TupletInteger(CGM_ICON_2_KEY, (uint8_t)4), TupletCString(CGM_BG_KEY, ""), TupletCString(CGM_READTIME_KEY, "Loading..."), TupletInteger(CGM_ALERT_KEY, 0), TupletCString(CGM_BG_2, ""), TupletCString(CGM_DELTA_KEY, "Welcome to NS"), TupletCString(CGM_DELTA_2_KEY, "#wearenotwaiting"), TupletCString(CGM_READTIME_2_KEY, "Loading...") }; app_sync_init(&sync, sync_buffer, sizeof(sync_buffer), initial_values, ARRAY_LENGTH(initial_values), sync_tuple_changed_callback, sync_error_callback, NULL); timer = app_timer_register(1000, timer_callback, NULL); }
static void window_load(Window *window) { Layer *window_layer = window_get_root_layer(window); static int row_height = 22; int it = 2; const int button_bar_width = 20; const int text_layer_width = 144 - button_bar_width; //Set up Window Action Bar up_arrow_icon = gbitmap_create_with_resource(RESOURCE_ID_ICON_UP_ARROW); down_arrow_icon = gbitmap_create_with_resource(RESOURCE_ID_ICON_DOWN_ARROW); settings_icon = gbitmap_create_with_resource(RESOURCE_ID_ICON_SETTINGS); window_action_bar = action_bar_layer_create(); action_bar_layer_add_to_window(window_action_bar, window); action_bar_layer_set_background_color(window_action_bar, GColorBlack); action_bar_layer_set_click_config_provider(window_action_bar, click_config_provider); action_bar_layer_set_icon(window_action_bar, BUTTON_ID_UP, up_arrow_icon); action_bar_layer_set_icon(window_action_bar, BUTTON_ID_DOWN, down_arrow_icon); action_bar_layer_set_icon(window_action_bar, BUTTON_ID_SELECT, settings_icon); // Area Name Layer area_name_layer = text_layer_create(GRect(0, -2, text_layer_width, 48)); text_layer_set_text_color(area_name_layer, GColorWhite); text_layer_set_background_color(area_name_layer, GColorClear); text_layer_set_font(area_name_layer, fonts_get_system_font(FONT_KEY_GOTHIC_24_BOLD)); text_layer_set_text_alignment(area_name_layer, GTextAlignmentCenter); text_layer_set_overflow_mode(area_name_layer, GTextOverflowModeWordWrap); layer_add_child(window_layer, text_layer_get_layer(area_name_layer)); // Weather Description Layer weather_layer = text_layer_create(GRect(0, it++ * row_height, text_layer_width, row_height)); text_layer_set_text_color(weather_layer, GColorWhite); text_layer_set_background_color(weather_layer, GColorClear); text_layer_set_font(weather_layer, fonts_get_system_font(FONT_KEY_GOTHIC_18)); text_layer_set_text_alignment(weather_layer, GTextAlignmentCenter); layer_add_child(window_layer, text_layer_get_layer(weather_layer)); // Snowfall Layer snowfall_layer = text_layer_create(GRect(0, it++ * row_height, text_layer_width, row_height)); text_layer_set_text_color(snowfall_layer, GColorWhite); text_layer_set_background_color(snowfall_layer, GColorClear); text_layer_set_font(snowfall_layer, fonts_get_system_font(FONT_KEY_GOTHIC_18)); text_layer_set_text_alignment(snowfall_layer, GTextAlignmentCenter); layer_add_child(window_layer, text_layer_get_layer(snowfall_layer)); // Temperature Layer temps_layer = text_layer_create(GRect(0, it++ * row_height, text_layer_width, row_height)); text_layer_set_text_color(temps_layer, GColorWhite); text_layer_set_background_color(temps_layer, GColorClear); text_layer_set_font(temps_layer, fonts_get_system_font(FONT_KEY_GOTHIC_18)); text_layer_set_text_alignment(temps_layer, GTextAlignmentCenter); layer_add_child(window_layer, text_layer_get_layer(temps_layer)); // Wind Layer wind_layer = text_layer_create(GRect(0, it++ * row_height, text_layer_width, row_height)); text_layer_set_text_color(wind_layer, GColorWhite); text_layer_set_background_color(wind_layer, GColorClear); text_layer_set_font(wind_layer, fonts_get_system_font(FONT_KEY_GOTHIC_18)); text_layer_set_text_alignment(wind_layer, GTextAlignmentCenter); layer_add_child(window_layer, text_layer_get_layer(wind_layer)); // Update Time Layer update_layer = text_layer_create(GRect(0, it++ * row_height + 4, text_layer_width, row_height)); text_layer_set_text_color(update_layer, GColorWhite); text_layer_set_background_color(update_layer, GColorClear); text_layer_set_font(update_layer, fonts_get_system_font(FONT_KEY_GOTHIC_14_BOLD)); text_layer_set_text_alignment(update_layer, GTextAlignmentCenter); layer_add_child(window_layer, text_layer_get_layer(update_layer)); Tuplet initial_values[] = { TupletInteger(INDEX_KEY, (uint8_t) 0), TupletCString(AREA_NAME_KEY, "Loading..."), TupletCString(WEATHER_DESC_KEY, "Loading..."), TupletCString(WIND_KEY, "Wind: --- @ -- ---"), TupletCString(AREA_TEMPS_KEY, "Temp(--): -- to --"), TupletCString(AREA_SNOWFALL_KEY, "Snow(24h): -- "), TupletCString(UPDATE_TIME_KEY, "Updated @ --:--"), TupletInteger(UNITS_KEY, (uint8_t) 0), }; app_sync_init(&sync, sync_buffer, sizeof(sync_buffer), initial_values, ARRAY_LENGTH(initial_values), sync_tuple_changed_callback, sync_error_callback, NULL); send_cmd(); }