/*
 *  Source generated with GadToolsBox V1.3
 *  which is (c) Copyright 1991,92 Jaba Development
 */

#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 <string.h>

#define GD_OK_BUTTON                           0
#define GD_CANCEL_BUTTON                       1
#define GD_DELAY_GADG                          2

struct Screen        *Scr = NULL;
APTR                  VisualInfo = NULL;
struct Window        *TK_ReqWnd = NULL;
struct Gadget        *TK_ReqGList = NULL;
struct Gadget        *TK_ReqGadgets[3];
UWORD                 TK_ReqLeft = 154;
UWORD                 TK_ReqTop = 73;
UWORD                 TK_ReqWidth = 267;
UWORD                 TK_ReqHeight = 58;
UBYTE                *TK_ReqWdt = "TimeKeeper v" VERSION "." REVISION "";

struct TextAttr topaz8 = {
    ( STRPTR )"topaz.font", 8, 0x00, 0x00 };

struct IntuiText  TK_ReqIText[] = {
    1, 0, JAM1,9, 8, &topaz8, (UBYTE *)"Enter time passed since reset.", NULL };

long SetupScreen( void )
{
    if ( NOT( Scr = LockPubScreen( "Workbench" )))
        return( 1L );

    if ( NOT( VisualInfo = GetVisualInfo( Scr, TAG_DONE )))
        return( 2L );

    return( NULL );
}

void CloseDownScreen( void )
{
    if ( VisualInfo ) {
        FreeVisualInfo( VisualInfo );
        VisualInfo = NULL;
    }

    if ( Scr        ) {
        UnlockPubScreen( NULL, Scr );
        Scr = NULL;
    }
}

void TK_ReqRender( void )
{
    UWORD        offx, offy;

    offx = TK_ReqWnd->BorderLeft;
    offy = TK_ReqWnd->BorderTop;

    PrintIText( TK_ReqWnd->RPort, TK_ReqIText, offx, offy );
}

long OpenTK_ReqWindow( void )
{
    struct NewGadget     ng;
    struct Gadget       *g;
    UWORD               offx, offy;

    offx = Scr->WBorLeft;
    offy = Scr->WBorTop + Scr->RastPort.TxHeight + 1;

    if ( NOT( g = CreateContext( &TK_ReqGList )))
        return( 1L );

    ng.ng_LeftEdge        =    offx + 7;
    ng.ng_TopEdge         =    offy + 41;
    ng.ng_Width           =    70;
    ng.ng_Height          =    12;
    ng.ng_GadgetText      =    (UBYTE *)"OK";
    ng.ng_TextAttr        =    &topaz8;
    ng.ng_GadgetID        =    GD_OK_BUTTON;
    ng.ng_Flags           =    PLACETEXT_IN;
    ng.ng_VisualInfo      =    VisualInfo;

    g = CreateGadget( BUTTON_KIND, g, &ng, TAG_DONE );

    TK_ReqGadgets[ 0 ] = g;

    ng.ng_LeftEdge        =    offx + 181;
    ng.ng_GadgetText      =    (UBYTE *)"Cancel";
    ng.ng_GadgetID        =    GD_CANCEL_BUTTON;

    g = CreateGadget( BUTTON_KIND, g, &ng, TAG_DONE );

    TK_ReqGadgets[ 1 ] = g;

    ng.ng_LeftEdge        =    offx + 65;
    ng.ng_TopEdge         =    offy + 22;
    ng.ng_Width           =    65;
    ng.ng_Height          =    13;
    ng.ng_GadgetText      =    (UBYTE *)"Seconds";
    ng.ng_GadgetID        =    GD_DELAY_GADG;
    ng.ng_Flags           =    PLACETEXT_RIGHT;

    g = CreateGadget( INTEGER_KIND, g, &ng, GTIN_Number, 0, GTIN_MaxChars, 5, TAG_DONE );

    TK_ReqGadgets[ 2 ] = g;

    if ( NOT g )
        return( 2L );

    if ( NOT( TK_ReqWnd = OpenWindowTags( NULL,
                    WA_Left,          TK_ReqLeft,
                    WA_Top,           TK_ReqTop,
                    WA_Width,         TK_ReqWidth,
                    WA_Height,        TK_ReqHeight + offy,
                    WA_IDCMP,         BUTTONIDCMP|INTEGERIDCMP|IDCMP_MENUPICK|IDCMP_ACTIVEWINDOW|IDCMP_REFRESHWINDOW,
                    WA_Flags,         WFLG_DRAGBAR|WFLG_DEPTHGADGET|WFLG_SMART_REFRESH|WFLG_ACTIVATE|WFLG_RMBTRAP,
                    WA_Gadgets,       TK_ReqGList,
                    WA_Title,         TK_ReqWdt,
                    WA_ScreenTitle,   "TimeKeeper v" VERSION "." REVISION "",
                        TAG_DONE )))
        return( 4L );

    GT_RefreshWindow( TK_ReqWnd, NULL );

    TK_ReqRender();

    return( NULL );
}

void CloseTK_ReqWindow( void )
{
    if ( TK_ReqWnd        ) {
        CloseWindow( TK_ReqWnd );
        TK_ReqWnd = NULL;
    }

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

