/*********************************************************************
 *
 *         EZWGL, the EZ Widget and Graphics Library
 *
 *             Copyright (C) 1996,  Maorong Zou
 *  
 * This library is free software; you can redistribute it and/or
 * modify it under the terms of the GNU Library General Public
 * License as published by the Free Software Foundation; either
 * version 2 of the License, or (at your option) any later version.
 *
 * This library 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
 * Library General Public License for more details.
 *
 * You should have received a copy of the GNU Library General Public
 * License along with this library; if not, write to the Free
 * Software Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
 *
 **********************************************************************/
/*
 *  June 1996.  Beta Release.
 *  Sept 1996.  Release Version 1.0
 *  April 1997.  Release Version 1.2
 *  November 1997.  Release Version 1.3
 */
/*******************************************************************
 ***                                                             ***
 ***      The EZ Widget and Graphics Library Header File         ***
 ***                                                             ***
 ******************************************************************/
#ifndef _EZ_H_
#define	_EZ_H_

/*******************************************************************
 ***                                                             ***
 ***                System Headers                               ***
 ***                                                             ***
 ******************************************************************/
#include <X11/Xlib.h>
#include <X11/Xresource.h>
#include <X11/cursorfont.h>
#include <X11/keysym.h>
#include <X11/Xutil.h>
#include <X11/Xatom.h>

#include <stdio.h>
#include <stdlib.h>
#include <math.h>

#include <strings.h>

/*******************************************************************
 ***                                                             ***
 ***                     Args                                    ***
 ***                                                             ***
 ******************************************************************/

/*
 * Var Args
 */
#if defined(__STDC__) || defined(HAS_STDARG)
#include <stdarg.h>
#define MY_VARARGS(type, name) (type name, ...)
#define MY_VARARGS_D(type, name) (type name, ...)
#define MY_VARARGS_DECL    /*nothing*/
#define MY_VARARGS_START(type, name, list) (va_start(list, name), name)
#else
#include <varargs.h>
#define MY_VARARGS(type, name) (va_alist)
#define MY_VARARGS_D(type, name) ()
#define MY_VARARGS_DECL    va_dcl
#define MY_VARARGS_START(type,name,list)  (va_start(list), va_arg(list, type))
#endif

/*
 * ANSI Args
 */
#undef MY_ANSIARGS
#undef CONST
#if defined (__cplusplus) || defined(USE_PROTOTYPE) || (defined(__STDC__) && !defined(NO_PROTOTYPE))
#define MY_ANSIARGS(x)   x
#define CONST const
#else
#define MY_ANSIARGS(x)   ()
#define CONST 
#endif

#ifdef __cplusplus
#define EXTERN extern "C"
#else
#define EXTERN extern
#endif

#ifndef  EZ_ArraySize
#define  EZ_ArraySize(_ary_) (sizeof(_ary_)/sizeof((_ary_)[0]))
#endif

/*******************************************************************
 ***                                                             ***
 ***                     Types                                   ***
 ***                                                             ***
 ******************************************************************/

/*
 * Internal data structures are effectively hidden from these typedefs.
 */
typedef void              EZ_Widget;
typedef void              EZ_LabelPixmap;
typedef void              EZ_TextProperty;
typedef void              EZ_TextProp;
typedef void              EZ_Item;
typedef void              EZ_TreeNode;
typedef void              EZ_Timer;
typedef void              EZ_Bitmap;
typedef void              EZ_Pixmap;
typedef void              EZ_Input;
typedef void              EZ_GLImage;

typedef float             EZ_Vector[4];
typedef float             EZ_Vector3[3];
typedef float             EZ_Matrix[4][4];
typedef float             EZ_Material;
typedef float             EZ_LightSrc;
typedef float             EZ_LightModel;

/*
 * func types
 */
typedef  void (*EZ_CallBack)      MY_ANSIARGS((void *object, void *data));
typedef  void (*EZ_Callback)      MY_ANSIARGS((void *object, void *data));
typedef  void (*EZ_InputCallback) MY_ANSIARGS((void *object, void *data, int fd, int mask));
typedef  void (*EZ_InputCallBack) MY_ANSIARGS((void *object, void *data, int fd, int mask));
typedef  void (*EZ_EventHandler)  MY_ANSIARGS((void *object, void *data, int etype, XEvent *event));
typedef  void (*EZ_MessageHandler)  MY_ANSIARGS((void *msgIn, void *client_data));

typedef  void *(*EZ_DirTreeNodeCreator) MY_ANSIARGS((char *path, void *data));

typedef  int  (*EZ_DnDEncoder)    MY_ANSIARGS((void *object, void *data, 
					       char **message,int *length, int *needfree));
typedef  int  (*EZ_DnDDecoder)    MY_ANSIARGS((void *object, void *data, 
					       char *message,int length));

typedef  void (*EZ_WorkAreaGeometryManager)  MY_ANSIARGS((void *GMData, EZ_Item **data, int nitems, 
							  int Rx,int Ry,int Rw, int Rh, int xsp, int ysp,
							  int *w_ret, int *h_ret));

/*****************************************************************
 *
 * Used to attach client data to a widget/item. 
 */
typedef  union {
  char            c;
  short           s;
  int             i;
  long            l;
  unsigned char   uc;
  unsigned short  us;
  unsigned int    ui;
  unsigned long   ul;
  float           f;
  void            *p;
}  EZ_UnknownDataType;

/*********************************************************************
 *
 *  Used for setting application resource values.
 */
typedef struct EZ_Value_ {
  int             type;  /* see below */
  union
  {
    int           i;
    float         f;
    void          *p;
    unsigned long l;
  } value;
} EZ_Value;

#ifndef EZ_INT
#define EZ_INT     0
#define EZ_FLOAT   1
#define EZ_POINTER 2
#define EZ_ULONG   3
#endif

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

#ifndef  EZ_ArraySize
#define  EZ_ArraySize(_ary_) (sizeof(_ary_)/sizeof((_ary_)[0]))
#endif

#ifndef EZ_StringToQuark
#define EZ_StringToQuark(_str__)   XrmStringToQuark(_str__) 
#define EZ_QuarkToString(_quk__)   XrmQuarkToString(_quk__) 
#endif


/*******************************************************************
 ***                                                             ***
 ***                Message Info                                 ***
 ***                                                             ***
 ******************************************************************/
typedef struct {
  Atom       messageType;
  int        messageLength;
  char       *message;
  int        messageId;    /* set by the sender, like a transaction serial # */
  int        replyId;
  int        isReply;
  /* src info */
  Window     sender;
  Atom       senderClass;
  Atom       senderInstance;
  int        senderIsSelf;
} EZ_Message;

/*******************************************************************
 ***                                                             ***
 ***                Global Variables                             ***
 ***                                                             ***
 ******************************************************************/

EXTERN int          EZ_PointerCoordinates[2];   /* coor of pointer rel to the event window  */
EXTERN int          EZ_MouseX;                  /* = EZ_PointerCoordinates[0] - borderWidth */
EXTERN int          EZ_MouseY;                  /* = width - EZ_PointerCoordinates[0] - borderWidth */
EXTERN unsigned int EZ_PressedKey;              /* for key events, the pressed key */
EXTERN unsigned int EZ_ButtonState;             /* states of the buttons */
EXTERN unsigned int EZ_Btn1, EZ_Btn2, EZ_Btn3;  /* Left, middle right btn, may be re-assigned */

EXTERN Atom      EZ_WM_DELETE_WINDOW_ATOM;
EXTERN Atom      EZ_WM_PROTOCOLS_ATOM;
EXTERN Atom      EZ_DND_DRAG_START_ATOM;
EXTERN Atom      EZ_DND_DRAG_FINISH_ATOM;
EXTERN Atom      EZ_DND_DROP_START_ATOM;
EXTERN Atom      EZ_DND_DROP_FINISH_ATOM;

/*******************************************************************
 ***                                                             ***
 ***              Status for DND converters                      ***
 ***                                                             ***
 ******************************************************************/
#define EZ_DND_FAILURE            0
#define EZ_DND_SUCCESS            1

#define EZ_NO                     0
#define EZ_YES                    1
#define EZ_NULL                   NULL
#define EZ_TRUE                   True
#define EZ_FALSE                  False

#define EZ_NONE_MASK              0L
#define EZ_READABLE_MASK          (1L<<0)
#define EZ_WRITABLE_MASK          (1L<<1)
#define EZ_EXCEPTION_MASK         (1L<<2)

#define EZ_ROW                    1
#define EZ_COLUMN                 2

#define EZ_ON                     1
#define EZ_OFF                    0

#define EZ_DEFAULT_GEOMETRY_MANAGER   -1  
#define EZ_GRIDBAG_GEOMETRY_MANAGER    0

/*******************************************************************
 ***                                                             ***
 ***              Configuration options                          ***
 ***                                                             ***
 ******************************************************************/
#define EZ_X                      1
#define EZ_Y                      2
#define EZ_WIDTH                  3
#define EZ_HEIGHT                 4
#define EZ_WIDTH_HINT             5
#define EZ_HEIGHT_HINT            6
#define EZ_BORDER_WIDTH           7
#define EZ_BORDERWIDTH            EZ_BORDER_WIDTH
#define EZ_BORDER_TYPE            8
#define EZ_BORDER_STYLE           EZ_BORDER_TYPE
#define EZ_PADX                   9
#define EZ_PADY                   10
#define EZ_IPADX                  11
#define EZ_IPADY                  12
#define EZ_STACKING               13
#define EZ_ORIENTATION            EZ_STACKING
#define EZ_SIDE                   14
#define EZ_LABEL_POSITION         15
#define EZ_LABELPOSITION          EZ_LABEL_POSITION
#define EZ_JUSTIFICATION          16
#define EZ_LABEL_JUSTIFICATION    EZ_JUSTIFICATION
#define EZ_FILL_MODE              17
#define EZ_PROPAGATE              18
#define EZ_CALL_BACK              19
#define EZ_CALLBACK               EZ_CALL_BACK
#define EZ_FOREGROUND             20
#define EZ_BACKGROUND             21
#define EZ_BITMAP_FILE            22
#define EZ_PIXMAP_FILE            EZ_BITMAP_FILE
#define EZ_BITMAP_DATA            23   
#define EZ_PIXMAP_DATA            24
#define EZ_X_PIXMAP               25
#define EZ_LABEL_PIXMAP           26
#define EZ_LABELPIXMAP            EZ_LABEL_PIXMAP
#define EZ_FONT_ID                27
#define EZ_FONT_NAME              28
#define EZ_TEXT_LINE_LENGTH       29
#define EZ_SLIDER_LENGTH          30
#define EZ_SLIDERLENGTH           EZ_SLIDER_LENGTH
#define EZ_SLIDER_WIDTH           31
#define EZ_SLIDERWIDTH            EZ_SLIDER_WIDTH
#define EZ_SLIDER_BORDER_WIDTH    32
#define EZ_SLIDER_BORDERWIDTH     EZ_SLIDER_BORDER_WIDTH
#define EZ_SLIDER_RESOLUTION      33
#define EZ_SLIDER_RANGE           34
#define EZ_INDICATOR_SIZE_ADJUST  35
#define EZ_IMAGE_FILE             36
#define EZ_BUTTON_SHORTCUT        37
#define EZ_SHORTCUT_KEY           EZ_BUTTON_SHORTCUT  
#define EZ_EVENT_HANDLE           38
#define EZ_EVENT_HANDLER          EZ_EVENT_HANDLE
#define EZ_LABEL_STRING           39
#define EZ_RESERVE_MENU_BUTTON    40
#define EZ_BACKING_STORE          41
#define EZ_EXPAND                 42  
#define EZ_TRANSIENT              43
#define EZ_SCROLLBAR_WIDTH        44
#define EZ_SCROLLBAR_BORDER_WIDTH 45
#define EZ_TEXT_SPACING           46
#define EZ_UNDERLINE              47
#define EZ_BUBBLE_HELP            48
#define EZ_FREELABEL_MOVABLE      49
#define EZ_ITEM_MOVABLE           EZ_FREELABEL_MOVABLE
#define EZ_INDICATOR_TYPE         50
#define EZ_INDICATOR_COLOR        51
#define EZ_TEXT_BACKGROUND        52  
#define EZ_SLIDER_DISPLAY_VALUE   53
#define EZ_SELECTION_BACKGROUND   54
#define EZ_SELECTION_FOREGROUND   55
#define EZ_ATTACH_PTR_DATA        56
#define EZ_ATTACH_INT_DATA        57
#define EZ_USER_PTR_DATA          EZ_ATTACH_PTR_DATA    
#define EZ_USER_INT_DATA          EZ_ATTACH_INT_DATA
#define EZ_CLIENT_PTR_DATA        EZ_ATTACH_PTR_DATA    
#define EZ_CLIENT_INT_DATA        EZ_ATTACH_INT_DATA
#define EZ_DESTROY_CALLBACK       58
#define EZ_EMBEDER                59
#define EZ_IS_EMBEDER             EZ_EMBEDER
#define EZ_DND_DRAG_CURSOR        60
#define EZ_DND_BUBBLE_HELP        61
#define EZ_SHAPED_WINDOW          62
#define EZ_MOTION_CALLBACK        63

#define EZ_CHECK_BUTTON_ON_VALUE  64
#define EZ_CHECK_BUTTON_OFF_VALUE 65
#define EZ_CHECK_BUTTON_ON_OFF    66
#define EZ_RADIO_BUTTON_GROUP     67
#define EZ_RADIO_BUTTON_VALUE     68
#define EZ_OPTIONAL_HSCROLLBAR    69
#define EZ_OPTIONAL_VSCROLLBAR    70
#define EZ_FANCY_LISTBOX_TYPE     71
#define EZ_FANCY_LIST_BOX_TYPE     EZ_FANCY_LISTBOX_TYPE
#define EZ_FANCY_LISTBOX_COLUMNS  72
#define EZ_FANCY_LIST_BOX_COLUMNS EZ_FANCY_LISTBOX_COLUMNS
#define EZ_GLOB_PATTERN           73
#define EZ_TEXT_WIDGET_EDITABLE   74
#define EZ_ENTRY_STRING           75
#define EZ_RETURN_VALUE           76
#define EZ_SLIDER_INIT_VALUE      77
#define EZ_OPTIONAL_ENTRY_REMEMBER_HISTORY   78
#define EZ_OPTIONAL_ENTRY_EDITABLE  79
#define EZ_ENTRY_EDITABLE         EZ_OPTIONAL_ENTRY_EDITABLE 
#define EZ_ITEM_WIDGET_WIDGET     80
#define EZ_RAW_RGB_DATA           81
#define EZ_MENU_TEAR_OFF          82
#define EZ_GRID_CELL_GEOMETRY     83
#define EZ_GRID_CELL_PLACEMENT    84
#define EZ_GRID_CONSTRAINS        85
#define EZ_GRID_ROW_CONSTRAINS    86
#define EZ_GRID_COLUMN_CONSTRAINS 87

#define EZ_LOCATION               88
#define EZ_SIZE                   89
#define EZ_GEOMETRY               90
#define EZ_SIZE_HINT              91

#define EZ_PADB                   92
#define EZ_HIGHLIGHT_PAD          EZ_PADB
#define EZ_OPAD                   EZ_PADB

#define EZ_NAME                   93

#define EZ_LCD_NDIGITS            94
#define EZ_LCD_FONT_SIZE          95
#define EZ_LCD_BACKGROUND         96
#define EZ_LCD_FOREGROUND         97

#define EZ_LED_BACKGROUND         98
#define EZ_LED_PIXEL_COLOR        99
#define EZ_LED_WIDTH              100
#define EZ_LED_HEIGHT             101
#define EZ_LED_PIXEL_SIZE         102
#define EZ_LED_COLOR_FUNCTION     103

#define EZ_WMHINTS                104
#define EZ_WM_HINTS               EZ_WMHINTS
#define EZ_GEOMTERY_MANAGER       105
#define EZ_CURSOR                 106
#define EZ_CLASS                  107
#define EZ_POPUP_NAME             108
#define EZ_LABELED_ICON           109

#define EZ_HSCROLL_INCREMENT      110
#define EZ_VSCROLL_INCREMENT      111

#define EZ_SMETER_VALUE           112
#define EZ_SMETER_RANGE           113
#define EZ_SMETER_STOPED          114
#define EZ_SMETER_BACKGROUND      115
#define EZ_SMETER_FOREGROUND      116
#define EZ_SMETER_FOREGROUND_N    117
#define EZ_SMETER_SHOW_VALUE      118
#define EZ_SMETER_VALUE_N         119
#define EZ_SMETER_RANGE_N         120
#define EZ_SMETER_STYLE           121
#define EZ_SMETER_ORIENTATION     122

#define EZ_FORGET_X               123
#define EZ_FORGET_Y               124
#define EZ_FORGET_W               125
#define EZ_FORGET_H               126
#define EZ_FORGET_POSITION        127
#define EZ_FORGET_SIZE            128
#define EZ_FORGET_GEOMETRY        129

#define EZ_WM_WINDOW_NAME         130
#define EZ_WM_INITIAL_STATE       131	
#define EZ_WM_ICON_NAME           132
#define EZ_WM_ICON_XPM_FILE       133
#define EZ_WM_ICON_PIXMAP         134
#define EZ_WM_ICON_LOCATION       135
#define EZ_WM_LOCATION_HINT       136
#define EZ_WM_SIZE_HINT           137
#define EZ_WM_MAX_SIZE_HINT       138
#define EZ_WM_MIN_SIZE_HINT       139

#define EZ_MARK_CLEAN             140


/***********************************************************************
 ***                                                                 ***
 ***                   Border Styles                                 ***
 ***                                                                 ***
 ***********************************************************************/
#define EZ_BORDER_NONE                  0
#define EZ_BORDER_FLAT                  1
#define EZ_BORDER_FRAMED_UP             2
#define EZ_BORDER_RIDGE                 EZ_BORDER_FRAMED_UP
#define EZ_BORDER_FRAMED_DOWN           3
#define EZ_BORDER_GROOVE                EZ_BORDER_FRAMED_DOWN
#define EZ_BORDER_UP                    4
#define EZ_BORDER_RAISED                EZ_BORDER_UP
#define EZ_BORDER_DOWN                  5
#define EZ_BORDER_SUNKEN                EZ_BORDER_DOWN
#define EZ_BORDER_EMBOSSED              8
#define EZ_BORDER_ENGRAVED              9

/***********************************************************************
 ***                                                                 ***
 ***                  Cursors                                        ***
 ***                                                                 ***
 ***********************************************************************/
