From 8602952d58f81f00c53ae606aec874d5723031c9 Mon Sep 17 00:00:00 2001 From: Randall Winkhart Date: Mon, 1 Jun 2026 21:21:40 -0400 Subject: [PATCH] Make hot/empty cold/full colors configurable --- package.json | 2 ++ src/c/main.c | 18 ++++++++++++++---- src/c/settings.h | 2 ++ src/pkjs/config.js | 16 ++++++++++++++++ src/pkjs/customClay.js | 9 +++++++++ 5 files changed, 43 insertions(+), 4 deletions(-) diff --git a/package.json b/package.json index d7fb1b4..3e0276c 100644 --- a/package.json +++ b/package.json @@ -35,6 +35,8 @@ "CLAY_LED_COLOR", "CLAY_BG_COLOR", "CLAY_BAR_MG_COLOR", + "CLAY_BAR_COOL_COLOR", + "CLAY_BAR_HOT_COLOR", "CLAY_TIME_MG_COLOR", "CLAY_FG_COLOR", "CLAY_LOW_FUEL_COLOR" diff --git a/src/c/main.c b/src/c/main.c index ebb9548..f246943 100644 --- a/src/c/main.c +++ b/src/c/main.c @@ -89,16 +89,16 @@ static void temp_fuel_mg_update_proc_helper(Layer *layer, GContext *ctx, bool is graphics_context_set_fill_color(ctx, settings.ColorMGBars); graphics_fill_rect(ctx, bounds, 0, GCornerNone); if (isFuel) { - graphics_context_set_stroke_color(ctx, GColorRed); + graphics_context_set_stroke_color(ctx, settings.ColorBarsHot); } else { - graphics_context_set_stroke_color(ctx, GColorDukeBlue); + graphics_context_set_stroke_color(ctx, settings.ColorBarsCool); } const uint16_t bottom_color_y = bounds.origin.y + 183; graphics_draw_line(ctx, GPoint(bounds.origin.x + 1, bottom_color_y), GPoint(bounds.origin.x + s_bar_width, bottom_color_y)); if (isFuel) { - graphics_context_set_stroke_color(ctx, GColorDukeBlue); + graphics_context_set_stroke_color(ctx, settings.ColorBarsCool); } else { - graphics_context_set_stroke_color(ctx, GColorRed); + graphics_context_set_stroke_color(ctx, settings.ColorBarsHot); } const uint16_t top_color_y = bounds.origin.y + 1; graphics_draw_line(ctx, GPoint(bounds.origin.x + 1, top_color_y), GPoint(bounds.origin.x + s_bar_width, top_color_y)); @@ -305,6 +305,8 @@ static void inbox_received_handler(DictionaryIterator *iter, void *context) { Tuple *color_led_tuple = dict_find(iter, MESSAGE_KEY_CLAY_LED_COLOR); Tuple *color_bg_tuple = dict_find(iter, MESSAGE_KEY_CLAY_BG_COLOR); Tuple *color_mg_bar_tuple = dict_find(iter, MESSAGE_KEY_CLAY_BAR_MG_COLOR); + Tuple *color_cool_bar_tuple = dict_find(iter, MESSAGE_KEY_CLAY_BAR_COOL_COLOR); + Tuple *color_hot_bar_tuple = dict_find(iter, MESSAGE_KEY_CLAY_BAR_HOT_COLOR); Tuple *color_mg_time_tuple = dict_find(iter, MESSAGE_KEY_CLAY_TIME_MG_COLOR); Tuple *color_fg_tuple = dict_find(iter, MESSAGE_KEY_CLAY_FG_COLOR); Tuple *color_low_fuel_tuple = dict_find(iter, MESSAGE_KEY_CLAY_LOW_FUEL_COLOR); @@ -323,6 +325,12 @@ static void inbox_received_handler(DictionaryIterator *iter, void *context) { if (color_mg_bar_tuple) { settings.ColorMGBars = GColorFromHEX(color_mg_bar_tuple->value->int32); } + if (color_cool_bar_tuple) { + settings.ColorBarsCool = GColorFromHEX(color_cool_bar_tuple->value->int32); + } + if (color_hot_bar_tuple) { + settings.ColorBarsHot = GColorFromHEX(color_hot_bar_tuple->value->int32); + } if (color_mg_time_tuple) { settings.ColorMGTime = GColorFromHEX(color_mg_time_tuple->value->int32); } @@ -346,6 +354,8 @@ static void init() { settings.ColorLED = GColorWhite; settings.ColorBG = GColorBlue; settings.ColorMGBars = GColorDarkGray; + settings.ColorBarsCool = GColorDukeBlue; + settings.ColorBarsHot = GColorRed; settings.ColorMGTime = GColorDarkGray; settings.ColorFG = GColorWhite; settings.ColorLowFuel = GColorChromeYellow; diff --git a/src/c/settings.h b/src/c/settings.h index 2446574..3dbc3eb 100644 --- a/src/c/settings.h +++ b/src/c/settings.h @@ -9,6 +9,8 @@ typedef struct ClaySettings { GColor ColorLED; GColor ColorBG; GColor ColorMGBars; + GColor ColorBarsCool; + GColor ColorBarsHot; GColor ColorMGTime; GColor ColorFG; GColor ColorLowFuel; diff --git a/src/pkjs/config.js b/src/pkjs/config.js index 6597d92..5ebe269 100644 --- a/src/pkjs/config.js +++ b/src/pkjs/config.js @@ -108,6 +108,22 @@ module.exports = [ "label": "Bar midground color", "sunlight": false, }, + { + "id": "custom_color_cool_bars", + "type": "color", + "messageKey": "CLAY_BAR_COOL_COLOR", + "defaultValue": "0000aa", + "label": "Bar cold/full color", + "sunlight": false, + }, + { + "id": "custom_color_hot_bars", + "type": "color", + "messageKey": "CLAY_BAR_HOT_COLOR", + "defaultValue": "ff0000", + "label": "Bar hot/empty color", + "sunlight": false, + }, { "id": "custom_color_mg_time", "type": "color", diff --git a/src/pkjs/customClay.js b/src/pkjs/customClay.js index e4addea..d5f936e 100644 --- a/src/pkjs/customClay.js +++ b/src/pkjs/customClay.js @@ -11,6 +11,8 @@ module.exports = function (minified) { clayConfig.getItemById('custom_color_led').set('ff0000'); clayConfig.getItemById('custom_color_bg').set('000000'); clayConfig.getItemById('custom_color_mg_bars').set('555555'); + clayConfig.getItemById('custom_color_cool_bars').set('0000aa'); + clayConfig.getItemById('custom_color_hot_bars').set('ff0000'); clayConfig.getItemById('custom_color_mg_time').set('555555'); clayConfig.getItemById('custom_color_fg').set('ff0000'); clayConfig.getItemById('custom_color_low_fuel').set('ffaa00'); @@ -19,8 +21,11 @@ module.exports = function (minified) { clayConfig.getItemById('custom_color_led').set('ffffff'); clayConfig.getItemById('custom_color_bg').set('0000ff'); clayConfig.getItemById('custom_color_mg_bars').set('555555'); + clayConfig.getItemById('custom_color_cool_bars').set('0000aa'); + clayConfig.getItemById('custom_color_hot_bars').set('ff0000'); clayConfig.getItemById('custom_color_mg_time').set('555555'); clayConfig.getItemById('custom_color_fg').set('ffffff'); + clayConfig.getItemById('custom_color_low_fuel').set('ffaa00'); } } @@ -31,6 +36,8 @@ module.exports = function (minified) { clayConfig.getItemById('custom_color_led').show(); clayConfig.getItemById('custom_color_bg').show(); clayConfig.getItemById('custom_color_mg_bars').show(); + clayConfig.getItemById('custom_color_cool_bars').show(); + clayConfig.getItemById('custom_color_hot_bars').show(); clayConfig.getItemById('custom_color_mg_time').show(); clayConfig.getItemById('custom_color_fg').show(); clayConfig.getItemById('custom_color_low_fuel').show(); @@ -40,6 +47,8 @@ module.exports = function (minified) { clayConfig.getItemById('custom_color_led').hide(); clayConfig.getItemById('custom_color_bg').hide(); clayConfig.getItemById('custom_color_mg_bars').hide(); + clayConfig.getItemById('custom_color_cool_bars').hide(); + clayConfig.getItemById('custom_color_hot_bars').hide(); clayConfig.getItemById('custom_color_mg_time').hide(); clayConfig.getItemById('custom_color_fg').hide(); clayConfig.getItemById('custom_color_low_fuel').hide();