/* ScoreEffectWindow.h */

#ifndef Included_ScoreEffectWindow_h
#define Included_ScoreEffectWindow_h

/* ScoreEffectWindow module depends on */
/* MiscInfo.h */
/* Audit */
/* Debug */
/* Definitions */
/* Screen */
/* TextEdit */
/* EventLoop */
/* Menus */
/* MainWindowStuff */
/* WindowDispatcher */
/* TextEdit */
/* Memory */
/* GlobalWindowMenuList */
/* Main */
/* GrowIcon */
/* FindDialog */
/* DataMunging */
/* EffectSpecList */

#include "Screen.h"
#include "EventLoop.h"
#include "Menus.h"

struct ScoreEffectWindowRec;
typedef struct ScoreEffectWindowRec ScoreEffectWindowRec;

/* forward declarations */
struct CodeCenterRec;
struct MainWindowRec;

/* create a new score effect window. */
ScoreEffectWindowRec*	NewScoreEffectWindow(struct MainWindowRec* MainWindow,
												char* Text);

/* dispose of a score effect window. */
void									DisposeScoreEffectWindow(ScoreEffectWindowRec* Window);

/* event handling routines for the score effect window */
void									ScoreEffectWindowDoIdle(ScoreEffectWindowRec* Window,
												MyBoolean CheckCursorFlag, OrdType XLoc, OrdType YLoc,
												ModifierFlags Modifiers);
void									ScoreEffectWindowBecomeActive(ScoreEffectWindowRec* Window);
void									ScoreEffectWindowBecomeInactive(ScoreEffectWindowRec* Window);
void									ScoreEffectWindowJustResized(ScoreEffectWindowRec* Window);
void									ScoreEffectWindowDoMouseDown(OrdType XLoc, OrdType YLoc,
												ModifierFlags Modifiers, ScoreEffectWindowRec* Window);
void									ScoreEffectWindowDoKeyDown(unsigned char KeyCode,
												ModifierFlags Modifiers, ScoreEffectWindowRec* Window);
void									ScoreEffectWindowClose(ScoreEffectWindowRec* Window);
void									ScoreEffectWindowUpdator(ScoreEffectWindowRec* Window);
void									ScoreEffectWindowMenuSetup(ScoreEffectWindowRec* Window);
void									ScoreEffectWindowDoMenuCommand(ScoreEffectWindowRec* Window,
												MenuItemType* MenuItem);

/* get the string from the editor */
char*									ScoreEffectWindowGetText(ScoreEffectWindowRec* Window);

/* make editor window come to top */
void									ScoreEffectWindowBringToTop(ScoreEffectWindowRec* Window);

/* utility routine to hilite a text line on which a compile error has occurred */
void									ScoreEffectWindowHiliteLine(ScoreEffectWindowRec* Window,
												long ErrorLine);

/* the name of the document has changed, so change the name of the window */
void									ScoreEffectWindowGlobalNameChange(ScoreEffectWindowRec* Window,
												char* NewFilename);

/* refresh the titlebar of the window */
void									ScoreEffectWindowResetTitlebar(ScoreEffectWindowRec* Window);

/* force the window to write back to the object any data that has changed */
MyBoolean							ScoreEffectWindowWritebackModifiedData(ScoreEffectWindowRec* Window);

/* find out if the data here has been modified */
MyBoolean							HasScoreEffectBeenModified(ScoreEffectWindowRec* Window);

#endif
