static void action_reset_zoom_only(struct FTR *f, int x, int y) { struct pan_state *e = f->userdata; struct view_port *p = obtain_viewport(e); action_change_zoom_by_factor(f, x, y, 1/p->zoom_factor); }
void pan_key_handler(struct FTR *f, int k, int m, int x, int y) { fprintf(stderr, "PAN_KEY_HANDLER %d '%c' (%d) at %d %d\n", k, isalpha(k)?k:' ', m, x, y); if (k == 'c') action_clear_mask(f); if (k == 's') action_symmetrize_mask(f); if (k == 'r') action_radialize_mask(f); //if (k == '+') action_increase_zoom(f, f->w/2, f->h/2); //if (k == '-') action_decrease_zoom(f, f->w/2, f->h/2); if (k == '+') action_change_zoom_by_factor(f, f->w/2, f->h/2, 2); if (k == '=') action_change_zoom_by_factor(f, f->w/2, f->h/2, 2); if (k == '-') action_change_zoom_by_factor(f, f->w/2, f->h/2, 0.5); if (k == 'p') action_change_zoom_by_factor(f, f->w/2, f->h/2, 1.1); if (k == 'm') action_change_zoom_by_factor(f, f->w/2, f->h/2, 1/1.1); if (k == 'P') action_change_zoom_by_factor(f, f->w/2, f->h/2, 1.006); if (k == 'M') action_change_zoom_by_factor(f, f->w/2, f->h/2, 1/1.006); //if (k == 'a') action_contrast_change(f, 1.3, 0); //if (k == 'A') action_contrast_change(f, 1/1.3, 0); //if (k == 'b') action_contrast_change(f, 1, 1); //if (k == 'B') action_contrast_change(f, 1, -1); //if (k == 'n') action_qauto(f); if (k == '.') action_reset_zoom_and_position(f); // if ESC or q, exit if (k == '\033' || k == 'q') { struct pan_state *e = f->userdata; if (e->painting) e->painting = 0; else ftr_notify_the_desire_to_stop_this_loop(f, 1); } // arrows move the viewport if (k > 1000) { int d[2] = {0, 0}; int inc = -10; if (m & FTR_MASK_SHIFT ) inc /= 10; if (m & FTR_MASK_CONTROL) inc *= 10; switch (k) { case FTR_KEY_LEFT : d[0] -= inc; break; case FTR_KEY_RIGHT: d[0] += inc; break; case FTR_KEY_UP : d[1] -= inc; break; case FTR_KEY_DOWN : d[1] += inc; break; } if (k == FTR_KEY_PAGE_UP) d[1] = +f->h/3; if (k == FTR_KEY_PAGE_DOWN) d[1] = -f->h/3; action_offset_viewport(f, d[0], d[1]); } // if 'k', do weird things if (k == 'k') { fprintf(stderr, "setting key_handler_print\n"); ftr_set_handler(f, "key", key_handler_print); } }
static void pan_key_handler(struct FTR *f, int k, int m, int x, int y) { if (m & FTR_MASK_SHIFT && islower(k)) k = toupper(k); fprintf(stderr, "PAN_KEY_HANDLER %d '%c' (%d) at %d %d\n", k, isprint(k)?k:' ', m, x, y); //if (k == '+') action_increase_zoom(f, f->w/2, f->h/2); //if (k == '-') action_decrease_zoom(f, f->w/2, f->h/2); if (k == '+') action_change_zoom_by_factor(f, f->w/2, f->h/2, 2); if (k == '-') action_change_zoom_by_factor(f, f->w/2, f->h/2, 0.5); if (k == 'p') action_change_zoom_by_factor(f, f->w/2, f->h/2, 1.1); if (k == 'm') action_change_zoom_by_factor(f, f->w/2, f->h/2, 1/1.1); if (k == 'P') action_change_zoom_by_factor(f, f->w/2, f->h/2, 1.006); if (k == 'M') action_change_zoom_by_factor(f, f->w/2, f->h/2, 1/1.006); if (k == 'a') action_contrast_span(f, 1/1.3); if (k == 'A') action_contrast_span(f, 1.3); //if (k == 'b') action_contrast_change(f, 1, 1); //if (k == 'B') action_contrast_change(f, 1, -1); if (k == 'n') action_qauto2(f); if (k == 'N') action_toggle_aqauto(f); if (k == 'r') action_toggle_roi(f, x, y, m&FTR_MASK_SHIFT); if (k == 'c') action_toggle_p(f); // if ESC or q, exit if (k == '\033' || k == 'q') ftr_notify_the_desire_to_stop_this_loop(f, 1); // arrows move the viewport if (k > 1000 || k=='j'||k=='k'||k=='l'||k=='h') { int d[2] = {0, 0}; int inc = -10; if (m & FTR_MASK_SHIFT ) inc /= 10; if (m & FTR_MASK_CONTROL) inc *= 10; switch (k) { case 'h': case FTR_KEY_LEFT : d[0] -= inc; break; case 'l': case FTR_KEY_RIGHT: d[0] += inc; break; case 'k': case FTR_KEY_UP : d[1] -= inc; break; case 'j': case FTR_KEY_DOWN : d[1] += inc; break; } if (k == FTR_KEY_PAGE_UP) d[1] = +f->h/3; if (k == FTR_KEY_PAGE_DOWN) d[1] = -f->h/3; action_offset_viewport(f, d[0], d[1]); } if (k == '2') action_reload_image(f); // // if 'k', do weird things // if (k == 'k') { // fprintf(stderr, "setting key_handler_print\n"); // ftr_set_handler(f, "key", key_handler_print); // } }
void pan_key_handler(struct FTR *f, int k, int m, int x, int y) { //fprintf(stderr, "PAN_KEY_HANDLER %d '%c' (%d) at %d %d\n", // k, isalnum(k)?k:' ', m, x, y); //if (k == '+') action_increase_zoom(f, f->w/2, f->h/2); //if (k == '-') action_decrease_zoom(f, f->w/2, f->h/2); if (k == '+') action_change_zoom_by_factor(f, f->w/2, f->h/2, 2); if (k == '-') action_change_zoom_by_factor(f, f->w/2, f->h/2, 0.5); if (k == 'p') action_change_zoom_by_factor(f, f->w/2, f->h/2, 1.1); if (k == 'm') action_change_zoom_by_factor(f, f->w/2, f->h/2, 1/1.1); if (k == 'P') action_change_zoom_by_factor(f, f->w/2, f->h/2, 1.006); if (k == 'M') action_change_zoom_by_factor(f, f->w/2, f->h/2, 1/1.006); if (k == ' ') action_cycle(f, 1); if (k == '\b') action_cycle(f, -1); if (isdigit(k)) action_select_image(f, (k-'0')?(k-'0'-1):10); //if (k == 'a') action_contrast_change(f, 1.3, 0); //if (k == 'A') action_contrast_change(f, 1/1.3, 0); //if (k == 'b') action_contrast_change(f, 1, 1); //if (k == 'B') action_contrast_change(f, 1, -1); if (k == 'n') action_qauto(f); // if ESC or q, exit if (k == '\033' || k == 'q') ftr_notify_the_desire_to_stop_this_loop(f, 1); // arrows move the viewport if (k > 1000) { int d[2] = {0, 0}; int inc = -10; if (m & FTR_MASK_SHIFT ) inc /= 10; if (m & FTR_MASK_CONTROL) inc *= 10; switch (k) { case FTR_KEY_LEFT : d[0] -= inc; break; case FTR_KEY_RIGHT: d[0] += inc; break; case FTR_KEY_UP : d[1] -= inc; break; case FTR_KEY_DOWN : d[1] += inc; break; } if (k == FTR_KEY_PAGE_UP) d[1] = +f->h/3; if (k == FTR_KEY_PAGE_DOWN) d[1] = -f->h/3; action_offset_viewport(f, d[0], d[1]); } // if 'k', do weird things if (k == 'k') { fprintf(stderr, "setting key_handler_print\n"); ftr_set_handler(f, "key", key_handler_print); } }
static void action_decrease_zoom(struct FTR *f, int x, int y) { action_change_zoom_by_factor(f, x, y, 1.0/WHEEL_FACTOR); }
static void action_reset_zoom_only(struct FTR *f, int x, int y) { struct pan_state *e = f->userdata; action_change_zoom_by_factor(f, x, y, 1/e->zoom_factor); }