92 lines
2.8 KiB
C
92 lines
2.8 KiB
C
#include <pebble.h>
|
|
|
|
// 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();
|
|
}
|