#ifndef EZ_C_NUM_GLYPHS
#define EZ_C_NUM_GLYPHS            XC_num_glyphs
#define EZ_C_X_CURSOR              XC_X_cursor
#define EZ_C_ARROW                 XC_arrow
#define EZ_C_BASED_ARROW_DOWN      XC_based_arrow_down
#define EZ_C_BASED_ARROW_UP        XC_based_arrow_up
#define EZ_C_BOAT                  XC_boat
#define EZ_C_BOGOSITY              XC_bogosity
#define EZ_C_BOTTOM_LEFT_CORNER    XC_bottom_left_corner
#define EZ_C_BOTTOM_RIGHT_CORNER   XC_bottom_right_corner
#define EZ_C_BOTTOM_SIDE           XC_bottom_side
#define EZ_C_BOTTOM_TEE            XC_bottom_tee
#define EZ_C_BOX_SPIRAL            XC_box_spiral
#define EZ_C_CENTER_PTR            XC_center_ptr
#define EZ_C_CIRCLE                XC_circle
#define EZ_C_CLOCK                 XC_clock
#define EZ_C_COFFEE_MUG            XC_coffee_mug
#define EZ_C_CROSS                 XC_cross
#define EZ_C_CROSS_REVERSE         XC_cross_reverse
#define EZ_C_CROSSHAIR             XC_crosshair
#define EZ_C_DIAMOND_CROSS         XC_diamond_cross
#define EZ_C_DOT                   XC_dot
#define EZ_C_DOTBOX                XC_dotbox
#define EZ_C_DOUBLE_ARROW          XC_double_arrow
#define EZ_C_DRAFT_LARGE           XC_draft_large
#define EZ_C_DRAFT_SMALL           XC_draft_small
#define EZ_C_DRAPED_BOX            XC_draped_box
#define EZ_C_EXCHANGE              XC_exchange
#define EZ_C_FLEUR                 XC_fleur
#define EZ_C_GOBBLER               XC_gobbler
#define EZ_C_GUMBY                 XC_gumby
#define EZ_C_HAND1                 XC_hand1
#define EZ_C_HAND2                 XC_hand2
#define EZ_C_HEART                 XC_heart
#define EZ_C_ICON                  XC_icon
#define EZ_C_IRON_CROSS            XC_iron_cross
#define EZ_C_LEFT_PTR              XC_left_ptr
#define EZ_C_LEFT_SIDE             XC_left_side
#define EZ_C_LEFT_TEE              XC_left_tee
#define EZ_C_LEFTBUTTON            XC_leftbutton
#define EZ_C_LL_ANGLE              XC_ll_angle
#define EZ_C_LR_ANGLE              XC_lr_angle
#define EZ_C_MAN                   XC_man
#define EZ_C_MIDDLEBUTTON          XC_middlebutton
#define EZ_C_MOUSE                 XC_mouse
#define EZ_C_PENCIL                XC_pencil
#define EZ_C_PIRATE                XC_pirate
#define EZ_C_PLUS                  XC_plus
#define EZ_C_QUESTION_ARROW        XC_question_arrow
#define EZ_C_RIGHT_PTR             XC_right_ptr
#define EZ_C_RIGHT_SIDE            XC_right_side
#define EZ_C_RIGHT_TEE             XC_right_tee
#define EZ_C_RIGHTBUTTON           XC_rightbutton
#define EZ_C_RTL_LOGO              XC_rtl_logo
#define EZ_C_SAILBOAT              XC_sailboat
#define EZ_C_SB_DOWN_ARROW         XC_sb_down_arrow
#define EZ_C_SB_H_DOUBLE_ARROW     XC_sb_h_double_arrow
#define EZ_C_SB_LEFT_ARROW         XC_sb_left_arrow
#define EZ_C_SB_RIGHT_ARROW        XC_sb_right_arrow
#define EZ_C_SB_UP_ARROW           XC_sb_up_arrow
#define EZ_C_SB_V_DOUBLE_ARROW     XC_sb_v_double_arrow
#define EZ_C_SHUTTLE               XC_shuttle
#define EZ_C_SIZING                XC_sizing
#define EZ_C_SPIDER                XC_spider
#define EZ_C_SPRAYCAN              XC_spraycan
#define EZ_C_STAR                  XC_star
#define EZ_C_TARGET                XC_target
#define EZ_C_TCROSS                XC_tcross
#define EZ_C_TOP_LEFT_ARROW        XC_top_left_arrow
#define EZ_C_TOP_LEFT_CORNER       XC_top_left_corner
#define EZ_C_TOP_RIGHT_CORNER      XC_top_right_corner
#define EZ_C_TOP_SIDE              XC_top_side
#define EZ_C_TOP_TEE               XC_top_tee
#define EZ_C_TREK                  XC_trek
#define EZ_C_UL_ANGLE              XC_ul_angle
#define EZ_C_UMBRELLA              XC_umbrella
#define EZ_C_UR_ANGLE              XC_ur_angle
#define EZ_C_WATCH                 XC_watch
#define EZ_C_XTERM                 XC_xterm
#endif


/***********************************************************************
 ***                                                                 ***
 ***                   Item  Types                                   ***
 ***                                                                 ***
 ***********************************************************************/
#define EZ_ITEM_LABEL                 1
#define EZ_ITEM_WIDGET                2
#define EZ_LABEL_ITEM                 EZ_ITEM_LABEL
#define EZ_WIDGET_ITEM                EZ_ITEM_WIDGET


/***********************************************************************
 ***                                                                 ***
 ***     DirTree directory node opening modes                        ***
 ***                                                                 ***
 ***********************************************************************/
#define EZ_DIR_NODE_OPEN_DIRECTORY_NONE             -1
#define EZ_DIR_NODE_OPEN_DIRECTORY_DEFAULT          0
#define EZ_DIR_NODE_OPEN_DIRECTORY_COLLAPSING       1


/***********************************************************************
 ***                                                                 ***
 ***                   Widget Types                                  ***
 ***                                                                 ***
 ***********************************************************************/
/*
 * do not change the order of this list
 */
#define EZ_WIDGET_UNKNOWN                0
#define EZ_WIDGET_FRAME                  1
#define EZ_WIDGET_LABEL                  2
#define EZ_WIDGET_NORMAL_BUTTON          3
#define EZ_WIDGET_CHECK_BUTTON           4
#define EZ_WIDGET_RADIO_BUTTON           5
#define EZ_WIDGET_MENU_BUTTON            6
#define EZ_WIDGET_MENU_SEPARATOR         7
#define EZ_WIDGET_MENU_SUBMENU           8
#define EZ_WIDGET_MENU_NORMAL_BUTTON     9
#define EZ_WIDGET_MENU_CHECK_BUTTON      10
#define EZ_WIDGET_MENU_RADIO_BUTTON      11
#define EZ_WIDGET_VERTICAL_SLIDER        12
#define EZ_WIDGET_HORIZONTAL_SLIDER      13
#define EZ_VERTICAL_SLIDER               EZ_WIDGET_VERTICAL_SLIDER
#define EZ_HORIZONTAL_SLIDER             EZ_WIDGET_HORIZONTAL_SLIDER
#define EZ_WIDGET_ENTRY                  14
#define EZ_WIDGET_3D_CANVAS              15
#define EZ_WIDGET_VERTICAL_SCROLLBAR     16
#define EZ_WIDGET_HORIZONTAL_SCROLLBAR   17
#define EZ_WIDGET_ILIST_BOX              18
#define EZ_WIDGET_LIST_BOX               19
#define EZ_WIDGET_LISTBOX                EZ_WIDGET_LIST_BOX
#define EZ_WIDGET_ITEXT                  20
#define EZ_WIDGET_TEXT                   21
#define EZ_WIDGET_NOTE_BOOK              22
#define EZ_WIDGET_NOTEBOOK               EZ_WIDGET_NOTE_BOOK
#define EZ_WIDGET_NB_PAGE                23
#define EZ_WIDGET_NOTEBOOK_PAGE          EZ_WIDGET_NB_PAGE
#define EZ_WIDGET_NW_LABEL               24
#define EZ_WIDGET_PANE_HANDLE            25
#define EZ_WIDGET_SPECIAL                26
#define EZ_WIDGET_EXECUTOR               27
#define EZ_WIDGET_OPTIONAL_ENTRY         28
#define EZ_WIDGET_FILE_SELECTOR          29
#define EZ_WIDGET_ITREE                  30
#define EZ_WIDGET_TREE                   31
#define EZ_WIDGET_LIST_TREE              EZ_WIDGET_TREE
#define EZ_WIDGET_IFANCY_LIST_BOX        32
#define EZ_WIDGET_FANCY_LIST_BOX         33
#define EZ_WIDGET_IWORK_AREA             34
#define EZ_WIDGET_WORK_AREA              35
#define EZ_WIDGET_RAW_XWINDOW            36
#define EZ_WIDGET_TEAR_OFF               37
#define EZ_WIDGET_ROW_COLUMN             38
#define EZ_WIDGET_GRID_BAG               EZ_WIDGET_ROW_COLUMN
#define EZ_WIDGET_LCD                    39
#define EZ_WIDGET_LED                    40
#define EZ_WIDGET_STATUS_METER           41
#define EZ_WIDGET_MENU_BAR               42

#define EZ_WIDGET_F43                    43
#define EZ_WIDGET_F44                    44
#define EZ_WIDGET_F45                    45
#define EZ_WIDGET_F46                    46
#define EZ_WIDGET_F47                    47
#define EZ_WIDGET_F48                    48
#define EZ_WIDGET_F49                    49
#define EZ_WIDGET_F50                    50
#define EZ_WIDGET_F51                    51
#define EZ_WIDGET_F52                    52
#define EZ_WIDGET_F53                    53
#define EZ_WIDGET_F54                    54
#define EZ_WIDGET_F55                    55
#define EZ_WIDGET_F56                    56
#define EZ_WIDGET_F57                    57
#define EZ_WIDGET_F58                    58
#define EZ_WIDGET_F59                    59
#define EZ_WIDGET_F60                    60
#define EZ_WIDGET_F61                    61
#define EZ_WIDGET_F62                    62
#define EZ_WIDGET_F63                    63
#define EZ_WIDGET_F64                    64
#define EZ_WIDGET_F65                    65
#define EZ_WIDGET_F66                    66
#define EZ_WIDGET_F67                    67
#define EZ_WIDGET_F68                    68
#define EZ_WIDGET_F69                    69
#define EZ_WIDGET_F70                    70
#define EZ_WIDGET_F71                    71
#define EZ_WIDGET_F72                    72
#define EZ_WIDGET_F73                    73
#define EZ_WIDGET_F74                    74
#define EZ_WIDGET_F75                    75
#define EZ_WIDGET_F76                    76
#define EZ_WIDGET_F77                    77
#define EZ_WIDGET_F78                    78
#define EZ_WIDGET_F79                    79
#define EZ_WIDGET_F80                    80
#define EZ_WIDGET_F81                    81
#define EZ_WIDGET_F82                    82
#define EZ_WIDGET_F83                    83
#define EZ_WIDGET_F84                    84
#define EZ_WIDGET_F85                    85
#define EZ_WIDGET_F86                    86
#define EZ_WIDGET_F87                    87
#define EZ_WIDGET_F88                    88
#define EZ_WIDGET_F89                    89
#define EZ_WIDGET_F90                    90
#define EZ_WIDGET_F91                    91
#define EZ_WIDGET_F92                    92
#define EZ_WIDGET_F93                    93
#define EZ_WIDGET_F94                    94
#define EZ_WIDGET_F95                    95
#define EZ_WIDGET_F96                    96
#define EZ_WIDGET_F97                    97
#define EZ_WIDGET_F98                    98
#define EZ_WIDGET_F99                    99
#define EZ_WIDGET_F100                    100
#define EZ_WIDGET_F101                    101
#define EZ_WIDGET_F102                    102
#define EZ_WIDGET_F103                    103
#define EZ_WIDGET_F104                    104
#define EZ_WIDGET_F105                    105
#define EZ_WIDGET_F106                    106
#define EZ_WIDGET_F107                    107
#define EZ_WIDGET_F108                    108
#define EZ_WIDGET_F109                    109
#define EZ_WIDGET_F110                    110
#define EZ_WIDGET_F111                    111
#define EZ_WIDGET_F112                    112
#define EZ_WIDGET_F113                    113
#define EZ_WIDGET_F114                    114
#define EZ_WIDGET_F115                    115
#define EZ_WIDGET_F116                    116
#define EZ_WIDGET_F117                    117
#define EZ_WIDGET_F118                    118
#define EZ_WIDGET_F119                    119
#define EZ_WIDGET_F120                    120
#define EZ_WIDGET_F121                    121
#define EZ_WIDGET_F122                    122
#define EZ_WIDGET_F123                    123
#define EZ_WIDGET_F124                    124

#define EZ_WIDGET_POPUP_MENU              125
#define EZ_WIDGET_MENU                    EZ_WIDGET_POPUP_MENU
#define EZ_WIDGET_ITOPLEVEL               126
#define EZ_WIDGET_ICON                    EZ_WIDGET_ITOPLEVEL           
#define EZ_WIDGET_FREE_LABEL              EZ_WIDGET_ITOPLEVEL           
#define EZ_WIDGET_EMBEDER                 127

/***********************************************************************/
#define EZ_TREE                           0
#define EZ_LIST_TREE                      1

/***********************************************************************
 ***                                                                 ***
 ***                   LED Widget actions                            ***
 ***                                                                 ***
 ***********************************************************************/

#define EZ_LED_SCROLL_LEFT        1
#define EZ_LED_SCROLL_RIGHT       2
#define EZ_LED_SCROLL_UP          3
#define EZ_LED_SCROLL_DOWN        4
#define EZ_LED_SCROLL_CENTE_H     5
#define EZ_LED_SCROLL_CENTER_V    6
#define EZ_LED_SWEEP_LEFT         7
#define EZ_LED_SWEEP_RIGHT        8
#define EZ_LED_SWEEP_UP           9
#define EZ_LED_SWEEP_DOWN         10
#define EZ_LED_SWEEP_CENTER       11
#define EZ_LED_SWEEP_CENTER_V     12
#define EZ_LED_BOUNCE             13
#define EZ_LED_BOUNCE_V           14
#define EZ_LED_SHOW               15
#define EZ_LED_BLINK              16
#define EZ_LED_BLINK_SCROLL_LEFT  17
#define EZ_LED_BLINK_SCROLL_RIGHT 18
#define EZ_LED_SLEEP              19

/***********************************************************************
 ***                                                                 ***
 ***                   Widget Arrangements                           ***
 ***                                                                 ***
 ***********************************************************************/
/*
 *  Orientation
 */
#define EZ_HORIZONTAL              1
#define EZ_HORIZONTAL_LEFT         2
#define EZ_HORIZONTAL_RIGHT        3
#define EZ_HORIZONTAL_CENTER       4
#define EZ_VERTICAL                5
#define EZ_VERTICAL_TOP            6
#define EZ_VERTICAL_BOTTOM         7
#define EZ_VERTICAL_CENTER         8
/*
 * Filling
 */
#define EZ_FILL_NONE               0
#define EZ_FILL_HORIZONTALLY       1
#define EZ_FILL_VERTICALLY         2
#define EZ_FILL_BOTH               3
/*
 * Allignment
 */               
#define EZ_CENTER_ALIGNED          0
#define EZ_LEFT_ALIGNED            1
#define EZ_RIGHT_ALIGNED           2
#define EZ_TOP_ALIGNED             3
#define EZ_BOTTOM_ALIGNED          4
/*
 * Label position, justification etc.
 */
#define EZ_CENTER                  0
#define EZ_LEFT                    1
#define EZ_RIGHT                   2
#define EZ_TOP                     3
#define EZ_BOTTOM                  4
#define EZ_TOP_LEFT                5
#define EZ_TOP_RIGHT               6
#define EZ_BOTTOM_LEFT             7
#define EZ_BOTTOM_RIGHT            8
#define EZ_LEFT_2_RIGHT            9

/***********************************************************************
 ***                                                                 ***
 ***                   Indicator Types                               ***
 ***                                                                 ***
 ***********************************************************************/
#define EZ_EMPTY_INDICATOR          0
#define EZ_SQUARE_INDICATOR         1
#define EZ_SUNKEN_SQUARE_INDICATOR  2
#define EZ_DIAMOND_INDICATOR        3
#define EZ_SUNKEN_DIAMOND_INDICATOR 4
#define EZ_CIRCLE_INDICATOR         5
#define EZ_CHECK_INDICATOR          6
#define EZ_RECTANGLE_INDICATOR      7
#define EZ_MENU_BUTTON_INDICATOR    8
#define EZ_TICK_INDICATOR           9
/***********************************************************************
 ***                                                                 ***
 ***               Symbolic constants used in EZGL                   ***
 ***                                                                 ***
 ***********************************************************************/
/*
 *  For EZ_NewList()
 */
#define EZ_COMPILE                1
#define EZ_COMPILE_AND_EXECUTE    2
/*
 *  For FrontFace()
 */
#define EZ_CCW                    0
#define EZ_CW                     1
/*
 *  For MatrixMode()
 */
#define EZ_PROJECTION             0
#define EZ_MODELVIEW              1
#define EZ_TEXTURE                2
/*
 * For Begin()/End()
 */
#define  EZ_LINES                 1
#define  EZ_LINE_STRIP            2
#define  EZ_LINE_LOOP             3
#define  EZ_TRIANGLES             4
#define  EZ_TRIANGLE_STRIP        5
#define  EZ_TRIANGLE_FAN          6
#define  EZ_QUADS                 7
#define  EZ_QUAD_STRIP            8
#define  EZ_POLYGON               9
#define  EZ_POINTS                10
#define  EZ_TMESH                 11
#define  EZ_QMESH                 12
/*
 * For ColorMaterial()/Materialfv()/Lightfv()
 */
#define EZ_FRONT                  0
#define EZ_BACK                   1
#define EZ_FRONT_AND_BACK         2
#define EZ_EMISSION               1
#define EZ_AMBIENT                2
#define EZ_DIFFUSE                3
#define EZ_SPECULAR               4
#define EZ_SHININESS              5
#define EZ_AMBIENT_AND_DIFFUSE    6
#define EZ_COLOR_INDICES          7
#define EZ_POSITION               8
#define EZ_SPOT_DIRECTION         9
#define EZ_SPOT_EXPONENT          10
#define EZ_SPOT_CUTOFF            11
#define EZ_CONSTANT_ATTENUATION   12
#define EZ_LINEAR_ATTENUATION     13
#define EZ_QUADRATIC_ATTENUATION  14
/*
 * For LightModelf()
 */
#define EZ_LIGHT_MODEL_AMBIENT      1
#define EZ_LIGHT_MODEL_LOCAL_VIEWER 2
#define EZ_LIGHT_MODEL_TWO_SIDE     3

/*
 * EZ_Fogfv()
 */
#define EZ_FOG_MODE                 1
#define EZ_FOG_DENSITY              2
#define EZ_FOG_COLOR                3
#define EZ_FOG_INDEX                4
#define EZ_FOG_START                5
#define EZ_FOG_END                  6

#define EZ_LINEAR                   1
#define EZ_EXP                      2
#define EZ_EXP2                     3

/*
 *  For Enable()/Disable()
 */
#define EZ_LIGHT0                   0
#define EZ_LIGHT1                   1
#define EZ_LIGHT2                   2
#define EZ_LIGHT3                   3
#define EZ_LIGHT4                   4
#define EZ_LIGHT5                   5
#define EZ_LIGHT6                   6
#define EZ_LIGHT7                   7
#define EZ_LIGHTING                 8
#define EZ_NORMALIZE                9
#define EZ_COLOR_MATERIAL           10
#define EZ_CULL_FACE                11
#define EZ_FOG                      12
#define EZ_DEPTH_TEST               13
#define EZ_DITHER                   14

/*
 * EZ_DefineMaterial()/EZ_DefineLightSrc()
 */
#define EZ_NULL_F                     0.0 
#define EZ_EMISSION_F                 301.0
#define EZ_AMBIENT_F                  302.0
#define EZ_DIFFUSE_F                  303.0
#define EZ_SPECULAR_F                 304.0
#define EZ_SHININESS_F                305.0
#define EZ_COLOR_INDICES_F            306.0
#define EZ_POSITION_F                 307.0
#define EZ_SPOT_DIRECTION_F           308.0
#define EZ_SPOT_EXPONENT_F            309.0
#define EZ_SPOT_CUTOFF_F              310.0
#define EZ_CONSTANT_ATTENUATION_F     311.0
#define EZ_LINEAR_ATTENUATION_F       312.0
#define EZ_QUADRATIC_ATTENUATION_F    313.0
#define EZ_LIGHT_MODEL_AMBIENT_F      314.0 
#define EZ_LIGHT_MODEL_LOCAL_VIEWER_F 315.0
#define EZ_LIGHT_MODEL_TWO_SIDE_F     316.0

/*
 * For EZ_Clear()
 */
#define  EZ_COLOR_BUFFER_BIT          0x01
#define  EZ_DEPTH_BUFFER_BIT          0x02

/*
 * For EZ_PolygonMode()
 */
#define EZ_FILL                       0x0
#define EZ_LINE                       0x1
#define EZ_POINT                      0x2

/*
 * For EZ_DrawString()
 */
#define  EZ_VECTOR_FONT               0x01
#define  EZ_BITMAP_FONT               0x02
/*
 * For EZ_LogicOp
 */
#define  EZ_CLEAR                     0x0
#define  EZ_AND                       0x1
#define  EZ_AND_REVERSE               0x2
#define  EZ_COPY                      0x3
#define  EZ_AND_INVERTED              0x4
#define  EZ_NOOP                      0x5
#define  EZ_XOR                       0x6
#define  EZ_OR                        0x7
#define  EZ_NOR                       0x8
#define  EZ_EQUIV                     0x9
#define  EZ_INVERT                    0xa
#define  EZ_OR_REVERSE                0xb
#define  EZ_COPY_INVERTED             0xc
#define  EZ_OR_INVERTED               0xd
#define  EZ_NAND                      0xe
#define  EZ_SET                       0xf
/*
 * For EZ_Sphere()
 */
