/* ScrollDblListP.h
 * X windows interface for the file conversion package.  Private declarations
 * for the ScrollDblListP widget.
 *
 * Peter Webb, Summer 1990
 */

#include <X11/copyright.h>

#ifndef _ScrollDblListP_h
#define _ScrollDblListP_h

#include "ScrollDblList.h"

/* include superclass private header file */

#include <X11/Xaw/FromP.h>

/* define unique representation types not found in <X11/StringDefs.h> */

#define XtRScrollDblListResource "ScrollDblListResource"

typedef struct {
    int empty;
} ScrollDblListClassPart;


/* The ScrollDblList widget draws on the resources of the Core, Form,
 * Composite and Constraint widgets.
 */

typedef struct _ScrollDblListClassRec {
    CoreClassPart	        core_class;
    CompositeClassPart          composite_class;
    ConstraintClassPart         constraint_class
    FormPart                    form_class;
    ScrollDblListClassPart	scrolldbllist_class;
} ScrollDblListClassRec;

extern ScrollDblListClassRec ScrollDblListClassRec;

/* Definition of the new resources and private state for the ScrollDblList
 * widget.  All of the non-inherited information is stored here.
 */

typedef struct {

/* New resources - see ScrollDblList.h for more information. */

  Dimension rowspacing;
  Pointer leftlist;
  int leftlongest;
  Pointer rightlist;
  int rightlongest;
  Pointer leftprititle;
  Pointer rightprititle;
  Pointer leftsectitle;
  Pointer rightsectitle;
  Dimension rightclipheight;
  Dimension leftclipheight;
  Dimension rightclipwidth;
  Dimension leftclipwidth;
  Dimension leftsecwidth;
  Dimension rightsecwidth;
  Pixel scrolloffcolor;
  Dimension rightwidth;
  Dimension leftwidth;
  Dimension vertscrollspace;
  Dimension listheight;

/* private state - no user access */

    Dimension titleheight;
    Widget vert_bar, l_horiz_bar, r_horiz_bar;   /* 3 scroll bars */
    Widget right, left;                          /* 2 text windows */
    Widget clip_left, clip_right;                /* Borders to clip against */

} ScrollDblListPart;

/* Actual definition of the structure that contains the ScrollDblList
 * information.  Here are all of the new (ie non-inherited) resources
 * and the private state.  This record is the last word on the public and
 * private information used by this widget.  Note that structures for each
 * of the "parents" of this widget have been included here as well.
 */

typedef struct _ScrollDblListRec {
    CorePart		core;
    CompositePart       composite;
    ConstraintPart      constraint;
    FormPart            form;
    ScrollDblListPart	scrolldbllist;
} ScrollDblListRec;

/* The constraints record contains information concerning the interaction of 
 * the widget and its children (the scroll bars and the text display windows
 * in this case).
 */

typedef struct
{
/* New constraint resources */

/* Private constraint state */

  Boolean reparented;

} ScrollDblListConstraintsPart;

/* This is the actual constraints record associated with the widget */

typedef struct _ScrollDblListConstraintsRec
{
  FormConstraintsPart           form;
  ScrollDblListConstraintsPart  scrolldbllist;
} ScrollDblListConstraintsRec, *ScrollDblListConstraints;

#endif /* _ScrollDblListP_h */
