/*
 *  Source machine generated by GadToolsBox V1.4
 *  which is (c) Copyright 1991,92 Jaba Development
 */

#define ASL_V38_NAME_ONLY
#include <exec/types.h>
#include <intuition/intuition.h>
#include <intuition/classes.h>
#include <intuition/classusr.h>
#include <intuition/imageclass.h>
#include <intuition/gadgetclass.h>
#include <libraries/gadtools.h>
#include <graphics/displayinfo.h>
#include <graphics/gfxbase.h>
#include <clib/exec_protos.h>
#include <clib/intuition_protos.h>
#include <clib/gadtools_protos.h>
#include <clib/graphics_protos.h>
#include <clib/utility_protos.h>
#include <clib/diskfont_protos.h>
#include <libraries/asl.h>
#include <clib/asl_protos.h>
#include <clib/exec_protos.h>
#include <string.h>
#include <stdio.h>

#include <pragmas/exec_lib.h>
#include <pragmas/intuition_lib.h>
#include <pragmas/gadtools_lib.h>
#include <pragmas/graphics_lib.h>
#include <pragmas/utility_lib.h>

struct Screen         *galScr = NULL;
APTR                   VisualInfo2 = NULL;
struct Window         *GalScrWnd = NULL;
struct Gadget         *GalScrGList = NULL;
struct Menu           *GalScrMenus = NULL;
struct Gadget         *GalScrGadgets[7];
UWORD                  GalScrLeft = 0;
UWORD                  GalScrTop = 0;
UWORD                  GalScrWidth = 1464;
UWORD                  GalScrHeight = 1464;
UBYTE                 *GalScrWdt = (UBYTE *)"GalScrWin";

struct NewMenu GalScrNewMenu[] = {
	NM_TITLE, (STRPTR)"Project", NULL, 0, NULL, NULL,
	NM_ITEM, (STRPTR)"Save", (STRPTR)"s", 0, 0L, NULL,
	NM_ITEM, (STRPTR)NM_BARLABEL, NULL, 0, 0L, NULL,
	NM_ITEM, (STRPTR)"Quit", (STRPTR)"q", 0, 0L, NULL,
	NM_TITLE, (STRPTR)"Utilities", NULL, 0, NULL, NULL,
	NM_ITEM, (STRPTR)"Find System", (STRPTR)"f", NM_ITEMDISABLED, 0L, NULL,
	NM_END, NULL, NULL, 0, 0L, NULL };

UWORD Dri2Pens[] = {
	~0 };

struct TextAttr ticker6 = {
	( STRPTR )"ticker.font", 6, FS_NORMAL, FPF_DISKFONT|FPF_DESIGNED };

struct TextAttr topaz8_2 = {
	( STRPTR )"topaz.font", 8, FS_NORMAL, FPF_ROMFONT|FPF_DESIGNED };

int SetupSndScreen( void )
{
  BOOL res;
  struct ScreenModeRequester *smrequest;

  smrequest=AllocAslRequestTags(ASL_ScreenModeRequest, 
                                ASL_Hail, "Choose a Screenmode for a Huge Screen ...",
                                ASLSM_InitialDisplayID, NTSC_MONITOR_ID|HIRESLACE_KEY, 
                                ASLSM_DoOverscanType, TRUE,
                                ASLSM_PropertyMask, DIPF_IS_DUALPF|DIPF_IS_HAM|DIPF_IS_EXTRAHALFBRITE, 
                                TAG_DONE);
  if (!smrequest) { fprintf(stderr, "Cannot allocate requester"); _abort(); }
  
  if (WBenchToFront()) 
  if (AslRequestTags(smrequest, TAG_DONE)==FALSE) 
  {
     if (smrequest) FreeAslRequest(smrequest);                                          
    _abort();
  }
  else
	if ( ! ( galScr = OpenScreenTags( NULL, 
					SA_Left,	0,
					SA_Top,		0,
					SA_Width,	GalScrWidth,
					SA_Height,	GalScrHeight,
					SA_Depth,	1,
					SA_Font,	&topaz8_2,
                                        SA_Overscan,    smrequest->sm_OverscanType,
					SA_Type,	CUSTOMSCREEN,
                                        SA_DisplayID,   smrequest->sm_DisplayID,
					SA_Pens,	&Dri2Pens[0],
					SA_Title,	"SuperNova II GalScr",
					SA_ShowTitle,	FALSE,
					SA_AutoScroll,	TRUE,
					TAG_DONE )))
      {
          if (smrequest) FreeAslRequest(smrequest);                                          
          return( 1L );
      }
      if (smrequest) FreeAslRequest(smrequest);                                          

	if ( ! ( VisualInfo2 = GetVisualInfo( galScr, TAG_DONE )))
		return( 2L );

	return( 0L );
}

