Blame


1 5cedca1b 2004-05-15 devnull #include <stdio.h>
2 5cedca1b 2004-05-15 devnull #include <stdlib.h>
3 5cedca1b 2004-05-15 devnull #include "grap.h"
4 5cedca1b 2004-05-15 devnull #include "y.tab.h"
5 5cedca1b 2004-05-15 devnull
6 5cedca1b 2004-05-15 devnull double frame_ht; /* default frame height */
7 5cedca1b 2004-05-15 devnull double frame_wid; /* and width */
8 5cedca1b 2004-05-15 devnull
9 5cedca1b 2004-05-15 devnull int nsides = 0; /* how many sides given on this frame */
10 5cedca1b 2004-05-15 devnull char *sides[] = {
11 5cedca1b 2004-05-15 devnull "\tline from Frame.nw to Frame.ne",
12 5cedca1b 2004-05-15 devnull "\tline from Frame.sw to Frame.se",
13 5cedca1b 2004-05-15 devnull "\tline from Frame.sw to Frame.nw",
14 5cedca1b 2004-05-15 devnull "\tline from Frame.se to Frame.ne"
15 5cedca1b 2004-05-15 devnull };
16 5cedca1b 2004-05-15 devnull char *newsides[4] = { 0, 0, 0, 0 }; /* filled in later */
17 5cedca1b 2004-05-15 devnull
18 5cedca1b 2004-05-15 devnull void frame(void) /* pump out frame definition, reset for next */
19 5cedca1b 2004-05-15 devnull {
20 5cedca1b 2004-05-15 devnull int i;
21 5cedca1b 2004-05-15 devnull
22 5cedca1b 2004-05-15 devnull fprintf(tfd, "\tframeht = %g\n", frame_ht);
23 5cedca1b 2004-05-15 devnull fprintf(tfd, "\tframewid = %g\n", frame_wid);
24 5cedca1b 2004-05-15 devnull fprintf(tfd, "Frame:\tbox ht frameht wid framewid with .sw at 0,0 ");
25 5cedca1b 2004-05-15 devnull if (nsides == 0)
26 5cedca1b 2004-05-15 devnull fprintf(tfd, "\n");
27 5cedca1b 2004-05-15 devnull else {
28 5cedca1b 2004-05-15 devnull fprintf(tfd, "invis\n");
29 5cedca1b 2004-05-15 devnull for (i = 0; i < 4; i++) {
30 5cedca1b 2004-05-15 devnull if (newsides[i]) {
31 5cedca1b 2004-05-15 devnull fprintf(tfd, "%s\n", newsides[i]);
32 5cedca1b 2004-05-15 devnull free(newsides[i]);
33 5cedca1b 2004-05-15 devnull newsides[i] = 0;
34 5cedca1b 2004-05-15 devnull } else
35 5cedca1b 2004-05-15 devnull fprintf(tfd, "%s\n", sides[i]);
36 5cedca1b 2004-05-15 devnull }
37 5cedca1b 2004-05-15 devnull nsides = 0;
38 5cedca1b 2004-05-15 devnull }
39 5cedca1b 2004-05-15 devnull }
40 5cedca1b 2004-05-15 devnull
41 5cedca1b 2004-05-15 devnull void frameht(double f) /* set height of frame */
42 5cedca1b 2004-05-15 devnull {
43 5cedca1b 2004-05-15 devnull frame_ht = f;
44 5cedca1b 2004-05-15 devnull }
45 5cedca1b 2004-05-15 devnull
46 5cedca1b 2004-05-15 devnull void framewid(double f) /* set width of frame */
47 5cedca1b 2004-05-15 devnull {
48 5cedca1b 2004-05-15 devnull frame_wid = f;
49 5cedca1b 2004-05-15 devnull }
50 5cedca1b 2004-05-15 devnull
51 5cedca1b 2004-05-15 devnull void frameside(int type, Attr *desc) /* create and remember sides */
52 5cedca1b 2004-05-15 devnull {
53 5cedca1b 2004-05-15 devnull int n;
54 5cedca1b 2004-05-15 devnull char buf[100];
55 5cedca1b 2004-05-15 devnull
56 b237df90 2004-05-16 devnull n = 0; /* gcc */
57 b237df90 2004-05-16 devnull
58 5cedca1b 2004-05-15 devnull nsides++;
59 5cedca1b 2004-05-15 devnull switch (type) {
60 5cedca1b 2004-05-15 devnull case 0: /* no side specified; kludge up all */
61 5cedca1b 2004-05-15 devnull frameside(TOP, desc);
62 5cedca1b 2004-05-15 devnull frameside(BOT, desc);
63 5cedca1b 2004-05-15 devnull frameside(LEFT, desc);
64 5cedca1b 2004-05-15 devnull frameside(RIGHT, desc);
65 5cedca1b 2004-05-15 devnull return;
66 5cedca1b 2004-05-15 devnull case TOP: n = 0; break;
67 5cedca1b 2004-05-15 devnull case BOT: n = 1; break;
68 5cedca1b 2004-05-15 devnull case LEFT: n = 2; break;
69 5cedca1b 2004-05-15 devnull case RIGHT: n = 3; break;
70 5cedca1b 2004-05-15 devnull }
71 5cedca1b 2004-05-15 devnull sprintf(buf, "%s %s", sides[n], desc_str(desc));
72 5cedca1b 2004-05-15 devnull newsides[n] = tostring(buf);
73 5cedca1b 2004-05-15 devnull }