示例#1
0
void handle_minute_tick(AppContextRef ctx, PebbleTickEvent *t) {
	(void)ctx;
	(void)t;
	
	update_hand_positions(&hour_hand_image_container, &minute_hand_image_container);

    timer_handle = app_timer_send_event(ctx, 100, 1); // Send a timer to start the blink animation
}
示例#2
0
void handle_second_tick(AppContextRef ctx, PebbleTickEvent *t) {
  (void)t;
  (void)ctx;

  update_hand_positions(); // TODO: Pass tick event

 PblTm ti;
 get_time(&ti);
  
 string_format_time(date_text, sizeof(date_text), "%d", &ti);
 text_layer_set_text(&date_layer, date_text);
  layer_mark_dirty(&second_display_layer);

}
示例#3
0
void handle_init(AppContextRef ctx) {
	(void)ctx;
    	
	window_init(&window, "Dragon Clock");
	window_stack_push(&window, true /* Animated */);
	
	resource_init_current_app(&APP_RESOURCES);
    
    // Set up layer for the hour hand
	rotbmp_init_container(RESOURCE_ID_DRAGON_HOUR_HAND, &hour_hand_image_container);
	rot_bitmap_set_src_ic(&hour_hand_image_container.layer, GPoint(2, 28));
	layer_add_child(&window.layer, &hour_hand_image_container.layer.layer);
	
	// Set up layer for the minute hand
	rotbmp_init_container(RESOURCE_ID_DRAGON_MINUTE_HAND, &minute_hand_image_container);
	rot_bitmap_set_src_ic(&minute_hand_image_container.layer, GPoint(0, 45));
	layer_add_child(&window.layer, &minute_hand_image_container.layer.layer);
    
    // Set up layer for dragon background image
	layer_init(&background_layer, window.layer.frame);

	// Using a "hack" to get a transparent png to render without slowing the watch down to a crawl.
	// Usually a transparent png needs a RotBmpPairContainer, but in this case we are taking both
	// the white part and the black part and rendering them in separate BmpContainers, then setting
	// the compositing of each, and finally putting images on the same layer, thus creating a 
	// "transparent" bitmap. Thanks to Philip from Pebble for this "completely un-endorsed, 
	// un-official, don't-actually-do-this-in-production-code" suggestion :)
    bmp_init_container(RESOURCE_ID_DRAGON_BACKGROUND_WHITE, &background_image_container_white);
    background_image_container_white.layer.compositing_mode = GCompOpOr;
    layer_add_child(&background_layer, &background_image_container_white.layer.layer);
    
    bmp_init_container(RESOURCE_ID_DRAGON_BACKGROUND_BLACK, &background_image_container_black);
    background_image_container_black.layer.compositing_mode = GCompOpClear;
    layer_add_child(&background_layer, &background_image_container_black.layer.layer);
    
    layer_add_child(&window.layer, &background_layer);

    // Set up layer that will hold the blink animation
   	frame_animation_init(&blink_animation, &window.layer, GPoint(11, 111), RESOURCE_ID_DRAGON_BLINK_1_WHITE, 4, true, true);

	update_hand_positions(&hour_hand_image_container, &minute_hand_image_container);	
}
void handle_tick(AppContextRef ctx, PebbleTickEvent *t) {
  (void)t;

	PblTm currentTime;
	static char timeTextM[] = "00";
	static char timeTextH[] = "00";

  first_run = "false";
	font_minutes_word.old_text = font_minutes_word.text;
	hours_word.old_text = hours_word.text;
	
	get_time(&currentTime);
	
	string_format_time(timeTextM, sizeof(timeTextM), "%M", &currentTime);
	font_minutes_word.text = timeTextM;

	string_format_time(timeTextH, sizeof(timeTextH), "%H", &currentTime);
	hours_word.text = timeTextH;
	
	update_word(&font_minutes_word);
  update_hand_positions();
}
示例#5
0
void handle_init(AppContextRef ctx) {
  (void)ctx;
    init = false;

    window_init(&window, "Planets Window");
    window_stack_push(&window, true /* Animated */);
    
    resource_init_current_app(&APP_RESOURCES);
    
    // Set up a layer for the static watch face background
    bmp_init_container(RESOURCE_ID_IMAGE_BACKGROUND, &background_image_container);
    layer_add_child(&window.layer, &background_image_container.layer.layer);
    
    // Set up a layer for the hour hand
    rotbmp_init_container(RESOURCE_ID_IMAGE_HOUR_HAND, &hour_hand_image_container);
    GSize hourSize = layer_get_frame(&hour_hand_image_container.layer.layer).size;
    hourOffset = GPoint(hourSize.w / 2, hourSize.h / 2);
    layer_add_child(&window.layer, &hour_hand_image_container.layer.layer);
    
    
    // Set up a layer for the minute hand
    rotbmp_init_container(RESOURCE_ID_IMAGE_MINUTE_HAND, &minute_hand_image_container);
    GSize minSize = layer_get_frame(&minute_hand_image_container.layer.layer).size;
    minOffset = GPoint(minSize.w / 2, minSize.h / 2);
    layer_add_child(&window.layer, &minute_hand_image_container.layer.layer);
    
    
    // Set up a layer for the second hand
    rotbmp_init_container(RESOURCE_ID_IMAGE_SECOND_HAND, &second_hand_image_container);
    GSize secSize = layer_get_frame(&second_hand_image_container.layer.layer).size;
    secOffset = GPoint(secSize.w / 2, secSize.h / 2);
    layer_add_child(&window.layer, &second_hand_image_container.layer.layer);
    
    update_hand_positions();
    init = true;
}
示例#6
0
void handle_second_tick(AppContextRef ctx, PebbleTickEvent *t) {
    (void)t;
    update_hand_positions(); // TODO: Pass tick event
}
示例#7
0
void handle_init(AppContextRef ctx) {
  (void)ctx;

  window_init(&window, "Brains Watch");
  window_stack_push(&window, true);

  resource_init_current_app(&APP_RESOURCES);

//    rotbmp_pair_init_container(RESOURCE_ID_IMAGE_PANDA_WHITE, RESOURCE_ID_IMAGE_PANDA_BLACK, &bitmap_container);


  // Set up a layer for the static watch face background
  bmp_init_container(RESOURCE_ID_IMAGE_BACKGROUND, &background_image_container);
  layer_add_child(&window.layer, &background_image_container.layer.layer);


dice = fonts_load_custom_font(resource_get_handle(RESOURCE_ID_FONT_VISITOR_16));

  text_layer_init(&date_layer, GRect(53, 105, 40, 40));
  text_layer_set_text_alignment(&date_layer, GTextAlignmentCenter);
  text_layer_set_text_color(&date_layer, GColorBlack);
  text_layer_set_background_color(&date_layer, GColorClear);
  text_layer_set_font(&date_layer, dice);
  layer_add_child(&window.layer, &date_layer.layer);

 PblTm ti;
 get_time(&ti);
  
 string_format_time(date_text, sizeof(date_text), "%d", &ti);
 text_layer_set_text(&date_layer, date_text);




  // Set up a layer for the hour hand
  rotbmp_init_container(RESOURCE_ID_IMAGE_HOUR_HAND, &hour_hand_image_container);

    //  hour_hand_image_container.layer.compositing_mode = GCompOpClear;

  rot_bitmap_set_src_ic(&hour_hand_image_container.layer, GPoint(3, 42));

  layer_add_child(&window.layer, &hour_hand_image_container.layer.layer);


  // Set up a layer for the minute hand
  rotbmp_init_container(RESOURCE_ID_IMAGE_MINUTE_HAND, &minute_hand_image_container);

 // minute_hand_image_container.layer.compositing_mode = GCompOpClear;

  rot_bitmap_set_src_ic(&minute_hand_image_container.layer, GPoint(3, 58));

  layer_add_child(&window.layer, &minute_hand_image_container.layer.layer);






  update_hand_positions();


  // Setup the black and white circle in the centre of the watch face
  // (We use a bitmap rather than just drawing it because it means not having
  // to stuff around with working out the circle center etc.)
  rotbmp_pair_init_container(RESOURCE_ID_IMAGE_CENTER_CIRCLE_WHITE, RESOURCE_ID_IMAGE_CENTER_CIRCLE_BLACK,
			     &center_circle_image_container);

  // TODO: Do this properly with a GRect().
  // (144 = screen width, 168 = screen height)
  center_circle_image_container.layer.layer.frame.origin.x = (144/2) - (center_circle_image_container.layer.layer.frame.size.w/2);
  center_circle_image_container.layer.layer.frame.origin.y = (168/2) - (center_circle_image_container.layer.layer.frame.size.h/2);


  layer_add_child(&window.layer, &center_circle_image_container.layer.layer);

  layer_init(&second_display_layer, window.layer.frame);
  second_display_layer.update_proc = &second_display_layer_update_callback;
  layer_add_child(&window.layer, &second_display_layer);

}
void handle_init(AppContextRef ctx) {
  (void)ctx;

  window_init(&window, "Circling Hours");
  window_stack_push(&window, true);
	window_set_background_color(&window, GColorBlack);

  resource_init_current_app(&APP_RESOURCES);

	first_run = "true";
	hours_word.old_text = hours_word.text;

  bmp_init_container(RESOURCE_ID_IMAGE_HOUR_BG, &background_image_container);
  layer_add_child(&window.layer, &background_image_container.layer.layer);


//	font_minutes = fonts_load_custom_font(resource_get_handle(RESOURCE_ID_FONT_ARIAL_BLACK_50));
//	text_layer(&font_minutes_word, GRect(0, 40, 143, 100), font_minutes);
/*  add to resource_map.json:
  {
				"type":"font",
				"defName":"FONT_ARIAL_BLACK_50",
				"file":"fonts/Arial-Black.ttf"
  }
*/

// much less space needed because font is built in
//	font_minutes = fonts_get_system_font(FONT_KEY_GOTHAM_42_MEDIUM_NUMBERS);
	font_minutes = fonts_get_system_font(FONT_KEY_GOTHAM_42_BOLD);
	text_layer(&font_minutes_word, GRect(0, 58, 143, 50), font_minutes);

	text_layer_set_text_alignment(&font_minutes_word.layer, GTextAlignmentCenter);
	
	rotbmp_init_container(RESOURCE_ID_IMAGE_HOUR_1, &hour_image_container_1);
	rotbmp_init_container(RESOURCE_ID_IMAGE_HOUR_2, &hour_image_container_2);
	rotbmp_init_container(RESOURCE_ID_IMAGE_HOUR_3, &hour_image_container_3);
	rotbmp_init_container(RESOURCE_ID_IMAGE_HOUR_4, &hour_image_container_4);
	rotbmp_init_container(RESOURCE_ID_IMAGE_HOUR_5, &hour_image_container_5);
	rotbmp_init_container(RESOURCE_ID_IMAGE_HOUR_6, &hour_image_container_6);
	rotbmp_init_container(RESOURCE_ID_IMAGE_HOUR_7, &hour_image_container_7);
	rotbmp_init_container(RESOURCE_ID_IMAGE_HOUR_8, &hour_image_container_8);
	rotbmp_init_container(RESOURCE_ID_IMAGE_HOUR_9, &hour_image_container_9);
	rotbmp_init_container(RESOURCE_ID_IMAGE_HOUR_10, &hour_image_container_10);
	rotbmp_init_container(RESOURCE_ID_IMAGE_HOUR_11, &hour_image_container_11);
	rotbmp_init_container(RESOURCE_ID_IMAGE_HOUR_12, &hour_image_container_12);

	//GCompOpAssign, GCompOpAssignInverted, GCompOpOr, GCompOpAnd, GCompOpClear
	GCompOp mode = GCompOpAssign;
  hour_image_container_1.layer.compositing_mode = mode;
  hour_image_container_2.layer.compositing_mode = mode;
  hour_image_container_3.layer.compositing_mode = mode;
  hour_image_container_4.layer.compositing_mode = mode;
  hour_image_container_5.layer.compositing_mode = mode;
  hour_image_container_6.layer.compositing_mode = mode;
  hour_image_container_7.layer.compositing_mode = mode;
  hour_image_container_8.layer.compositing_mode = mode;
  hour_image_container_9.layer.compositing_mode = mode;
  hour_image_container_10.layer.compositing_mode = mode;
  hour_image_container_11.layer.compositing_mode = mode;
  hour_image_container_12.layer.compositing_mode = mode;

	//GPoint pointxy = GPoint(-73, -75);
	GPoint pointxy = GPoint(14, 70);
  rot_bitmap_set_src_ic(&hour_image_container_1.layer, pointxy);
  rot_bitmap_set_src_ic(&hour_image_container_2.layer, pointxy);
  rot_bitmap_set_src_ic(&hour_image_container_3.layer, pointxy);
  rot_bitmap_set_src_ic(&hour_image_container_4.layer, pointxy);
  rot_bitmap_set_src_ic(&hour_image_container_5.layer, pointxy);
  rot_bitmap_set_src_ic(&hour_image_container_6.layer, pointxy);
  rot_bitmap_set_src_ic(&hour_image_container_7.layer, pointxy);
  rot_bitmap_set_src_ic(&hour_image_container_8.layer, pointxy);
  rot_bitmap_set_src_ic(&hour_image_container_9.layer, pointxy);
  rot_bitmap_set_src_ic(&hour_image_container_10.layer, pointxy);
  rot_bitmap_set_src_ic(&hour_image_container_11.layer, pointxy);
  rot_bitmap_set_src_ic(&hour_image_container_12.layer, pointxy);

  layer_add_child(&window.layer, &hour_image_container_1.layer.layer);
  layer_add_child(&window.layer, &hour_image_container_2.layer.layer);
  layer_add_child(&window.layer, &hour_image_container_3.layer.layer);
  layer_add_child(&window.layer, &hour_image_container_4.layer.layer);
  layer_add_child(&window.layer, &hour_image_container_5.layer.layer);
  layer_add_child(&window.layer, &hour_image_container_6.layer.layer);
  layer_add_child(&window.layer, &hour_image_container_7.layer.layer);
  layer_add_child(&window.layer, &hour_image_container_8.layer.layer);
  layer_add_child(&window.layer, &hour_image_container_9.layer.layer);
  layer_add_child(&window.layer, &hour_image_container_10.layer.layer);
  layer_add_child(&window.layer, &hour_image_container_11.layer.layer);
  layer_add_child(&window.layer, &hour_image_container_12.layer.layer);


  update_hand_positions();


}