void CloseDownSndScreen( void )
{
	if ( VisualInfo2 ) {
		FreeVisualInfo( VisualInfo2 );
		VisualInfo2 = NULL;
	}

	if ( galScr        ) {
		CloseScreen( galScr );
		galScr = NULL;
	}
}

void GalScrRender( void )
{
}

int OpenGalScrWindow( void )
{
	int i;
	char buffer[10];

	if ( ! ( GalScrMenus = CreateMenus( GalScrNewMenu, GTMN_FrontPen, 0L, TAG_DONE )))
		return( 3L );

	LayoutMenus( GalScrMenus, VisualInfo2, GTMN_TextAttr, &topaz8_2, TAG_DONE );
 
	if ( ! ( GalScrWnd = OpenWindowTags( NULL,
				WA_Left,	GalScrLeft,
				WA_Top,		GalScrTop,
				WA_Width,	GalScrWidth,
				WA_Height,	GalScrHeight,
				WA_IDCMP,	TEXTIDCMP|SCROLLERIDCMP|ARROWIDCMP|LISTVIEWIDCMP|CYCLEIDCMP|IDCMP_MENUPICK|IDCMP_REFRESHWINDOW,
				WA_Flags,	WFLG_SMART_REFRESH|WFLG_BACKDROP|WFLG_REPORTMOUSE|WFLG_GIMMEZEROZERO|WFLG_BORDERLESS|WFLG_ACTIVATE,
				WA_Gadgets,	NULL,
				WA_ScreenTitle,	(UBYTE *)"Galaxie Window",
				WA_CustomScreen, galScr,
				WA_AutoAdjust,	TRUE,
				TAG_DONE )))
	return( 4L );

        SetFont(GalScrWnd->RPort, OpenDiskFont(&ticker6));

	SetMenuStrip( GalScrWnd, GalScrMenus );
	GT_RefreshWindow( GalScrWnd, NULL );

        SetAPen(GalScrWnd->RPort, 1);
        for (i=0; i<61; i++)
        {
  	  Move(GalScrWnd->RPort, (i+1)*23-15, 8);
  	  sprintf(buffer," %3d ", i-30);
	  Text(GalScrWnd->RPort, (UBYTE *)buffer, 5);
  	  Move(GalScrWnd->RPort, (i+1)*23-15, 15);
	  Text(GalScrWnd->RPort, (UBYTE *)"+------", 7);
  	  Move(GalScrWnd->RPort, (i+1)*23-14, 21);
	  Text(GalScrWnd->RPort, (UBYTE *)"|+ + +  ", 8);
  	  Move(GalScrWnd->RPort, (i+1)*23-14, 27);
	  Text(GalScrWnd->RPort, (UBYTE *)"|+ + +  ", 8);
  	  Move(GalScrWnd->RPort, (i+1)*23-14, 33);
	  Text(GalScrWnd->RPort, (UBYTE *)"|+ + +  ", 8);
  	  Move(GalScrWnd->RPort, (i+1)*23-15, 39);
	  Text(GalScrWnd->RPort, (UBYTE *)"+------", 7);
        }
	SetAPen(GalScrWnd->RPort, 1);
        Move(GalScrWnd->RPort, 500, 500);
	Text(GalScrWnd->RPort, (UBYTE *)"*** *** *** | * * * |", 21);

/*	GalScrRender();*/

	return( 0L );
}

void CloseGalScrWindow( void )
{
	if ( GalScrMenus      ) {
		ClearMenuStrip( GalScrWnd );
		FreeMenus( GalScrMenus );
		GalScrMenus = NULL;	}

	if ( GalScrWnd        ) {
		CloseWindow( GalScrWnd );
		GalScrWnd = NULL;
	}

	if ( GalScrGList      ) {
		FreeGadgets( GalScrGList );
		GalScrGList = NULL;
	}
}

