home *** CD-ROM | disk | FTP | other *** search
/ Source Code 1994 March / Source_Code_CD-ROM_Walnut_Creek_March_1994.iso / compsrcs / x / volume19 / xfig / part06 < prev    next >
Encoding:
Text File  |  1993-05-26  |  67.2 KB  |  1,913 lines

  1. Newsgroups: comp.sources.x
  2. From: envbvs@epb9.lbl.gov (Brian V. Smith)
  3. Subject: v19i118:  xfig - Draw amd manipulate objects in an X-Window, Part06/27
  4. Message-ID: <1993May21.021322.5310@sparky.imd.sterling.com>
  5. X-Md4-Signature: 4b119499b1a85a9c31c32aed4a8ea111
  6. Sender: chris@sparky.imd.sterling.com (Chris Olson)
  7. Organization: Sterling Software
  8. Date: Fri, 21 May 1993 02:13:22 GMT
  9. Approved: chris@sparky.imd.sterling.com
  10.  
  11. Submitted-by: envbvs@epb9.lbl.gov (Brian V. Smith)
  12. Posting-number: Volume 19, Issue 118
  13. Archive-name: xfig/part06
  14. Environment: X11
  15. Supersedes: xfig: Volume 16, Issue 6-30,39
  16.  
  17. #! /bin/sh
  18. # This is a shell archive.  Remove anything before this line, then unpack
  19. # it by saving it into a file and typing "sh file".  To overwrite existing
  20. # files, type "sh file -c".  You can also feed this as standard input via
  21. # unshar, or by typing "sh <file", e.g..  If this archive is complete, you
  22. # will see the following message at the end:
  23. #        "End of archive 6 (of 27)."
  24. # Contents:  CompKeyDB Examples/house.fig.uu Examples/houseC.fig.uu
  25. #   Examples/test2.fig.uu e_addpt.c e_flip.c fig.h w_cmdpanel.c
  26. # Wrapped by envbvs@epb9.lbl.gov.lbl.gov on Mon May  3 12:05:49 1993
  27. PATH=/bin:/usr/bin:/usr/ucb ; export PATH
  28. if test -f 'CompKeyDB' -a "${1}" != "-c" ; then 
  29.   echo shar: Will not clobber existing file \"'CompKeyDB'\"
  30. else
  31. echo shar: Extracting \"'CompKeyDB'\" \(8042 characters\)
  32. sed "s/^X//" >'CompKeyDB' <<'END_OF_FILE'
  33. X:~Ctrl<Key>1: insert-string(1)
  34. X:~Ctrl<Key>2: insert-string(2)
  35. X:~Ctrl<Key>3: insert-string(3)
  36. X:~Ctrl<Key>4: insert-string(4)
  37. X:~Ctrl<Key>a: insert-string(a)
  38. X:~Ctrl<Key>c: insert-string(c)
  39. X:~Ctrl<Key>d: insert-string(d)
  40. X:~Ctrl<Key>e: insert-string(e)
  41. X:~Ctrl<Key>i: insert-string(i)
  42. X:~Ctrl<Key>n: insert-string(n)
  43. X:~Ctrl<Key>o: insert-string(o)
  44. X:~Ctrl<Key>p: insert-string(p)
  45. X:~Ctrl<Key>s: insert-string(s)
  46. X:~Ctrl<Key>u: insert-string(u)
  47. X:~Ctrl~Meta<Key>y: insert-string(y)
  48. X:~Ctrl<Key>A: insert-string(A)
  49. X:~Ctrl<Key>C: insert-string(C)
  50. X:~Ctrl<Key>E: insert-string(E)
  51. X:~Ctrl<Key>D: insert-string(D)
  52. X:~Ctrl<Key>I: insert-string(I)
  53. X:~Ctrl<Key>L: insert-string(L)
  54. X:~Ctrl<Key>N: insert-string(N)
  55. X:~Ctrl<Key>O: insert-string(O)
  56. X:~Ctrl<Key>P: insert-string(P)
  57. X:~Ctrl<Key>R: insert-string(R)
  58. X:~Ctrl<Key>S: insert-string(S)
  59. X:~Ctrl<Key>U: insert-string(U)
  60. X:~Ctrl<Key>X: insert-string(X)
  61. X:~Ctrl<Key>Y: insert-string(Y)
  62. X:<Key>quotedbl: insert-string(0x22)
  63. X:<Key>bar: insert-string(|)
  64. X:<Key>exclam: insert-string(!)
  65. X:<Key>underscore: insert-string(_)
  66. X:<Key>less: insert-string(<)
  67. X:<Key>minus: insert-string(-)
  68. X:<Key>asciicircum: insert-string(^)
  69. X:<Key>plus: insert-string(+)
  70. X:<Key>backslash: insert-string(\)
  71. X:<Key>slash: insert-string(/)
  72. X:<Key>greater: insert-string(>)
  73. X:<Key>question: insert-string(?)
  74. X:<Key>asterisk: insert-string(*)
  75. X:<Key>grave: insert-string(`)
  76. X:<Key>apostrophe: insert-string(')
  77. X:<Key>asciitilde: insert-string(~)
  78. X:<Key>period: insert-string(.)
  79. X:<Key>comma: insert-string(0x2c)
  80. X:<Key>colon: insert-string(:)
  81. X:Ctrl<Key>a: beginning-of-line()
  82. X:Ctrl<Key>e: end-of-line()
  83. X:Ctrl<Key>f: forward-character()
  84. X:Meta<Key>f: forward-word()
  85. X:Ctrl<Key>b: backward-character()
  86. X:Meta<Key>b: backward-word()
  87. X:Meta<Key>]: forward-paragraph()
  88. X:Meta<Key>[: backward-paragraph()
  89. X:Ctrl<Key>d: delete-next-character()
  90. X:Ctrl<Key>h: delete-previous-character()
  91. X:Meta<Key>d: delete-next-word()
  92. X:Meta<Key>h: delete-previous-word()
  93. X:Meta<Key>D: kill-word()
  94. X:Meta<Key>H: backward-kill-word()
  95. X:Ctrl<Key>w: kill-selection()
  96. X:Ctrl<Key>k: kill-to-end-of-line()
  97. X:Meta<Key>k: kill-to-end-of-paragraph()
  98. X:Meta<Key>y: insert-selection(PRIMARY,CUT_BUFFER0)
  99. X:Ctrl<Key>l: redraw-display()
  100. X:Meta<Key>i: insert-file()
  101. X:Ctrl<Key>r: search(backward)
  102. X:Ctrl<Key>s: search(forward)
  103. X:Ctrl<Key>u: multiply(4)
  104. X:Ctrl<Key>g: multiply(Reset)
  105. X:Meta<Key>q: form-paragraph()
  106. X:Ctrl<Key>t: transpose-characters()
  107. X:Ctrl<Key>y: insert-selection(CUT_BUFFER1)
  108. X:<Key>Multi_key,:<Key>exclam,:<Key>exclam: insert-string(0xA1)
  109. X:<Key>Multi_key,:<Key>C,:<Key>slash: insert-string(0xA2)
  110. X:<Key>Multi_key,:<Key>L,:<Key>minus: insert-string(0xA3)
  111. X:<Key>Multi_key,:<Key>O,:<Key>X: insert-string(0xA4)
  112. X:<Key>Multi_key,:<Key>Y,:<Key>minus: insert-string(0xA5)
  113. X:<Key>Multi_key,:<Key>bar,:<Key>bar: insert-string(0xA6)
  114. X:<Key>Multi_key,:<Key>S,:<Key>O: insert-string(0xA7)
  115. X:<Key>Multi_key,:<Key>quotedbl,:<Key>quotedbl: insert-string(0xA8)
  116. X:<Key>Multi_key,:<Key>C,:<Key>O: insert-string(0xA9)
  117. X:<Key>Multi_key,:<Key>underscore,:<Key>a: insert-string(0xAA)
  118. X:<Key>Multi_key,:<Key>less,:<Key>less: insert-string(0xAB)
  119. X:<Key>Multi_key,:<Key>minus,:<Key>bar: insert-string(0xAC)
  120. X:<Key>Multi_key,:<Key>minus,:<Key>minus: insert-string(0xAD)
  121. X:<Key>Multi_key,:<Key>R,:<Key>O: insert-string(0xAE)
  122. X:<Key>Multi_key,:<Key>asciicircum,:<Key>minus: insert-string(0xAF)
  123. X:<Key>Multi_key,:<Key>asciicircum,:<Key>asterisk: insert-string(0xB0)
  124. X:<Key>Multi_key,:<Key>plus,:<Key>minus: insert-string(0xB1)
  125. X:<Key>Multi_key,:<Key>asciicircum,:<Key>2: insert-string(0xB2)
  126. X:<Key>Multi_key,:<Key>asciicircum,:<Key>3: insert-string(0xB3)
  127. X:<Key>Multi_key,:<Key>backslash,:<Key>backslash: insert-string(0xB4)
  128. X:<Key>Multi_key,:<Key>slash,:<Key>u: insert-string(0xB5)
  129. X:<Key>Multi_key,:<Key>P,:<Key>exclam: insert-string(0xB6)
  130. X:<Key>Multi_key,:<Key>asciicircum,:<Key>period: insert-string(0xB7)
  131. X:<Key>Multi_key,:<Key>asciicircum,:<Key>1: insert-string(0xB9)
  132. X:<Key>Multi_key,:<Key>underscore,:<Key>o: insert-string(0xBA)
  133. X:<Key>Multi_key,:<Key>greater,:<Key>greater: insert-string(0xBB)
  134. X:<Key>Multi_key,:<Key>1,:<Key>4: insert-string(0xBC)
  135. X:<Key>Multi_key,:<Key>1,:<Key>2: insert-string(0xBD)
  136. X:<Key>Multi_key,:<Key>3,:<Key>4: insert-string(0xBE)
  137. X:<Key>Multi_key,:<Key>question,:<Key>question: insert-string(0xBF)
  138. X:<Key>Multi_key,:<Key>A,:<Key>grave: insert-string(0xC0)
  139. X:<Key>Multi_key,:<Key>A,:<Key>apostrophe: insert-string(0xC1)
  140. X:<Key>Multi_key,:<Key>A,:<Key>asciicircum: insert-string(0xC2)
  141. X:<Key>Multi_key,:<Key>A,:<Key>asciitilde: insert-string(0xC3)
  142. X:<Key>Multi_key,:<Key>A,:<Key>quotedbl: insert-string(0xC4)
  143. X:<Key>Multi_key,:<Key>A,:<Key>asterisk: insert-string(0xC5)
  144. X:<Key>Multi_key,:<Key>A,:<Key>E: insert-string(0xC6)
  145. X:<Key>Multi_key,:<Key>C,:<Key>comma: insert-string(0xC7)
  146. X:<Key>Multi_key,:<Key>E,:<Key>grave: insert-string(0xC8)
  147. X:<Key>Multi_key,:<Key>E,:<Key>apostrophe: insert-string(0xC9)
  148. X:<Key>Multi_key,:<Key>E,:<Key>asciicircum: insert-string(0xCA)
  149. X:<Key>Multi_key,:<Key>E,:<Key>quotedbl: insert-string(0xCB)
  150. X:<Key>Multi_key,:<Key>I,:<Key>grave: insert-string(0xCC)
  151. X:<Key>Multi_key,:<Key>I,:<Key>apostrophe: insert-string(0xCD)
  152. X:<Key>Multi_key,:<Key>I,:<Key>asciicircum: insert-string(0xCE)
  153. X:<Key>Multi_key,:<Key>I,:<Key>quotedbl: insert-string(0xCF)
  154. X:<Key>Multi_key,:<Key>D,:<Key>minus: insert-string(0xD0)
  155. X:<Key>Multi_key,:<Key>N,:<Key>asciitilde: insert-string(0xD1)
  156. X:<Key>Multi_key,:<Key>O,:<Key>grave: insert-string(0xD2)
  157. X:<Key>Multi_key,:<Key>O,:<Key>apostrophe: insert-string(0xD3)
  158. X:<Key>Multi_key,:<Key>O,:<Key>asciicircum: insert-string(0xD4)
  159. X:<Key>Multi_key,:<Key>O,:<Key>asciitilde: insert-string(0xD5)
  160. X:<Key>Multi_key,:<Key>O,:<Key>quotedbl: insert-string(0xD6)
  161. X:<Key>Multi_key,:<Key>asterisk,:<Key>asterisk: insert-string(0xD7)
  162. X:<Key>Multi_key,:<Key>O,:<Key>slash: insert-string(0xD8)
  163. X:<Key>Multi_key,:<Key>U,:<Key>grave: insert-string(0xD9)
  164. X:<Key>Multi_key,:<Key>U,:<Key>apostrophe: insert-string(0xDA)
  165. X:<Key>Multi_key,:<Key>U,:<Key>asciicircum: insert-string(0xDB)
  166. X:<Key>Multi_key,:<Key>U,:<Key>quotedbl: insert-string(0xDC)
  167. X:<Key>Multi_key,:<Key>Y,:<Key>apostrophe: insert-string(0xDD)
  168. X:<Key>Multi_key,:<Key>P,:<Key>bar: insert-string(0xDE)
  169. X:<Key>Multi_key,:<Key>s,:<Key>s: insert-string(0xDF)
  170. X:<Key>Multi_key,:<Key>a,:<Key>grave: insert-string(0xE0)
  171. X:<Key>Multi_key,:<Key>a,:<Key>apostrophe: insert-string(0xE1)
  172. X:<Key>Multi_key,:<Key>a,:<Key>asciicircum: insert-string(0xE2)
  173. X:<Key>Multi_key,:<Key>a,:<Key>asciitilde: insert-string(0xE3)
  174. X:<Key>Multi_key,:<Key>a,:<Key>quotedbl: insert-string(0xE4)
  175. X:<Key>Multi_key,:<Key>a,:<Key>asterisk: insert-string(0xE5)
  176. X:<Key>Multi_key,:<Key>a,:<Key>e: insert-string(0xE6)
  177. X:<Key>Multi_key,:<Key>c,:<Key>comma: insert-string(0xE7)
  178. X:<Key>Multi_key,:<Key>e,:<Key>grave: insert-string(0xE8)
  179. X:<Key>Multi_key,:<Key>e,:<Key>apostrophe: insert-string(0xE9)
  180. X:<Key>Multi_key,:<Key>e,:<Key>asciicircum: insert-string(0xEA)
  181. X:<Key>Multi_key,:<Key>e,:<Key>quotedbl: insert-string(0xEB)
  182. X:<Key>Multi_key,:<Key>i,:<Key>grave: insert-string(0xEC)
  183. X:<Key>Multi_key,:<Key>i,:<Key>apostrophe: insert-string(0xED)
  184. X:<Key>Multi_key,:<Key>i,:<Key>asciicircum: insert-string(0xEE)
  185. X:<Key>Multi_key,:<Key>i,:<Key>quotedbl: insert-string(0xEF)
  186. X:<Key>Multi_key,:<Key>d,:<Key>minus: insert-string(0xF0)
  187. X:<Key>Multi_key,:<Key>n,:<Key>asciitilde: insert-string(0xF1)
  188. X:<Key>Multi_key,:<Key>o,:<Key>grave: insert-string(0xF2)
  189. X:<Key>Multi_key,:<Key>o,:<Key>apostrophe: insert-string(0xF3)
  190. X:<Key>Multi_key,:<Key>o,:<Key>asciicircum: insert-string(0xF4)
  191. X:<Key>Multi_key,:<Key>o,:<Key>asciitilde: insert-string(0xF5)
  192. X:<Key>Multi_key,:<Key>o,:<Key>quotedbl: insert-string(0xF6)
  193. X:<Key>Multi_key,:<Key>minus,:<Key>colon: insert-string(0xF7)
  194. X:<Key>Multi_key,:<Key>o,:<Key>slash: insert-string(0xF8)
  195. X:<Key>Multi_key,:<Key>u,:<Key>grave: insert-string(0xF9)
  196. X:<Key>Multi_key,:<Key>u,:<Key>apostrophe: insert-string(0xFA)
  197. X:<Key>Multi_key,:<Key>u,:<Key>asciicircum: insert-string(0xFB)
  198. X:<Key>Multi_key,:<Key>u,:<Key>quotedbl: insert-string(0xFC)
  199. X:<Key>Multi_key,:<Key>y,:<Key>apostrophe: insert-string(0xFD)
  200. X:<Key>Multi_key,:<Key>p,:<Key>bar: insert-string(0xFE)
  201. X:<Key>Multi_key,:<Key>y,:<Key>quotedbl: insert-string(0xFF)
  202. END_OF_FILE
  203. if test 8042 -ne `wc -c <'CompKeyDB'`; then
  204.     echo shar: \"'CompKeyDB'\" unpacked with wrong size!
  205. fi
  206. # end of 'CompKeyDB'
  207. fi
  208. if test -f 'Examples/house.fig.uu' -a "${1}" != "-c" ; then 
  209.   echo shar: Will not clobber existing file \"'Examples/house.fig.uu'\"
  210. else
  211. echo shar: Extracting \"'Examples/house.fig.uu'\" \(7888 characters\)
  212. sed "s/^X//" >'Examples/house.fig.uu' <<'END_OF_FILE'
  213. Xbegin 444 house.fig
  214. XM(T9)1R`R+C$*.#`@,@HU(#$@,"`Q("TQ(#`@,"`P(#`N,#`P(#$@,"`P(#$P
  215. XM-2XU,#`@-#$R+C4P,"`U-"`T,#D@-CD@-#0Y(#$P.2`T-C0*-2`Q(#`@,2`M
  216. XM,2`P(#`@,"`P+C`P,"`P(#`@,"`W.3,N-3`P(#0R,RXU,#`@-S,T(#0R-"`W
  217. XM-#D@,S@T(#<Y-"`S-C0*-2`Q(#`@,2`M,2`P(#`@,"`P+C`P,"`P(#`@,"`S
  218. XM.#DN,C$T(#,P.2XR,30@-#`S(#,P."`S.3D@,S$Y(#,X."`S,C,*-2`Q(#`@
  219. XM,2`M,2`P(#`@,"`P+C`P,"`Q(#`@,"`T-CDN,#`P(#$R-"XP,#`@-#,T(#$Q
  220. XM.2`T-#0@,30Y(#0W-"`Q-3D*-2`Q(#`@,2`M,2`P(#`@,"`P+C`P,"`P(#`@
  221. XM,"`U.3DN,#`P(#$R-"XP,#`@-C,T(#$Q.2`V,C0@,30Y(#4Y-"`Q-3D*-2`Q
  222. XM(#`@,2`M,2`P(#`@,"`P+C`P,"`P(#`@,"`T,3<N-3`P(#,Q-RXU,#`@-#8Y
  223. XM(#,Q-"`T-30@,S4T(#0Q-"`S-CD*-2`Q(#`@,2`M,2`P(#`@,"`P+C`P,"`Q
  224. XM(#`@,"`Q-C,N,#`P(#,V-2XP,#`@,C$T(#,V.2`Q.3D@,S(Y(#$U.2`S,30*
  225. XM,2`S(#`@,2`M,2`P(#`@,"`P+C`P,"`Q(#`N,#`P(#,P."`S,#(@-R`W(#,P
  226. XM."`S,#(@,S$S(#,P-PHQ(#,@,"`Q("TQ(#`@,"`P(#`N,#`P(#$@,"XP,#`@
  227. XM,S,T(#,P,B`U(#4@,S,T(#,P,B`S,SD@,S`R"C$@,R`P(#$@+3$@,"`P(#`@
  228. XM,"XP,#`@,2`P+C`P,"`S,S0@,S$Y(#<@-R`S,S0@,S$Y(#,S.2`S,C0*,2`S
  229. XM(#`@,2`M,2`P(#`@,"`P+C`P,"`Q(#`N,#`P(#,P."`S,3D@-2`U(#,P."`S
  230. XM,3D@,S$S(#,Q.0HQ(#(@,"`Q("TQ(#`@,"`P(#`N,#`P(#`@,"XP,#`@-38Q
  231. XM(#$R,2`Q,2`Q-2`U-3(@,3,X(#4W,B`Q,#8*,2`S(#`@,2`M,2`P(#`@,"`P
  232. XM+C`P,"`Q(#`N,#`P(#(W-"`R.3D@,3`@,3`@,C<T(#(Y.2`R.#0@,CDY"C(@
  233. XM,B`P(#$@+3$@,"`P(#`@,"XP,#`@,"`P(#`*"2`T,30@,S<T(#0S-"`S-S0@
  234. XM-#,T(#0Y.2`T,30@-#DY(#0Q-"`S-S0@.3DY.2`Y.3DY"C(@-"`P(#$@+3$@
  235. XM,"`P(#`@,"XP,#`@,R`P(#`*"2`R.30@,C@Y(#(Y-"`S,S0@,S0Y(#,S-"`S
  236. XM-#D@,C@Y(#(Y-"`R.#D@.3DY.2`Y.3DY"C(@,2`P(#$@+3$@,"`P(#`@,"XP
  237. XM,#`@,"`P(#`*"2`Q.2`R,CD@,CD@,C(Y(#DY.3D@.3DY.0HR(#$@,"`Q("TQ
  238. XM(#`@,"`P(#`N,#`P(#`@,"`P"@D@,3D@,S8Y(#(Y(#,V.2`Y.3DY(#DY.3D*
  239. XM,B`Q(#`@,2`M,2`P(#`@,"`P+C`P,"`P(#`@,`H)(#$Y(#(X.2`R.2`R.#D@
  240. XM.3DY.2`Y.3DY"C(@,2`P(#$@+3$@,"`P(#`@,"XP,#`@,"`P(#`*"2`Q.2`S
  241. XM,#D@,CD@,S`Y(#DY.3D@.3DY.0HR(#$@,"`Q("TQ(#`@,"`P(#`N,#`P(#`@
  242. XM,"`P"@D@,C0@,C(Y(#(T(#(X.2`Y.3DY(#DY.3D*,B`Q(#`@,2`M,2`P(#`@
  243. XM,"`P+C`P,"`P(#`@,`H)(#(T(#,P.2`R-"`S-CD@.3DY.2`Y.3DY"C(@,2`P
  244. XM(#(@+3$@,"`P(#`@,"XP,#`@,"`P(#`*"2`Q,#D@-#`Y(#$P.2`T-C0@.3DY
  245. XM.2`Y.3DY"C(@,2`P(#$@+3$@,"`P(#`@,"XP,#`@,"`P(#`*"2`U-3(@,3$R
  246. XM(#4U,B`Q,#,@.3DY.2`Y.3DY"C(@,2`P(#$@+3$@,"`P(#`@,"XP,#`@,"`P
  247. XM(#`*"2`U-S`@,3$R(#4W,"`Q,#,@.3DY.2`Y.3DY"C(@-"`P(#$@+3$@,"`P
  248. XM(#`@,"XP,#`@,R`P(#`*"2`U-#@@,3`S(#4T."`Y,2`U-S0@.3$@-3<T(#$P
  249. XM,R`U-#@@,3`S(#DY.3D@.3DY.0HR(#,@,"`Q("TQ(#`@,"`P(#`N,#`P(#`@
  250. XM,"`P"@D@-SDT(#0R-"`W.30@-#DY(#0Q-"`T.3D@-#$T(#,V.2`T,#0@,S8Y
  251. XM(#0P-"`T.3D@,C4T(#0Y.2`R-30@-#0Y"@D@,C0T(#0T.2`R-#0@-#DY(#$U
  252. XM.2`T.3D@,34Y(#,V.2`Q-#D@,S8Y(#$T.2`S.3D@,3`Y(#,Y.2`Q,#D@-#`Y
  253. XM"@D@,30Y(#0P.2`Q-#D@-3`Y(#@P-"`U,#D@.#`T(#0R-"`W.30@-#(T(#DY
  254. XM.3D@.3DY.0HR(#$@,"`Q("TQ(#`@,"`P(#`N,#`P(#`@,"`P"@D@-S4Y(#0Y
  255. XM.2`W-3D@-3`Y(#DY.3D@.3DY.0HR(#$@,"`Q("TQ(#`@,"`P(#`N,#`P(#`@
  256. XM,"`P"@D@-C@Y(#0Y.2`V.#D@-3`Y(#DY.3D@.3DY.0HR(#$@,"`Q("TQ(#`@
  257. XM,"`P(#`N,#`P(#`@,"`P"@D@-C@Y(#4P-"`W-3D@-3`T(#DY.3D@.3DY.0HR
  258. XM(#$@,"`Q("TQ(#`@,"`P(#`N,#`P(#`@,"`P"@D@-C4T(#4P.2`V-30@-3,Y
  259. XM(#4U-"`U,SD@-34T(#4P.2`Y.3DY(#DY.3D*,B`Q(#`@,2`M,2`P(#`@,"`P
  260. XM+C`P,"`P(#`@,`H)(#4R-"`T.3D@-3(T(#4P.2`Y.3DY(#DY.3D*,B`Q(#`@
  261. XM,2`M,2`P(#`@,"`P+C`P,"`P(#`@,`H)(#0U-"`T.3D@-#4T(#4P.2`Y.3DY
  262. XM(#DY.3D*,B`Q(#`@,2`M,2`P(#`@,"`P+C`P,"`P(#`@,`H)(#0U-"`U,#0@
  263. XM-3(T(#4P-"`Y.3DY(#DY.3D*,B`Q(#`@,2`M,2`P(#`@,"`P+C`P,"`P(#`@
  264. XM,`H)(#,Q-"`T.3D@,S$T(#4P.2`Y.3DY(#DY.3D*,B`Q(#`@,2`M,2`P(#`@
  265. XM,"`P+C`P,"`P(#`@,`H)(#,W-"`T.3D@,S<T(#4P.2`Y.3DY(#DY.3D*,B`Q
  266. XM(#`@,2`M,2`P(#`@,"`P+C`P,"`P(#`@,`H)(#,Q-"`U,#0@,S<T(#4P-"`Y
  267. XM.3DY(#DY.3D*,B`Q(#`@,2`M,2`P(#`@,"`P+C`P,"`P(#`@,`H)(#(U-"`T
  268. XM-3D@,S8Y(#0U.2`S-CD@,S8Y(#0P-"`S-CD@.3DY.2`Y.3DY"C(@-"`P(#$@
  269. XM+3$@,"`P(#`@,"XP,#`@,R`P(#`*"2`S,#D@-#8T(#,P.2`T.30@,S8T(#0Y
  270. XM-"`S-C0@-#8T(#,P.2`T-C0@.3DY.2`Y.3DY"C(@,2`P(#$@+3$@,"`P(#`@
  271. XM,"XP,#`@,"`P(#`*"2`R-30@-#8Y(#(X-"`T-CD@,C@T(#0Y.2`Y.3DY(#DY
  272. XM.3D*,B`Q(#`@,2`M,2`P(#`@,"`P+C`P,"`P(#`@,`H)(#,W.2`S-CD@,S<Y
  273. XM(#0Y.2`Y.3DY(#DY.3D*,B`Q(#`@,2`M,2`P(#`@,"`P+C`P,"`P(#`@,`H)
  274. XM(#<Y.2`Q,CD@-SDY(#(P.2`Y.3DY(#DY.3D*,B`Q(#`@,2`M,2`P(#`@,"`P
  275. XM+C`P,"`P(#`@,`H)(#<Y-"`R,#D@.#`T(#(P.2`Y.3DY(#DY.3D*,B`Q(#`@
  276. XM,2`M,2`P(#`@,"`P+C`P,"`P(#`@,`H)(#<Y-"`Q,CD@.#`T(#$R.2`Y.3DY
  277. XM(#DY.3D*,B`Q(#`@,2`M,2`P(#`@,"`P+C`P,"`P(#`@,`H)(#8Q-"`X-"`V
  278. XM-CD@.#0@.3DY.2`Y.3DY"C(@,2`P(#$@+3$@,"`P(#`@,"XP,#`@,"`P(#`*
  279. XM"2`V-CD@-SD@-C8Y(#@Y(#DY.3D@.3DY.0HR(#$@,"`Q("TQ(#`@,"`P(#`N
  280. XM,#`P(#`@,"`P"@D@-C$T(#<Y(#8Q-"`X.2`Y.3DY(#DY.3D*,B`Q(#`@,2`M
  281. XM,2`P(#`@,"`P+C`P,"`P(#`@,`H)(#4R.2`X-"`U-C0@.#0@.3DY.2`Y.3DY
  282. XM"C(@,2`P(#$@+3$@,"`P(#`@,"XP,#`@,"`P(#`*"2`U-C0@-SD@-38T(#@Y
  283. XM(#DY.3D@.3DY.0HR(#$@,"`Q("TQ(#`@,"`P(#`N,#`P(#`@,"`P"@D@-3(Y
  284. XM(#<Y(#4R.2`X.2`Y.3DY(#DY.3D*,B`Q(#`@,2`M,2`P(#`@,"`P+C`P,"`P
  285. XM(#`@,`H)(#,Y.2`X-"`T-30@.#0@.3DY.2`Y.3DY"C(@,2`P(#$@+3$@,"`P
  286. XM(#`@,"XP,#`@,"`P(#`*"2`S.3D@.#D@,SDY(#<Y(#DY.3D@.3DY.0HR(#$@
  287. XM,"`Q("TQ(#`@,"`P(#`N,#`P(#`@,"`P"@D@-#4T(#<Y(#0U-"`X.2`Y.3DY
  288. XM(#DY.3D*,B`Q(#`@,2`M,2`P(#`@,"`P+C`P,"`P(#`@,`H)(#(V-"`Q,#0@
  289. XM,C8T(#$V-"`Y.3DY(#DY.3D*,B`Q(#`@,2`M,2`P(#`@,"`P+C`P,"`P(#`@
  290. XM,`H)(#(U.2`Q,#0@,C8Y(#$P-"`Y.3DY(#DY.3D*,B`Q(#`@,2`M,2`P(#`@
  291. XM,"`P+C`P,"`P(#`@,`H)(#(U.2`Q-C0@,C8Y(#$V-"`Y.3DY(#DY.3D*,B`Q
  292. XM(#`@,B`M,2`P(#`@,"`P+C`P,"`P(#`@,`H)(#,X.2`S,#D@,S@Y(#,R-"`Y
  293. XM.3DY(#DY.3D*,B`Q(#`@,B`M,2`P(#`@,"`P+C`P,"`P(#`@,`H)(#0S-"`Q
  294. XM,3D@-#<T(#$Q.2`Y.3DY(#DY.3D*,B`S(#`@,2`M,2`P(#`@,"`P+C`P,"`P
  295. XM(#`@,`H)(#0W-"`Q-3D@-#@T(#$U.2`T.#0@,C`Y(#4X-"`R,#D@-3@T(#$U
  296. XM.2`U.30@,34Y(#4Y-"`R,C0@-3@T(#(R-`H)(#4X-"`R,3D@-3,Y(#(Q.2`U
  297. XM,SD@,C<T(#4X-"`R-S0@-3@T(#(V.2`U.30@,C8Y(#4Y-"`R-S0@-3DY(#(W
  298. XM-`H)(#4Y.2`R.#0@-#8Y(#(X-"`T-CD@,C<T(#0W-"`R-S0@-#<T(#(V.2`T
  299. XM.#0@,C8Y(#0X-"`R-S0@-3(Y(#(W-`H)(#4R.2`R,3D@-#@T(#(Q.2`T.#0@
  300. XM,C(T(#0W-"`R,C0@-#<T(#$U.2`Y.3DY(#DY.3D*,B`Q(#`@,2`M,2`P(#`@
  301. XM,"`P+C`P,"`P(#`@,`H)(#0X-"`Q-3D@-3@T(#$U.2`Y.3DY(#DY.3D*,B`S
  302. XM(#`@,2`M,2`P(#`@,"`P+C`P,"`P(#`@,`H)(#<Y-"`X.2`U.30@.#D@-3DT
  303. XM(#$Q.2`U.#0@,3$Y(#4X-"`X.2`T.#0@.#D@-#@T(#$Q.2`T-S0@,3$Y"@D@
  304. XM-#<T(#@Y(#(V.2`X.2`R-CD@,C<T(#0Q-"`R-S0@-#$T(#,Q-"`T,#0@,S$T
  305. XM(#0P-"`R.#0@,S4Y(#(X-`H)(#,U.2`S,#0@,S@Y(#,P-"`S.#D@,S`Y(#,U
  306. XM-"`S,#D@,S4T(#(X-"`R-3D@,C@T(#(U.2`S,#D@,C0Y(#,P.0H)(#(T.2`R
  307. XM-CD@,34Y(#(V.2`Q-3D@,S$T(#$T.2`S,30@,30Y(#(U.2`R-3D@,C4Y(#(U
  308. XM.2`Q-SD@,CD@,3<Y"@D@,CD@,SDY(#4T(#,Y.2`U-"`T,#D@,3D@-#`Y(#$Y
  309. XM(#$V.2`R-3D@,38Y(#(U.2`W.2`X,#0@-SD*"2`X,#0@,S8T(#<Y-"`S-C0@
  310. XM-SDT(#(X-"`V-30@,C@T(#8U-"`R-S0@-SDT(#(W-"`W.30@.#D@.3DY.2`Y
  311. XM.3DY"C(@-"`P(#$@+3$@,"`P(#`@,"XP,#`@-B`P(#`*"2`T.#D@.30@-#@Y
  312. XM(#$Q-"`U,3D@,3$T(#4Q.2`Y-"`T.#D@.30@.3DY.2`Y.3DY"C(@-"`P(#$@
  313. XM+3$@,"`P(#`@,"XP,#`@.2`P(#`*"2`T.#0@.#D@-#@T(#$Q.2`U,C0@,3$Y
  314. XM(#4R-"`X.2`T.#0@.#D@.3DY.2`Y.3DY"C(@,2`P(#(@+3$@,"`P(#`@,"XP
  315. XM,#`@,"`P(#`*"2`T-CD@,C<T(#0Q.2`R-30@.3DY.2`Y.3DY"C(@,2`P(#(@
  316. XM+3$@,"`P(#`@,"XP,#`@,"`P(#`*"2`T-30@,C(T(#0W-"`R-CD@.3DY.2`Y
  317. XM.3DY"C(@,2`P(#(@+3$@,"`P(#`@,"XP,#`@,"`P(#`*"2`V,3,@,C(S(#4Y
  318. XM-"`R-CD@.3DY.2`Y.3DY"C(@,2`P(#(@+3$@,"`P(#`@,"XP,#`@,"`P(#`*
  319. XM"2`U.3D@,C<T(#8T.2`R-#D@.3DY.2`Y.3DY"C(@-"`P(#$@+3$@,"`P(#`@
  320. XM,"XP,#`@.2`P(#`*"2`T.#D@,38T(#0X.2`R,#0@-3<Y(#(P-"`U-SD@,38T
  321. XM(#0X.2`Q-C0@.3DY.2`Y.3DY"C(@,2`P(#(@+3$@,"`P(#`@,"XP,#`@,"`P
  322. XM(#`*"2`U.30@,3$Y(#8S-"`Q,3D@.3DY.2`Y.3DY"C(@,2`P(#(@+3$@,"`P
  323. XM(#`@,"XP,#`@,"`P(#`*"2`W,S0@-#(T(#<Y-"`T,C0@.3DY.2`Y.3DY"C(@
  324. XM,2`P(#(@+3$@,"`P(#`@,"XP,#`@,"`P(#`*"2`T,30@,S$T(#0V.2`S,30@
  325. XM.3DY.2`Y.3DY"C(@,2`P(#$@+3$@,"`P(#`@,"XP,#`@,"`P(#`*"2`R,30@
  326. XM,3<Y(#(Q-"`R-3D@.3DY.2`Y.3DY"C(@,2`P(#(@+3$@,"`P(#`@,"XP,#`@
  327. XM,"`P(#`*"2`R,30@,S8Y(#$U.2`S-CD@.3DY.2`Y.3DY"C(@,2`P(#$@+3$@
  328. XM,"`P(#`@,"XP,#`@,"`P(#`*"2`Q.2`T,#D@,3D@-#@Y(#$T.2`T.#D@.3DY
  329. XM.2`Y.3DY"C0@,"`P(#$R(#`@+3$@,"`P+C`P,"`T(#D@."`T,3D@-#,T($8!
  330. XM"C0@,"`P(#$R(#`@+3$@,"`P+C`P,"`T(#D@."`T,3D@-#$Y($(!"C0@,"`P
  331. XM(#$R(#`@+3$@,"`P+C`P,"`T(#D@,C0@-3`T(#$S.2!"871H`0HT(#`@,"`Q
  332. XM,B`P("TQ(#`@,"XP,#`@-"`Q,B`V,R`U,SD@,S@T($QI=FEN9R!2;V]M`0HT
  333. XM(#`@,"`Q,B`P("TQ(#`@,"XP,#`@-"`Y(#0U(#8W.2`Q.#0@0F5D<F]O;0$*
  334. XM-"`P(#`@,3(@,"`M,2`P(#`N,#`P(#0@.2`T-2`S,S0@,3@T($)E9')O;VT!
  335. XM"C0@,"`P(#$R(#`@+3$@,"`P+C`P,"`T(#$R(#0Q(#4T(#(Y-"!,875N9')Y
  336. XM`0HT(#`@,"`Q,B`P("TQ(#`@,"XP,#`@-"`Y(#,X(#(S.2`S.3D@2VET8VAE
  337. XM;@$*-"`P(#`@,3(@,"`M,2`P(#`N,#`P(#0@.2`Q."`S-S0@,CDY($-,+@$*
  338. XM-"`P(#`@,3(@,"`M,2`P(#`N,#`P(#0@.2`Q."`R,CD@,C(Y($-,+@$*-"`P
  339. XM(#`@,3(@,"`M,2`P(#`N,#`P(#0@.2`Q."`U-30@,C4T($-,+@$*-"`P(#`@
  340. XD,3(@,"`M,2`P(#`N,#`P(#0@.2`Q."`T.30@,C4T($-,+@$*
  341. X`
  342. Xend
  343. END_OF_FILE
  344. if test 7888 -ne `wc -c <'Examples/house.fig.uu'`; then
  345.     echo shar: \"'Examples/house.fig.uu'\" unpacked with wrong size!
  346. fi
  347. # end of 'Examples/house.fig.uu'
  348. fi
  349. if test -f 'Examples/houseC.fig.uu' -a "${1}" != "-c" ; then 
  350.   echo shar: Will not clobber existing file \"'Examples/houseC.fig.uu'\"
  351. else
  352. echo shar: Extracting \"'Examples/houseC.fig.uu'\" \(7323 characters\)
  353. sed "s/^X//" >'Examples/houseC.fig.uu' <<'END_OF_FILE'
  354. Xbegin 444 houseC.fig
  355. XM(T9)1R`R+C$*.#`@,@HU(#$@,"`Q("TQ(#`@,"`P(#`N,#`P(#$@,"`P(#,Y
  356. XM-"XV-3@@,C(Y+C8U."`S.30@,C<T(#0R-R`R-C`@-#,Y(#(R.0HU(#$@,"`Q
  357. XM("TQ(#`@,"`P(#`N,#`P(#$@,"`P(#(U-RXP,#`@,C`U+C`P,"`R-#0@,C`T
  358. XM(#(T."`R,34@,C4Y(#(Q.0HQ(#(@,"`Q("TQ(#`@,"`P(#`N,#`P(#`@,"XP
  359. XM,#`@,S4V(#$R,2`Q,2`Q-2`S-#<@,3,X(#,V-R`Q,#8*,2`Q(#`@,2`M,2`P
  360. XM(#`@,"`P+C`P,"`Q(#`N,#`P(#0V,R`Q,CD@,3$@,38@-#8S(#$R.2`T-S,@
  361. XM,30T"C$@,2`P(#$@+3$@,"`P(#`@,"XP,#`@,2`P+C`P,"`T-C4@,3<R(#$Q
  362. XM(#$V(#0V-2`Q-S(@-#<U(#$X-PHR(#$@,"`Q("TQ(#`@,"`P(#`N,#`P(#`@
  363. XM,"`P"@D@.#D@,3@T(#$V.2`Q.#0@.3DY.2`Y.3DY"C(@,2`P(#$@+3$@,"`P
  364. XM(#`@,"XP,#`@,"`P(#`*"2`X.2`Q-CD@,38Y(#$V.2`Y.3DY(#DY.3D*,B`Q
  365. XM(#`@,2`M,2`P(#`@,"`P+C`P,"`P(#`@,`H)(#$W.2`Q-CD@,C4Y(#$V.2`Y
  366. XM.3DY(#DY.3D*,B`Q(#`@,2`M,2`P(#`@,"`P+C`P,"`P(#`@,`H)(#$W.2`Q
  367. XM.#0@,C4Y(#$X-"`Y.3DY(#DY.3D*,B`Q(#`@,2`M,2`P(#`@,"`P+C`P,"`P
  368. XM(#`@,`H)(#$W.2`Q.3D@,C4Y(#$Y.2`Y.3DY(#DY.3D*,B`Q(#`@,2`M,2`P
  369. XM(#`@,"`P+C`P,"`P(#`@,`H)(#@Y(#(X.2`Q-CD@,C@Y(#DY.3D@.3DY.0HR
  370. XM(#$@,"`Q("TQ(#`@,"`P(#`N,#`P(#`@,"`P"@D@.#D@,C<T(#$V.2`R-S0@
  371. XM.3DY.2`Y.3DY"C(@,2`P(#$@+3$@,"`P(#`@,"XP,#`@,"`P(#`*"2`X.2`R
  372. XM-3D@,38Y(#(U.2`Y.3DY(#DY.3D*,B`Q(#`@,2`M,2`P(#`@,"`P+C`P,"`P
  373. XM(#`@,`H)(#@Y(#(T-"`Q-CD@,C0T(#DY.3D@.3DY.0HR(#$@,"`Q("TQ(#`@
  374. XM,"`P(#`N,#`P(#`@,"`P"@D@.#D@,C(Y(#$V.2`R,CD@.3DY.2`Y.3DY"C(@
  375. XM,2`P(#$@+3$@,"`P(#`@,"XP,#`@,"`P(#`*"2`X.2`R,30@,38Y(#(Q-"`Y
  376. XM.3DY(#DY.3D*,B`Q(#`@,2`M,2`P(#`@,"`P+C`P,"`P(#`@,`H)(#@Y(#$Y
  377. XM.2`Q-CD@,3DY(#DY.3D@.3DY.0HR(#$@,"`Q("TQ(#`@,"`P(#`N,#`P(#`@
  378. XM,"`P"@D@,S0W(#$Q-"`S-#<@,3`S(#DY.3D@.3DY.0HR(#$@,"`Q("TQ(#`@
  379. XM,"`P(#`N,#`P(#`@,"`P"@D@,S8U(#$Q,B`S-C4@,3`S(#DY.3D@.3DY.0HR
  380. XM(#0@,"`Q("TQ(#`@,"`P(#`N,#`P(#,@,"`P"@D@,S0S(#$P,R`S-#,@.3$@
  381. XM,S8Y(#DQ(#,V.2`Q,#,@,S0S(#$P,R`Y.3DY(#DY.3D*,B`R(#`@,2`M,2`P
  382. XM(#`@,"`P+C`P,"`P(#`@,`H)(#$X-"`S,#,@,3@T(#,R.2`R,#D@,S(Y(#(P
  383. XM.2`S,#,@,3@T(#,P,R`Y.3DY(#DY.3D*,B`T(#`@,2`M,2`P(#`@,"`P+C`P
  384. XM,"`T(#`@,`H)(#(P-"`T-3D@,S(Y(#0U.2`S,CD@,S0Y(#(P-"`S-#D@,C`T
  385. XM(#0U.2`Y.3DY(#DY.3D*,B`T(#`@,2`M,2`P(#`@,"`P+C`P,"`S(#`@,`H)
  386. XM(#(P-"`S-#0@,3@Y(#,T-"`Q.#D@-#8T(#(P-"`T-C0@,C`T(#,T-"`Y.3DY
  387. XM(#DY.3D*,B`Q(#`@,2`M,2`P(#`@,"`P+C`P,"`P(#`@,`H)(#8U.2`T.3D@
  388. XM-C4Y(#4P.2`Y.3DY(#DY.3D*,B`Q(#`@,2`M,2`P(#`@,"`P+C`P,"`P(#`@
  389. XM,`H)(#4Y.2`T.3D@-3DY(#4P.2`Y.3DY(#DY.3D*,B`Q(#`@,2`M,2`P(#`@
  390. XM,"`P+C`P,"`P(#`@,`H)(#4Y.2`U,#0@-C4Y(#4P-"`Y.3DY(#DY.3D*,B`Q
  391. XM(#`@,2`M,2`P(#`@,"`P+C`P,"`P(#`@,`H)(#(S.2`T.3D@,C,Y(#4P.2`Y
  392. XM.3DY(#DY.3D*,B`Q(#`@,2`M,2`P(#`@,"`P+C`P,"`P(#`@,`H)(#(Y.2`T
  393. XM.3D@,CDY(#4P.2`Y.3DY(#DY.3D*,B`Q(#`@,2`M,2`P(#`@,"`P+C`P,"`P
  394. XM(#`@,`H)(#(S.2`U,#0@,CDY(#4P-"`Y.3DY(#DY.3D*,B`Q(#`@,2`M,2`P
  395. XM(#`@,"`P+C`P,"`P(#`@,`H)(#,V-"`W.2`S-C0@.#D@.3DY.2`Y.3DY"C(@
  396. XM,2`P(#$@+3$@,"`P(#`@,"XP,#`@,"`P(#`*"2`T,#D@-SD@-#`Y(#@Y(#DY
  397. XM.3D@.3DY.0HR(#,@,"`Q("TQ(#`@,"`P(#`N,#`P(#`@,"`P"@D@-#8T(#,V
  398. XM.2`T-30@,S8Y(#0U-"`S-#D@-3$Y(#,T.2`U,3D@-#DY(#<P-"`T.3D@-S`T
  399. XM(#@Y(#8P.2`X.0H)(#8P.2`R,CD@-38Y(#(R.2`U-CD@,C$Y(#4Y.2`R,3D@
  400. XM-3DY(#@Y(#0X.2`X.2`T.#D@,C$Y(#4Q.2`R,3D*"2`U,3D@,C(Y(#0S.2`R
  401. XM,CD@-#,Y(#(Q.2`T-SD@,C$Y(#0W.2`X.2`T-CD@.#D@-#8Y(#@T(#0T.2`X
  402. XM-`H)(#0T.2`X.2`R-CD@.#D@,C8Y(#$X.2`S,CD@,3@Y(#,R.2`R,3D@,SDT
  403. XM(#(Q.2`S.30@,C(Y(#,Q.2`R,CD*"2`R-3D@,C(Y(#(U.2`R,3D@,S$Y(#(Q
  404. XM.2`S,3D@,3DY(#(V.2`Q.3D@,C8Y(#(P-"`R-3D@,C`T(#(U.2`X.0H)(#$V
  405. XM.2`X.2`Q-CD@-SD@-S$T(#<Y(#<Q-"`U,#D@,38Y(#4P.2`Q-CD@,38Y(#$W
  406. XM.2`Q-CD@,3<Y(#0Y.0H)(#0U-"`T.3D@-#4T(#0X.2`T-C0@-#@Y(#0V-"`T
  407. XM.3D@-3`Y(#0Y.2`U,#D@,S4Y(#0V-"`S-3D@-#8T(#,V.2`Y.3DY(#DY.3D*
  408. XM,B`Q(#`@,B`M,2`P(#`@,"`P+C`P,"`P(#`@,`H)(#0V,"`T,C0@-#8P(#0X
  409. XM-B`Y.3DY(#DY.3D*,B`Q(#`@,B`M,2`P(#`@,"`P+C`P,"`P(#`@,`H)(#0U
  410. XM-R`S-S(@-#4W(#0R.2`Y.3DY(#DY.3D*,B`Q(#`@,2`M,2`P(#`@,"`P+C`P
  411. XM,"`P(#`@,`H)(#$V.2`T-#0@,3<Y(#0T-"`Y.3DY(#DY.3D*,B`Q(#`@,2`M
  412. XM,2`P(#`@,"`P+C`P,"`P(#`@,`H)(#$W.2`S-S0@,38Y(#,W-"`Y.3DY(#DY
  413. XM.3D*,B`Q(#`@,2`M,2`P(#`@,"`P+C`P,"`P(#$@,`H),"`P(#$N,#`P(#0N
  414. XM,#`P(#@N,#`P"@D@,C$Y(#$Y-"`R,3D@,3,Y(#(P-"`Q,C0@,30T(#$R-"`Q
  415. XM,CD@,3,Y(#$R.2`R.3D@.3DY.2`Y.3DY"C(@,2`P(#$@+3$@,"`P(#`@,"XP
  416. XM,#`@,"`P(#`*"2`Q,3D@.#0@,30Y(#@T(#DY.3D@.3DY.0HR(#$@,"`Q("TQ
  417. XM(#`@,"`P(#`N,#`P(#`@,"`P"@D@,30Y(#<Y(#$T.2`X.2`Y.3DY(#DY.3D*
  418. XM,B`Q(#`@,2`M,2`P(#`@,"`P+C`P,"`P(#`@,`H)(#$Q.2`W.2`Q,3D@.#D@
  419. XM.3DY.2`Y.3DY"C(@,2`P(#$@+3$@,"`P(#`@,"XP,#`@,"`P(#`*"2`X-"`Y
  420. XM.2`X-"`Q,CD@.3DY.2`Y.3DY"C(@,2`P(#$@+3$@,"`P(#`@,"XP,#`@,"`P
  421. XM(#`*"2`W.2`Q,CD@.#D@,3(Y(#DY.3D@.3DY.0HR(#$@,"`Q("TQ(#`@,"`P
  422. XM(#`N,#`P(#`@,"`P"@D@-SD@.3D@.#D@.3D@.3DY.2`Y.3DY"C(@,2`P(#$@
  423. XM+3$@,"`P(#`@,"XP,#`@,"`P(#`*"2`S-C0@.#0@-#`Y(#@T(#DY.3D@.3DY
  424. XM.0HR(#,@,"`Q("TQ(#`@,"`P(#`N,#`P(#`@,"`P"@D@,38Y(#<Y(#<Y(#<Y
  425. XM(#<Y(#,Q.2`Q-CD@,S$Y(#$V.2`S,#D@.#D@,S`Y(#@Y(#@Y(#$V.2`X.0H)
  426. XM(#$V.2`W.2`Y.3DY(#DY.3D*,B`T(#`@,2`M,2`P(#`@,"`P+C`P,"`W(#`@
  427. XM,`H)(#(W-"`Y-"`R-S0@,3@T(#,Q.2`Q.#0@,S$Y(#DT(#(W-"`Y-"`Y.3DY
  428. XM(#DY.3D*,B`Q(#`@,2`M,2`P(#`@,"`P+C`P,"`P(#`@,`H)(#,R-"`X.2`S
  429. XM,C0@,3@Y(#DY.3D@.3DY.0HR(#$@,"`Q("TQ(#`@,"`P(#`N,#`P(#`@,"`P
  430. XM"@D@,3<T(#,W-"`Q-S0@-#0T(#DY.3D@.3DY.0HR(#(@,"`Q("TQ(#`@,"`P
  431. XM(#`N,#`P(#`@,"`P"@D@-#0Y(#@T(#0T.2`Y-"`T-CD@.30@-#8Y(#@T(#0T
  432. XM.2`X-"`Y.3DY(#DY.3D*,B`Q(#`@,2`M,2`P(#`@,"`P+C`P,"`P(#`@,`H)
  433. XM(#0T-"`X.2`T-#0@,C$Y(#DY.3D@.3DY.0HR(#$@,"`R("TQ(#`@,"`P(#`N
  434. XM,#`P(#`@,"`P"@D@,SDT(#(W-"`S.30@,C(Y(#DY.3D@.3DY.0HR(#$@,"`Q
  435. XM("TQ(#`@,"`P(#`N,#`P(#`@,"`P"@D@-3$Y(#(Q.2`U,3D@,3$Y(#4V.2`Q
  436. XM,3D@-38Y(#(Q.2`Y.3DY(#DY.3D*,B`Q(#`@,2`M,2`P(#`@,"`P+C`P,"`P
  437. XM(#`@,`H)(#(W-"`Q.3D@,C<T(#(Q.2`Y.3DY(#DY.3D*,B`Q(#`@,B`M,2`P
  438. XM(#`@,"`P+C`P,"`P(#`@,`H)(#(T-"`R,#0@,C4Y(#(P-"`Y.3DY(#DY.3D*
  439. XM,B`R(#`@,2`M,2`P(#`@,"`P+C`P,"`P(#`@,`H)(#8Y.2`Y.2`V-3(@.3D@
  440. XM-C4R(#$R.2`V.3D@,3(Y(#8Y.2`Y.2`Y.3DY(#DY.3D*,B`T(#`@,2`M,2`P
  441. XM(#`@,"`P+C`P,"`S(#`@,`H)(#(V-R`R,S$@,C8W(#(V-"`S,S0@,C8T(#,S
  442. XM-"`R,S$@,C8W(#(S,2`Y.3DY(#DY.3D*,B`T(#`@,2`M,2`P(#`@,"`P+C`P
  443. XM,"`S(#`@,`H)(#,S-2`R,S$@,S,U(#(V-"`S.#D@,C8T(#,X.2`R,S$@,S,U
  444. XM(#(S,2`Y.3DY(#DY.3D*,B`R(#`@,2`M,2`P(#`@,"`P+C`P,"`P(#`@,`H)
  445. XM(#,W.2`T.30@-#(W(#0Y-"`T,C<@-#<P(#,W.2`T-S`@,S<Y(#0Y-"`Y.3DY
  446. XM(#DY.3D*,B`R(#`@,2`M,2`P(#`@,"`P+C`P,"`P(#`@,`H)(#0U-"`R,CD@
  447. XM-3$T(#(R.2`U,30@,C4Y(#0U-"`R-3D@-#4T(#(R.2`Y.3DY(#DY.3D*,B`T
  448. XM(#`@,2`M,2`P(#`@,"`P+C`P,"`S(#`@,`H)(#8W.2`T,SD@-C<Y(#0X.2`U
  449. XM-SD@-#@Y(#4W.2`T,SD@-C<Y(#0S.2`Y.3DY(#DY.3D*,B`Q(#`@,2`M,2`P
  450. XM(#`@,"`P+C`P,"`P(#`@,`H)(#<P.2`S-SD@-S`Y(#0S.2`Y.3DY(#DY.3D*
  451. XM,B`Q(#`@,2`M,2`P(#`@,"`P+C`P,"`P(#`@,`H)(#<P-"`S-SD@-S$T(#,W
  452. XM.2`Y.3DY(#DY.3D*,B`Q(#`@,2`M,2`P(#`@,"`P+C`P,"`P(#`@,`H)(#<P
  453. XM-"`T,SD@-S$T(#0S.2`Y.3DY(#DY.3D*,B`Q(#`@,2`M,2`P(#`@,"`P+C`P
  454. XM,"`P(#`@,`H)(#<P.2`Q-#D@-S`Y(#(P.2`Y.3DY(#DY.3D*,B`Q(#`@,2`M
  455. XM,2`P(#`@,"`P+C`P,"`P(#`@,`H)(#<P-"`R,#D@-S$T(#(P.2`Y.3DY(#DY
  456. XM.3D*,B`Q(#`@,2`M,2`P(#`@,"`P+C`P,"`P(#`@,`H)(#<P-"`Q-#D@-S$T
  457. XM(#$T.2`Y.3DY(#DY.3D*-"`P(#`@,3(@,"`M,2`P(#`N,#`P(#0@.2`S.2`R
  458. XM,#`@,C$V($1/5TX!"C0@,"`P(#$R(#`@+3$@,"`P+C`P,"`T(#D@-R`Q.3$@
  459. XM,S(Q(%0!"C0@,"`P(#$R(#`@+3$@,"`P+C`P,"`T(#D@,C4@,C0Y(#0P.2!"
  460. XM140!"C0@,"`P(#$R(#`@+3$@,"`P+C`P,"`T(#D@-#`@-C`T(#,P-"!35%5$
  461. XM60$*-"`P(#`@,3(@,"`M,2`P(#`N,#`P(#0@.2`Q,34@,C8X(#,P-2!-05-4
  462. XM15(@0D5$4D]/30$*-"`P(#`@,3(@,"`M,2`P(#`N,#`P(#0@.2`S,R`S-C0@
  463. XM,30Y($)!5$@!"C0@,"`P(#$R(#`@+3$@,"`P+C`P,"`T(#$R(#4S(#4Y(#,Y
  464. XM.2!H;W5S94,N9FEG`0HT(#`@,"`Q,B`P("TQ(#`@,"XP,#`@-"`Y(#$W(#(X
  465. XM.2`R-#D@1%(!"C0@,"`P(#$R(#`@+3$@,"`P+C`P,"`T(#D@,3<@,S4Y(#(T
  466. XM.2!$4@$*-"`P(#`@,3(@,"`M,2`P(#`N,#`P(#0@.2`R-R`V-C0@,3$Y(%-%
  467. XM5P$*-"`P(#`@,3(@,"`M,2`P(#`N,#`P(#0@.2`Q."`U,S0@,34T($-,+@$*
  468. XM-"`P(#`@,3(@,"`M,2`P(#`N,#`P(#0@.2`Q."`T-S0@-#(Y($-,+@$*-"`P
  469. XM(#`@,3(@,"`M,2`P(#`N,#`P(#0@.2`Q-R`T-S0@,C0Y($12`0HT(#`@,"`Q
  470. XM,B`P("TQ(#`@,"XP,#`@-"`Y(#$W(#,Y-"`T.#0@1%(!"C0@,"`P(#$R(#`@
  471. XM+3$@,"`P+C`P,"`T(#D@,S(@-C$T(#0V.2!$15-+`0HT(#`@,"`Q,B`P("TQ
  472. X<(#`@,"XP,#`@-"`Y(#$U(#(X.2`R,30@0TP!"E-+
  473. X`
  474. Xend
  475. END_OF_FILE
  476. if test 7323 -ne `wc -c <'Examples/houseC.fig.uu'`; then
  477.     echo shar: \"'Examples/houseC.fig.uu'\" unpacked with wrong size!
  478. fi
  479. # end of 'Examples/houseC.fig.uu'
  480. fi
  481. if test -f 'Examples/test2.fig.uu' -a "${1}" != "-c" ; then 
  482.   echo shar: Will not clobber existing file \"'Examples/test2.fig.uu'\"
  483. else
  484. echo shar: Extracting \"'Examples/test2.fig.uu'\" \(7528 characters\)
  485. sed "s/^X//" >'Examples/test2.fig.uu' <<'END_OF_FILE'
  486. Xbegin 444 test2.fig
  487. XM(T9)1R`R+C$*.#`@,@HU(#$@,"`R("TQ(#`@,"`P(#`N,#`P(#$@,"`P(#$X
  488. XM-2XT-3$@,C0Y+C0P,B`Q-S`@,3@Q(#$T,"`Q.38@,3$Y(#(R-PHU(#$@,"`R
  489. XM("TQ(#`@,"`P(#`N,#`P(#$@,"`P(#$R.2XS-38@,C<W+C0T-R`Q,S@@,38T
  490. XM(#8Y(#$X,2`S-R`R,3$*-2`Q(#`@,B`M,2`P(#`@,"`P+C`P,"`Q(#`@,"`Q
  491. XM-34N-CDX(#(Q+C<R-R`T,"`Q,#8@,3`Q(#$U-"`Q-#`@,38T"C4@,2`P(#(@
  492. XM+3$@,"`P(#`@,"XP,#`@,2`P(#`@,3DP+C,P,"`Q,#$N-3(U(#$R,B`Q,C,@
  493. XM,3,U(#$T-R`Q-S,@,3<Q"C$@,B`P(#$@+3$@,"`P(#`@,"XP,#`@,2`P+C`P
  494. XM,"`Q-C,@-#8X(#(U(#8@,3,X(#0W-"`Q.#D@-#8R"C$@,2`P(#$@+3$@,"`P
  495. XM(#`@,"XP,#`@,2`P+C`P,"`Q-C,@-30W(#D@,R`Q-C,@-30W(#$U-"`U-#D*
  496. XM,B`Q(#`@,B`M,2`P(#`@,"`P+C`P,"`P(#`@,`H)(#(W-"`U.2`V,C0@-3D@
  497. XM.3DY.2`Y.3DY"C(@,B`P(#(@+3$@,"`P(#`@,"XP,#`@,"`P(#`*"2`S,30@
  498. XM,S,T(#,W-"`S,S0@,S<T(#,V-"`S,30@,S8T(#,Q-"`S,S0@.3DY.2`Y.3DY
  499. XM"C(@,B`P(#(@+3$@,"`P(#`@,"XP,#`@,"`P(#`*"2`R-#D@,3`P(#(X-"`Q
  500. XM,#`@,C@T(#$Q-"`R-#D@,3$T(#(T.2`Q,#`@.3DY.2`Y.3DY"C(@,2`P(#(@
  501. XM+3$@,"`P(#`@,"XP,#`@,"`P(#`*"2`R-S4@,3DS(#(W.2`Q.3,@.3DY.2`Y
  502. XM.3DY"C(@,2`P(#(@+3$@,"`P(#`@,"XP,#`@,"`P(#`*"2`S-2`R,3`@,3$Y
  503. XM(#(R-R`Y.3DY(#DY.3D*,B`Q(#`@,B`M,2`P(#`@,"`P+C`P,"`P(#`@,`H)
  504. XM(#(U-B`Q-#4@,C@Q(#$U,"`Y.3DY(#DY.3D*,B`Q(#`@,B`M,2`P(#`@,"`P
  505. XM+C`P,"`P(#`@,`H)(#(W."`Q-C,@,C<X(#$X-"`Y.3DY(#DY.3D*,B`Q(#`@
  506. XM,B`M,2`P(#`@,"`P+C`P,"`P(#`@,`H)(#(W."`Q-C,@,C4S(#$U-R`Y.3DY
  507. XM(#DY.3D*,B`Q(#`@,B`M,2`P(#`@,"`P+C`P,"`P(#`@,`H)(#(T.2`Q-C<@
  508. XM,C<Y(#$V,R`Y.3DY(#DY.3D*,B`Q(#`@,B`M,2`P(#`@,"`P+C`P,"`P(#`@
  509. XM,`H)(#$S."`Q-C0@,3<X(#$W,2`Y.3DY(#DY.3D*,B`Q(#`@,B`M,2`P(#`@
  510. XM,"`P+C`P,"`P(#`@,`H)(#$W,R`Q-S$@,C8U(#$U-2`R-SD@,34R(#(X,R`Q
  511. XM-3`@.3DY.2`Y.3DY"C(@,2`P(#(@+3$@,"`P(#`@,"XP,#`@,"`P(#`*"2`Q
  512. XM-34@,38S(#(U-B`Q-#4@.3DY.2`Y.3DY"C(@,2`P(#(@+3$@,"`P(#`@,"XP
  513. XM,#`@,"`P(#`*"2`Q-S`@,3@Q(#(U,2`Q-C<@.3DY.2`Y.3DY"C(@,2`P(#(@
  514. XM+3$@,"`P(#`@,"XP,#`@,"`P(#`*"2`T,"`Q,#8@,3(T(#$R,R`Y.3DY(#DY
  515. XM.3D*,B`Q(#`@,B`M,2`P(#`@,"`P+C`P,"`P(#`@,`H)(#(V-2`Q-#8@,C8U
  516. XM(#$T-B`R-C4@,3$T(#DY.3D@.3DY.0HR(#$@,"`R("TQ(#`@,"`P(#`N,#`P
  517. XM(#`@,"`P"@D@,C8Y(#$X-"`R.#8@,3@T(#DY.3D@.3DY.0HR(#$@,"`R("TQ
  518. XM(#`@,"`P(#`N,#`P(#`@,"`P"@D@,C<Q(#$X."`R.#0@,3@X(#DY.3D@.3DY
  519. XM.0HR(#$@,"`R("TQ(#`@,"`P(#`N,#`P(#`@,"`P"@D@,C4S(#,U,B`S,3`@
  520. XM,S4R(#DY.3D@.3DY.0HR(#$@,"`R("TQ(#`@,"`P(#`N,#`P(#`@,"`P"@D@
  521. XM,C4W(#,T-2`Y.3DY(#DY.3D*,B`Q(#`@,B`M,2`P(#`@,"`P+C`P,"`P(#`@
  522. XM,`H)(#0U(#,U,B`S,30@,S4R(#DY.3D@.3DY.0HR(#$@,"`R("TQ(#`@,"`P
  523. XM(#`N,#`P(#`@,"`P"@D@,C4W(#,T-2`R-3<@,C@W(#DY.3D@.3DY.0HR(#$@
  524. XM,"`R("TQ(#`@,"`P(#`N,#`P(#`@,"`P"@D@,C4W(#,V,"`R-3<@-#$T(#DY
  525. XM.3D@.3DY.0HR(#$@,"`R("TQ(#`@,"`P(#`N,#`P(#`@,"`P"@D@,C4W(#,T
  526. XM-2`S,#@@,S0U(#DY.3D@.3DY.0HR(#$@,"`R("TQ(#`@,"`P(#`N,#`P(#`@
  527. XM,"`P"@D@,C4W(#,V,"`S,#,@,S8P(#DY.3D@.3DY.0HR(#$@,"`Q("TQ(#`@
  528. XM,"`P(#`N,#`P(#`@,"`P"@D@-3(@-3@V(#4S(#4X-B`Y.3DY(#DY.3D*,B`Q
  529. XM(#`@,2`M,2`P(#`@,"`P+C`P,"`P(#`@,`H)(#4S(#4X-B`U,R`U.#<@.3DY
  530. XM.2`Y.3DY"C(@,B`P(#$@+3$@,"`P(#`@,"XP,#`@,"`P(#`*"2`Q-#0@-C`V
  531. XM(#$W.2`V,#8@,3<Y(#8Q-B`Q-#0@-C$V(#$T-"`V,#8@.3DY.2`Y.3DY"C(@
  532. XM,2`P(#$@+3$@,"`P(#`@,"XP,#`@,"`P(#`*"2`Q-C,@-30U(#$V,R`U-#D@
  533. XM.3DY.2`Y.3DY"C(@,2`P(#$@+3$@,"`P(#`@,"XP,#`@,"`P(#`*"2`Q-C,@
  534. XM-3@W(#$V,R`V,#8@.3DY.2`Y.3DY"C(@,2`P(#$@+3$@,"`P(#`@,"XP,#`@
  535. XM,"`P(#`*"2`U,B`U.#8@,3DV(#4X-B`Y.3DY(#DY.3D*,B`Q(#`@,2`M,2`P
  536. XM(#`@,"`P+C`P,"`P(#`@,`H)(#4R(#4X-R`Q.38@-3@W(#DY.3D@.3DY.0HR
  537. XM(#$@,"`Q("TQ(#`@,"`P(#`N,#`P(#`@,"`P"@D@-3(@-3@W(#$Y-B`U.#<@
  538. XM.3DY.2`Y.3DY"C(@,2`P(#$@+3$@,"`P(#`@,"XP,#`@,"`P(#`*"2`U,B`U
  539. XM.#<@,3DV(#4X-R`Y.3DY(#DY.3D*,B`Q(#`@,2`M,2`P(#`@,"`P+C`P,"`P
  540. XM(#`@,`H)(#4R(#4X-R`Q.38@-3@W(#DY.3D@.3DY.0HR(#$@,"`Q("TQ(#`@
  541. XM,"`P(#`N,#`P(#`@,"`P"@D@-3(@-3@W(#$Y-B`U.#<@.3DY.2`Y.3DY"C(@
  542. XM,2`P(#$@+3$@,"`P(#`@,"XP,#`@,"`P(#`*"2`Q.38@-3@X(#(U,"`T.3@@
  543. XM.3DY.2`Y.3DY"C(@,2`P(#$@+3$@,"`P(#`@,"XP,#`@,"`P(#`*"2`Q.38@
  544. XM-3@W(#(U,2`T.3<@.3DY.2`Y.3DY"C(@,2`P(#$@+3$@,"`P(#`@,"XP,#`@
  545. XM,"`P(#`*"2`Q.38@-3@V(#(U,2`T.34@.3DY.2`Y.3DY"C(@,2`P(#$@+3$@
  546. XM,"`P(#`@,"XP,#`@,"`P(#`*"2`Q.38@-3@V(#$Y-B`V,#(@.3DY.2`Y.3DY
  547. XM"C(@,2`P(#$@+3$@,"`P(#`@,"XP,#`@,"`P(#`*"2`Q.#(@-#DU(#(U,2`T
  548. XM.34@.3DY.2`Y.3DY"C(@,2`P(#$@+3$@,"`P(#`@,"XP,#`@,"`P(#`*"2`Q
  549. XM.38@-3@V(#(U,2`T.34@.3DY.2`Y.3DY"C(@,2`P(#$@+3$@,"`P(#`@,"XP
  550. XM,#`@,"`P(#`*"2`Q-#0@-#DU(#4S(#4X-B`Y.3DY(#DY.3D*,B`Q(#`@,2`M
  551. XM,2`P(#`@,"`P+C`P,"`P(#`@,`H)(#$V,R`U-#<@,3@Y(#0W,"`Y.3DY(#DY
  552. XM.3D*,B`Q(#`@,2`M,2`P(#`@,"`P+C`P,"`P(#`@,`H)(#$V,R`U-#<@,3,X
  553. XM(#0W,"`Y.3DY(#DY.3D*,B`Q(#`@,2`M,2`P(#`@,"`P+C`P,"`P(#`@,`H)
  554. XM(#$X.2`V,#(@,C`U(#8P,B`Y.3DY(#DY.3D*,B`Q(#`@,2`M,2`P(#`@,"`P
  555. XM+C`P,"`P(#`@,`H)(#$Y,2`V,#4@,C`S(#8P-2`Y.3DY(#DY.3D*,B`Q(#`@
  556. XM,2`M,2`P(#`@,"`P+C`P,"`P(#`@,`H)(#$Y-"`V,#@@,3DY(#8P."`Y.3DY
  557. XM(#DY.3D*,R`R(#`@,B`M,2`P(#`@,"`P+C`P,"`P(#`*"2`T-2`S-3(@-#$@
  558. XM,S8R(#4R(#,X,R`W.2`S-S`@.#0@,S,W(#<Q(#,R,R`U,2`S-#D@-SD@,SDV
  559. XM(#$R,R`S-C,@,3(U(#,S,"`Q,#0@,S$U(#DQ(#,U,"`Q,C`@-#`R(#$V-R`S
  560. XM-C(@,38V(#,Q."`Q-#(@,S`U(#$R.2`S-C`@,38Y(#0Q,"`R,3@@,S8S(#(R
  561. XM,"`S,38@,3DS(#(Y,2`Q-S8@,S4W(#(Q-2`T,C<@,C4Q(#,W,R`Y.3DY(#DY
  562. XM.3D*"2`M-C8N.#$S(#$W-2XP.30@-#(N,C$W(#,U-RXR,3D@-#$N,#@X(#,U
  563. XM.2XT-S(@-#$N,#@X(#,V."XX,S,*"2`T,RXP-C0@,S@Q+C`V,R`V,RXU-#@@
  564. XM,S@W+C@W."`W-"XS,CD@,S<W+C@R,R`X-2XR-30@,S8R+C4T-0H)(#@W+C`Y
  565. XM-R`S-#8N,#0U(#@R+C(R.2`S,S$N-CDU(#<W+C0Y-"`S,C(N.3@R(#4X+C8P
  566. XM."`S,C,N.3(R"@D@-3`N.#$S(#,S-RXU-C8@-#@N.3`Y(#,V-BXT-#<@-3DN
  567. XM,#4P(#,Y,2XT.3(@.3@N.38Y(#,Y.2XQ.#0*"2`Q,34N,C$S(#,W-BXX.3(@
  568. XM,3(V+CDP,2`S-34N-C`P(#$R."XV-C8@,S,Y+C$Q-R`Q,C$N-3,T(#,R,RXR
  569. XM-#<*"2`Q,3(N,S8V(#,Q,BXP-#0@.3(N,3DV(#,Q-RXW,S4@.#DN.3$R(#,S
  570. XM.2XV-#0@.3(N,#0V(#,V-BXY-#@*"2`Y.2XU-S,@,SDX+C4X-R`Q-#$N-3@Q
  571. XM(#0P-2XY-3`@,38P+C4P."`S-S<N.3$X(#$W,BXS,3`@,S4P+C0R.0H)(#$W
  572. XM,2XW,3(@,S(Y+C4V,B`Q-C$N,C<X(#,Q,BXR-#@@,34P+C8S,R`S,#(N,#$X
  573. XM(#$R-2XW-S8@,S$R+C(Y-`H)(#$R-2XX,S`@,S0S+CDQ-R`Q,S,N,#$U(#,W
  574. XM-RXV,S0@,30U+C<V,R`T,#DN-S0Q(#$Y-"XQ-38@-#$R+C8W-0H)(#(P.2XY
  575. XM.#`@,S@P+C`X."`R,C(N,C0V(#,U,BXT,34@,C(T+C0W-2`S,C@N.#(X(#(Q
  576. XM-2XU,#0@,S`W+C`X-PH)(#(P,BXQ-3$@,C@X+C@P-"`Q-S0N,S,T(#(Y-RXR
  577. XM-S$@,3<T+C$W-2`S,SDN-#@P(#$W.2XS,C`@,S<X+C`T,`H)(#$Y,BXQ-S<@
  578. XM-#(U+CDX-2`R,C@N.#$Q(#0R-RXU-C4@,C,W+C@T,2`T,30N,#0X("TV-BXX
  579. XM,3,@,3<U+C`Y-`HS(#(@,"`R("TQ(#`@,"`P(#`N,#`P(#`@,`H)(#0W(#,U
  580. XM,"`T-"`S-C`@-30@,S@R(#@R(#,V.2`X-B`S,S4@-S(@,S(R(#4R(#,T-2`X
  581. XM,B`S.30@,3(U(#,V,B`Q,C<@,S(X(#$P-B`S,3(@.3,@,S0Y(#$R,R`T,#`@
  582. XM,38Y(#,V,"`Q-C<@,S$V(#$T-"`S,#,@,3,Q(#,U-R`Q-S(@-#`Y(#(R,"`S
  583. XM-C(@,C(R(#,Q-2`Q.34@,C@Y(#$W.2`S-34@,C$X(#0R-2`R-3,@,S<P(#DY
  584. XM.3D@.3DY.0H)("TV-"XU-38@,3<R+C@T,2`T-"XT-S0@,S4T+CDV-B`T,RXS
  585. XM-#4@,S4W+C(Q.2`T,RXS-#8@,S8V+C4X,`H)(#0U+C,R,2`S-S@N.#$P(#8U
  586. XM+C@P-B`S.#4N-C(U(#<V+C4X-B`S-S4N-3<Q(#@W+C4Q,B`S-C`N,CDR"@D@
  587. XM.#DN,S4T(#,T,RXW.3(@.#0N-#@V(#,R.2XT-#(@-SDN-S4Q(#,R,"XW,CD@
  588. XM-C`N.#8V(#,R,2XV-CD*"2`U,RXP-S`@,S,U+C,Q,R`U,2XQ-C<@,S8T+C$Y
  589. XM-"`V,2XS,#<@,S@Y+C(S.2`Q,#$N,C(W(#,Y-BXY,S$*"2`Q,3<N-#<P(#,W
  590. XM-"XV-#`@,3(Y+C$U."`S-3,N,S0W(#$S,"XY,C,@,S,V+C@V-"`Q,C,N-SDQ
  591. XM(#,R,"XY.30*"2`Q,30N-C(S(#,P.2XW.3(@.30N-#4T(#,Q-2XT.#(@.3(N
  592. XM,38Y(#,S-RXS.3$@.30N,S`S(#,V-"XV.34*"2`Q,#$N.#,P(#,Y-BXS,S0@
  593. XM,30S+C@S."`T,#,N-CDW(#$V,BXW-C8@,S<U+C8V-2`Q-S0N-38W(#,T."XQ
  594. XM-S8*"2`Q-S,N.38Y(#,R-RXS,#D@,38S+C4S-2`S,#DN.3DU(#$U,BXX.3`@
  595. XM,CDY+C<V-2`Q,C@N,#,T(#,Q,"XP-#$*"2`Q,C@N,#@W(#,T,2XV-C0@,3,U
  596. XM+C(W,B`S-S4N,S@R(#$T."XP,C$@-#`W+C0X."`Q.38N-#$S(#0Q,"XT,C(*
  597. XM"2`R,3(N,C,W(#,W-RXX,S4@,C(T+C4P,R`S-3`N,38R(#(R-BXW,S(@,S(V
  598. XM+C4W-2`R,3<N-S8R(#,P-"XX,S0*"2`R,#0N-#`X(#(X-BXU-3$@,3<V+C4Y
  599. XM,2`R.34N,#$X(#$W-BXT,S(@,S,W+C(R-R`Q.#$N-3<W(#,W-2XW.#<*"2`Q
  600. XM.30N-#,T(#0R,RXW,S(@,C,Q+C`V."`T,C4N,S$R(#(T,"XP.3@@-#$Q+C<Y
  601. XM-2`M-C0N-34V(#$W,BXX-#$*-"`P(#`@,C(@,"`M,2`P(#`N,#`P(#0@,C(@
  602. XM,S@V(#(W-"`U-"!"87-I8R!5;'1R82UW:61E8F%N9"!!;G1E;FYA(%-H87!E
  603. XM<P$*-"`P(#`@,3@@,"`M,2`P(#`N,#`P(#0@,3<@,34Y(#(W.2`U,SD@8V]N
  604. XM92!O;B!G<F]U;F0@<&QA;F4!"C0@,"`P(#$X(#`@+3$@,"`P+C`P,"`T(#$W
  605. XM(#DY(#(W.2`T,3D@8V]N:6-A;"!S<&ER86P!"C0@,"`P(#$X(#`@+3$@,"`P
  606. XM+C`P,"`T(#$S(#$R-R`Q.#0@,C$Y(&9L87)E9"!414T@:&]R;@$*-"`P(#`@
  607. XM,3@@,"`M,2`P(#`N,#`P(#0@,3<@.#0@-#`T(#8S-"!&:6=U<F4@24DM,P$*
  608. X`
  609. Xend
  610. END_OF_FILE
  611. if test 7528 -ne `wc -c <'Examples/test2.fig.uu'`; then
  612.     echo shar: \"'Examples/test2.fig.uu'\" unpacked with wrong size!
  613. fi
  614. # end of 'Examples/test2.fig.uu'
  615. fi
  616. if test -f 'e_addpt.c' -a "${1}" != "-c" ; then 
  617.   echo shar: Will not clobber existing file \"'e_addpt.c'\"
  618. else
  619. echo shar: Extracting \"'e_addpt.c'\" \(7758 characters\)
  620. sed "s/^X//" >'e_addpt.c' <<'END_OF_FILE'
  621. X/*
  622. X * FIG : Facility for Interactive Generation of figures
  623. X * Copyright (c) 1985 by Supoj Sutanthavibul
  624. X *
  625. X * "Permission to use, copy, modify, distribute, and sell this software and its
  626. X * documentation for any purpose is hereby granted without fee, provided that
  627. X * the above copyright notice appear in all copies and that both the copyright
  628. X * notice and this permission notice appear in supporting documentation. 
  629. X * No representations are made about the suitability of this software for 
  630. X * any purpose.  It is provided "as is" without express or implied warranty."
  631. X */
  632. X
  633. X#include "fig.h"
  634. X#include "resources.h"
  635. X#include "mode.h"
  636. X#include "object.h"
  637. X#include "paintop.h"
  638. X#include "u_create.h"
  639. X#include "u_elastic.h"
  640. X#include "u_search.h"
  641. X#include "w_canvas.h"
  642. X#include "w_mousefun.h"
  643. Xextern void    force_positioning(), force_nopositioning();
  644. Xextern void    force_anglegeom(), force_noanglegeom();
  645. X
  646. Xstatic int    init_point_adding();
  647. Xstatic int    fix_linepoint_adding();
  648. Xstatic int    fix_splinepoint_adding();
  649. Xstatic int    init_linepointadding();
  650. Xstatic int    init_splinepointadding();
  651. Xstatic int    find_endpoints();
  652. X
  653. Xpoint_adding_selected()
  654. X{
  655. X    set_mousefun("break/add here", "", "");
  656. X    canvas_kbd_proc = null_proc;
  657. X    canvas_locmove_proc = null_proc;
  658. X    init_searchproc_left(init_point_adding);
  659. X    canvas_leftbut_proc = object_search_left;
  660. X    canvas_middlebut_proc = null_proc;
  661. X    canvas_rightbut_proc = null_proc;
  662. X    set_cursor(pick9_cursor);
  663. X    force_nopositioning();
  664. X    force_anglegeom();
  665. X    constrained = MOVE_ARB;
  666. X}
  667. X
  668. Xstatic int
  669. Xinit_point_adding(p, type, x, y, px, py)
  670. X    char       *p;
  671. X    int            type;
  672. X    int            x, y;
  673. X    int            px, py;
  674. X{
  675. X    set_action_on();
  676. X    set_mousefun("place new point", "", "cancel");
  677. X    draw_mousefun_canvas();
  678. X    set_temp_cursor(null_cursor);
  679. X    win_setmouseposition(canvas_win, px, py);
  680. X    switch (type) {
  681. X    case O_POLYLINE:
  682. X    cur_l = (F_line *) p;
  683. X    /* the search routine will ensure that we don't have a box */
  684. X    init_linepointadding(px, py);
  685. X    break;
  686. X    case O_SPLINE:
  687. X    cur_s = (F_spline *) p;
  688. X    init_splinepointadding(px, py);
  689. X    break;
  690. X    default:
  691. X    return;
  692. X    }
  693. X    force_positioning();
  694. X    /* draw in rubber-band line */
  695. X    elastic_linelink();
  696. X
  697. X    if (left_point == NULL || right_point == NULL) {
  698. X    if (latexline_mode || latexarrow_mode) {
  699. X        canvas_locmove_proc = latex_line;
  700. X        return;
  701. X    }
  702. X    if (mountain_mode || manhattan_mode) {
  703. X        canvas_locmove_proc = constrainedangle_line;
  704. X        return;
  705. X    }
  706. X    } else {
  707. X    force_noanglegeom();
  708. X    }
  709. X    canvas_locmove_proc = reshaping_line;
  710. X}
  711. X
  712. Xstatic
  713. Xwrapup_pointadding()
  714. X{
  715. X    reset_action_on();
  716. X    point_adding_selected();
  717. X    draw_mousefun_canvas();
  718. X}
  719. X
  720. Xstatic
  721. Xcancel_pointadding()
  722. X{
  723. X    elastic_linelink();
  724. X    wrapup_pointadding();
  725. X}
  726. X
  727. Xstatic
  728. Xcancel_line_pointadding()
  729. X{
  730. X    if (left_point != NULL && right_point != NULL)
  731. X    pw_vector(canvas_win, left_point->x, left_point->y,
  732. X          right_point->x, right_point->y, INV_PAINT,
  733. X          cur_l->thickness, cur_l->style, cur_l->style_val,
  734. X          cur_l->color);
  735. X    cancel_pointadding();
  736. X}
  737. X
  738. X/**************************  spline  *******************************/
  739. X
  740. Xstatic int
  741. Xinit_splinepointadding(px, py)
  742. X    int            px, py;
  743. X{
  744. X    find_endpoints(cur_s->points, px, py, &left_point, &right_point);
  745. X
  746. X    cur_x = fix_x = px;
  747. X    cur_y = fix_y = py;
  748. X    if (left_point == NULL && closed_spline(cur_s)) {
  749. X    /* The added_point is between the 1st and 2nd point. */
  750. X    left_point = right_point;
  751. X    right_point = right_point->next;
  752. X    }
  753. X    canvas_leftbut_proc = fix_splinepoint_adding;
  754. X    canvas_rightbut_proc = cancel_pointadding;
  755. X}
  756. X
  757. Xstatic
  758. Xfix_splinepoint_adding(x, y)
  759. X    int            x, y;
  760. X{
  761. X    F_point       *p;
  762. X
  763. X    (*canvas_locmove_proc) (x, y);
  764. X    if ((p = create_point()) == NULL) {
  765. X    wrapup_pointadding();
  766. X    return;
  767. X    }
  768. X    p->x = cur_x;
  769. X    p->y = cur_y;
  770. X    elastic_linelink();
  771. X    splinepoint_adding(cur_s, left_point, p, right_point);
  772. X    wrapup_pointadding();
  773. X}
  774. X
  775. X/*
  776. X * Added_point is always inserted between left_point and
  777. X * right_point, except in two cases. (1) left_point is NULL, the added_point
  778. X * will be prepended to the list of points. This case will never occur if the
  779. X * spline is closed (periodic). (2) right_point is NULL, the added_point will
  780. X * be appended to the end of the list.
  781. X */
  782. X
  783. Xsplinepoint_adding(spline, left_point, added_point, right_point)
  784. X    F_spline       *spline;
  785. X    F_point       *left_point, *added_point, *right_point;
  786. X{
  787. X    F_control       *c;
  788. X
  789. X    if (int_spline(spline)) {    /* Interpolated spline */
  790. X    if ((c = create_cpoint()) == NULL)
  791. X        return;
  792. X    }
  793. X    set_temp_cursor(wait_cursor);
  794. X    mask_toggle_splinemarker(spline);
  795. X    draw_spline(spline, ERASE); /* erase old spline */
  796. X    if (left_point == NULL) {
  797. X    added_point->next = spline->points;
  798. X    spline->points = added_point;
  799. X    } else {
  800. X    added_point->next = right_point;
  801. X    left_point->next = added_point;
  802. X    }
  803. X
  804. X    if (int_spline(spline)) {    /* Interpolated spline */
  805. X    c->next = spline->controls;
  806. X    spline->controls = c;
  807. X    remake_control_points(spline);
  808. X    }
  809. X    draw_spline(spline, PAINT); /* draw the modified spline */
  810. X    mask_toggle_splinemarker(spline);
  811. X    clean_up();
  812. X    set_modifiedflag();
  813. X    set_last_prevpoint(left_point);
  814. X    set_last_selectedpoint(added_point);
  815. X    set_action_object(F_ADD_POINT, O_SPLINE);
  816. X    set_latestspline(spline);
  817. X    reset_cursor();
  818. X}
  819. X
  820. X/***************************  line  ********************************/
  821. X
  822. Xstatic int
  823. Xinit_linepointadding(px, py)
  824. X    int            px, py;
  825. X{
  826. X    find_endpoints(cur_l->points, px, py, &left_point, &right_point);
  827. X
  828. X    /* set cur_x etc at new point coords */
  829. X    cur_x = fix_x = px;
  830. X    cur_y = fix_y = py;
  831. X    if (left_point == NULL && cur_l->type == T_POLYGON) {
  832. X    left_point = right_point;
  833. X    right_point = right_point->next;
  834. X    }
  835. X    /* erase line segment where new point is */
  836. X    if (left_point != NULL && right_point != NULL)
  837. X    pw_vector(canvas_win, left_point->x, left_point->y,
  838. X          right_point->x, right_point->y, ERASE,
  839. X          cur_l->thickness, cur_l->style, cur_l->style_val,
  840. X          cur_l->color);
  841. X
  842. X    canvas_leftbut_proc = fix_linepoint_adding;
  843. X    canvas_rightbut_proc = cancel_line_pointadding;
  844. X}
  845. X
  846. Xstatic
  847. Xfix_linepoint_adding(x, y)
  848. X    int x, y;
  849. X{
  850. X    F_point       *p;
  851. X
  852. X    (*canvas_locmove_proc) (x, y);
  853. X    if ((p = create_point()) == NULL) {
  854. X    wrapup_pointadding();
  855. X    return;
  856. X    }
  857. X    p->x = cur_x;
  858. X    p->y = cur_y;
  859. X    elastic_linelink();
  860. X    linepoint_adding(cur_l, left_point, p);
  861. X    wrapup_pointadding();
  862. X}
  863. X
  864. Xlinepoint_adding(line, left_point, added_point)
  865. X    F_line       *line;
  866. X    F_point       *left_point, *added_point;
  867. X{
  868. X    mask_toggle_linemarker(line);
  869. X    draw_line(line, ERASE);
  870. X    if (left_point == NULL) {
  871. X    added_point->next = line->points;
  872. X    line->points = added_point;
  873. X    } else {
  874. X    added_point->next = left_point->next;
  875. X    left_point->next = added_point;
  876. X    }
  877. X    draw_line(line, PAINT);
  878. X    clean_up();
  879. X    mask_toggle_linemarker(line);
  880. X    set_action_object(F_ADD_POINT, O_POLYLINE);
  881. X    set_latestline(line);
  882. X    set_last_prevpoint(left_point);
  883. X    set_last_selectedpoint(added_point);
  884. X    set_modifiedflag();
  885. X}
  886. X
  887. X/*******************************************************************/
  888. X
  889. X/*
  890. X * If (x,y) is close to a point, q, fp points to q and sp points to q->next
  891. X * (right).  However if q is the first point, fp contains NULL and sp points
  892. X * to q.
  893. X */
  894. X
  895. Xstatic int
  896. Xfind_endpoints(p, x, y, fp, sp)
  897. X    F_point       *p, **fp, **sp;
  898. X    int            x, y;
  899. X{
  900. X    int            d;
  901. X    F_point       *a = NULL, *b = p;
  902. X
  903. X    if (x == b->x && y == b->y) {
  904. X    *fp = a;
  905. X    *sp = b;
  906. X    return;
  907. X    }
  908. X    for (a = p, b = p->next; b != NULL; a = b, b = b->next) {
  909. X    if (x == b->x && y == b->y) {
  910. X        *fp = b;
  911. X        *sp = b->next;
  912. X        return;
  913. X    }
  914. X    if (close_to_vector(a->x, a->y, b->x, b->y, x, y, 1, 1.0, &d, &d)) {
  915. X        *fp = a;
  916. X        *sp = b;
  917. X        return;
  918. X    }
  919. X    }
  920. X    *fp = a;
  921. X    *sp = b;
  922. X}
  923. END_OF_FILE
  924. if test 7758 -ne `wc -c <'e_addpt.c'`; then
  925.     echo shar: \"'e_addpt.c'\" unpacked with wrong size!
  926. fi
  927. # end of 'e_addpt.c'
  928. fi
  929. if test -f 'e_flip.c' -a "${1}" != "-c" ; then 
  930.   echo shar: Will not clobber existing file \"'e_flip.c'\"
  931. else
  932. echo shar: Extracting \"'e_flip.c'\" \(8019 characters\)
  933. sed "s/^X//" >'e_flip.c' <<'END_OF_FILE'
  934. X/*
  935. X * FIG : Facility for Interactive Generation of figures
  936. X * Copyright (c) 1985 by Supoj Sutanthavibul
  937. X *
  938. X * "Permission to use, copy, modify, distribute, and sell this software and its
  939. X * documentation for any purpose is hereby granted without fee, provided that
  940. X * the above copyright notice appear in all copies and that both the copyright
  941. X * notice and this permission notice appear in supporting documentation. 
  942. X * No representations are made about the suitability of this software for 
  943. X * any purpose.  It is provided "as is" without express or implied warranty."
  944. X */
  945. X
  946. X#include "fig.h"
  947. X#include "resources.h"
  948. X#include "mode.h"
  949. X#include "object.h"
  950. X#include "paintop.h"
  951. X#include "u_draw.h"
  952. X#include "u_search.h"
  953. X#include "u_create.h"
  954. X#include "u_list.h"
  955. X#include "w_canvas.h"
  956. X#include "w_mousefun.h"
  957. X
  958. Xstatic int    flip_axis;
  959. Xstatic int    copy;
  960. Xstatic int    init_flip();
  961. Xstatic int    init_copynflip();
  962. Xstatic int    init_fliparc();
  963. Xstatic int    init_flipcompound();
  964. Xstatic int    init_flipellipse();
  965. Xstatic int    init_flipline();
  966. Xstatic int    init_flipspline();
  967. Xstatic int    flip_selected();
  968. Xstatic int    flip_search();
  969. X
  970. Xflip_ud_selected()
  971. X{
  972. X    flip_axis = UD_FLIP;
  973. X    flip_selected();
  974. X}
  975. X
  976. Xflip_lr_selected()
  977. X{
  978. X    flip_axis = LR_FLIP;
  979. X    flip_selected();
  980. X}
  981. X
  982. Xstatic
  983. Xflip_selected()
  984. X{
  985. X    set_mousefun("flip", "copy & flip", "");
  986. X    canvas_kbd_proc = null_proc;
  987. X    canvas_locmove_proc = null_proc;
  988. X    init_searchproc_left(init_flip);
  989. X    init_searchproc_middle(init_copynflip);
  990. X    canvas_leftbut_proc = object_search_left;
  991. X    canvas_middlebut_proc = object_search_middle;
  992. X    canvas_rightbut_proc = null_proc;
  993. X    set_cursor(pick15_cursor);
  994. X}
  995. X
  996. Xstatic
  997. Xinit_flip(p, type, x, y, px, py)
  998. X    char       *p;
  999. X    int            type;
  1000. X    int            x, y;
  1001. X    int            px, py;
  1002. X{
  1003. X    copy = 0;
  1004. X    flip_search(p, type, x, y, px, py);
  1005. X}
  1006. X
  1007. Xstatic
  1008. Xinit_copynflip(p, type, x, y, px, py)
  1009. X    char       *p;
  1010. X    int            type;
  1011. X    int            x, y;
  1012. X    int            px, py;
  1013. X{
  1014. X    copy = 1;
  1015. X    flip_search(p, type, x, y, px, py);
  1016. X}
  1017. X
  1018. Xstatic
  1019. Xflip_search(p, type, x, y, px, py)
  1020. X    char       *p;
  1021. X    int            type;
  1022. X    int            x, y;
  1023. X    int            px, py;
  1024. X{
  1025. X    switch (type) {
  1026. X    case O_POLYLINE:
  1027. X    cur_l = (F_line *) p;
  1028. X    init_flipline(cur_l, px, py);
  1029. X    break;
  1030. X    case O_ARC:
  1031. X    cur_a = (F_arc *) p;
  1032. X    init_fliparc(cur_a, px, py);
  1033. X    break;
  1034. X    case O_ELLIPSE:
  1035. X    cur_e = (F_ellipse *) p;
  1036. X    init_flipellipse(cur_e, px, py);
  1037. X    break;
  1038. X    case O_SPLINE:
  1039. X    cur_s = (F_spline *) p;
  1040. X    init_flipspline(cur_s, px, py);
  1041. X    break;
  1042. X    case O_COMPOUND:
  1043. X    cur_c = (F_compound *) p;
  1044. X    init_flipcompound(cur_c, px, py);
  1045. X    break;
  1046. X    default:
  1047. X    return;
  1048. X    }
  1049. X}
  1050. X
  1051. Xstatic
  1052. Xinit_fliparc(a, px, py)
  1053. X    F_arc       *a;
  1054. X    int            px, py;
  1055. X{
  1056. X    F_arc       *arc;
  1057. X
  1058. X    set_temp_cursor(wait_cursor);
  1059. X    arc = copy_arc(a);
  1060. X    flip_arc(arc, px, py, flip_axis);
  1061. X    if (copy) {
  1062. X    add_arc(arc);
  1063. X    } else {
  1064. X    toggle_arcmarker(a);
  1065. X    draw_arc(a, ERASE);
  1066. X    change_arc(a, arc);
  1067. X    }
  1068. X    draw_arc(arc, PAINT);
  1069. X    toggle_arcmarker(arc);
  1070. X    reset_cursor();
  1071. X}
  1072. X
  1073. Xstatic
  1074. Xinit_flipcompound(c, px, py)
  1075. X    F_compound       *c;
  1076. X    int            px, py;
  1077. X{
  1078. X    F_compound       *compound;
  1079. X
  1080. X    set_temp_cursor(wait_cursor);
  1081. X    compound = copy_compound(c);
  1082. X    flip_compound(compound, px, py, flip_axis);
  1083. X    if (copy) {
  1084. X    add_compound(compound);
  1085. X    } else {
  1086. X    toggle_compoundmarker(c);
  1087. X    draw_compoundelements(c, ERASE);
  1088. X    change_compound(c, compound);
  1089. X    }
  1090. X    draw_compoundelements(compound, PAINT);
  1091. X    toggle_compoundmarker(compound);
  1092. X    reset_cursor();
  1093. X}
  1094. X
  1095. Xstatic
  1096. Xinit_flipellipse(old_e, px, py)
  1097. X    F_ellipse       *old_e;
  1098. X{
  1099. X    F_ellipse       *new_e;
  1100. X
  1101. X    new_e = copy_ellipse(old_e);
  1102. X    flip_ellipse(new_e, px, py, flip_axis);
  1103. X    if (copy) {
  1104. X    add_ellipse(new_e);
  1105. X    } else {
  1106. X    toggle_ellipsemarker(old_e);
  1107. X    draw_ellipse(old_e, ERASE);
  1108. X    change_ellipse(old_e, new_e);
  1109. X    }
  1110. X    draw_ellipse(new_e, PAINT);
  1111. X    toggle_ellipsemarker(new_e);
  1112. X}
  1113. X
  1114. Xstatic
  1115. Xinit_flipline(old_l, px, py)
  1116. X    F_line       *old_l;
  1117. X    int            px, py;
  1118. X{
  1119. X    F_line       *new_l;
  1120. X
  1121. X    new_l = copy_line(old_l);
  1122. X    flip_line(new_l, px, py, flip_axis);
  1123. X    if (copy) {
  1124. X    add_line(new_l);
  1125. X    } else {
  1126. X    toggle_linemarker(old_l);
  1127. X    draw_line(old_l, ERASE);
  1128. X    change_line(old_l, new_l);
  1129. X    }
  1130. X    draw_line(new_l, PAINT);
  1131. X    toggle_linemarker(new_l);
  1132. X}
  1133. X
  1134. Xstatic
  1135. Xinit_flipspline(old_s, px, py)
  1136. X    F_spline       *old_s;
  1137. X    int            px, py;
  1138. X{
  1139. X    F_spline       *new_s;
  1140. X
  1141. X    new_s = copy_spline(old_s);
  1142. X    flip_spline(new_s, px, py, flip_axis);
  1143. X    if (copy) {
  1144. X    add_spline(new_s);
  1145. X    } else {
  1146. X    toggle_splinemarker(old_s);
  1147. X    draw_spline(old_s, ERASE);
  1148. X    change_spline(old_s, new_s);
  1149. X    }
  1150. X    draw_spline(new_s, PAINT);
  1151. X    toggle_splinemarker(new_s);
  1152. X}
  1153. X
  1154. Xflip_line(l, x, y, flip_axis)
  1155. X    F_line       *l;
  1156. X    int            x, y, flip_axis;
  1157. X{
  1158. X    F_point       *p;
  1159. X
  1160. X    switch (flip_axis) {
  1161. X    case UD_FLIP:        /* x axis  */
  1162. X    for (p = l->points; p != NULL; p = p->next)
  1163. X        p->y = y + (y - p->y);
  1164. X    break;
  1165. X    case LR_FLIP:        /* y axis  */
  1166. X    for (p = l->points; p != NULL; p = p->next)
  1167. X        p->x = x + (x - p->x);
  1168. X    break;
  1169. X    }
  1170. X    if (l->type == T_EPS_BOX)
  1171. X    l->eps->flipped = 1 - l->eps->flipped;
  1172. X}
  1173. X
  1174. Xflip_spline(s, x, y, flip_axis)
  1175. X    F_spline       *s;
  1176. X    int            x, y, flip_axis;
  1177. X{
  1178. X    F_point       *p;
  1179. X    F_control       *cp;
  1180. X
  1181. X    switch (flip_axis) {
  1182. X    case UD_FLIP:        /* x axis  */
  1183. X    for (p = s->points; p != NULL; p = p->next)
  1184. X        p->y = y + (y - p->y);
  1185. X    for (cp = s->controls; cp != NULL; cp = cp->next) {
  1186. X        cp->ly = y + (y - cp->ly);
  1187. X        cp->ry = y + (y - cp->ry);
  1188. X    }
  1189. X    break;
  1190. X    case LR_FLIP:        /* y axis  */
  1191. X    for (p = s->points; p != NULL; p = p->next)
  1192. X        p->x = x + (x - p->x);
  1193. X    for (cp = s->controls; cp != NULL; cp = cp->next) {
  1194. X        cp->lx = x + (x - cp->lx);
  1195. X        cp->rx = x + (x - cp->rx);
  1196. X    }
  1197. X    break;
  1198. X    }
  1199. X}
  1200. X
  1201. Xflip_text(t, x, y, flip_axis)
  1202. X    F_text       *t;
  1203. X    int            x, y, flip_axis;
  1204. X{
  1205. X    switch (flip_axis) {
  1206. X    case UD_FLIP:        /* x axis  */
  1207. X    t->base_y = y + (y - t->base_y);
  1208. X    break;
  1209. X    case LR_FLIP:        /* y axis  */
  1210. X    t->base_x = x + (x - t->base_x);
  1211. X    break;
  1212. X    }
  1213. X}
  1214. X
  1215. Xflip_ellipse(e, x, y, flip_axis)
  1216. X    F_ellipse       *e;
  1217. X    int            x, y, flip_axis;
  1218. X{
  1219. X    switch (flip_axis) {
  1220. X    case UD_FLIP:        /* x axis  */
  1221. X    e->direction ^= 1;
  1222. X    e->center.y = y + (y - e->center.y);
  1223. X    e->start.y = y + (y - e->start.y);
  1224. X    e->end.y = y + (y - e->end.y);
  1225. X    break;
  1226. X    case LR_FLIP:        /* y axis  */
  1227. X    e->direction ^= 1;
  1228. X    e->center.x = x + (x - e->center.x);
  1229. X    e->start.x = x + (x - e->start.x);
  1230. X    e->end.x = x + (x - e->end.x);
  1231. X    break;
  1232. X    }
  1233. X    e->angle = - e->angle;
  1234. X}
  1235. X
  1236. Xflip_arc(a, x, y, flip_axis)
  1237. X    F_arc       *a;
  1238. X    int            x, y, flip_axis;
  1239. X{
  1240. X    switch (flip_axis) {
  1241. X    case UD_FLIP:        /* x axis  */
  1242. X    a->direction ^= 1;
  1243. X    a->center.y = y + (y - a->center.y);
  1244. X    a->point[0].y = y + (y - a->point[0].y);
  1245. X    a->point[1].y = y + (y - a->point[1].y);
  1246. X    a->point[2].y = y + (y - a->point[2].y);
  1247. X    break;
  1248. X    case LR_FLIP:        /* y axis  */
  1249. X    a->direction ^= 1;
  1250. X    a->center.x = x + (x - a->center.x);
  1251. X    a->point[0].x = x + (x - a->point[0].x);
  1252. X    a->point[1].x = x + (x - a->point[1].x);
  1253. X    a->point[2].x = x + (x - a->point[2].x);
  1254. X    break;
  1255. X    }
  1256. X}
  1257. X
  1258. Xflip_compound(c, x, y, flip_axis)
  1259. X    F_compound       *c;
  1260. X    int            x, y, flip_axis;
  1261. X{
  1262. X    F_line       *l;
  1263. X    F_arc       *a;
  1264. X    F_ellipse       *e;
  1265. X    F_spline       *s;
  1266. X    F_text       *t;
  1267. X    F_compound       *c1;
  1268. X    int            p, q;
  1269. X
  1270. X    switch (flip_axis) {
  1271. X    case UD_FLIP:        /* x axis  */
  1272. X    p = y + (y - c->nwcorner.y);
  1273. X    q = y + (y - c->secorner.y);
  1274. X    c->nwcorner.y = min2(p, q);
  1275. X    c->secorner.y = max2(p, q);
  1276. X    break;
  1277. X    case LR_FLIP:        /* y axis  */
  1278. X    p = x + (x - c->nwcorner.x);
  1279. X    q = x + (x - c->secorner.x);
  1280. X    c->nwcorner.x = min2(p, q);
  1281. X    c->secorner.x = max2(p, q);
  1282. X    break;
  1283. X    }
  1284. X    for (l = c->lines; l != NULL; l = l->next)
  1285. X    flip_line(l, x, y, flip_axis);
  1286. X    for (a = c->arcs; a != NULL; a = a->next)
  1287. X    flip_arc(a, x, y, flip_axis);
  1288. X    for (e = c->ellipses; e != NULL; e = e->next)
  1289. X    flip_ellipse(e, x, y, flip_axis);
  1290. X    for (s = c->splines; s != NULL; s = s->next)
  1291. X    flip_spline(s, x, y, flip_axis);
  1292. X    for (t = c->texts; t != NULL; t = t->next)
  1293. X    flip_text(t, x, y, flip_axis);
  1294. X    for (c1 = c->compounds; c1 != NULL; c1 = c1->next)
  1295. X    flip_compound(c1, x, y, flip_axis);
  1296. X}
  1297. END_OF_FILE
  1298. if test 8019 -ne `wc -c <'e_flip.c'`; then
  1299.     echo shar: \"'e_flip.c'\" unpacked with wrong size!
  1300. fi
  1301. # end of 'e_flip.c'
  1302. fi
  1303. if test -f 'fig.h' -a "${1}" != "-c" ; then 
  1304.   echo shar: Will not clobber existing file \"'fig.h'\"
  1305. else
  1306. echo shar: Extracting \"'fig.h'\" \(7766 characters\)
  1307. sed "s/^X//" >'fig.h' <<'END_OF_FILE'
  1308. X/*
  1309. X * FIG : Facility for Interactive Generation of figures
  1310. X * Copyright (c) 1985 by Supoj Sutanthavibul
  1311. X *
  1312. X * "Permission to use, copy, modify, distribute, and sell this software and its
  1313. X * documentation for any purpose is hereby granted without fee, provided that
  1314. X * the above copyright notice appear in all copies and that both the copyright
  1315. X * notice and this permission notice appear in supporting documentation. 
  1316. X * No representations are made about the suitability of this software for 
  1317. X * any purpose.  It is provided "as is" without express or implied warranty."
  1318. X */
  1319. X
  1320. X#include <X11/Xos.h>
  1321. X
  1322. X#if XtSpecificationRelease > 4
  1323. X#include <X11/Xfuncs.h>
  1324. X#else
  1325. X
  1326. X/* The following is just a copy of X11/Xosdefs.h and X11/Xfuncs.h (and copyright
  1327. X   notice).  I include it here so xfig can still be compiled under X11R4, since
  1328. X   these files only comes with R5, and I'd like people to still be able to 
  1329. X   compile xfig under R4. */
  1330. X
  1331. X/*
  1332. X * O/S-dependent (mis)feature macro definitions
  1333. X *
  1334. X * $XConsortium: Xosdefs.h,v 1.7 91/07/19 23:22:19 rws Exp $
  1335. X *
  1336. X * Copyright 1991 Massachusetts Institute of Technology
  1337. X *
  1338. X * Permission to use, copy, modify, distribute, and sell this software and its
  1339. X * documentation for any purpose is hereby granted without fee, provided that
  1340. X * the above copyright notice appear in all copies and that both that
  1341. X * copyright notice and this permission notice appear in supporting
  1342. X * documentation, and that the name of M.I.T. not be used in advertising or
  1343. X * publicity pertaining to distribution of the software without specific,
  1344. X * written prior permission.  M.I.T. makes no representations about the
  1345. X * suitability of this software for any purpose.  It is provided "as is"
  1346. X * without express or implied warranty.
  1347. X *
  1348. X * M.I.T. DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE, INCLUDING ALL
  1349. X * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS, IN NO EVENT SHALL M.I.T.
  1350. X * BE LIABLE FOR ANY SPECIAL, INDIRECT OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES
  1351. X * WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION
  1352. X * OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN 
  1353. X * CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
  1354. X */
  1355. X
  1356. X#ifndef _XOSDEFS_H_
  1357. X#define _XOSDEFS_H_
  1358. X
  1359. X/*
  1360. X * X_NOT_STDC_ENV means does not have ANSI C header files.  Lack of this
  1361. X * symbol does NOT mean that the system has stdarg.h.
  1362. X *
  1363. X * X_NOT_POSIX means does not have POSIX header files.  Lack of this
  1364. X * symbol does NOT mean that the POSIX environment is the default.
  1365. X * You may still have to define _POSIX_SOURCE to get it.
  1366. X */
  1367. X
  1368. X#ifdef NOSTDHDRS
  1369. X#define X_NOT_POSIX
  1370. X#define X_NOT_STDC_ENV
  1371. X#endif
  1372. X
  1373. X#ifdef sony
  1374. X#ifndef SYSTYPE_SYSV
  1375. X#define X_NOT_POSIX
  1376. X#endif
  1377. X#endif
  1378. X
  1379. X#ifdef UTEK
  1380. X#define X_NOT_POSIX
  1381. X#define X_NOT_STDC_ENV
  1382. X#endif
  1383. X
  1384. X#ifdef CRAY
  1385. X#define X_NOT_POSIX
  1386. X#endif
  1387. X
  1388. X#ifdef vax
  1389. X#ifndef ultrix            /* assume vanilla BSD */
  1390. X#define X_NOT_POSIX
  1391. X#define X_NOT_STDC_ENV
  1392. X#endif
  1393. X#endif
  1394. X
  1395. X#ifdef luna
  1396. X#define X_NOT_POSIX
  1397. X#define X_NOT_STDC_ENV
  1398. X#endif
  1399. X
  1400. X#ifdef Mips
  1401. X#define X_NOT_POSIX
  1402. X#define X_NOT_STDC_ENV
  1403. X#endif
  1404. X  
  1405. X#ifdef USL
  1406. X#ifdef SYSV /* (release 3.2) */
  1407. X#define X_NOT_POSIX
  1408. X#define X_NOT_STDC_ENV
  1409. X#endif
  1410. X#endif
  1411. X
  1412. X#ifdef SYSV386
  1413. X#ifdef SYSV
  1414. X#define X_NOT_POSIX
  1415. X#define X_NOT_STDC_ENV
  1416. X#endif
  1417. X#endif
  1418. X
  1419. X#ifdef MOTOROLA
  1420. X#ifdef SYSV
  1421. X#define X_NOT_STDC_ENV
  1422. X#endif
  1423. X#endif
  1424. X
  1425. X#endif /* _XOSDEFS_H_ */
  1426. X/*
  1427. X * $XConsortium: Xfuncs.h,v 1.8 91/04/17 09:27:52 rws Exp $
  1428. X * 
  1429. X * Copyright 1990 by the Massachusetts Institute of Technology
  1430. X *
  1431. X * Permission to use, copy, modify, and distribute this software and its
  1432. X * documentation for any purpose and without fee is hereby granted, provided 
  1433. X * that the above copyright notice appear in all copies and that both that 
  1434. X * copyright notice and this permission notice appear in supporting 
  1435. X * documentation, and that the name of M.I.T. not be used in advertising
  1436. X * or publicity pertaining to distribution of the software without specific, 
  1437. X * written prior permission. M.I.T. makes no representations about the 
  1438. X * suitability of this software for any purpose.  It is provided "as is"
  1439. X * without express or implied warranty.
  1440. X *
  1441. X */
  1442. X
  1443. X#ifndef _XFUNCS_H_
  1444. X#define _XFUNCS_H_
  1445. X
  1446. X#ifdef X_USEBFUNCS
  1447. Xvoid bcopy();
  1448. Xvoid bzero();
  1449. Xint bcmp();
  1450. X#else
  1451. X#if (__STDC__ && !defined(X_NOT_STDC_ENV) && !defined(sun) && !defined(macII)) || defined(SVR4) || defined(hpux) || defined(_IBMR2)
  1452. X#include <string.h>
  1453. X#define bcopy(b1,b2,len) memmove(b2, b1, (size_t)(len))
  1454. X#define bzero(b,len) memset(b, 0, (size_t)(len))
  1455. X#define bcmp(b1,b2,len) memcmp(b1, b2, (size_t)(len))
  1456. X#else
  1457. X#ifdef sgi
  1458. X#include <bstring.h>
  1459. X#else
  1460. X#ifdef SYSV
  1461. X#include <memory.h>
  1462. X#if defined(_XBCOPYFUNC) && !defined(macII)
  1463. X#define bcopy _XBCOPYFUNC
  1464. X#define _XNEEDBCOPYFUNC
  1465. X#endif
  1466. Xvoid bcopy();
  1467. X#define bzero(b,len) memset(b, 0, len)
  1468. X#define bcmp(b1,b2,len) memcmp(b1, b2, len)
  1469. X#else /* bsd */
  1470. Xvoid bcopy();
  1471. Xvoid bzero();
  1472. Xint bcmp();
  1473. X#endif /* SYSV */
  1474. X#endif /* sgi */
  1475. X#endif /* __STDC__ and relatives */
  1476. X#endif /* X_USEBFUNCS */
  1477. X
  1478. X#endif /* _XFUNCS_H_ */
  1479. X
  1480. X#endif /* XtSpecificationRelease > 4 */
  1481. X
  1482. X#ifndef X_NOT_STDC_ENV
  1483. X#include <string.h>
  1484. X#define index strchr
  1485. X#define rindex strrchr
  1486. X#else  /* X_NOT_STDC_ENV IS defined */
  1487. X#ifdef SYSV
  1488. X#include <string.h>
  1489. X#define index strchr
  1490. X#define rindex strrchr
  1491. X#else  /* NOT SYSV */
  1492. X#include <strings.h>
  1493. X#define strchr index
  1494. X#define strrchr rindex
  1495. X#endif  /* SYSV */
  1496. X#endif  /* X_NOT_STDC_ENV */
  1497. X
  1498. X#include <sys/stat.h>
  1499. X
  1500. X#if defined(__convex__) && defined(__STDC__)
  1501. X#define S_IFDIR _S_IFDIR
  1502. X#define S_IWRITE _S_IWRITE
  1503. X#endif
  1504. X
  1505. X#ifndef SYSV
  1506. X#ifndef SVR4
  1507. X#include <fcntl.h>
  1508. X#endif
  1509. X#endif
  1510. X
  1511. X#include <pwd.h>
  1512. X#include <signal.h>
  1513. X#include <stdio.h>
  1514. X#include <ctype.h>
  1515. X#include <errno.h>
  1516. X
  1517. Xextern int    errno;
  1518. Xextern int    sys_nerr;
  1519. Xextern char    *sys_errlist[];
  1520. X
  1521. X#include <math.h>    /* for sin(), cos() etc */
  1522. X
  1523. X#if defined(SYS) && defined(SYSV386)
  1524. X#if defined(__STDC__)
  1525. X#ifdef ISC
  1526. Xextern double atof(char const *);
  1527. X#endif  /* ISC */
  1528. X#ifdef SCO
  1529. Xextern double atof(const char *);
  1530. X#else  /* NOT SCO */
  1531. Xextern double atof();
  1532. X#endif /* SCO */
  1533. X#else  /* NOT __STDC__ */
  1534. Xextern double atof();
  1535. X#endif /* __STDC__ */
  1536. X#else  /* NOT defined(SYS) && defined(SYSV386) */
  1537. X#ifdef X_NOT_STDC_ENV
  1538. X#if defined(sun) && !defined(sparc) || defined(titan)
  1539. Xextern double atof();
  1540. Xextern char *getenv();
  1541. X#endif /* (sun) !(sparc) (titan) */
  1542. X#else  /* NOT X_NOT_STDC_ENV */
  1543. X#include <stdlib.h>    /* for atof() and getenv() */
  1544. X#endif /* X_NOT_STDC_ENV */
  1545. X#endif /* defined(SYS) && defined(SYSV386) */
  1546. X
  1547. X#if defined(SYSV) || defined(SVR4) || defined(__osf__) || defined(USE_DIRENT)
  1548. X#define u_int uint
  1549. X#define USE_DIRENT
  1550. X#define DIRSTRUCT    struct dirent
  1551. X#else
  1552. X#define DIRSTRUCT    struct direct
  1553. X#endif
  1554. X
  1555. X/* define PATH_MAX if not already defined */
  1556. X/* taken from the X11R5 server/os/osfonts.c file */
  1557. X#ifndef X_NOT_POSIX
  1558. X#ifdef _POSIX_SOURCE
  1559. X#include <limits.h>
  1560. X#else
  1561. X#if !defined(sun) || defined(sparc)
  1562. X#define _POSIX_SOURCE
  1563. X#include <limits.h>
  1564. X#undef _POSIX_SOURCE
  1565. X#endif /* !defined(sun) || defined(sparc) */
  1566. X#endif /* _POSIX_SOURCE */
  1567. X#endif /* X_NOT_POSIX */
  1568. X
  1569. X#ifndef PATH_MAX
  1570. X#include <sys/param.h>
  1571. X#ifdef MAXPATHLEN
  1572. X#define PATH_MAX MAXPATHLEN
  1573. X#else
  1574. X#define PATH_MAX 1024
  1575. X#endif /* MAXPATHLEN */
  1576. X#endif /* PATH_MAX */
  1577. X
  1578. X#ifndef M_PI
  1579. X#define M_PI    3.14159265358979323846
  1580. X#define M_PI_2    1.57079632679489661923
  1581. X#endif
  1582. X
  1583. X#ifndef M_2PI
  1584. X#define M_2PI    6.28318530717958647692
  1585. X#endif
  1586. X
  1587. X#define        min2(a, b)    (((a) < (b)) ? (a) : (b))
  1588. X#define        max2(a, b)    (((a) > (b)) ? (a) : (b))
  1589. X#define        min3(a,b,c)    ((((a<b)?a:b)<c)?((a<b)?a:b):c)
  1590. X#define        max3(a,b,c)    ((((a>b)?a:b)>c)?((a>b)?a:b):c)
  1591. X#define        round(a)    (int)(((a)<0.0)?(a)-.5:(a)+.5)
  1592. X#define        signof(a)    (((a) < 0) ? -1 : 1)
  1593. X
  1594. X#define        DEF_NAME    "unnamed.fig"
  1595. X
  1596. X/* include only Xlib.h and Intrinsic.h here - use figx.h for widget stuff */
  1597. X
  1598. X#include <X11/Xlib.h>
  1599. X#include <X11/Intrinsic.h>
  1600. X
  1601. X#ifdef NOSTRSTR
  1602. Xextern char *strstr();
  1603. X#endif
  1604. END_OF_FILE
  1605. if test 7766 -ne `wc -c <'fig.h'`; then
  1606.     echo shar: \"'fig.h'\" unpacked with wrong size!
  1607. fi
  1608. # end of 'fig.h'
  1609. fi
  1610. if test -f 'w_cmdpanel.c' -a "${1}" != "-c" ; then 
  1611.   echo shar: Will not clobber existing file \"'w_cmdpanel.c'\"
  1612. else
  1613. echo shar: Extracting \"'w_cmdpanel.c'\" \(7673 characters\)
  1614. sed "s/^X//" >'w_cmdpanel.c' <<'END_OF_FILE'
  1615. X/*
  1616. X * FIG : Facility for Interactive Generation of figures
  1617. X * Copyright (c) 1985 by Supoj Sutanthavibul
  1618. X *
  1619. X * "Permission to use, copy, modify, distribute, and sell this software and its
  1620. X * documentation for any purpose is hereby granted without fee, provided that
  1621. X * the above copyright notice appear in all copies and that both the copyright
  1622. X * notice and this permission notice appear in supporting documentation. 
  1623. X * No representations are made about the suitability of this software for 
  1624. X * any purpose.  It is provided "as is" without express or implied warranty."
  1625. X */
  1626. X
  1627. X#include "fig.h"
  1628. X#include "figx.h"
  1629. X#include "resources.h"
  1630. X#include "mode.h"
  1631. X#include "w_canvas.h"        /* for null_proc() */
  1632. X#include "w_drawprim.h"
  1633. X#include "w_mousefun.h"
  1634. X#include "w_util.h"
  1635. X#include "w_setup.h"
  1636. X
  1637. Xextern        erase_objecthighlight();
  1638. Xextern        emptyfigure();
  1639. Xextern        do_print(), do_print_batch(), do_export(), do_save();
  1640. Xextern void    undo(), redisplay_canvas();
  1641. Xextern void    popup_print_panel(), popup_file_panel(), popup_export_panel();
  1642. X
  1643. Xvoid        init_cmd_panel();
  1644. Xvoid        setup_cmd_panel();
  1645. X
  1646. X/* internal features and definitions */
  1647. X
  1648. X#define cmd_action(z)        (z->cmd_func)(z->widget)
  1649. X#define quick_action(z)        (z->quick_func)(z->widget)
  1650. X#define shift_quick_action(z)    (z->shift_quick_func)(z->widget)
  1651. X
  1652. X/* prototypes */
  1653. Xstatic void    sel_cmd_but();
  1654. Xstatic void    enter_cmd_but();
  1655. Xvoid        quit();
  1656. Xvoid        delete_all_cmd();
  1657. Xvoid        paste();
  1658. X
  1659. X/* cmd panel definitions */
  1660. X#define CMD_LABEL_LEN    16
  1661. Xtypedef struct cmd_switch_struct {
  1662. X    char        label[CMD_LABEL_LEN];    /* label on the button */
  1663. X    char        cmd_name[CMD_LABEL_LEN];    /* command name for resources */
  1664. X    void        (*cmd_func) ();        /* mouse button 1 func */
  1665. X    int            (*quick_func) ();        /* mouse button 3 func */
  1666. X    int            (*shift_quick_func) ();    /* shift-mouse button 3 func */
  1667. X    char        mousefun_l[CMD_LABEL_LEN];    /* label for mouse 1 func */
  1668. X    char        mousefun_r[CMD_LABEL_LEN];    /* label for mouse 3 func */
  1669. X    Widget        widget;            /* widget */
  1670. X}        cmd_sw_info;
  1671. X
  1672. X/* command panel of switches below the lower ruler */
  1673. Xcmd_sw_info cmd_switches[] = {
  1674. X    {"Quit",       "quit", quit, null_proc, null_proc, "Quit", ""},
  1675. X    {"Delete ALL", "delete_all", delete_all_cmd, null_proc, null_proc, 
  1676. X                "Delete all", ""},
  1677. X    {"Undo",       "undo", undo, null_proc, null_proc, "Undo", ""},
  1678. X    {"Redraw",       "redraw", redisplay_canvas, null_proc, null_proc, 
  1679. X                "Redraw", ""},
  1680. X    {"Paste",       "paste", paste, null_proc, null_proc, "Paste", ""},
  1681. X    {"File...",       "file", popup_file_panel, do_save, null_proc, 
  1682. X                "Popup", "Save Shortcut"},
  1683. X    {"Export...",  "export", popup_export_panel, do_export, null_proc, 
  1684. X                "Popup", "Export Shortcut"},
  1685. X    {"Print...",   "print", popup_print_panel, do_print, do_print_batch, 
  1686. X                "Popup","Print Shortcut"},
  1687. X};
  1688. X
  1689. X#define        NUM_CMD_SW  (sizeof(cmd_switches) / sizeof(cmd_sw_info))
  1690. X
  1691. Xstatic XtActionsRec cmd_actions[] =
  1692. X{
  1693. X    {"LeaveCmdSw", (XtActionProc) clear_mousefun},
  1694. X    {"quit", (XtActionProc) quit},
  1695. X    {"delete_all", (XtActionProc) delete_all_cmd},
  1696. X    {"undo", (XtActionProc) undo},
  1697. X    {"redraw", (XtActionProc) redisplay_canvas},
  1698. X    {"paste", (XtActionProc) paste},
  1699. X    {"file", (XtActionProc) popup_file_panel},
  1700. X    {"export", (XtActionProc) popup_export_panel},
  1701. X    {"print", (XtActionProc) popup_print_panel},
  1702. X};
  1703. X
  1704. Xstatic String    cmd_translations =
  1705. X"<Btn1Down>:set()\n\
  1706. X    <Btn1Up>:unset()\n\
  1707. X    <LeaveWindow>:LeaveCmdSw()reset()\n";
  1708. X
  1709. XDeclareStaticArgs(11);
  1710. X
  1711. Xint
  1712. Xnum_cmd_sw()
  1713. X{
  1714. X    return (NUM_CMD_SW);
  1715. X}
  1716. X
  1717. X/* command panel */
  1718. Xvoid
  1719. Xinit_cmd_panel(tool)
  1720. X    Widget        tool;
  1721. X{
  1722. X    register int    i;
  1723. X    register cmd_sw_info *sw;
  1724. X    Widget        beside = NULL;
  1725. X
  1726. X    FirstArg(XtNborderWidth, 0);
  1727. X    NextArg(XtNdefaultDistance, 0);
  1728. X    NextArg(XtNhorizDistance, 0);
  1729. X    NextArg(XtNvertDistance, 0);
  1730. X    NextArg(XtNleft, XtChainLeft);
  1731. X    NextArg(XtNright, XtChainLeft);
  1732. X    NextArg(XtNtop, XtChainTop);
  1733. X    NextArg(XtNbottom, XtChainTop);
  1734. X    cmd_panel = XtCreateWidget("commands", formWidgetClass, tool,
  1735. X                   Args, ArgCount);
  1736. X    XtAppAddActions(tool_app, cmd_actions, XtNumber(cmd_actions));
  1737. X
  1738. X    FirstArg(XtNborderWidth, INTERNAL_BW);
  1739. X    NextArg(XtNfont, button_font);
  1740. X    NextArg(XtNheight, CMDPANEL_HT - 2 * INTERNAL_BW);
  1741. X    NextArg(XtNwidth, CMDPANEL_WD / NUM_CMD_SW - INTERNAL_BW);
  1742. X    NextArg(XtNvertDistance, 0);
  1743. X    NextArg(XtNhorizDistance, 0);
  1744. X    for (i = 0; i < NUM_CMD_SW; ++i) {
  1745. X    sw = &cmd_switches[i];
  1746. X    NextArg(XtNlabel, sw->label);
  1747. X    NextArg(XtNfromHoriz, beside);
  1748. X    sw->widget = XtCreateManagedWidget(sw->cmd_name, commandWidgetClass,
  1749. X                       cmd_panel, Args, ArgCount);
  1750. X    /* setup callback and default actions */
  1751. X    XtAddEventHandler(sw->widget, ButtonReleaseMask, (Boolean) 0,
  1752. X              sel_cmd_but, (XtPointer) sw);
  1753. X    XtAddEventHandler(sw->widget, EnterWindowMask, (Boolean) 0,
  1754. X              enter_cmd_but, (XtPointer) sw);
  1755. X    XtOverrideTranslations(sw->widget,
  1756. X                   XtParseTranslationTable(cmd_translations));
  1757. X    ArgCount -= 3;
  1758. X    NextArg(XtNhorizDistance, -INTERNAL_BW);
  1759. X    beside = sw->widget;
  1760. X    }
  1761. X}
  1762. X
  1763. Xvoid
  1764. Xsetup_cmd_panel()
  1765. X{
  1766. X    register int    i;
  1767. X    register cmd_sw_info *sw;
  1768. X
  1769. X    XDefineCursor(tool_d, XtWindow(cmd_panel), arrow_cursor);
  1770. X
  1771. X    for (i = 0; i < NUM_CMD_SW; ++i) {
  1772. X    sw = &cmd_switches[i];
  1773. X    FirstArg(XtNfont, button_font); /* label font */
  1774. X    SetValues(sw->widget);
  1775. X    /* install the keyboard accelerators for this command button 
  1776. X       from the resources */
  1777. X    /*XtInstallAllAccelerators(sw->widget, tool);*/
  1778. X    }
  1779. X}
  1780. X
  1781. Xstatic void
  1782. Xenter_cmd_but(widget, closure, event, continue_to_dispatch)
  1783. X    Widget        widget;
  1784. X    XtPointer        closure;
  1785. X    XEvent*        event;
  1786. X    Boolean*        continue_to_dispatch;
  1787. X{
  1788. X    cmd_sw_info *sw = (cmd_sw_info *) closure;
  1789. X    clear_mousefun();
  1790. X    draw_mousefun(sw->mousefun_l, "", sw->mousefun_r);
  1791. X}
  1792. X
  1793. Xstatic void
  1794. Xsel_cmd_but(widget, closure, event, continue_to_dispatch)
  1795. X    Widget        widget;
  1796. X    XtPointer        closure;
  1797. X    XEvent*        event;
  1798. X    Boolean*        continue_to_dispatch;
  1799. X{
  1800. X    cmd_sw_info *sw = (cmd_sw_info *) closure;
  1801. X    XButtonEvent button;
  1802. X    
  1803. X    button = event->xbutton;
  1804. X
  1805. X    if ((button.button == Button2) ||
  1806. X    (button.button == Button3 && button.state & Mod1Mask))
  1807. X        return;
  1808. X
  1809. X    if (action_on) {
  1810. X    if (cur_mode == F_TEXT)
  1811. X        finish_text_input();/* finish up any text input */
  1812. X    else {
  1813. X        put_msg("FINISH drawing current object first");
  1814. X        return;
  1815. X    }
  1816. X    } else if (highlighting)
  1817. X    erase_objecthighlight();
  1818. X
  1819. X    if (button.button == Button1)
  1820. X    cmd_action(sw);
  1821. X    else if (button.state & ShiftMask)
  1822. X    shift_quick_action(sw);
  1823. X    else
  1824. X    quick_action(sw);
  1825. X}
  1826. X
  1827. Xstatic char    quit_msg[] = "The current figure is modified.\nDo you want to save it before quitting?";
  1828. X
  1829. Xvoid
  1830. Xquit(w)
  1831. X    Widget        w;
  1832. X{
  1833. X    int            qresult;
  1834. X
  1835. X    if (!emptyfigure() && figure_modified && !aborting) {
  1836. X    XtSetSensitive(w, False);
  1837. X    if ((qresult = popup_query(QUERY_YESNO, quit_msg)) == RESULT_CANCEL) {
  1838. X        XtSetSensitive(w, True);
  1839. X        return;
  1840. X    } else if (qresult == RESULT_YES) {
  1841. X        do_save(w);
  1842. X        /*
  1843. X         * if saving was not successful, figure_modified is still true:
  1844. X         * do not quit!
  1845. X         */
  1846. X        if (figure_modified) {
  1847. X        XtSetSensitive(w, True);
  1848. X        return;
  1849. X        }
  1850. X    }
  1851. X    }
  1852. X    /* delete the cut buffer only if it is in a temporary directory */
  1853. X    if (strncmp(cut_buf_name, TMPDIR, strlen(TMPDIR)) == 0)
  1854. X    unlink(cut_buf_name);
  1855. X
  1856. X    /* delete any batch print file */
  1857. X    if (batch_exists)
  1858. X    unlink(batch_file);
  1859. X
  1860. X    /* free all the GC's */
  1861. X    free_GCs();
  1862. X    XtDestroyWidget(tool);
  1863. X    exit(0);
  1864. X}
  1865. X
  1866. Xvoid
  1867. Xpaste()
  1868. X{
  1869. X    merge_file(cut_buf_name);
  1870. X}
  1871. X
  1872. Xvoid
  1873. Xdelete_all_cmd()
  1874. X{
  1875. X    if (emptyfigure()) {
  1876. X    put_msg("Figure already empty");
  1877. X    return;
  1878. X    }
  1879. X    delete_all();
  1880. X    put_msg("Immediate Undo will restore the figure");
  1881. X    redisplay_canvas();
  1882. X}
  1883. END_OF_FILE
  1884. if test 7673 -ne `wc -c <'w_cmdpanel.c'`; then
  1885.     echo shar: \"'w_cmdpanel.c'\" unpacked with wrong size!
  1886. fi
  1887. # end of 'w_cmdpanel.c'
  1888. fi
  1889. echo shar: End of archive 6 \(of 27\).
  1890. cp /dev/null ark6isdone
  1891. MISSING=""
  1892. for I in 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 ; do
  1893.     if test ! -f ark${I}isdone ; then
  1894.     MISSING="${MISSING} ${I}"
  1895.     fi
  1896. done
  1897. if test "${MISSING}" = "" ; then
  1898.     echo You have unpacked all 27 archives.
  1899.     rm -f ark[1-9]isdone ark[1-9][0-9]isdone
  1900. else
  1901.     echo You still need to unpack the following archives:
  1902.     echo "        " ${MISSING}
  1903. fi
  1904. ##  End of shell archive.
  1905. exit 0
  1906.  
  1907. exit 0 # Just in case...
  1908. -- 
  1909.   // chris@IMD.Sterling.COM       | Send comp.sources.x submissions to:
  1910. \X/  Amiga - The only way to fly! |    sources-x@imd.sterling.com
  1911.  "It's intuitively obvious to the |
  1912.   most casual observer..."        | GCS d+/-- p+ c++ l+ m+ s++/+ g+ w+ t+ r+ x+
  1913.