summaryrefslogtreecommitdiff
path: root/src/c/fastforge.c
diff options
context:
space:
mode:
authorPaul Buetow <paul@buetow.org>2026-04-06 15:09:09 +0300
committerPaul Buetow <paul@buetow.org>2026-04-06 15:09:09 +0300
commit61b5b70c8cb96908309ba2299b7335966d54e420 (patch)
tree35544b009a8fcd75864a4a4ae40a4fc25ca713c4 /src/c/fastforge.c
parentdec06a442481ee864ed784597d431000173acae6 (diff)
initial
Diffstat (limited to 'src/c/fastforge.c')
-rw-r--r--src/c/fastforge.c60
1 files changed, 60 insertions, 0 deletions
diff --git a/src/c/fastforge.c b/src/c/fastforge.c
new file mode 100644
index 0000000..8db0492
--- /dev/null
+++ b/src/c/fastforge.c
@@ -0,0 +1,60 @@
+#include <pebble.h>
+
+static Window *s_window;
+static TextLayer *s_text_layer;
+
+static void prv_select_click_handler(ClickRecognizerRef recognizer, void *context) {
+ text_layer_set_text(s_text_layer, "Select");
+}
+
+static void prv_up_click_handler(ClickRecognizerRef recognizer, void *context) {
+ text_layer_set_text(s_text_layer, "Up");
+}
+
+static void prv_down_click_handler(ClickRecognizerRef recognizer, void *context) {
+ text_layer_set_text(s_text_layer, "Down");
+}
+
+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);
+}
+
+static void prv_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");
+ text_layer_set_text_alignment(s_text_layer, GTextAlignmentCenter);
+ layer_add_child(window_layer, text_layer_get_layer(s_text_layer));
+}
+
+static void prv_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,
+ });
+ const bool animated = true;
+ window_stack_push(s_window, animated);
+}
+
+static void prv_deinit(void) {
+ window_destroy(s_window);
+}
+
+int main(void) {
+ prv_init();
+
+ APP_LOG(APP_LOG_LEVEL_DEBUG, "Done initializing, pushed window: %p", s_window);
+
+ app_event_loop();
+ prv_deinit();
+}