/*********************************************/
/*                                           */
/*       Designer (C) Ian OConnor 1994       */
/*                                           */
/*      Designer Produced C include file     */
/*                                           */
/*********************************************/

#include <exec/types.h>
#include <exec/memory.h>
#include <dos/dosextens.h>
#include <intuition/screens.h>
#include <intuition/intuition.h>
#include <intuition/gadgetclass.h>
#include <libraries/gadtools.h>
#include <diskfont/diskfont.h>
#include <utility/utility.h>
#include <graphics/gfxbase.h>
#include <workbench/workbench.h>
#include <graphics/scale.h>
#include <clib/exec_protos.h>
#include <clib/wb_protos.h>
#include <clib/intuition_protos.h>
#include <clib/gadtools_protos.h>
#include <clib/graphics_protos.h>
#include <clib/utility_protos.h>
#include <string.h>
#include <clib/diskfont_protos.h>

#include "choice.h"


struct Window *CH1 = NULL;
APTR CH1VisualInfo;
APTR CH1DrawInfo;
struct Gadget *CH1GList;
struct Gadget *CH1Gadgets[3];
UBYTE CH1FirstRun = 0;

STRPTR CH1_MX0Labels[] =
{
  (STRPTR)"Seconds",
  (STRPTR)"Minutes",
  (STRPTR)"Hours",
  NULL
};

ULONG CH1GadgetTags[] =
  {
  (GTMX_Spacing), 5,
  (GT_TagBase+69), TRUE,  /* MX scaling under V39 */
  (GT_TagBase+71), 4, /* placetext in V39 */
  (GTMX_Labels), (ULONG)&CH1_MX0Labels[0],
  (TAG_END),
  };

UWORD CH1GadgetTypes[] =
  {
  MX_KIND,
  BUTTON_KIND,
  BUTTON_KIND,
  };

struct NewGadget CH1NewGadgets[] =
  {
  112, 40, 17, 9, (UBYTE *)"Save as", NULL, CH1_MX0, 2, NULL,  (APTR)&CH1GadgetTags[0],
  29, 109, 99, 26, (UBYTE *)"Save", NULL, CH1_BUT1, 16, NULL,  NULL,
  178, 109, 99, 26, (UBYTE *)"Cancel", NULL, CH1_BUT2, 16, NULL,  NULL,
  };
UWORD CH1ZoomInfo[4] = { 200, 0, 200, 25 };

void RendWindowCH1( struct Window *Win, void *vi )
{
UWORD offx = Win->BorderLeft;
UWORD offy = Win->BorderTop;
ULONG scalex = 65535*Win->WScreen->RastPort.Font->tf_XSize/8;
ULONG scaley = 65535*Win->WScreen->RastPort.Font->tf_YSize/15;
if (Win != NULL) 
  {
  }
}

int OpenWindowCH1( void )
{
struct Screen *Scr;
UWORD offx, offy;
UWORD loop;
struct NewGadget newgad;
struct Gadget *Gad;
struct Gadget *Gad2;
APTR Cla;
ULONG scalex,scaley;
if (CH1FirstRun == 0)
  {
  CH1FirstRun = 1;
  }
if (CH1 == NULL)
  {
  Scr = LockPubScreen(NULL);
  if (NULL != Scr)
    {
    offx = Scr->WBorLeft;
    offy = Scr->WBorTop + Scr->Font->ta_YSize+1;
    scalex = 65535*Scr->RastPort.Font->tf_XSize/8;
    scaley = 65535*Scr->RastPort.Font->tf_YSize/15;
    if (NULL != ( CH1VisualInfo = GetVisualInfoA( Scr, NULL)))
      {
      if (NULL != ( CH1DrawInfo = GetScreenDrawInfo( Scr)))
        {
        CH1GList = NULL;
        Gad = CreateContext( &CH1GList);
        for ( loop=0 ; loop<3 ; loop++ ) {
          if (CH1GadgetTypes[loop] != 198)
            {
            CopyMem((char * )&CH1NewGadgets[loop], ( char * )&newgad, (long)sizeof( struct NewGadget ));
            newgad.ng_VisualInfo = CH1VisualInfo;
            newgad.ng_LeftEdge = newgad.ng_LeftEdge*scalex/65535;
            newgad.ng_TopEdge = newgad.ng_TopEdge*scaley/65535;
            if (CH1GadgetTypes[loop] != GENERIC_KIND)
              {
              newgad.ng_Width = newgad.ng_Width*scalex/65535;
              newgad.ng_Height = newgad.ng_Height*scaley/65535;
              };
            newgad.ng_TextAttr = Scr->Font;
            newgad.ng_LeftEdge += offx;
            newgad.ng_TopEdge += offy;
            CH1Gadgets[ loop ] = NULL;
            CH1Gadgets[ newgad.ng_GadgetID - CH1FirstID ] = Gad = CreateGadgetA( CH1GadgetTypes[loop], Gad, &newgad, newgad.ng_UserData );
            }
        }
        if (Gad != NULL)
          {
          if (NULL != (CH1 = OpenWindowTags( NULL, (WA_Left), 300,
                  (WA_Top), 184,
                  (WA_Width), 300*scalex/65535+offx,
                  (WA_Height), 150*scaley/65535+offy,
                  (WA_Title), "Arrow type",
                  (WA_MinWidth), 150,
                  (WA_MinHeight), 25,
                  (WA_MaxWidth), 1200,
                  (WA_MaxHeight), 1200,
                  (WA_DragBar), TRUE,
                  (WA_DepthGadget), TRUE,
                  (WA_CloseGadget), TRUE,
                  (WA_Activate), TRUE,
                  (WA_RMBTrap), TRUE,
                  (WA_Dummy+0x30), TRUE,
                  (WA_SmartRefresh), TRUE,
                  (WA_AutoAdjust), TRUE,
                  (WA_Gadgets), CH1GList,
                  (WA_Zoom), CH1ZoomInfo,
                  (WA_IDCMP),612,
                  (TAG_END))))
            {
            RendWindowCH1(CH1, CH1VisualInfo );
            GT_RefreshWindow( CH1, NULL);
            RefreshGList( CH1GList, CH1, NULL, ~0);
            UnlockPubScreen( NULL, Scr);
            return( 0L );
            }
          }
        FreeGadgets( CH1GList);
        FreeScreenDrawInfo( Scr, CH1DrawInfo );
        }
      FreeVisualInfo( CH1VisualInfo );
      }
    UnlockPubScreen( NULL, Scr);
    }
  }
else
  {
  WindowToFront(CH1);
  ActivateWindow(CH1);
  return( 0L );
  }
return( 1L );
}

void CloseWindowCH1( void )
{
if (CH1 != NULL)
  {
  FreeScreenDrawInfo( CH1->WScreen, CH1DrawInfo );
  CH1DrawInfo = NULL;
  CloseWindow( CH1);
  CH1 = NULL;
  FreeVisualInfo( CH1VisualInfo);
  FreeGadgets( CH1GList);
  }
}

