/* $Header: FlipP.h,v 1.5 90/10/25 13:49:47 klee Exp Locker: klee $ */
/*
 *			  COPYRIGHT 1990
 *		   DIGITAL EQUIPMENT CORPORATION
 *		       MAYNARD, MASSACHUSETTS
 *			ALL RIGHTS RESERVED.
 *
 * THE INFORMATION IN THIS SOFTWARE IS SUBJECT TO CHANGE WITHOUT NOTICE AND
 * SHOULD NOT BE CONSTRUED AS A COMMITMENT BY DIGITAL EQUIPMENT CORPORATION.
 * DIGITAL MAKES NO REPRESENTATIONS ABOUT THE SUITABILITY OF THIS SOFTWARE FOR
 * ANY PURPOSE.  IT IS SUPPLIED "AS IS" WITHOUT EXPRESS OR IMPLIED WARRANTY.
 *
 * IF THE SOFTWARE IS MODIFIED IN A MANNER CREATING DERIVATIVE COPYRIGHT RIGHTS,
 * APPROPRIATE LEGENDS MAY BE PLACED ON THE DERIVATIVE WORK IN ADDITION TO THAT
 * SET FORTH ABOVE.
 *
 *
 * Permission to use, copy, modify, and distribute this software and its
 * documentation for any purpose and without fee is hereby granted, provided
 * that the above copyright notice appear in all copies and that both that
 * copyright notice and this permission notice appear in supporting documenta-
 * tion, and that the name of Digital Equipment Corporation not be used in
 * advertising or publicity pertaining to distribution of the software without
 * specific, written prior permission.
 */
#ifndef FLIP_P_H
#define FLIP_P_H

#include <Xm/XmP.h>

typedef struct _XkFlipClassPart {
   int ignore;
} XkFlipClassPart;

typedef struct _XkFlipClassRec {
   CoreClassPart    	core_class;
   XmPrimitiveClassPart	primitive_class;
   XkFlipClassPart  	flip_class;
} XkFlipClassRec;

extern XkFlipClassRec xkFlipClassRec;

typedef struct _XkFlipPart {
    /* settable by user */
    int direction;			/* +1 forward, -1 backward */
    int skip;				/* frames to skip */
    int delay;				/* timeout */
    int frame;				/* which bitmap */
    unsigned int maxFrames;		/* number of frames */
    int borderTop, borderLeft;		/* borders */
    int sample;				/* sample rate */
    Pixmap *flipFrames;			/* list of bitmaps */
    char *filePrefix;			/* prefix for file names */
    char *clipmask;			/* name of clipmask */
    Pixel flipBackground;		/* background color */
    Boolean growShadow;			/* grow shadow */

    /* private */
    int frameWidth;			/* dimensions of frames */
    int frameHeight;
    GC flipGC;				/* drawing GC */
    GC clipmaskGC;			/* GC for resizing clipmask */
    int edgeTop, edgeLeft;		/* full borders */
    Pixmap clipmaskBitmap;		/* clipmask bitmap */
    unsigned int clipmaskWidth;		/* clipmask dimensions */
    unsigned int clipmaskHeight;
    Pixmap clipmaskResized;		/* resized clipmask bitmap */
} XkFlipPart;

typedef struct _XkFlipRec {
    CorePart		core;
    XmPrimitivePart	primitive;
    XkFlipPart		flip;
} XkFlipRec;

#endif FLIP_P_H
