ENTRYPOINT Bool sponge_handle_event (ModeInfo *mi, XEvent *event) { sponge_configuration *sp = &sps[MI_SCREEN(mi)]; if (gltrackball_event_handler (event, sp->trackball, MI_WIDTH (mi), MI_HEIGHT (mi), &sp->button_down_p)) return True; else if (event->xany.type == KeyPress) { KeySym keysym; char c = 0; XLookupString (&event->xkey, &c, 1, &keysym, 0); if (c == '+' || c == '=' || keysym == XK_Up || keysym == XK_Right || keysym == XK_Next) { sp->draw_tick = speed; sp->current_depth += (sp->current_depth > 0 ? 1 : -1); sp->current_depth--; return True; } else if (c == '-' || c == '_' || keysym == XK_Down || keysym == XK_Left || keysym == XK_Prior) { sp->draw_tick = speed; sp->current_depth -= (sp->current_depth > 0 ? 1 : -1); sp->current_depth--; return True; } else if (screenhack_event_helper (MI_DISPLAY(mi), MI_WINDOW(mi), event)) goto DEF; } else if (screenhack_event_helper (MI_DISPLAY(mi), MI_WINDOW(mi), event)) { DEF: sp->draw_tick = speed; return True; } return False; }
ENTRYPOINT Bool hop_handle_event (ModeInfo *mi, XEvent *event) { if (screenhack_event_helper (MI_DISPLAY(mi), MI_WINDOW(mi), event)) { MI_CLEARWINDOW(mi); init_hop (mi); return True; } return False; }
static Bool zoom_event (Display *dpy, Window window, void *closure, XEvent *event) { struct state *st = (struct state *) closure; if (screenhack_event_helper (dpy, window, event)) { st->start_time = 0; return True; } return False; }
static Bool wander_event (Display *dpy, Window window, void *closure, XEvent *event) { struct state *st = (struct state *) closure; if (screenhack_event_helper (dpy, window, event)) { st->reset_p = 1; return True; } return False; }
static Bool boxfit_event (Display *dpy, Window window, void *closure, XEvent *event) { state *st = (state *) closure; if (screenhack_event_helper (dpy, window, event)) { st->growing_p = !st->growing_p; return True; } return False; }
static Bool cynosure_event (Display *dpy, Window window, void *closure, XEvent *event) { struct state *st = (struct state *) closure; if (screenhack_event_helper (dpy, window, event)) { st->i = st->iterations; return True; } return False; }
static Bool rorschach_event (Display *dpy, Window window, void *closure, XEvent *event) { struct state *st = (struct state *) closure; if (screenhack_event_helper (dpy, window, event)) { st->remaining_iterations = 0; return True; } return False; }
static Bool distort_event (Display *dpy, Window window, void *closure, XEvent *event) { struct state *st = (struct state *) closure; if (screenhack_event_helper (dpy, window, event)) { distort_reset(st); return True; } return False; }
static Bool squiral_event (Display *dpy, Window window, void *closure, XEvent *event) { struct state *st = (struct state *) closure; if (screenhack_event_helper (dpy, window, event)) { squiral_init_1 (st); XClearWindow (dpy, window); return True; } return False; }
static Bool imsmap_event (Display *dpy, Window window, void *closure, XEvent *event) { struct state *st = (struct state *) closure; if (screenhack_event_helper (dpy, window, event)) { init_map (st); return True; } return False; }
static Bool xanalogtv_event (Display *dpy, Window window, void *closure, XEvent *event) { struct state *st = (struct state *) closure; if (event->type == ButtonPress) { unsigned button = event->xbutton.button; st->change_now = button == 2 || button == 3 || button == 5 ? -1 : 1; return True; } else if (event->type == KeyPress) { KeySym keysym; char c = 0; XLookupString (&event->xkey, &c, 1, &keysym, 0); if (c == ' ' || c == '\t' || c == '\r' || c == '\n' || keysym == XK_Up || keysym == XK_Right || keysym == XK_Prior) { st->change_now = 1; return True; } else if (c == '\b' || keysym == XK_Down || keysym == XK_Left || keysym == XK_Next) { st->change_now = -1; return True; } else if (screenhack_event_helper (dpy, window, event)) goto DEF; } else if (screenhack_event_helper (dpy, window, event)) { DEF: st->change_now = ((random() & 1) ? 1 : -1); return True; } return False; }
static Bool cwaves_event (Display *dpy, Window window, void *closure, XEvent *event) { state *st = (state *) closure; if (screenhack_event_helper (dpy, window, event)) { make_smooth_colormap (st->xgwa.screen, st->xgwa.visual, st->xgwa.colormap, st->colors, &st->ncolors, True, 0, False); return True; } return False; }
ENTRYPOINT Bool queens_handle_event (ModeInfo *mi, XEvent *event) { Queenscreen *qs = &qss[MI_SCREEN(mi)]; if (gltrackball_event_handler (event, qs->trackball, MI_WIDTH (mi), MI_HEIGHT (mi), &qs->button_down_p)) return True; else if (screenhack_event_helper (MI_DISPLAY(mi), MI_WINDOW(mi), event)) { qs->steps = 1024 - 1; return True; } return False; }
ENTRYPOINT Bool spheremonics_handle_event (ModeInfo *mi, XEvent *event) { spheremonics_configuration *cc = &ccs[MI_SCREEN(mi)]; if (gltrackball_event_handler (event, cc->trackball, MI_WIDTH (mi), MI_HEIGHT (mi), &cc->button_down_p)) return True; else if (screenhack_event_helper (MI_DISPLAY(mi), MI_WINDOW(mi), event)) { cc->change_tick = duration; return True; } return False; }
ENTRYPOINT Bool screenflip_handle_event (ModeInfo *mi, XEvent *event) { Screenflip *c = &screenflip[MI_SCREEN(mi)]; if (gltrackball_event_handler (event, c->trackball, MI_WIDTH (mi), MI_HEIGHT (mi), &c->button_down_p)) return True; else if (screenhack_event_helper (MI_DISPLAY(mi), MI_WINDOW(mi), event)) { if (!c->waiting_for_image_p) { getSnapshot (mi); return True; } } return False; }
ENTRYPOINT Bool cube_handle_event (ModeInfo *mi, XEvent *event) { cube_configuration *cc = &ccs[MI_SCREEN(mi)]; /* Neutralize any vertical motion */ GLfloat rot = current_device_rotation(); Bool rotp = ((rot > 45 && rot < 135) || (rot < -45 && rot > -135)); if (event->xany.type == ButtonPress || event->xany.type == ButtonRelease) { if (rotp) event->xbutton.x = MI_WIDTH(mi) / 2; else event->xbutton.y = MI_HEIGHT(mi) / 2; } else if (event->xany.type == MotionNotify) { if (rotp) event->xmotion.x = MI_WIDTH(mi) / 2; else event->xmotion.y = MI_HEIGHT(mi) / 2; } if (gltrackball_event_handler (event, cc->trackball, MI_WIDTH (mi), MI_HEIGHT (mi), &cc->button_down_p)) return True; else if (screenhack_event_helper (MI_DISPLAY(mi), MI_WINDOW(mi), event)) { reset_colors (mi); tweak_cubes (mi); gltrackball_reset (cc->trackball, 0, 0); return True; } return False; }
ENTRYPOINT Bool carousel_handle_event (ModeInfo *mi, XEvent *event) { carousel_state *ss = &sss[MI_SCREEN(mi)]; if (event->xany.type == ButtonPress && event->xbutton.button == Button1) { if (! ss->button_down_p) ss->button_down_time = time((time_t *) 0); } else if (event->xany.type == ButtonRelease && event->xbutton.button == Button1) { if (ss->button_down_p) { /* Add the time the mouse was held to the expire times of all frames, so that mouse-dragging doesn't count against image expiration. */ int secs = time((time_t *) 0) - ss->button_down_time; int i; for (i = 0; i < ss->nframes; i++) ss->frames[i]->expires += secs; } } if (gltrackball_event_handler (event, ss->trackball, MI_WIDTH (mi), MI_HEIGHT (mi), &ss->button_down_p)) return True; else if (screenhack_event_helper (MI_DISPLAY(mi), MI_WINDOW(mi), event)) { int i = random() % ss->nframes; ss->frames[i]->expires = 0; return True; } return False; }
ENTRYPOINT Bool flipflop_handle_event (ModeInfo *mi, XEvent *event) { Flipflopcreen *c = &qs[MI_SCREEN(mi)]; if (gltrackball_event_handler (event, c->trackball, MI_WIDTH (mi), MI_HEIGHT (mi), &c->button_down_p)) return True; else if (screenhack_event_helper (MI_DISPLAY(mi), MI_WINDOW(mi), event)) { if (!textured || c->got_texture) { textured = 1; c->got_texture = False; get_texture (mi); return True; } } return False; }
ENTRYPOINT Bool slideshow_handle_event (ModeInfo *mi, XEvent *event) { slideshow_state *ss = &sss[MI_SCREEN(mi)]; if (event->xany.type == Expose || event->xany.type == GraphicsExpose || event->xany.type == VisibilityNotify) { ss->redisplay_needed_p = True; if (debug_p) fprintf (stderr, "%s: exposure\n", blurb()); return False; } else if (screenhack_event_helper (MI_DISPLAY(mi), MI_WINDOW(mi), event)) { ss->change_now_p = True; return True; } return False; }
static Bool glitchpeg_event (Display *dpy, Window window, void *closure, XEvent *event) { struct state *st = (struct state *) closure; if (event->xany.type == ButtonPress) { st->button_down_p = True; return True; } else if (event->xany.type == ButtonRelease) { st->button_down_p = False; return True; } else if (screenhack_event_helper (dpy, window, event)) { st->start_time = 0; /* reload */ return True; } return False; }