#include // layer-age static Window *s_window; static Layer *s_top_bar_layer; static Layer *s_bottom_bar_layer; static BitmapLayer *s_clock_bmp_layer; static BitmapLayer *s_check_bmp_layer; // bitmaps static GBitmap *s_clock_bmp; static GBitmap *s_check_bmp; // global vars static GColor s_bar_color = GColorMayGreen; // constants static const uint8_t s_edge_bar_height = ((PBL_DISPLAY_HEIGHT / 7) * 2); static void game1_window_load() {} static void game1_window_unload() {} ///////////////////////////////// static void rect_fill_layer_update_proc(Layer *layer, GContext *ctx) { graphics_context_set_fill_color(ctx, s_bar_color); graphics_fill_rect(ctx, layer_get_bounds(layer), 0, GCornerNone); } static void setter_window_load() { // top&bottom bars GRect top_bar_grect = GRect(0, 0, PBL_DISPLAY_WIDTH, s_edge_bar_height); s_top_bar_layer = layer_create(top_bar_grect); layer_set_update_proc(s_top_bar_layer, rect_fill_layer_update_proc); GRect bottom_bar_grect = GRect(0, PBL_DISPLAY_HEIGHT - s_edge_bar_height, PBL_DISPLAY_WIDTH, s_edge_bar_height); s_bottom_bar_layer = layer_create(bottom_bar_grect); layer_set_update_proc(s_bottom_bar_layer, rect_fill_layer_update_proc); // clock icon s_clock_bmp = gbitmap_create_with_resource(RESOURCE_ID_CLOCK35); s_clock_bmp_layer = bitmap_layer_create(GRect(PBL_IF_ROUND_ELSE(0, 8), PBL_IF_ROUND_ELSE(8, 0), top_bar_grect.size.w, top_bar_grect.size.h)); bitmap_layer_set_bitmap(s_clock_bmp_layer, s_clock_bmp); bitmap_layer_set_alignment(s_clock_bmp_layer, PBL_IF_ROUND_ELSE(GAlignTop, GAlignLeft)); bitmap_layer_set_compositing_mode(s_clock_bmp_layer, GCompOpSet); // check icon s_check_bmp = gbitmap_create_with_resource(RESOURCE_ID_CHECK); s_check_bmp_layer = bitmap_layer_create(bottom_bar_grect); bitmap_layer_set_bitmap(s_check_bmp_layer, s_check_bmp); bitmap_layer_set_compositing_mode(s_check_bmp_layer, GCompOpSet); Layer *window_layer = window_get_root_layer(s_window); layer_add_child(window_layer, s_top_bar_layer); layer_add_child(window_layer, s_bottom_bar_layer); layer_add_child(window_layer, bitmap_layer_get_layer(s_clock_bmp_layer)); layer_add_child(window_layer, bitmap_layer_get_layer(s_check_bmp_layer)); } static void setter_window_unload() { bitmap_layer_destroy(s_check_bmp_layer); bitmap_layer_destroy(s_clock_bmp_layer); gbitmap_destroy(s_check_bmp); gbitmap_destroy(s_clock_bmp); layer_destroy(s_bottom_bar_layer); layer_destroy(s_top_bar_layer); } static void init() { s_window = window_create(); switch (launch_reason()) { case APP_LAUNCH_WAKEUP: break; // TODO math time! default: window_set_window_handlers( s_window, (WindowHandlers){.load = setter_window_load, .unload = setter_window_unload}); window_stack_push(s_window, false); }; } static void deinit() { window_destroy(s_window); } int main(void) { init(); app_event_loop(); deinit(); }