/* * Copyright 2024 Google LLC * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ #include 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(); }