#define EZ_SPHERE_TRIANGLE            1
#define EZ_SPHERE_QUAD                2
#define EZ_SPHERE_PARAMETRIC          3
/*
 * For EZ_SetBackBuffer()
 */
#define  EZ_PIXMAP                    0x1
#define  EZ_XIMAGE                    0x2
/*
 * For EZ_ShadeModel()
 */
#define EZ_FLAT                       0
#define EZ_SMOOTH                     1

/*
 * For EZ_SetVectorFont()
 */
#define EZ_SMALL_VECTOR_FONT          0
#define EZ_LARGE_VECTOR_FONT          1


/*
 * For EZ_Save3DCanvas2PSA()
 */
#define EZ_PORTRAIT                   0
#define EZ_LANDSCAPE                  1

/*
 *   GL Device and Event types. Used in EZ_GL Event routines.
 */
#define EZ_BACKSPACE_KEY             0X7f
#define EZ_TAB_KEY                   0X09
#define EZ_RETURN_KEY                0X0D 
#define EZ_ESCAPE_KEY                0X1B
/*
 * some convinent function keys.
 */
#define EZ_HOME_KEY                  0xFF50
#define EZ_LEFT_KEY                  0xFF51
#define EZ_UP_KEY                    0xFF52
#define EZ_RIGHT_KEY                 0xFF53
#define EZ_DOWN_KEY                  0xFF54
#define EZ_PAGE_UP_KEY               0xFF55
#define EZ_PAGE_DOWN_KEY             0xFF56
#define EZ_PRIOR_KEY                 0xFF55
#define EZ_NEXT_KEY                  0xFF56
#define EZ_BEGIN_KEY                 0xFF57
#define EZ_END_KEY                   0xFF58

#define EZ_F1_KEY                    0xFFbe
#define EZ_F2_KEY                    0xFFbf
#define EZ_F3_KEY                    0xFFc0
#define EZ_F4_KEY                    0xFFc1
#define EZ_F5_KEY                    0xFFc2
#define EZ_F6_KEY                    0xFFc3
#define EZ_F7_KEY                    0xFFc4
#define EZ_F8_KEY                    0xFFc5
#define EZ_F9_KEY                    0xFFc6
#define EZ_F10_KEY                   0xFFc7
#define EZ_F11_KEY                   0xFFc8
#define EZ_F12_KEY                   0xFFc9

/*
 *  Button and Pointer events types.
 */
#define EZ_LEFT_BUTTON               0x1
#define EZ_MIDDLE_BUTTON             0x2
#define EZ_RIGHT_BUTTON              0x4
#define EZ_BUTTON1                   EZ_LEFT_BUTTON
#define EZ_BUTTON2                   EZ_MIDDLE_BUTTON
#define EZ_BUTTON3                   EZ_RIGHT_BUTTON

#define EZ_REDRAW                    256
#define EZ_RESIZE                    257
#define EZ_LEFT_BUTTON_PRESS         258
#define EZ_MIDDLE_BUTTON_PRESS       259
#define EZ_RIGHT_BUTTON_PRESS        260
#define EZ_LEFT_BUTTON_RELEASE       261  
#define EZ_MIDDLE_BUTTON_RELEASE     262
#define EZ_RIGHT_BUTTON_RELEASE      263
#define EZ_POINTER_MOTION            264
#define EZ_KEY_PRESS                 265
#define EZ_ENTER_WINDOW              266
#define EZ_LEAVE_WINDOW              267

#define EZ_CLIENT_MESSAGE            268
#define EZ_PROPERTY_NOTIFY           269

#define EZ_BUTTON1_PRESS             EZ_LEFT_BUTTON_PRESS
#define EZ_BUTTON2_PRESS             EZ_MIDDLE_BUTTON_PRESS
#define EZ_BUTTON3_PRESS             EZ_RIGHT_BUTTON_PRESS
#define EZ_BUTTON1_RELEASE           EZ_LEFT_BUTTON_RELEASE
#define EZ_BUTTON2_RELEASE           EZ_MIDDLE_BUTTON_RELEASE
#define EZ_BUTTON3_RELEASE           EZ_RIGHT_BUTTON_RELEASE


#define EZ_LeftButtonDown()          (EZ_ButtonState & EZ_Button1)
#define EZ_MiddleButtonDown()        (EZ_ButtonState & EZ_Button2)
#define EZ_RightButtonDown()         (EZ_ButtonState & EZ_Button3)

#define EZ_Button1Down()             (EZ_ButtonState & EZ_Button1)
#define EZ_Button2Down()             (EZ_ButtonState & EZ_Button2)
#define EZ_Button3Down()             (EZ_ButtonState & EZ_Button3)

/*
 *  A list of predefined materials
 */
#define EZ_SILVER                    0
#define EZ_SILVER_S                  1
#define EZ_GOLD                      2
#define EZ_GOLD_S                    3
#define EZ_BRASS                     4
#define EZ_COPPER                    5    
#define EZ_COPPER_S                  6
#define EZ_BRONZE                    7
#define EZ_RUBY                      8
#define EZ_TURQUOISE                 9  
#define EZ_JADE                      10
#define EZ_EMERALD                   11
#define EZ_PERAL                     12

/*
 *   Colors.
 */
#ifndef EZ_GRAY0 
#define EZ_GRAY0                     0
#define EZ_GRAY1                     1
#define EZ_GRAY2                     2
#define EZ_GRAY3                     3
#define EZ_GRAY4                     4
#define EZ_GRAY5                     5
#define EZ_GRAY6                     6
#define EZ_GRAY7                     7
#define EZ_GRAY8                     8
#define EZ_DARKRED                   9
#define EZ_RED                       10 
#define EZ_GREEN                     11 
#define EZ_BLUE                      12 
#define EZ_YELLOW                    13 
#define EZ_MAGENTA                   14 
#define EZ_CYAN                      15 

#define EZ_BLACK                     EZ_GRAY0
#define EZ_WHITE                     EZ_GRAY8

#define EZ_DARK_GRAY1              EZ_GRAY1
#define EZ_DARK_GRAY2              EZ_GRAY2
#define EZ_NORMAL_GRAY1            EZ_GRAY4
#define EZ_NORMAL_GRAY2            EZ_GRAY5
#define EZ_BRIGHT_GRAY1            EZ_GRAY6
#define EZ_BRIGHT_GRAY2            EZ_GRAY7
#define EZ_GRAY                    EZ_GRAY3
#endif

/*******************************************************************
 ***                                                             ***
 ***                Forward Declarations.                        ***
 ***                                                             ***
 ******************************************************************/
#define EZ_InvertMatrix(inv,mat)      EZ_InvertMatrix4_((inv),(mat),0)
#define EZ_InverseTranspose(inv,mat)  EZ_InvertMatrix4_((inv),(mat),1)
/*
 * From EZ_Render.c
 */
#ifndef _EZ_RENDER_C_
EXTERN void              EZ_PolygonMode MY_ANSIARGS((int face, int mode));
EXTERN void              EZ_FrontFace MY_ANSIARGS((int face));
EXTERN void              EZ_CullFace MY_ANSIARGS((int face));
EXTERN void              EZ_Color3f MY_ANSIARGS((float x, float y, float z));
EXTERN void              EZ_Color3fv MY_ANSIARGS((float *rgb));
EXTERN void              EZ_Color4f MY_ANSIARGS((float x, float y, float z, float w));
EXTERN void              EZ_Color4fv  MY_ANSIARGS((float *rgba));
EXTERN void              EZ_Index  MY_ANSIARGS((int idx));
EXTERN void              EZ_Indexf  MY_ANSIARGS((float fidx));
EXTERN void              EZ_Indexi  MY_ANSIARGS((int idx));

EXTERN void              EZ_Normal3f MY_ANSIARGS((float x, float y, float z));
EXTERN void              EZ_Normal3fv MY_ANSIARGS((float *xyz));

EXTERN void              EZ_Vertex3f MY_ANSIARGS((float x, float y, float z));
EXTERN void              EZ_Vertex3fv MY_ANSIARGS((float *xyz));
EXTERN void              EZ_Vertex2f MY_ANSIARGS((float x, float y));
EXTERN void              EZ_Vertex2fv  MY_ANSIARGS((float *xyz));

EXTERN void              EZ_Begin  MY_ANSIARGS((int what));
EXTERN void              EZ_End  MY_ANSIARGS((void));
EXTERN void              EZ_SetTQMeshSize  MY_ANSIARGS((int rows, int cols));
#endif

/*
 * From EZ_String.c
 */
#ifndef _EZ_STRING_C_
EXTERN void       EZ_SetVectorFont MY_ANSIARGS((int fid));
EXTERN void       EZ_SetBitmapFont  MY_ANSIARGS((char *fname));
EXTERN void       EZ_CMove2f  MY_ANSIARGS((float x, float y)); 
EXTERN void       EZ_CMove3f MY_ANSIARGS((float x, float y, float z)); 
EXTERN void       EZ_CMove3v MY_ANSIARGS((float *xyz)); 
EXTERN void       EZ_CMoveScreen2f  MY_ANSIARGS((float x, float y)); 
EXTERN void       EZ_CMoveScreen3f MY_ANSIARGS((float x, float y, float z)); 
EXTERN void       EZ_CMoveScreen3fv MY_ANSIARGS((float *xyz)); 
EXTERN void       EZ_DrawString MY_ANSIARGS((int font, char *str)); 
#endif

/*
 * From EZ_LightMaterial.c
 */
#ifndef _EZ_LIGHTMATERIAL_C_
EXTERN void         EZ_ColorMaterial MY_ANSIARGS((int face, int mode));
EXTERN void         EZ_ShadeModel MY_ANSIARGS((int mode));
EXTERN void         EZ_Materialfv MY_ANSIARGS((int face, int attr, float *values));
EXTERN void         EZ_Lightfv MY_ANSIARGS((int num, int attr, float *values));
EXTERN void         EZ_LightModelfv MY_ANSIARGS((int attr, float *values));
EXTERN void         EZ_Materialf MY_ANSIARGS((int face, int attr, float values));
EXTERN void         EZ_Lightf MY_ANSIARGS((int num, int attr, float values));
EXTERN void         EZ_LightModelf MY_ANSIARGS((int attr, float values));
#endif

/*
 * From EZ_LightMaterial1.c
 */
#ifndef _EZ_LIGHTMATERIAL1_C_
EXTERN void                EZ_BindMaterial MY_ANSIARGS((int face, EZ_Material *mat));
EXTERN void                EZ_BindLightSrc MY_ANSIARGS((int num, EZ_LightSrc *lghtsrc));
EXTERN void                EZ_BindLight MY_ANSIARGS((int num, EZ_LightSrc *lghtsrc));
EXTERN void                EZ_BindLightModel MY_ANSIARGS((EZ_LightModel *lghtmodel));
EXTERN EZ_Material         *EZ_GetDefaultMaterial MY_ANSIARGS((int idx));
EXTERN EZ_Material         *EZ_DefineMaterial MY_ANSIARGS((float *definition));
EXTERN EZ_LightSrc         *EZ_DefineLightSrc MY_ANSIARGS((float *definition));
EXTERN EZ_LightSrc         *EZ_DefineLight MY_ANSIARGS((float *definition));
EXTERN EZ_LightModel       *EZ_DefineLightModel MY_ANSIARGS((float *definition));
EXTERN void                EZ_MakeColorMapForMaterial MY_ANSIARGS((EZ_Material *mat, int n1, int n2));
#endif
/*
 * From EZ_Fog.c
 */
#ifndef _EZ_FOG_C_
EXTERN void      EZ_Fogfv MY_ANSIARGS((int name, float *values));
#endif
/*
 * From EZ_MatrixStack.c
 */
#ifndef _EZ_MATRIX_STACK_C_
EXTERN void        EZ_MatrixMode MY_ANSIARGS((int mode));
EXTERN void        EZ_PushMatrix MY_ANSIARGS((void));
EXTERN void        EZ_PopMatrix MY_ANSIARGS((void));
EXTERN void        EZ_LoadMatrix MY_ANSIARGS((EZ_Matrix mtx));
EXTERN void        EZ_MultMatrix MY_ANSIARGS((EZ_Matrix mtx));
EXTERN void        EZ_LoadIdentity MY_ANSIARGS((void));
EXTERN void        EZ_GetMatrix MY_ANSIARGS((EZ_Matrix mtx));
#endif
/*
 * From EZ_MatrixTrans.c
 */
#ifndef _EZ_MATRIX_TRANS_C_
EXTERN void             EZ_Scale MY_ANSIARGS((float x, float y, float z));
EXTERN void             EZ_Translate  MY_ANSIARGS((float x, float y, float z));
EXTERN void             EZ_Rotate  MY_ANSIARGS((float angle, float x, float y, float z));
EXTERN void             EZ_GenerateRotationMatrix MY_ANSIARGS((EZ_Matrix mtx, float angle, float x, float y, float z));
#endif

/*
 * From EZ_MatrixVect.c
 */
#ifndef _EZ_MATRIX_VECT_C_
EXTERN void      EZ_CopyVector MY_ANSIARGS((EZ_Vector des, EZ_Vector src));
EXTERN void      EZ_CopyMatrix MY_ANSIARGS((EZ_Matrix des, EZ_Matrix src));
EXTERN void      EZ_CopyTransposeMatrix MY_ANSIARGS((EZ_Matrix des, EZ_Matrix src));
EXTERN void      EZ_IdentityMatrix MY_ANSIARGS((EZ_Matrix mtx));
EXTERN void      EZ_ZeroMatrix MY_ANSIARGS((EZ_Matrix mtx));
EXTERN void      EZ_InvertMatrix4_ MY_ANSIARGS((EZ_Matrix imtx, EZ_Matrix mtx, int transp));
EXTERN void      EZ_MultiplyMatrix  MY_ANSIARGS((EZ_Matrix ans, EZ_Matrix a, EZ_Matrix b));
EXTERN void      EZ_MultVM MY_ANSIARGS((EZ_Vector ans, EZ_Vector v, EZ_Matrix m));
#endif
/*
 * From EZ_ProjView.c
 */
#ifndef _EZ_PROJ_VIEW_C_
EXTERN void   EZ_Ortho2 MY_ANSIARGS(( float   left, float right,
				      float   bottom, float top));
EXTERN void   EZ_Ortho MY_ANSIARGS(( float   left, float right,
				     float   bottom, float top,
				     float near, float far));
EXTERN void   EZ_Frustum MY_ANSIARGS(( float   left, float right,
				       float   bottom, float top,
				       float near, float far));
EXTERN void   EZ_Perspective MY_ANSIARGS(( float   fov, float aspect,
					   float   near, float far));
EXTERN void   EZ_LookAt MY_ANSIARGS((float  vx, float vy, float vz,
				     float  px, float py, float pz,
				     float  ux, float uy, float uz));
#endif
/*
 * From EZ_World2Screen.c
 */
#ifndef _EZ_WORLD_2_SCREEN_C_
EXTERN void         EZ_World2Screen MY_ANSIARGS((float *ptr, int *x, int *y, float *z));
EXTERN void         EZ_Screen2World MY_ANSIARGS((int x, int y, float *fx, float *fy));
#endif
/*
 * From EZ_InitGL.c
 */
#ifndef _EZ_INIT_GL_C_
EXTERN void                   EZ_InitializeGL  MY_ANSIARGS((void));
EXTERN void                   EZ_GLExit  MY_ANSIARGS((void));
#endif
/*
 * From EZ_Color.c
 */
#ifndef _EZ_COLOR_C_
EXTERN void           EZ_MapColor MY_ANSIARGS((int idx, int r, int g, int b));
EXTERN void           EZ_ColorMapMode MY_ANSIARGS((void));
EXTERN void           EZ_RGBMode MY_ANSIARGS((void));
EXTERN int            EZ_GetNumberOfReservedColorsForGL MY_ANSIARGS((void));
EXTERN int            EZ_GetNumberOfAllocatedColors MY_ANSIARGS((void));
EXTERN unsigned long  EZ_AllocateColorFromRGB MY_ANSIARGS((int r, int g, int b));
EXTERN unsigned long  EZ_AllocateColorFromName MY_ANSIARGS((char *name));
EXTERN void           EZ_PixelValue2RGB MY_ANSIARGS((unsigned long pv, int *r, int *g, int *b));
EXTERN void           EZ_SetKbdHighlightColorRGB MY_ANSIARGS((int r, int g, int b));
EXTERN void           EZ_SetKbdHighlightColor MY_ANSIARGS((char *name));
EXTERN int            EZ_SetGlobalBackground MY_ANSIARGS((char *name));
EXTERN int            EZ_SetGlobalForeground MY_ANSIARGS((char *name));
#endif

/*
 * From EZ_Sphere.c
 */
#ifndef _EZ_SPHERE_C_
EXTERN void EZ_Sphere MY_ANSIARGS((int type, int level, float x, float y, float z, float radius));
#endif

/*
 * From EZ_Sphere.c
 */
#ifndef _EZ_TUBE_C_
EXTERN void   EZ_Tube MY_ANSIARGS((float *ptr, int npts, int nsides));
#endif

/*
 * From EZ_Polyhedra.c
 */
#ifndef _EZ_POLYHEDRA_C_
EXTERN void         EZ_Tetrahedron MY_ANSIARGS((float x, float y, float z, float r));
EXTERN void         EZ_Cube MY_ANSIARGS((float x, float y, float z, float r));
EXTERN void         EZ_Octahedron MY_ANSIARGS((float x, float y, float z, float r));
EXTERN void         EZ_Dodecahedron MY_ANSIARGS((float x, float y, float z, float r));
EXTERN void         EZ_Icosahedron MY_ANSIARGS((float x, float y, float z, float r));
#endif
/*
 * From EZ_GLEvent.c
 */
#ifndef _EZ_GL_EVENT_C_
EXTERN int   EZ_XEvent2GLEvent MY_ANSIARGS((void *widget, XEvent *event));
EXTERN int   EZ_GLNextEvent MY_ANSIARGS((void *widget, XEvent *event));
EXTERN int   EZ_EnterEvent MY_ANSIARGS(( void *widget,
					 int             event_type,
					 int             *value));
EXTERN int   EZ_GLEnterEvent MY_ANSIARGS(( void *widget,
					   int             event_type,
					   int             *values));
EXTERN void  EZ_GLResetEvents MY_ANSIARGS((void *widget));
#endif
/*
 * From EZ_DpyList.c
 */
#ifndef _EZ_DPY_LIST_C_
EXTERN void          EZ_CallList MY_ANSIARGS((int list));
EXTERN void          EZ_CallLists MY_ANSIARGS((int start, int range));
EXTERN int           EZ_GenLists MY_ANSIARGS((int range));
EXTERN void          EZ_DeleteList MY_ANSIARGS((int list));
EXTERN void          EZ_DeleteLists  MY_ANSIARGS((int start, int range));
EXTERN void          EZ_NewList  MY_ANSIARGS((int lnum, int mode));
EXTERN void          EZ_EndList  MY_ANSIARGS((void));
EXTERN int           EZ_IsList  MY_ANSIARGS((int lnum));
#endif
/*
 * From EZ_Buffer.c
 */
#ifndef _EZ_BUFFERS_C_
EXTERN void                 EZ_LogicOp  MY_ANSIARGS((int op));
EXTERN void                 EZ_DrawBuffer MY_ANSIARGS((int buf));
EXTERN void                 EZ_SwapBuffers MY_ANSIARGS((void));
EXTERN void                 EZ_Clear MY_ANSIARGS((int flag));
EXTERN void                 EZ_ClearColorf MY_ANSIARGS((float r, float g, float b, float a));
EXTERN void                 EZ_ClearIndex MY_ANSIARGS((int idx));
EXTERN void                 EZ_SetBackBuffer MY_ANSIARGS((int buf));
EXTERN void                 EZ_AutoSelectBackBuffer MY_ANSIARGS((void));
EXTERN void                 EZ_SelectFastBackBuffer MY_ANSIARGS((void));
#endif

