#ifndef _XawOptionListP_h
#define _XawOptionListP_h

/* $Id: OptionListP.h,v 1.5 93/04/08 07:19:20 bert Exp $ */

/***********************************************************************
 *
 * OptionList Widget Private Data
 *
 ***********************************************************************/

#include <X11/Xaw/SimpleP.h>
#include <X11/Xaw/OptionList.h>

#define NO_HIGHLIGHT            XAW_LIST_NONE
#define OUT_OF_RANGE            -1
#define OKAY                     0

/* New fields for the OptionList widget class record */

typedef struct {int foo;} OptionListClassPart;

/* Full class record declaration */
typedef struct _OptionListClassRec {
    CoreClassPart	core_class;
    SimpleClassPart	simple_class;
    OptionListClassPart	optionList_class;
} OptionListClassRec;

extern OptionListClassRec optionListClassRec;

/* New fields for the OptionList widget record */
typedef struct {
    /* resources */
    Pixel	foreground;
    Dimension	internal_width,
        	internal_height,
                column_space,
                row_space,
                column_pad,
                row_pad,
                highlight_pad;
    int         default_cols;
    Boolean     force_cols,
                paste,
                vertical_cols,
                scroll_parent;
    int         longest;
    int         nitems;		/* number of items in the optionList. */
    XFontStruct	*font;
    String      *opt_list;
    Boolean     *field_sensitive;
    XtCallbackList  callback;

    /* private state */

    int         is_highlighted,	/* set to the item currently highlighted. */
                highlight,	/*set to the item that should be highlighted.*/
                col_width,	/* width of each column. */
                row_height,	/* height of each row. */
                nrows,		/* number of rows in the optionList. */
                ncols;		/* number of columns in the optionList. */
    GC		normgc,		/* a couple o' GC's. */
                revgc,
                graygc;		/* used when inactive. */

} OptionListPart;


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

typedef struct _OptionListRec {
    CorePart	core;
    SimplePart	simple;
    OptionListPart	optionList;
} OptionListRec;

#endif /* _XawOptionListP_h */
