/*
 * Copyright (c) 1996 Michael A. Perzl
 * All rights reserved.
 *
 * Permission to use, copy, modify, distribute, and sell this software
 * and its documentation for any purpose is hereby granted without fee,
 * provided that the above copyright notice appear in all copies and
 * that both that copyright notice and this permission notice appear in
 * supporting documentation, and that the name of Michael A. Perzl not
 * be used in advertising or publicity pertaining to distribution of
 * the software without specific, written prior permission.
 * Michael A. Perzl makes no representations about the suitability of
 * this software for any purpose.  It is provided "as is" without any
 * express or implied warranties, including, without limitation, the
 * implied warranties of merchantability and fitness for a particular
 * purpose.
 *
 * Michael A. Perzl DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS
 * SOFTWARE, INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND
 * FITNESS.  IN NO EVENT SHALL Michael A. Perzl BE LIABLE FOR ANY
 * SPECIAL, INDIRECT OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER
 * RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF
 * CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN
 * CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
 */



#ifndef _XmProgressMeterP_h
#define _XmProgressMeterP_h



#if defined(__cplusplus) || defined(c_plusplus)
extern "C" {
#endif



#include <sys/types.h>

#if (XmVersion >= 1002)
#include <Xm/PrimitiveP.h>
#endif

#include "ProgressMeter.h"



typedef struct {
                 int make_compiler_happy;
               } XmProgressMeterClassPart;


typedef struct _XmProgressMeterClassRec
                       {
                         CoreClassPart            core_class;
                         XmPrimitiveClassPart     primitive_class;
                         XmProgressMeterClassPart progressMeter_class;
                       } XmProgressMeterClassRec;


typedef struct _XmProgressMeterPart
                              {
                                int            value,
                                               minimum,
                                               maximum;
                                Boolean        boxMode;
                                int            numBoxes;
                                unsigned char  orientation;
                                Boolean        showBoxSeparators,
                                               showPercentage,
                                               showTime,
                                               showTimeUnit;
                                XmFontList     fontList;

/*********************** private fields **********************/
                                GC             gc,
                                               invgc;
                                Dimension     *boxPos;
                                time_t         startTime,
                                               lastTime;

                              } XmProgressMeterPart;


typedef struct _XmProgressMeterRec
                           {
                             CorePart            core;
                             XmPrimitivePart     primitive;
                             XmProgressMeterPart progressMeter;
                           } XmProgressMeterRec;

externalref XmProgressMeterClassRec xmProgressMeterClassRec;



#if defined(__cplusplus) || defined(c_plusplus)
}
#endif



#endif    /* _XmProgressMeterP_h */