#ifndef _EZ_GLIMAGE_C_
EXTERN EZ_GLImage *EZ_CreateGLImage MY_ANSIARGS((EZ_Bitmap *pixmap));
EXTERN void        EZ_FreeGLImage MY_ANSIARGS((EZ_GLImage *glimage));

EXTERN void EZ_PutGLImage MY_ANSIARGS((EZ_GLImage *glimage, int Sx, int Sy, int Sw,
				       int Sh, float fx, float fy, float fz));
EXTERN void EZ_PutGLImageScreen MY_ANSIARGS((EZ_GLImage *glimage, int Sx, int Sy, int Sw,
					     int Sh, float fx, float fy, float fz));
EXTERN void EZ_PutGLImageWindow MY_ANSIARGS((EZ_GLImage *glimage, int Sx, int Sy, int Sw,
					     int Sh, int ix, int iy));
EXTERN void EZ_PutGLImageXWindow MY_ANSIARGS((EZ_GLImage *glimage, int Sx, int Sy, int Sw,
					     int Sh, int ix, int iy));
EXTERN int EZ_GetGLImageInfo MY_ANSIARGS((EZ_GLImage *image,
				   Pixmap *p_ret, Pixmap *s_ret, int *w, int *h));
#endif

/*
 * From EZ_Enable.c
 */
#ifndef _EZ_ENABLE_C_
EXTERN void         EZ_Enable MY_ANSIARGS((int mode));
EXTERN void         EZ_Disable MY_ANSIARGS((int mode));
#endif

#ifndef _EZ_GL_ERROR_C_
void EZ_GLError MY_ANSIARGS((char *func, char *msg));
void EZ_GLFatal MY_ANSIARGS((char *func, char *msg));
#endif

/*******************************************************************
 ***                                                             ***
 ***                Forward Declarations.                        ***
 ***                                                             ***
 ******************************************************************/
#ifndef _EZ_WIDGET_C_
EXTERN  EZ_Widget            *EZ_CreateNewWidget MY_ANSIARGS((EZ_Widget *parent));
EXTERN  void                  EZ_DestroyWidget MY_ANSIARGS((EZ_Widget *widget));
EXTERN  void                  EZ_RemoveWidget MY_ANSIARGS((EZ_Widget *widget));
EXTERN  void                  EZ_DestroyWidgetReal MY_ANSIARGS((EZ_Widget *widget));
EXTERN  void                  EZ_GetWidgetLabelPosition MY_ANSIARGS((EZ_Widget *widget, int *x, int *y));
EXTERN  void                  EZ_SetWidgetPosition MY_ANSIARGS((EZ_Widget *widget, int x, int y));
EXTERN  void                  EZ_SetWidgetWidth MY_ANSIARGS((EZ_Widget *widget, int width));
EXTERN  void                  EZ_SetWidgetHeight MY_ANSIARGS((EZ_Widget *widget, int height));
EXTERN  void                  EZ_GetWidgetPosition MY_ANSIARGS((EZ_Widget *widget, int *x, int *y));
EXTERN  int                   EZ_GetWidgetWidth MY_ANSIARGS((EZ_Widget *widget));
EXTERN  int                   EZ_GetWidgetHeight MY_ANSIARGS((EZ_Widget *widget));
EXTERN  int                   EZ_GetWidgetMinWidth MY_ANSIARGS((EZ_Widget *widget));
EXTERN  int                   EZ_GetWidgetMinHeight MY_ANSIARGS((EZ_Widget *widget));
EXTERN  int                   EZ_GetWidgetBorderWidth MY_ANSIARGS((EZ_Widget *widget));
EXTERN  void                  EZ_GetWidgetPaddings MY_ANSIARGS((EZ_Widget *wg, int *px, int *py, int *pb));
EXTERN  void                  EZ_GetWidgetBorder MY_ANSIARGS((EZ_Widget *wg, int *bw, int *bs));
EXTERN  void                  EZ_GetWidgetDimension MY_ANSIARGS((EZ_Widget *widget, int *w, int *h));
EXTERN  void                  EZ_GetWidgetGeometry MY_ANSIARGS((EZ_Widget *widget, int *x,int *y, int *w, int *h));
EXTERN  void                  EZ_GetWidgetAbsoluteGeometry MY_ANSIARGS((EZ_Widget *widget, int *x,int *y, int *w, int *h));
EXTERN  void                  EZ_GetWidgetMinDimension MY_ANSIARGS((EZ_Widget *widget, int *w, int *h));
EXTERN  void                  EZ_DisableWidget MY_ANSIARGS((EZ_Widget *widget));
EXTERN  void                  EZ_EnableWidget MY_ANSIARGS((EZ_Widget *widget));
EXTERN  void                  EZ_DisableWidgetTree MY_ANSIARGS((EZ_Widget *widget));
EXTERN  void                  EZ_EnableWidgetTree MY_ANSIARGS((EZ_Widget *widget));
EXTERN  int                   EZ_SetWidgetLabelString MY_ANSIARGS((EZ_Widget *widget, char *str));
EXTERN  char                  *EZ_GetWidgetLabelString MY_ANSIARGS((EZ_Widget *widget));
EXTERN  int                   EZ_GetWidgetIntData MY_ANSIARGS((EZ_Widget *widget));
EXTERN void                  EZ_GetWidgetClientData MY_ANSIARGS((EZ_Widget *widget, int *i, void **p));
EXTERN  void                  *EZ_GetWidgetPtrData MY_ANSIARGS((EZ_Widget *widget));
EXTERN  int                   EZ_GetWidgetReturnedData MY_ANSIARGS((EZ_Widget *widget));
EXTERN  int                   EZ_GetWidgetReturnData MY_ANSIARGS((EZ_Widget *widget));
EXTERN  void                  EZ_SetWidgetIntData MY_ANSIARGS((EZ_Widget *widget, int idata));
EXTERN  void                  EZ_SetWidgetPtrData MY_ANSIARGS((EZ_Widget *widget, void *ptr));
EXTERN void                   EZ_SetWidgetClientData MY_ANSIARGS((EZ_Widget *widget, int i, void *p));
EXTERN  void                  EZ_HideWidget MY_ANSIARGS((EZ_Widget *widget));
EXTERN  void                  EZ_DeActivateWidget MY_ANSIARGS((EZ_Widget *widget));
EXTERN  void                  EZ_ActivateWidget MY_ANSIARGS((EZ_Widget *widget));
EXTERN  void                  EZ_FreezeWidget MY_ANSIARGS((EZ_Widget *widget));
EXTERN  void                  EZ_UnFreezeWidget MY_ANSIARGS((EZ_Widget *widget));

EXTERN  void                  EZ_GetBackgroundGC MY_ANSIARGS((EZ_Widget *widget,
						      GC *gc, unsigned long *pv,
						      int highlight, int specialhighlight));
EXTERN void                  EZ_GetParentBgGCN MY_ANSIARGS((EZ_Widget *widget,
						      GC *gc, unsigned long *pv));
EXTERN  void                  EZ_GetBackgroundPV MY_ANSIARGS((EZ_Widget *widget,
						      unsigned long *pv, 
						      int hlight, int specialhlight));
EXTERN  unsigned long        EZ_GetForegroundPV MY_ANSIARGS((EZ_Widget *widget));

EXTERN  void                  EZ_GetDarkBDGC MY_ANSIARGS((EZ_Widget *widget, GC *gc));
EXTERN  void                  EZ_GetDarkBDpv MY_ANSIARGS((EZ_Widget *widget, unsigned long *pv));
EXTERN  void                  EZ_GetBrightBDGC MY_ANSIARGS((EZ_Widget *widget, GC *gc));
EXTERN  void                  EZ_GetBrightBDpv MY_ANSIARGS((EZ_Widget *widget, unsigned long *pv));
EXTERN  void                  EZ_GetDarkBrightNormalBDGC MY_ANSIARGS((EZ_Widget *widget, GC *dk, GC *bt, GC *ngc));
EXTERN  int                   EZ_GetWidgetOrientation MY_ANSIARGS((EZ_Widget *widget));

EXTERN  void                  EZ_SetWidgetCallBack MY_ANSIARGS((EZ_Widget *widget, EZ_CallBack callback, void *data));
EXTERN  void                  EZ_AddWidgetCallBack MY_ANSIARGS((EZ_Widget *widget, int wlist,
								EZ_CallBack callback, void *data,int where));
EXTERN  void                  EZ_RemoveWidgetCallBack MY_ANSIARGS((EZ_Widget *widget, int wlist,
								   EZ_CallBack callback, void *data));
EXTERN  void                  EZ_RemoveAllWidgetCallBacks MY_ANSIARGS((EZ_Widget *widget, int wlist));

EXTERN  void                  EZ_AddEventHandler MY_ANSIARGS((EZ_Widget *widget, EZ_EventHandler handler,
						      void *data, int where));
EXTERN  void                  EZ_RemoveEventHandler MY_ANSIARGS((EZ_Widget *widget, EZ_EventHandler handler, void *data));
EXTERN  void                  EZ_RemoveAllEventHandlers MY_ANSIARGS((EZ_Widget *widget));
EXTERN  int                   EZ_GetWidgetUnknownData MY_ANSIARGS((EZ_Widget *widget, int idx,
								   EZ_UnknownDataType *ret));
EXTERN  void                  EZ_SetWidgetUnknownData  MY_ANSIARGS((EZ_Widget *widget, int idx,
								    EZ_UnknownDataType data));
EXTERN EZ_UnknownDataType     *EZ_GetWidgetUnknownDataPtr MY_ANSIARGS((EZ_Widget *widget));

EXTERN EZ_Widget             *EZ_GetParentWidget MY_ANSIARGS((EZ_Widget *widget));
EXTERN EZ_Widget             *EZ_GetChildrenWidget MY_ANSIARGS((EZ_Widget *widget));
EXTERN EZ_Widget             *EZ_GetSiblingWidget MY_ANSIARGS((EZ_Widget *widget));

#endif

/*
 * From EZ_WidgetInit.c
 */
#ifndef _EZ_WIDGET_INIT_C_
EXTERN void EZ_InitializeXrm MY_ANSIARGS((char *className, XrmOptionDescRec *optsTable,
					  int noptions, int *argc, char **argv,
					  char *fbkresrc,int initgl));
EXTERN  void    EZ_Initialize MY_ANSIARGS((int ac, char **av, int flag));
EXTERN  Display *EZ_GetDisplay MY_ANSIARGS((void));
EXTERN  Visual  *EZ_GetVisual MY_ANSIARGS((void));
EXTERN  Colormap EZ_GetColormap MY_ANSIARGS((void));
EXTERN  Window   EZ_GetWidgetWindow MY_ANSIARGS((EZ_Widget *widget));
EXTERN  int      EZ_GetDepth  MY_ANSIARGS((void));
EXTERN  Window  EZ_GetCommunicationWindow MY_ANSIARGS((void));
EXTERN  int     EZ_GetScreen MY_ANSIARGS((void));
EXTERN  void    EZ_GetDisplayInfo MY_ANSIARGS((Display **dpy, int *scrn, Visual **vis, int *depth));
EXTERN  void    EZ_GetDisplaySize MY_ANSIARGS((int *w, int *h));
EXTERN  void    EZ_SetApplicationName MY_ANSIARGS((char *name));
EXTERN  char    *EZ_GetApplicationName MY_ANSIARGS((void));
EXTERN  void    EZ_DisableHighlight MY_ANSIARGS((void));
EXTERN  void    EZ_EnableHighlight MY_ANSIARGS((void));
EXTERN  void    EZ_DisableLabelOffset MY_ANSIARGS((void));
EXTERN  void    EZ_EnableLabelOffset MY_ANSIARGS((void));
EXTERN  void    EZ_DisableSliderDepression MY_ANSIARGS((void));
EXTERN  void    EZ_EnableSliderDepression MY_ANSIARGS((void));
EXTERN  void    EZ_Shutdown MY_ANSIARGS((void));
EXTERN  void    EZ_DisableImageDithering MY_ANSIARGS((void));
EXTERN  void    EZ_EnableImageDithering MY_ANSIARGS((void));
EXTERN  void    EZ_EnableBubbleHelp MY_ANSIARGS((void));
EXTERN  void    EZ_DisableBubbleHelp MY_ANSIARGS((void));

EXTERN  void    EZ_SetClientMessageHandler MY_ANSIARGS((EZ_EventHandler handler, void *data ));
EXTERN  void    EZ_FlashWidgetWindowBorder MY_ANSIARGS((EZ_Widget *widget, Drawable drawable,
						int x, int y, int w,int h));
EXTERN  void    EZ_FlashWidgetBorder MY_ANSIARGS((EZ_Widget *widget));
EXTERN  void    EZ_StartAsIcon MY_ANSIARGS((int));
EXTERN char    *EZ_LibraryVersion MY_ANSIARGS((void));
EXTERN EZ_Widget *EZ_GetBubbleHelp MY_ANSIARGS((void));
#endif

/*
 * From EZ_WidgetFrame.c
 */
#ifndef _EZ_WIDGET_FRAME_C_
EXTERN EZ_Widget         *EZ_CreateFrame MY_ANSIARGS((EZ_Widget *parent, char *label));
#endif

/*
 * From EZ_WidgetLabel.c
 */
#ifndef _EZ_WIDGET_LABEL_C_
EXTERN EZ_Widget  *EZ_CreateLabel MY_ANSIARGS((EZ_Widget *parent, char *label));
#endif
/*
 * From EZ_WidgetButtonN.c
 */
#ifndef _EZ_WIDGET_BUTTONN_C_
EXTERN EZ_Widget  *EZ_CreateButton MY_ANSIARGS((EZ_Widget *parent, char *label, int undline));
#endif

/*
 * From EZ_WidgetButtonC.c
 */
#ifndef _EZ_WIDGET_BUTTONC_C_
EXTERN EZ_Widget        *EZ_CreateCheckButton MY_ANSIARGS((EZ_Widget *parent,
							   char *label,
							   int underline,
							   int onvalue, int offvalue, int onff ));
EXTERN void             EZ_SetCheckButtonState MY_ANSIARGS((EZ_Widget *widget, int onoff));
EXTERN int              EZ_GetCheckButtonState MY_ANSIARGS((EZ_Widget *widget, int *value));
#endif
/*
 * From EZ_WidgetButtonR.c
 */
#ifndef _EZ_WIDGET_BUTTONR_C_
EXTERN EZ_Widget         *EZ_CreateRadioButton MY_ANSIARGS((EZ_Widget *parent, char *lab, int ul, int gp, int val));
EXTERN void              EZ_SetRadioButtonGroupVariableValue MY_ANSIARGS((EZ_Widget *widget, int value));
EXTERN int               EZ_GetRadioButtonGroupVariableValue MY_ANSIARGS((EZ_Widget *widget));
EXTERN int               EZ_GetRadioButtonGroupID MY_ANSIARGS((EZ_Widget *widget));
#endif

/*
 * From EZ_WidgetButtonM.c
 */
#ifndef _EZ_WIDGET_BUTTONM_C_
EXTERN EZ_Widget  *EZ_CreateMenuButton MY_ANSIARGS((EZ_Widget *parent, char *label, int undline));
EXTERN void              EZ_SetMenuButtonMenu MY_ANSIARGS((EZ_Widget *widget, EZ_Widget *menu));
EXTERN EZ_Widget         *EZ_GetMenuButtonMenu MY_ANSIARGS((EZ_Widget *widget));
EXTERN int               EZ_LookForPopupShortCuts MY_ANSIARGS((EZ_Widget *widget, int modfiers, 
							char *str, int *x, int *y, 
							EZ_Widget **item));
EXTERN int               EZ_MatchCharIgnoreCase MY_ANSIARGS((char c1, char c2));
#endif
/*
 * From EZ_WidgetSlider.c
 */
#ifndef _EZ_WIDGET_SLIDER_C_
EXTERN EZ_Widget   *EZ_CreateSlider  MY_ANSIARGS((EZ_Widget *parent, char *lab, 
					   float mnv, float mxv, float initv, int type));
EXTERN void         EZ_SetSliderValue  MY_ANSIARGS((EZ_Widget *widget, float value));
EXTERN float        EZ_GetSliderValue  MY_ANSIARGS((EZ_Widget *widget));
EXTERN void         EZ_SetSliderRange MY_ANSIARGS((EZ_Widget *widget, float f, float t));
#endif
/*
 * From EZ_WidgetMenuItems.c
 */
#ifndef _EZ_WIDGET_MENU_ITEMS_C_
EXTERN EZ_Widget        *EZ_CreateMenuSeparator MY_ANSIARGS((EZ_Widget *parent));
EXTERN EZ_Widget        *EZ_CreateMenuSubMenu MY_ANSIARGS((EZ_Widget *parent, char *lab, int udl));
EXTERN EZ_Widget        *EZ_CreateMenuNormalButton MY_ANSIARGS((EZ_Widget *parent, char *lab, int udl, int ret));
EXTERN EZ_Widget        *EZ_CreateMenuCheckButton MY_ANSIARGS((EZ_Widget *parent, char *lab, int udl, 
							int onv, int offv, int onoff, int ret));
EXTERN EZ_Widget        *EZ_CreateMenuRadioButton MY_ANSIARGS((EZ_Widget *parent, char *lab, int udl,
							int gid, int val, int ret));
EXTERN void             EZ_SetSubMenuMenu MY_ANSIARGS((EZ_Widget *widget, EZ_Widget *menu));
EXTERN EZ_Widget        *EZ_GetMenuItemCompaion MY_ANSIARGS((EZ_Widget *widget));
#endif

/*
 * From EZ_WidgetGeom.c
 */
#ifndef _EZ_WIDGET_GEOM_C_
EXTERN void                 EZ_ComputeWidgetWindowSize MY_ANSIARGS((EZ_Widget *widget,
							     int *w, int *h,
							     EZ_Widget *dirtyAns));
EXTERN void                 EZ_SetChildrenPositionAndSize MY_ANSIARGS((EZ_Widget *widget, int w, int h));
#endif

/*
 * From EZ_WidgetDisp.c
 */
#ifndef _EZ_WIDGET_DISP_C_
EXTERN void                 EZ_DisplayWidget MY_ANSIARGS((EZ_Widget *widget));
EXTERN void                 EZ_DisplayWidgetUnderPointer MY_ANSIARGS((EZ_Widget *widget, int x, int y));
EXTERN void                 EZ_ReDisplayWidget MY_ANSIARGS((EZ_Widget *widget));
EXTERN void                 EZ_DrawWidget MY_ANSIARGS((EZ_Widget *widget));
EXTERN void                 EZ_MakeWidgetWindows MY_ANSIARGS((EZ_Widget *widget));
#endif

/*
 * From EZ_Focus.c
 */
#ifndef _EZ_FOCUS_C_
EXTERN int  EZ_FocusNextWidget MY_ANSIARGS(( EZ_Widget *widget, int dir));
EXTERN void EZ_SetFocusTo MY_ANSIARGS(( EZ_Widget *widget));
EXTERN EZ_Widget *EZ_GetFocus MY_ANSIARGS((void));
#endif
/*
 * From EZ_WidgetHash.c
 */
#ifndef _EZ_WIDGET_HASH_C_
EXTERN EZ_Bitmap         *EZ_CreateLabelPixmapFromXpmFile MY_ANSIARGS((char *file));
EXTERN EZ_Bitmap         *EZ_CreateLabelPixmapFromXpmData MY_ANSIARGS((char **data));
EXTERN EZ_Bitmap         *EZ_CreateLabelPixmapFromXBitmapFile MY_ANSIARGS((char *file));
EXTERN EZ_Bitmap         *EZ_CreateLabelPixmapFromXBitmapData MY_ANSIARGS((char *file, unsigned int w, unsigned int h));
EXTERN EZ_Bitmap         *EZ_CreateLabelPixmapFromImageFile MY_ANSIARGS((char *file));
EXTERN void              EZ_FreeLabelPixmap MY_ANSIARGS((EZ_Bitmap *bitmap));
EXTERN void              EZ_FreeXPixmap MY_ANSIARGS((Pixmap pixmap));
EXTERN void              EZ_FreeBitmap  MY_ANSIARGS((EZ_Bitmap *bitmap));
EXTERN int               EZ_GetLabelPixmapInfo MY_ANSIARGS((EZ_Bitmap *bitmap,Pixmap *p_ret, 
							    Pixmap *s_ret, int *w, int *h));

