Introduce concept of styles
This commit is contained in:
parent
651f175de3
commit
05acb5a102
|
@ -1,6 +1,7 @@
|
||||||
{
|
{
|
||||||
"appKeys": {
|
"appKeys": {
|
||||||
"color-face": 0
|
"color-face": 0,
|
||||||
|
"int-style": 1
|
||||||
},
|
},
|
||||||
"capabilities": [
|
"capabilities": [
|
||||||
"configurable"
|
"configurable"
|
||||||
|
|
|
@ -23,6 +23,6 @@ Pebble.addEventListener("webviewclosed", function(e) {
|
||||||
console.log("configuration closed");
|
console.log("configuration closed");
|
||||||
// webview closed
|
// webview closed
|
||||||
var options = JSON.parse(decodeURIComponent(e.response));
|
var options = JSON.parse(decodeURIComponent(e.response));
|
||||||
console.log("Options = " + options);
|
options["int-style"] = Number(options["int-style"]);
|
||||||
Pebble.sendAppMessage(options, appMessageAck, appMessageNak);
|
Pebble.sendAppMessage(options, appMessageAck, appMessageNak);
|
||||||
});
|
});
|
||||||
|
|
53
src/main.c
53
src/main.c
|
@ -1,11 +1,14 @@
|
||||||
#include <pebble.h>
|
#include <pebble.h>
|
||||||
#include "settings.h"
|
#include "settings.h"
|
||||||
|
|
||||||
#define HAND_OUT 200
|
static int HAND_OUT = 200;
|
||||||
#define HAND_IN 40
|
static int HAND_IN = 40;
|
||||||
#define MINUTE_WIDTH 10
|
static int MINUTE_WIDTH = 10;
|
||||||
#define HOUR_WIDTH 12
|
static int HOUR_WIDTH = 12;
|
||||||
#define BORDER_WIDTH PBL_IF_ROUND_ELSE(20, 16)
|
static int BORDER_WIDTH_BASE = 14;
|
||||||
|
static int FONT_SIZE = 16;
|
||||||
|
|
||||||
|
#define BORDER_WIDTH (BORDER_WIDTH_BASE + PBL_IF_ROUND_ELSE(4, 0))
|
||||||
#define HBW (BORDER_WIDTH / 2)
|
#define HBW (BORDER_WIDTH / 2)
|
||||||
|
|
||||||
static Window *window;
|
static Window *window;
|
||||||
|
@ -93,7 +96,7 @@ static void hands_update_proc(Layer *layer, GContext *ctx) {
|
||||||
}
|
}
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
strftime(s_day_buffer, sizeof(s_day_buffer), "%e %b", t);
|
strftime(s_day_buffer, sizeof(s_day_buffer), "%d %b", t);
|
||||||
if (b[0] == '0') {
|
if (b[0] == '0') {
|
||||||
b += 1;
|
b += 1;
|
||||||
}
|
}
|
||||||
|
@ -105,7 +108,7 @@ static void handle_tick(struct tm *tick_time, TimeUnits units_changed) {
|
||||||
layer_mark_dirty(s_hands_layer);
|
layer_mark_dirty(s_hands_layer);
|
||||||
}
|
}
|
||||||
|
|
||||||
static void set_colors() {
|
static void set_configurables() {
|
||||||
face_color = settings_get_color(KEY_COLOR_FACE);
|
face_color = settings_get_color(KEY_COLOR_FACE);
|
||||||
layer_mark_dirty(s_bg_layer);
|
layer_mark_dirty(s_bg_layer);
|
||||||
|
|
||||||
|
@ -122,6 +125,26 @@ static void set_colors() {
|
||||||
|
|
||||||
text_layer_set_text_color(s_day_label, gcolor_legible_over(accent_color));
|
text_layer_set_text_color(s_day_label, gcolor_legible_over(accent_color));
|
||||||
text_layer_set_text_color(s_bt_label, gcolor_legible_over(face_color));
|
text_layer_set_text_color(s_bt_label, gcolor_legible_over(face_color));
|
||||||
|
|
||||||
|
APP_LOG(APP_LOG_LEVEL_DEBUG, "Style: %ld", settings_get_int32(KEY_STYLE));
|
||||||
|
switch (settings_get_int32(KEY_STYLE)) {
|
||||||
|
case 1: // Thin style
|
||||||
|
HAND_IN = 45;
|
||||||
|
BORDER_WIDTH_BASE = 12;
|
||||||
|
MINUTE_WIDTH = 10;
|
||||||
|
HOUR_WIDTH = 12;
|
||||||
|
text_layer_set_font(s_day_label, fonts_get_system_font(FONT_KEY_GOTHIC_14_BOLD));
|
||||||
|
text_layer_set_text_alignment(s_day_label, PBL_IF_ROUND_ELSE(GTextAlignmentCenter, GTextAlignmentRight));
|
||||||
|
break;
|
||||||
|
default:
|
||||||
|
HAND_IN = 40;
|
||||||
|
BORDER_WIDTH_BASE = 16;
|
||||||
|
MINUTE_WIDTH = 12;
|
||||||
|
HOUR_WIDTH = 14;
|
||||||
|
text_layer_set_font(s_day_label, fonts_get_system_font(FONT_KEY_GOTHIC_18_BOLD));
|
||||||
|
text_layer_set_text_alignment(s_day_label, PBL_IF_ROUND_ELSE(GTextAlignmentCenter, GTextAlignmentLeft));
|
||||||
|
break;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
static void window_load(Window *window) {
|
static void window_load(Window *window) {
|
||||||
|
@ -139,14 +162,10 @@ static void window_load(Window *window) {
|
||||||
layer_add_child(s_bg_layer, s_hands_layer);
|
layer_add_child(s_bg_layer, s_hands_layer);
|
||||||
|
|
||||||
// Day
|
// Day
|
||||||
#ifdef PBL_ROUND
|
s_day_label = text_layer_create(GRect(bounds.origin.x + 3,
|
||||||
s_day_label = text_layer_create(GRect(65, 0, 50, 24));
|
PBL_IF_ROUND_ELSE(0, -4),
|
||||||
text_layer_set_text_alignment(s_day_label, GTextAlignmentCenter);
|
bounds.size.w - 6,
|
||||||
#else
|
24));
|
||||||
s_day_label = text_layer_create(GRect(2, -4, 50, 24));
|
|
||||||
text_layer_set_text_alignment(s_day_label, GTextAlignmentRight);
|
|
||||||
#endif
|
|
||||||
text_layer_set_font(s_day_label, fonts_get_system_font(FONT_KEY_GOTHIC_18_BOLD));
|
|
||||||
text_layer_set_text(s_day_label, s_day_buffer);
|
text_layer_set_text(s_day_label, s_day_buffer);
|
||||||
text_layer_set_background_color(s_day_label, GColorClear);
|
text_layer_set_background_color(s_day_label, GColorClear);
|
||||||
layer_add_child(s_hands_layer, text_layer_get_layer(s_day_label));
|
layer_add_child(s_hands_layer, text_layer_get_layer(s_day_label));
|
||||||
|
@ -163,7 +182,7 @@ static void window_load(Window *window) {
|
||||||
text_layer_set_font(s_bt_label, fonts_load_custom_font(resource_get_handle(RESOURCE_ID_SYMBOLS_64)));
|
text_layer_set_font(s_bt_label, fonts_load_custom_font(resource_get_handle(RESOURCE_ID_SYMBOLS_64)));
|
||||||
layer_add_child(s_bg_layer, text_layer_get_layer(s_bt_label));
|
layer_add_child(s_bg_layer, text_layer_get_layer(s_bt_label));
|
||||||
|
|
||||||
set_colors();
|
set_configurables();
|
||||||
}
|
}
|
||||||
|
|
||||||
static void window_unload(Window *window) {
|
static void window_unload(Window *window) {
|
||||||
|
@ -208,7 +227,7 @@ static void init() {
|
||||||
bluetooth_connection_service_subscribe(bt_handler);
|
bluetooth_connection_service_subscribe(bt_handler);
|
||||||
bt_connected = bluetooth_connection_service_peek();
|
bt_connected = bluetooth_connection_service_peek();
|
||||||
|
|
||||||
settings_init(set_colors);
|
settings_init(set_configurables);
|
||||||
}
|
}
|
||||||
|
|
||||||
static void deinit() {
|
static void deinit() {
|
||||||
|
|
|
@ -11,6 +11,14 @@ GColor settings_get_color(MessageKey key) {
|
||||||
return GColorFromHEX(persist_read_int(key));
|
return GColorFromHEX(persist_read_int(key));
|
||||||
}
|
}
|
||||||
|
|
||||||
|
int32_t settings_get_int32(MessageKey key) {
|
||||||
|
if (! persist_exists(key)) {
|
||||||
|
return 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
return persist_read_int(key);
|
||||||
|
}
|
||||||
|
|
||||||
static void in_received_handler(DictionaryIterator *rec, void *context) {
|
static void in_received_handler(DictionaryIterator *rec, void *context) {
|
||||||
int i;
|
int i;
|
||||||
|
|
||||||
|
@ -22,11 +30,7 @@ static void in_received_handler(DictionaryIterator *rec, void *context) {
|
||||||
continue;
|
continue;
|
||||||
}
|
}
|
||||||
|
|
||||||
switch (i) {
|
persist_write_int(i, cur->value->int32);
|
||||||
case KEY_COLOR_FACE:
|
|
||||||
persist_write_int(i, cur->value->int32);
|
|
||||||
break;
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
callback();
|
callback();
|
||||||
|
|
|
@ -3,8 +3,10 @@
|
||||||
|
|
||||||
typedef enum {
|
typedef enum {
|
||||||
KEY_COLOR_FACE = 0,
|
KEY_COLOR_FACE = 0,
|
||||||
|
KEY_STYLE,
|
||||||
KEY_SENTRY
|
KEY_SENTRY
|
||||||
} MessageKey;
|
} MessageKey;
|
||||||
|
|
||||||
GColor settings_get_color(MessageKey idx);
|
GColor settings_get_color(MessageKey idx);
|
||||||
|
int32_t settings_get_int32(MessageKey key);
|
||||||
void settings_init(void (*cb)(void));
|
void settings_init(void (*cb)(void));
|
Loading…
Reference in New Issue