bool key_special_action(int key) { dprintf("fn_action=%d, btn_state[hbtn.action]=%d\n", fn_action, btn_state[hbtn.action]); if (! (fn_action || btn_state[hbtn.action])) return 0; if (key==XK_bracketleft || key==XK_Next) { ev_zoom_out(0, 0); } else if (key==XK_bracketright || key==XK_Prior) { ev_zoom_in(0, 0); } else if (key==XK_Escape) { system("zsuspend"); } else if (key==XK_Return) { toggle_light(); } else if (key==XK_f) { extern void refresh_framerate(void); refresh_framerate(); } else if (key==XK_Down) { grid_pan(0, 1); } else if (key==XK_Up) { grid_pan(0, -1); } else if (key==XK_Left) { grid_pan(-1, 0); } else if (key==XK_Right) { grid_pan(1, 0); } else if (key==XK_Q) { cleanup_and_exit("Bye.", EXIT_OK); } else if (key==XK_z && img_saved) { show_pnm_image(); } else if (key==XK_Caps_Lock) { caps_lock = !caps_lock; } return 1; }
static void init(void) { my_window = window_create(); WindowHandlers handlers = { .load = window_load, .unload = window_unload }; tick_timer_service_subscribe(SECOND_UNIT, tick_handler); accel_tap_service_subscribe(handle_accel); battery_state_service_subscribe(handle_battery); window_set_click_config_provider(my_window,(ClickConfigProvider) config_provider); #ifdef PBL_SDK_2 window_set_fullscreen(my_window, true); #endif window_stack_push(my_window, true); toggle_light(); //create easter egg pow_white = gbitmap_create_with_resource(RESOURCE_ID_IMAGE_POW); pow_black = gbitmap_create_with_resource(RESOURCE_ID_IMAGE_POW_BLACK); #ifdef PBL_PLATFORM_CHALK pow_layer = bitmap_layer_create(GRect(20,10,144,168)); #else pow_layer = bitmap_layer_create(GRect(0,0,144,168)); #endif bitmap_layer_set_bitmap(pow_layer, pow_white); layer_add_child(window_get_root_layer(my_window), bitmap_layer_get_layer(pow_layer)); layer_set_hidden(bitmap_layer_get_layer(pow_layer), true); //create battery meter #ifdef PBL_PLATFORM_CHALK battery_layer = text_layer_create(GRect(25, 5, 140, 34)); text_layer_set_text_alignment(battery_layer, GTextAlignmentCenter); #else battery_layer = text_layer_create(GRect(0, 0, 140, 34)); text_layer_set_text_alignment(battery_layer, GTextAlignmentRight); #endif text_layer_set_text_color(battery_layer, GColorBlack); text_layer_set_background_color(battery_layer, GColorClear); text_layer_set_font(battery_layer, fonts_get_system_font(FONT_KEY_GOTHIC_14)); text_layer_set_text(battery_layer, "100%"); layer_add_child(window_get_root_layer(my_window), text_layer_get_layer(battery_layer)); layer_set_hidden(text_layer_get_layer(battery_layer), true); is_battery_showing = false; }
void select_single_click_handler(ClickRecognizerRef recognizer, void *context) { toggle_light(); }
static void handle_accel(AccelAxisType axis, int32_t direction) { toggle_light(); }
static void toggle_caps_lock_light(void) { toggle_light(0x2); }