#ifndef _MY_FLOATING_
#define _MY_FLOATING_

#include <Windows.h>
#include <Dialogs.h>
#include <LowMem.h>

// funtion prototypes
void ActivateWindow (WindowPtr window, Boolean on);
void InitFloats (void);
Boolean IsDialog (WindowPtr whichWindow);
Boolean IsFloating (WindowPtr whichWindow);
Boolean IsVisible (WindowPtr whichWindow);
void UpdateFloats (void);
void MakeFloat (WindowPtr theWindow);
void MakeDialogFloat (WindowPtr theWindow);
void ReactToRemoval (WindowPeek underWindow);
void HideTheWindow (WindowPtr whichWindow);	
void DisposeTheWindow (WindowPtr whichWindow);
void SelectTheWindow (WindowPtr whichWindow);
void DragTheWindow (WindowPtr whichWindow, EventRecord *Event);

//generally useless; too low level
void HideFloats (void);
void ShowFloats (void);

// global variables
extern WindowPtr bottomFloat;
extern WindowPtr topFloat;
extern WindowPtr topWindow;

// macros used periodically in the floating window functions
#define kFloatingKind		317

//#define CurActivate			0x0A64	//68K
#define CurActivate			(LMGetCurActivate())

//#define CurDeactive			0x0A68	//68K
#define CurDeactive			(LMGetCurDeactive())

//#define WindowList			0x09D6	//68K
#define WindowList			(LMGetWindowList())

#define cancelDrag			0x80008000

#endif