Пример #1
0
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;
}
Пример #2
0
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;
}
Пример #3
0
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;
}
Пример #4
0
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;
}
Пример #5
0
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;
}
Пример #6
0
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;
}
Пример #7
0
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;
}
Пример #8
0
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;
}
Пример #9
0
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;
}
Пример #10
0
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;
}
Пример #11
0
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;
}
Пример #12
0
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;
}
Пример #13
0
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;
}
Пример #14
0
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;
}
Пример #15
0
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;
}
Пример #16
0
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;
}
Пример #17
0
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;
}
Пример #18
0
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;
}
Пример #19
0
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;
}
Пример #20
0
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;
}