1 #ifndef __XLOCK_MODE_H__ 2 #define __XLOCK_MODE_H__ 3 4 #if !defined( lint ) && !defined( SABER ) 5 /* #ident "@(#)mode.h 4.14 99/06/17 xlockmore" */ 6 7 #endif 8 9 /*- 10 * mode.h - mode management for xlock, the X Window System lockscreen. 11 * 12 * Copyright (c) 1991 by Patrick J. Naughton. 13 * xscreensaver code, Copyright (c) 1997 Jamie Zawinski <jwz AT jwz.org> 14 * 15 * Permission to use, copy, modify, and distribute this software and its 16 * documentation for any purpose and without fee is hereby granted, 17 * provided that the above copyright notice appear in all copies and that 18 * both that copyright notice and this permission notice appear in 19 * supporting documentation. 20 * 21 * This file is provided AS IS with no warranties of any kind. The author 22 * shall have no liability with respect to the infringement of copyrights, 23 * trade secrets or any patents by this file or any part thereof. In no 24 * event will the author be liable for any lost revenue or profits or 25 * other special, indirect and consequential damages. 26 * 27 * Revision History: 28 * 29 * Changes maintained by David Bagley <bagleyd AT verizon.net> 30 * 18-Mar-96: Ron Hitchens <ron AT idiom.com> 31 * Extensive revision to define new data types for 32 * the new mode calling scheme. 33 * 02-Jun-95: Extracted out of resource.c. 34 * 35 */ 36 37 #ifdef __cplusplus 38 extern "C" { 39 #endif 40 struct LockStruct_s; 41 struct ModeInfo_s; 42 43 typedef void (ModeHook) (struct ModeInfo_s *); 44 typedef void (HookProc) (struct LockStruct_s *, struct ModeInfo_s *); 45 46 typedef struct LockStruct_s { 47 char *cmdline_arg; /* mode name */ 48 ModeHook *init_hook; /* func to init a mode */ 49 ModeHook *callback_hook; /* func to run (tick) a mode */ 50 ModeHook *release_hook; /* func to shutdown a mode */ 51 ModeHook *refresh_hook; /* tells mode to repaint */ 52 ModeHook *change_hook; /* user wants mode to change */ 53 /*ModeHook *unused_hook;*/ /* future */ 54 ModeHook *free_hook; /* free a single screen */ 55 ModeSpecOpt *msopt; /* this mode's def resources */ 56 int def_delay; /* default delay for mode */ 57 int def_count; 58 int def_cycles; 59 int def_size; 60 int def_ncolors; 61 float def_saturation; 62 char *def_bitmap; 63 char *desc; /* text description of mode */ 64 unsigned int flags; /* state flags for this mode */ 65 void *userdata; /* for use by the mode */ 66 void **state_array; /* array of per-screen state, set from MI_INIT */ 67 } LockStruct; 68 69 #define LS_FLAG_INITED 1 70 71 typedef struct { 72 Pixmap pixmap; 73 #ifdef ORIGINAL_XPM_PATCH 74 /* Not recommended */ 75 Pixmap bitmap; 76 #else 77 int width, height, graphics_format; 78 #endif 79 } mailboxInfo; 80 81 typedef struct { 82 mailboxInfo mail; 83 mailboxInfo nomail; 84 GC mbgc; 85 } mboxInfo; 86 87 typedef struct { 88 Visual *visual; 89 int visualclass; /* visual class name of current window */ 90 unsigned int depth; 91 unsigned long red_mask, green_mask, blue_mask; /* masks of current window */ 92 int colormap_size; /* colormap of current window */ 93 Colormap colormap; /* current colormap */ 94 Window window; /* window used to cover screen */ 95 Window icon; /* window used during password typein */ 96 Window root; /* convenience pointer to the root window */ 97 #ifdef USE_BUTTON_LOGOUT 98 Window button; 99 #endif 100 GC gc; /* graphics context for animation */ 101 GC textgc; /* graphics context used for text rendering */ 102 GC plantextgc; /* graphics context for plan message rendering */ 103 XPoint iconpos; /* location of top left edge of icon */ 104 XPoint planpos; /* location of top left edge of message */ 105 int npixels; /* number of valid entries in pixels */ 106 int polygon_count; /* screensaver variable */ 107 unsigned long *pixels; /* pixel values in the colormap */ 108 unsigned long black_pixel, white_pixel; /* black and white pixel values */ 109 unsigned long bg_pixel, fg_pixel; /* background and foreground pixel values */ 110 unsigned long right_pixel, left_pixel; /* 3D color pixel values */ 111 unsigned long none_pixel, both_pixel; 112 XWindowChanges fullsizeconfigure; 113 mboxInfo mb; 114 Pixmap root_pixmap; 115 double recursion_depth; 116 } ScreenInfo; 117 118 typedef struct { 119 Display *display; /* handle to X display */ 120 Screen *screenptr; /* ptr to screen info */ 121 int screen; /* number of current screen */ 122 int real_screen; /* for debugging */ 123 int num_screens; /* number screens locked */ 124 int max_screens; /* max # active screens */ 125 Window window; /* handle to current window */ 126 int width; /* width of current window */ 127 int height; /* height of current window */ 128 unsigned int flags; /* xlock window flags */ 129 float delta3d; 130 Bool is_drawn; /*Indicates that enough is drawn for special * 131 * erase */ 132 } WindowInfo; 133 #ifdef __cplusplus 134 } 135 #endif 136 137 #define WI_FLAG_INFO_INITTED 0x001 /* private state flag */ 138 #define WI_FLAG_ICONIC 0x002 139 #define WI_FLAG_MONO 0x004 140 #define WI_FLAG_INWINDOW 0x008 141 #define WI_FLAG_INROOT 0x010 142 #define WI_FLAG_NOLOCK 0x020 143 #define WI_FLAG_INSTALL 0x040 144 #define WI_FLAG_DEBUG 0x080 145 #define WI_FLAG_USE3D 0x100 146 #define WI_FLAG_VERBOSE 0x200 147 #define WI_FLAG_FULLRANDOM 0x400 148 #define WI_FLAG_WIREFRAME 0x800 149 #define WI_FLAG_FPS 0x1000 150 #define WI_FLAG_JUST_INITTED 0x2000 /* private state flag */ 151 152 #ifdef __cplusplus 153 extern "C" { 154 #endif 155 typedef struct { 156 long pause; /* output, set by mode */ 157 long delay; /* inputs, current settings */ 158 int count; 159 int cycles; 160 int size; 161 int ncolors; 162 float saturation; 163 char *bitmap; 164 } RunInfo; 165 166 typedef struct ModeInfo_s { 167 WindowInfo windowinfo; 168 ScreenInfo *screeninfo; 169 RunInfo runinfo; 170 struct LockStruct_s *lockstruct; 171 } ModeInfo; 172 #ifdef __cplusplus 173 } 174 #endif 175 176 /* -------------------------------------------------------------------- */ 177 178 /*- 179 * These are the public interfaces that a mode should use to obtain 180 * information about the display and other environmental parameters. 181 * Everything hangs off a ModeInfo pointer. A mode should NOT cache 182 * a ModeInfo pointer, the struct it points to is volatile. The mode 183 * can safely make a copy of the data it points to, however. But it 184 * is recommended the mode make use of the passed-in pointer and pass 185 * it along to functions it calls. 186 * Use these macros, don't look at the fields directly. The insides 187 * of the ModeInfo struct are certain to change in the future. 188 */ 189 190 #define MODE_IS_INITED(ls) ((ls)->flags & LS_FLAG_INITED) 191 #define MODE_NOT_INITED(ls) ( ! MODE_IS_INITED(ls)) 192 193 #define MI_DISPLAY(mi) ((mi)->windowinfo.display) 194 #define MI_SCREEN(mi) ((mi)->windowinfo.screen) 195 #define MI_SCREENPTR(mi) ((mi)->windowinfo.screenptr) 196 #define MI_REAL_SCREEN(mi) ((mi)->windowinfo.real_screen) 197 #define MI_NUM_SCREENS(mi) ((mi)->windowinfo.num_screens) 198 #define MI_MAX_SCREENS(mi) ((mi)->windowinfo.max_screens) 199 #define MI_WINDOW(mi) ((mi)->windowinfo.window) 200 #define MI_WIDTH(mi) ((mi)->windowinfo.width) 201 #define MI_HEIGHT(mi) ((mi)->windowinfo.height) 202 #define MI_DELTA3D(mi) ((mi)->windowinfo.delta3d) 203 #define MI_FLAGS(mi) ((mi)->windowinfo.flags) 204 #define MI_IS_DRAWN(mi) ((mi)->windowinfo.is_drawn) 205 #define MI_SET_FLAG_STATE(mi,f,bool) ((mi)->windowinfo.flags = \ 206 (bool) ? (mi)->windowinfo.flags | f \ 207 : (mi)->windowinfo.flags & ~(f)) 208 #define MI_FLAG_IS_SET(mi,f) ((mi)->windowinfo.flags & f) 209 #define MI_FLAG_NOT_SET(mi,f) ( ! MI_FLAG_IS_SET(mi,f)) 210 #define MI_IS_ICONIC(mi) (MI_FLAG_IS_SET (mi, WI_FLAG_ICONIC)) 211 #define MI_IS_MONO(mi) (MI_FLAG_IS_SET (mi, WI_FLAG_MONO)) 212 #define MI_IS_INWINDOW(mi) (MI_FLAG_IS_SET (mi, WI_FLAG_INWINDOW)) 213 #define MI_IS_INROOT(mi) (MI_FLAG_IS_SET (mi, WI_FLAG_INROOT)) 214 #define MI_IS_NOLOCK(mi) (MI_FLAG_IS_SET (mi, WI_FLAG_NOLOCK)) 215 #define MI_IS_INSTALL(mi) (MI_FLAG_IS_SET (mi, WI_FLAG_INSTALL)) 216 #define MI_IS_DEBUG(mi) (MI_FLAG_IS_SET (mi, WI_FLAG_DEBUG)) 217 #define MI_IS_USE3D(mi) (MI_FLAG_IS_SET (mi, WI_FLAG_USE3D)) 218 #define MI_IS_VERBOSE(mi) (MI_FLAG_IS_SET (mi, WI_FLAG_VERBOSE)) 219 #define MI_IS_FULLRANDOM(mi) (MI_FLAG_IS_SET (mi, WI_FLAG_FULLRANDOM)) 220 #define MI_IS_WIREFRAME(mi) (MI_FLAG_IS_SET (mi, WI_FLAG_WIREFRAME)) 221 #define MI_IS_FPS(mi) (MI_FLAG_IS_SET (mi, WI_FLAG_FPS)) 222 223 #define MI_SCREENINFO(mi) ((mi)->screeninfo) 224 #define MI_DEPTH(mi) ((mi)->screeninfo->depth) 225 #define MI_VISUAL(mi) ((mi)->screeninfo->visual) 226 #define MI_VISUALCLASS(mi) ((mi)->screeninfo->visualclass) 227 #define MI_COLORMAP_SIZE(mi) ((mi)->screeninfo->colormap_size) 228 #define MI_RED_MASK(mi) ((mi)->screeninfo->red_mask) 229 #define MI_GREEN_MASK(mi) ((mi)->screeninfo->green_mask) 230 #define MI_BLUE_MASK(mi) ((mi)->screeninfo->blue_mask) 231 #define MI_COLORMAP(mi) ((mi)->screeninfo->colormap) 232 #define MI_GC(mi) ((mi)->screeninfo->gc) 233 #define MI_NPIXELS(mi) ((mi)->screeninfo->npixels) 234 #define MI_PIXELS(mi) ((mi)->screeninfo->pixels) 235 #define MI_PIXEL(mi,n) ((mi)->screeninfo->pixels[n]) 236 #define MI_POLYGONCOUNT(mi) ((mi)->screeninfo->polygon_count) 237 #define MI_BLACK_PIXEL(mi) ((mi)->screeninfo->black_pixel) 238 #define MI_WHITE_PIXEL(mi) ((mi)->screeninfo->white_pixel) 239 #define MI_BG_PIXEL(mi) ((mi)->screeninfo->bg_pixel) 240 #define MI_FG_PIXEL(mi) ((mi)->screeninfo->fg_pixel) 241 #define MI_NONE_COLOR(mi) ((mi)->screeninfo->none_pixel) /* -install */ 242 #define MI_RIGHT_COLOR(mi) ((mi)->screeninfo->right_pixel) 243 #define MI_LEFT_COLOR(mi) ((mi)->screeninfo->left_pixel) 244 #define MI_ROOT_PIXMAP(mi) ((mi)->screeninfo->root_pixmap) 245 #define MI_RECURSION_DEPTH(MI) ((mi)->screeninfo->recursion_depth) 246 247 #define MI_DELAY(mi) ((mi)->runinfo.delay) 248 #define MI_COUNT(mi) ((mi)->runinfo.count) 249 #define MI_CYCLES(mi) ((mi)->runinfo.cycles) 250 #define MI_SIZE(mi) ((mi)->runinfo.size) 251 #define MI_NCOLORS(mi) ((mi)->runinfo.ncolors) 252 #define MI_SATURATION(mi) ((mi)->runinfo.saturation) 253 #define MI_BITMAP(mi) ((mi)->runinfo.bitmap) 254 #define MI_PAUSE(MI) ((mi)->runinfo.pause) 255 256 #define MI_LOCKSTRUCT(mi) ((mi)->lockstruct) 257 #define MI_DEFDELAY(mi) ((mi)->lockstruct->def_delay) 258 #define MI_DEFCOUNT(mi) ((mi)->lockstruct->def_count) 259 #define MI_DEFCYCLES(mi) ((mi)->lockstruct->def_cycles) 260 #define MI_DEFSIZE(mi) ((mi)->lockstruct->def_size) 261 #define MI_DEFNCOLORS(mi) ((mi)->lockstruct->def_ncolors) 262 #define MI_DEFSATURATION(mi) ((mi)->lockstruct->def_saturation) 263 #define MI_DEFBITMAP(mi) ((mi)->lockstruct->def_bitmap) 264 265 #define MI_NAME(mi) ((mi)->lockstruct->cmdline_arg) 266 #define MI_DESC(mi) ((mi)->lockstruct->desc) 267 #define MI_USERDATA(mi) ((mi)->lockstruct->userdata) 268 269 #ifdef SOLARIS2 270 /*- 271 * It was acting weird with the first rectangle drawn 272 * on a Ultra2 with TrueColor Solaris2.x in deco mode. 273 * Not sure if other modes are affected... now handled in deco mode. 274 * If it does happen it is probably not as noticeable to worry about. 275 */ 276 #endif 277 278 #ifdef __cplusplus 279 extern "C" { 280 #endif 281 extern void modeDescription(ModeInfo * mi); 282 extern void erase_full_window(ModeInfo * mi, GC erase_gc, unsigned long pixel); 283 #ifdef __cplusplus 284 } 285 #endif 286 287 #define MI_CLEARWINDOWCOLORMAP(mi, gc, pixel) \ 288 { \ 289 erase_full_window( mi , gc , pixel ); \ 290 } 291 #define MI_CLEARWINDOWCOLORMAPFAST(mi, gc, pixel) \ 292 { \ 293 XSetForeground(MI_DISPLAY(mi), gc, pixel); \ 294 if ((MI_WIDTH(mi) >= 2) || (MI_HEIGHT(mi) >= 2)) { \ 295 XFillRectangle(MI_DISPLAY(mi), MI_WINDOW(mi), gc, 1, 1, \ 296 (unsigned int) MI_WIDTH(mi) - 2, (unsigned int) MI_HEIGHT(mi) - 2); \ 297 XDrawRectangle(MI_DISPLAY(mi), MI_WINDOW(mi), gc, 0, 0, \ 298 (unsigned int) MI_WIDTH(mi) - 1, (unsigned int) MI_HEIGHT(mi) - 1); \ 299 } else \ 300 XFillRectangle(MI_DISPLAY(mi), MI_WINDOW(mi), gc, 0, 0, \ 301 (unsigned int) MI_WIDTH(mi), (unsigned int) MI_HEIGHT(mi)); \ 302 } 303 #define MI_CLEARWINDOWCOLOR(mi, pixel) \ 304 MI_CLEARWINDOWCOLORMAP(mi, MI_GC(mi), pixel) 305 #if 1 306 /*- 307 * XClearWindow with GL or MONO does not always work. 308 */ 309 #define MI_CLEARWINDOW(mi) MI_CLEARWINDOWCOLOR(mi, MI_BLACK_PIXEL(mi)) 310 #else 311 #define MI_CLEARWINDOW(mi) XClearWindow(MI_DISPLAY(mi), MI_WINDOW(mi)) 312 #endif 313 314 /* -------------------------------------------------------------------- */ 315 316 #ifdef __cplusplus 317 extern "C" { 318 #endif 319 extern HookProc call_init_hook; 320 extern HookProc call_callback_hook; 321 extern HookProc call_release_hook; 322 extern HookProc call_refresh_hook; 323 extern HookProc call_change_hook; 324 /*extern HookProc call_unused_hook;*/ 325 326 extern void set_default_mode(LockStruct *); 327 extern void release_last_mode(ModeInfo *); 328 329 /* -------------------------------------------------------------------- */ 330 331 /* if you just want the blank mode... how sad! */ 332 #ifndef BLANK_ONLY 333 #ifndef NICE_ONLY 334 /* comment out following defines to remove modes */ 335 #ifdef USE_GL 336 #define MODE_boxed 337 #define MODE_cage 338 #define MODE_fire 339 #define MODE_gears 340 #ifndef WIN32 341 #define MODE_glplanet 342 #define MODE_juggler3d 343 #endif 344 #define MODE_lament 345 #ifdef HAVE_LIBPNG 346 #define MODE_maze3d 347 #endif 348 #define MODE_moebius 349 #ifndef WIN32 350 #define MODE_molecule 351 #endif 352 #define MODE_morph3d 353 #define MODE_noof 354 #define MODE_rubik 355 #define MODE_sierpinski3d 356 #define MODE_skewb 357 #define MODE_sballs 358 #define MODE_sproingies 359 #define MODE_stairs 360 #define MODE_superquadrics 361 #ifndef WIN32 362 #ifdef USE_RETIRED 363 #define MODE_cartoon /* retired mode */ 364 #define MODE_kaleid2 /* retired mode */ 365 #endif 366 #endif 367 #define MODE_atlantis 368 #define MODE_atunnels 369 #define MODE_bubble3d 370 #define MODE_pipes 371 #define MODE_sproingies 372 #ifdef HAVE_CXX 373 #define MODE_invert 374 #ifndef WIN32 375 #if defined( HAVE_TTF ) && defined( HAVE_GLTT ) 376 #define MODE_text3d 377 #endif 378 #if defined( HAVE_FREETYPE ) && defined( HAVE_FTGL ) 379 #define MODE_text3d2 380 #endif 381 #endif /* !WIN32 */ 382 #endif /* HAVE_CXX */ 383 #endif /* USE_GL */ 384 #ifdef HAVE_CXX 385 #define MODE_solitaire 386 #endif 387 #ifdef USE_UNSTABLE 388 #define MODE_run /* VMS problems as well as -debug problems */ 389 #endif /* USE_UNSTABLE */ 390 #define MODE_anemone 391 #define MODE_ant 392 #define MODE_ant3d 393 #define MODE_apollonian 394 #define MODE_ball 395 #define MODE_bat 396 #define MODE_blot 397 #define MODE_bouboule 398 #define MODE_bounce 399 #define MODE_braid 400 #define MODE_bubble 401 #define MODE_bug 402 #define MODE_clock 403 #define MODE_coral 404 #define MODE_crystal 405 #define MODE_daisy 406 #define MODE_dclock 407 /*- 408 * Comment out dclock sub-modes to disable them from random selection. 409 * Useful for disabling y2k and millennium after those countdown dates 410 * have already gone by. 411 */ 412 /* #define MODE_dclock_y2k */ 413 /* #define MODE_dclock_millennium */ 414 #ifndef WIN32 415 #define MODE_decay 416 #endif /* !WIN32 */ 417 #define MODE_deco 418 #define MODE_deluxe 419 #define MODE_demon 420 #define MODE_dilemma 421 #define MODE_discrete 422 #define MODE_dragon 423 #define MODE_drift 424 #define MODE_euler2d 425 #define MODE_eyes 426 #define MODE_fadeplot 427 #define MODE_fiberlamp 428 #ifndef WIN32 429 #define MODE_flag 430 #endif /* !WIN32 */ 431 #define MODE_flame 432 #define MODE_flow 433 #define MODE_forest 434 #ifndef WIN32 435 #define MODE_fzort 436 #endif /* !WIN32 */ 437 #define MODE_galaxy 438 #ifndef WIN32 439 #define MODE_goop 440 #endif /* !WIN32 */ 441 #define MODE_grav 442 #define MODE_helix 443 #define MODE_hop 444 #define MODE_hyper 445 #define MODE_ico 446 #define MODE_ifs 447 #define MODE_image 448 #define MODE_juggle 449 #define MODE_julia 450 #define MODE_kaleid 451 #define MODE_kumppa 452 #define MODE_laser 453 #define MODE_life 454 #define MODE_life1d 455 #define MODE_life3d 456 #define MODE_lightning 457 #define MODE_lisa 458 #define MODE_lissie 459 #define MODE_loop 460 #define MODE_lyapunov 461 #define MODE_mandelbrot 462 #ifndef WIN32 463 #define MODE_marquee 464 #endif /* !WIN32 */ 465 #define MODE_matrix 466 #define MODE_maze 467 #define MODE_mountain 468 #define MODE_munch 469 #define MODE_nose 470 #define MODE_pacman 471 #define MODE_penrose 472 #define MODE_petal 473 #define MODE_petri 474 #define MODE_polyominoes 475 #ifndef WIN32 476 #define MODE_puzzle 477 #endif /* !WIN32 */ 478 #define MODE_pyro 479 #define MODE_pyro2 480 #define MODE_qix 481 #define MODE_rain 482 #define MODE_roll 483 #define MODE_rotor 484 #define MODE_scooter /* should be combined with star some day */ 485 #define MODE_shape 486 #define MODE_sierpinski 487 #define MODE_slip 488 #define MODE_space /* should be combined with star some day */ 489 #define MODE_sphere 490 #define MODE_spiral 491 #define MODE_spline 492 #define MODE_star 493 #define MODE_starfish 494 #define MODE_strange 495 #define MODE_swarm 496 #ifndef WIN32 497 #define MODE_swirl 498 #endif /* !WIN32 */ 499 #ifndef WIN32 500 #define MODE_t3d 501 #endif /* !WIN32 */ 502 #define MODE_tetris 503 #define MODE_thornbird 504 #define MODE_tik_tak 505 #define MODE_toneclock 506 #define MODE_triangle 507 #define MODE_tube 508 #define MODE_turtle 509 #define MODE_vines 510 #define MODE_voters 511 #define MODE_wator 512 #define MODE_wire 513 #define MODE_world 514 #define MODE_worm 515 #define MODE_xcl 516 #define MODE_xjack 517 518 #ifdef USE_BOMB 519 #define MODE_bomb 520 #endif 521 522 #else /* NICE_ONLY */ 523 #ifdef HAVE_CXX 524 #define MODE_solitaire 525 #endif 526 #define MODE_apollonian 527 #define MODE_blot 528 #define MODE_bouboule 529 #define MODE_bug 530 #define MODE_clock 531 #define MODE_daisy 532 #define MODE_dclock 533 #define MODE_decay 534 #define MODE_deco 535 #define MODE_deluxe 536 #define MODE_demon 537 #define MODE_dilemma 538 #define MODE_dragon 539 #define MODE_eyes 540 #define MODE_fadeplot 541 #define MODE_flame 542 #define MODE_forest 543 #define MODE_fzort 544 #define MODE_grav 545 #define MODE_hop 546 #define MODE_hyper 547 #define MODE_ico 548 #define MODE_image 549 #define MODE_kaleid 550 #define MODE_life 551 #define MODE_life1d 552 #define MODE_life3d 553 #define MODE_lightning 554 #define MODE_lisa 555 #define MODE_lissie 556 #define MODE_loop 557 #define MODE_marquee 558 #define MODE_munch 559 #define MODE_nose 560 #define MODE_pacman 561 #define MODE_penrose 562 #define MODE_petal 563 #define MODE_puzzle 564 #define MODE_pyro 565 #define MODE_pyro2 566 #define MODE_qix 567 #define MODE_rain 568 #define MODE_roll 569 #define MODE_space /* should be combined with star some day */ 570 #define MODE_sphere 571 #define MODE_spiral 572 #define MODE_spline 573 #define MODE_star 574 #define MODE_swarm 575 #define MODE_tetris 576 #define MODE_triangle 577 #define MODE_tube 578 #define MODE_turtle 579 #define MODE_vines 580 #define MODE_wator 581 #define MODE_wire 582 #define MODE_world 583 #define MODE_worm 584 #define MODE_xcl 585 #define MODE_xjack 586 587 #ifdef USE_BOMB 588 #define MODE_bomb 589 #endif 590 591 #endif /* NICE_ONLY */ 592 #endif /* BLANK_ONLY */ 593 594 #ifndef USE_MODULES 595 596 #ifdef MODE_anemone 597 extern ModeHook init_anemone; 598 extern ModeHook draw_anemone; 599 extern ModeHook release_anemone; 600 extern ModeHook free_anemone; 601 extern ModeSpecOpt anemone_opts; 602 #endif 603 604 #ifdef MODE_ant 605 extern ModeHook init_ant; 606 extern ModeHook draw_ant; 607 extern ModeHook release_ant; 608 extern ModeHook refresh_ant; 609 extern ModeHook free_ant; 610 extern ModeSpecOpt ant_opts; 611 #endif 612 613 #ifdef MODE_ant3d 614 extern ModeHook init_ant3d; 615 extern ModeHook draw_ant3d; 616 extern ModeHook release_ant3d; 617 extern ModeHook refresh_ant3d; 618 extern ModeHook free_ant3d; 619 extern ModeSpecOpt ant3d_opts; 620 #endif 621 622 #ifdef MODE_apollonian 623 extern ModeHook init_apollonian; 624 extern ModeHook draw_apollonian; 625 extern ModeHook release_apollonian; 626 extern ModeHook refresh_apollonian; 627 extern ModeHook free_apollonian; 628 extern ModeSpecOpt apollonian_opts; 629 #endif 630 631 #ifdef MODE_atlantis 632 extern ModeHook init_atlantis; 633 extern ModeHook draw_atlantis; 634 extern ModeHook release_atlantis; 635 extern ModeHook change_atlantis; 636 extern ModeSpecOpt atlantis_opts; 637 #endif 638 639 #ifdef MODE_atunnels 640 extern ModeHook init_atunnels; 641 extern ModeHook draw_atunnels; 642 extern ModeHook release_atunnels; 643 extern ModeHook change_atunnels; 644 extern ModeSpecOpt atunnels_opts; 645 #endif 646 647 #ifdef MODE_ball 648 extern ModeHook init_ball; 649 extern ModeHook draw_ball; 650 extern ModeHook release_ball; 651 extern ModeHook refresh_ball; 652 extern ModeHook free_ball; 653 extern ModeSpecOpt ball_opts; 654 #endif 655 656 #ifdef MODE_bat 657 extern ModeHook init_bat; 658 extern ModeHook draw_bat; 659 extern ModeHook release_bat; 660 extern ModeHook refresh_bat; 661 extern ModeHook free_bat; 662 extern ModeSpecOpt bat_opts; 663 #endif 664 665 #ifdef MODE_billiards 666 extern ModeHook init_billiards; 667 extern ModeHook draw_billiards; 668 extern ModeHook release_billiards; 669 extern ModeHook refresh_billiards; 670 extern ModeSpecOpt billiards_opts; 671 #endif 672 673 #ifdef MODE_blot 674 extern ModeHook init_blot; 675 extern ModeHook draw_blot; 676 extern ModeHook release_blot; 677 extern ModeHook refresh_blot; 678 extern ModeHook free_blot; 679 extern ModeSpecOpt blot_opts; 680 #endif 681 682 #ifdef MODE_bouboule 683 extern ModeHook init_bouboule; 684 extern ModeHook draw_bouboule; 685 extern ModeHook release_bouboule; 686 extern ModeHook refresh_bouboule; 687 extern ModeSpecOpt bouboule_opts; 688 #endif 689 690 #ifdef MODE_bounce 691 extern ModeHook init_bounce; 692 extern ModeHook draw_bounce; 693 extern ModeHook release_bounce; 694 extern ModeHook refresh_bounce; 695 extern ModeSpecOpt bounce_opts; 696 #endif 697 698 #ifdef MODE_boxed 699 extern ModeHook init_boxed; 700 extern ModeHook draw_boxed; 701 extern ModeHook release_boxed; 702 extern ModeSpecOpt boxed_opts; 703 #endif 704 705 #ifdef MODE_braid 706 extern ModeHook init_braid; 707 extern ModeHook draw_braid; 708 extern ModeHook release_braid; 709 extern ModeHook refresh_braid; 710 extern ModeSpecOpt braid_opts; 711 #endif 712 713 #ifdef MODE_bubble 714 extern ModeHook init_bubble; 715 extern ModeHook draw_bubble; 716 extern ModeHook release_bubble; 717 extern ModeHook free_bubble; 718 extern ModeSpecOpt bubble_opts; 719 #endif 720 721 #ifdef MODE_bubble3d 722 extern ModeHook init_bubble3d; 723 extern ModeHook draw_bubble3d; 724 extern ModeHook release_bubble3d; 725 extern ModeSpecOpt bubble3d_opts; 726 #endif 727 728 #ifdef MODE_bug 729 extern ModeHook init_bug; 730 extern ModeHook draw_bug; 731 extern ModeHook release_bug; 732 extern ModeHook refresh_bug; 733 extern ModeSpecOpt bug_opts; 734 #endif 735 736 #ifdef MODE_cage 737 extern ModeHook init_cage; 738 extern ModeHook draw_cage; 739 extern ModeHook release_cage; 740 extern ModeHook change_cage; 741 extern ModeSpecOpt cage_opts; 742 #endif 743 744 #ifdef MODE_cartoon 745 extern ModeHook init_cartoon; 746 extern ModeHook draw_cartoon; 747 extern ModeHook release_cartoon; 748 extern ModeHook refresh_cartoon; 749 extern ModeSpecOpt cartoon_opts; 750 #endif 751 752 #ifdef MODE_clock 753 extern ModeHook init_clock; 754 extern ModeHook draw_clock; 755 extern ModeHook release_clock; 756 extern ModeHook refresh_clock; 757 extern ModeSpecOpt clock_opts; 758 #endif 759 760 #ifdef MODE_coral 761 extern ModeHook init_coral; 762 extern ModeHook draw_coral; 763 extern ModeHook release_coral; 764 extern ModeHook refresh_coral; 765 extern ModeSpecOpt coral_opts; 766 #endif 767 768 #ifdef MODE_crystal 769 extern ModeHook init_crystal; 770 extern ModeHook draw_crystal; 771 extern ModeHook release_crystal; 772 extern ModeHook refresh_crystal; 773 extern ModeSpecOpt crystal_opts; 774 #endif 775 776 #ifdef MODE_daisy 777 extern ModeHook init_daisy; 778 extern ModeHook draw_daisy; 779 extern ModeHook release_daisy; 780 extern ModeHook refresh_daisy; 781 extern ModeSpecOpt daisy_opts; 782 #endif 783 784 #ifdef MODE_dclock 785 extern ModeHook init_dclock; 786 extern ModeHook draw_dclock; 787 extern ModeHook release_dclock; 788 extern ModeHook refresh_dclock; 789 extern ModeSpecOpt dclock_opts; 790 #endif 791 792 #ifdef MODE_decay 793 extern ModeHook init_decay; 794 extern ModeHook draw_decay; 795 extern ModeHook release_decay; 796 extern ModeHook refresh_decay; 797 extern ModeSpecOpt decay_opts; 798 #endif 799 800 #ifdef MODE_deco 801 extern ModeHook init_deco; 802 extern ModeHook draw_deco; 803 extern ModeHook release_deco; 804 extern ModeHook refresh_deco; 805 extern ModeSpecOpt deco_opts; 806 #endif 807 808 #ifdef MODE_deluxe 809 extern ModeHook init_deluxe; 810 extern ModeHook draw_deluxe; 811 extern ModeHook release_deluxe; 812 extern ModeSpecOpt deluxe_opts; 813 #endif 814 815 #ifdef MODE_demon 816 extern ModeHook init_demon; 817 extern ModeHook draw_demon; 818 extern ModeHook release_demon; 819 extern ModeHook refresh_demon; 820 extern ModeSpecOpt demon_opts; 821 #endif 822 823 #ifdef MODE_dilemma 824 extern ModeHook init_dilemma; 825 extern ModeHook draw_dilemma; 826 extern ModeHook release_dilemma; 827 extern ModeHook refresh_dilemma; 828 extern ModeSpecOpt dilemma_opts; 829 #endif 830 831 #ifdef MODE_discrete 832 extern ModeHook init_discrete; 833 extern ModeHook draw_discrete; 834 extern ModeHook release_discrete; 835 extern ModeHook refresh_discrete; 836 extern ModeHook change_discrete; 837 extern ModeSpecOpt discrete_opts; 838 #endif 839 840 #ifdef MODE_dragon 841 extern ModeHook init_dragon; 842 extern ModeHook draw_dragon; 843 extern ModeHook release_dragon; 844 extern ModeHook refresh_dragon; 845 extern ModeSpecOpt dragon_opts; 846 #endif 847 848 #ifdef MODE_drift 849 extern ModeHook init_drift; 850 extern ModeHook draw_drift; 851 extern ModeHook release_drift; 852 extern ModeHook refresh_drift; 853 extern ModeSpecOpt drift_opts; 854 #endif 855 856 #ifdef MODE_euler2d 857 extern ModeHook init_euler2d; 858 extern ModeHook draw_euler2d; 859 extern ModeHook release_euler2d; 860 extern ModeHook refresh_euler2d; 861 extern ModeSpecOpt euler2d_opts; 862 #endif 863 864 #ifdef MODE_eyes 865 extern ModeHook init_eyes; 866 extern ModeHook draw_eyes; 867 extern ModeHook release_eyes; 868 extern ModeHook refresh_eyes; 869 extern ModeSpecOpt eyes_opts; 870 #endif 871 872 #ifdef MODE_fadeplot 873 extern ModeHook init_fadeplot; 874 extern ModeHook draw_fadeplot; 875 extern ModeHook release_fadeplot; 876 extern ModeHook refresh_fadeplot; 877 extern ModeSpecOpt fadeplot_opts; 878 #endif 879 880 #ifdef MODE_fiberlamp 881 extern ModeHook init_fiberlamp; 882 extern ModeHook draw_fiberlamp; 883 extern ModeHook release_fiberlamp; 884 extern ModeHook change_fiberlamp; 885 extern ModeSpecOpt fiberlamp_opts; 886 #endif 887 888 #ifdef MODE_fire 889 extern ModeHook init_fire; 890 extern ModeHook draw_fire; 891 extern ModeHook release_fire; 892 extern ModeHook refresh_fire; 893 extern ModeHook change_fire; 894 extern ModeSpecOpt fire_opts; 895 #endif 896 897 #ifdef MODE_flag 898 extern ModeHook init_flag; 899 extern ModeHook draw_flag; 900 extern ModeHook release_flag; 901 extern ModeHook refresh_flag; 902 extern ModeSpecOpt flag_opts; 903 #endif 904 905 #ifdef MODE_flame 906 extern ModeHook init_flame; 907 extern ModeHook draw_flame; 908 extern ModeHook release_flame; 909 extern ModeHook refresh_flame; 910 extern ModeSpecOpt flame_opts; 911 #endif 912 913 #ifdef MODE_flow 914 extern ModeHook init_flow; 915 extern ModeHook draw_flow; 916 extern ModeHook release_flow; 917 extern ModeHook refresh_flow; 918 extern ModeHook change_flow; 919 extern ModeSpecOpt flow_opts; 920 #endif 921 922 #ifdef MODE_forest 923 extern ModeHook init_forest; 924 extern ModeHook draw_forest; 925 extern ModeHook release_forest; 926 extern ModeHook refresh_forest; 927 extern ModeSpecOpt forest_opts; 928 #endif 929 930 #ifdef MODE_fzort 931 extern ModeHook init_fzort; 932 extern ModeHook draw_fzort; 933 extern ModeHook release_fzort; 934 extern ModeHook refresh_fzort; 935 extern ModeSpecOpt fzort_opts; 936 #endif 937 938 #ifdef MODE_galaxy 939 extern ModeHook init_galaxy; 940 extern ModeHook draw_galaxy; 941 extern ModeHook release_galaxy; 942 extern ModeHook refresh_galaxy; 943 extern ModeSpecOpt galaxy_opts; 944 #endif 945 946 #ifdef MODE_gears 947 extern ModeHook init_gears; 948 extern ModeHook draw_gears; 949 extern ModeHook release_gears; 950 extern ModeSpecOpt gears_opts; 951 #endif 952 953 #ifdef MODE_glplanet 954 extern ModeHook init_glplanet; 955 extern ModeHook draw_glplanet; 956 extern ModeHook release_glplanet; 957 extern ModeSpecOpt glplanet_opts; 958 #endif 959 960 #ifdef MODE_goop 961 extern ModeHook init_goop; 962 extern ModeHook draw_goop; 963 extern ModeHook release_goop; 964 extern ModeSpecOpt goop_opts; 965 #endif 966 967 #ifdef MODE_grav 968 extern ModeHook init_grav; 969 extern ModeHook draw_grav; 970 extern ModeHook release_grav; 971 extern ModeHook refresh_grav; 972 extern ModeSpecOpt grav_opts; 973 #endif 974 975 #ifdef MODE_helix 976 extern ModeHook init_helix; 977 extern ModeHook draw_helix; 978 extern ModeHook release_helix; 979 extern ModeHook refresh_helix; 980 extern ModeSpecOpt helix_opts; 981 #endif 982 983 #ifdef MODE_hop 984 extern ModeHook init_hop; 985 extern ModeHook draw_hop; 986 extern ModeHook release_hop; 987 extern ModeHook refresh_hop; 988 extern ModeSpecOpt hop_opts; 989 #endif 990 991 #ifdef MODE_hyper 992 extern ModeHook init_hyper; 993 extern ModeHook draw_hyper; 994 extern ModeHook release_hyper; 995 extern ModeHook refresh_hyper; 996 extern ModeHook change_hyper; 997 extern ModeSpecOpt hyper_opts; 998 #endif 999 1000 #ifdef MODE_ico 1001 extern ModeHook init_ico; 1002 extern ModeHook draw_ico; 1003 extern ModeHook release_ico; 1004 extern ModeHook refresh_ico; 1005 extern ModeHook change_ico; 1006 extern ModeSpecOpt ico_opts; 1007 #endif 1008 1009 #ifdef MODE_ifs 1010 extern ModeHook init_ifs; 1011 extern ModeHook draw_ifs; 1012 extern ModeHook release_ifs; 1013 extern ModeSpecOpt ifs_opts; 1014 #endif 1015 1016 #ifdef MODE_image 1017 extern ModeHook init_image; 1018 extern ModeHook draw_image; 1019 extern ModeHook release_image; 1020 extern ModeHook refresh_image; 1021 extern ModeSpecOpt image_opts; 1022 #endif 1023 1024 #ifdef MODE_invert 1025 extern ModeHook init_invert; 1026 extern ModeHook draw_invert; 1027 extern ModeHook release_invert; 1028 extern ModeSpecOpt invert_opts; 1029 #endif 1030 1031 1032 #ifdef MODE_juggle 1033 extern ModeHook init_juggle; 1034 extern ModeHook draw_juggle; 1035 extern ModeHook release_juggle; 1036 extern ModeHook change_juggle; 1037 extern ModeSpecOpt juggle_opts; 1038 #endif 1039 1040 #ifdef MODE_juggler3d 1041 extern ModeHook init_juggler3d; 1042 extern ModeHook draw_juggler3d; 1043 extern ModeHook release_juggler3d; 1044 extern ModeHook change_juggler3d; 1045 extern ModeSpecOpt juggler3d_opts; 1046 #endif 1047 1048 #ifdef MODE_julia 1049 extern ModeHook init_julia; 1050 extern ModeHook draw_julia; 1051 extern ModeHook release_julia; 1052 extern ModeHook refresh_julia; 1053 extern ModeSpecOpt julia_opts; 1054 #endif 1055 1056 #ifdef MODE_kaleid 1057 extern ModeHook init_kaleid; 1058 extern ModeHook draw_kaleid; 1059 extern ModeHook release_kaleid; 1060 extern ModeHook refresh_kaleid; 1061 extern ModeSpecOpt kaleid_opts; 1062 #endif 1063 1064 #ifdef MODE_kaleid2 1065 extern ModeHook init_kaleid2; 1066 extern ModeHook draw_kaleid2; 1067 extern ModeHook release_kaleid2; 1068 extern ModeHook refresh_kaleid2; 1069 extern ModeSpecOpt kaleid2_opts; 1070 #endif 1071 1072 #ifdef MODE_kumppa 1073 extern ModeHook init_kumppa; 1074 extern ModeHook draw_kumppa; 1075 extern ModeHook release_kumppa; 1076 extern ModeSpecOpt kumppa_opts; 1077 #endif 1078 1079 #ifdef MODE_lament 1080 extern ModeHook init_lament; 1081 extern ModeHook draw_lament; 1082 extern ModeHook release_lament; 1083 extern ModeHook change_lament; 1084 extern ModeSpecOpt lament_opts; 1085 #endif 1086 1087 #ifdef MODE_laser 1088 extern ModeHook init_laser; 1089 extern ModeHook draw_laser; 1090 extern ModeHook release_laser; 1091 extern ModeHook refresh_laser; 1092 extern ModeHook free_laser; 1093 extern ModeSpecOpt laser_opts; 1094 #endif 1095 1096 #ifdef MODE_life 1097 extern ModeHook init_life; 1098 extern ModeHook draw_life; 1099 extern ModeHook release_life; 1100 extern ModeHook refresh_life; 1101 extern ModeHook change_life; 1102 extern ModeHook free_life; 1103 extern ModeSpecOpt life_opts; 1104 #endif 1105 1106 #ifdef MODE_life1d 1107 extern ModeHook init_life1d; 1108 extern ModeHook draw_life1d; 1109 extern ModeHook release_life1d; 1110 extern ModeHook refresh_life1d; 1111 extern ModeHook free_life1d; 1112 extern ModeSpecOpt life1d_opts; 1113 #endif 1114 1115 #ifdef MODE_life3d 1116 extern ModeHook init_life3d; 1117 extern ModeHook draw_life3d; 1118 extern ModeHook release_life3d; 1119 extern ModeHook refresh_life3d; 1120 extern ModeHook change_life3d; 1121 extern ModeHook free_life3d; 1122 extern ModeSpecOpt life3d_opts; 1123 #endif 1124 1125 #ifdef MODE_lightning 1126 extern ModeHook init_lightning; 1127 extern ModeHook draw_lightning; 1128 extern ModeHook release_lightning; 1129 extern ModeSpecOpt lightning_opts; 1130 #endif 1131 1132 #ifdef MODE_lisa 1133 extern ModeHook init_lisa; 1134 extern ModeHook draw_lisa; 1135 extern ModeHook release_lisa; 1136 extern ModeHook refresh_lisa; 1137 extern ModeHook change_lisa; 1138 extern ModeSpecOpt lisa_opts; 1139 #endif 1140 1141 #ifdef MODE_lissie 1142 extern ModeHook init_lissie; 1143 extern ModeHook draw_lissie; 1144 extern ModeHook release_lissie; 1145 extern ModeHook refresh_lissie; 1146 extern ModeSpecOpt lissie_opts; 1147 #endif 1148 1149 #ifdef MODE_loop 1150 extern ModeHook init_loop; 1151 extern ModeHook draw_loop; 1152 extern ModeHook release_loop; 1153 extern ModeHook refresh_loop; 1154 extern ModeSpecOpt loop_opts; 1155 #endif 1156 1157 #ifdef MODE_lyapunov 1158 extern ModeHook init_lyapunov; 1159 extern ModeHook draw_lyapunov; 1160 extern ModeHook release_lyapunov; 1161 extern ModeHook refresh_lyapunov; 1162 extern ModeSpecOpt lyapunov_opts; 1163 #endif 1164 1165 #ifdef MODE_mandelbrot 1166 extern ModeHook init_mandelbrot; 1167 extern ModeHook draw_mandelbrot; 1168 extern ModeHook release_mandelbrot; 1169 extern ModeHook refresh_mandelbrot; 1170 extern ModeSpecOpt mandelbrot_opts; 1171 #endif 1172 1173 #ifdef MODE_marquee 1174 extern ModeHook init_marquee; 1175 extern ModeHook draw_marquee; 1176 extern ModeHook release_marquee; 1177 extern ModeSpecOpt marquee_opts; 1178 #endif 1179 1180 #ifdef MODE_matrix 1181 extern ModeHook init_matrix; 1182 extern ModeHook draw_matrix; 1183 extern ModeHook release_matrix; 1184 extern ModeHook refresh_matrix; 1185 extern ModeHook change_matrix; 1186 extern ModeSpecOpt matrix_opts; 1187 #endif 1188 1189 #ifdef MODE_maze 1190 extern ModeHook init_maze; 1191 extern ModeHook draw_maze; 1192 extern ModeHook release_maze; 1193 extern ModeHook refresh_maze; 1194 extern ModeSpecOpt maze_opts; 1195 #endif 1196 1197 #ifdef MODE_maze3d 1198 extern ModeHook init_maze3d; 1199 extern ModeHook draw_maze3d; 1200 extern ModeHook release_maze3d; 1201 extern ModeSpecOpt maze3d_opts; 1202 #endif 1203 1204 #ifdef MODE_moebius 1205 extern ModeHook init_moebius; 1206 extern ModeHook draw_moebius; 1207 extern ModeHook release_moebius; 1208 extern ModeHook change_moebius; 1209 extern ModeSpecOpt moebius_opts; 1210 #endif 1211 1212 #ifdef MODE_molecule 1213 extern ModeHook init_molecule; 1214 extern ModeHook draw_molecule; 1215 extern ModeHook release_molecule; 1216 extern ModeSpecOpt molecule_opts; 1217 #endif 1218 1219 #ifdef MODE_morph3d 1220 extern ModeHook init_morph3d; 1221 extern ModeHook draw_morph3d; 1222 extern ModeHook release_morph3d; 1223 extern ModeHook change_morph3d; 1224 extern ModeSpecOpt morph3d_opts; 1225 #endif 1226 1227 #ifdef MODE_mountain 1228 extern ModeHook init_mountain; 1229 extern ModeHook draw_mountain; 1230 extern ModeHook release_mountain; 1231 extern ModeHook refresh_mountain; 1232 extern ModeSpecOpt mountain_opts; 1233 #endif 1234 1235 #ifdef MODE_munch 1236 extern ModeHook init_munch; 1237 extern ModeHook draw_munch; 1238 extern ModeHook release_munch; 1239 extern ModeSpecOpt munch_opts; 1240 #endif 1241 1242 #ifdef MODE_noof 1243 extern ModeHook init_noof; 1244 extern ModeHook draw_noof; 1245 extern ModeHook release_noof; 1246 extern ModeSpecOpt noof_opts; 1247 #endif 1248 1249 #ifdef MODE_nose 1250 extern ModeHook init_nose; 1251 extern ModeHook draw_nose; 1252 extern ModeHook release_nose; 1253 extern ModeHook refresh_nose; 1254 extern ModeSpecOpt nose_opts; 1255 #endif 1256 1257 #ifdef MODE_pacman 1258 extern ModeHook init_pacman; 1259 extern ModeHook draw_pacman; 1260 extern ModeHook release_pacman; 1261 extern ModeHook refresh_pacman; 1262 extern ModeHook change_pacman; 1263 extern ModeSpecOpt pacman_opts; 1264 #endif 1265 1266 #ifdef MODE_penrose 1267 extern ModeHook init_penrose; 1268 extern ModeHook draw_penrose; 1269 extern ModeHook release_penrose; 1270 1271 #if 0 1272 extern ModeHook refresh_penrose; /* Needed */ 1273 #endif 1274 extern ModeSpecOpt penrose_opts; 1275 #endif 1276 1277 #ifdef MODE_petal 1278 extern ModeHook init_petal; 1279 extern ModeHook draw_petal; 1280 extern ModeHook release_petal; 1281 extern ModeHook refresh_petal; 1282 extern ModeSpecOpt petal_opts; 1283 #endif 1284 1285 #ifdef MODE_petri 1286 extern ModeHook init_petri; 1287 extern ModeHook draw_petri; 1288 extern ModeHook release_petri; 1289 extern ModeHook refresh_petri; 1290 extern ModeSpecOpt petri_opts; 1291 #endif 1292 1293 #ifdef MODE_pipes 1294 extern ModeHook init_pipes; 1295 extern ModeHook draw_pipes; 1296 extern ModeHook release_pipes; 1297 extern ModeHook refresh_pipes; 1298 extern ModeHook change_pipes; 1299 extern ModeSpecOpt pipes_opts; 1300 #endif 1301 1302 #ifdef MODE_polyominoes 1303 extern ModeHook init_polyominoes; 1304 extern ModeHook draw_polyominoes; 1305 extern ModeHook release_polyominoes; 1306 extern ModeHook refresh_polyominoes; 1307 extern ModeSpecOpt polyominoes_opts; 1308 #endif 1309 1310 #ifdef MODE_puzzle 1311 extern ModeHook init_puzzle; 1312 extern ModeHook draw_puzzle; 1313 extern ModeHook release_puzzle; 1314 1315 #if 0 1316 extern ModeHook refresh_puzzle; /* Needed */ 1317 #endif 1318 extern ModeSpecOpt puzzle_opts; 1319 #endif 1320 1321 #ifdef MODE_pyro 1322 extern ModeHook init_pyro; 1323 extern ModeHook draw_pyro; 1324 extern ModeHook release_pyro; 1325 extern ModeHook refresh_pyro; 1326 extern ModeSpecOpt pyro_opts; 1327 #endif 1328 1329 #ifdef MODE_pyro2 1330 extern ModeHook init_pyro2; 1331 extern ModeHook draw_pyro2; 1332 extern ModeHook release_pyro2; 1333 extern ModeHook refresh_pyro2; 1334 extern ModeSpecOpt pyro2_opts; 1335 #endif 1336 1337 #ifdef MODE_qix 1338 extern ModeHook init_qix; 1339 extern ModeHook draw_qix; 1340 extern ModeHook release_qix; 1341 extern ModeHook refresh_qix; 1342 extern ModeHook free_qix; 1343 extern ModeSpecOpt qix_opts; 1344 #endif 1345 1346 #ifdef MODE_rain 1347 extern ModeHook init_rain; 1348 extern ModeHook draw_rain; 1349 extern ModeHook release_rain; 1350 extern ModeHook refresh_rain; 1351 extern ModeSpecOpt rain_opts; 1352 #endif 1353 1354 #ifdef MODE_roll 1355 extern ModeHook init_roll; 1356 extern ModeHook draw_roll; 1357 extern ModeHook release_roll; 1358 extern ModeHook refresh_roll; 1359 extern ModeSpecOpt roll_opts; 1360 #endif 1361 1362 #ifdef MODE_rotor 1363 extern ModeHook init_rotor; 1364 extern ModeHook draw_rotor; 1365 extern ModeHook release_rotor; 1366 extern ModeHook refresh_rotor; 1367 extern ModeSpecOpt rotor_opts; 1368 #endif 1369 1370 #ifdef MODE_rubik 1371 extern ModeHook init_rubik; 1372 extern ModeHook draw_rubik; 1373 extern ModeHook release_rubik; 1374 extern ModeHook change_rubik; 1375 extern ModeSpecOpt rubik_opts; 1376 #endif 1377 1378 #ifdef MODE_sballs 1379 extern ModeHook init_sballs; 1380 extern ModeHook draw_sballs; 1381 extern ModeHook release_sballs; 1382 extern ModeHook refresh_sballs; 1383 extern ModeHook change_sballs; 1384 extern ModeSpecOpt sballs_opts; 1385 #endif 1386 1387 #ifdef MODE_scooter 1388 extern ModeHook init_scooter; 1389 extern ModeHook draw_scooter; 1390 extern ModeHook release_scooter; 1391 extern ModeHook refresh_scooter; 1392 extern ModeHook change_scooter; 1393 extern ModeSpecOpt scooter_opts; 1394 #endif 1395 1396 #ifdef MODE_shape 1397 extern ModeHook init_shape; 1398 extern ModeHook draw_shape; 1399 extern ModeHook release_shape; 1400 extern ModeHook refresh_shape; 1401 extern ModeSpecOpt shape_opts; 1402 #endif 1403 1404 #ifdef MODE_sierpinski 1405 extern ModeHook init_sierpinski; 1406 extern ModeHook draw_sierpinski; 1407 extern ModeHook release_sierpinski; 1408 extern ModeHook refresh_sierpinski; 1409 extern ModeSpecOpt sierpinski_opts; 1410 #endif 1411 1412 #ifdef MODE_sierpinski3d 1413 extern ModeHook init_gasket; 1414 extern ModeHook draw_gasket; 1415 extern ModeHook release_gasket; 1416 extern ModeSpecOpt gasket_opts; 1417 #endif 1418 1419 #ifdef MODE_skewb 1420 extern ModeHook init_skewb; 1421 extern ModeHook draw_skewb; 1422 extern ModeHook release_skewb; 1423 extern ModeHook change_skewb; 1424 extern ModeSpecOpt skewb_opts; 1425 #endif 1426 1427 #ifdef MODE_slip 1428 extern ModeHook init_slip; 1429 extern ModeHook draw_slip; 1430 extern ModeHook release_slip; 1431 1432 #if 0 1433 extern ModeHook refresh_slip; /* Probably not practical */ 1434 #endif 1435 extern ModeSpecOpt slip_opts; 1436 #endif 1437 1438 #ifdef MODE_solitaire 1439 extern ModeHook init_solitaire; 1440 extern ModeHook draw_solitaire; 1441 extern ModeHook release_solitaire; 1442 extern ModeHook refresh_solitaire; 1443 extern ModeSpecOpt solitaire_opts; 1444 #endif 1445 1446 #ifdef MODE_space 1447 extern ModeHook init_space; 1448 extern ModeHook draw_space; 1449 extern ModeHook release_space; 1450 extern ModeSpecOpt space_opts; 1451 #endif 1452 1453 #ifdef MODE_sphere 1454 extern ModeHook init_sphere; 1455 extern ModeHook draw_sphere; 1456 extern ModeHook release_sphere; 1457 extern ModeHook refresh_sphere; 1458 extern ModeSpecOpt sphere_opts; 1459 #endif 1460 1461 #ifdef MODE_spiral 1462 extern ModeHook init_spiral; 1463 extern ModeHook draw_spiral; 1464 extern ModeHook release_spiral; 1465 extern ModeHook refresh_spiral; 1466 extern ModeSpecOpt spiral_opts; 1467 #endif 1468 1469 #ifdef MODE_spline 1470 extern ModeHook init_spline; 1471 extern ModeHook draw_spline; 1472 extern ModeHook release_spline; 1473 extern ModeHook refresh_spline; 1474 extern ModeSpecOpt spline_opts; 1475 #endif 1476 1477 #ifdef MODE_sproingies 1478 extern ModeHook init_sproingies; 1479 extern ModeHook draw_sproingies; 1480 extern ModeHook release_sproingies; 1481 extern ModeSpecOpt sproingies_opts; 1482 #endif 1483 1484 #ifdef MODE_stairs 1485 extern ModeHook init_stairs; 1486 extern ModeHook draw_stairs; 1487 extern ModeHook release_stairs; 1488 extern ModeHook refresh_stairs; 1489 extern ModeHook change_stairs; 1490 extern ModeSpecOpt stairs_opts; 1491 #endif 1492 1493 #ifdef MODE_star 1494 extern ModeHook init_star; 1495 extern ModeHook draw_star; 1496 extern ModeHook release_star; 1497 extern ModeHook refresh_star; 1498 extern ModeSpecOpt star_opts; 1499 #endif 1500 1501 #ifdef MODE_starfish 1502 extern ModeHook init_starfish; 1503 extern ModeHook draw_starfish; 1504 extern ModeHook release_starfish; 1505 extern ModeSpecOpt starfish_opts; 1506 #endif 1507 1508 #ifdef MODE_strange 1509 extern ModeHook init_strange; 1510 extern ModeHook draw_strange; 1511 extern ModeHook release_strange; 1512 extern ModeSpecOpt strange_opts; 1513 #endif 1514 1515 #ifdef MODE_superquadrics 1516 extern ModeHook init_superquadrics; 1517 extern ModeHook draw_superquadrics; 1518 extern ModeHook release_superquadrics; 1519 extern ModeSpecOpt superquadrics_opts; 1520 #endif 1521 1522 #ifdef MODE_swarm 1523 extern ModeHook init_swarm; 1524 extern ModeHook draw_swarm; 1525 extern ModeHook release_swarm; 1526 extern ModeHook refresh_swarm; 1527 extern ModeSpecOpt swarm_opts; 1528 #endif 1529 1530 #ifdef MODE_swirl 1531 extern ModeHook init_swirl; 1532 extern ModeHook draw_swirl; 1533 extern ModeHook release_swirl; 1534 extern ModeHook refresh_swirl; 1535 extern ModeSpecOpt swirl_opts; 1536 #endif 1537 1538 #ifdef MODE_t3d 1539 extern ModeHook init_t3d; 1540 extern ModeHook draw_t3d; 1541 extern ModeHook release_t3d; 1542 extern ModeHook refresh_t3d; 1543 extern ModeSpecOpt t3d_opts; 1544 #endif 1545 1546 #ifdef MODE_tetris 1547 extern ModeHook init_tetris; 1548 extern ModeHook draw_tetris; 1549 extern ModeHook release_tetris; 1550 extern ModeHook refresh_tetris; 1551 extern ModeHook change_tetris; 1552 extern ModeSpecOpt tetris_opts; 1553 #endif 1554 1555 #ifdef MODE_text3d 1556 extern ModeHook init_text3d; 1557 extern ModeHook draw_text3d; 1558 extern ModeHook release_text3d; 1559 extern ModeHook refresh_text3d; 1560 extern ModeHook change_text3d; 1561 extern ModeSpecOpt text3d_opts; 1562 #endif 1563 1564 #ifdef MODE_text3d2 1565 extern ModeHook init_text3d2; 1566 extern ModeHook draw_text3d2; 1567 extern ModeHook release_text3d2; 1568 extern ModeHook refresh_text3d2; 1569 extern ModeHook change_text3d2; 1570 extern ModeSpecOpt text3d2_opts; 1571 #endif 1572 1573 #ifdef MODE_thornbird 1574 extern ModeHook init_thornbird; 1575 extern ModeHook draw_thornbird; 1576 extern ModeHook release_thornbird; 1577 extern ModeHook refresh_thornbird; 1578 extern ModeHook change_thornbird; 1579 extern ModeSpecOpt thornbird_opts; 1580 #endif 1581 1582 #ifdef MODE_tik_tak 1583 extern ModeHook init_tik_tak; 1584 extern ModeHook draw_tik_tak; 1585 extern ModeHook release_tik_tak; 1586 extern ModeHook refresh_tik_tak; 1587 extern ModeSpecOpt tik_tak_opts; 1588 #endif 1589 1590 #ifdef MODE_toneclock 1591 extern ModeHook init_toneclock; 1592 extern ModeHook draw_toneclock; 1593 extern ModeHook release_toneclock; 1594 extern ModeHook refresh_toneclock; 1595 extern ModeSpecOpt toneclock_opts; 1596 #endif 1597 1598 #ifdef MODE_triangle 1599 extern ModeHook init_triangle; 1600 extern ModeHook draw_triangle; 1601 extern ModeHook release_triangle; 1602 extern ModeHook refresh_triangle; 1603 extern ModeSpecOpt triangle_opts; 1604 #endif 1605 1606 #ifdef MODE_tube 1607 extern ModeHook init_tube; 1608 extern ModeHook draw_tube; 1609 extern ModeHook release_tube; 1610 extern ModeHook refresh_tube; 1611 extern ModeSpecOpt tube_opts; 1612 #endif 1613 1614 #ifdef MODE_turtle 1615 extern ModeHook init_turtle; 1616 extern ModeHook draw_turtle; 1617 extern ModeHook release_turtle; 1618 extern ModeHook refresh_turtle; 1619 extern ModeSpecOpt turtle_opts; 1620 #endif 1621 1622 #ifdef MODE_vines 1623 extern ModeHook init_vines; 1624 extern ModeHook draw_vines; 1625 extern ModeHook release_vines; 1626 extern ModeHook refresh_vines; 1627 extern ModeSpecOpt vines_opts; 1628 #endif 1629 1630 #ifdef MODE_voters 1631 extern ModeHook init_voters; 1632 extern ModeHook draw_voters; 1633 extern ModeHook release_voters; 1634 extern ModeHook refresh_voters; 1635 extern ModeSpecOpt voters_opts; 1636 #endif 1637 1638 #ifdef MODE_wator 1639 extern ModeHook init_wator; 1640 extern ModeHook draw_wator; 1641 extern ModeHook release_wator; 1642 extern ModeHook refresh_wator; 1643 extern ModeSpecOpt wator_opts; 1644 #endif 1645 1646 #ifdef MODE_wire 1647 extern ModeHook init_wire; 1648 extern ModeHook draw_wire; 1649 extern ModeHook release_wire; 1650 extern ModeHook refresh_wire; 1651 extern ModeSpecOpt wire_opts; 1652 #endif 1653 1654 #ifdef MODE_world 1655 extern ModeHook init_world; 1656 extern ModeHook draw_world; 1657 extern ModeHook release_world; 1658 extern ModeHook refresh_world; 1659 extern ModeSpecOpt world_opts; 1660 #endif 1661 1662 #ifdef MODE_worm 1663 extern ModeHook init_worm; 1664 extern ModeHook draw_worm; 1665 extern ModeHook release_worm; 1666 extern ModeHook refresh_worm; 1667 extern ModeSpecOpt worm_opts; 1668 #endif 1669 1670 #ifdef MODE_xcl 1671 extern ModeHook init_xcl; 1672 extern ModeHook draw_xcl; 1673 extern ModeHook release_xcl; 1674 extern ModeSpecOpt xcl_opts; 1675 #endif 1676 1677 #ifdef MODE_xjack 1678 extern ModeHook init_xjack; 1679 extern ModeHook draw_xjack; 1680 extern ModeHook release_xjack; 1681 extern ModeSpecOpt xjack_opts; 1682 #endif 1683 1684 extern ModeHook init_blank; 1685 extern ModeSpecOpt blank_opts; 1686 1687 #ifdef MODE_run 1688 extern ModeHook init_run; 1689 extern ModeHook release_run; 1690 extern ModeHook free_run; 1691 extern ModeSpecOpt run_opts; 1692 #endif 1693 1694 #ifdef MODE_bomb 1695 extern ModeHook init_bomb; 1696 extern ModeHook draw_bomb; 1697 extern ModeHook release_bomb; 1698 extern ModeHook refresh_bomb; 1699 extern ModeHook change_bomb; 1700 extern ModeSpecOpt bomb_opts; 1701 #endif 1702 1703 extern ModeHook init_random; 1704 extern ModeHook draw_random; 1705 extern ModeHook release_random; 1706 extern ModeHook refresh_random; 1707 extern ModeHook change_random; 1708 extern ModeSpecOpt random_opts; 1709 1710 extern LockStruct LockProcs[]; 1711 1712 #else /* #ifndef USE_MODULES */ 1713 1714 extern void LoadModules(char *); 1715 extern void UnloadModules(); 1716 1717 extern LockStruct *LockProcs; 1718 extern void **LoadedModules; /* save handles on loaded modules for closing */ 1719 1720 #endif 1721 1722 extern int numprocs; 1723 1724 #ifdef __cplusplus 1725 } 1726 #endif 1727 1728 #define MI_INIT(mi, state_array) \ 1729 { \ 1730 mi_init ((mi), sizeof(*(state_array)), (void **)&(state_array)); \ 1731 if (!state_array) \ 1732 return; \ 1733 } 1734 extern void mi_init (ModeInfo *, size_t, void **); 1735 1736 #define XSCREENSAVER_MODULE(CLASS,PREFIX) 1737 1738 #endif /* __XLOCK_MODE_H__ */ 1739