// TSMorph - Amiga Morphing program
// Copyright (C) © 1993  Topicsave Limited

// This program is free software; you can redistribute it and/or modify
// it under the terms of the GNU General Public License as published by
// the Free Software Foundation; either version 2 of the License, or
// any later version.

// This program is distributed in the hope that it will be useful,
// but WITHOUT ANY WARRANTY; without even the implied warranty of
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
// GNU General Public License for more details.

// You should have received a copy of the GNU General Public License
// along with this program; if not, write to the Free Software
// Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.

// mpaddock@cix.compulink.co.uk

/*
 *  Source machine generated by GadToolsBox V2.0
 *  which is (c) Copyright 1991-1993 Jaba Development
 *
 *  GUI Designed by : M J P
 */

// Some editing by MJP
// e.g. joined together, a few lines added etc.

#define GetString( g )      ((( struct StringInfo * )g->SpecialInfo )->Buffer  )
#define GetNumber( g )      ((( struct StringInfo * )g->SpecialInfo )->LongInt )

#define GD_XCells                              0
#define GD_YCells                              1
#define GD_OK                                  2
#define GD_Cancel                              3

#define GDX_XCells                             0
#define GDX_YCells                             1
#define GDX_OK                                 2
#define GDX_Cancel                             3

#define GridRequest_CNT 4

#define GD_GetFile1                            0
#define GD_GetFile2                            1
#define GD_Width                               2
#define GD_Height                              3
#define GD_GetFileOne                          4
#define GD_GetFileTwo                          5
#define GD_EditPoints                          6
#define GD_SinglePicture                       7
#define GD_GetSaveName                         8
#define GD_FileOne                             9
#define GD_FileTwo                             10
#define GD_File241                             11
#define GD_File242                             12
#define GD_Frames                              13
#define GD_Start                               14
#define GD_Name                                15
#define GD_Help										  16

#define GDX_GetFile1                           0
#define GDX_GetFile2                           1
#define GDX_Width                              2
#define GDX_Height                             3
#define GDX_GetFileOne                         4
#define GDX_GetFileTwo                         5
#define GDX_EditPoints                         6
#define GDX_SinglePicture                      7
#define GDX_GetSaveName                        8
#define GDX_FileOne                            9
#define GDX_FileTwo                            10
#define GDX_File241                            11
#define GDX_File242                            12
#define GDX_Frames                             13
#define GDX_Start                              14
#define GDX_Name                               15
#define GDX_Help										  16

#define TSMorph_CNT 17

#define GD_Mess										  0
#define GD_Pass1                               1
#define GD_Pass2										  2

#define GDX_Mess										  0
#define GDX_Pass1                              1
#define GDX_Pass2										  2

#define Progress_CNT 3

extern struct IntuitionBase *IntuitionBase;
extern struct Library       *GadToolsBase;

extern struct Screen        *Scr;
extern UBYTE                 *PubScreenName;
extern APTR                  VisualInfo;
extern struct Window        *TSMorphWnd;
extern struct Gadget        *TSMorphGList;
extern struct Menu          *TSMorphMenus;
extern struct MenuItem      *TSMorphMenus1;
extern struct IntuiMessage   TSMorphMsg;
extern UWORD                 TSMorphZoom[4];
extern struct Gadget        *TSMorphGadgets[17];
extern struct IClass        *getClass;
extern struct _Object       *getImage;
extern UWORD                 TSMorphLeft;
extern UWORD                 TSMorphTop;
extern UWORD                 TSMorphWidth;
extern UWORD                 TSMorphHeight;
extern UBYTE                *TSMorphWdt;
extern struct TextAttr      *Font, Attr;
extern UWORD                 FontX, FontY;
extern UWORD                 OffX, OffY;
extern struct NewMenu        TSMorphNewMenu[];
extern UWORD                 TSMorphGTypes[];
extern struct NewGadget      TSMorphNGad[];
extern ULONG                 TSMorphGTags[];

extern struct Window        *GridRequestWnd;
extern struct Gadget        *GridRequestGList;
extern struct IntuiMessage   GridRequestMsg;
extern struct Gadget        *GridRequestGadgets[4];
extern UWORD                 GridRequestLeft;
extern UWORD                 GridRequestTop;
extern UWORD                 GridRequestWidth;
extern UWORD                 GridRequestHeight;
extern UBYTE                *GridRequestWdt;

extern UWORD                 GridRequestGTypes[];
extern struct NewGadget      GridRequestNGad[];
extern ULONG                 GridRequestGTags[];
// size rectangles
extern struct Rectangle		  Rect[17];
extern struct Rectangle		  GRect[4];
extern UBYTE					 *SinglePictureLabels[];

extern struct Window        *ProgressWnd;
extern struct Gadget        *ProgressGList;
extern struct IntuiMessage   ProgressMsg;
extern struct Gadget        *ProgressGadgets[3];
extern UWORD                 ProgressLeft;
extern UWORD                 ProgressTop;
extern UWORD                 ProgressWidth;
extern UWORD                 ProgressHeight;
extern UBYTE                *ProgressWdt;

extern UWORD                 ProgressGTypes[];
extern struct NewGadget      ProgressNGad[];
extern ULONG                 ProgressGTags[];

extern int GetFile1Clicked( void );
extern int GetFile2Clicked( void );
extern int GetFileOneClicked( void );
extern int GetFileTwoClicked( void );
extern int EditPointsClicked( void );
extern int SinglePictureClicked( void );
extern int GetSaveNameClicked( void );
extern int FileOneClicked( void );
extern int FileTwoClicked( void );
extern int File241Clicked( void );
extern int File242Clicked( void );
extern int FramesClicked( void );
extern int StartClicked( void );
extern int NameClicked( void );
extern int TSMorphMenuNew( void );
extern int TSMorphMenuOpen( void );
extern int TSMorphMenuSave( void );
extern int TSMorphMenuSaveAs( void );
extern int TSMorphMenuDelete( void );
extern int TSMorphMenuAbout( void );
extern int TSMorphMenuQuit( void );
extern int TSMorphMenuEditPoints( void );

extern int SetupScreen( void );
extern void CloseDownScreen( void );
extern int HandleTSMorphIDCMP( void );
extern int TSMorphCloseWindow(void);
extern int TSMorphMenuHelp(void);
extern int TSMorphVanillaKey(void);
extern int TSMorphRawKey(void);
extern int OpenTSMorphWindow( void );
extern void CloseTSMorphWindow( void );

extern int XCellsClicked( void );
extern int YCellsClicked( void );
extern int OKClicked( void );
extern int CancelClicked( void );

extern int HandleGridRequestIDCMP( void );
extern int GridRequestCloseWindow(void);
extern int GridRequestVanillaKey(void);
extern int GridRequestRawKey(void);
extern int OpenGridRequestWindow( void );
extern void CloseGridRequestWindow( void );

extern int OpenProgressWindow( void );
extern void CloseProgressWindow( void );
extern int HandleProgressIDCMP( void );
