Graph graph;
XWindowAttributes xgwa;
int delay2;
- int reset;
+ int reset, force_reset;
double t;
struct params params;
static void pattern_make_curves(Pattern p)
{
- int i;
Edge current_edge, first_edge, next_edge;
Node current_node, first_node;
Direction current_direction, first_direction;
Spline s;
- i=0;
while (pattern_next_unfilled_couple(p, &first_edge, &first_direction)) {
/* start a new loop */
s=spline_new(random()%(p->ncolors-2)+2);
static const char *celtic_defaults[] = {
".background: black",
".foreground: #333333",
+ "*fpsSolid: true",
"*ncolors: 20",
"*delay: 10000",
"*delay2: 5",
"*showGraph: False",
+#ifdef USE_IPHONE
+ "*ignoreRotation: True",
+#endif
0
};
else
{
#if 0
- make_random_colormap (st->dpy, st->xgwa.visual, st->xgwa.colormap,
+ make_random_colormap (st->xgwa.screen, st->xgwa.visual, st->xgwa.colormap,
st->colors, &st->ncolors, True, True, 0, True);
#else
- make_smooth_colormap (st->dpy, st->xgwa.visual, st->xgwa.colormap,
+ make_smooth_colormap (st->xgwa.screen, st->xgwa.visual, st->xgwa.colormap,
st->colors, &st->ncolors, True, 0, True);
#endif
if (st->ncolors < 2)
return 10000;
}
- if (st->reset) {
+ if (st->reset || st->force_reset) {
+ int delay = (st->force_reset ? 0 : st->delay2);
st->reset = 0;
+ st->force_reset = 0;
+ st->t = 1;
pattern_del(st->pattern);
st->pattern = NULL;
/* recolor each time */
st->ncolors = get_integer_resource (st->dpy, "ncolors", "Integer");
if (st->ncolors > 2)
- make_smooth_colormap (st->dpy, st->xgwa.visual, st->xgwa.colormap,
+ make_smooth_colormap (st->xgwa.screen, st->xgwa.visual, st->xgwa.colormap,
st->colors, &st->ncolors, True, 0, True);
st->eraser = erase_window (st->dpy, st->window, st->eraser);
- return st->delay2;
+ return (delay);
}
if (st->pattern == NULL) {
static Bool
celtic_event (Display *dpy, Window window, void *closure, XEvent *event)
{
+ struct state *st = (struct state *) closure;
+ if (screenhack_event_helper (dpy, window, event))
+ {
+ st->force_reset = 1;
+ return True;
+ }
return False;
}