EXTERN EZ_Widget         *EZ_WindowIsWidgetWindow  MY_ANSIARGS((Window window));
EXTERN EZ_Widget         *EZ_WidgetExist  MY_ANSIARGS((EZ_Widget *widget));
EXTERN void              EZ_SetIconPath MY_ANSIARGS((char *path));
EXTERN char              *EZ_GetIconPath MY_ANSIARGS((void));
#endif
/*
 * From EZ_WidgetPopup.c
 */
#ifndef _EZ_WIDGET_POPUP_C_
EXTERN EZ_Widget         *EZ_CreatePopupMenu MY_ANSIARGS((char *title));
EXTERN EZ_Widget         *EZ_CreateMenu MY_ANSIARGS((char *title));
EXTERN EZ_Widget         *EZ_CreateMenu MY_ANSIARGS((char *title));
EXTERN EZ_Widget         *EZ_GetPopupMenuTitleWidget MY_ANSIARGS((EZ_Widget *widget));
EXTERN int               EZ_DoPopup MY_ANSIARGS((EZ_Widget *widget, int where));
EXTERN int               EZ_DoPopupAt MY_ANSIARGS((EZ_Widget *widget, int x, int y));
EXTERN EZ_Widget         *EZ_GetSelectedMenuItem MY_ANSIARGS((EZ_Widget *widget));
#endif

/*
 * From EZ_WidgetInput.c
 */
#ifndef _EZ_WIDGET_INPUT_C_
EXTERN EZ_Widget        *EZ_CreateEntry MY_ANSIARGS((EZ_Widget *parent, char *init_str));
EXTERN void             EZ_SetEntryString MY_ANSIARGS((EZ_Widget *widget, char *str));
EXTERN char             *EZ_GetEntryString MY_ANSIARGS((EZ_Widget *widget));
EXTERN void             EZ_OnOffSecretEntry MY_ANSIARGS((EZ_Widget *widget, int onoff));

EXTERN void   EZ_EntryEditDeleteChar MY_ANSIARGS((EZ_Widget *widget, int dir));
EXTERN void   EZ_EntryEditBeginOfInput MY_ANSIARGS((EZ_Widget *widget));
EXTERN void   EZ_EntryEditBeginningOfInput MY_ANSIARGS((EZ_Widget *widget));
EXTERN void   EZ_EntryEditEndOfInput MY_ANSIARGS((EZ_Widget *widget));
EXTERN void   EZ_EntryEditForeward MY_ANSIARGS((EZ_Widget *widget));
EXTERN void   EZ_EntryEditBackward MY_ANSIARGS((EZ_Widget *widget));
EXTERN void   EZ_EntryEditSetMarker MY_ANSIARGS((EZ_Widget *widget));
EXTERN void   EZ_EntryEditKillRegion MY_ANSIARGS((EZ_Widget *widget));
EXTERN void   EZ_EntryEditKillEndOfLine MY_ANSIARGS((EZ_Widget *widget, int flag));
EXTERN void   EZ_EntryCopySelectedText MY_ANSIARGS((EZ_Widget *widget, int start, int end));
EXTERN void   EZ_EntryPasteSelection MY_ANSIARGS((EZ_Widget *widget));
EXTERN void   EZ_EntryEditInsertString  MY_ANSIARGS((EZ_Widget *widget, char *str));
EXTERN void   EZ_EntryEditForwardWord MY_ANSIARGS((EZ_Widget *widget));
EXTERN void   EZ_EntryEditBackwardWord MY_ANSIARGS((EZ_Widget *widget));
#endif

/*
 * From EZ_Widget3DCanvas.c
 */

#ifndef _EZ_WIDGET_3D_CANVAS_C_
EXTERN EZ_Widget       *EZ_Create3DCanvas MY_ANSIARGS((EZ_Widget *parent));
EXTERN void             EZ_Set3DCanvas MY_ANSIARGS(( EZ_Widget *widget));
EXTERN void             EZ_Configure3DCanvas MY_ANSIARGS(( EZ_Widget *widget));
EXTERN void             EZ_Set3DCanvasEventHandle MY_ANSIARGS((EZ_Widget *widget, EZ_EventHandler handler, void *data));
EXTERN void             EZ_Save3DCanvas2PPMImage MY_ANSIARGS((EZ_Widget *widget, char *fname));
EXTERN void             EZ_Save3DCanvas2PSA MY_ANSIARGS((EZ_Widget *widget, int mode,
						  int dpi, float scale, char *fname));
EXTERN void             EZ_Save3DCanvas2PS MY_ANSIARGS((EZ_Widget *widget, char *fname));
EXTERN XImage           *EZ_Read3DCanvas2XImage MY_ANSIARGS((EZ_Widget *widget));
EXTERN void             EZ_Get3DCanvasSize MY_ANSIARGS((EZ_Widget *widget, int *w, int *h));
EXTERN void             EZ_GLConfig MY_ANSIARGS((void));
#endif

/*
 * From EZ_WidgetIListBox.c
 */
#ifndef _EZ_WIDGET_ILIST_BOX_C_
EXTERN EZ_Widget        *EZ_CreateIListBox MY_ANSIARGS((EZ_Widget *parent));
EXTERN void             EZ_SetIListBoxData MY_ANSIARGS((EZ_Widget *widget, char **items, int nitems));
EXTERN void             EZ_AppendIListBoxItem MY_ANSIARGS((EZ_Widget *widget, char *item));
EXTERN void             EZ_InsertIListBoxItem MY_ANSIARGS((EZ_Widget *widget, char *item, int where));
EXTERN void             EZ_DeleteIListBoxItem MY_ANSIARGS((EZ_Widget *widget, int idx));
EXTERN void             EZ_DeleteIListBoxString MY_ANSIARGS((EZ_Widget *widget, char *str));
EXTERN void             EZ_ClearIListBox MY_ANSIARGS((EZ_Widget *widget));
EXTERN char             *EZ_GetIListBoxSelectedItem MY_ANSIARGS((EZ_Widget *widget));
EXTERN char             *EZ_GetIListBoxSelection MY_ANSIARGS((EZ_Widget *widget));
EXTERN void             EZ_ModifyIListBoxItem MY_ANSIARGS((EZ_Widget *widget, char *item, int idx));
EXTERN void             EZ_ListBoxSelectItem MY_ANSIARGS((EZ_Widget *widget, char *str));
EXTERN void             EZ_ListBoxSelectItemUsingIdx MY_ANSIARGS((EZ_Widget *widget, int idx));
#endif
/*
 * From EZ_WidgetListBox.c
 */
#ifndef _EZ_WIDGET_LIST_BOX_C_
EXTERN EZ_Widget        *EZ_CreateListBox MY_ANSIARGS((EZ_Widget *parent, int hsc, int vsc));
EXTERN void             EZ_ClearListBox MY_ANSIARGS((EZ_Widget *widget));
EXTERN void             EZ_SetListBoxItems MY_ANSIARGS((EZ_Widget *widget, char **items, int nitems));
EXTERN void             EZ_AppendListBoxItem MY_ANSIARGS((EZ_Widget *widget, char *item));
EXTERN void             EZ_InsertListBoxItem MY_ANSIARGS((EZ_Widget *widget, char *str, int idx));
EXTERN void             EZ_DeleteListBoxItem MY_ANSIARGS((EZ_Widget *widget, int idx));
EXTERN void             EZ_DeleteListBoxString MY_ANSIARGS((EZ_Widget *widget, char *str));
EXTERN char             *EZ_GetListBoxSelectedItem MY_ANSIARGS((EZ_Widget *widget));
EXTERN char             *EZ_GetListBoxSelection MY_ANSIARGS((EZ_Widget *widget));
EXTERN int              EZ_GetListBoxSelectionLineNumber MY_ANSIARGS((EZ_Widget *widget));

EXTERN void             EZ_GetListBoxVState MY_ANSIARGS((EZ_Widget *widget, int *total, int *page, int *first));
EXTERN void             EZ_GetListBoxHState MY_ANSIARGS((EZ_Widget *widget, int *total, int *page, int *first));
EXTERN void             EZ_SetListBoxVState MY_ANSIARGS((EZ_Widget *widget, int begin));
EXTERN void             EZ_SetListBoxHState MY_ANSIARGS((EZ_Widget *widget, int begin));
EXTERN void             EZ_SetListBoxHScrollbar MY_ANSIARGS((EZ_Widget *widget, EZ_Widget *scr));
EXTERN void             EZ_SetListBoxVScrollbar MY_ANSIARGS((EZ_Widget *widget, EZ_Widget *scr));
EXTERN void             EZ_GetListBoxWidgetComponents MY_ANSIARGS((EZ_Widget *widget, EZ_Widget **ilb, 
						      EZ_Widget **hsc,  EZ_Widget **vsc));
EXTERN void             EZ_ModifyListBoxItem MY_ANSIARGS((EZ_Widget *widget, char *item, int idx));
EXTERN void             EZ_GetListBoxState  MY_ANSIARGS((EZ_Widget *widget, int *xoff, int *fl)); 
EXTERN void             EZ_SetListBoxState  MY_ANSIARGS((EZ_Widget *widget, int xoff, int fl)); 

#endif

/*
 * From EZ_WidgetScroll.c
 */
#ifndef _EZ_WIDGET_SCROLL_C_
EXTERN EZ_Widget        *EZ_CreateScrollbar MY_ANSIARGS((EZ_Widget *widget, int type));
EXTERN void             EZ_UpdateScrollbar MY_ANSIARGS((EZ_Widget *widget, int maxs, int pags, int start));
EXTERN void             EZ_GetScrollbarState MY_ANSIARGS((EZ_Widget *widget, int *ms, int *ps, int *st));
EXTERN int              EZ_SetScrollbarDiscreteSpeed MY_ANSIARGS((EZ_Widget *widget, int speed));
EXTERN int              EZ_SetHScrollbarDiscreteSpeed MY_ANSIARGS((EZ_Widget *widget, int speed));
EXTERN int              EZ_SetVScrollbarDiscreteSpeed MY_ANSIARGS((EZ_Widget *widget, int speed));
EXTERN void             EZ_UpdateScrollbarI MY_ANSIARGS((EZ_Widget *widget, int maxs, int pags, int start));
EXTERN void             EZ_DoHScroll MY_ANSIARGS((EZ_Widget *widget, int offset, int flag));
EXTERN void             EZ_DoVScroll  MY_ANSIARGS((EZ_Widget *widget, int offset, int flag));
#endif
/*
 * From EZ_WidgetIToplevel.c
 */
#ifndef _EZ_WIDGET_ITOPLEVEL_C_
EXTERN EZ_Widget       *EZ_CreateFreeLabel MY_ANSIARGS((EZ_Widget *widget, char *label));
EXTERN EZ_Widget       *EZ_CreateIcon MY_ANSIARGS((void));
#endif

/*
 * From EZ_WidgetFont.c
 */
#ifndef _EZ_WIDGET_FONT_C_
EXTERN XFontStruct    *EZ_GetFontFromId MY_ANSIARGS((int id));
EXTERN XFontStruct    *EZ_GetFontFromName MY_ANSIARGS((char *fname));
EXTERN int            EZ_LoadXFont MY_ANSIARGS((char *fname));
EXTERN void           EZ_SetXFont MY_ANSIARGS((XFontStruct **ptr, int id));
EXTERN char           *EZ_GetFontNameFromId MY_ANSIARGS((int id));
EXTERN char           *EZ_GetFontName MY_ANSIARGS((XFontStruct *fptr));
EXTERN void           EZ_SetDefaultLabelFont MY_ANSIARGS((char *fname));
EXTERN void           EZ_SetDefaultEntryTextFont MY_ANSIARGS((char *fname));
EXTERN void           EZ_SetDefaultMenuTitleFont MY_ANSIARGS((char *fname));
EXTERN int            EZ_FontWeightIsBold MY_ANSIARGS((char *fname));
#endif
/*
 * From EZ_WidgetEvent.c
 */
#ifndef _EZ_WIDGET_EVENT_C_
EXTERN void            EZ_ServiceEvents MY_ANSIARGS((void));
EXTERN void            EZ_WaitAndServiceNextEvent MY_ANSIARGS((void));
EXTERN void            EZ_EventMainLoop MY_ANSIARGS((void));
EXTERN void            EZ_InvokePrivateEventHandler MY_ANSIARGS((XEvent *event));
EXTERN void            EZ_TiePopupMenu  MY_ANSIARGS((EZ_Widget *widget, int btnNm, int where));
EXTERN void            EZ_RemoveEvent  MY_ANSIARGS((XEvent *event));
EXTERN void            EZ_WarpPointer MY_ANSIARGS((int x, int y));
#endif
/*
 * From EZ_WidgetFile.c
 */
#ifndef _EZ_WIDGET_FILE_C_
EXTERN int  EZ_FileReadable  MY_ANSIARGS((char *name));
#endif

/*
 * From EZ_WidgetMisc.c
 */
#ifndef _EZ_WIDGET_MISC_C_
EXTERN EZ_Widget *EZ_GetToplevelWidget MY_ANSIARGS((EZ_Widget *widget));
EXTERN void EZ_CallWidgetCallbacks  MY_ANSIARGS((EZ_Widget *widget));
EXTERN void EZ_CallWidgetMotionCallbacks MY_ANSIARGS((EZ_Widget *widget));
EXTERN Window EZ_FindClientWindow  MY_ANSIARGS((Window win));
#endif

/*
 * From EZ_Misc.c
 */
#ifndef _EZ_MISC_C_
EXTERN void *EZ_Malloc MY_ANSIARGS((int nbytes));
EXTERN void *EZ_Realloc MY_ANSIARGS((void *ptr, int nbytes));
EXTERN char *EZ_AllocCopyString    MY_ANSIARGS((char *str));
EXTERN char *EZ_ReallocCopyString  MY_ANSIARGS((char *ptr, char *str));
EXTERN void EZ_Free MY_ANSIARGS((void *ptr));
EXTERN void  EZ_SitForALittleBit   MY_ANSIARGS((unsigned long length));
EXTERN void  EZ_OutOfMemory        MY_ANSIARGS((char *msg));
#endif

/*
 * From EZ_WidgetImage.c
 */
#ifndef _EZ_WIDGET_IMAGE_C_
EXTERN int   EZ_CreateXPixmapFromImageFile MY_ANSIARGS((char *file, unsigned int *w, 
							unsigned int *h, Pixmap *pix));
#endif
/*
 * From EZ_X11Init.c
 */
#ifndef _EZ_X11INIT_C_
EXTERN int  EZ_XErrorHandler MY_ANSIARGS((Display *dpy, XErrorEvent *error));
#endif
/*
 * From EZ_WidgetIText.c
 */
#ifndef _EZ_WIDGET_ITEXT_C_
EXTERN EZ_Widget        *EZ_CreateIText MY_ANSIARGS((EZ_Widget *widget, int editable));

EXTERN int              EZ_ITextGetPosition MY_ANSIARGS((EZ_Widget *widget));
EXTERN void             EZ_ITextGotoPosition MY_ANSIARGS((EZ_Widget *widget, int pos));
EXTERN int              EZ_ITextSetMarker MY_ANSIARGS((EZ_Widget *widget));
EXTERN char             *EZ_ITextGetRegionString MY_ANSIARGS((EZ_Widget *widget));
EXTERN char             *EZ_ITextGetBufferString  MY_ANSIARGS((EZ_Widget *widget));
EXTERN void             EZ_ITextLoadFile MY_ANSIARGS((EZ_Widget *widget,char *file));
EXTERN void             EZ_ITextLoadAnnotatedFile MY_ANSIARGS((EZ_Widget *widget, char *file));
EXTERN void             EZ_ITextClear MY_ANSIARGS((EZ_Widget *widget));
EXTERN void             EZ_ITextNextLine MY_ANSIARGS((EZ_Widget *widget));
EXTERN void             EZ_ITextPreviousLine MY_ANSIARGS((EZ_Widget *widget));
EXTERN void             EZ_ITextBackwardChar MY_ANSIARGS((EZ_Widget *widget));
EXTERN void             EZ_ITextForwardChar MY_ANSIARGS((EZ_Widget *widget));
EXTERN void             EZ_ITextForwardWord MY_ANSIARGS((EZ_Widget *widget));
EXTERN void             EZ_ITextBackwardWord MY_ANSIARGS((EZ_Widget *widget));
EXTERN void             EZ_ITextPreviousPage MY_ANSIARGS((EZ_Widget *widget));
EXTERN void             EZ_ITextNextPage MY_ANSIARGS((EZ_Widget *widget));
EXTERN void             EZ_ITextEndOfBuffer MY_ANSIARGS((EZ_Widget *widget));
EXTERN void             EZ_ITextBeginningOfBuffer MY_ANSIARGS((EZ_Widget *widget));
EXTERN void             EZ_ITextEndOfLine MY_ANSIARGS((EZ_Widget *widget));
EXTERN void             EZ_ITextBeginningOfLine MY_ANSIARGS((EZ_Widget *widget));
EXTERN void             EZ_ITextInsertChar MY_ANSIARGS((EZ_Widget *widget, char c));
EXTERN void             EZ_ITextDeletePreviousChar MY_ANSIARGS((EZ_Widget *widget));
EXTERN void             EZ_ITextDeleteNextChar MY_ANSIARGS((EZ_Widget *widget));
EXTERN void             EZ_ITextInsertNewLine MY_ANSIARGS((EZ_Widget *widget, int flag));
EXTERN void             EZ_ITextKillEndOfLine MY_ANSIARGS((EZ_Widget *widget));
EXTERN void             EZ_ITextKillRegion MY_ANSIARGS((EZ_Widget *widget));
EXTERN void             EZ_ITextCopyToKillBuffer MY_ANSIARGS((EZ_Widget *widget,int fx, int fy, int tx, int ty));
EXTERN void             EZ_ITextPasteSelection MY_ANSIARGS((EZ_Widget *widget));
EXTERN void             EZ_ITextReDisplay MY_ANSIARGS((EZ_Widget *widget));
EXTERN void             EZ_ITextInsertString MY_ANSIARGS((EZ_Widget *widget, char *str));
EXTERN void             EZ_ITextInsertAnnotatedString MY_ANSIARGS((EZ_Widget *widget, char *str));

EXTERN void             EZ_ITextGrowBuffer MY_ANSIARGS((EZ_Widget *widget, int incr));
EXTERN void             EZ_ITextInsertStringWithProperty MY_ANSIARGS((EZ_Widget *widget, char *str, 
							       EZ_TextProperty *prop));
EXTERN void             EZ_ITextSetRegionFont MY_ANSIARGS((EZ_Widget *widget, char *fontName));
EXTERN void             EZ_ITextSetRegionForeground MY_ANSIARGS((EZ_Widget *widget, char *clrName));
EXTERN void             EZ_ITextSetRegionBackground  MY_ANSIARGS((EZ_Widget *widget, char *clrName));
EXTERN void             EZ_ITextSetRegionUnderline  MY_ANSIARGS((EZ_Widget *widget, int flag));
EXTERN void             EZ_ITextSetRegionProperty  MY_ANSIARGS((EZ_Widget *widget, EZ_TextProperty *prop));

EXTERN void             EZ_ITextReplaceRegionWithBitmap MY_ANSIARGS((EZ_Widget *widget, char *file));
EXTERN void             EZ_ITextSaveText MY_ANSIARGS((EZ_Widget *widget, char *file));
EXTERN void             EZ_ITextSaveAnnotatedText MY_ANSIARGS((EZ_Widget *widget, char *file));
EXTERN void             EZ_PasteSelection MY_ANSIARGS((EZ_Widget *widget, Window win,
						Atom prop, int del,
						void (*insertF) MY_ANSIARGS((EZ_Widget *widget, char *str)) ));
EXTERN void             EZ_SetSelectionOwner MY_ANSIARGS((EZ_Widget *widget));
EXTERN void             EZ_HandleSelectionRequest MY_ANSIARGS((EZ_Widget *widget, XEvent *event));
#endif
/*
 * From EZ_WidgetText.c
 */
