#ifndef _AtTraceP_h
#define _AtTraceP_h

#include <X11/IntrinsicP.h>
#include <X11/ObjectP.h>
#include "Trace.h"

typedef struct _AtTraceClassPart {
    void (*draw)(AtTraceWidget);         /* are these the right signatures? */
    void (*newpoint)(AtTraceWidget, double);
} AtTraceClassPart;

typedef struct _AtTraceClassRec {
    ObjectClassPart object_class;
    AtTraceClassPart trace_class;
} AtTraceClassRec;

extern AtTraceClassRec atTraceClassRec;

typedef struct _AtTracePart {
    /* resources */
    Pixel foreground;
    Pixel background;
    int lineWidth;
    int lineStyle;
    int dashLength;
    double *points;
    int numPoints;
    double deltaT;
    double initialT;
    short mode;
    int pointsSaved;
    XtCallbackList timerCallback;
    /* private state */
    GC gc;
    double *data;
    XPoint *pixdata;
    int pointsAllocated;
} AtTracePart;

typedef struct _AtTraceRec {
    ObjectPart object;
    AtTracePart trace;
} AtTraceRec;

#endif /* _AtTraceP_h */
