/******************************************************************************
 x_CExecuteOptions.h

			Header File For CExecuteOptions 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 CRectOvalButton;
CLASS CStaticText;
CLASS CButtonProc;
CLASS CCheckBoxProc;
CLASS CRadioControlProc;
CLASS CDialogText;

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

typedef struct
{
 	short			fExecuteOptions_Rect27;
 	short			fExecuteOptions_Rect20;
 										/* Control (radio or checkbox)		*/
	short			fExecuteOptions_Source;
 										/* Control (radio or checkbox)		*/
	short			fExecuteOptions_Routines;
 										/* Control (radio or checkbox)		*/
	short			fExecuteOptions_Exception;
 										/* Control (radio or checkbox)		*/
	short			fExecuteOptions_Rendezvous;
 										/* Control (radio or checkbox)		*/
	short			fExecuteOptions_Task;
 										/* Control (radio or checkbox)		*/
	short			fExecuteOptions_Robin;
 										/* Control (radio or checkbox)		*/
	short			fExecuteOptions_Block;
  										/* Dialog text						*/
	Str255			fExecuteOptions_Size;
} CExecuteOptionsData;

	// 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
} CExecuteOptionsUpdate;

CLASS CDirectorOwner;
CLASS CPanorama;
CLASS CPane;

class x_CExecuteOptions : public CDialogDirector
{
public:

										// Pointers to panes in window
	CRectOvalButton	*fExecuteOptions_Rect27;
	CStaticText	*fExecuteOptions_Stat22;
	CRectOvalButton	*fExecuteOptions_Rect20;
	CButtonProc	*fExecuteOptions_Butn1;
	CButtonProc	*fExecuteOptions_Butn2;
	CCheckBoxProc	*fExecuteOptions_Source;
	CCheckBoxProc	*fExecuteOptions_Routines;
	CCheckBoxProc	*fExecuteOptions_Exception;
	CCheckBoxProc	*fExecuteOptions_Rendezvous;
	CCheckBoxProc	*fExecuteOptions_Task;
	CStaticText	*fExecuteOptions_Stat19;
	CRadioControlProc	*fExecuteOptions_Robin;
	CRadioControlProc	*fExecuteOptions_Block;
	CDialogText	*fExecuteOptions_Size;
	CStaticText	*fExecuteOptions_Stat26;


	void 	Ix_CExecuteOptions(CDirectorOwner *aSupervisor);

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

protected:
	Boolean			ignore;
	CExecuteOptionsData	saveData;

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

	virtual void	DoCmdBindOne(void);
	virtual void	DoCmdExecuteOne(void);

	CPane	*FindPane(long ID);

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

#define	CVueCExecuteOptions	132
