summaryrefslogtreecommitdiff
path: root/src/c/fastforge.c
diff options
context:
space:
mode:
authorPaul Buetow <paul@buetow.org>2026-04-06 15:14:18 +0300
committerPaul Buetow <paul@buetow.org>2026-04-06 15:14:18 +0300
commit6acb47f0ee5f80884056fa0243d1ce22213b1911 (patch)
tree555e468c3fc70902f1acd38b971364abe91bd885 /src/c/fastforge.c
parent61b5b70c8cb96908309ba2299b7335966d54e420 (diff)
add justfile
Diffstat (limited to 'src/c/fastforge.c')
-rw-r--r--src/c/fastforge.c68
1 files changed, 37 insertions, 31 deletions
diff --git a/src/c/fastforge.c b/src/c/fastforge.c
index 8db0492..5ffb912 100644
--- a/src/c/fastforge.c
+++ b/src/c/fastforge.c
@@ -1,60 +1,66 @@
#include <pebble.h>
-static Window *s_window;
+static Window *s_main_window;
static TextLayer *s_text_layer;
-static void prv_select_click_handler(ClickRecognizerRef recognizer, void *context) {
- text_layer_set_text(s_text_layer, "Select");
-}
+// ==================== BUTTON HANDLERS ====================
-static void prv_up_click_handler(ClickRecognizerRef recognizer, void *context) {
- text_layer_set_text(s_text_layer, "Up");
+static void select_click_handler(ClickRecognizerRef recognizer, void *context) {
+ text_layer_set_text(s_text_layer, "Hello!");
+ APP_LOG(APP_LOG_LEVEL_INFO, "SELECT pressed - Hello!");
}
-static void prv_down_click_handler(ClickRecognizerRef recognizer, void *context) {
- text_layer_set_text(s_text_layer, "Down");
+static void down_click_handler(ClickRecognizerRef recognizer, void *context) {
+ APP_LOG(APP_LOG_LEVEL_INFO, "DOWN pressed - Quitting app...");
+ window_stack_pop_all(false); // Cleanly quit the app
}
-static void prv_click_config_provider(void *context) {
- window_single_click_subscribe(BUTTON_ID_SELECT, prv_select_click_handler);
- window_single_click_subscribe(BUTTON_ID_UP, prv_up_click_handler);
- window_single_click_subscribe(BUTTON_ID_DOWN, prv_down_click_handler);
+// ==================== CLICK CONFIG ====================
+
+static void click_config_provider(void *context) {
+ window_single_click_subscribe(BUTTON_ID_SELECT, select_click_handler);
+ window_single_click_subscribe(BUTTON_ID_DOWN, down_click_handler);
}
-static void prv_window_load(Window *window) {
+// ==================== WINDOW LOAD / UNLOAD ====================
+
+static void window_load(Window *window) {
Layer *window_layer = window_get_root_layer(window);
GRect bounds = layer_get_bounds(window_layer);
- s_text_layer = text_layer_create(GRect(0, 72, bounds.size.w, 20));
- text_layer_set_text(s_text_layer, "Press a button");
+ s_text_layer = text_layer_create(GRect(0, 20, bounds.size.w, bounds.size.h - 40));
+ text_layer_set_background_color(s_text_layer, GColorClear);
+ text_layer_set_text_color(s_text_layer, GColorBlack);
text_layer_set_text_alignment(s_text_layer, GTextAlignmentCenter);
+ text_layer_set_font(s_text_layer, fonts_get_system_font(FONT_KEY_GOTHIC_28_BOLD));
+ text_layer_set_text(s_text_layer, "Press SELECT\nfor Hello\n\nDOWN to quit");
+
layer_add_child(window_layer, text_layer_get_layer(s_text_layer));
}
-static void prv_window_unload(Window *window) {
+static void window_unload(Window *window) {
text_layer_destroy(s_text_layer);
}
-static void prv_init(void) {
- s_window = window_create();
- window_set_click_config_provider(s_window, prv_click_config_provider);
- window_set_window_handlers(s_window, (WindowHandlers) {
- .load = prv_window_load,
- .unload = prv_window_unload,
+// ==================== APP INIT / DEINIT ====================
+
+static void init(void) {
+ s_main_window = window_create();
+ window_set_click_config_provider(s_main_window, click_config_provider);
+ window_set_window_handlers(s_main_window, (WindowHandlers) {
+ .load = window_load,
+ .unload = window_unload,
});
- const bool animated = true;
- window_stack_push(s_window, animated);
+
+ window_stack_push(s_main_window, true);
}
-static void prv_deinit(void) {
- window_destroy(s_window);
+static void deinit(void) {
+ window_destroy(s_main_window);
}
int main(void) {
- prv_init();
-
- APP_LOG(APP_LOG_LEVEL_DEBUG, "Done initializing, pushed window: %p", s_window);
-
+ init();
app_event_loop();
- prv_deinit();
+ deinit();
}