/* * xopps.h * * $Log: xopps.h,v $ * Revision 1.69 1995/02/01 03:19:21 kevin * fixed marker colors in popup * * Revision 1.68 1995/01/05 23:03:16 kevin * updated copyright * * Revision 1.67 1994/12/31 01:20:06 kevin * removed redundant file loader * * Revision 1.66 1994/08/10 22:24:01 cassie * changed pict and windows options to * single export option * * Revision 1.65 1994/06/07 16:39:42 clm * changed parameters of edit_plot to void * * Revision 1.64 1994/06/02 22:25:57 clm * added MAC Pict and Windows META files options * * Revision 1.63 1994/06/01 22:31:58 clm * updated init functions for dialog.c so less parameters * * Revision 1.62 1994/05/20 23:31:43 clm * updated with HP, SGI changes * * Revision 1.61 1994/05/04 23:37:01 clm * ported to ANSI C * * Revision 1.60 1994/02/09 16:23:28 clm * added week_monday to display weeks by Mondays by resource * * Revision 1.59 1993/03/04 17:49:44 clm * changed MAX_XLINES and MAX_YLINES to 5 * * Revision 1.58 1993/02/08 16:35:37 clm * added evt to slp to menu * * Revision 1.57 1992/12/17 22:54:25 clm * created V_SOLID so numbering correct for vertical grid * * Revision 1.56 1992/12/15 20:40:54 clm * changed MAX_MARKER to global declaration * * Revision 1.55 1992/12/11 21:31:30 clm * made RSRC_FONT and RSRC_POINT global * * Revision 1.54 1992/12/01 17:03:46 clm * added vpos to sequence.c * * Revision 1.53 1992/11/12 18:56:45 clm * added display date options to slip and event objects * * Revision 1.52 1992/11/09 16:33:58 clm * added precedence lines as objects * added DELETE_PLINE to menu * * Revision 1.51 1992/10/13 21:01:31 clm * added #include needed for V.18 * * Revision 1.50 1992/10/13 00:17:00 clm * added spacing to header * * Revision 1.49 1992/10/12 20:31:38 clm * added all_id_disp toggle * * Revision 1.48 1992/10/06 17:05:51 clm * removed infile variable * * Revision 1.47 1992/10/05 22:17:03 clm * added input file name variable for entering data file to command line * * Revision 1.46 1992/09/29 23:27:11 clm * added id text and toggle to all dated objects * * Revision 1.45 1992/09/22 17:19:39 clm * added activity object * * Revision 1.44 1992/09/17 15:13:02 clm * added disp to chart date object * * Revision 1.43 1992/09/15 15:59:36 clm * added text and text positioning to slip object * * Revision 1.42 1992/09/14 20:42:09 clm * added vertical position to sactivity * * Revision 1.41 1992/09/14 19:09:15 clm * fixed PAGE_WIDTH and PAGE_HEIGHT for expanded size of drawing area * * Revision 1.40 1992/09/14 18:07:02 clm * added page to text object * * Revision 1.39 1992/09/08 22:50:54 clm * added color and point to sequence object * added ADD_SEQ to menu_tok * * Revision 1.38 1992/09/01 17:45:18 clm * added color to all objects * * Revision 1.37 1992/08/31 17:19:25 clm * took out clock and box objects * * Revision 1.36 1992/08/27 16:19:52 clm * added vgrid option * * Revision 1.35 1992/08/25 20:08:53 clm * added variable modified for beware dialog box * * Revision 1.34 1992/08/25 16:24:54 clm * changed cdata type to enum type * * Revision 1.33 1992/08/25 15:55:51 clm * added xlnary and ylnary definitions and object definitions * * Revision 1.32 1992/08/20 18:06:53 clm * added enum fm_type * * Revision 1.31 1992/08/20 16:11:37 clm * changed hline grid values so that gr_routines can be used * added color to all objects * * Revision 1.30 1992/08/03 21:36:10 clm * added slip, status, page, chart date, symbol, and level objects. * * Revision 1.29 1992/07/15 19:44:26 clm * cosmetic changes * * Revision 1.28 1992/07/13 20:11:15 clm * remove clock and box objects * added snap_txt and snap_evt toggles * * Revision 1.27 1992/07/08 19:39:42 clm * added color value to chtptr * * Revision 1.26 1992/07/06 17:55:54 clm * added line and number display toggles to hln_menu * * Revision 1.25 1992/06/12 18:16:38 clm * made chart an object * * Revision 1.22 1992/05/21 19:55:07 clm * added #include rectlist.h * * Revision 1.21 1992/05/21 16:24:12 clm * changed obj struct to use rectlist functions * * Revision 1.20 1992/05/11 22:41:33 kevin * renamed project include file to xopps.h * * Revision 1.19 1991/10/07 00:00:00 tommy * added xopps specifics * * Revision 1.8 90/12/28 13:14:30 kevin * changed x_ routines to gr_ routines * * Revision 1.2 90/11/29 15:27:46 ana * First cut with motif widgets. * * Revision 1.1 90/11/02 08:40:28 ana * Initial revision * */ /* Copyright (C) , California Institute of Technology. U.S. Government Sponsorship under NASA Contract NAS7-918 is acknowledged. */ #ifndef __xopps_h #define __xopps_h #ifndef lint static char rcsid_xopps[] = "$Id: xopps.h,v 1.69 1995/02/01 03:19:21 kevin OEL $"; #endif #define PROGRAM "OEL Project Planner / Scheduler: XOPPS" #define COPYRIGHT "Copyright (C) 1995" #include #include #include #include #include #include #include #include "help.h" #include "beware.h" #include "shellmgmt.h" #include "message.h" #include "selectfile.h" #include "gr_plot.h" #include "rectlist.h" #include "utc.h" #include "dialog.h" /* define TRUE, FALSE, ERROR, and QUIT */ /****************************************************************************/ #ifdef FALSE #undef FALSE #endif #ifdef TRUE #undef TRUE #endif #define FALSE 0 #define TRUE 1 #define ERROR 2 #define QUIT 4 /* subpanel positioning macros */ /****************************************************************************/ #define DASH_MARK 5 #define DASH_SPACE 3 #define DOT_MARK 1 #define SUB_X 150 #define SUB_Y 5 #define DONE_X 10 #define DONE_Y 1 #define ON_DONE_X (DONE_X + 20) #define ON_DONE_Y (DONE_Y + 6) #define QUIT_X (DONE_X + 50) #define QUIT_Y DONE_Y #define SP_WIDTH 350 #define SPX 15 #define SPX2 ((SPX + SP_WIDTH) / 2) #define SPX3 ((SPX2 + SP_WIDTH) / 2) #define SPX4 ((SPX3 + SP_WIDTH) / 2) /* x text and cycle positions */ #define SPXD (SPX + 21 * 7) #define SPXH (SPX + 33 * 7) #define spyt(k) (32 + 18 * (k)) /* y text position */ #define spyc(k) (30 + 18 * (k)) /* y cycle position */ #define phgt(k) (36 + 18 * (k)) /* subpanel height */ #define PAGE_WIDTH 1010 /* width of canvas in pixels */ #define PAGE_HEIGHT 870 /* height of canvas in pixels */ #define AM 0 #define NOON 1 #define PM 2 /* global variable definitions */ /****************************************************************************/ #ifdef MAIN_MOD #define EXTERN #else #define EXTERN extern #endif /*************************************************************************** definitions for drawing the chart ***************************************************************************/ #define MARGIN 2 #define NUM_WIDTH 16 #define XVAL_EARLY -1 #define XVAL_LATE -2 #define XVAL_OK 0 /* * Types of time interval resolution : year_by_year, year_by_half_year, * month, half_month, month_by_2weeks, month_by_week, week_by_day */ enum tim_res { YEARLY, HALFYEARLY, QUARTERLY, MONTHLY, HALFMONTHLY, BIWEEKLY, WEEKLY, DAILY, DAYSOFWEEK }; enum when { START_OF_DAY, MIDDLE_OF_DAY, END_OF_DAY }; /* define structures and enumerated types */ /****************************************************************************/ enum smv { SMV_BEGIN, SMV_MOVE, SMV_FINISH, SMV_ABORT }; /* label position: L= left; R=right; C= center; A=above; B=below; E=offset */ enum hpos { TX_LEFT, TX_RIGHT, TX_CENTER }; enum vpos { TX_ABOVE, TX_BELOW, TX_VCENTER }; enum typ { OBJ_NUL, OBJ_TXT, OBJ_IMG, OBJ_SYM, OBJ_HLN, OBJ_LNX, OBJ_LNY, OBJ_EVT, OBJ_ACT, OBJ_SACT, OBJ_SLP, OBJ_PAG, OBJ_PLN, OBJ_CHT, OBJ_LVL, OBJ_SEQ, OBJ_STT, OBJ_CDT, OBJ_ITEMS }; enum pmv { PMV_NONE, PMV_X, PMV_Y, PMV_ALL }; enum tds { TDS_NONE, TDS_DOY, TDS_DATE }; enum bck { BACK_NONE, BACK_ADD, BACK_MOVE, BACK_EDIT, BACK_DEL }; /* pop up menu */ enum menu_tok { ZERO, UNDO, COPY, EVT2SLP, EDIT, DELETE, DELETE_PLINE, ADD, ADD_ACT, NORMAL_ACT, ADD_SEQ, ADD_IMAGE, ADD_TEXT, ADD_SACT, ADD_EVENT, ADD_SLIP, ADD_STATUS, ADD_PAGE, ADD_CHDATE, ADD_SYM, ADD_LEVEL, LAST_ITEM }; enum hln_menu_tok { NIL, HEDIT, HDELETE, HINSERT, HLINE, HNUMBER, HLAST_ITEM }; enum fm_type { FM_FILE, FM_DIR, FM_ROOT, FM_EXT }; enum tog { TOG_OFF, TOG_ON }; /* for toggles */ enum grid_typ { G_SOLID, G_THICK, G_DOT_LINE, G_SHORT_DASH, G_LONG_DASH, G_NONE }; enum vgrid_typ { V_SOLID, V_NONE }; enum lnm { L_NONE, L_N_ON, L_NL_ON, L_N_OFF, L_NL_OFF, L_RENUM }; enum line_t { NULL_LINE, SIMPLE, DOUBLE }; enum pattern { OPEN, SOLID, LEFT_DIAG, RIGHT_DIAG, HORIZONTAL, VERTICAL, CROS_HATCH }; struct utc { /* universal time coordinate */ int year; /* year */ int day; /* day of year: 1 - 366 */ int hour; /* on 2400 clock */ }; struct obj { /* structure for general object */ enum typ type; /* type of object */ struct ops *opsptr; /* functions on object */ RectList *rlist; /* list of rectangles for object */ int layer; struct dynarray *precptr; /* pointer to all precedence lines */ union { /* details of object */ struct txt *txtptr; struct img *imgptr; struct hln *hlnptr; struct sym *symptr; struct evt *evtptr; struct act *actptr; struct sact *sactptr; struct slp *slpptr; struct pag *pagptr; struct lvl *lvlptr; struct seq *seqptr; struct cht *chtptr; struct stt *sttptr; struct cdt *cdtptr; struct line *lnptr; } z; }; struct ops { /* operations for objects */ void (*dsp)(int); /* display function */ void (*edt)(int, int); /* edit function */ void (*rem)(int, int); /* remove/delete function */ void (*lim)(int, int *, int *, int *, int *, int); /* range of motion */ void (*loc)(int, int); /* locate object function */ void (*mov)(int, int, int, int); /* move function */ void (*cpy)(struct obj *, struct obj *); /* copy function */ void (*msg)(int, int); /* display message function */ void (*sav)(int, FILE *, int); /* save function */ }; struct date { /* date in month/day/year */ int month; int day; int year; }; struct color { int index; /* color index */ char *name; /* name of color */ int gscale; /* gray scale */ }; struct pln { RectList *rlist; /* list of rectangles for pline */ int obj1; int obj2; }; /******** Object structures ***********************/ struct hln { /* array index corresponds to line position in plot (0=ACTIVITY) */ int our_num; /* actual line number */ int input_num; /* user-defined line number */ enum tog dsp_lin; /* display line */ enum tog dsp_num; /* display line number*/ int color; int font; int point; char *text; /* text above actual line */ enum grid_typ grid; /* type of line */ }; struct txt { int x, y; /* offset */ int just; /* justification */ int font; /* font */ int point; /* font point size */ int color; /* color index */ int page; /* 0 = all pages */ char *text; /* contents */ }; struct img { int x, y; /* coordinates */ char *file; /* image filename */ int scale; /* image scale factor */ int color; /* color index */ GRBitmap *pr; /* image pixrect */ GRBitmap *apr; /* aux. image (if scaled) */ }; struct act { /* complex activity structure */ utc_val strtdate, endate; /* gives x positions */ utc_val update, dwndate; /* ramp up/down dates */ int line; /* gives y position */ int strtsym, endsym; /* start/end symbol type(same for events*/ int color; /* color (except baseline) */ utc_val pctdate; /* percent complete date */ int done_pct; /* percent complete (0-100) */ enum pattern fill_pattern; /* fill pattern (uncompleted portion) */ enum tds disp; /* display flag for times */ int hpos; /* horizontal position */ int vpos; /* vertical position */ int font; /* font */ int point; /* point for activity text */ char *text; /* text comment */ utc_val b_strtdate, b_endate; /* baseline start/end date */ char *idtext; /* id text */ int idhpos, idvpos; /* id vert and horiz positioning */ int idtog; /* toggle for displaying id */ }; struct sact { /* simple activity */ utc_val strtdate, endate; /* gives x positions */ int line; /* gives y position */ int strtsym, endsym; /* start/end sym type(same for events)*/ utc_val pctdate; /* percent complete date */ int done_pct; /* percent complete (0-100) */ enum pattern fill_pattern; /* fill pattern (uncompleted portion) */ enum tds disp; /* display flag for times */ int hpos; /* horizontal position */ int vpos; /* vertical position */ int font; /* font */ int point; /* point for sactivity text */ char *text; /* text comment */ int color; /* color of object */ char *idtext; /* id text */ int idtog; /* toggle display for id text */ int idhpos, idvpos; /* positioning of id text */ }; struct seq { /* sequence */ utc_val strtdate, endate; /* gives x positions */ int line; /* gives y position */ int rtc; /* real time change flag */ enum tds disp; /* display flag for times */ int solid; /* solid or dashed line option */ int hpos, vpos; /* horizontal and vertical position */ int font; /* font */ int point; /* point */ char *text; /* text comment */ int color; /* color of object */ char *idtext; /* text for id */ int idhpos, idvpos; /* positioning of id */ int idtog; /* display id toggle */ }; struct lvl { /* usually only notes text */ int x, y; /* x, y offset */ int page; /* page #: 1..7; 0==ALL_PAGES */ int radius; /* circle radius */ int font, point; /* font */ char *text; /* contents */ int color; /* color for level object */ }; struct evt { /* event objects (only one date) */ utc_val edate; /* gives x position */ int line; /* gives y position */ /* Line number indexes a line object in hln_obj_array and the y-position of this line gives the y-value of the object. NOTE: when a new line is inserted this line number must be incremented for each schedule data object on following lines */ int sym; /* pointer to symbol type */ char *s_char; /* character inside symbol */ int moffset; /* move offset for snap events */ char *text; /* label 1 for events */ char *text2; /* label 2 for events */ int font; /* font for labels */ int point; /* point for labels */ int hpos1; /* horizontal label 1 position wrt obj */ int vpos1; /* vertical label 1 position wrt obj */ int hpos2; /* horizontal 2 label position wrt obj */ int vpos2; /* vertical 2 label position wrt obj */ int color; /* color of event object */ int disp; /* date display */ char *idtext; /* text for object id */ int idhpos; /* horizontal position for id text */ int idvpos; /* vertical position for id text */ int idtog; /* toggle to display id text */ }; /* symbols text object */ struct sym { /* usually only in notes section */ int x, y; /* x, y offset */ int sym; /* pointer to symbol type */ int page; /* page #: 1..7; 0==ALL_PAGES */ int size; /* normal, small */ int color; /* symbol color */ }; struct pag { /* page object */ int x, y; /* x, y offset */ int font; /* font */ int point; /* point */ int color; /* color value */ }; struct cdt { /* chart date object */ int x, y; /* x, y offset */ int font; /* font */ int point; /* point */ int color; /* color value */ int disp; /* display utc doy or mm/dd/yy */ }; /* Slip line type: both upper and lower, upper, lower, centered */ enum slin_typ { S_CENTER, S_LOWER_UPPER, S_LOWER, S_UPPER }; struct slp { /* slip lines */ utc_val strtdate, endate; /* start, end dates */ int line; /* line number = y offset */ int strtsym, endsym; /* start, end symbol pointers */ char *s_char, *e_char; /* start/end chars inside symbols */ enum slin_typ line_type; /* type of slip line */ int font, point; /* font and point for text */ char *text; /* text of object */ int hpos, vpos; /* positioning of text */ int color; /* color of object */ enum tds disp; /* date display */ char *idtext; /* id text */ int idhpos, idvpos; /* id horiz. and vert. positioning */ int idtog; /* display id toggle */ }; /***************************************************************************/ struct cdata { int x; int y; int co; enum typ type; }; /**************************************************************************/ #define NOTHING 0 /* different object movement types */ #define OBJECT (-1) #define LINE_X (-2) #define LINE_Y (-3) struct line { int dir; /* direction 0 for vert. 1 for horiz. */ int cord; /* coordinate (in pixels) of line */ int startln; /* starting perpendicular line */ int endln; /* ending perpendicular line */ int start_offset; /* start pixel offset from start line */ int end_offset; /* end pixel offset from end line */ }; #define start_x(i) (xlnary[ylnary[i].startln].z.lnptr->cord + ylnary[i].z.lnptr->start_offset) #define end_x(i) (xlnary[ylnary[i].endln].z.lnptr->cord + ylnary[i].z.lnptr->end_offset) #define start_y(i) (ylnary[xlnary[i].startln].z.lnptr->cord + xlnary[i].z.lnptr->start_offset) #define end_y(i) (ylnary[xlnary[i].endln].z.lnptr->cord + xlnary[i].z.lnptr->start_offset) #define MAX_XLINES 5 EXTERN int nxln; /* current number of vert. lines */ EXTERN struct obj xlnary[MAX_XLINES]; /* vertical line array */ #define x_left_margin xlnary[0].z.lnptr->cord #define x_time_offset xlnary[1].z.lnptr->cord /* movable line for milestones */ #define x_left_hdr xlnary[2].z.lnptr->cord #define x_rt_hdr xlnary[3].z.lnptr->cord #define x_right_margin xlnary[nxln-1].z.lnptr->cord #define MAX_YLINES 5 EXTERN int nyln; /* current number of hor. lines */ EXTERN struct obj ylnary[MAX_YLINES]; /* horizontal line array */ #define y_top_margin ylnary[0].z.lnptr->cord #define y_hdr_bottom ylnary[1].z.lnptr->cord #define y_act_bottom ylnary[2].z.lnptr->cord #define y_lines_end ylnary[3].z.lnptr->cord #define y_bottom_margin ylnary[nyln-1].z.lnptr->cord #define x_num_offset (x_left_margin + 17) #define DYNARRAY_BATCH_SIZE 4 struct dynarray { int (*basptr)[]; int nelems; int nslots; }; /* * dynarray macros */ #define elemof_dynarray(ptr, i) ((*((ptr)->basptr))[i]) #define sizeof_dynarray(ptr) ((ptr)->nelems) struct cht { utc_val start_date; utc_val end_date; int color; int font; int point; int flags; enum tim_res resltn; }; struct stt { int x, y; int font; int point; int color; }; EXTERN GRDisplay dw; /* drawing window parameters */ /* define special object indices */ /****************************************************************************/ #define BACK -1 #define TEMP -2 /* define global variables */ /****************************************************************************/ EXTERN int RSRC_FONT; /* resource font values set in main */ EXTERN int RSRC_POINT; /* resource font values set in main */ EXTERN int week_monday; /* resource for week begins on Monday */ EXTERN XFontStruct *dxf; /* default x font structure */ EXTERN struct ops nul_ops; /* null functions */ EXTERN struct cdata data; /* canvas data */ EXTERN int snap_on; /* snap grid on/off */ EXTERN int snap_x, snap_y; /* snap grid sizes */ EXTERN Widget menu; /* drawing area menu */ EXTERN Widget menu_item[(int)LAST_ITEM];/* should be LAST_ITEM */ EXTERN Widget hln_menu; /* horiz. line menu */ EXTERN Widget hln_item[(int)HLAST_ITEM]; /* should be LAST_ITEM */ #define MAX_OBJ 1024 #define MAX_PLN 20 #define MAX_COLOR 256 #define MAX_MARKER 16 EXTERN int nobj; /* current number of objects */ EXTERN int npln; /* current number of plines */ EXTERN int ncolor; EXTERN struct obj objary[MAX_OBJ]; /* object array */ EXTERN struct pln plnary[MAX_PLN]; /* precendence line array */ EXTERN int color_index[MAX_COLOR]; EXTERN char *color_name[MAX_COLOR]; EXTERN int color_gscale[MAX_COLOR]; #define MAX_LINE 253 /* max 7 pages * max 36 line/page */ EXTERN int Hnobj; /* current number of HLN objects */ EXTERN struct obj Hobjary[MAX_LINE + 1]; /* horizontal line object array */ EXTERN int hln_objary[MAX_LINE + 1]; /* holds index of lines in Hobj array */ EXTERN enum tog auto_renum; /* auto renumbering mode */ EXTERN enum tog auto_ereset; /* auto resetting of event symbols */ EXTERN enum tog auto_areset; /* auto resetting of sact symbols */ EXTERN enum tog snap_txt; /* restricts horiz. motion of text */ EXTERN enum tog snap_evt; /* restricts horiz. motion of events */ EXTERN enum tog utc_bar; /* displays utc date bar */ EXTERN int num_pages; EXTERN int current_page; EXTERN utc_val st_date; EXTERN enum tog st_flag; EXTERN int pg_lines; EXTERN int page_end; EXTERN int page_begin; EXTERN int y_gap; EXTERN char filename[_POSIX_PATH_MAX]; /* for adding new lines */ EXTERN enum grid_typ all_grid_dsp; /* grid type set for all lines */ EXTERN enum tog all_num_dsp; /* all number display on/off */ EXTERN enum tog all_line_dsp; /* all line display on/off */ EXTERN enum tog issue_disp; /* display issue date */ EXTERN enum tog all_id_disp; /* display id text strings */ EXTERN int vgrid; /* either solid or none */ EXTERN char issue_dt[24]; /* issue date */ EXTERN enum lnm num_mode; /* line renumbering mode */ EXTERN struct cht chart; /* chart dates structure */ EXTERN enum bck sbck; EXTERN int nbck; EXTERN struct obj objbck; EXTERN struct obj objtmp; EXTERN int object_change; EXTERN int hobject_change; EXTERN int page_width; EXTERN int page_height; EXTERN int modified; /* TRUE if change has occured */ EXTERN GC hilite_gc; /* GC to use for highlighting */ EXTERN int copying; EXTERN int moving; EXTERN int pline; /* global procedure definitions */ extern void init_activity_object(Widget); extern int add_activity(utc_val, utc_val, utc_val, utc_val, int, int, int, utc_val, int, utc_val, utc_val, enum pattern, int, enum tds, int, int, int, int, int, char *, char *, int, int, int); extern GRBitmap *open_bitmap(char *); extern GRBitmap *copy_bitmap(GRBitmap *); extern GRBitmap *scale_bitmap(GRBitmap *, int); extern void init_font(char *); extern void init_point(char *); extern int xval(struct cht *, utc_val, enum when); extern void init_chart(void); extern void init_chart_object(Widget); extern int add_chart(utc_val, utc_val, utc_val, int, int, int, int, int, enum tim_res, int); extern void dsp_chart(int); extern void init_chdate_object(Widget); extern int add_chdate(int, int, int, int, int, int, int); extern int load_colors(char *); extern void init_colors(void); extern void init_drawing_1(Display *, Widget, int); extern void init_drawing_2(void); extern void draw_outline(int); extern void AddExposeEvent(int, XRectangle *); extern void manageEditField(int); extern void createEditField(Widget); extern _XFUNCPROTOEND struct dynarray *new_dynarray(void); extern void append_dynarray(struct dynarray *, int); extern void delete_dynarray(struct dynarray *); extern void delete_element(int, struct dynarray *); extern void init_event_object(Widget); extern int add_event(utc_val, int, int, char *, int, char *, char *, int, int, int, int, int, int, int, int, enum tds, char *, int, int, int); extern void InitExport(Widget, char *, char *, int); extern void Export(void); extern void init_fileio(void); extern int register_io_obj(int, int (*)(char *)); extern int load_file(char *); extern int record_scan(char *, char *, ...); extern void save_file(char *); extern int record_print(char *, char *, ...); extern void init_file_menu(Widget, char *); extern void init_option_menu(Widget); extern void load_the_file(char *); extern void exit_button(Widget, XtPointer, XmAnyCallbackStruct *); extern void getfm_text(char *, enum fm_type); extern void set_evt_tog(void); extern void set_txt_tog(void); extern void set_utc_tog(void); extern void set_renum_tog(void); extern void set_title_to_filename(void); extern void init_hline_object(Widget); extern void hline_init(void); extern int add_hline(int, int, enum tog, enum tog, int, int, int, enum grid_typ, char *); extern void ren_hline(void); extern void mov_lines(int, int); extern void delete_hline(int); extern void ins_hline(int); extern void tog_hline(int); extern void tog_hnum(int); extern void all_numbers(enum tog); extern void all_lins(enum tog); extern void all_grids(enum grid_typ); extern void init_image_object(Widget); extern int add_image(int, int, int, int, int, char *); extern void init_internals(void); extern void save_internals(FILE *); extern void init_level_object(Widget); extern int add_level(int, int, char *, int, int, int, int, int, int); extern void line_init(void); extern void init_line_object(void); extern void add_line(int, int, int, int, int, int, int); extern void locate_lines(void); extern void clear_all_lines(void); extern int find_line(int, int, int *); extern int find_line2(int, int, int, struct obj *, struct obj *, int); extern void check_lines(void); extern int main(int, char *[]); extern void set_title(char *, char *); extern void init_markers(void); extern void add_marker(int, char *); extern void get_markers(Pixmap [], int *); extern void clear_all_markers(void); extern void dsp_marker(int, int, int, int, int); extern void init_menu(Widget); extern void init_hln_menu(Widget); extern void begin_move(Widget, int, int, int, int); extern void begin_H_move(Widget, int, int, int); extern void finish_move(Widget, int); extern void finish_H_move(Widget); extern char *extract_normal_string(XmString); extern XmString string_array_to_xmstr(char *[], int); extern int new_index(int); extern int new_H_index(void); extern int new_pline(void); extern void rem_H_object(int); extern void rem_object(struct obj *); extern void ins_H_object(int); extern void clear_all_obj(void); extern int find_object(int, int); extern int find_H_object(int, int); extern int find_pline(int, int); extern int find_object_type(enum typ); extern int store_object(int, enum bck, int); extern void recall_object(void); extern void init_objects(Widget, Display *, XtAppContext, Boolean); extern int check_text(Widget, char **); extern int check_number(Widget, int *, int, int); extern int check_day(Widget, Widget, Widget, int *); extern int check_list(Widget, int *, int []); extern int check_optionmenu(int, int *); extern int check_year(Widget, int *); extern int check_radio_box(Widget [], int *, int); extern int check_titletext(Widget, char *); extern void set_text(Widget, char *); extern void set_number(Widget, int); extern void set_list(Widget, int, int []); extern void set_optionmenu(Widget, Widget [], int, int []); extern void set_radio_box(Widget); extern void EditHObject(int, Widget); extern void EditObject(int, Widget); extern void init_page_object(Widget); extern int add_page(int, int, int, int, int, int); extern void init_pline(void); extern void add_pline(int, int, int); extern void dsp_pline(int); extern void msg_pline(int, int); extern void sav_pline(int, FILE *, int); extern void rem_pline(int, int); extern void loc_pline(int, int); extern void begin_pline(Widget, int, int, int); extern void finish_pline(Widget, int, int, int); extern int get_object_coord(int, int *, int *); extern void init_plot_dialog(Widget, Display *); extern void edit_plot(void); extern void set_dsp_size(void); extern void init_print_dialog(Widget, Display *, XtAppContext, char *); extern void popup_print_options(void); extern void setBackgroundSense(int); extern void init_resource(Display *); extern void test_command(char *); extern void init_sactivity_object(Widget); extern int add_sactivity(utc_val, utc_val, int, int, int, utc_val, int, enum pattern, int, enum tds, int, int, int, int, int, char *, char *, int, int, int); extern void init_sequence_object(Widget); extern int add_sequence(utc_val, utc_val, int, int, int, int, int, int, int, int, int, char *, int, char *, int, int, int); extern void init_slip_object(Widget); extern int add_slip(utc_val, utc_val, int, int, int, char *, char *, enum slin_typ, int, int, int, char *, int, int, int, enum tds, char *, int, int, int); extern void init_status_object(Widget); extern int add_status(int, int, int, int, int, int); extern void init_symbol_object(Widget); extern int add_symbol(int, int, int, int, int, int, int); extern void init_text_object(Widget); extern int add_text(int, int, int, int, int, int, int, int, char *); extern void skip_blanks(char **); extern int get_number(char **, int *); extern int utc_to_x(utc_val); extern void x_to_utc(int, utc_val *); extern void issue_date(void); /****************************************************************************/ #endif