2 #ifndef __XLOCK_MODE_H__
3 #define __XLOCK_MODE_H__
6 * @(#)mode.h 4.00 97/01/01 xlockmore
8 * mode.h - mode management for xlock, the X Window System lockscreen.
10 * Copyright (c) 1991 by Patrick J. Naughton.
12 * See xlock.c for copying information.
16 * Changes of David Bagley (bagleyd@bigfoot.com)
17 * 18-Mar-96: Ron Hitchens <ron@idiom.com>
18 * Extensive revision to define new data types for
19 * the new mode calling scheme.
20 * 02-Jun-95: Extracted out of resource.c.
25 * Declare external interface routines for supported screen savers.
28 /* -------------------------------------------------------------------- */
33 typedef void (ModeHook
) (struct ModeInfo_s
*);
34 typedef void (HookProc
) (struct LockStruct_s
*, struct ModeInfo_s
*);
36 typedef struct LockStruct_s
{
37 char *cmdline_arg
; /* mode name */
38 ModeHook
*init_hook
; /* func to init a mode */
39 ModeHook
*callback_hook
; /* func to run (tick) a mode */
40 ModeHook
*release_hook
; /* func to shutdown a mode */
41 ModeHook
*refresh_hook
; /* tells mode to repaint */
42 ModeHook
*change_hook
; /* user wants mode to change */
43 ModeHook
*unused_hook
; /* for future expansion */
44 ModeSpecOpt
*msopt
; /* this mode's def resources */
45 int def_delay
; /* default delay for mode */
50 char *desc
; /* text description of mode */
51 unsigned int flags
; /* state flags for this mode */
52 void *userdata
; /* for use by the mode */
55 #define LS_FLAG_INITED 1
58 Display
*display
; /* handle to X display */
59 Screen
*screenptr
; /* ptr to screen info */
60 int screen
; /* number of current screen */
61 int real_screen
; /* for debugging */
62 int num_screens
; /* number screens locked */
63 int max_screens
; /* max # active screens */
64 Window window
; /* handle to current window */
65 int win_width
; /* width of current window */
66 int win_height
; /* height of current window */
67 int win_depth
; /* depth of current window */
68 Visual
*visual
; /* visual of current window */
69 Colormap colormap
; /* default colormap of current window */
70 unsigned long black_pixel
; /* pixel value for black */
71 unsigned long white_pixel
; /* pixel value for white */
72 unsigned int flags
; /* xlock window flags */
76 #define WI_FLAG_INFO_INITTED 0x001 /* private state flag */
77 #define WI_FLAG_ICONIC 0x002
78 #define WI_FLAG_MONO 0x004
79 #define WI_FLAG_INWINDOW 0x008
80 #define WI_FLAG_INROOT 0x010
81 #define WI_FLAG_NOLOCK 0x020
82 #define WI_FLAG_INSTALL 0x040
83 #define WI_FLAG_DEBUG 0x080
84 #define WI_FLAG_USE3D 0x100
85 #define WI_FLAG_VERBOSE 0x200
86 #define WI_FLAG_FULLRANDOM 0x400
87 #define WI_FLAG_WIREFRAME 0x800
88 #define WI_FLAG_JUST_INITTED 0x1000 /* private state flag */
91 long pause
; /* output, set by mode */
92 long delay
; /* inputs, current settings */
99 typedef struct ModeInfo_s
{
100 WindowInfo windowinfo
;
101 perscreen
*screeninfo
;
103 struct LockStruct_s
*lockstruct
;
106 /* -------------------------------------------------------------------- */
109 * These are the public interfaces that a mode should use to obtain
110 * information about the display and other environmental parameters.
111 * Everything hangs off a ModeInfo pointer. A mode should NOT cache
112 * a ModeInfo pointer, the struct it points to is volatile. The mode
113 * can safely make a copy of the data it points to, however. But it
114 * is recommended the mode make use of the passed-in pointer and pass
115 * it along to functions it calls.
116 * Use these macros, don't look at the fields directly. The insides
117 * of the ModeInfo struct are certain to change in the future.
120 #define MODE_IS_INITED(ls) ((ls)->flags & LS_FLAG_INITED)
121 #define MODE_NOT_INITED(ls) ( ! MODE_IS_INITED(ls))
123 #define MI_DISPLAY(mi) ((mi)->windowinfo.display)
124 #define MI_SCREEN(mi) ((mi)->windowinfo.screen)
125 #define MI_SCREENPTR(mi) ((mi)->windowinfo.screenptr)
126 #define MI_REAL_SCREEN(mi) ((mi)->windowinfo.real_screen)
127 #define MI_NUM_SCREENS(mi) ((mi)->windowinfo.num_screens)
128 #define MI_MAX_SCREENS(mi) ((mi)->windowinfo.max_screens)
129 #define MI_WINDOW(mi) ((mi)->windowinfo.window)
130 #define MI_WIN_WIDTH(mi) ((mi)->windowinfo.win_width)
131 #define MI_WIN_HEIGHT(mi) ((mi)->windowinfo.win_height)
132 #define MI_WIN_DEPTH(mi) ((mi)->windowinfo.win_depth)
133 #define MI_VISUAL(mi) ((mi)->windowinfo.visual)
134 #define MI_COLORMAP(mi) ((mi)->windowinfo.colormap)
135 #define MI_WIN_BLACK_PIXEL(mi) ((mi)->windowinfo.black_pixel)
136 #define MI_WIN_WHITE_PIXEL(mi) ((mi)->windowinfo.white_pixel)
137 #define MI_DELTA3D(mi) ((mi)->windowinfo.delta3d)
138 #define MI_WIN_FLAGS(mi) ((mi)->windowinfo.flags)
139 #define MI_WIN_SET_FLAG_STATE(mi,f,bool) ((mi)->windowinfo.flags = \
140 (bool) ? (mi)->windowinfo.flags | f \
141 : (mi)->windowinfo.flags & ~(f))
142 #define MI_WIN_FLAG_IS_SET(mi,f) ((mi)->windowinfo.flags & f)
143 #define MI_WIN_FLAG_NOT_SET(mi,f) ( ! MI_WIN_FLAG_IS_SET(mi,f))
144 #define MI_WIN_IS_ICONIC(mi) (MI_WIN_FLAG_IS_SET (mi, WI_FLAG_ICONIC))
145 #define MI_WIN_IS_MONO(mi) (MI_WIN_FLAG_IS_SET (mi, WI_FLAG_MONO))
146 #define MI_WIN_IS_INWINDOW(mi) (MI_WIN_FLAG_IS_SET (mi, WI_FLAG_INWINDOW))
147 #define MI_WIN_IS_INROOT(mi) (MI_WIN_FLAG_IS_SET (mi, WI_FLAG_INROOT))
148 #define MI_WIN_IS_NOLOCK(mi) (MI_WIN_FLAG_IS_SET (mi, WI_FLAG_NOLOCK))
149 #define MI_WIN_IS_INSTALL(mi) (MI_WIN_FLAG_IS_SET (mi, WI_FLAG_INSTALL))
150 #define MI_WIN_IS_DEBUG(mi) (MI_WIN_FLAG_IS_SET (mi, WI_FLAG_DEBUG))
151 #define MI_WIN_IS_USE3D(mi) (MI_WIN_FLAG_IS_SET (mi, WI_FLAG_USE3D))
152 #define MI_WIN_IS_VERBOSE(mi) (MI_WIN_FLAG_IS_SET (mi, WI_FLAG_VERBOSE))
153 #define MI_WIN_IS_FULLRANDOM(mi) (MI_WIN_FLAG_IS_SET (mi, WI_FLAG_FULLRANDOM))
154 #define MI_WIN_IS_WIREFRAME(mi) (MI_WIN_FLAG_IS_SET (mi, WI_FLAG_WIREFRAME))
156 #define MI_PERSCREEN(mi) ((mi)->screeninfo)
157 #define MI_GC(mi) ((mi)->screeninfo->gc)
158 #define MI_NPIXELS(mi) ((mi)->screeninfo->npixels)
159 #define MI_CMAP(mi) ((mi)->screeninfo->cmap)
160 #define MI_PIXELS(mi) ((mi)->screeninfo->pixels)
161 #define MI_PIXEL(mi,n) ((mi)->screeninfo->pixels[n])
163 /* are these of interest to modes? */
164 #define MI_BG_COLOR(mi) ((mi)->screeninfo->bgcol)
165 #define MI_FG_COLOR(mi) ((mi)->screeninfo->fgcol)
166 #define MI_NONE_COLOR(mi) ((mi)->screeninfo->nonecol) /* -install */
167 #define MI_RIGHT_COLOR(mi) ((mi)->screeninfo->rightcol)
168 #define MI_LEFT_COLOR(mi) ((mi)->screeninfo->leftcol)
170 #define MI_PAUSE(mi) ((mi)->runinfo.pause)
171 #define MI_DELAY(mi) ((mi)->runinfo.delay)
172 #define MI_BATCHCOUNT(mi) ((mi)->runinfo.batchcount)
173 #define MI_CYCLES(mi) ((mi)->runinfo.cycles)
174 #define MI_SIZE(mi) ((mi)->runinfo.size)
175 #define MI_SATURATION(mi) ((mi)->runinfo.saturation)
177 #define MI_LOCKSTRUCT(mi) ((mi)->lockstruct)
178 #define MI_DEFDELAY(mi) ((mi)->lockstruct->def_delay)
179 #define MI_DEFBATCHCOUNT(mi) ((mi)->lockstruct->def_batchcount)
180 #define MI_DEFCYCLES(mi) ((mi)->lockstruct->def_cycles)
181 #define MI_DEFSIZE(mi) ((mi)->lockstruct->def_size)
182 #define MI_DEFSATURATION(mi) ((mi)->lockstruct->def_saturation)
184 #define MI_NAME(mi) ((mi)->lockstruct->cmdline_arg)
185 #define MI_DESC(mi) ((mi)->lockstruct->desc)
186 #define MI_USERDATA(mi) ((mi)->lockstruct->userdata)
188 /* -------------------------------------------------------------------- */
190 extern HookProc call_init_hook
;
191 extern HookProc call_callback_hook
;
192 extern HookProc call_release_hook
;
193 extern HookProc call_refresh_hook
;
194 extern HookProc call_change_hook
;
196 extern void set_default_mode(LockStruct
*);
197 extern void release_last_mode(ModeInfo
*);
199 /* -------------------------------------------------------------------- */
201 extern ModeHook init_ant
;
202 extern ModeHook draw_ant
;
203 extern ModeHook release_ant
;
204 extern ModeHook refresh_ant
;
205 extern ModeSpecOpt ant_opts
;
207 extern ModeHook init_ball
;
208 extern ModeHook draw_ball
;
209 extern ModeHook release_ball
;
210 extern ModeHook refresh_ball
;
211 extern ModeSpecOpt ball_opts
;
213 extern ModeHook init_bat
;
214 extern ModeHook draw_bat
;
215 extern ModeHook release_bat
;
216 extern ModeHook refresh_bat
;
217 extern ModeSpecOpt bat_opts
;
219 extern ModeHook init_blot
;
220 extern ModeHook draw_blot
;
221 extern ModeHook release_blot
;
222 extern ModeHook refresh_blot
;
223 extern ModeSpecOpt blot_opts
;
225 extern ModeHook init_bouboule
;
226 extern ModeHook draw_bouboule
;
227 extern ModeHook release_bouboule
;
228 extern ModeHook refresh_bouboule
;
229 extern ModeSpecOpt bouboule_opts
;
231 extern ModeHook init_bounce
;
232 extern ModeHook draw_bounce
;
233 extern ModeHook release_bounce
;
234 extern ModeHook refresh_bounce
;
235 extern ModeSpecOpt bounce_opts
;
237 extern ModeHook init_braid
;
238 extern ModeHook draw_braid
;
239 extern ModeHook release_braid
;
240 extern ModeHook refresh_braid
;
241 extern ModeSpecOpt braid_opts
;
243 extern ModeHook init_bug
;
244 extern ModeHook draw_bug
;
245 extern ModeHook release_bug
;
246 extern ModeHook refresh_bug
;
247 extern ModeSpecOpt bug_opts
;
249 extern ModeHook init_clock
;
250 extern ModeHook draw_clock
;
251 extern ModeHook release_clock
;
252 extern ModeHook refresh_clock
;
253 extern ModeSpecOpt clock_opts
;
255 extern ModeHook init_daisy
;
256 extern ModeHook draw_daisy
;
257 extern ModeHook release_daisy
;
258 extern ModeHook refresh_daisy
;
259 extern ModeSpecOpt daisy_opts
;
261 extern ModeHook init_dclock
;
262 extern ModeHook draw_dclock
;
263 extern ModeHook release_dclock
;
264 extern ModeHook refresh_dclock
;
265 extern ModeSpecOpt dclock_opts
;
267 extern ModeHook init_demon
;
268 extern ModeHook draw_demon
;
269 extern ModeHook release_demon
;
270 extern ModeHook refresh_demon
;
271 extern ModeSpecOpt demon_opts
;
273 extern ModeHook init_drift
;
274 extern ModeHook draw_drift
;
275 extern ModeHook release_drift
;
276 extern ModeHook refresh_drift
;
277 extern ModeSpecOpt drift_opts
;
279 extern ModeHook init_eyes
;
280 extern ModeHook draw_eyes
;
281 extern ModeHook release_eyes
;
282 extern ModeHook refresh_eyes
;
283 extern ModeSpecOpt eyes_opts
;
285 extern ModeHook init_flag
;
286 extern ModeHook draw_flag
;
287 extern ModeHook release_flag
;
288 extern ModeHook refresh_flag
;
289 extern ModeSpecOpt flag_opts
;
291 extern ModeHook init_flame
;
292 extern ModeHook draw_flame
;
293 extern ModeHook release_flame
;
294 extern ModeHook refresh_flame
;
295 extern ModeSpecOpt flame_opts
;
297 extern ModeHook init_forest
;
298 extern ModeHook draw_forest
;
299 extern ModeHook release_forest
;
300 extern ModeHook refresh_forest
;
301 extern ModeHook refresh_forest
;
302 extern ModeSpecOpt forest_opts
;
304 extern ModeHook init_fract
;
305 extern ModeHook draw_fract
;
306 extern ModeHook release_fract
;
307 extern ModeHook refresh_fract
;
308 extern ModeSpecOpt fract_opts
;
310 extern ModeHook init_galaxy
;
311 extern ModeHook draw_galaxy
;
312 extern ModeHook release_galaxy
;
313 extern ModeHook refresh_galaxy
;
314 extern ModeSpecOpt galaxy_opts
;
316 extern ModeHook init_geometry
;
317 extern ModeHook draw_geometry
;
318 extern ModeHook release_geometry
;
319 extern ModeHook refresh_geometry
;
320 extern ModeSpecOpt geometry_opts
;
322 extern ModeHook init_grav
;
323 extern ModeHook draw_grav
;
324 extern ModeHook release_grav
;
325 extern ModeHook refresh_grav
;
326 extern ModeSpecOpt grav_opts
;
328 extern ModeHook init_helix
;
329 extern ModeHook draw_helix
;
330 extern ModeHook release_helix
;
331 extern ModeHook refresh_helix
;
332 extern ModeSpecOpt helix_opts
;
334 extern ModeHook init_hop
;
335 extern ModeHook draw_hop
;
336 extern ModeHook release_hop
;
337 extern ModeHook refresh_hop
;
338 extern ModeSpecOpt hop_opts
;
340 extern ModeHook init_hyper
;
341 extern ModeHook draw_hyper
;
342 extern ModeHook release_hyper
;
343 extern ModeHook refresh_hyper
;
344 extern ModeSpecOpt hyper_opts
;
346 extern ModeHook init_ico
;
347 extern ModeHook draw_ico
;
348 extern ModeHook release_ico
;
349 extern ModeHook refresh_ico
;
350 extern ModeHook change_ico
;
351 extern ModeSpecOpt ico_opts
;
353 extern ModeHook init_ifs
;
354 extern ModeHook draw_ifs
;
355 extern ModeHook release_ifs
;
356 extern ModeSpecOpt ifs_opts
;
358 extern ModeHook init_image
;
359 extern ModeHook draw_image
;
360 extern ModeHook release_image
;
361 extern ModeHook refresh_image
;
362 extern ModeSpecOpt image_opts
;
364 extern ModeHook init_julia
;
365 extern ModeHook draw_julia
;
366 extern ModeHook release_julia
;
367 extern ModeHook refresh_julia
;
368 extern ModeSpecOpt julia_opts
;
370 extern ModeHook init_kaleid
;
371 extern ModeHook draw_kaleid
;
372 extern ModeHook release_kaleid
;
373 extern ModeHook refresh_kaleid
;
374 extern ModeSpecOpt kaleid_opts
;
376 extern ModeHook init_laser
;
377 extern ModeHook draw_laser
;
378 extern ModeHook release_laser
;
379 extern ModeHook refresh_laser
;
380 extern ModeSpecOpt laser_opts
;
382 extern ModeHook init_life
;
383 extern ModeHook draw_life
;
384 extern ModeHook release_life
;
385 extern ModeHook refresh_life
;
386 extern ModeHook change_life
;
387 extern ModeSpecOpt life_opts
;
389 extern ModeHook init_life1d
;
390 extern ModeHook draw_life1d
;
391 extern ModeHook release_life1d
;
392 extern ModeHook refresh_life1d
;
393 extern ModeSpecOpt life1d_opts
;
395 extern ModeHook init_life3d
;
396 extern ModeHook draw_life3d
;
397 extern ModeHook release_life3d
;
398 extern ModeHook refresh_life3d
;
399 extern ModeHook change_life3d
;
400 extern ModeSpecOpt life3d_opts
;
402 extern ModeHook init_lightning
;
403 extern ModeHook draw_lightning
;
404 extern ModeHook release_lightning
;
405 extern ModeHook refresh_lightning
;
406 extern ModeSpecOpt lightning_opts
;
408 extern ModeHook init_lisa
;
409 extern ModeHook draw_lisa
;
410 extern ModeHook release_lisa
;
411 extern ModeHook refresh_lisa
;
412 extern ModeHook change_lisa
;
413 extern ModeSpecOpt lisa_opts
;
415 extern ModeHook init_lissie
;
416 extern ModeHook draw_lissie
;
417 extern ModeHook release_lissie
;
418 extern ModeHook refresh_lissie
;
419 extern ModeSpecOpt lissie_opts
;
421 extern ModeHook init_loop
;
422 extern ModeHook draw_loop
;
423 extern ModeHook release_loop
;
424 extern ModeHook refresh_loop
;
425 extern ModeSpecOpt loop_opts
;
427 extern ModeHook init_marquee
;
428 extern ModeHook draw_marquee
;
429 extern ModeHook release_marquee
;
430 extern ModeHook refresh_marquee
;
431 extern ModeSpecOpt marquee_opts
;
433 extern ModeHook init_maze
;
434 extern ModeHook draw_maze
;
435 extern ModeHook release_maze
;
436 extern ModeHook refresh_maze
;
437 extern ModeSpecOpt maze_opts
;
439 extern ModeHook init_mountain
;
440 extern ModeHook draw_mountain
;
441 extern ModeHook release_mountain
;
442 extern ModeHook refresh_mountain
;
443 extern ModeSpecOpt mountain_opts
;
445 extern ModeHook init_nose
;
446 extern ModeHook draw_nose
;
447 extern ModeHook release_nose
;
448 extern ModeHook refresh_nose
;
449 extern ModeSpecOpt nose_opts
;
451 extern ModeHook init_pacman
;
452 extern ModeHook draw_pacman
;
453 extern ModeHook release_pacman
;
454 extern ModeHook refresh_pacman
;
455 extern ModeSpecOpt pacman_opts
;
457 extern ModeHook init_penrose
;
458 extern ModeHook draw_penrose
;
459 extern ModeHook release_penrose
;
462 extern ModeHook refresh_penrose
; /* Needed */
465 extern ModeSpecOpt penrose_opts
;
467 extern ModeHook init_petal
;
468 extern ModeHook draw_petal
;
469 extern ModeHook release_petal
;
470 extern ModeHook refresh_petal
;
471 extern ModeSpecOpt petal_opts
;
473 extern ModeHook init_puzzle
;
474 extern ModeHook draw_puzzle
;
475 extern ModeHook release_puzzle
;
478 extern ModeHook refresh_puzzle
; /* Needed */
481 extern ModeSpecOpt puzzle_opts
;
483 extern ModeHook init_pyro
;
484 extern ModeHook draw_pyro
;
485 extern ModeHook release_pyro
;
486 extern ModeHook refresh_pyro
;
487 extern ModeSpecOpt pyro_opts
;
489 extern ModeHook init_qix
;
490 extern ModeHook draw_qix
;
491 extern ModeHook release_qix
;
492 extern ModeHook refresh_qix
;
493 extern ModeSpecOpt qix_opts
;
495 extern ModeHook init_roll
;
496 extern ModeHook draw_roll
;
497 extern ModeHook release_roll
;
498 extern ModeHook refresh_roll
;
499 extern ModeSpecOpt roll_opts
;
501 extern ModeHook init_rotor
;
502 extern ModeHook draw_rotor
;
503 extern ModeHook release_rotor
;
504 extern ModeHook refresh_rotor
;
505 extern ModeSpecOpt rotor_opts
;
507 extern ModeHook init_shape
;
508 extern ModeHook draw_shape
;
509 extern ModeHook release_shape
;
510 extern ModeHook refresh_shape
;
511 extern ModeSpecOpt shape_opts
;
513 extern ModeHook init_slip
;
514 extern ModeHook draw_slip
;
515 extern ModeHook release_slip
;
518 extern ModeHook refresh_slip
; /* Probably not practical */
521 extern ModeSpecOpt slip_opts
;
523 extern ModeHook init_sphere
;
524 extern ModeHook draw_sphere
;
525 extern ModeHook release_sphere
;
526 extern ModeHook refresh_sphere
;
527 extern ModeSpecOpt sphere_opts
;
529 extern ModeHook init_spiral
;
530 extern ModeHook draw_spiral
;
531 extern ModeHook release_spiral
;
532 extern ModeHook refresh_spiral
;
533 extern ModeSpecOpt spiral_opts
;
535 extern ModeHook init_spline
;
536 extern ModeHook draw_spline
;
537 extern ModeHook release_spline
;
538 extern ModeHook refresh_spline
;
539 extern ModeSpecOpt spline_opts
;
541 extern ModeHook init_star
;
542 extern ModeHook draw_star
;
543 extern ModeHook release_star
;
544 extern ModeHook refresh_star
;
545 extern ModeSpecOpt star_opts
;
547 extern ModeHook init_strange
;
548 extern ModeHook draw_strange
;
549 extern ModeHook release_strange
;
550 extern ModeSpecOpt strange_opts
;
552 extern ModeHook init_swarm
;
553 extern ModeHook draw_swarm
;
554 extern ModeHook release_swarm
;
555 extern ModeHook refresh_swarm
;
556 extern ModeSpecOpt swarm_opts
;
558 extern ModeHook init_swirl
;
559 extern ModeHook draw_swirl
;
560 extern ModeHook release_swirl
;
561 extern ModeHook refresh_swirl
;
562 extern ModeSpecOpt swirl_opts
;
564 extern ModeHook init_tri
;
565 extern ModeHook draw_tri
;
566 extern ModeHook release_tri
;
567 extern ModeHook refresh_tri
;
568 extern ModeSpecOpt tri_opts
;
570 extern ModeHook init_triangle
;
571 extern ModeHook draw_triangle
;
572 extern ModeHook release_triangle
;
573 extern ModeHook refresh_triangle
;
574 extern ModeSpecOpt triangle_opts
;
576 extern ModeHook init_tube
;
577 extern ModeHook draw_tube
;
578 extern ModeHook release_tube
;
579 extern ModeHook refresh_tube
;
580 extern ModeSpecOpt tube_opts
;
582 extern ModeHook init_turtle
;
583 extern ModeHook draw_turtle
;
584 extern ModeHook release_turtle
;
585 extern ModeHook refresh_turtle
;
586 extern ModeSpecOpt turtle_opts
;
588 extern ModeHook init_wator
;
589 extern ModeHook draw_wator
;
590 extern ModeHook release_wator
;
591 extern ModeHook refresh_wator
;
592 extern ModeSpecOpt wator_opts
;
594 extern ModeHook init_wire
;
595 extern ModeHook draw_wire
;
596 extern ModeHook release_wire
;
597 extern ModeHook refresh_wire
;
598 extern ModeSpecOpt wire_opts
;
600 extern ModeHook init_world
;
601 extern ModeHook draw_world
;
602 extern ModeHook release_world
;
603 extern ModeHook refresh_world
;
604 extern ModeSpecOpt world_opts
;
606 extern ModeHook init_worm
;
607 extern ModeHook draw_worm
;
608 extern ModeHook release_worm
;
609 extern ModeHook refresh_worm
;
610 extern ModeSpecOpt worm_opts
;
612 #if defined( USE_XPM ) || defined( USE_XPMINC )
613 extern ModeHook init_cartoon
;
614 extern ModeHook draw_cartoon
;
615 extern ModeHook release_cartoon
;
616 extern ModeSpecOpt cartoon_opts
;
621 extern ModeHook init_gears
;
622 extern ModeHook draw_gears
;
623 extern ModeHook release_gears
;
624 extern ModeSpecOpt gears_opts
;
626 extern ModeHook init_morph3d
;
627 extern ModeHook draw_morph3d
;
628 extern ModeHook release_morph3d
;
629 extern ModeHook change_morph3d
;
630 extern ModeSpecOpt morph3d_opts
;
632 extern ModeHook init_pipes
;
633 extern ModeHook draw_pipes
;
634 extern ModeHook release_pipes
;
635 extern ModeHook refresh_pipes
;
636 extern ModeHook change_pipes
;
637 extern ModeSpecOpt pipes_opts
;
639 extern ModeHook init_superquadrics
;
640 extern ModeHook draw_superquadrics
;
641 extern ModeHook release_superquadrics
;
642 extern ModeHook refresh_superquadrics
;
643 extern ModeSpecOpt superquadrics_opts
;
645 #ifdef USE_SPROINGIES
646 extern ModeHook init_sproingies
;
647 extern ModeHook draw_sproingies
;
648 extern ModeHook release_sproingies
;
649 extern ModeHook refresh_sproingies
;
650 extern ModeSpecOpt sproingies_opts
;
656 extern ModeHook init_fadeplot
;
657 extern ModeHook draw_fadeplot
;
658 extern ModeHook release_fadeplot
;
659 extern ModeHook refresh_fadeplot
;
660 extern ModeSpecOpt fadeplot_opts
;
664 extern ModeHook init_blank
;
665 extern ModeHook draw_blank
;
666 extern ModeHook release_blank
;
667 extern ModeHook refresh_blank
;
668 extern ModeSpecOpt blank_opts
;
671 extern ModeHook init_bomb
;
672 extern ModeHook draw_bomb
;
673 extern ModeHook release_bomb
;
674 extern ModeHook refresh_bomb
;
675 extern ModeHook change_bomb
;
676 extern ModeSpecOpt bomb_opts
;
680 extern ModeHook init_random
;
681 extern ModeHook draw_random
;
682 extern ModeHook release_random
;
683 extern ModeHook refresh_random
;
684 extern ModeHook change_random
;
685 extern ModeSpecOpt random_opts
;
687 extern LockStruct LockProcs
[];
690 /* -------------------------------------------------------------------- */
692 #endif /* __XLOCK_MODE_H__ */