#ifndef _EZ_WIDGET_TEXT_C_
EXTERN EZ_Widget        *EZ_CreateTextWidget MY_ANSIARGS((EZ_Widget *parent, int editable, int hs,int vs));

EXTERN void             EZ_TextLoadFile MY_ANSIARGS((EZ_Widget *widget, char *fname));
EXTERN void             EZ_TextLoadAnnotatedFile MY_ANSIARGS((EZ_Widget *widget, char *fname));
EXTERN void             EZ_TextClear MY_ANSIARGS((EZ_Widget *widget));

EXTERN void             EZ_TextNextLine MY_ANSIARGS((EZ_Widget *widget));
EXTERN void             EZ_TextPreviousLine MY_ANSIARGS((EZ_Widget *widget));
EXTERN void             EZ_TextBackwardChar  MY_ANSIARGS((EZ_Widget *widget));
EXTERN void             EZ_TextForwardChar  MY_ANSIARGS((EZ_Widget *widget));
EXTERN void             EZ_TextPreviousPage  MY_ANSIARGS((EZ_Widget *widget));
EXTERN void             EZ_TextForwardWord  MY_ANSIARGS((EZ_Widget *widget));
EXTERN void             EZ_TextBackwardWord  MY_ANSIARGS((EZ_Widget *widget));
EXTERN void             EZ_TextNextPage  MY_ANSIARGS((EZ_Widget *widget));
EXTERN void             EZ_TextEndOfBuffer  MY_ANSIARGS((EZ_Widget *widget));
EXTERN void             EZ_TextBeginningOfBuffer  MY_ANSIARGS((EZ_Widget *widget));
EXTERN void             EZ_TextEndOfLine  MY_ANSIARGS((EZ_Widget *widget));
EXTERN void             EZ_TextBeginningOfLine  MY_ANSIARGS((EZ_Widget *widget));
EXTERN void             EZ_TextInsertChar  MY_ANSIARGS((EZ_Widget *widget, char c));
EXTERN void             EZ_TextDeletePreviousChar  MY_ANSIARGS((EZ_Widget *widget));
EXTERN void             EZ_TextDeleteNextChar  MY_ANSIARGS((EZ_Widget *widget));
EXTERN void             EZ_TextInsertNewLine  MY_ANSIARGS((EZ_Widget *widget));
EXTERN void             EZ_TextKillEndOfLine  MY_ANSIARGS((EZ_Widget *widget));
EXTERN void             EZ_TextKillRegion  MY_ANSIARGS((EZ_Widget *widget));
EXTERN void             EZ_TextPasteSelection  MY_ANSIARGS((EZ_Widget *widget));
EXTERN void             EZ_TextReDisplay  MY_ANSIARGS((EZ_Widget *widget));
EXTERN void             EZ_TextInsertString  MY_ANSIARGS((EZ_Widget *widget, char *str));
EXTERN void             EZ_TextInsertAnnotatedString MY_ANSIARGS((EZ_Widget *widget, char *str));
EXTERN void             EZ_TextInsertStringWithProperty  MY_ANSIARGS((EZ_Widget *widget, char *str, 
							       EZ_TextProperty *prop));

EXTERN void             EZ_TextSetRegionFont  MY_ANSIARGS((EZ_Widget *widget, char *fontname));
EXTERN void             EZ_TextSetRegionForeground  MY_ANSIARGS((EZ_Widget *widget, char *clr));
EXTERN void             EZ_TextSetRegionBackground  MY_ANSIARGS((EZ_Widget *widget, char *clr));
EXTERN void             EZ_TextSetRegionUnderline  MY_ANSIARGS((EZ_Widget *widget, int udl));
EXTERN void             EZ_TextSetRegionProperty  MY_ANSIARGS((EZ_Widget *widget, EZ_TextProperty *prop));

EXTERN void             EZ_TextReplaceRegionWithPixmap  MY_ANSIARGS((EZ_Widget *widget, char *file));
EXTERN void             EZ_TextSaveText  MY_ANSIARGS((EZ_Widget *widget, char *file));
EXTERN void             EZ_TextSaveAnnotatedText  MY_ANSIARGS((EZ_Widget *widget, char *file));
EXTERN int              EZ_TextSetMarker  MY_ANSIARGS((EZ_Widget *widget));
EXTERN int              EZ_TextGetPosition  MY_ANSIARGS((EZ_Widget *widget));
EXTERN void              EZ_TextGotoPosition  MY_ANSIARGS((EZ_Widget *widget, int pos));
EXTERN char             *EZ_TextGetRegionString  MY_ANSIARGS((EZ_Widget *widget));
EXTERN char             *EZ_TextGetBufferString  MY_ANSIARGS((EZ_Widget *widget));
EXTERN void             EZ_GetTextWidgetComponents  MY_ANSIARGS((EZ_Widget *widget,
								 EZ_Widget **itxt,
								 EZ_Widget **hscr,
								 EZ_Widget **vscr ));
#endif

/*
 * From EZ_WidgetNBPage.c
 */
#ifndef _EZ_WIDGET_NBPAGE_C_
EXTERN EZ_Widget   *EZ_CreateNoteBookPage  MY_ANSIARGS((EZ_Widget *parent, char *lab, int udl));
EXTERN void        EZ_ActivateNoteBookPage MY_ANSIARGS((EZ_Widget *widget));
EXTERN EZ_Widget   *EZ_GetNoteBookPageTab MY_ANSIARGS((EZ_Widget *widget));
#endif
/*
 * From EZ_WidgetNB.c
 */
#ifndef _EZ_WIDGET_NB_C_
EXTERN EZ_Widget   *EZ_CreateNoteBook  MY_ANSIARGS((EZ_Widget *parent));
#endif


/*
 * From EZ_WidgetPaneHandle.c
 */
#ifndef _EZ_WIDGET_PANE_HANDLE_C_
EXTERN EZ_Widget       *EZ_CreatePaneHandle MY_ANSIARGS((EZ_Widget *parent));
#endif
							
/*
 * From EZ_WidgetGrab.c
 */
#ifndef _EZ_WIDGET_GRAB_C_
EXTERN void            EZ_SetGrab MY_ANSIARGS((EZ_Widget *widget));
EXTERN void            EZ_ReleaseGrab MY_ANSIARGS((void));
EXTERN int             EZ_WidgetIsViewable MY_ANSIARGS((EZ_Widget *widget));
EXTERN void            EZ_RedisplayWidgetTree MY_ANSIARGS((EZ_Widget *widget));
EXTERN void            EZ_RaiseWidgetWindow MY_ANSIARGS((EZ_Widget *widget));
EXTERN int             EZ_GrabPointer MY_ANSIARGS((EZ_Widget *widget, Cursor csr, int tout));
EXTERN void            EZ_UngrabPointer MY_ANSIARGS((void));
EXTERN void            EZ_BlinkWidget  MY_ANSIARGS((EZ_Widget *widget, int cnt));
EXTERN void            EZ_RaiseWidgetWindow MY_ANSIARGS((EZ_Widget *widget));
#endif
/*
 * From EZ_Xpm.c
 */
#ifndef _EZ_XPM_C_
EXTERN int EZ_CreateXPixmapFromXpmData MY_ANSIARGS((char **data,
					     unsigned int *w, unsigned int *h, 
					     Pixmap *pix, Pixmap *shape));
EXTERN int EZ_CreateXPixmapFromXpmFile MY_ANSIARGS((char *file,
					     unsigned int *w, unsigned int *h, 
					     Pixmap *pix, Pixmap *shape));
EXTERN int EZ_CreateXPixmapFromBitmapFile MY_ANSIARGS((char *file,
					     unsigned int *w, unsigned int *h, 
					     Pixmap *pix, Pixmap *shape));
#endif

/*
 * From EZ_WidgetArrange.c
 */
#ifndef _EZ_WIDGET_ARRANGE_C_
EXTERN void                  EZ_InsertWidgetBefore MY_ANSIARGS((EZ_Widget *a, EZ_Widget *b));
EXTERN void                  EZ_InsertWidgetAfter MY_ANSIARGS((EZ_Widget *a, EZ_Widget *b));
EXTERN void                  EZ_SwapWidgets MY_ANSIARGS((EZ_Widget *a, EZ_Widget *b));
EXTERN void                  EZ_DestroyWidgetWindows MY_ANSIARGS((EZ_Widget *widget));
EXTERN void                  EZ_MakeWidgetWindowExist MY_ANSIARGS((EZ_Widget *widget));
#endif

/*
 * From EZ_WidgetNWLabel.c
 */
#ifndef _EZ_WIDGET_NWLABEL_C_
EXTERN EZ_Widget        *EZ_CreateNWLabel MY_ANSIARGS((EZ_Widget *parent, char *label));
EXTERN EZ_Widget        *EZ_CreateNWFrame MY_ANSIARGS((EZ_Widget *parent));

EXTERN void              EZ_DisplayNWLabel MY_ANSIARGS((EZ_Widget *widget,
							Pixmap pixmap,
							unsigned long fg, unsigned long bg,
							int disabled, int highlight,
							int xoff, int yoff, int laboff, 
							int disp_sib));
#endif

/*
 * From EZ_Timer.c
 */
#ifndef _EZ_TIMER_C_
EXTERN void        EZ_InitializeTimers MY_ANSIARGS((void));
EXTERN EZ_Timer    *EZ_CreateTimer MY_ANSIARGS((long sec, long usec,int repeat,
					 EZ_CallBack callback, void *pdata, int idata));
EXTERN void        EZ_RestartTimer  MY_ANSIARGS((EZ_Timer *timer));
EXTERN EZ_Timer    *EZ_ResetTimer MY_ANSIARGS((EZ_Timer *timer, long sec, long usec,int repeat,
					EZ_CallBack callback, void *pdata, int idata));

EXTERN void        EZ_GetTimerState MY_ANSIARGS((EZ_Timer *timer, long *sec, long *usec,int *repeat));
EXTERN void        EZ_CancelTimer MY_ANSIARGS((EZ_Timer *timer));
EXTERN void        EZ_DestroyAllTimers  MY_ANSIARGS((void));

EXTERN void        EZ_SetTimerPtrData  MY_ANSIARGS((EZ_Timer *timer, void *ptr));
EXTERN void        EZ_SetTimerIntData  MY_ANSIARGS((EZ_Timer *timer, int data));
EXTERN void        EZ_SetTimerClientData  MY_ANSIARGS((EZ_Timer *timer, void *ptr, int idata));      
EXTERN void        EZ_SetTimerCallBack  MY_ANSIARGS((EZ_Timer *timer, EZ_CallBack callback, void *data));
EXTERN void        *EZ_GetTimerPtrData      MY_ANSIARGS((EZ_Timer *timer));
EXTERN int         EZ_GetTimerIntData MY_ANSIARGS((EZ_Timer *timer));
EXTERN void        EZ_GetTimerClientData  MY_ANSIARGS((EZ_Timer *timer, void **ptr, int *idata));      
#endif

/*
 * From EZ_Comm.c
 */
#ifndef _EZ_COMM_C_
EXTERN int           EZ_WindowExist  MY_ANSIARGS((Window window));
EXTERN unsigned long EZ_WindowIsDnDTarget  MY_ANSIARGS((Window window));
EXTERN unsigned long EZ_WindowIsDnDSrc  MY_ANSIARGS((Window window));
#endif

/*
 * From EZ_WidgetEmbeder.c
 */
#ifndef _EZ_WIDGET_EMBEDER_C_
EXTERN int             EZ_MakeSnapShot MY_ANSIARGS((EZ_Widget *widget,int type, int x, int y, int w, int h));
EXTERN void            EZ_MoveSnapShotOrOutline MY_ANSIARGS((int which, int x, int y, int w, int h, int flag));
EXTERN void            EZ_SetExecutorCommand MY_ANSIARGS((EZ_Widget *widget, char *cmd, char *args));

EXTERN EZ_Widget       *EZ_CreateEmbeder MY_ANSIARGS((EZ_Widget *parent));
EXTERN EZ_Widget       *EZ_CreateExecutor MY_ANSIARGS((EZ_Widget *parent));
EXTERN void            EZ_IntersectRectangles MY_ANSIARGS((int px, int py, int pw, int ph,
						    int x, int y, int w, int h,
						    int *xr, int *yr, int *wr, int *hr));
#endif

/*
 * From EZ_Indicator.c
 */
#ifndef _EZ_INDICATOR_C_
EXTERN void             EZ_DrawIndicator MY_ANSIARGS((
					       EZ_Widget *wptr,
					       Pixmap pixmap, 
					       int onoff,
					       int type, 
					       int bwidth,
					       int adjust,
					       unsigned long color));

#endif

/*
 * From EZ_WidgetOptInput.c
 */
#ifndef _EZ_WIDGET_OPT_INPUT_C_
EXTERN EZ_Widget        *EZ_CreateOptionalEntry MY_ANSIARGS((EZ_Widget *parent, char *str, int hist, int editable));
EXTERN void              EZ_SetOptionalEntryString MY_ANSIARGS((EZ_Widget *widget, char *str));
EXTERN char             *EZ_GetOptionalEntryString MY_ANSIARGS((EZ_Widget *widget));
EXTERN void              EZ_SetOptionalEntryOptionalItems MY_ANSIARGS((EZ_Widget *widget, char **items, int count));
EXTERN void              EZ_GetOptionalEntryWidgetComponents MY_ANSIARGS((EZ_Widget *widget, 
								    EZ_Widget **entry, EZ_Widget **listbox, 
								    EZ_Widget **btn  ));
EXTERN void  EZ_OptionalEntryClearOptions     MY_ANSIARGS((EZ_Widget *widget));
EXTERN void  EZ_SetOptionalEntryOptionalItems MY_ANSIARGS((EZ_Widget *widget, char **items, int count));
EXTERN void  EZ_OptionalEntryAppendOption     MY_ANSIARGS((EZ_Widget *widget, char *item));
EXTERN void  EZ_OptionalEntryInsertListOption MY_ANSIARGS((EZ_Widget *widget, char *str, int idx));
EXTERN void  EZ_OptionalEntryDeleteOption     MY_ANSIARGS((EZ_Widget *widget, char *str));

#endif
/*
 * From EZ_WidgetFileSelector.c
 */
#ifndef _EZ_WIDGET_FILE_SELECT_C_
EXTERN EZ_Widget        *EZ_CreateFileSelector  MY_ANSIARGS((EZ_Widget *parent, char *pattern));
EXTERN void             EZ_GetFileSelectorWidgetComponents  MY_ANSIARGS((EZ_Widget *widget,
								   EZ_Widget **pe, EZ_Widget **se,
								   EZ_Widget **dl, EZ_Widget **fl,
								   EZ_Widget **ok, EZ_Widget **ft,
								   EZ_Widget **cancel));
EXTERN void             EZ_SetFileSelectorInitialPattern MY_ANSIARGS((EZ_Widget *widget, char *pattern));
EXTERN char             *EZ_GetFileSelectorSelection MY_ANSIARGS((EZ_Widget *widget));

EXTERN int              EZ_ProcessFileSelectorPattern MY_ANSIARGS((char **dirName, char *pattern));
EXTERN int              EZ_CmpStr MY_ANSIARGS((CONST void *ptr1, CONST void *ptr2));

EXTERN int              position_of_last_slash_before_glob_chars MY_ANSIARGS((char *str));
EXTERN int              EZ_CountSetFilePatterns MY_ANSIARGS((char *pat, char **patterns));
#endif

/*
 * From EZ_WidgetITree.c
 */
#ifndef _EZ_WIDGET_ITREE_C_
EXTERN EZ_Widget  *EZ_CreateITree  MY_ANSIARGS((EZ_Widget *parent));
EXTERN EZ_TreeNode *EZ_FindPointerOnTreeNode MY_ANSIARGS((int x, int y, EZ_TreeNode *root));
EXTERN EZ_TreeNode *EZ_FindTreeAdjBranch MY_ANSIARGS((EZ_TreeNode *root, EZ_TreeNode *node, int dir));
EXTERN void        EZ_SetITreeWTree MY_ANSIARGS((EZ_Widget *widget, EZ_TreeNode *tree));
EXTERN void        EZ_FlashItemOutline MY_ANSIARGS((EZ_Widget *widget, EZ_Item *item, 
					     int Rx, int Ry, int Rw, int Rh));
EXTERN void        EZ_DnDOutlineItem MY_ANSIARGS((EZ_Widget *widget, EZ_Item *item, 
					     int Rx, int Ry, int Rw, int Rh));
EXTERN void        EZ_ITreeSelectNode MY_ANSIARGS((EZ_Widget *widget, EZ_TreeNode *theNode, int *location));
EXTERN void        EZ_ITreeSelectNodeUsingItem MY_ANSIARGS((EZ_Widget *widget, EZ_Item *theItem, int *location));
#endif
/*
 * From EZ_WidgetTree.c
 */
#ifndef _EZ_WIDGET_TREE_C_
EXTERN EZ_Widget  *EZ_CreateListTree MY_ANSIARGS((EZ_Widget *parent, int hsc, int vsc));
EXTERN void           EZ_GetListTreeWidgetComponents MY_ANSIARGS((EZ_Widget *widget,
							   EZ_Widget **itr, EZ_Widget **hsc,
							   EZ_Widget **vsc));
EXTERN void           EZ_SetListTreeWidgetTree MY_ANSIARGS((EZ_Widget *widget, EZ_TreeNode *tree));
EXTERN EZ_TreeNode    *EZ_GetListTreeWidgetTree MY_ANSIARGS((EZ_Widget *widget));
EXTERN EZ_TreeNode    *EZ_GetListTreeWidgetSelection MY_ANSIARGS((EZ_Widget *widget));
EXTERN void           EZ_ListTreeWidgetSelectNode MY_ANSIARGS((EZ_Widget *widget, EZ_TreeNode *theNode, int *location));
EXTERN void           EZ_ListTreeWidgetSelectNodeUsingItem MY_ANSIARGS((EZ_Widget *widget, EZ_Item *theItem, int *location));
EXTERN void        EZ_GetListTreeWidgetXYOffset  MY_ANSIARGS((EZ_Widget *widget, int *x, int *y));
EXTERN void        EZ_SetListTreeWidgetXYOffset  MY_ANSIARGS((EZ_Widget *widget, int x, int y));
EXTERN EZ_TreeNode *EZ_ListTreeFindNodeAtXY MY_ANSIARGS((EZ_Widget *tree, int x, int y));

#endif

/*
 * From EZ_WidgetIFListBox.c
 */
#ifndef _EZ_WIDGET_IFLIST_BOX_C_
EXTERN EZ_Widget        *EZ_CreateIFListBox MY_ANSIARGS((EZ_Widget *parent, int ncols, int seltype));
EXTERN void             EZ_SetIFListBoxData MY_ANSIARGS((EZ_Widget *widget, EZ_Item **items, int row, int col));
EXTERN void             EZ_InsertIFListBoxRow  MY_ANSIARGS((EZ_Widget *widget, EZ_Item **items, int nitems, int where));
EXTERN void             EZ_DeleteIFListBoxRow  MY_ANSIARGS((EZ_Widget *widget, int idx));
EXTERN void             EZ_DeleteIFListBoxSomeRows MY_ANSIARGS((EZ_Widget *widget, int *idces, int cnt));
EXTERN void             EZ_ReplaceIFListBoxItem  MY_ANSIARGS((EZ_Widget *widget, EZ_Item *old, EZ_Item *newitem));
EXTERN void             EZ_ReplaceIFListBoxItemUsingIdx MY_ANSIARGS((EZ_Widget *widget, int row, int col, EZ_Item *newitem));
EXTERN void             EZ_ClearIFListBox  MY_ANSIARGS((EZ_Widget *widget));
EXTERN void             EZ_SetIFListBoxHeader  MY_ANSIARGS((EZ_Widget *widget, EZ_Item **elts, int nelts));

EXTERN EZ_Item          **EZ_GetIFListBoxSelection  MY_ANSIARGS((EZ_Widget *widget));
EXTERN EZ_Item          *EZ_GetIFListBoxItemUsingIdx  MY_ANSIARGS((EZ_Widget *widget, int row, int col));

