/******************************************************************************
 x_CGotoLine.h

			Header File For CGotoLine Lower-Layer Dialog Class
	

	Copyright (C) 1985-1992  New York University
	Copyright (C) 1994 George Washington University
	 
	This file is part of the GWAdaEd system, an extension of the Ada/Ed-C
	system.  See the Ada/Ed README file for warranty (none) and distribution
	info and also the GNU General Public License for more details.


	Generated by Classyª (Object Factory)

	This file is rewritten each time you generate code. You should not
	make changes to this file; changes should go in the My.h
	file, instead.

	If you want to change how Classy generates this file, you can
	change the template for this file. It is "_Dialog.h" in the Classy
	Templates folder.

 ******************************************************************************/

#pragma once

#include <CDialogDirector.h>

CLASS CStaticText;
CLASS CIntegerTextAble;
CLASS CButtonProc;

	// Data struct for initializing dialog items
	// and receiving changed values

typedef struct
{
  										/* Integer text						*/
    long			fGotoLine_Edit2;
} CGotoLineData;

	// We define a separate struct for UpdateData() which
	// eliminates duplicate data types

typedef struct
{
	Str255		stringvalue;			// CDialogText
	long		longvalue;				// CIntegerText
	short		value;					// All other controls and buttons
	Point		selection;				// CArrayPane
} CGotoLineUpdate;

CLASS CDirectorOwner;
CLASS CPanorama;
CLASS CPane;

class x_CGotoLine : public CDialogDirector
{
public:

										// Pointers to panes in window
	CStaticText	*fGotoLine_Stat1;
	CIntegerTextAble	*fGotoLine_Edit2;
	CButtonProc	*fGotoLine_Butn3;
	CButtonProc	*fGotoLine_Butn4;
	CStaticText	*fGotoLine_Limit;


	void 	Ix_CGotoLine(CDirectorOwner *aSupervisor);

	virtual	long	DoModalDialog(long defaultCmd);
	virtual	Boolean	Close(Boolean quitting);
	virtual	void	ProviderChanged(CCollaborator *aProvider, long reason, void* info);

protected:
	Boolean			ignore;
	CGotoLineData	saveData;

	virtual void 	MakeNewWindow(void);
	virtual void 	BeginData(CGotoLineData *initial);
	virtual void 	UpdateData(CGotoLineUpdate *update, long itemNo);
	virtual void 	EndData(CGotoLineData *final);


	CPane	*FindPane(long ID);

private:
	virtual	void 	DoBeginData(void);
	virtual	void 	DoEndData(long theCommand);
};

#define	CVueCGotoLine	137
