#ifndef LIBRARIES_GECLASS_H
#define LIBRARIES_GECLASS_H TRUE

/* ***************************************************************************

$RCSfile: geclass.h $

$Revision: 1.2 $
    $Date: 1994/12/16 17:12:55 $

    Interface module for the GUIEnvironment Class Library

    SAS/C V6.51

  Copyright © 1994, Carsten Ziegeler
                    Augustin-Wibbelt-Str.7, 33106 Paderborn, Germany

************************************************************************** */

#ifndef EXEC_TYPES_H
#include <exec/types.h>
#endif
#include <utility/tagitem.h>

#define GEClassName "geclass.library"
#define GEClassMinVersion 37           /* Revision 5 */


/* ======================================================================= */
/*                       The Get File Image Class                          */
/* ======================================================================= */

#define GETFILEICLASS "getfileiclass"

/* Default dimension: */

#define GFI_Width  20
#define GFI_Height 14


/* ======================================================================= */
/*                       The TextField Gadget Class                        */
/* ======================================================================= */

/*
 * TextFieldGadget V2.0
 *
 * Copyright © 1994 Mark Thomas
 *
 */

#define TEXTFIELDGCLASS  "textfieldgclass"

#ifndef TEXTFIELD_GADGET_H
#define TEXTFIELD_GADGET_H

#define TEXTFIELD_TAG_BASE (TAG_USER + 0x04000000)

/* V1 attributes */

#define TEXTFIELD_Text           (TEXTFIELD_TAG_BASE + 1)
#define TEXTFIELD_InsertText     (TEXTFIELD_TAG_BASE + 2)
#define TEXTFIELD_TextFont       (TEXTFIELD_TAG_BASE + 3)
#define TEXTFIELD_Delimiters     (TEXTFIELD_TAG_BASE + 4)
#define TEXTFIELD_Top            (TEXTFIELD_TAG_BASE + 5)
#define TEXTFIELD_BlockCursor    (TEXTFIELD_TAG_BASE + 6)
#define TEXTFIELD_Size           (TEXTFIELD_TAG_BASE + 7)
#define TEXTFIELD_Visible        (TEXTFIELD_TAG_BASE + 8)
#define TEXTFIELD_Lines          (TEXTFIELD_TAG_BASE + 9)
#define TEXTFIELD_NoGhost        (TEXTFIELD_TAG_BASE + 10)
#define TEXTFIELD_MaxSize        (TEXTFIELD_TAG_BASE + 11)
#define TEXTFIELD_Border         (TEXTFIELD_TAG_BASE + 12)
#define TEXTFIELD_TextAttr       (TEXTFIELD_TAG_BASE + 13)
#define TEXTFIELD_FontStyle      (TEXTFIELD_TAG_BASE + 14)
#define TEXTFIELD_Up             (TEXTFIELD_TAG_BASE + 15)
#define TEXTFIELD_Down           (TEXTFIELD_TAG_BASE + 16)
#define TEXTFIELD_Alignment      (TEXTFIELD_TAG_BASE + 17)
#define TEXTFIELD_VCenter        (TEXTFIELD_TAG_BASE + 18)
#define TEXTFIELD_RuledPaper     (TEXTFIELD_TAG_BASE + 19)
#define TEXTFIELD_PaperPen       (TEXTFIELD_TAG_BASE + 20)
#define TEXTFIELD_InkPen         (TEXTFIELD_TAG_BASE + 21)
#define TEXTFIELD_LinePen        (TEXTFIELD_TAG_BASE + 22)
#define TEXTFIELD_UserAlign      (TEXTFIELD_TAG_BASE + 23)
#define TEXTFIELD_Spacing        (TEXTFIELD_TAG_BASE + 24)
#define TEXTFIELD_ClipStream     (TEXTFIELD_TAG_BASE + 25)
#define TEXTFIELD_ClipStream2    (TEXTFIELD_TAG_BASE + 26)
#define TEXTFIELD_UndoStream     (TEXTFIELD_TAG_BASE + 26)
#define TEXTFIELD_BlinkRate      (TEXTFIELD_TAG_BASE + 27)
#define TEXTFIELD_Inverted       (TEXTFIELD_TAG_BASE + 28)
#define TEXTFIELD_Partial        (TEXTFIELD_TAG_BASE + 29)
#define TEXTFIELD_CursorPos      (TEXTFIELD_TAG_BASE + 30)

/* V2 attributes */

#define TEXTFIELD_ReadOnly       (TEXTFIELD_TAG_BASE + 31)
#define TEXTFIELD_Modified       (TEXTFIELD_TAG_BASE + 32)
#define TEXTFIELD_AcceptChars    (TEXTFIELD_TAG_BASE + 33)
#define TEXTFIELD_RejectChars    (TEXTFIELD_TAG_BASE + 34)
#define TEXTFIELD_PassCommand    (TEXTFIELD_TAG_BASE + 35)
#define TEXTFIELD_LineLength     (TEXTFIELD_TAG_BASE + 36)
#define TEXTFIELD_MaxSizeBeep    (TEXTFIELD_TAG_BASE + 37)
#define TEXTFIELD_DeleteText     (TEXTFIELD_TAG_BASE + 38)
#define TEXTFIELD_SelectSize     (TEXTFIELD_TAG_BASE + 39)
#define TEXTFIELD_Copy           (TEXTFIELD_TAG_BASE + 40)
#define TEXTFIELD_CopyAll        (TEXTFIELD_TAG_BASE + 41)
#define TEXTFIELD_Cut            (TEXTFIELD_TAG_BASE + 42)
#define TEXTFIELD_Paste          (TEXTFIELD_TAG_BASE + 43)
#define TEXTFIELD_Erase          (TEXTFIELD_TAG_BASE + 44)
#define TEXTFIELD_Undo           (TEXTFIELD_TAG_BASE + 45)

/*
 * TEXTFIELD_Border
 *
 * See docs for width and height sizes for these borders
 */

#define TEXTFIELD_BORDER_NONE              0
#define TEXTFIELD_BORDER_BEVEL             1
#define TEXTFIELD_BORDER_DOUBLEBEVEL       2

/*
 * TEXTFIELD_Alignment
 */

#define TEXTFIELD_ALIGN_LEFT             0
#define TEXTFIELD_ALIGN_CENTER           1
#define TEXTFIELD_ALIGN_RIGHT            2

#endif

/* ======================================================================= */
/*                            Library functions                            */
/* ======================================================================= */

/* --------- protos ------------- */

APTR GetObjectA( APTR, APTR, struct TagItem * );
APTR GetObject( APTR, APTR, ULONG, ... );
VOID FreeObject( APTR);

/* --------- pragmas ------------ */

extern struct Library *GEClassBase;

#pragma libcall GEClassBase GetObjectA 1e A9803
#pragma tagcall GEClassBase GetObject  1e A9803
#pragma libcall GEClassBase FreeObject 24 801

#endif /* LIBRARIES_GECLASS_H */
