argv%turnpike@Sun.COM (Dan Heller) (03/04/90)
Submitted-by: Brian Smith <bvsmith@lbl.gov> Posting-number: Volume 6, Issue 14 Archive-name: xfig2/part06 #! /bin/sh # This is a shell archive. Remove anything before this line, then feed it # into a shell via "sh file" or similar. To overwrite existing files, # type "sh file -c". # The tool that generated this appeared in the comp.sources.unix newsgroup; # send mail to comp-sources-unix@uunet.uu.net if you want that tool. # If this archive is complete, you will see the following message at the end: # "End of archive 6 (of 15)." # Contents: xfig/autoarrow.c xfig/f2ps.c xfig/panel2.h # Wrapped by argv@turnpike on Wed Feb 28 10:53:19 1990 PATH=/bin:/usr/bin:/usr/ucb ; export PATH if test -f 'xfig/autoarrow.c' -a "${1}" != "-c" ; then echo shar: Will not clobber existing file \"'xfig/autoarrow.c'\" else echo shar: Extracting \"'xfig/autoarrow.c'\" \(9172 characters\) sed "s/^X//" >'xfig/autoarrow.c' <<'END_OF_FILE' X/* X * FIG : Facility for Interactive Generation of figures X * X * Copyright (c) 1985 by Supoj Sutanthavibul (supoj@sally.UTEXAS.EDU) X * January 1985. X * 1st revision : Aug 1985. X * X * %W% %G% X*/ X#include "fig.h" X#include "resources.h" X#include "func.h" X#include "object.h" X#include "paintop.h" X X#define TOLERANCE 7 X Xextern (*canvas_kbd_proc)(); Xextern (*canvas_locmove_proc)(); Xextern (*canvas_leftbut_proc)(); Xextern (*canvas_middlebut_proc)(); Xextern (*canvas_rightbut_proc)(); Xextern null_proc(); Xextern set_popupmenu(); Xextern F_line *line_point_search(); Xextern F_spline *spline_point_search(); Xextern F_arc *arc_point_search(); Xextern F_arrow *forward_arrow(), *backward_arrow(); X Xextern int foreground_color, background_color; Xextern int pointmarker_shown; X XF_point *selected_point, *left_point; Xint arcpoint_num; X add_arrow_head(); X delete_arrow_head(); X X#define round(x) ((int) (x + .5)) X Xarrow_head_selected() X{ X canvas_kbd_proc = null_proc; X canvas_locmove_proc = null_proc; X canvas_leftbut_proc = add_arrow_head; X canvas_middlebut_proc = delete_arrow_head; X canvas_rightbut_proc = set_popupmenu; X set_cursor(&pick9_cursor); X } X Xadd_arrow_head(x, y) Xint x, y; X{ X F_line *line; X F_spline *spline; X F_arc *arc; X X if ((line = line_point_search(x, y, TOLERANCE, X &left_point, &selected_point)) != NULL) { X add_linearrow(line); X } X else if ((spline = spline_point_search(x, y, X TOLERANCE, &left_point, &selected_point)) != NULL){ X add_splinearrow(spline); X } X else if ((arc = arc_point_search(x, y, TOLERANCE, X &arcpoint_num)) != NULL) { X add_arcarrow(arc); X } X else X return; X X set_modifiedflag(); X } X Xdelete_arrow_head(x, y) Xint x, y; X{ X F_line *line; X F_spline *spline; X F_arc *arc; X X if ((line = line_point_search(x, y, TOLERANCE, X &left_point, &selected_point)) != NULL) { X delete_linearrow(line); X } X else if ((spline = spline_point_search(x, y, X TOLERANCE, &left_point, &selected_point)) != NULL){ X delete_splinearrow(spline); X } X else if ((arc = arc_point_search(x, y, TOLERANCE, X &arcpoint_num)) != NULL) { X delete_arcarrow(arc); X } X else X return; X X set_modifiedflag(); X } X Xadd_linearrow(line) XF_line *line; X{ X F_point *p; X X if (line->type == T_POLYGON X || line->type == T_BOX || line->type == T_ARC_BOX) X return; X if (line->points->next == NULL) return; /* A single point line */ X X if (left_point == NULL) { /* selected_point is the first point */ X if (line->back_arrow) return; X p = selected_point->next; X line->back_arrow = backward_arrow(); X if (pointmarker_shown) toggle_linepointmarker(line); X draw_arrow(p->x, p->y, selected_point->x, selected_point->y, X line->back_arrow, PAINT); X if (pointmarker_shown) toggle_linepointmarker(line); X } X else if (selected_point->next == NULL) { /* forward arrow */ X if (line->for_arrow) return; X line->for_arrow = forward_arrow(); X if (pointmarker_shown) toggle_linepointmarker(line); X draw_arrow(left_point->x, left_point->y, X selected_point->x, selected_point->y, X line->for_arrow, PAINT); X if (pointmarker_shown) toggle_linepointmarker(line); X } X clean_up(); X set_action_object(F_ADD_ARROW_HEAD, O_POLYLINE); X } X Xadd_arcarrow(arc) XF_arc *arc; X{ X X if (arcpoint_num == 0) { /* backward arrow */ X if (arc->back_arrow) return; X arc->back_arrow = backward_arrow(); X if (pointmarker_shown) toggle_arcpointmarker(arc); X draw_arcarrow(arc, foreground_color); X if (pointmarker_shown) toggle_arcpointmarker(arc); X } X else if (arcpoint_num == 2) { /* for_arrow */ X if (arc->for_arrow) return; X arc->for_arrow = forward_arrow(); X if (pointmarker_shown) toggle_arcpointmarker(arc); X draw_arcarrow(arc, foreground_color); X if (pointmarker_shown) toggle_arcpointmarker(arc); X } X clean_up(); X set_action_object(F_ADD_ARROW_HEAD, O_ARC); X } X Xadd_splinearrow(spline) XF_spline *spline; X{ X F_point *p; X F_control *c; X X if (closed_spline(spline)) return; X if (left_point == NULL) { /* add backward arrow */ X if (spline->back_arrow) return; X p = selected_point->next; X spline->back_arrow = backward_arrow(); X if (pointmarker_shown) toggle_splinepointmarker(spline); X if (normal_spline(spline)) { X draw_arrow(p->x, p->y, selected_point->x, X selected_point->y, spline->back_arrow, PAINT); X } X else { X c = spline->controls; X draw_arrow(round(c->rx), round(c->ry), selected_point->x, X selected_point->y, spline->back_arrow, PAINT); X } X if (pointmarker_shown) toggle_splinepointmarker(spline); X } X else if (selected_point->next == NULL) { /* add forward arrow */ X if (spline->for_arrow) return; X spline->for_arrow = forward_arrow(); X if (pointmarker_shown) toggle_splinepointmarker(spline); X if (normal_spline(spline)) { X draw_arrow(left_point->x, left_point->y, X selected_point->x, selected_point->y, X spline->for_arrow, PAINT); X } X else { X for (c = spline->controls; c->next != NULL; c = c->next); X draw_arrow(round(c->lx), round(c->ly), selected_point->x, X selected_point->y, spline->for_arrow, PAINT); X } X if (pointmarker_shown) toggle_splinepointmarker(spline); X } X clean_up(); X set_action_object(F_ADD_ARROW_HEAD, O_SPLINE); X } X Xdelete_linearrow(line) XF_line *line; X{ X if (line->type == T_POLYGON X || line->type == T_BOX || line->type == T_ARC_BOX) X return; X X if (left_point == NULL) { /* selected_point is the first point */ X if (! line->back_arrow) return; X if (pointmarker_shown) toggle_linepointmarker(line); X draw_line(line, INV_PAINT); X line->back_arrow = 0; X free((char*)line->back_arrow); X line->for_arrow = NULL; X draw_line(line, PAINT); X if (pointmarker_shown) toggle_linepointmarker(line); X } X else if (selected_point->next == NULL) { /* forward arrow */ X if (! line->for_arrow) return; X if (pointmarker_shown) toggle_linepointmarker(line); X draw_line(line, INV_PAINT); X free((char*)line->for_arrow); X line->for_arrow = NULL; X draw_line(line, PAINT); X if (pointmarker_shown) toggle_linepointmarker(line); X } X clean_up(); X set_action_object(F_DELETE_ARROW_HEAD, O_POLYLINE); X } X Xdelete_arcarrow(arc) XF_arc *arc; X{ X if (arcpoint_num == 0) { /* backward arrow */ X if (! arc->back_arrow) return; X if (pointmarker_shown) toggle_arcpointmarker(arc); X draw_arc(arc, background_color); X free((char*)arc->back_arrow); X arc->back_arrow = NULL; X draw_arc(arc, foreground_color); X if (pointmarker_shown) toggle_arcpointmarker(arc); X } X else if (arcpoint_num == 2) { /* for_arrow */ X if (! arc->for_arrow) return; X if (pointmarker_shown) toggle_arcpointmarker(arc); X draw_arc(arc, background_color); X free((char*)arc->for_arrow); X arc->for_arrow = NULL; X draw_arc(arc, foreground_color); X if (pointmarker_shown) toggle_arcpointmarker(arc); X } X clean_up(); X set_action_object(F_DELETE_ARROW_HEAD, O_ARC); X } X Xdelete_splinearrow(spline) XF_spline *spline; X{ X F_point *p; X X if (closed_spline(spline)) return; X if (left_point == NULL) { /* selected_point is the first point */ X if (! spline->back_arrow) return; X if (pointmarker_shown) toggle_splinepointmarker(spline); X p = selected_point->next; X if (normal_spline(spline)) { X draw_arrow(p->x, p->y, selected_point->x, X selected_point->y, spline->back_arrow, ERASE); X pw_vector(canvas_pixwin, selected_point->x, selected_point->y, X round((p->x+selected_point->x)/2.0), X round((p->y+selected_point->y)/2.0), PAINT, spline->thickness); X } X else { X F_control *a, *b; X X a = spline->controls; X b = a->next; X draw_arrow(round(a->rx), round(a->ry), selected_point->x, X selected_point->y, spline->back_arrow, ERASE); X bezier_spline( X (float)selected_point->x, (float)selected_point->y, X a->rx, a->ry, b->lx, b->ly, (float)p->x, (float)p->y, X PAINT,spline->thickness); X } X free((char*)spline->back_arrow); X spline->back_arrow = NULL; X if (pointmarker_shown) toggle_splinepointmarker(spline); X } X else if (selected_point->next == NULL) { /* forward arrow */ X if (! spline->for_arrow) return; X if (pointmarker_shown) toggle_splinepointmarker(spline); X if (normal_spline(spline)) { X draw_arrow(left_point->x, left_point->y, X selected_point->x, selected_point->y, X spline->for_arrow, ERASE); X pw_vector(canvas_pixwin, selected_point->x, selected_point->y, X round((selected_point->x+left_point->x)/2.0), X round((selected_point->y+left_point->y)/2.0), X PAINT, spline->thickness); X } X else { X F_control *a, *b; X X a = spline->controls; X for (b = a->next; b->next != NULL; a = b, b = b->next); X draw_arrow(round(b->lx), round(b->ly), selected_point->x, X selected_point->y, spline->for_arrow, ERASE); X bezier_spline( X (float)left_point->x, (float)left_point->y, X a->rx, a->ry, b->lx, b->ly, X (float)selected_point->x, (float)selected_point->y, X PAINT,spline->thickness); X } X free((char*)spline->for_arrow); X spline->for_arrow = NULL; X if (pointmarker_shown) toggle_splinepointmarker(spline); X } X clean_up(); X set_action_object(F_DELETE_ARROW_HEAD, O_SPLINE); X } END_OF_FILE if test 9172 -ne `wc -c <'xfig/autoarrow.c'`; then echo shar: \"'xfig/autoarrow.c'\" unpacked with wrong size! fi # end of 'xfig/autoarrow.c' fi if test -f 'xfig/f2ps.c' -a "${1}" != "-c" ; then echo shar: Will not clobber existing file \"'xfig/f2ps.c'\" else echo shar: Extracting \"'xfig/f2ps.c'\" \(20059 characters\) sed "s/^X//" >'xfig/f2ps.c' <<'END_OF_FILE' X/* X * F2ps : Fig-to-PostScript translator X * X * Copyright (c) 1986 by Supoj Sutanthavibul (supoj@sally.UTEXAS.EDU) X * June 1986. X * 1st revision : March 1988 - read fig 1.4 or 1.4X format X * X * Version 2.0 additions (protocol 1.4X) by B.V. Smith 2/90 X * X * %W% %G% X*/ X#include "fig.h" X#include "object.h" X#include "resources.h" X#include "psfonts.h" X X#undef cfree X#undef free X X#define PAGE_WIDTH 612 /* points; 8.5" */ X#define PAGE_HEIGHT 792 /* points; 11" */ X#define POINT_PER_INCH 72 X#define DEFAULT_FONT_SIZE 11 X#define DEFAULT_FONT "Times-Roman" X Xextern struct _fstruct fontnames[]; /* printer font names */ X Xchar Usage[] = "Usage: %s [-P][-L][-f font][-s size][-e scale][-N][-c] [input [output]]\n"; Xchar *prog; Xchar *font = DEFAULT_FONT; Xint font_size = DEFAULT_FONT_SIZE; Xint cur_thickness; Xint cur_areafill=0; Xint show_page = 1; Xint center = 0; Xint landscape = 1; Xdouble scale = 1.0; Xdouble reduction; /* converts screen ppi to printer points */ Xextern int num_object; Xchar *from = NULL, *to = NULL; XFILE *ffp = NULL, *tfp = NULL; Xchar Err_incomp[] = "Incomplete %s object at line %d."; Xchar Err_mem[] = "Running out of memory."; X Xint line_thickness; /* not needed for f2ps, arrow.c needs it for fig */ X Xget_args(argc, argv) Xint argc; Xchar *argv[]; X{ X char *a; X int first = 1; X X prog = *argv; X while (--argc) { X a = *++argv; X if (*a == '-') { X if (*++a == 'f') { /* Font name followed */ X if (--argc) X font = *++argv; X else X goto error_exit; X } X else if (*a == 'c') { /* Centering */ X center = 1; X } X else if (*a == 'l' || *a == 'L') { /* Landscape */ X landscape = 1; X } X else if (*a == 'p' || *a == 'P') { /* Portrait */ X landscape = 0; X } X else if (*a == 's') { /* Font size followed */ X if (--argc) { X font_size = atoi(*++argv); X } X else X goto error_exit; X } X else if (*a == 'e') { /* Enlarging factor followed */ X if (--argc) X scale = atof(*++argv); X else X goto error_exit; X } X else if (*a == 'N') { /* No "showpage" */ X show_page = 0; X } X else X goto error_exit; X } X else if (first) { X from = a; /* from file */ X first = 0; X } X else if (first == 0) { X to = a; /* to file */ X first = -1; X } X else X goto error_exit; X } X return; X X error_exit: X fprintf(stderr, Usage, prog); X exit(0); X } X Xmain(argc, argv) Xint argc; Xchar *argv[]; X{ X F_compound objects; X int status; X char c; X X get_args(argc, argv); X X if (to == NULL) X tfp = stdout; X else if ((tfp = fopen(to, "w")) == NULL) { X fprintf(stderr, "%s: Couldn't open %s", prog, to); X fprintf(stderr, Usage, prog); X exit(0); X } X X if (from) X status = read_fig(from, &objects); X else /* read from stdin */ X status = readfp_fig(stdin, &objects); X X if (status != 0) { X if (from) read_fail_message(from, status); X exit(0); X } X genps_objects(&objects); X if (tfp != stdout) (void)fclose(tfp); X } X X#define BEGIN_PROLOG "\ X/$F2psDict 32 dict def \ X$F2psDict begin\ X $F2psDict /mtrx matrix put\ X" X#define ELLIPSE_PS " \ X/DrawEllipse {\ X /endangle exch def\ X /startangle exch def\ X /yrad exch def\ X /xrad exch def\ X /y exch def\ X /x exch def\ X /savematrix mtrx currentmatrix def\ X x y translate xrad yrad scale 0 0 1 startangle endangle arc\ X savematrix setmatrix\ X } def\ X" X#define SPLINE_PS " \ X/DrawSplineSection {\ X /y3 exch def\ X /x3 exch def\ X /y2 exch def\ X /x2 exch def\ X /y1 exch def\ X /x1 exch def\ X /xa x1 x2 add 2 div def\ X /ya y1 y2 add 2 div def\ X /xb x2 x3 add 2 div def\ X /yb y2 y3 add 2 div def\ X /x2 xa xb add 2 div def\ X /y2 ya yb add 2 div def x1 x2 sub abs 2 lt y1 y2 sub abs 2 lt and\ X { x2 y2 lineto }\ X { x2 y2 xb yb x3 y3 x1 y1 xa ya x2 y2 DrawSplineSection\ X /y3 exch def\ X /x3 exch def\ X /yb exch def\ X /xb exch def\ X /y2 exch def\ X /x2 exch def}\ X ifelse\ X x2 x3 sub abs 2 lt y2 y3 sub abs 2 lt and { x3 y3 lineto }\ X { x2 y2 xb yb x3 y3 DrawSplineSection } ifelse\ X } def\ X" X#define END_PROLOG "\ X end\ X /$F2psBegin {$F2psDict begin /$F2psEnteredState save def} def\ X /$F2psEnd {$F2psEnteredState restore end} def\ X\n%%EndProlog\ X" X X#define MAX 32000 X#define MIN -32000 Xstatic int coord_system; Xstatic int llx = MAX, lly = MAX, urx = MIN, ury = MIN; X Xprolog(objects) XF_compound *objects; X{ X char host[256]; X struct passwd *who; X long when; X extern char *ctime(), *strcpy(); X extern long time(); X X fprintf(tfp, "%%!\n"); /* PostScript magic strings */ X who = getpwuid(getuid()); X if (-1 == gethostname(host, sizeof(host))) X (void)strcpy(host, "unknown-host!?!?"); X (void) time(&when); X fprintf(tfp, "%%%%Title: %s\n", ((from) ? from : "stdin")); X fprintf(tfp, "%%%%Creator: %s\n", prog); X fprintf(tfp, "%%%%CreationDate: %s", ctime(&when)); X fprintf(tfp, "%%%%For: %s@%s (%s)\n", X who->pw_name, host, who->pw_gecos); X fprintf(tfp, "%%%%Pages: %d\n", show_page); X fprintf(tfp, "%%%%BoundingBox: %d %d %d %d\n", llx, lly, urx, ury); X fprintf(tfp, "%%%%EndComments\n"); X fprintf(tfp, "%s\n", BEGIN_PROLOG); X if (ellipse_exist(objects)) X fprintf(tfp, "%s\n", ELLIPSE_PS); X if (normal_spline_exist(objects)) X fprintf(tfp, "%s\n", SPLINE_PS); X fprintf(tfp, "%s\n", END_PROLOG); X fprintf(tfp, "$F2psBegin\n"); X } X Xepilog() X{ X if (show_page) fprintf(tfp, "showpage\n"); X fprintf(tfp, "$F2psEnd\n"); X } X Xgenps_objects(objects) XF_compound *objects; X{ X double tx, scalex, scaley; X double dx, dy, origx, origy; X F_arc *a; X F_compound *c; X F_ellipse *e; X F_line *l; X F_spline *s; X F_text *t; X int fill; X int itmp; X X /* Compute bounding box of objects */ X compound_bound(objects, &llx, &lly, &urx, &ury); X if (llx > urx) { X fprintf(stderr, "%s: No object",prog); X return; X } X coord_system = objects->nwcorner.y; X /* calculate reduction to convert screen points-per-inch to printer points */ X reduction = POINT_PER_INCH / (float)objects->nwcorner.x; X scalex = scaley = scale * reduction; X /* convert to point unit */ X llx = (int)ceil(llx * scalex); X lly = (int)ceil(lly * scaley); X urx = (int)ceil(urx * scalex); X ury = (int)ceil(ury * scaley); X if (landscape) /* swap x,y */ X { X itmp = llx; llx = lly; lly = itmp; X itmp = urx; urx = ury; ury = itmp; X } X if (center) { X dx = urx - llx; X dy = ury - lly; X tx = (PAGE_WIDTH - dx) / 2.0; X origx = tx - llx; X if (landscape) X origx=0; X /*origx -= (dx-llx);*/ X urx = (llx=tx) + dx; X ury = (PAGE_HEIGHT + dy) / 2.0; X if (coord_system == 2) X origy = ury + lly; X else X origy = ury - dy - lly; X lly = ury - dy; X } X else { X origx = 0.0; X origy = PAGE_HEIGHT; X } X if (coord_system == 2) X scaley = -scaley; X X prolog(objects); X X fprintf(tfp, "%f %f translate %.3f %.3f scale\n", X origx, origy, scalex, scaley); X X /* **** Landscape mode **** */ X if (landscape) { X fprintf(tfp, "%d 0 translate 90 rotate\n", PAGE_WIDTH); X /* uncomment this when we figure out what SCALE should be */ X /* if ((t = PAGE_HEIGHT / SCALE / WIDTH) < 1.0) X fprintf(tfp, "%f %f scale\n", t, t); X */ X } X /* else if ((t = PAGE_HEIGHT / SCALE / HEIGHT) < 1.0) X fprintf(tfp, "%f %f scale\n", t, t); X */ X X /* make first pass with area-filled objects; second with non-filled */ X for (fill=1; fill>=0; fill--) X { X for (a = objects->arcs; a != NULL; a = a->next) X genps_arc(a,fill); X for (c = objects->compounds; c != NULL; c = c->next) X genps_compound(c,fill); X for (e = objects->ellipses; e != NULL; e = e->next) X genps_ellipse(e,fill); X for (l = objects->lines; l != NULL; l = l->next) X genps_line(l,fill); X for (s = objects->splines; s != NULL; s = s->next) X genps_spline(s,fill); X } X /* do text after everything else */ X for (t = objects->texts; t != NULL; t = t->next) X genps_text(t); X epilog(); X } X Xset_style(s, v) Xint s; Xfloat v; X{ X if (s == DASH_LINE) { X if (v > 0.0) fprintf(tfp, "\t[%f] 0 setdash\n", v); X } X else if (s == DOTTED_LINE) { X if (v > 0.0) fprintf(tfp, "\t[1 %f] 0 setdash\n", v); X } X } X Xreset_style(s, v) Xint s; Xfloat v; X{ X if (s == DASH_LINE) { X if (v > 0.0) fprintf(tfp, "\t[] 0 setdash\n"); X } X else if (s == DOTTED_LINE) { X if (v > 0.0) fprintf(tfp, "\t[] 0 setdash\n"); X } X } X Xset_areafill(a) Xint a; X{ X if (cur_areafill != a) X { X cur_areafill = a; X fprintf(tfp, "%.2f setgray\n",1.0-(a-1.0)/(NUMFILLPATS-1.0)); X } X } X Xset_linewidth(w) Xint w; X{ X extern int cur_thickness; X X if (w != cur_thickness) { X cur_thickness = w; X fprintf(tfp, "%.3f setlinewidth\n", /* 0.7 * */ 1.0 * cur_thickness); X } X } X Xgenps_compound(com,fill) XF_compound *com; Xint fill; X{ X F_arc *a; X F_compound *c; X F_ellipse *e; X F_line *l; X F_spline *s; X F_text *t; X X for (a = com->arcs; a != NULL; a = a->next) X genps_arc(a,fill); X for (c = com->compounds; c != NULL; c = c->next) X genps_compound(c,fill); X for (e = com->ellipses; e != NULL; e = e->next) X genps_ellipse(e,fill); X for (l = com->lines; l != NULL; l = l->next) X genps_line(l,fill); X for (s = com->splines; s != NULL; s = s->next) X genps_spline(s,fill); X if (fill==0) /* no filled text, just do text on the non-filled pass */ X for (t = com->texts; t != NULL; t = t->next) X genps_text(t); X } X Xgenps_line(l,fill) XF_line *l; Xint fill; X{ X F_point *p, *q; X int radius; X X if ((fill && l->area_fill==0) || X (fill==0 && l->area_fill)) X return; X X set_linewidth(l->thickness); X radius = l->pen; /* radius of rounded-corner boxes */ X p = l->points; X q = p->next; X if (q == NULL) { /* A single point line */ X fprintf(tfp, "newpath %d %d moveto %d %d lineto stroke\n", X p->x, p->y, p->x, p->y); X return; X } X if (l->back_arrow) X draw_arrow_head((float)q->x, (float)q->y, (float)p->x, X (float)p->y, l->back_arrow->ht, l->back_arrow->wid); X set_style(l->style, l->style_val); X fprintf(tfp, "%% Polyline\n"); X if (l->type == T_ARC_BOX) X { X register int xmin,xmax,ymin,ymax; X X xmin = xmax = p->x; X ymin = ymax = p->y; X while (p->next != NULL) /* find lower left and upper right corners */ X { X p=p->next; X if (xmin > p->x) X xmin = p->x; X else if (xmax < p->x) X xmax = p->x; X if (ymin > p->y) X ymin = p->y; X else if (ymax < p->y) X ymax = p->y; X } X fprintf(tfp, "newpath %d %d moveto",xmin+radius, ymin); X fprintf(tfp, " %d %d %d %d %d arcto 4 {pop} repeat", X xmin, ymin, xmin, ymax-radius, radius); X fprintf(tfp, " %d %d %d %d %d arcto 4 {pop} repeat", /* arc through bl to br */ X xmin, ymax, xmax-radius, ymax, radius); X fprintf(tfp, " %d %d %d %d %d arcto 4 {pop} repeat", /* arc through br to tr */ X xmax, ymax, xmax, ymin+radius, radius); X fprintf(tfp, " %d %d %d %d %d arcto 4 {pop} repeat", /* arc through tr to tl */ X xmax, ymin, xmin+radius, ymin, radius); X } X else X { X fprintf(tfp, "newpath %d %d moveto", p->x, p->y); X while (q->next != NULL) { X p = q; X q = q->next; X if (l->type == T_ARC_BOX) X { X fprintf(tfp," %d %d %d %d %d arcto 4 {pop} repeat", X p->x,p->y,q->x,q->y,radius); X fprintf(tfp," 4 { pop } repeat"); X } X else X fprintf(tfp, " %d %d lineto", p->x, p->y); X } X } X if (l->type == T_POLYLINE) X fprintf(tfp, " %d %d lineto stroke\n", q->x, q->y); X else X { X fprintf(tfp, " closepath "); X if (l->area_fill) X { X set_areafill(l->area_fill); X fprintf(tfp, " gsave fill grestore "); X set_areafill(NUMFILLPATS); /* back to black line */ X } X fprintf(tfp, " stroke\n"); X } X X reset_style(l->style, l->style_val); X if (l->for_arrow) X draw_arrow_head((float)p->x, (float)p->y, (float)q->x, X (float)q->y, l->for_arrow->ht, l->for_arrow->wid); X } X Xgenps_spline(s,fill) XF_spline *s; Xint fill; X{ X if (int_spline(s)) X genps_itp_spline(s,fill); X else X genps_ctl_spline(s,fill); X } X Xgenps_itp_spline(s,fill) XF_spline *s; Xint fill; X{ X F_point *p, *q; X F_control *a, *b; X X if ((fill && s->area_fill==0) || X (fill==0 && s->area_fill)) X return; X X set_linewidth(s->thickness); X a = s->controls; X b = a->next; X p = s->points; X if (s->back_arrow) X draw_arrow_head(b->lx, b->ly, (float)p->x, X (float)p->y, s->back_arrow->ht, s->back_arrow->wid); X X set_style(s->style, s->style_val); X fprintf(tfp, "%% Interpolated spline\n"); X fprintf(tfp, "newpath %d %d moveto\n", p->x, p->y); X for (q = p->next; q != NULL; p = q, q = q->next) { X b = a->next; X fprintf(tfp, "\t%.3f %.3f %.3f %.3f %d %d curveto\n", X a->rx, a->ry, b->lx, b->ly, q->x, q->y); X a = b; X b = b->next; X } X if (closed_spline(s)) X { X fprintf(tfp, " closepath "); X if (s->area_fill) X { X set_areafill(s->area_fill); X fprintf(tfp, " gsave fill grestore "); X set_areafill(NUMFILLPATS); /* back to black for line */ X } X } X fprintf(tfp, " stroke\n"); X reset_style(s->style, s->style_val); X X if (s->for_arrow) X draw_arrow_head(a->lx, a->ly, (float)p->x, X (float)p->y, s->for_arrow->ht, s->for_arrow->wid); X } X Xgenps_ctl_spline(s,fill) XF_spline *s; Xint fill; X{ X float a, b, c, d, x1, y1, x2, y2, x3, y3; X F_point *p, *q; X X /* X if (first) { X first = FALSE; X fprintf(tfp, "%s\n", SPLINE_PS); X } X */ X X if ((fill && s->area_fill==0) || X (fill==0 && s->area_fill)) X return; X X p = s->points; X x1 = p->x; y1 = p->y; X p = p->next; X c = p->x; d = p->y; X set_linewidth(s->thickness); X x3 = a = (x1 + c) / 2; X y3 = b = (y1 + d) / 2; X if (s->back_arrow) { X draw_arrow_head(c, d, x1, y1, s->back_arrow->ht, s->back_arrow->wid); X } X set_style(s->style, s->style_val); X if (! closed_spline(s)) { X fprintf(tfp, "%% Open spline\n"); X fprintf(tfp, "newpath %.3f %.3f moveto %.3f %.3f lineto\n", X x1, y1, x3, y3); X } X else { X fprintf(tfp, "%% Closed spline\n"); X fprintf(tfp, "newpath %.3f %.3f moveto\n", a, b); X } X for (q = p->next; q != NULL; p = q, q = q->next) { X x1 = x3; y1 = y3; X x2 = c; y2 = d; X c = q->x; d = q->y; X x3 = (x2 + c) / 2; X y3 = (y2 + d) / 2; X fprintf(tfp, "\t%.3f %.3f %.3f %.3f %.3f %.3f DrawSplineSection\n", X x1, y1, x2, y2, x3, y3); X } X /* X * At this point, (x2,y2) and (c,d) are the position of the X * next-to-last and last point respectively, in the point list X */ X if (closed_spline(s)) { X fprintf(tfp, "\t%.3f %.3f %.3f %.3f %.3f %.3f DrawSplineSection closepath ", X x3, y3, c, d, a, b); X if (s->area_fill) X { X set_areafill(s->area_fill); X fprintf(tfp, " gsave fill grestore\n"); X set_areafill(NUMFILLPATS); /* back to black for line */ X } X fprintf(tfp, " stroke\n"); X } X else { X fprintf(tfp, "\t%.3f %.3f lineto stroke\n", c, d); X } X reset_style(s->style, s->style_val); X if (s->for_arrow) { X draw_arrow_head(x2, y2, c, d, s->for_arrow->ht, X s->for_arrow->wid); X } X } X Xgenps_ellipse(e,fill) XF_ellipse *e; Xint fill; X{ X if ((fill && e->area_fill==0) || X (fill==0 && e->area_fill)) X return; X X set_linewidth(e->thickness); X set_style(e->style, e->style_val); X fprintf(tfp, "%% Ellipse\n"); X fprintf(tfp, "newpath %d %d %d %d 0 360 DrawEllipse\n", X e->center.x, e->center.y, e->radiuses.x, e->radiuses.y); X if (e->area_fill) X { X set_areafill(e->area_fill); X fprintf(tfp, " gsave fill grestore\n"); X set_areafill(NUMFILLPATS); /* back to black for line */ X } X fprintf(tfp, " stroke\n"); X reset_style(e->style, e->style_val); X } X X#define TEXT_SET_PS "\ Xfn%d.%d setfont\n\ X" X#define TEXT_DEF_PS "\ X/fn%d.%d /%s findfont %f scalefont def\n\ X" X X#define MAX_FONT_SIZES 20 X Xgenps_text(t) XF_text *t; X { X char *c; X static int current_font = -1; X static int current_size = -1; X static int first[NUMFONTS][MAX_FONT_SIZES]; X int i,j,found; X X if (current_font == -1) X for (i=0; i<NUMFONTS; i++) X for (j=0; j<MAX_FONT_SIZES; j++) X first[i][j] = 0; X X /* if different font or different size, choose new */ X if (current_font != t->font || current_size != t->size) X { X found = FALSE; X for (i=0; (first[t->font][i]!=0 && i<MAX_FONT_SIZES); i++) X if (first[t->font][i] == t->size) /* look for this size */ X { X found = TRUE; X break; X } X if (!found) /* if we haven't already done a 'findfont'... */ X { X fprintf(tfp, TEXT_DEF_PS, t->font, t->size, fontnames[t->font].psfont, X t->size/reduction); X if (i < MAX_FONT_SIZES) /* insert this size in table */ X first[t->font][i] = t->size; X } X fprintf(tfp, TEXT_SET_PS, t->font, t->size); /* now select the font */ X } X current_font = t->font; X current_size = t->size; X X fprintf(tfp,"("); X for (c = t->cstring; *c; c++) /* push the string on the stack */ X { X if (*c == '\\' || *c == '(' || *c == ')') X putc('\\', tfp); X putc(*c, tfp); X } X X if (t->type == T_CENTER_JUSTIFIED || t->type == T_RIGHT_JUSTIFIED) X { X /* dup the string and subtract half(all) of the width from the x position */ X fprintf(tfp,") dup stringwidth pop %s %d exch sub ", X (t->type == T_CENTER_JUSTIFIED? "2 div": ""),t->base_x); X fprintf(tfp,"%d moveto ",t->base_y); X } X else X fprintf(tfp,") %d %d moveto ",t->base_x,t->base_y); X X if (coord_system == 2) /* upper left is 0,0 */ X fprintf(tfp, "1 -1 scale show 1 -1 scale\n"); X else X fprintf(tfp, "show\n"); X } X Xgenps_arc(a,fill) XF_arc *a; Xint fill; X{ X double angle1, angle2, dx, dy, radius, x, y; X double cx, cy, sx, sy, ex, ey; X int direction; X X if ((fill && a->area_fill==0) || X (fill==0 && a->area_fill)) X return; X X cx = a->center.x; cy = a->center.y; X sx = a->point[0].x; sy = a->point[0].y; X ex = a->point[2].x; ey = a->point[2].y; X X if (coord_system == 2) X direction = !a->direction; X else X direction = a->direction; X set_linewidth(a->thickness); X if (a->for_arrow) { X arc_tangent(cx, cy, ex, ey, direction, &x, &y); X draw_arrow_head(x, y, ex, ey, a->for_arrow->ht, a->for_arrow->wid); X } X if (a->back_arrow) { X arc_tangent(cx, cy, sx, sy, !direction, &x, &y); X draw_arrow_head(x, y, sx, sy, a->back_arrow->ht, a->back_arrow->wid); X } X dx = cx - sx; X dy = cy - sy; X radius = sqrt(dx*dx + dy*dy); X angle1 = atan2(sy-cy, sx-cx) * 180 / M_PI; X angle2 = atan2(ey-cy, ex-cx) * 180 / M_PI; X /* direction = 1 -> Counterclockwise */ X set_style(a->style, a->style_val); X fprintf(tfp, "newpath %.3f %.3f %.3f %.3f %.3f %s stroke\n", X cx, cy, radius, angle1, angle2, X ((direction == 1) ? "arc" : "arcn")); X reset_style(a->style, a->style_val); X } X Xarc_tangent(x1, y1, x2, y2, direction, x, y) Xdouble x1, y1, x2, y2, *x, *y; Xint direction; X{ X if (direction) { /* counter clockwise */ X *x = x2 + (y2 - y1); X *y = y2 - (x2 - x1); X } X else { X *x = x2 - (y2 - y1); X *y = y2 + (x2 - x1); X } X } X X/* draw arrow heading from (x1, y1) to (x2, y2) */ X Xdraw_arrow_head(x1, y1, x2, y2, arrowht, arrowwid) Xfloat x1, y1, x2, y2, arrowht, arrowwid; X{ X float x, y, xb, yb, dx, dy, l, sina, cosa; X float xc, yc, xd, yd; X X dx = x2 - x1; dy = y1 - y2; X l = sqrt((double)(dx*dx + dy*dy)); /* length of line */ X sina = dy / l; cosa = dx / l; X xb = x2*cosa - y2*sina; X yb = x2*sina + y2*cosa; X x = xb - arrowht; X y = yb - arrowwid / 2; X xc = x*cosa + y*sina; /* one tail of arrow */ X yc = -x*sina + y*cosa; X y = yb + arrowwid / 2; X xd = x*cosa + y*sina; /* other tail of arrow */ X yd = -x*sina + y*cosa; X fprintf(tfp, "newpath %.3f %.3f moveto %.3f %.3f lineto %.3f %.3f lineto stroke\n", X xc, yc, x2, y2, xd, yd); X } X Xellipse_exist(ob) XF_compound *ob; X{ X F_compound *c; X X if (NULL != ob->ellipses) return(1); X X for (c = ob->compounds; c != NULL; c = c->next) { X if (ellipse_exist(c)) return(1); X } X X return(0); X } X Xnormal_spline_exist(ob) XF_compound *ob; X{ X F_spline *s; X F_compound *c; X X for (s = ob->splines; s != NULL; s = s->next) { X if (normal_spline(s)) return(1); X } X X for (c = ob->compounds; c != NULL; c = c->next) { X if (normal_spline_exist(c)) return(1); X } X X return(0); X } X X/*VARARGS1*/ Xput_msg(format, arg1, arg2, arg3, arg4, arg5) X char *format; X int arg1, arg2, arg3, arg4, arg5; X{ X fprintf(stderr, format, arg1, arg2, arg3, arg4, arg5); X} X X#ifdef sparc X XFREE ( x ) /*-- disable free --*/ X char *x ; X{ X fprintf( stderr, "FREE -- %8x\n", x ) ; X} XCFREE ( x ) /*-- disable cfree --*/ X char *x ; X{ X fprintf( stderr, "FREE -- %8x\n", x ) ; X} X X#endif sparc END_OF_FILE if test 20059 -ne `wc -c <'xfig/f2ps.c'`; then echo shar: \"'xfig/f2ps.c'\" unpacked with wrong size! fi # end of 'xfig/f2ps.c' fi if test -f 'xfig/panel2.h' -a "${1}" != "-c" ; then echo shar: Will not clobber existing file \"'xfig/panel2.h'\" else echo shar: Extracting \"'xfig/panel2.h'\" \(22782 characters\) sed "s/^X//" >'xfig/panel2.h' <<'END_OF_FILE' X/* X * FIG : Facility for Interactive Generation of figures X * X * Copyright (c) 1985 by Supoj Sutanthavibul (supoj@sally.UTEXAS.EDU) X * November 1985. X * X * Bitmaps for second panel added by B.V.Smith 1989 X * %W% %G% X*/ X X Xstatic char save_n_exit_image[192]={ X 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, X 0xc0,0x07,0x86,0x81,0xf9,0x03,0xe0,0x0e,0x86,0x81,0x19,0x02, X 0x60,0x0c,0x8f,0x81,0x19,0x00,0xc0,0x81,0x19,0xc3,0x18,0x00, X 0x80,0xc7,0x30,0xc3,0xf8,0x00,0x10,0xcc,0x3f,0x66,0x18,0x00, X 0x30,0xec,0x7f,0x66,0x18,0x00,0xf0,0x6f,0x60,0x3c,0x18,0x02, X 0xe0,0x67,0x60,0x39,0xf8,0x03,0x00,0x00,0x00,0x01,0x00,0x00, X 0x00,0x00,0x80,0x07,0x00,0x00,0x00,0x00,0x40,0x01,0x00,0x00, X 0x00,0x00,0x40,0x01,0x00,0x00,0x00,0x00,0x80,0x07,0x00,0x00, X 0x00,0x00,0x40,0x01,0x00,0x00,0x00,0x00,0x40,0x01,0x00,0x00, X 0x00,0x00,0x80,0x07,0x00,0x00,0x00,0x00,0x00,0x01,0x00,0x00, X 0x80,0x87,0x61,0x7f,0xfe,0x01,0xc0,0x8c,0x61,0x19,0x32,0x01, X 0x60,0x98,0x61,0x18,0x30,0x00,0x60,0x98,0x61,0x18,0x30,0x00, X 0x60,0x98,0x61,0x18,0x30,0x00,0x60,0x98,0x61,0x18,0x30,0x00, X 0x60,0x98,0x61,0x18,0x30,0x00,0xc0,0x0c,0x33,0x18,0x30,0x00, X 0x80,0x07,0x1e,0x7e,0x30,0x00,0x00,0x7e,0x00,0x00,0x00,0x00, X 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00 X }; Xmpr_static(save_n_exit_ic,46,32,1,save_n_exit_image); X Xstatic char save_image[192]={ X 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, X 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, X 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, X 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, X 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, X 0xc0,0x07,0x06,0x03,0xfb,0x03,0xe0,0x0e,0x06,0x03,0xfb,0x03, X 0x60,0x0c,0x0f,0x03,0x1b,0x02,0xe0,0x00,0x0f,0x86,0x19,0x00, X 0xc0,0x81,0x19,0x86,0x19,0x00,0x80,0x83,0x19,0x86,0xf9,0x01, X 0x00,0xc7,0x30,0x86,0xf9,0x01,0x00,0xce,0x3f,0xcc,0x18,0x00, X 0x30,0xcc,0x3f,0xcc,0x18,0x00,0x30,0x6c,0x60,0xcc,0x18,0x02, X 0xf0,0x6f,0x60,0x78,0xf8,0x03,0xe0,0x67,0x60,0x78,0xf8,0x03, X 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, X 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, X 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, X 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, X 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00 X }; Xmpr_static(save_ic,46,32,1,save_image); X Xstatic char save_in_image[192] = { X 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, X 0x00,0x00,0x00,0x00,0x00,0x00,0xc0,0x07,0x86,0x81,0xf9,0x03, X 0xe0,0x0f,0x86,0x81,0xf9,0x03,0x60,0x0c,0x8f,0x81,0x19,0x02, X 0xe0,0x00,0x0f,0xc3,0x18,0x00,0xc0,0x81,0x19,0xc3,0x18,0x00, X 0x80,0x83,0x19,0xc3,0xf8,0x01,0x00,0xc7,0x30,0xc3,0xf8,0x01, X 0x00,0xce,0x3f,0x66,0x18,0x00,0x30,0xcc,0x3f,0x66,0x18,0x00, X 0x30,0x6c,0x60,0x66,0x18,0x02,0xf0,0x6f,0x60,0x3c,0xf8,0x03, X 0xe0,0x67,0x60,0x3c,0xf8,0x03,0x00,0x00,0x00,0x00,0x00,0x00, X 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xfc,0x38,0x06,0x00,0x00, X 0x00,0xfc,0x38,0x06,0x00,0x00,0x00,0x30,0x78,0x06,0x00,0x00, X 0x00,0x30,0x58,0x06,0x00,0x00,0x00,0x30,0x58,0x06,0x00,0x00, X 0x00,0x30,0xd8,0x06,0x00,0x00,0x00,0x30,0xd8,0x06,0x00,0x00, X 0x00,0x30,0x98,0x06,0x00,0x00,0x00,0x30,0x98,0x06,0x00,0x00, X 0x00,0x30,0x98,0x07,0x00,0x00,0x00,0xfc,0x18,0x67,0x1b,0x00, X 0x00,0xfc,0x18,0x67,0x1b,0x00,0x00,0x00,0x00,0x00,0x00,0x00, X 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00 X }; Xmpr_static(save_in_ic,46,32,1,save_in_image); X Xstatic char read_image[192] = { X 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, X 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, X 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, X 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, X 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, X 0xf0,0xc3,0x1f,0x0c,0x7e,0x00,0xf0,0xc7,0x1f,0x0c,0xfe,0x00, X 0x30,0xce,0x10,0x1e,0xc6,0x01,0x30,0xcc,0x00,0x1e,0x86,0x01, X 0x30,0xce,0x00,0x33,0x86,0x01,0xf0,0xc7,0x0f,0x33,0x86,0x01, X 0xf0,0xc3,0x8f,0x61,0x86,0x01,0xb0,0xc1,0x80,0x7f,0x86,0x01, X 0x30,0xc3,0x80,0x7f,0x86,0x01,0x30,0xc6,0xd0,0xc0,0xc6,0x01, X 0x30,0xcc,0xdf,0xc0,0xfe,0x00,0x30,0xd8,0xdf,0xc0,0x7e,0x00, X 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, X 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, X 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, X 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, X 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00 X }; Xmpr_static(read_ic,46,32,1,read_image); X Xstatic char undo_image[224] = { X 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, X 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, X 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, X 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, X 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x78,0x3c,0x83,0xf1, X 0x07,0x7c,0x00,0x30,0x18,0x87,0xf1,0x0f,0xfe,0x00,0x30,0x18, X 0x87,0x31,0x1c,0xc7,0x01,0x30,0x18,0x8f,0x31,0x18,0x83,0x01, X 0x30,0x18,0x8f,0x31,0x18,0x83,0x01,0x30,0x18,0x9b,0x31,0x18, X 0x83,0x01,0x30,0x18,0x9b,0x31,0x18,0x83,0x01,0x30,0x18,0xbb, X 0x31,0x18,0x83,0x01,0x30,0x18,0xb3,0x31,0x18,0x83,0x01,0x30, X 0x18,0xb3,0x31,0x18,0x83,0x01,0x30,0x18,0xe3,0x31,0x18,0x83, X 0x01,0x30,0x18,0xe3,0x31,0x18,0x83,0x01,0x70,0x1c,0xc3,0x31, X 0x1c,0xc7,0x01,0xe0,0x0f,0xc3,0xf1,0x0f,0xfe,0x00,0xc0,0x07, X 0x83,0xf1,0x07,0x7c,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, X 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, X 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, X 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, X 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, X 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00}; Xmpr_static(undo_ic, 52, 32, 1, undo_image); X Xstatic char quit_image[192] = { X 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, X 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, X 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, X 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, X 0x00,0x00,0x00,0x00,0x00,0x00,0xc0,0xc3,0x30,0x3f,0xff,0x00, X 0x60,0xc6,0x30,0x0c,0x99,0x00,0x30,0xcc,0x30,0x0c,0x18,0x00, X 0x30,0xcc,0x30,0x0c,0x18,0x00,0x30,0xcc,0x30,0x0c,0x18,0x00, X 0x30,0xcc,0x30,0x0c,0x18,0x00,0x30,0xcc,0x30,0x0c,0x18,0x00, X 0x30,0xcc,0x30,0x0c,0x18,0x00,0x30,0xcc,0x30,0x0c,0x18,0x00, X 0x30,0xcc,0x30,0x0c,0x18,0x00,0x60,0x86,0x19,0x0c,0x18,0x00, X 0xc0,0x03,0x0f,0x3f,0x18,0x01,0x00,0x03,0x00,0x00,0x80,0x01, X 0x00,0x06,0x00,0x00,0xc0,0x00,0x00,0xfc,0xff,0xff,0x7f,0x00, X 0x00,0xf8,0xff,0xff,0x3f,0x00,0x00,0x00,0x00,0x00,0x00,0x00, X 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, X 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, X 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00 X }; Xmpr_static(quit_ic, 46, 32, 1, quit_image); X Xstatic char edit_image[192] = { X 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, X 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, X 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, X 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, X 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, X 0xc0,0x9f,0x1f,0x3f,0xff,0x00,0xc0,0x9f,0x3f,0x3f,0xff,0x00, X 0xc0,0x90,0x71,0x0c,0x99,0x00,0xc0,0x80,0x61,0x0c,0x18,0x00, X 0xc0,0x80,0x61,0x0c,0x18,0x00,0xc0,0x8f,0x61,0x0c,0x18,0x00, X 0xc0,0x8f,0x61,0x0c,0x18,0x00,0xc0,0x80,0x61,0x0c,0x18,0x00, X 0xc0,0x80,0x61,0x0c,0x18,0x00,0xc0,0x90,0x71,0x0c,0x18,0x00, X 0xc0,0x9f,0x3f,0x3f,0x18,0x00,0xc0,0x9f,0x1f,0x3f,0x18,0x00, X 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, X 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, X 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, X 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, X 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00 X }; Xmpr_static(edit_ic, 46, 32, 1, edit_image); X Xstatic char cdir_image[192] = { X 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, X 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, X 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, X 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, X 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, X 0x80,0xc7,0x8f,0x9f,0x1f,0x00,0xc0,0xcc,0x18,0x86,0x31,0x00, X 0x60,0xcc,0x30,0x86,0x61,0x00,0x60,0xc0,0x30,0x86,0x61,0x00, X 0x60,0xc0,0x30,0x86,0x61,0x00,0x60,0xc0,0x30,0x86,0x31,0x00, X 0x60,0xc0,0x30,0x86,0x1f,0x00,0x60,0xc0,0x30,0x86,0x0d,0x00, X 0x60,0xc0,0x30,0x86,0x19,0x00,0x60,0xcc,0x30,0x86,0x31,0x00, X 0xc0,0xcc,0x18,0x86,0x61,0x00,0x80,0xc7,0x8f,0x9f,0xc1,0x00, X 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, X 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, X 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, X 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, X 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00 X }; Xmpr_static(cdir_ic, 46, 32, 1, cdir_image); X Xstatic char pdir_image[192] = { X 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, X 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, X 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, X 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, X 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, X 0xe0,0x87,0x1f,0x7e,0x7e,0x00,0x60,0x8c,0x31,0x18,0xc6,0x00, X 0x60,0x98,0x61,0x18,0x86,0x01,0x60,0x98,0x61,0x18,0x86,0x01, X 0x60,0x98,0x61,0x18,0x86,0x01,0x60,0x8c,0x61,0x18,0xc6,0x00, X 0xe0,0x87,0x61,0x18,0x7e,0x00,0x60,0x80,0x61,0x18,0x36,0x00, X 0x60,0x80,0x61,0x18,0x66,0x00,0x60,0x80,0x61,0x18,0xc6,0x00, X 0x60,0x80,0x31,0x18,0x86,0x01,0x60,0x80,0x1f,0x7e,0x06,0x03, X 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, X 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, X 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, X 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, X 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00 X }; Xmpr_static(pdir_ic, 46, 32, 1, pdir_image); X Xstatic char print_image[224] = { X 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, X 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xe0,0xff,0xff, X 0xff,0xff,0xff,0x0f,0x20,0x00,0x00,0x00,0x00,0x00,0x08,0x20, X 0x00,0x00,0x00,0x00,0x00,0x08,0x20,0x00,0x00,0x00,0x00,0x00, X 0x08,0xe0,0xff,0xff,0xff,0xff,0xff,0x0f,0xa0,0x00,0x00,0x00, X 0x00,0x00,0x08,0xa0,0x00,0x00,0xf8,0x03,0x00,0x08,0xa0,0x00, X 0x00,0x08,0x02,0x00,0x08,0xa0,0x00,0x00,0xf8,0x03,0x00,0x08, X 0xa0,0x00,0x00,0xa8,0x02,0x00,0x04,0xa0,0x00,0x00,0xf8,0x03, X 0x00,0x02,0xa0,0x00,0x00,0x00,0x00,0x00,0x01,0xe0,0xff,0xff, X 0xff,0xff,0xff,0x00,0x80,0x00,0x00,0x00,0x00,0x80,0x00,0xfc, X 0xf8,0xff,0xff,0xff,0x9f,0x00,0x84,0x00,0x00,0x00,0x00,0x80, X 0x00,0x84,0xf8,0xff,0xff,0xff,0x9f,0x00,0xfc,0x00,0x00,0x00, X 0x00,0x80,0x00,0xe0,0xf8,0xff,0xff,0xff,0x9f,0x00,0xc0,0x00, X 0x00,0x00,0x00,0x80,0x00,0x80,0xf8,0xff,0xff,0xff,0x9f,0x00, X 0x80,0x00,0x00,0x00,0x00,0x80,0x00,0x80,0xf8,0xff,0xff,0xff, X 0x9f,0x00,0x00,0x01,0x00,0x00,0x00,0x80,0x00,0x00,0xfe,0xff, X 0xff,0xff,0xff,0x00,0x00,0x7c,0x00,0x00,0x00,0x7c,0x00,0x00, X 0x38,0x00,0x00,0x00,0x38,0x00,0x00,0x00,0x00,0x00,0x00,0x00, X 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00}; Xmpr_static(print_ic, 54, 32, 1, print_image); X Xstatic char print_sel_image[224] = { X 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, X 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xe0,0xff,0xff, X 0x3f,0x00,0x00,0x00,0x20,0x00,0x00,0x20,0x00,0x00,0x00,0xe0, X 0xff,0xff,0x3f,0x00,0x00,0x00,0x20,0x00,0x00,0x20,0x00,0x00, X 0x00,0x20,0x00,0x07,0x20,0x00,0x00,0x00,0x20,0x00,0x07,0x10, X 0x00,0x00,0x00,0x20,0x00,0x00,0x08,0x00,0x00,0x00,0xe0,0xff, X 0xff,0x07,0x00,0x00,0x00,0x78,0x00,0x00,0x04,0x00,0x00,0x00, X 0x48,0xfe,0xff,0x04,0x00,0x00,0x00,0x78,0x00,0x00,0x04,0x00, X 0x00,0x00,0x40,0xfe,0xff,0x04,0x00,0x00,0x00,0x40,0x00,0x00, X 0x04,0x00,0x00,0x00,0xc0,0xff,0xff,0x07,0x00,0x00,0x00,0x00, X 0x07,0xc0,0x01,0x00,0x00,0x00,0x00,0x02,0x80,0x00,0x00,0x00, X 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x0e,0xc0,0x00, X 0x00,0x00,0x00,0x00,0x11,0x80,0x00,0x00,0x04,0x00,0x00,0x01, X 0x80,0x00,0x00,0x04,0x00,0x00,0x01,0x87,0x70,0x38,0x1e,0x00, X 0x00,0x8e,0x88,0x88,0x44,0x04,0x00,0x00,0x90,0x8f,0xf8,0x04, X 0x04,0x00,0x00,0x90,0x80,0x08,0x04,0x04,0x00,0x00,0x91,0x88, X 0x88,0x44,0x24,0x00,0x00,0x0e,0xc7,0x71,0x38,0x18,0x00,0x00, X 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, X 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00}; Xmpr_static(print_sel_ic, 54, 32, 1, print_sel_image); X Xstatic char size_image[224] = { X 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, X 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xc0,0x00, X 0x00,0x00,0x00,0x00,0xc0,0xff,0x00,0x00,0x00,0x00,0x00,0xe0, X 0xff,0x00,0x00,0x00,0x00,0x00,0xf0,0xff,0x00,0x00,0x00,0x00, X 0x00,0x78,0xe0,0x00,0x00,0x00,0x00,0x00,0x38,0xc0,0x00,0x00, X 0x00,0x00,0x00,0x38,0xc0,0x00,0x00,0x00,0x00,0x00,0x38,0x80, X 0x00,0x00,0x00,0x00,0x00,0x78,0x00,0x00,0x00,0x00,0x00,0x00, X 0xf8,0x00,0x00,0x00,0x00,0x00,0x00,0xf0,0x03,0x00,0x00,0x00, X 0x00,0x00,0xf0,0x0f,0x00,0x00,0x00,0x00,0x00,0xc0,0x3f,0x30, X 0x00,0x00,0x00,0x00,0x80,0x7f,0x30,0x00,0x00,0x00,0x00,0x00, X 0xfe,0x00,0x00,0x00,0x00,0x00,0x00,0xfc,0x00,0xf8,0x0f,0x3e, X 0x00,0x00,0xf0,0x31,0xf8,0x0f,0x7f,0x00,0x00,0xe0,0x31,0x08, X 0x86,0xe3,0x00,0x00,0xe0,0x31,0x00,0x83,0xff,0x00,0x08,0xe0, X 0x31,0x80,0x81,0xff,0x00,0x18,0xe0,0x31,0xc0,0x80,0x01,0x00, X 0x38,0xf0,0x30,0x61,0x88,0xe3,0x00,0xf8,0xff,0xf0,0xf1,0x0f, X 0xff,0x00,0xf8,0x7f,0xe0,0xf8,0x0f,0x3c,0x00,0xf8,0x1f,0x00, X 0x00,0x00,0x00,0x00,0x08,0x00,0x00,0x00,0x00,0x00,0x00,0x00, X 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, X 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00}; Xmpr_static(size_ic, 52, 32, 1, size_image); X Xstatic char font_image[224] = { X 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, X 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, X 0x00,0x00,0x00,0x00,0xf8,0xff,0xff,0x01,0x00,0x00,0x00,0xf8, X 0xff,0xff,0x01,0x00,0x00,0x00,0xf8,0xff,0xff,0x01,0x00,0x00, X 0x00,0xe0,0x07,0xfc,0x01,0x00,0x00,0x00,0xc0,0x07,0xf0,0x01, X 0x00,0x00,0x00,0xc0,0x07,0xe0,0x01,0x00,0x00,0x00,0xc0,0x07, X 0xe0,0x01,0x00,0x00,0x00,0xc0,0x07,0xe3,0x01,0x00,0x00,0x00, X 0xc0,0x07,0xe7,0x01,0x00,0x00,0x00,0xc0,0x07,0x07,0x00,0x00, X 0x00,0x00,0xc0,0x87,0x07,0x00,0x00,0x00,0x00,0xc0,0xff,0x07, X 0x00,0x00,0x00,0x00,0xc0,0xff,0x07,0x00,0x00,0x06,0x00,0xc0, X 0xff,0x07,0x00,0x00,0x06,0x00,0xc0,0x87,0x07,0x00,0x80,0x1f, X 0x00,0xc0,0x07,0x07,0x00,0x80,0x1f,0x00,0xc0,0x07,0xe7,0xc3, X 0x1c,0x06,0x00,0xc0,0x07,0xf3,0xc7,0x3f,0x06,0x00,0xc0,0x07, X 0x38,0xce,0x63,0x06,0x00,0xc0,0x07,0x18,0xcc,0x61,0x06,0x00, X 0xe0,0x0f,0x18,0xcc,0x60,0x06,0x00,0xf8,0xff,0x18,0xcc,0x60, X 0x86,0x01,0xf8,0xff,0x38,0xce,0x60,0x8c,0x01,0xf8,0xff,0xf0, X 0xc7,0x60,0xfc,0x00,0x00,0x00,0xe0,0xc3,0x60,0x78,0x00,0x00, X 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, X 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00}; Xmpr_static(font_ic, 52, 32, 1, font_image); X Xstatic char textL_image[224] = { X 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, X 0x00,0xc0,0x00,0x00,0x00,0x00,0x00,0x00,0xc0,0x00,0x00,0x00, X 0x00,0x00,0x00,0xc0,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, X 0x00,0x00,0x00,0x00,0x00,0xc0,0x00,0x00,0x00,0x00,0x00,0x00, X 0xc0,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, X 0x00,0x00,0xc0,0xf8,0x1f,0x00,0x00,0x00,0x3c,0x00,0x98,0x19, X 0x00,0x00,0x00,0x18,0x00,0x88,0x11,0x00,0x00,0x02,0x18,0xc0, X 0x80,0x01,0x00,0x00,0x03,0x18,0xc0,0x80,0x81,0xe7,0xb8,0x0f, X 0x18,0xc0,0x80,0xc1,0xcc,0x18,0x03,0x18,0xc0,0x80,0x61,0x98, X 0x0d,0x03,0x18,0xc0,0x80,0xe1,0x1f,0x07,0x03,0x18,0x00,0x80, X 0x61,0x00,0x06,0x03,0x18,0xc0,0x80,0x61,0x00,0x07,0x03,0x18, X 0xc0,0x80,0xe1,0x90,0x0d,0x03,0x18,0xc0,0x80,0xc1,0xcd,0x18, X 0x17,0x18,0x04,0xc0,0x83,0xe7,0x38,0x0e,0xfc,0xc7,0x00,0x00, X 0x00,0x00,0x00,0x00,0xc0,0x00,0x00,0x00,0x00,0x00,0x00,0xc0, X 0x00,0x00,0x00,0x00,0x00,0x00,0xc0,0x00,0x00,0x00,0x00,0x00, X 0x00,0xc0,0x00,0x00,0x00,0x00,0x00,0x00,0xc0,0x00,0x00,0x00, X 0x00,0x00,0x00,0xc0,0x00,0x00,0x00,0x00,0x00,0x00,0xc0,0x00, X 0x00,0x00,0x00,0x00,0x00,0xc0,0x00,0x00,0x00,0x00,0x00,0x00, X 0xc0,0x00,0x00,0x00,0x00,0x00,0x00,0xc0}; Xmpr_static(textL_ic, 54, 32, 1, textL_image); X Xstatic char change_text_image[192] = { X 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, X 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, X 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, X 0x00,0x00,0x00,0x00,0x00,0x00,0xf0,0x7f,0x00,0x00,0x00,0x00, X 0xe0,0x7f,0x00,0x00,0x00,0x00,0xc0,0x60,0x00,0xc0,0x7f,0x00, X 0xc0,0x40,0x00,0xc0,0x7f,0x00,0xc0,0x00,0x00,0xc0,0x7f,0x00, X 0xc0,0x08,0x08,0xc1,0x01,0x00,0xc0,0x0f,0x0c,0xc3,0x01,0x00, X 0xc0,0x0f,0xfe,0xc7,0x3f,0x00,0xc0,0x08,0xfe,0xc7,0x3f,0x00, X 0xc0,0x00,0x0c,0xc3,0x3f,0x00,0xc0,0x00,0x08,0xc1,0x01,0x00, X 0xc0,0x00,0x00,0xc0,0x01,0x00,0xc0,0x40,0x00,0xc0,0x7f,0x00, X 0xc0,0x60,0x00,0xc0,0x7f,0x00,0xe0,0x7f,0x00,0xc0,0x7f,0x00, X 0xf0,0x7f,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, X 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, X 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, X 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, X 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00}; Xmpr_static(change_text_ic, 46, 32, 1, change_text_image); X Xstatic char textC_image[224] = { X 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, X 0x00,0xc0,0x00,0x00,0x00,0x00,0x00,0x00,0xc0,0x00,0x00,0x00, X 0x00,0x00,0x00,0xc0,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, X 0x00,0x00,0x00,0x00,0x00,0xc0,0x00,0x00,0x00,0x00,0x00,0x00, X 0xc0,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, X 0x00,0x00,0xc0,0xf8,0x1f,0x00,0x00,0x00,0xe0,0x01,0x98,0x19, X 0x00,0x00,0x00,0x38,0x06,0x88,0x11,0x00,0x00,0x02,0x0c,0xc4, X 0x80,0x01,0x00,0x00,0x03,0x0c,0xc0,0x80,0x81,0xe7,0xb8,0x0f, X 0x06,0xc0,0x80,0xc1,0xcc,0x18,0x03,0x06,0xc0,0x80,0x61,0x98, X 0x0d,0x03,0x06,0xc0,0x80,0xe1,0x1f,0x07,0x03,0x06,0x00,0x80, X 0x61,0x00,0x06,0x03,0x06,0xc0,0x80,0x61,0x00,0x07,0x03,0x0c, X 0xc0,0x80,0xe1,0x90,0x0d,0x03,0x0c,0xc4,0x80,0xc1,0xcd,0x18, X 0x17,0x38,0xc6,0xc0,0x83,0xe7,0x38,0x0e,0xe0,0xc1,0x00,0x00, X 0x00,0x00,0x00,0x00,0xc0,0x00,0x00,0x00,0x00,0x00,0x00,0xc0, X 0x00,0x00,0x00,0x00,0x00,0x00,0xc0,0x00,0x00,0x00,0x00,0x00, X 0x00,0xc0,0x00,0x00,0x00,0x00,0x00,0x00,0xc0,0x00,0x00,0x00, X 0x00,0x00,0x00,0xc0,0x00,0x00,0x00,0x00,0x00,0x00,0xc0,0x00, X 0x00,0x00,0x00,0x00,0x00,0xc0,0x00,0x00,0x00,0x00,0x00,0x00, X 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xc0}; Xmpr_static(textC_ic, 54, 32, 1, textC_image); X Xstatic char textR_image[224] = { X 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, X 0x00,0xc0,0x00,0x00,0x00,0x00,0x00,0x00,0xc0,0x00,0x00,0x00, X 0x00,0x00,0x00,0xc0,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, X 0x00,0x00,0x00,0x00,0x00,0xc0,0x00,0x00,0x00,0x00,0x00,0x00, X 0xc0,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, X 0x00,0x00,0xc0,0xf8,0x1f,0x00,0x00,0x00,0xfe,0x01,0x98,0x19, X 0x00,0x00,0x00,0x8c,0x03,0x88,0x11,0x00,0x00,0x02,0x0c,0xc3, X 0x80,0x01,0x00,0x00,0x03,0x0c,0xc3,0x80,0x81,0xe7,0xb8,0x0f, X 0x0c,0xc3,0x80,0xc1,0xcc,0x18,0x03,0x8c,0xc1,0x80,0x61,0x98, X 0x0d,0x03,0xfc,0xc0,0x80,0xe1,0x1f,0x07,0x03,0xcc,0x00,0x80, X 0x61,0x00,0x06,0x03,0x8c,0xc1,0x80,0x61,0x00,0x07,0x03,0x0c, X 0xc3,0x80,0xe1,0x90,0x0d,0x03,0x0c,0xc3,0x80,0xc1,0xcd,0x18, X 0x17,0x0c,0x06,0xc0,0x83,0xe7,0x38,0x0e,0x1e,0xcf,0x00,0x00, X 0x00,0x00,0x00,0x00,0xc0,0x00,0x00,0x00,0x00,0x00,0x00,0xc0, X 0x00,0x00,0x00,0x00,0x00,0x00,0xc0,0x00,0x00,0x00,0x00,0x00, X 0x00,0xc0,0x00,0x00,0x00,0x00,0x00,0x00,0xc0,0x00,0x00,0x00, X 0x00,0x00,0x00,0xc0,0x00,0x00,0x00,0x00,0x00,0x00,0xc0,0x00, X 0x00,0x00,0x00,0x00,0x00,0xc0,0x00,0x00,0x00,0x00,0x00,0x00, X 0xc0,0x00,0x00,0x00,0x00,0x00,0x00,0xc0}; Xmpr_static(textR_ic, 54, 32, 1, textR_image); X X/* image with L dominant, P light */ Xstatic char land_image[128] = { X 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, X 0xf8,0x03,0x54,0x05,0xf0,0x01,0xa8,0x0a,0xe0,0x00,0x10,0x14, X 0xe0,0x00,0x28,0x08,0xe0,0x00,0x10,0x14,0xe0,0x00,0xa8,0x0a, X 0xe0,0x00,0x50,0x05,0xe0,0x00,0x28,0x00,0xe0,0x00,0x10,0x00, X 0xe0,0x00,0x28,0x00,0xe0,0x60,0x10,0x00,0xf0,0x3f,0xa8,0x00, X 0xf8,0x1f,0x54,0x01,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, X 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xfc,0x1f,0x00, X 0x00,0x04,0x10,0x00,0x00,0x04,0x10,0x00,0x00,0x04,0x10,0x00, X 0x00,0x04,0x10,0x00,0x00,0x04,0x10,0x00,0x00,0xfc,0x1f,0x00, X 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, X 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00}; Xmpr_static(land_ic, 32, 32, 1, land_image); X X/* image with L light , P dominant */ Xstatic char port_image[128] = { X 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, X 0xa8,0x02,0xfe,0x07,0x50,0x01,0xfc,0x0f,0xa0,0x00,0x38,0x18, X 0x40,0x00,0x38,0x18,0xa0,0x00,0x38,0x18,0x40,0x00,0xf8,0x0f, X 0xa0,0x00,0xf8,0x07,0x40,0x00,0x38,0x00,0xa0,0x00,0x38,0x00, X 0x40,0x00,0x38,0x00,0xa0,0x20,0x38,0x00,0x50,0x15,0xfc,0x00, X 0xa8,0x0a,0xfe,0x01,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, X 0x00,0xf8,0x03,0x00,0x00,0x08,0x02,0x00,0x00,0x08,0x02,0x00, X 0x00,0x08,0x02,0x00,0x00,0x08,0x02,0x00,0x00,0x08,0x02,0x00, X 0x00,0x08,0x02,0x00,0x00,0x08,0x02,0x00,0x00,0x08,0x02,0x00, X 0x00,0x08,0x02,0x00,0x00,0xf8,0x03,0x00,0x00,0x00,0x00,0x00, X 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00}; Xmpr_static(port_ic, 32, 32, 1, port_image); X Xstatic char redisp_image[256] = { X 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, X 0x00,0x00,0x00,0x00,0xa8,0xaa,0xaa,0xaa,0xaa,0xaa,0xaa,0x2a, X 0x54,0x55,0x55,0x55,0x55,0x55,0x55,0x15,0xa8,0xaa,0xaa,0xaa, X 0xaa,0xaa,0xaa,0x2a,0x14,0x00,0x00,0x00,0x00,0x00,0x00,0x14, X 0x28,0x00,0x00,0x00,0x00,0x00,0x00,0x2e,0x14,0x00,0x00,0x00, X 0x00,0x00,0x00,0x17,0x28,0x54,0x55,0x55,0x55,0x55,0x55,0x2f, X 0x14,0xaa,0xaa,0xaa,0xaa,0xaa,0xaa,0x17,0x28,0x54,0x55,0x55, X 0x55,0x55,0x55,0x2f,0x14,0x0a,0x00,0x00,0x00,0x00,0xa0,0x17, X 0x28,0x94,0x07,0x80,0x00,0x00,0x40,0x2f,0x14,0x8a,0x08,0x80, X 0x00,0x00,0xa0,0x17,0x28,0x94,0x08,0x80,0x00,0x00,0x40,0x2f, X 0x14,0x8a,0xc8,0xb1,0x1a,0x27,0xa4,0x17,0x28,0x94,0x27,0xca, X 0x24,0x28,0x44,0x2f,0x14,0x8a,0xe2,0x8b,0x04,0x2f,0xa4,0x17, X 0x28,0x94,0x24,0x88,0x84,0x28,0x44,0x2f,0x14,0x8a,0x28,0xc8, X 0x84,0xac,0xa5,0x17,0x28,0x94,0xc8,0xb1,0x04,0x4b,0x42,0x2f, X 0x14,0x0a,0x00,0x00,0x00,0x00,0xa0,0x17,0x28,0x54,0x55,0x55, X 0x55,0x55,0x55,0x2f,0x14,0xaa,0xaa,0xaa,0xaa,0xaa,0xaa,0x17, X 0x28,0xfe,0xff,0xff,0xff,0xff,0xff,0x2f,0x14,0xff,0xff,0xff, X 0xff,0xff,0xff,0x17,0xa8,0xff,0xff,0xff,0xff,0xff,0xff,0x2f, X 0x54,0x55,0x55,0x55,0x55,0x55,0x55,0x15,0xa8,0xaa,0xaa,0xaa, X 0xaa,0xaa,0xaa,0x2a,0x54,0x55,0x55,0x55,0x55,0x55,0x55,0x15, X 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, X 0x00,0x00,0x00,0x00}; Xmpr_static(redisp_ic,64,32,1,redisp_image); END_OF_FILE if test 22782 -ne `wc -c <'xfig/panel2.h'`; then echo shar: \"'xfig/panel2.h'\" unpacked with wrong size! fi # end of 'xfig/panel2.h' fi echo shar: End of archive 6 \(of 15\). cp /dev/null ark6isdone MISSING="" for I in 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 ; do if test ! -f ark${I}isdone ; then MISSING="${MISSING} ${I}" fi done if test "${MISSING}" = "" ; then echo You have unpacked all 15 archives. rm -f ark[1-9]isdone ark[1-9][0-9]isdone else echo You still need to unpack the following archives: echo " " ${MISSING} fi ## End of shell archive. exit 0 dan ----------------------------------------------------------- O'Reilly && Associates argv@sun.com / argv@ora.com 632 Petaluma Ave, Sebastopol, CA 95472 800-338-NUTS, in CA: 800-533-NUTS, FAX 707-829-0104 Opinions expressed reflect those of the author only.