"*size: -7 \n" \
"*ncolors: 64 \n" \
"*fpsSolid: true \n" \
+ "*ignoreRotation: True" \
# define UNIFORM_COLORS
-# define reshape_braid 0
-# define braid_handle_event 0
+# define release_braid 0
# include "xlockmore.h"
# include "erase.h"
#else /* STANDALONE */
#ifdef USE_MODULES
ModStruct braid_description =
-{"braid", "init_braid", "draw_braid", "release_braid",
+{"braid", "init_braid", "draw_braid", (char *) NULL,
"refresh_braid", "init_braid", (char *) NULL, &braid_opts,
1000, 15, 100, 1, 64, 1.0, "",
"Shows random braids and knots", 0, NULL};
int i, count, comp, c;
float min_length;
- if (braids == NULL) {
- if ((braids = (braidtype *) calloc(MI_NUM_SCREENS(mi),
- sizeof (braidtype))) == NULL)
- return;
- }
+ MI_INIT (mi, braids, 0);
braid = &braids[MI_SCREEN(mi)];
braid->center_x = MI_WIDTH(mi) / 2;
braid->nstrands = INTRAND(MINSTRANDS,
MAX(MIN(MIN(MAXSTRANDS, MI_COUNT(mi)),
(int) ((braid->max_radius - braid->min_radius) / 5.0)), MINSTRANDS));
- braid->braidlength = INTRAND(MINLENGTH, MIN(MAXLENGTH, braid->nstrands * 6));
+ braid->braidlength = INTRAND(MINLENGTH, MIN(MAXLENGTH -1, braid->nstrands * 6));
for (i = 0; i < braid->braidlength; i++) {
braid->braidword[i] =
#ifdef STANDALONE
if (braid->eraser) {
braid->eraser = erase_window (MI_DISPLAY(mi), MI_WINDOW(mi), braid->eraser);
+ if (!braid->eraser)
+ init_braid(mi);
return;
}
#endif
if (++braid->age > MI_CYCLES(mi)) {
#ifdef STANDALONE
braid->eraser = erase_window (MI_DISPLAY(mi), MI_WINDOW(mi), braid->eraser);
-#endif
+#else
init_braid(mi);
+#endif
}
}
ENTRYPOINT void
-release_braid(ModeInfo * mi)
+reshape_braid(ModeInfo * mi, int width, int height)
{
- if (braids != NULL) {
- (void) free((void *) braids);
- braids = (braidtype *) NULL;
- }
+ XClearWindow (MI_DISPLAY (mi), MI_WINDOW(mi));
+ init_braid (mi);
+}
+
+ENTRYPOINT Bool
+braid_handle_event (ModeInfo *mi, XEvent *event)
+{
+ if (screenhack_event_helper (MI_DISPLAY(mi), MI_WINDOW(mi), event))
+ {
+ reshape_braid (mi, MI_WIDTH(mi), MI_HEIGHT(mi));
+ return True;
+ }
+
+ return False;
}
ENTRYPOINT void