EXTERN int              EZ_FindPointerOnRowIFL  MY_ANSIARGS((EZ_Item ***array, int nrow, int ncol, int x, int y,
						      int Rx, int Ry, int RW, int RH));
EXTERN void             EZ_FindPointerOnRowAndColIFL  MY_ANSIARGS((EZ_Item ***array, int nrow, int ncol, int x, int y,
							    int *rowR, int *colR, int Rx, int Ry, int RW, int RH));

EXTERN void             EZ_FlashRowOutline MY_ANSIARGS((EZ_Widget *widget, EZ_Item **row, int nelts));
EXTERN void             EZ_DnDOutlineRow MY_ANSIARGS((EZ_Widget *widget, EZ_Item **row, int nelts,
					       int Rx, int Ry, int Rw, int Rh));
EXTERN void             EZ_IFListBoxSelectItemUsingIdx MY_ANSIARGS((EZ_Widget *widget, int Srow, int Scol, int *location));
EXTERN void             EZ_IFListBoxSelectItem MY_ANSIARGS((EZ_Widget *widget, EZ_Item *item, int *location));
#endif
/*
 * From EZ_WidgetFListBox.c
 */
#ifndef _EZ_WIDGET_FLIST_BOX_C_
EXTERN EZ_Widget  *EZ_CreateFancyListBox MY_ANSIARGS((EZ_Widget *parent,
					       int hsc, int vsc, int ncol, int selctype));
EXTERN void       EZ_GetFancyListBoxWidgetComponents MY_ANSIARGS((EZ_Widget *widget,
							   EZ_Widget **ifl,
							   EZ_Widget **hsc,
							   EZ_Widget **vsc));

EXTERN EZ_Item    **EZ_GetFancyListBoxSelection MY_ANSIARGS((EZ_Widget *widget));
EXTERN EZ_Item    *EZ_GetFancyListBoxItemUsingIdx  MY_ANSIARGS((EZ_Widget *widget, int row, int col));
EXTERN void       EZ_GetFancyListBoxSelectionIdx  MY_ANSIARGS((EZ_Widget *widget, int *row, int *col));
EXTERN void       EZ_SetFancyListBoxData  MY_ANSIARGS((EZ_Widget *widget, EZ_Item **data, int nrow, int ncol));
EXTERN void       EZ_FancyListBoxClear  MY_ANSIARGS((EZ_Widget *widget));
EXTERN void       EZ_GetFancyListBoxXYOffset  MY_ANSIARGS((EZ_Widget *widget, int *xoff, int *yoff));
EXTERN void       EZ_SetFancyListBoxXYOffset  MY_ANSIARGS((EZ_Widget *widget, int xoff, int yoff));
EXTERN void       EZ_SetFancyListBoxHeader  MY_ANSIARGS((EZ_Widget *widget, EZ_Item **header, int nelts));

EXTERN void       EZ_FancyListBoxInsertRow  MY_ANSIARGS((EZ_Widget *widget, EZ_Item **items, int nitems, int where));
EXTERN void       EZ_FancyListBoxDeleteRow  MY_ANSIARGS((EZ_Widget *widget, int idx));
EXTERN void       EZ_FancyListBoxDeleteSomeRows MY_ANSIARGS((EZ_Widget *widget, int *idces, int cnt));
EXTERN void       EZ_FancyListBoxReplaceItem  MY_ANSIARGS((EZ_Widget *widget, EZ_Item *old, EZ_Item *newitem));
EXTERN void       EZ_FancyListBoxReplaceItemUsingIdx  MY_ANSIARGS((EZ_Widget *widget, int row, int col, EZ_Item *newitem));
EXTERN void       EZ_FancyListBoxSelectItemUsingIdx MY_ANSIARGS((EZ_Widget *widget, int Srow, int Scol, int *location));
EXTERN void       EZ_FancyListBoxSelectItem MY_ANSIARGS((EZ_Widget *widget, EZ_Item *item, int *location));
EXTERN int        EZ_GetFancyListBoxNumberOfRows MY_ANSIARGS((EZ_Widget *widget));
EXTERN int        EZ_GetFancyListBoxNumberOfColumns MY_ANSIARGS((EZ_Widget *widget));
EXTERN EZ_Item    ***EZ_GetFancyListBoxData  MY_ANSIARGS((EZ_Widget *widget));
EXTERN EZ_Item    **EZ_FancyListBoxFindRowAtXY  MY_ANSIARGS((EZ_Widget *fl, int x, int y, int *r_ret));
EXTERN EZ_Item    *EZ_FancyListBoxFindItemAtXY  MY_ANSIARGS((EZ_Widget *fl, int x, int y, int *r_ret, int *c_ret));
#endif
/*
 * From EZ_Item.c
 */
#ifndef _EZ_ITEM_C_
EXTERN EZ_Item *EZ_AllocateNewDisplayItem MY_ANSIARGS((void));
EXTERN void    EZ_ComputeItemSize MY_ANSIARGS((
					EZ_Item *item,
					int *w_ret, int *h_ret));
EXTERN void    EZ_DisplayOneItem MY_ANSIARGS((
				       EZ_Widget *widget,
				       Drawable  drawable,
				       int       x0, int y0,
				       EZ_Item   *item,
				       int       Rx, int Ry, int  Rw, int Rh));
EXTERN void    EZ_UpdateOneItem MY_ANSIARGS((
				      EZ_Widget *widget,
				      Drawable  drawable,
				      EZ_Item   *item,
				      int       Rx, int Ry, int  Rw, int Rh));

EXTERN void    EZ_HighlightOneItem MY_ANSIARGS((
					 EZ_Widget *widget,
					 Drawable  drawable,
					 EZ_Item   *item,
					 unsigned long fg,  unsigned long bg, 
					 int       Rx, int Ry, int  Rw, int Rh));
EXTERN void    EZ_DestroyItem MY_ANSIARGS((EZ_Item *item));

EXTERN void    EZ_GetItemXYOffset MY_ANSIARGS((EZ_Item *item, int *xoff, int *yoff));
EXTERN void    EZ_GetItemBwAndXYPading MY_ANSIARGS((EZ_Item *item, int *bw, int *xpad, int *ypad));

EXTERN void    EZ_GetItemClientData MY_ANSIARGS((EZ_Item *item,
					  int *idata_ret,
					  void **pdata_ret));
EXTERN int     EZ_GetItemIntData MY_ANSIARGS((EZ_Item *item));
EXTERN void    *EZ_GetItemPtrData MY_ANSIARGS((EZ_Item *item));
EXTERN void     EZ_SetItemClientData MY_ANSIARGS((EZ_Item *item,
					  int idata, void *pdata ));
EXTERN void     EZ_SetItemIntData MY_ANSIARGS((EZ_Item *item, int i));
EXTERN void     EZ_SetItemPtrData MY_ANSIARGS((EZ_Item *item, void *p));


EXTERN void    EZ_ComputeItemArrayGeometry MY_ANSIARGS((EZ_Item ***array,
						 int nrows,
						 int ncolumns,
						 int *w_ret, int *h_ret,
						 int *w_det_ret, int *h_det_ret));
EXTERN void    EZ_DisplayOneRowOfItems MY_ANSIARGS((EZ_Widget *widget,
						    Drawable drawable,
						    EZ_Item **row,
						    int nelts,
						    int x0,int y0,int hsep,
						    int *w_sizes,
						    int Rx,int Ry,int Rw,int Rh));
EXTERN void    EZ_UpdateOneRow MY_ANSIARGS((EZ_Widget *widget,
					    Drawable drawable,
					    EZ_Item **row,
					    int nelts,
					    int cx,int cy,int cw, int ch));
EXTERN void    EZ_HighlightOneRow MY_ANSIARGS((EZ_Widget *widget,
					       Drawable drawable,
					       EZ_Item **row,
					       int nelts,
					       unsigned long fg, unsigned long bg,
					       int cx,int cy,int cw, int ch));

EXTERN int     EZ_PickAnItem MY_ANSIARGS(( EZ_Item *item, int x, int y));

EXTERN void    EZ_AddItemCallBack MY_ANSIARGS((EZ_Item *item, int which,
					EZ_CallBack callback, void *cdata,
					int where));
EXTERN void    EZ_AddItemCallBackInternal MY_ANSIARGS((EZ_Item *item, int which,
						EZ_CallBack callback, void *cdata,
						int where));
EXTERN void    EZ_RemoveItemCallBack MY_ANSIARGS((EZ_Item *item,  int which,
					   EZ_CallBack callback, void *cdata));
EXTERN void    EZ_RemoveAllItemCallBacks MY_ANSIARGS((EZ_Item *item, int which));

EXTERN void    EZ_SetItemPosition MY_ANSIARGS((EZ_Item *item, int x, int y));
EXTERN void    EZ_SetItemWidth MY_ANSIARGS((EZ_Item *item, int width));
EXTERN void    EZ_SetItemHeight MY_ANSIARGS((EZ_Item *item, int height));
EXTERN void    EZ_SetItemDimension MY_ANSIARGS((EZ_Item *item, int w, int h));
EXTERN int     EZ_GetItemWidth MY_ANSIARGS((EZ_Item *item));
EXTERN int     EZ_GetItemHeight MY_ANSIARGS((EZ_Item *item));
EXTERN void    EZ_GetItemDimension MY_ANSIARGS((EZ_Item *item, int *w, int *h));
EXTERN void    EZ_GetItemPosition MY_ANSIARGS((EZ_Item *item, int *x, int *y));
EXTERN EZ_Widget *EZ_GetItemHostWidget MY_ANSIARGS((EZ_Item *item));
EXTERN void       EZ_UpdateDisplayItem  MY_ANSIARGS((EZ_Item *item));

EXTERN int     EZ_GetItemUnknownData MY_ANSIARGS((EZ_Item *item, int idx,
						  EZ_UnknownDataType *ret));
EXTERN void    EZ_SetItemUnknownData  MY_ANSIARGS((EZ_Item *item, int idx,
						   EZ_UnknownDataType data));
EXTERN EZ_UnknownDataType *EZ_GetItemUnknownDataPtr MY_ANSIARGS((EZ_Item *item));
#endif
/*
 * From EZ_LabelItem.c
 */
#ifndef _EZ_ITEM_LABEL_C_
EXTERN EZ_Item    *EZ_CreateLabelItem MY_ANSIARGS((char *str, EZ_TextProperty *prop));
EXTERN void        EZ_LabelItemSetProperty MY_ANSIARGS((EZ_Item *item, EZ_TextProperty *prop));
EXTERN void        EZ_GetLabelItemStringInfo MY_ANSIARGS((EZ_Item *item, char **str, int *len));
#endif


/*
 * From EZ_WidgetItem.c
 */
#ifndef _EZ_ITEM_WIDGET_C_
EXTERN EZ_Item    *EZ_CreateWidgetItem  MY_ANSIARGS((EZ_Widget *widget));
EXTERN EZ_Widget  *EZ_GetWidgetItemWidget MY_ANSIARGS((EZ_Item *item));
#endif


/*
 * From EZ_Tree.c
 */
#ifndef _EZ_TREE_C_
EXTERN EZ_TreeNode  *EZ_CreateTreeNode  MY_ANSIARGS((EZ_TreeNode *parent, EZ_Item *item));      
EXTERN EZ_TreeNode  *EZ_TreeNodeGetParent MY_ANSIARGS((EZ_TreeNode *node));      
EXTERN EZ_TreeNode  *EZ_TreeNodeGetChildren MY_ANSIARGS((EZ_TreeNode *node));      
EXTERN EZ_TreeNode  *EZ_TreeNodeGetSibling MY_ANSIARGS((EZ_TreeNode *node));      
EXTERN EZ_TreeNode  *EZ_TreeFindNode MY_ANSIARGS((EZ_TreeNode *root, EZ_TreeNode *node));
EXTERN EZ_TreeNode  *EZ_TreeFindNodeUsingItem MY_ANSIARGS((EZ_TreeNode *root, EZ_Item *item));
EXTERN EZ_TreeNode  *EZ_TreeFindNodeUsingProcedure MY_ANSIARGS((EZ_TreeNode *root, 
			 EZ_TreeNode *(*f)MY_ANSIARGS((EZ_TreeNode *node, void *d)), void *data ));
EXTERN void     EZ_TreeDestroySubtree MY_ANSIARGS((EZ_TreeNode *node));      
EXTERN void     EZ_TreeDestroyNodeDescendants MY_ANSIARGS((EZ_TreeNode *node));      
EXTERN void     EZ_TreeAttachSubtree MY_ANSIARGS((EZ_TreeNode *node, EZ_TreeNode *subtree));      
EXTERN void     EZ_TreeSetCharacter MY_ANSIARGS((EZ_TreeNode *node,
						     int type, int indent, int spacint, int drawBranch));      
EXTERN void     EZ_TreeTraverseTree MY_ANSIARGS((EZ_TreeNode *node,
					  void (*preF) MY_ANSIARGS((EZ_TreeNode *node)),
						 void (*postF) MY_ANSIARGS((EZ_TreeNode *node))	  ));

EXTERN void     EZ_TreeSetFGColor  MY_ANSIARGS((EZ_TreeNode *node, unsigned long pv));
EXTERN void     EZ_TreeSetFGColorName  MY_ANSIARGS((EZ_TreeNode *node, char *clr));

EXTERN void     EZ_TreeSetBGColor MY_ANSIARGS((EZ_TreeNode *node, unsigned long pv));
EXTERN void     EZ_TreeSetBGColorName MY_ANSIARGS((EZ_TreeNode *node, char *clr));

EXTERN void     EZ_ComputeSubtreeSize MY_ANSIARGS((EZ_TreeNode *node, int *w, int *h));

EXTERN void     EZ_DisplayTreeInDrawable MY_ANSIARGS((EZ_Widget *widget, Drawable drawable,
					       int x0, int y0,
					       EZ_TreeNode *node,
						      int Rx, int Ry, int Rw, int Rh));

EXTERN EZ_Item *EZ_TreeNodeGetItem MY_ANSIARGS((EZ_TreeNode *node));
EXTERN void     EZ_UpdateDirTreeWidget MY_ANSIARGS((EZ_Widget *widget));
#endif
/*
 * From EZ_TreeDir.c
 */
#ifndef _EZ_TREE_DIR_C_
EXTERN EZ_TreeNode      *EZ_CreateDirTree MY_ANSIARGS((EZ_DirTreeNodeCreator nctr,
						char *pattern, void *cdata, int omode));
EXTERN void       OpenCloseDirTreeDirectoryNode MY_ANSIARGS((EZ_Item *item, int col));
EXTERN char       *EZ_GetDirTreeNodeFullPath MY_ANSIARGS((EZ_TreeNode *node));
EXTERN void        EZ_SetDirTreeDefaultPixmaps MY_ANSIARGS((EZ_Bitmap *o, EZ_Bitmap *c, EZ_Bitmap *f));
EXTERN void        EZ_SetDirTreeDefaultPixmapsFromXpmFiles MY_ANSIARGS((char *o, char *c, char *f));
EXTERN int         EZ_UpdateDirTreeWork MY_ANSIARGS((EZ_TreeNode *root,EZ_TreeNode *sel,int *flag));
#endif
/*
 * From EZ_WidgetIWorkArea.c
 */
#ifndef _EZ_WIDGET_IWORK_AREA_C_
EXTERN EZ_Widget        *EZ_CreateIWorkArea MY_ANSIARGS((EZ_Widget *parent));

EXTERN void             EZ_GrowIWorkAreaDataSpace MY_ANSIARGS((EZ_Widget *widget, int increment));

EXTERN EZ_Item          *EZ_FindPointerOnItemIWA MY_ANSIARGS((EZ_Item **data, int count, EZ_Item *guess,
							     int x, int y));

EXTERN void              EZ_IWorkAreaInsertItem MY_ANSIARGS((EZ_Widget *widget, EZ_Item *item));
EXTERN void              EZ_IWorkAreaInsertItems MY_ANSIARGS((EZ_Widget *widget, EZ_Item **item, int n));
EXTERN void              EZ_IWorkAreaDeleteItem MY_ANSIARGS((EZ_Widget *widget, EZ_Item *item));
EXTERN void              EZ_IWorkAreaDeleteAllItems MY_ANSIARGS((EZ_Widget *widget));

EXTERN void              EZ_IWorkAreaInsertItemBeforeAfter MY_ANSIARGS((EZ_Widget *widget, EZ_Item *item,
								 EZ_Item *newitem, int BefAft));
EXTERN void              EZ_IWorkAreaInsertItemUsingIdx MY_ANSIARGS((EZ_Widget *widget, int idx, EZ_Item *item));
EXTERN void              EZ_IWorkAreaDeleteItemUsingIdx MY_ANSIARGS((EZ_Widget *widget, int idx));
EXTERN void              EZ_IWorkAreaDeleteSomeItemsUsingIndices  MY_ANSIARGS((EZ_Widget *widget, int *ids, int cnt));
EXTERN void              EZ_IWorkAreaSelectItem MY_ANSIARGS((EZ_Widget *widget, EZ_Item *item, int *location));
EXTERN void              EZ_IWorkAreaSelectItemUsingIdx MY_ANSIARGS((EZ_Widget *widget, int idx, int *location));
#endif
/*
 * From EZ_WidgetWorkArea.c
 */
#ifndef _EZ_WIDGET_WORK_AREA_C_
EXTERN EZ_Widget        *EZ_CreateWorkArea MY_ANSIARGS((EZ_Widget *parent, int hsc, int vsc));
EXTERN EZ_Item          *EZ_GetWorkAreaSelection MY_ANSIARGS((EZ_Widget *widget));
EXTERN void              EZ_SetWorkAreaGeometryManager MY_ANSIARGS((EZ_Widget *widget,
								    EZ_WorkAreaGeometryManager managet,
								    void *pdata  ));

EXTERN void              EZ_WorkAreaInsertItem MY_ANSIARGS((EZ_Widget *widget, EZ_Item *item));
EXTERN void              EZ_WorkAreaInsertItems MY_ANSIARGS((EZ_Widget *widget, EZ_Item **item, int n));
EXTERN void              EZ_WorkAreaDeleteItem MY_ANSIARGS((EZ_Widget *widget, EZ_Item *item));
EXTERN void              EZ_WorkAreaClear MY_ANSIARGS((EZ_Widget *widget));

EXTERN void              EZ_WorkAreaRearrange MY_ANSIARGS((EZ_Widget *widget));

EXTERN void              EZ_WorkAreaInsertItemBefore MY_ANSIARGS((EZ_Widget *widget, EZ_Item *item, EZ_Item *newitem));
EXTERN void              EZ_WorkAreaInsertItemAfter  MY_ANSIARGS((EZ_Widget *widget, EZ_Item *item, EZ_Item *newitem));
EXTERN void              EZ_WorkAreaInsertItemUsingIdx MY_ANSIARGS((EZ_Widget *widget, EZ_Item *item, int idx));
EXTERN void              EZ_WorkAreaDeleteItemUsingIdx MY_ANSIARGS((EZ_Widget *widget, int idx));
EXTERN void              EZ_WorkAreaDeleteSomeItemsUsingIndices  MY_ANSIARGS((EZ_Widget *widget, int *ids, int cnt));
EXTERN void              EZ_GetWorkAreaWidgetComponents MY_ANSIARGS((EZ_Widget *widget, EZ_Widget **iwa, 
							EZ_Widget **hsc, EZ_Widget **vsc));
EXTERN void              EZ_WorkAreaSelectItem MY_ANSIARGS((EZ_Widget *widget, EZ_Item *item, int *location));
EXTERN void              EZ_WorkAreaSelectItemUsingIdx MY_ANSIARGS((EZ_Widget *widget, int idx, int *location));

EXTERN EZ_Item           *EZ_WorkAreaFindItemAtXY MY_ANSIARGS((EZ_Widget *wa, int x, int y));

EXTERN void              EZ_GetWorkAreaXYOffset MY_ANSIARGS((EZ_Widget *widget, int *x, int *y));
EXTERN void              EZ_SetWorkAreaXYOffset MY_ANSIARGS((EZ_Widget *widget, int x, int y));
EXTERN int               EZ_GetWorkAreaNumberOfItems MY_ANSIARGS((EZ_Widget *widget));
EXTERN EZ_Item           *EZ_GetWorkAreaItemUsingIdx MY_ANSIARGS((EZ_Widget *wa, int x));
EXTERN EZ_Item           **EZ_GetWorkAreaData MY_ANSIARGS((EZ_Widget *wa));
#endif
/*
 * From EZ_WorkAreaGeom.c
 */
