Back to index

kdeartwork  4.3.2
mode.h
Go to the documentation of this file.
00001 
00002 #ifndef __XLOCK_MODE_H__
00003 #define __XLOCK_MODE_H__
00004 
00005 /*-
00006  * @(#)mode.h 4.00 97/01/01 xlockmore
00007  *
00008  * mode.h - mode management for xlock, the X Window System lockscreen.
00009  *
00010  * Copyright (c) 1991 by Patrick J. Naughton.
00011  *
00012  * See xlock.c for copying information.
00013  *
00014  * Revision History:
00015  *
00016  * Changes of David Bagley (bagleyd@bigfoot.com)
00017  * 18-Mar-96: Ron Hitchens <ron@idiom.com>
00018  *            Extensive revision to define new data types for
00019  *            the new mode calling scheme.
00020  * 02-Jun-95: Extracted out of resource.c.
00021  *
00022  */
00023 
00024 /* 
00025  * Declare external interface routines for supported screen savers.
00026  */
00027 
00028 /* -------------------------------------------------------------------- */
00029 
00030 struct LockStruct_s;
00031 struct ModeInfo_s;
00032 
00033 typedef void (ModeHook) (struct ModeInfo_s *);
00034 typedef void (HookProc) (struct LockStruct_s *, struct ModeInfo_s *);
00035 
00036 typedef struct LockStruct_s {
00037        char       *cmdline_arg;    /* mode name */
00038        ModeHook   *init_hook;      /* func to init a mode */
00039        ModeHook   *callback_hook;  /* func to run (tick) a mode */
00040        ModeHook   *release_hook;   /* func to shutdown a mode */
00041        ModeHook   *refresh_hook;   /* tells mode to repaint */
00042        ModeHook   *change_hook;    /* user wants mode to change */
00043        ModeHook   *unused_hook;    /* for future expansion */
00044        ModeSpecOpt *msopt;  /* this mode's def resources */
00045        int         def_delay;      /* default delay for mode */
00046        int         def_batchcount;
00047        int         def_cycles;
00048        int         def_size;
00049        float       def_saturation;
00050        char       *desc;    /* text description of mode */
00051        unsigned int flags;  /* state flags for this mode */
00052        void       *userdata;       /* for use by the mode */
00053 } LockStruct;
00054 
00055 #define LS_FLAG_INITED             1
00056 
00057 typedef struct {
00058        Display    *display; /* handle to X display */
00059        Screen     *screenptr;      /* ptr to screen info */
00060        int         screen;  /* number of current screen */
00061        int         real_screen;    /* for debugging */
00062        int         num_screens;    /* number screens locked */
00063        int         max_screens;    /* max # active screens */
00064        Window      window;  /* handle to current window */
00065        int         win_width;      /* width of current window */
00066        int         win_height;     /* height of current window */
00067        int         win_depth;      /* depth of current window */
00068        Visual     *visual;  /* visual of current window */
00069        Colormap    colormap;       /* default colormap of current window */
00070        unsigned long black_pixel;  /* pixel value for black */
00071        unsigned long white_pixel;  /* pixel value for white */
00072        unsigned int flags;  /* xlock window flags */
00073        float       delta3d;
00074 } WindowInfo;
00075 
00076 #define WI_FLAG_INFO_INITTED       0x001  /* private state flag */
00077 #define WI_FLAG_ICONIC             0x002
00078 #define WI_FLAG_MONO        0x004
00079 #define WI_FLAG_INWINDOW    0x008
00080 #define WI_FLAG_INROOT             0x010
00081 #define WI_FLAG_NOLOCK      0x020
00082 #define WI_FLAG_INSTALL            0x040
00083 #define WI_FLAG_DEBUG              0x080
00084 #define WI_FLAG_USE3D              0x100
00085 #define WI_FLAG_VERBOSE            0x200
00086 #define WI_FLAG_FULLRANDOM         0x400
00087 #define WI_FLAG_WIREFRAME          0x800
00088 #define WI_FLAG_JUST_INITTED       0x1000 /* private state flag */
00089 
00090 typedef struct {
00091        long        pause;   /* output, set by mode */
00092        long        delay;   /* inputs, current settings */
00093        long        batchcount;
00094        long        cycles;
00095        long        size;
00096        float       saturation;
00097 } RunInfo;
00098 
00099 typedef struct ModeInfo_s {
00100        WindowInfo  windowinfo;
00101        perscreen  *screeninfo;
00102        RunInfo     runinfo;
00103        struct LockStruct_s *lockstruct;
00104 } ModeInfo;
00105 
00106 /* -------------------------------------------------------------------- */
00107 
00108 /* 
00109  * These are the public interfaces that a mode should use to obtain
00110  * information about the display and other environmental parameters.
00111  * Everything hangs off a ModeInfo pointer.  A mode should NOT cache
00112  * a ModeInfo pointer, the struct it points to is volatile.  The mode
00113  * can safely make a copy of the data it points to, however.  But it
00114  * is recommended the mode make use of the passed-in pointer and pass
00115  * it along to functions it calls.
00116  * Use these macros, don't look at the fields directly.  The insides
00117  * of the ModeInfo struct are certain to change in the future.
00118  */
00119 
00120 #define MODE_IS_INITED(ls)  ((ls)->flags & LS_FLAG_INITED)
00121 #define MODE_NOT_INITED(ls) ( ! MODE_IS_INITED(ls))
00122 
00123 #define MI_DISPLAY(mi)             ((mi)->windowinfo.display)
00124 #define MI_SCREEN(mi)              ((mi)->windowinfo.screen)
00125 #define MI_SCREENPTR(mi)      ((mi)->windowinfo.screenptr)
00126 #define MI_REAL_SCREEN(mi)  ((mi)->windowinfo.real_screen)
00127 #define MI_NUM_SCREENS(mi)  ((mi)->windowinfo.num_screens)
00128 #define MI_MAX_SCREENS(mi)  ((mi)->windowinfo.max_screens)
00129 #define MI_WINDOW(mi)              ((mi)->windowinfo.window)
00130 #define MI_WIN_WIDTH(mi)    ((mi)->windowinfo.win_width)
00131 #define MI_WIN_HEIGHT(mi)   ((mi)->windowinfo.win_height)
00132 #define MI_WIN_DEPTH(mi)    ((mi)->windowinfo.win_depth)
00133 #define MI_VISUAL(mi)       ((mi)->windowinfo.visual)
00134 #define MI_COLORMAP(mi)     ((mi)->windowinfo.colormap)
00135 #define MI_WIN_BLACK_PIXEL(mi)     ((mi)->windowinfo.black_pixel)
00136 #define MI_WIN_WHITE_PIXEL(mi)     ((mi)->windowinfo.white_pixel)
00137 #define MI_DELTA3D(mi)      ((mi)->windowinfo.delta3d)
00138 #define MI_WIN_FLAGS(mi)    ((mi)->windowinfo.flags)
00139 #define MI_WIN_SET_FLAG_STATE(mi,f,bool) ((mi)->windowinfo.flags = \
00140                                    (bool) ? (mi)->windowinfo.flags | f \
00141                                    : (mi)->windowinfo.flags & ~(f))
00142 #define MI_WIN_FLAG_IS_SET(mi,f) ((mi)->windowinfo.flags & f)
00143 #define MI_WIN_FLAG_NOT_SET(mi,f) ( ! MI_WIN_FLAG_IS_SET(mi,f))
00144 #define MI_WIN_IS_ICONIC(mi)       (MI_WIN_FLAG_IS_SET (mi, WI_FLAG_ICONIC))
00145 #define MI_WIN_IS_MONO(mi)  (MI_WIN_FLAG_IS_SET (mi, WI_FLAG_MONO))
00146 #define MI_WIN_IS_INWINDOW(mi)     (MI_WIN_FLAG_IS_SET (mi, WI_FLAG_INWINDOW))
00147 #define MI_WIN_IS_INROOT(mi)       (MI_WIN_FLAG_IS_SET (mi, WI_FLAG_INROOT))
00148 #define MI_WIN_IS_NOLOCK(mi)       (MI_WIN_FLAG_IS_SET (mi, WI_FLAG_NOLOCK))
00149 #define MI_WIN_IS_INSTALL(mi)      (MI_WIN_FLAG_IS_SET (mi, WI_FLAG_INSTALL))
00150 #define MI_WIN_IS_DEBUG(mi) (MI_WIN_FLAG_IS_SET (mi, WI_FLAG_DEBUG))
00151 #define MI_WIN_IS_USE3D(mi) (MI_WIN_FLAG_IS_SET (mi, WI_FLAG_USE3D))
00152 #define MI_WIN_IS_VERBOSE(mi)      (MI_WIN_FLAG_IS_SET (mi, WI_FLAG_VERBOSE))
00153 #define MI_WIN_IS_FULLRANDOM(mi) (MI_WIN_FLAG_IS_SET (mi, WI_FLAG_FULLRANDOM))
00154 #define MI_WIN_IS_WIREFRAME(mi)    (MI_WIN_FLAG_IS_SET (mi, WI_FLAG_WIREFRAME))
00155 
00156 #define MI_PERSCREEN(mi)    ((mi)->screeninfo)
00157 #define MI_GC(mi)           ((mi)->screeninfo->gc)
00158 #define MI_NPIXELS(mi)             ((mi)->screeninfo->npixels)
00159 #define MI_CMAP(mi)         ((mi)->screeninfo->cmap)
00160 #define MI_PIXELS(mi)              ((mi)->screeninfo->pixels)
00161 #define MI_PIXEL(mi,n)             ((mi)->screeninfo->pixels[n])
00162 
00163 /* are these of interest to modes? */
00164 #define MI_BG_COLOR(mi)            ((mi)->screeninfo->bgcol)
00165 #define MI_FG_COLOR(mi)            ((mi)->screeninfo->fgcol)
00166 #define MI_NONE_COLOR(mi)   ((mi)->screeninfo->nonecol) /* -install */
00167 #define MI_RIGHT_COLOR(mi)  ((mi)->screeninfo->rightcol)
00168 #define MI_LEFT_COLOR(mi)   ((mi)->screeninfo->leftcol)
00169 
00170 #define MI_PAUSE(mi)        ((mi)->runinfo.pause)
00171 #define MI_DELAY(mi)        ((mi)->runinfo.delay)
00172 #define MI_BATCHCOUNT(mi)   ((mi)->runinfo.batchcount)
00173 #define MI_CYCLES(mi)              ((mi)->runinfo.cycles)
00174 #define MI_SIZE(mi)         ((mi)->runinfo.size)
00175 #define MI_SATURATION(mi)   ((mi)->runinfo.saturation)
00176 
00177 #define MI_LOCKSTRUCT(mi)   ((mi)->lockstruct)
00178 #define MI_DEFDELAY(mi)            ((mi)->lockstruct->def_delay)
00179 #define MI_DEFBATCHCOUNT(mi)       ((mi)->lockstruct->def_batchcount)
00180 #define MI_DEFCYCLES(mi)    ((mi)->lockstruct->def_cycles)
00181 #define MI_DEFSIZE(mi)      ((mi)->lockstruct->def_size)
00182 #define MI_DEFSATURATION(mi)       ((mi)->lockstruct->def_saturation)
00183 
00184 #define MI_NAME(mi)         ((mi)->lockstruct->cmdline_arg)
00185 #define MI_DESC(mi)         ((mi)->lockstruct->desc)
00186 #define MI_USERDATA(mi)            ((mi)->lockstruct->userdata)
00187 
00188 /* -------------------------------------------------------------------- */
00189 
00190 extern HookProc call_init_hook;
00191 extern HookProc call_callback_hook;
00192 extern HookProc call_release_hook;
00193 extern HookProc call_refresh_hook;
00194 extern HookProc call_change_hook;
00195 
00196 extern void set_default_mode(LockStruct *);
00197 extern void release_last_mode(ModeInfo *);
00198 
00199 /* -------------------------------------------------------------------- */
00200 
00201 extern ModeHook init_ant;
00202 extern ModeHook draw_ant;
00203 extern ModeHook release_ant;
00204 extern ModeHook refresh_ant;
00205 extern ModeSpecOpt ant_opts;
00206 
00207 extern ModeHook init_ball;
00208 extern ModeHook draw_ball;
00209 extern ModeHook release_ball;
00210 extern ModeHook refresh_ball;
00211 extern ModeSpecOpt ball_opts;
00212 
00213 extern ModeHook init_bat;
00214 extern ModeHook draw_bat;
00215 extern ModeHook release_bat;
00216 extern ModeHook refresh_bat;
00217 extern ModeSpecOpt bat_opts;
00218 
00219 extern ModeHook init_blot;
00220 extern ModeHook draw_blot;
00221 extern ModeHook release_blot;
00222 extern ModeHook refresh_blot;
00223 extern ModeSpecOpt blot_opts;
00224 
00225 extern ModeHook init_bouboule;
00226 extern ModeHook draw_bouboule;
00227 extern ModeHook release_bouboule;
00228 extern ModeHook refresh_bouboule;
00229 extern ModeSpecOpt bouboule_opts;
00230 
00231 extern ModeHook init_bounce;
00232 extern ModeHook draw_bounce;
00233 extern ModeHook release_bounce;
00234 extern ModeHook refresh_bounce;
00235 extern ModeSpecOpt bounce_opts;
00236 
00237 extern ModeHook init_braid;
00238 extern ModeHook draw_braid;
00239 extern ModeHook release_braid;
00240 extern ModeHook refresh_braid;
00241 extern ModeSpecOpt braid_opts;
00242 
00243 extern ModeHook init_bug;
00244 extern ModeHook draw_bug;
00245 extern ModeHook release_bug;
00246 extern ModeHook refresh_bug;
00247 extern ModeSpecOpt bug_opts;
00248 
00249 extern ModeHook init_clock;
00250 extern ModeHook draw_clock;
00251 extern ModeHook release_clock;
00252 extern ModeHook refresh_clock;
00253 extern ModeSpecOpt clock_opts;
00254 
00255 extern ModeHook init_daisy;
00256 extern ModeHook draw_daisy;
00257 extern ModeHook release_daisy;
00258 extern ModeHook refresh_daisy;
00259 extern ModeSpecOpt daisy_opts;
00260 
00261 extern ModeHook init_dclock;
00262 extern ModeHook draw_dclock;
00263 extern ModeHook release_dclock;
00264 extern ModeHook refresh_dclock;
00265 extern ModeSpecOpt dclock_opts;
00266 
00267 extern ModeHook init_demon;
00268 extern ModeHook draw_demon;
00269 extern ModeHook release_demon;
00270 extern ModeHook refresh_demon;
00271 extern ModeSpecOpt demon_opts;
00272 
00273 extern ModeHook init_drift;
00274 extern ModeHook draw_drift;
00275 extern ModeHook release_drift;
00276 extern ModeHook refresh_drift;
00277 extern ModeSpecOpt drift_opts;
00278 
00279 extern ModeHook init_eyes;
00280 extern ModeHook draw_eyes;
00281 extern ModeHook release_eyes;
00282 extern ModeHook refresh_eyes;
00283 extern ModeSpecOpt eyes_opts;
00284 
00285 extern ModeHook init_flag;
00286 extern ModeHook draw_flag;
00287 extern ModeHook release_flag;
00288 extern ModeHook refresh_flag;
00289 extern ModeSpecOpt flag_opts;
00290 
00291 extern ModeHook init_flame;
00292 extern ModeHook draw_flame;
00293 extern ModeHook release_flame;
00294 extern ModeHook refresh_flame;
00295 extern ModeSpecOpt flame_opts;
00296 
00297 extern ModeHook init_forest;
00298 extern ModeHook draw_forest;
00299 extern ModeHook release_forest;
00300 extern ModeHook refresh_forest;
00301 extern ModeHook refresh_forest;
00302 extern ModeSpecOpt forest_opts;
00303 
00304 extern ModeHook init_fract;
00305 extern ModeHook draw_fract;
00306 extern ModeHook release_fract;
00307 extern ModeHook refresh_fract;
00308 extern ModeSpecOpt fract_opts;
00309 
00310 extern ModeHook init_galaxy;
00311 extern ModeHook draw_galaxy;
00312 extern ModeHook release_galaxy;
00313 extern ModeHook refresh_galaxy;
00314 extern ModeSpecOpt galaxy_opts;
00315 
00316 extern ModeHook init_geometry;
00317 extern ModeHook draw_geometry;
00318 extern ModeHook release_geometry;
00319 extern ModeHook refresh_geometry;
00320 extern ModeSpecOpt geometry_opts;
00321 
00322 extern ModeHook init_grav;
00323 extern ModeHook draw_grav;
00324 extern ModeHook release_grav;
00325 extern ModeHook refresh_grav;
00326 extern ModeSpecOpt grav_opts;
00327 
00328 extern ModeHook init_helix;
00329 extern ModeHook draw_helix;
00330 extern ModeHook release_helix;
00331 extern ModeHook refresh_helix;
00332 extern ModeSpecOpt helix_opts;
00333 
00334 extern ModeHook init_hop;
00335 extern ModeHook draw_hop;
00336 extern ModeHook release_hop;
00337 extern ModeHook refresh_hop;
00338 extern ModeSpecOpt hop_opts;
00339 
00340 extern ModeHook init_hyper;
00341 extern ModeHook draw_hyper;
00342 extern ModeHook release_hyper;
00343 extern ModeHook refresh_hyper;
00344 extern ModeSpecOpt hyper_opts;
00345 
00346 extern ModeHook init_ico;
00347 extern ModeHook draw_ico;
00348 extern ModeHook release_ico;
00349 extern ModeHook refresh_ico;
00350 extern ModeHook change_ico;
00351 extern ModeSpecOpt ico_opts;
00352 
00353 extern ModeHook init_ifs;
00354 extern ModeHook draw_ifs;
00355 extern ModeHook release_ifs;
00356 extern ModeSpecOpt ifs_opts;
00357 
00358 extern ModeHook init_image;
00359 extern ModeHook draw_image;
00360 extern ModeHook release_image;
00361 extern ModeHook refresh_image;
00362 extern ModeSpecOpt image_opts;
00363 
00364 extern ModeHook init_julia;
00365 extern ModeHook draw_julia;
00366 extern ModeHook release_julia;
00367 extern ModeHook refresh_julia;
00368 extern ModeSpecOpt julia_opts;
00369 
00370 extern ModeHook init_kaleid;
00371 extern ModeHook draw_kaleid;
00372 extern ModeHook release_kaleid;
00373 extern ModeHook refresh_kaleid;
00374 extern ModeSpecOpt kaleid_opts;
00375 
00376 extern ModeHook init_laser;
00377 extern ModeHook draw_laser;
00378 extern ModeHook release_laser;
00379 extern ModeHook refresh_laser;
00380 extern ModeSpecOpt laser_opts;
00381 
00382 extern ModeHook init_life;
00383 extern ModeHook draw_life;
00384 extern ModeHook release_life;
00385 extern ModeHook refresh_life;
00386 extern ModeHook change_life;
00387 extern ModeSpecOpt life_opts;
00388 
00389 extern ModeHook init_life1d;
00390 extern ModeHook draw_life1d;
00391 extern ModeHook release_life1d;
00392 extern ModeHook refresh_life1d;
00393 extern ModeSpecOpt life1d_opts;
00394 
00395 extern ModeHook init_life3d;
00396 extern ModeHook draw_life3d;
00397 extern ModeHook release_life3d;
00398 extern ModeHook refresh_life3d;
00399 extern ModeHook change_life3d;
00400 extern ModeSpecOpt life3d_opts;
00401 
00402 extern ModeHook init_lightning;
00403 extern ModeHook draw_lightning;
00404 extern ModeHook release_lightning;
00405 extern ModeHook refresh_lightning;
00406 extern ModeSpecOpt lightning_opts;
00407 
00408 extern ModeHook init_lisa;
00409 extern ModeHook draw_lisa;
00410 extern ModeHook release_lisa;
00411 extern ModeHook refresh_lisa;
00412 extern ModeHook change_lisa;
00413 extern ModeSpecOpt lisa_opts;
00414 
00415 extern ModeHook init_lissie;
00416 extern ModeHook draw_lissie;
00417 extern ModeHook release_lissie;
00418 extern ModeHook refresh_lissie;
00419 extern ModeSpecOpt lissie_opts;
00420 
00421 extern ModeHook init_loop;
00422 extern ModeHook draw_loop;
00423 extern ModeHook release_loop;
00424 extern ModeHook refresh_loop;
00425 extern ModeSpecOpt loop_opts;
00426 
00427 extern ModeHook init_marquee;
00428 extern ModeHook draw_marquee;
00429 extern ModeHook release_marquee;
00430 extern ModeHook refresh_marquee;
00431 extern ModeSpecOpt marquee_opts;
00432 
00433 extern ModeHook init_maze;
00434 extern ModeHook draw_maze;
00435 extern ModeHook release_maze;
00436 extern ModeHook refresh_maze;
00437 extern ModeSpecOpt maze_opts;
00438 
00439 extern ModeHook init_mountain;
00440 extern ModeHook draw_mountain;
00441 extern ModeHook release_mountain;
00442 extern ModeHook refresh_mountain;
00443 extern ModeSpecOpt mountain_opts;
00444 
00445 extern ModeHook init_nose;
00446 extern ModeHook draw_nose;
00447 extern ModeHook release_nose;
00448 extern ModeHook refresh_nose;
00449 extern ModeSpecOpt nose_opts;
00450 
00451 extern ModeHook init_pacman;
00452 extern ModeHook draw_pacman;
00453 extern ModeHook release_pacman;
00454 extern ModeHook refresh_pacman;
00455 extern ModeSpecOpt pacman_opts;
00456 
00457 extern ModeHook init_penrose;
00458 extern ModeHook draw_penrose;
00459 extern ModeHook release_penrose;
00460 
00461 #if 0
00462 extern ModeHook refresh_penrose;   /* Needed */
00463 
00464 #endif
00465 extern ModeSpecOpt penrose_opts;
00466 
00467 extern ModeHook init_petal;
00468 extern ModeHook draw_petal;
00469 extern ModeHook release_petal;
00470 extern ModeHook refresh_petal;
00471 extern ModeSpecOpt petal_opts;
00472 
00473 extern ModeHook init_puzzle;
00474 extern ModeHook draw_puzzle;
00475 extern ModeHook release_puzzle;
00476 
00477 #if 0
00478 extern ModeHook refresh_puzzle;    /* Needed */
00479 
00480 #endif
00481 extern ModeSpecOpt puzzle_opts;
00482 
00483 extern ModeHook init_pyro;
00484 extern ModeHook draw_pyro;
00485 extern ModeHook release_pyro;
00486 extern ModeHook refresh_pyro;
00487 extern ModeSpecOpt pyro_opts;
00488 
00489 extern ModeHook init_qix;
00490 extern ModeHook draw_qix;
00491 extern ModeHook release_qix;
00492 extern ModeHook refresh_qix;
00493 extern ModeSpecOpt qix_opts;
00494 
00495 extern ModeHook init_roll;
00496 extern ModeHook draw_roll;
00497 extern ModeHook release_roll;
00498 extern ModeHook refresh_roll;
00499 extern ModeSpecOpt roll_opts;
00500 
00501 extern ModeHook init_rotor;
00502 extern ModeHook draw_rotor;
00503 extern ModeHook release_rotor;
00504 extern ModeHook refresh_rotor;
00505 extern ModeSpecOpt rotor_opts;
00506 
00507 extern ModeHook init_shape;
00508 extern ModeHook draw_shape;
00509 extern ModeHook release_shape;
00510 extern ModeHook refresh_shape;
00511 extern ModeSpecOpt shape_opts;
00512 
00513 extern ModeHook init_slip;
00514 extern ModeHook draw_slip;
00515 extern ModeHook release_slip;
00516 
00517 #if 0
00518 extern ModeHook refresh_slip;      /* Probably not practical */
00519 
00520 #endif
00521 extern ModeSpecOpt slip_opts;
00522 
00523 extern ModeHook init_sphere;
00524 extern ModeHook draw_sphere;
00525 extern ModeHook release_sphere;
00526 extern ModeHook refresh_sphere;
00527 extern ModeSpecOpt sphere_opts;
00528 
00529 extern ModeHook init_spiral;
00530 extern ModeHook draw_spiral;
00531 extern ModeHook release_spiral;
00532 extern ModeHook refresh_spiral;
00533 extern ModeSpecOpt spiral_opts;
00534 
00535 extern ModeHook init_spline;
00536 extern ModeHook draw_spline;
00537 extern ModeHook release_spline;
00538 extern ModeHook refresh_spline;
00539 extern ModeSpecOpt spline_opts;
00540 
00541 extern ModeHook init_star;
00542 extern ModeHook draw_star;
00543 extern ModeHook release_star;
00544 extern ModeHook refresh_star;
00545 extern ModeSpecOpt star_opts;
00546 
00547 extern ModeHook init_strange;
00548 extern ModeHook draw_strange;
00549 extern ModeHook release_strange;
00550 extern ModeSpecOpt strange_opts;
00551 
00552 extern ModeHook init_swarm;
00553 extern ModeHook draw_swarm;
00554 extern ModeHook release_swarm;
00555 extern ModeHook refresh_swarm;
00556 extern ModeSpecOpt swarm_opts;
00557 
00558 extern ModeHook init_swirl;
00559 extern ModeHook draw_swirl;
00560 extern ModeHook release_swirl;
00561 extern ModeHook refresh_swirl;
00562 extern ModeSpecOpt swirl_opts;
00563 
00564 extern ModeHook init_tri;
00565 extern ModeHook draw_tri;
00566 extern ModeHook release_tri;
00567 extern ModeHook refresh_tri;
00568 extern ModeSpecOpt tri_opts;
00569 
00570 extern ModeHook init_triangle;
00571 extern ModeHook draw_triangle;
00572 extern ModeHook release_triangle;
00573 extern ModeHook refresh_triangle;
00574 extern ModeSpecOpt triangle_opts;
00575 
00576 extern ModeHook init_tube;
00577 extern ModeHook draw_tube;
00578 extern ModeHook release_tube;
00579 extern ModeHook refresh_tube;
00580 extern ModeSpecOpt tube_opts;
00581 
00582 extern ModeHook init_turtle;
00583 extern ModeHook draw_turtle;
00584 extern ModeHook release_turtle;
00585 extern ModeHook refresh_turtle;
00586 extern ModeSpecOpt turtle_opts;
00587 
00588 extern ModeHook init_wator;
00589 extern ModeHook draw_wator;
00590 extern ModeHook release_wator;
00591 extern ModeHook refresh_wator;
00592 extern ModeSpecOpt wator_opts;
00593 
00594 extern ModeHook init_wire;
00595 extern ModeHook draw_wire;
00596 extern ModeHook release_wire;
00597 extern ModeHook refresh_wire;
00598 extern ModeSpecOpt wire_opts;
00599 
00600 extern ModeHook init_world;
00601 extern ModeHook draw_world;
00602 extern ModeHook release_world;
00603 extern ModeHook refresh_world;
00604 extern ModeSpecOpt world_opts;
00605 
00606 extern ModeHook init_worm;
00607 extern ModeHook draw_worm;
00608 extern ModeHook release_worm;
00609 extern ModeHook refresh_worm;
00610 extern ModeSpecOpt worm_opts;
00611 
00612 #if defined( USE_XPM ) || defined( USE_XPMINC )
00613 extern ModeHook init_cartoon;
00614 extern ModeHook draw_cartoon;
00615 extern ModeHook release_cartoon;
00616 extern ModeSpecOpt cartoon_opts;
00617 
00618 #endif
00619 
00620 #ifdef USE_GL
00621 extern ModeHook init_gears;
00622 extern ModeHook draw_gears;
00623 extern ModeHook release_gears;
00624 extern ModeSpecOpt gears_opts;
00625 
00626 extern ModeHook init_morph3d;
00627 extern ModeHook draw_morph3d;
00628 extern ModeHook release_morph3d;
00629 extern ModeHook change_morph3d;
00630 extern ModeSpecOpt morph3d_opts;
00631 
00632 extern ModeHook init_pipes;
00633 extern ModeHook draw_pipes;
00634 extern ModeHook release_pipes;
00635 extern ModeHook refresh_pipes;
00636 extern ModeHook change_pipes;
00637 extern ModeSpecOpt pipes_opts;
00638 
00639 extern ModeHook init_superquadrics;
00640 extern ModeHook draw_superquadrics;
00641 extern ModeHook release_superquadrics;
00642 extern ModeHook refresh_superquadrics;
00643 extern ModeSpecOpt superquadrics_opts;
00644 
00645 #ifdef USE_SPROINGIES
00646 extern ModeHook init_sproingies;
00647 extern ModeHook draw_sproingies;
00648 extern ModeHook release_sproingies;
00649 extern ModeHook refresh_sproingies;
00650 extern ModeSpecOpt sproingies_opts;
00651 
00652 #endif
00653 #endif
00654 
00655 #ifdef USE_HACKERS
00656 extern ModeHook init_fadeplot;
00657 extern ModeHook draw_fadeplot;
00658 extern ModeHook release_fadeplot;
00659 extern ModeHook refresh_fadeplot;
00660 extern ModeSpecOpt fadeplot_opts;
00661 
00662 #endif
00663 
00664 extern ModeHook init_blank;
00665 extern ModeHook draw_blank;
00666 extern ModeHook release_blank;
00667 extern ModeHook refresh_blank;
00668 extern ModeSpecOpt blank_opts;
00669 
00670 #ifdef USE_BOMB
00671 extern ModeHook init_bomb;
00672 extern ModeHook draw_bomb;
00673 extern ModeHook release_bomb;
00674 extern ModeHook refresh_bomb;
00675 extern ModeHook change_bomb;
00676 extern ModeSpecOpt bomb_opts;
00677 
00678 #endif
00679 
00680 extern ModeHook init_random;
00681 extern ModeHook draw_random;
00682 extern ModeHook release_random;
00683 extern ModeHook refresh_random;
00684 extern ModeHook change_random;
00685 extern ModeSpecOpt random_opts;
00686 
00687 extern LockStruct LockProcs[];
00688 extern int  numprocs;
00689 
00690 /* -------------------------------------------------------------------- */
00691 
00692 #endif /* __XLOCK_MODE_H__ */