/**************************************************************/
/**  C++ code Copyright (C) Nick V. King <nking@eworld.com>  **/
/**************************************************************/

#define editableMask    0x80
#define numericOnlyMask 0x40
#define hasButtonsMask  0x20
#define hasPopupMask    0x10
#define popupBelowMask  0x08
#define isRangeMask     0x04
#define isButtonMask    0x02
#define zeroIsAllMask   0x01

struct toolbarFieldRec
{
	short			reference;
	Ptr				contents;
	Boolean*		contentsChanged;
	long			initial;
	long			minimum;
	long			maximum;
	Boolean			isString;
	Str255			titleString;
	Str255			unitsString;
	short			length;
	Byte			flags;
	short			popupID;
	long			step;
	long			delay;
	Rect			bounds;
	Rect			editBounds;
};
typedef struct toolbarFieldRec toolbarFieldRec;

struct dialogFieldRec
{
	short			reference;
	Ptr				contents;
	Boolean*		contentsChanged;
	long			initial;
	long			minimum;
	long			maximum;
	Boolean			isString;
};
typedef struct dialogFieldRec dialogFieldRec;

void SaveColors(RGBColor&, RGBColor&);
void RestoreColors(RGBColor&, RGBColor&);

void DrawPanel(Rect, ConstStr255Param, Boolean);
void ErasePanel(Rect);
void ErasePanelOffwhite(Rect);

void DisplayStatus(short);
void DrawProgressBar(short);

void DisplayMemoryBar(void);
void DisplayOffscreenInfo(void);

void ShowGrowBox(WindowPtr, short);

void DrawColorControl(int, Rect*, int);
void FirstButton(int);
void PriorButton(int);
void ReplotButton(int);
void NextButton(int);
void LastButton(int);
void SetButton(void);
void SmallUpButton(int);
void SmallDownButton(int);

void DrawColorPanel(Rect);

void DrawEditField(short, toolbarFieldRec*, Boolean);

int  TrackButton(Point, Rect, short, long, Boolean);

void DrawFieldContents(toolbarFieldRec*, Boolean);

/***********/
/**  End  **/
/***********/