#ifndef _EZ_WORK_AREA_GEOM_C_
EXTERN void             EZ_WorkAreaGeometryManagerDefault MY_ANSIARGS((void *GMData, EZ_Item **data, int nitems,
								       int Rx,int Ry,int Rw, int Rh, int Wxsp, int Wysp, 
								       int *w_ret, int *h_ret));
#endif

/*
 * From EZ_WidgetRawXWin.c
 */
#ifndef _EZ_WIDGET_RAWXWIN_C_
EXTERN EZ_Widget       *EZ_CreateRawXWindow MY_ANSIARGS((EZ_Widget *parent));
EXTERN void             EZ_SetupRawXWinWidget MY_ANSIARGS(( EZ_Widget *widget,
	         	    void (*ComputeSize) MY_ANSIARGS(( EZ_Widget *widget, int *w, int *h)),
                            void  (*DrawWidget)  MY_ANSIARGS((EZ_Widget *widget)),
                            void  (*FreeData)    MY_ANSIARGS((EZ_Widget *widget)),
                            void  (*EventHandle) MY_ANSIARGS((EZ_Widget *widget, XEvent *event)) ));

EXTERN void   EZ_RegisterWidget MY_ANSIARGS(( int type,
                    void  (*Setup)  MY_ANSIARGS((EZ_Widget *widget)),
		    void (*ComputeSize) MY_ANSIARGS(( EZ_Widget *widget, int *w, int *h)),
                    void  (*DrawWidget)  MY_ANSIARGS((EZ_Widget *widget)),
                    void  (*FreeData)    MY_ANSIARGS((EZ_Widget *widget)),
                    void  (*EventHandle) MY_ANSIARGS((EZ_Widget *widget, XEvent *event)) ));

EXTERN GC     EZ_GetWritableGC MY_ANSIARGS((void));
#endif

/*
 * From EZ_DnDMsg.c
 */
#ifndef _EZ_DND_MSG_C_
EXTERN void EZ_GetDnDDropLocation MY_ANSIARGS((int *x, int *y, int *xx, int *yy));
EXTERN void EZ_GetDnDDragSrcXYOffset MY_ANSIARGS((int *x, int *y));
#endif
/*
 * From EZ_DnDData.c
 */
#ifndef _EZ_DND_DATA_C_
EXTERN void EZ_ItemAddDnDDataEncoder MY_ANSIARGS((EZ_Item *item, Atom type, unsigned int tag,
						     EZ_DnDEncoder encoder, void *edata,
						     EZ_CallBack callback, void *cdata));
EXTERN void EZ_ItemDeleteDnDDataEncoder MY_ANSIARGS((EZ_Item *item, Atom type));
EXTERN void EZ_ItemDeleteAllDnDDataEncoders MY_ANSIARGS((EZ_Item *item));
EXTERN void EZ_ItemAddDnDDataDecoder MY_ANSIARGS((EZ_Item *item, Atom type, unsigned int tag,
						     EZ_DnDDecoder decoder, void *edata,
						     EZ_CallBack callback, void *cdata));
EXTERN void EZ_ItemDeleteDnDDataDecoder MY_ANSIARGS((EZ_Item *item, Atom type));
EXTERN void EZ_ItemDeleteAllDnDDataDecoders MY_ANSIARGS((EZ_Item *item));


EXTERN void EZ_WidgetAddDnDDataEncoder MY_ANSIARGS((EZ_Widget *widget, Atom type, unsigned int tag,
						         EZ_DnDEncoder encoder, void *edata,
						         EZ_CallBack callback, void *cdata));
EXTERN void EZ_WidgetDeleteDnDDataEncoder MY_ANSIARGS((EZ_Widget *widget, Atom type));
EXTERN void EZ_WidgetDeleteAllDnDDataEncoders MY_ANSIARGS((EZ_Widget *widget));
EXTERN void EZ_WidgetAddDnDDataDecoder MY_ANSIARGS((EZ_Widget *widget,Atom type, unsigned int tag,
						         EZ_DnDDecoder encoder, void *edata,
						         EZ_CallBack callback, void *cdata));
EXTERN void EZ_WidgetDeleteDnDDataDecoder MY_ANSIARGS((EZ_Widget *widget, Atom type));
EXTERN void EZ_WidgetDeleteAllDnDDataDecoders MY_ANSIARGS((EZ_Widget *widget));
#endif

#ifndef _EZ_DND_C_
EXTERN Atom EZ_GetAtom  MY_ANSIARGS((char *name));
EXTERN void EZ_DnDGetDragConversionTargets MY_ANSIARGS((Atom **targets_ret, int **ntargets_ret, 
							unsigned int **t));
EXTERN void EZ_DnDGetMatchedConversionTargets MY_ANSIARGS((Atom **targets_ret, int **ntargets_ret, 
							   unsigned int **t));
#endif

#ifndef _EZ_INPUT_C_
EXTERN void         EZ_InitializeInputIdList  MY_ANSIARGS((void));
EXTERN void         EZ_DestroyInputIdList  MY_ANSIARGS((void));
EXTERN EZ_Input     *EZ_AddInput MY_ANSIARGS((int fd, int mask, 
				       EZ_InputCallBack callback,
				       void *data));
EXTERN void         EZ_RemoveInput MY_ANSIARGS((EZ_Input *id));
EXTERN int          EZ_CheckAppInputs MY_ANSIARGS((unsigned long length));
#endif

/*
 * From EZ_WidgetRowCol.c
 */
#ifndef _EZ_WIDGET_ROWCOL_C_
EXTERN EZ_Widget  *EZ_CreateRowColumn MY_ANSIARGS((EZ_Widget *parent));
EXTERN EZ_Widget  *EZ_CreateGridBag MY_ANSIARGS((EZ_Widget *parent));
#endif

#ifndef _EZ_WIDGET_TEAR_OFF_C_
EXTERN EZ_Widget    *EZ_GetMenuCompanion  MY_ANSIARGS((EZ_Widget *item));
#endif
/*
 * From EZ_WidgetLcd.c
 */
#ifndef _EZ_WIDGET_LCD_C_
EXTERN void       EZ_SetLcdString MY_ANSIARGS((EZ_Widget *parent, char *str));
EXTERN void       EZ_SetLcdInteger MY_ANSIARGS((EZ_Widget *lcd, int n));
EXTERN void       EZ_SetLcdFloat MY_ANSIARGS((EZ_Widget *cd, float f));
EXTERN void       EZ_ClearLcd  MY_ANSIARGS((EZ_Widget *lcd));
EXTERN void       EZ_SetLcdNDigits  MY_ANSIARGS((EZ_Widget *lcd, int n));
EXTERN void       EZ_SetLcdFontSize  MY_ANSIARGS((EZ_Widget *lcd, int n));
EXTERN void       EZ_SetLcdForeground  MY_ANSIARGS((EZ_Widget *lcd, char *clr));
EXTERN void       EZ_SetLcdBackground  MY_ANSIARGS((EZ_Widget *lcd, char *clr));
EXTERN EZ_Widget  *EZ_CreateLcd MY_ANSIARGS((EZ_Widget *parent, int n));
#endif

#ifndef _EZ_WIDGET_LED_C_
EXTERN int   EZ_QueueLedAction MY_ANSIARGS((EZ_Widget *led, int type, int delay, int count,
				   char *msg,  char *color));
EXTERN void  EZ_RemoveLedAction MY_ANSIARGS((EZ_Widget *led, int action));
EXTERN void  EZ_SetLedColorFunction MY_ANSIARGS((EZ_Widget *led, 
						 unsigned long (*colorf)(int x, int y) ));
EXTERN void  EZ_SetLedString MY_ANSIARGS((EZ_Widget *parent, char *str, char *clr));
EXTERN void  EZ_ClearLed  MY_ANSIARGS((EZ_Widget *lcd));
EXTERN void  EZ_SetLedForeground  MY_ANSIARGS((EZ_Widget *lcd, char *clr));
EXTERN void  EZ_SetLedBackground  MY_ANSIARGS((EZ_Widget *lcd, char *clr));
EXTERN void  EZ_SetLedOffPixelColor  MY_ANSIARGS((EZ_Widget *lcd, char *clr));
EXTERN void  EZ_SetLedFont  MY_ANSIARGS((EZ_Widget *lcd, char *font));
EXTERN void  EZ_SetLedWidth  MY_ANSIARGS((EZ_Widget *lcd, int w));
EXTERN void  EZ_SetLedHeight  MY_ANSIARGS((EZ_Widget *lcd, int h));
EXTERN void  EZ_SetLedSize    MY_ANSIARGS((EZ_Widget *lcd, int w, int h));
EXTERN void  EZ_SetLedPixelSize  MY_ANSIARGS((EZ_Widget *lcd, int s));
EXTERN EZ_Widget  *EZ_CreateLed MY_ANSIARGS((EZ_Widget *parent));
EXTERN int   EZ_LedIsFree  MY_ANSIARGS((EZ_Widget *lcd));
EXTERN char  *EZ_GetLedString MY_ANSIARGS((EZ_Widget *led));
#endif


#ifndef _EZ_WIDGET_SMETER_C_
EXTERN EZ_Widget   *EZ_CreateStatusMeter  MY_ANSIARGS((EZ_Widget *parent)); 
EXTERN void         EZ_SetStatusMeterValue  MY_ANSIARGS((EZ_Widget *widget, float value));
EXTERN void         EZ_SetStatusMeterRange MY_ANSIARGS((EZ_Widget *widget, float f, float t));
EXTERN float        EZ_GetStatusMeterValue  MY_ANSIARGS((EZ_Widget *widget));
EXTERN void         EZ_StopStatusMeter MY_ANSIARGS((EZ_Widget *widget));
EXTERN void         EZ_StartStatusMeter MY_ANSIARGS((EZ_Widget *widget));
EXTERN void         EZ_SetStatusMeterForeground MY_ANSIARGS((EZ_Widget *widget, char *clr));
EXTERN void         EZ_SetStatusMeterBackground MY_ANSIARGS((EZ_Widget *widget, char *clr));

EXTERN void         EZ_SetStatusMeterForegroundN MY_ANSIARGS((EZ_Widget *widget, int idx, char *clr));
EXTERN void         EZ_SetStatusMeterValueN  MY_ANSIARGS((EZ_Widget *widget, int idx, float value));
EXTERN void         EZ_SetStatusMeterRangeN MY_ANSIARGS((EZ_Widget *widget, int idx, float f, float t));
EXTERN float        EZ_GetStatusMeterValueN  MY_ANSIARGS((EZ_Widget *widget, int idx));
#endif


#ifndef _EZ_WIDGET_MBAR_C_
EXTERN EZ_Widget   *EZ_CreateMBar MY_ANSIARGS((EZ_Widget *parent));

EXTERN EZ_Widget   *EZ_MenuBarAddItemAndMenu MY_ANSIARGS((EZ_Widget *widget, char *label, int ul, EZ_Widget *menu));
EXTERN void         EZ_MenuBarSetItemMenu MY_ANSIARGS((EZ_Widget *widget, char *label, EZ_Widget *menu));
EXTERN EZ_Widget   *EZ_MenuBarFindItemAtXY MY_ANSIARGS(( EZ_Widget *widget, int x, int y));
EXTERN EZ_Widget   *EZ_MenuBarFindItemAndMenuAtXY MY_ANSIARGS(( EZ_Widget *widget, int x, int y, EZ_Widget **ret));
EXTERN EZ_Widget   *EZ_MenuBarFindItem MY_ANSIARGS(( EZ_Widget *widget, char *name));
EXTERN EZ_Widget   *EZ_MenuBarFindItemAndMenu MY_ANSIARGS(( EZ_Widget *widget, char *name, EZ_Widget **ret));
EXTERN void         EZ_MenuBarDeleteItem MY_ANSIARGS((EZ_Widget *widget, char *label));
EXTERN void         EZ_MenuBarDeleteItemAndMenu MY_ANSIARGS((EZ_Widget *widget, char *label));
EXTERN void         EZ_MenuBarInsertItemAndMenu MY_ANSIARGS((EZ_Widget *mbar, char *label, int ul, EZ_Widget *menu,
							     char *ref, int where));
#endif



/* Gnu glob and Gnu tilde */
EXTERN char       **EZ_GlobFileName  MY_ANSIARGS((char *name));
EXTERN char       **EZ_GlobFiles  MY_ANSIARGS((char *name, int showHidden));
EXTERN int        EZ_GlobHiddenFiles MY_ANSIARGS((int yesNo ));
EXTERN char       *EZ_TildeExpand MY_ANSIARGS((char *name));


#ifndef _EZ_CURSOR_C_
EXTERN  void                  EZ_InitializeCursors MY_ANSIARGS((void));
EXTERN  void                  EZ_FreeAllCursors MY_ANSIARGS((void));
EXTERN  Cursor                EZ_GetCursor MY_ANSIARGS((int type));
EXTERN  Cursor                EZ_GetCursorByName MY_ANSIARGS((char *name));
EXTERN  char                  *EZ_GetCursorName MY_ANSIARGS((Cursor csr));

EXTERN Cursor               EZ_CreateCursorFromBitmapFile MY_ANSIARGS((char *f1, char *f2,
								char *fc, char *bc,
								int  x,   int y,
								char *name,
								int *idx));
EXTERN Cursor               EZ_CreateCursorFromBitmapData MY_ANSIARGS((int wid, int hig,
								char *d1, char *d2,
								char *fc, char *bc,
								int  x,   int y,
								char *name,
								int *idx_ret));

EXTERN void                  EZ_WaitCursor MY_ANSIARGS((EZ_Widget *widget, Cursor cursor));
EXTERN void                  EZ_NormalCursor  MY_ANSIARGS((EZ_Widget *widget));

#endif


#ifndef _EZ_ITEM_HASH_C_
EXTERN EZ_Item   *EZ_ItemExist MY_ANSIARGS((EZ_Item *item));
#endif


#ifndef _EZ_RESOUCE_C_
EXTERN void    EZ_PrintStandardOptions MY_ANSIARGS((void));
EXTERN void    EZ_SetApplicationName MY_ANSIARGS((char *name));
EXTERN char    *EZ_GetApplicationName MY_ANSIARGS((void));
EXTERN void    EZ_DestroyXrmDB          MY_ANSIARGS((void));
EXTERN void    EZ_InitXrmAndX11 MY_ANSIARGS((char *className,
					  XrmOptionDescRec *optstable,  int nopts,
					  int *ac, char **av, char *fbkstr, int initgl));
EXTERN char *EZ_GetInstanceName      MY_ANSIARGS((void));
EXTERN char *EZ_GetClassName         MY_ANSIARGS((void));
EXTERN void  EZ_SetWidgetCINames  MY_ANSIARGS((EZ_Widget *w, char *cn, char *in));
EXTERN void  EZ_GetWidgetCINames  MY_ANSIARGS((EZ_Widget *w, char **cn, char **in));
EXTERN void  EZ_ExtractGlobalResources MY_ANSIARGS((void));

EXTERN int   EZ_InstallSymbolicInt   MY_ANSIARGS((char *name, int value));
EXTERN int   EZ_RetrieveSymbolicInt  MY_ANSIARGS((char *name, int *value_ret));

EXTERN int   EZ_InstallSymbolicFloat   MY_ANSIARGS((char *name, float value));
EXTERN int   EZ_RetrieveSymbolicFloat  MY_ANSIARGS((char *name, float *value_ret));

EXTERN int   EZ_InstallSymbolicPointer   MY_ANSIARGS((char *name, void *value));
EXTERN int   EZ_RetrieveSymbolicPointer  MY_ANSIARGS((char *name, void **value_ret));

EXTERN int   EZ_InstallSymbolicULong   MY_ANSIARGS((char *name, unsigned long value));
EXTERN int   EZ_RetrieveSymbolicULong  MY_ANSIARGS((char *name, unsigned long *value_ret));

EXTERN int       EZ_InstallSymbol  MY_ANSIARGS((char *name, EZ_Value value));
EXTERN EZ_Value  *EZ_RetrieveSymbol MY_ANSIARGS((char *name));

EXTERN int EZ_GetApplicationResource MY_ANSIARGS((char *rname, char **v_ret));
EXTERN int EZ_GetWidgetResource MY_ANSIARGS((EZ_Widget *, char *rname, char **v_ret));
EXTERN void  EZ_SetDefaultAttributesFromResources MY_ANSIARGS((void));
#endif

#ifndef _EZ_RESOUCEGET_C_
EXTERN void  EZ_GetAndUseWidgetResources   MY_ANSIARGS((EZ_Widget *widget));
#endif

#ifndef _EZ_MESSAGE_C_
EXTERN void  EZ_SetDefaultMessageHandler MY_ANSIARGS((EZ_MessageHandler handler, void *data));
EXTERN void  EZ_AddMessageHandler MY_ANSIARGS((Atom mtype, int mId,  void *data,
					EZ_MessageHandler handler, int timeout ));
EXTERN void  EZ_DeleteMessageHandler MY_ANSIARGS((Atom mtype, int mId,  void *data,
					EZ_MessageHandler handler));

EXTERN void  EZ_SendMessage MY_ANSIARGS((Atom mtype, char *message, int length, int msgid,
				  Window recipient, int replayId, int isReply));
EXTERN void  EZ_BroadcastMessage MY_ANSIARGS((Atom mtype, char *message, int length, 
					      int msgid, int replyId));

EXTERN void  EZ_ReplyMessage  MY_ANSIARGS((EZ_Message *fromsg, char *reply, int replylength));
EXTERN void  EZ_ReplyMessageR MY_ANSIARGS((EZ_Message *fromsg, char *reply, 
					   int replylength, int replyId));
#endif


#ifndef _EZ_WM_C_
EXTERN void EZ_SetWMHintsAndSizeHints MY_ANSIARGS((EZ_Widget *widget,int flag));
EXTERN void EZ_SetWMSizeHints MY_ANSIARGS((EZ_Widget *widget,int flag));
EXTERN void EZ_SetWMHintForWindow MY_ANSIARGS((Window win, int x, int y, int w, int h));
EXTERN void EZ_DeleteWidgetWMHints MY_ANSIARGS((EZ_Widget *widget));
EXTERN void EZ_SetWidgetWMHints MY_ANSIARGS((EZ_Widget *wt, int opt, int i, int j, void *p));
#endif



/*
 * Var arg things
 */
EXTERN EZ_TextProp *EZ_GetTextProperty  MY_VARARGS_D(int, name);
EXTERN void        EZ_ConfigureWidget   MY_VARARGS_D(void, *args);
EXTERN void        EZ_ConfigureItem     MY_VARARGS_D(void, *args);
EXTERN EZ_Widget  *EZ_CreateSimpleMenu  MY_VARARGS_D(char, *args);
EXTERN EZ_Widget  *EZ_CreateWidget      MY_VARARGS_D(int,  the_args);
EXTERN EZ_Widget  *EZ_CreateWidgetXrm   MY_VARARGS_D(int, args);
EXTERN EZ_Widget  *EZ_CreateWidgetXrm   MY_VARARGS_D(int,  the_args);
EXTERN EZ_Item    *EZ_CreateItem        MY_VARARGS_D(int,  the_args);

#endif


#ifdef EZ_DEBUG 
EXTERN void EZ_DumpLedActionTable         MY_ANSIARGS(( EZ_Widget *led));
EXTERN void EZ_DumpWidgetHashTable        MY_ANSIARGS((void));
EXTERN void EZ_DumpTimers                 MY_ANSIARGS((void));
EXTERN void EZ_DumpGEventTable            MY_ANSIARGS((void)); 
EXTERN void EZ_DumpTextPropertyHashTable  MY_ANSIARGS((void)); 
EXTERN void EZ_DumpItemHashTable          MY_ANSIARGS((void)); 
EXTERN void EZ_DumpMemoryRecords          MY_ANSIARGS((void)); 
#endif
/*************************************************************************/
