/***************************************************************************
 * elements.h - CAMM v2.0 Periodic Table of the Elements header file.      *
 * ----------------------------------------------------------------------- *
 * Modification History:                                                   *
 * 11-10-88    Created: constants and structures defined                   *
 * 10-02-89    Fixed for Lattice "C" v5.02, element select bug fixed
 ***************************************************************************/

#include <exec/types.h>
#include <graphics/text.h>
#include <graphics/rastport.h>
#include <graphics/layers.h>
#include <graphics/gfxbase.h>
#include <exec/ports.h>
#include <exec/execbase.h>
#include <intuition/intuition.h>
#include <graphics/text.h>
#include <exec/memory.h>
#include <fcntl.h>
#include <stdio.h>

#define DEPTH           2     /* two bitplanes (4 colors) */
#define SCREEN_WIDTH    640
#define SCREEN_HEIGHT   400
#define EWIN_TOP        11
#define EWIN_WIDTH      640   /* elements window */
#define EWIN_HEIGHT     400-EWIN_TOP
#define IWIN_TOP        100
#define IWIN_LEFT       150
#define IWIN_WIDTH      394   /* information window */
#define IWIN_HEIGHT     174
#define INFOTEXTX       5L
#define INFOTEXT        16L
#define EOFF_X          20L
#define EOFF_Y          25L
#define BOX_W           33L    /* element box */
#define BOX_H           36L
#define E_TITLE         "Periodic Table of the Elements"
#define SCREEN_TITLE    "Elements - v1.2a (c)1989 Paul T. Miller"
#define BOX_COLOR       1L
#define ENUM_X          3L
#define ENUM_Y          2L
#define ESYM_X          14L
#define ESYM_Y          17L
#define SHADOWDEPTH     3L
#define EOFF_SHADX      30L
#define EOFF_SHADY      32L
#define SHADOWBLACK     4L
#define BACKGROUND      0L
#define GREENTEXT       1L
#define BLUETEXT        2L
#define REDTEXT         3L
#define ROWNUM_Y        (BOX_H - 5)/2

#define ELEMENTS        106      /* number of elements supported */
#define ELEMENTS_FILE   "DAT:Elements.DAT"
#define INFO_FILE       "DAT:Info.DAT"
#define ISOTOPES_FILE   "DAT:Isotopes.DAT"

struct Window *get_window();

#define SOLID_E         1
#define LIQUID_E        2
#define GAS_E           3
#define SYNTHETIC_E     4

struct Element {
   USHORT   number;        /* atomic number */
   USHORT   column;        /* column on periodic table */
   USHORT   row;           /* row on periodic table */
   char     symbol[4];     /* atomic symbol */
   char     name[13];      /* element's name */
   USHORT   type;          /* stable form */
};

struct Info {
   USHORT   Structure;
   FLOAT    AWeight;
   FLOAT    BoilingP;
   FLOAT    MeltingP;
   FLOAT    Density;
   FLOAT    CRadius;
   FLOAT    ARadius;
   FLOAT    AVolume;
   FLOAT    IonPot;
   FLOAT    SpecHeat;
   FLOAT    Electroneg;
   FLOAT    HeatVap;
   FLOAT    HeatFus;
   char     ElecCond[13];
   FLOAT    ThermalCond;
   char     Config[25];
   char     OxiStates[11];
};
