#define X_SIZE 800 /* default draw area size, change as desired */
#define Y_SIZE 685
#define INFO_X_SIZE 173
#define LOGO_SIZE 200
#define INFO_Y_SIZE 60
#define NITEM 20 /* Max number of menu items in a menu */
#define NMAX 100 /* Max number of points on a boundary */
#define NB 20 /* Max number of boundaries */
#define NH 500 /* Max number of points where eqdata can be spec. */
#define MAXLEVELS 10 /* Max number of refinment levels */
#define NOBF 3 /* Number of basefcn's in an element */
#define WORKSIZE 3000000 /* Default size for the fortran work array */
#define CLICK_TOL 10 /* How close one must click on a point (pixels) */
/* */
/* Some magic numbers */
/* */
#define OUTER 0
#define INNER 1
#define INTERNAL 2
#define DIRICHLET 0
#define NEUMANN 1
#define NORMAL 0
#define DRAWING 1
#define DELETING 2
#define MOVING 3
#define PICKING 4
#define WAITING 5
#define ZOOMING 6
#define HAVE_NOTHING 0
#define HAVE_SCALE 2
#define HAVE_BOUNDARY 4
#define HAVE_MESHSIZE 8
#define HAVE_MESH 12
#define HAVE_EQDATA 16
#define HAVE_BCDATA 18
#define HAVE_SOLVDATA 20
#define HAVE_SOLUTION 24
#define HAVE_MORE 124
#define TO_PRINTER 0
#define TO_FILE 1
#include "multireq.h"
void quit(Widget w, void *data);
void file(Widget w, void *data);
void save(Widget w, void *data);
void cut(Widget w, void *data);
void sselect(Widget w, void *data);
void scroll(Widget w, float x, void *data);
void getDrawingScale();
int state;
int action;
int substate;
int have_colors;
int zoomActive;
extern int solverLevels;
extern float solverTol;
extern char solverNorm[];
Widget solButt[MAXLEVELS];
Widget label;
int moveThis, onThisB, boundaryType;
struct {
unsigned int plotTable[10] ;
int zoom;
} flags;
typedef struct {
Widget name;
Widget item[NITEM];
int needs[NITEM];
int noItems;
} menu;
typedef struct {
int el;
int x;
int y;
float f[4];
} pointData;
typedef struct {
char text[80];
} name;
typedef struct {
int what;
char *label;
int nvalues;
int n;
pointData value[NH];
int type;
name expr[10];
} EqData;
typedef struct {
char *sectionName;
char *labelName[4];
Widget label[4];
Widget input[4];
Widget header;
Widget butt;
} EqDataUI;
typedef struct {
int n;
char type[NB*NMAX];
int segment[NB*NMAX];
float value[NB*NMAX];
int id[NB*NMAX];
} BoundaryCondition;
/* Equation data definition */
BoundaryCondition cdbc[5];
extern int numberOfEqData;
extern int nvar;
extern EqData cddata[];
extern EqDataUI cdUI[];
int hx[NH];
int hy[NH];
int ih ;
float h[NH];
/* The menus */
menu fileMenu, geomMenu, meshMenu, solverMenu, plotMenu;
/* The buttons */
Widget zoomButton, unZoomButton;
menu levelMenu;
/* The windows */
Widget drawWindow, infoWindow, logoWindow;
Widget kth;
Widget sbar, sbar1, sbar2;
float psred, psgreen, psblue;
int white1, white2;
int curcol ;
int GREY;
int color_ps;
syntax highlighted by Code2HTML, v. 0.9.1