#ifndef _NumberLineP_h
#define _NumberLineP_h
/***********************************************************************
 *
 * NumberLine Widget Private Data Definitions
 *
 ***********************************************************************/

#include <X11/CompositeP.h>
#include "NumberLine.h"

#define XtRDouble               "double"

typedef struct {
  GC gc;
  XFontStruct *big_font, *small_font;
  Cursor pointer_cursor;
  Cursor invisible_cursor;
} NumberLineClassPart;

typedef struct _NumberLineClassRec {
  CoreClassPart        core_class;
  CompositeClassPart   composite_class;
  NumberLineClassPart  numberLine_class;
} NumberLineClassRec;

extern NumberLineClassRec numberLineClassRec;

typedef struct {
  /*resources */
  char *title; 
  double min, max;
  double pres, def;
  double prev; /* value at previous call */
  int done;
  int percentage;
  Pixel foreground, background;

  /* private state */
  XtCallbackList callbacks;
  double head_val, ptr_val; /* to keep track of pointer and pointer head */
  double sf, gran; /* scaling factor and granularity of pointer */
  int old_ptr_x, old_ptr_y, old_hd_x, old_hd_y;
  int minpt, maxpt, yline, ticsize; /* minimum and maximum coordinates, ypos.*/
  int ynums; /* y axis for numbers */
  Widget target_w; /*this is the window which receives mousemoved events*/
  Widget def_w, prev_w, done_w, key_w, title_w; /* all widgets */
  char *string;
} NumberLinePart;


/****************************************************************
 *
 * Full instance record declaration
 *
 ****************************************************************/

typedef struct _NumberLineRec {
    CorePart	core;
    CompositePart composite;
    NumberLinePart	numberLine;
} NumberLineRec, *NumberLineWidget;

#endif

