Allow disabling animations

This commit is contained in:
2026-07-20 20:28:58 -04:00
parent 70004c432d
commit 7155e2f4f0
2 changed files with 24 additions and 10 deletions
+21 -9
View File
@@ -147,12 +147,14 @@ static void s_main_layer_update_proc(Layer *layer, GContext *ctx) {
static void s_base_click_config_provider(void *config_context) { static void s_base_click_config_provider(void *config_context) {
NeatBarLayer *neat_bar = config_context; NeatBarLayer *neat_bar = config_context;
void *context = neat_bar->context ? neat_bar->context : neat_bar; void *context = neat_bar->context ? neat_bar->context : neat_bar;
window_raw_click_subscribe(BUTTON_ID_UP, s_up_down_handler, s_up_up_handler, neat_bar); if (neat_bar->animations_enabled) {
window_raw_click_subscribe(BUTTON_ID_DOWN, s_down_down_handler, s_down_up_handler, neat_bar); window_raw_click_subscribe(BUTTON_ID_UP, s_up_down_handler, s_up_up_handler, neat_bar);
window_raw_click_subscribe(BUTTON_ID_SELECT, s_select_down_handler, s_select_up_handler, neat_bar); window_raw_click_subscribe(BUTTON_ID_DOWN, s_down_down_handler, s_down_up_handler, neat_bar);
window_set_click_context(BUTTON_ID_UP, context); window_raw_click_subscribe(BUTTON_ID_SELECT, s_select_down_handler, s_select_up_handler, neat_bar);
window_set_click_context(BUTTON_ID_DOWN, context); window_set_click_context(BUTTON_ID_UP, context);
window_set_click_context(BUTTON_ID_SELECT, context); window_set_click_context(BUTTON_ID_DOWN, context);
window_set_click_context(BUTTON_ID_SELECT, context);
}
if (neat_bar->click_config_provider) { if (neat_bar->click_config_provider) {
neat_bar->click_config_provider(context); neat_bar->click_config_provider(context);
} }
@@ -192,11 +194,12 @@ void neat_bar_layer_set_click_config_provider(NeatBarLayer *neat_bar, ClickConfi
s_update_click_config_provider(neat_bar); s_update_click_config_provider(neat_bar);
} }
void neat_bar_layer_set_animations_move_distance(NeatBarLayer *neat_bar, int8_t distance) { // default: true
if (distance == neat_bar->animations_move_distance) { void neat_bar_layer_set_animations_enabled(NeatBarLayer *neat_bar, bool enabled) {
if (enabled == neat_bar->animations_enabled) {
return; return;
} }
neat_bar->animations_move_distance = distance; neat_bar->animations_enabled = enabled;
} }
// default: false // default: false
@@ -207,6 +210,14 @@ void neat_bar_layer_set_animations_move_axis(NeatBarLayer *neat_bar, bool use_y_
neat_bar->animations_move_on_y_axis = use_y_axis; neat_bar->animations_move_on_y_axis = use_y_axis;
} }
// default: 5 (rect), 4 (round)
void neat_bar_layer_set_animations_move_distance(NeatBarLayer *neat_bar, int8_t distance) {
if (distance == neat_bar->animations_move_distance) {
return;
}
neat_bar->animations_move_distance = distance;
}
// default: 144 // default: 144
void neat_bar_layer_set_animations_duration(NeatBarLayer *neat_bar, uint8_t duration_ms) { void neat_bar_layer_set_animations_duration(NeatBarLayer *neat_bar, uint8_t duration_ms) {
if (duration_ms == neat_bar->animations_duration) { if (duration_ms == neat_bar->animations_duration) {
@@ -355,6 +366,7 @@ NeatBarLayer *neat_bar_layer_create() {
neat_bar->bar_corner_radius = 0; neat_bar->bar_corner_radius = 0;
neat_bar->bar_x_offset = 0; neat_bar->bar_x_offset = 0;
neat_bar->icons_spread = 0; neat_bar->icons_spread = 0;
neat_bar->animations_enabled = true;
neat_bar->animations_move_on_y_axis = false; neat_bar->animations_move_on_y_axis = false;
neat_bar->animations_move_distance = ANIM_DISTANCE; neat_bar->animations_move_distance = ANIM_DISTANCE;
neat_bar->animations_duration = 144; neat_bar->animations_duration = 144;
+3 -1
View File
@@ -23,6 +23,7 @@ typedef struct {
uint16_t bar_corner_radius; uint16_t bar_corner_radius;
uint16_t bar_x_offset; uint16_t bar_x_offset;
int8_t icons_spread; int8_t icons_spread;
bool animations_enabled;
bool animations_move_on_y_axis; bool animations_move_on_y_axis;
int8_t animations_move_distance; int8_t animations_move_distance;
uint8_t animations_duration; uint8_t animations_duration;
@@ -35,8 +36,9 @@ typedef struct {
void neat_bar_layer_add_to_window(NeatBarLayer *neat_bar, Window *window); void neat_bar_layer_add_to_window(NeatBarLayer *neat_bar, Window *window);
void neat_bar_layer_set_click_config_provider(NeatBarLayer *neat_bar, ClickConfigProvider click_config_provider); void neat_bar_layer_set_click_config_provider(NeatBarLayer *neat_bar, ClickConfigProvider click_config_provider);
void neat_bar_layer_set_animations_move_distance(NeatBarLayer *neat_bar, int8_t distance); void neat_bar_layer_set_animations_enabled(NeatBarLayer *neat_bar, bool enabled);
void neat_bar_layer_set_animations_move_axis(NeatBarLayer *neat_bar, bool use_y_axis); void neat_bar_layer_set_animations_move_axis(NeatBarLayer *neat_bar, bool use_y_axis);
void neat_bar_layer_set_animations_move_distance(NeatBarLayer *neat_bar, int8_t distance);
void neat_bar_layer_set_animations_duration(NeatBarLayer *neat_bar, uint8_t duration_ms); void neat_bar_layer_set_animations_duration(NeatBarLayer *neat_bar, uint8_t duration_ms);
void neat_bar_layer_set_floating(NeatBarLayer *neat_bar, uint16_t x_offset); void neat_bar_layer_set_floating(NeatBarLayer *neat_bar, uint16_t x_offset);
void neat_bar_layer_set_width(NeatBarLayer *neat_bar, uint16_t width); void neat_bar_layer_set_width(NeatBarLayer *neat_bar, uint16_t width);