home *** CD-ROM | disk | FTP | other *** search
/ NetNews Usenet Archive 1992 #16 / NN_1992_16.iso / spool / comp / sys / sun / apps / 1440 < prev    next >
Encoding:
Internet Message Format  |  1992-07-21  |  13.4 KB

  1. Xref: sparky comp.sys.sun.apps:1440 comp.windows.open-look:3189 comp.windows.news:425
  2. Path: sparky!uunet!mcsun!uknet!strath-cs!turing!coulin!hopkins
  3. From: hopkins@turing.ac.uk (Don Hopkins)
  4. Newsgroups: comp.sys.sun.apps,comp.windows.open-look,comp.windows.news
  5. Subject: HyperLook virtual flower garden editor
  6. Message-ID: <HOPKINS.92Jul21224341@delta9.turing.ac.uk>
  7. Date: 21 Jul 92 21:43:41 GMT
  8. References: <HOPKINS.92Jul15050845@delta9.turing.ac.uk>
  9. Sender: usenet@turing.ac.uk (Usenet for nntp)
  10. Organization: The Turing Institute, Ltd.
  11. Lines: 441
  12. In-Reply-To: hopkins@turing.ac.uk's message of 15 Jul 92 05:08:45
  13.  
  14. Here's a new version of the HyperLook "Flowers" stack, a virtual
  15. flower garden editor! I've added a "Photo" button, which copies an EPS
  16. drawing of your current garden onto the clipboard, so you can paste
  17. the flowers into a HyperLook drawing editor!  I also fixed a bug (in
  18. the earlier version I posted) that broke "Copy Stack as Drawing".
  19.  
  20. You can run it under the free HyperLook runtime system:
  21. Trim this message and put it in the file "~/stacks/Flowers.stack".
  22. Then press "Open" on the system stack, and type the stack name "Flowers".
  23. Press the "Help" key over the garden to see the credits!
  24.  
  25. The HyperLook runtime system is availiable for free via anonymous ftp,
  26. from the following systems:
  27.  
  28. turing.com (192.133.90.28)    pub/HyperLook1.5-runtime.tar.Z
  29. ftp.uu.net (137.39.1.9)        graphics/NeWS/HyperLook1.5-runtime.tar.Z
  30.  
  31.     -Don
  32.  
  33. -------- Cut Here --------
  34. % HyperLook stack (c)1992 Turing Institute
  35. % Creator: hopkins
  36. 1.5 HLBEGIN
  37. /Stack(Flowers)()BO
  38. [1 0 0 1 0 0] 473 330 null null DG
  39. /HelpText null def
  40. /Objects [/Field(StackName)(/OnStack {    % --
  41.     MyStack /ObjectName get SetValue
  42. } def
  43.  
  44. /OnOpen {    % --
  45.     OnStack
  46. } def)BO
  47. [1 0 0 1 5 295] 170 30 0 #g null DG
  48. /LucidaSans-BoldItalic 18 0 0.6 0 rgbcolor 1 1 1 rgbcolor true false (Flowers) () DC
  49. /HelpText (This is the title of the stack.) def
  50. /FocusNr 100 def
  51. /GlueN true def
  52. /GlueE false def
  53. /GlueS false def
  54. /GlueW true def
  55. /Editable? false def
  56. /EditTrans? true def
  57. /EditBox? false def
  58. /Number? false def
  59. /MaxLength 0 def
  60. /Adjust /Left def
  61. /ScrollColor 0.6 0.6 0.6 rgbcolor def
  62. /ScrollFill 1 1 1 rgbcolor def
  63. /SelectionColor 0 0 0 rgbcolor def
  64. DO /Button(#IconifyButton)(/Action {    % --
  65.     NIL /IconifyStack MyStack Send
  66. } def
  67.  
  68. /OnMouse {    % --
  69.     NeedsDraw? {
  70.         DrawingData null eq {/OnMouse super send} {
  71.             Path {
  72.                 /Value 0 3 -1 roll 
  73.                 {1 add} if store Draw
  74.             } TrackMouse {
  75.                 /Value 0 store Draw
  76.                 [Value] /Action Self Send
  77.             } if
  78.         } ifelse
  79.     } if
  80. } def)BO
  81. [1 0 0 1 440 300] 20 20 0 #g null DG
  82. /Times-Roman 18 0 0 0 rgbcolor 0.8 0.8 1 rgbcolor true false 0 () DC
  83. /HelpText (This is the close button. Press this button to iconify the stack.) def
  84. /GlueN true def
  85. /GlueE true def
  86. /GlueS false def
  87. /GlueW false def
  88. /Round 10 def
  89. /ButtonWidth 14 def
  90. /ButtonType /Drawing def
  91. /DrawingData BD
  92. MX 0 0 17 16 false Bl false Wh 1 DR [
  93. MX 0 0 16 16 false Bl false Wh 1 DR [
  94. MX 4 4 8 8 true Bl false Wh 1 0 LI
  95. MX 8 0 8 8 true Bl false Wh 1 0 LI
  96. MX 4 0 12 12 true Bl false Wh 1 0 LI
  97. MX 0 4 12 12 true Bl false Wh 1 0 LI
  98. MX 0 8 8 8 true Bl false Wh 1 0 LI
  99. ]ME
  100. MX 1 0 16 16 false Bl false Wh 1 DR [
  101. MX 1 5 4 2 true Bl true Wh 1 0 LI
  102. MX 11 9 4 2 true Bl true Wh 1 0 LI
  103. MX 11 7 4 -2 true Bl true Wh 1 0 LI
  104. MX 1 11 4 -2 true Bl true Wh 1 0 LI
  105. MX 2 8 3 0 true Bl true Wh 1 0 LI
  106. MX 11 8 3 0 true Bl true Wh 1 0 LI
  107. MX 8 5 0 -3 true Bl true Wh 1 0 LI
  108. MX 8 14 0 -3 true Bl true Wh 1 0 LI
  109. MX 11 15 -2 -4 true Bl true Wh 1 0 LI
  110. MX 7 5 -2 -4 true Bl true Wh 1 0 LI
  111. MX 9 5 2 -4 true Bl true Wh 1 0 LI
  112. MX 5 15 2 -4 true Bl true Wh 1 0 LI
  113. MX 7 9 2 -2 true Bl true Bl 1 OV
  114. MX 10 6 6 -6 true Bl false Wh 1 0 LI
  115. MX 0 16 6 -6 true Bl false Wh 1 0 LI
  116. MX 0 0 6 6 true Bl false Wh 1 0 LI
  117. MX 10 10 6 6 true Bl false Wh 1 0 LI
  118. ]ME
  119. ]336 472 ME ED def
  120. /Alternating? true def
  121. DO /StackEditor(#StackEditor)()BO
  122. [1 0 0 1 0 0] 10 10 0 #g null DG
  123. /Times-Roman 18 0 0 0 rgbcolor 1 1 1 rgbcolor false false null () DC
  124. /EditInvisible? true def
  125. /EditorGrid 5 def
  126. /EditBorder 10 def
  127. /PasteTo /Card def
  128. DO] def
  129. /CardList [/Card(#5)()BO
  130. [1 0 0 1 0 0] 0 0 /BackGround(#0)()BO
  131. [1 0 0 1 0 0] 0 0 0 #g null DG
  132. /Objects [] def
  133. DO null DG
  134. /HelpText [(This is the flower editor.\nSelect the flower parameters and pres)
  135. (s "Grow" to make more flowers. Press "Weed" to get rid of all th)
  136. (e flowers.\nPoint at the garden and press "Help" for more info.)]MS def
  137. /Objects [/ColorSelect(Color)()BO
  138. [1 0 0 1 35 270] 80 20 29 #g null DG
  139. /LucidaSans-Bold 14 0 0 0 rgbcolor 1 1 1 rgbcolor true false 1 0.87 0.75 rgbcolor (Color) DC
  140. /HelpText [(Press the left mouse button down on this color selector and sele)
  141. (ct from the color menu, to choose a color for the flowers. \n\nYou)
  142. ( can put your own colors on the menu with the ColorPallet stack )
  143. (\(available from the "Tools" menu of the system stack\).\n)]MS def
  144. /GlueN false def
  145. /GlueE false def
  146. /GlueS false def
  147. /GlueW false def
  148. DO /PullDown(#2)(/Action {
  149.   cvi [exch] /SetValue /Flowers Send
  150. } def)BO
  151. [1 0 0 1 10 210] 105 20 29 #g null DG
  152. /LucidaSans-Bold 14 0 0 0 rgbcolor 0 0.9 0 rgbcolor true false [(1) (2) (5) (10) (20)] (Flowers) DC
  153. /HelpText [(Press the left button down over this pulldown menu to set the nu)
  154. (mber of flowers, or use the slider to the right. Then press "Gro)
  155. (w" to grow some flowers.)]MS def
  156. /GlueN false def
  157. /GlueE false def
  158. /GlueS false def
  159. /GlueW false def
  160. /ShadowSize 3 def
  161. /ShadowColor 0.6 0.6 0.6 rgbcolor def
  162. /MenuFillColor 1 1 1 rgbcolor def
  163. /SetLabel? false def
  164. /MenuFontName /LucidaSans def
  165. /MenuFontSize 14 def
  166. DO /Slider(Flowers)()BO
  167. [1 0 0 1 125 210] 340 20 29 #g null DG
  168. /LucidaSans-Bold 14 0 0 0 rgbcolor 0.8 0.45 0.41 rgbcolor true false 10 () DC
  169. /HelpText [(Click the left mouse button on this slider to set the number of )
  170. (flowers, or use the pulldown menu to the left. Then press "Grow")
  171. ( to grow some flowers.)]MS def
  172. /GlueN false def
  173. /GlueE true def
  174. /GlueS true def
  175. /GlueW true def
  176. /SliderType /Bar def
  177. /Box? false def
  178. /ShowValue? true def
  179. /Vertical? false def
  180. /Editable? true def
  181. /MinValue 1 def
  182. /MaxValue 20 def
  183. /ValueColor 0 0.9 0 rgbcolor def
  184. DO /Button(#7)(/Action {
  185.   [ /Value MyStack /Flowers FindObject send
  186.     /Value MyStack /Petals FindObject send
  187.     /Value MyStack /Color FindObject send
  188.   ] /Grow /Garden Send
  189. } def)BO
  190. [1 0 0 1 125 270] 70 20 29 #g null DG
  191. /LucidaSans-Bold 14 0 0 0 rgbcolor 0 0.9 0 rgbcolor true false 0 (Grow) DC
  192. /HelpText (Click the left mouse button on this button to grow some flowers, according to the current settings.) def
  193. /GlueN false def
  194. /GlueE false def
  195. /GlueS false def
  196. /GlueW false def
  197. /Round 25 def
  198. /ButtonWidth 14 def
  199. /ButtonType /Push def
  200. /DrawingData null def
  201. DO /PullDown(#8)(/Action {
  202.   cvi [exch] /SetValue /Petals Send
  203. } def)BO
  204. [1 0 0 1 10 240] 105 20 29 #g null DG
  205. /LucidaSans-Bold 14 0 0 0 rgbcolor 0 0.9 0 rgbcolor true false [(4) (8) (12) (16) (32)] (Petals) DC
  206. /HelpText [(Press the left button down over this pulldown menu to set the nu)
  207. (mber of flower petals, or use the slider to the right. Then pres)
  208. (s "Grow" to grow some flowers.)]MS def
  209. /GlueN false def
  210. /GlueE false def
  211. /GlueS false def
  212. /GlueW false def
  213. /ShadowSize 3 def
  214. /ShadowColor 0.6 0.6 0.6 rgbcolor def
  215. /MenuFillColor 1 1 1 rgbcolor def
  216. /SetLabel? false def
  217. /MenuFontName /LucidaSans def
  218. /MenuFontSize 14 def
  219. DO /Slider(Petals)()BO
  220. [1 0 0 1 125 240] 340 20 29 #g null DG
  221. /LucidaSans-Bold 14 0 0 0 rgbcolor 0.8 0.45 0.41 rgbcolor true false 8 () DC
  222. /HelpText [(Click the left mouse button on this slider to set the number of )
  223. (flower petals, or use the pulldown menu to the left. Then press )
  224. ("Grow" to grow some flowers.)]MS def
  225. /GlueN false def
  226. /GlueE true def
  227. /GlueS true def
  228. /GlueW true def
  229. /SliderType /Bar def
  230. /Box? false def
  231. /ShowValue? true def
  232. /Vertical? false def
  233. /Editable? true def
  234. /MinValue 3 def
  235. /MaxValue 32 def
  236. /ValueColor 0 0.9 0 rgbcolor def
  237. DO /Button(#10)(/Action {
  238.   NIL /Weed /Garden Send
  239. } def)BO
  240. [1 0 0 1 205 270] 70 20 29 #g null DG
  241. /LucidaSans-Bold 14 0 0 0 rgbcolor 0.8 0.45 0.41 rgbcolor true false 0 (Weed) DC
  242. /HelpText (Click the left mouse button on this button to weed out all the flowers and start with a fresh garden.) def
  243. /GlueN false def
  244. /GlueE false def
  245. /GlueS false def
  246. /GlueW false def
  247. /Round 25 def
  248. /ButtonWidth 14 def
  249. /ButtonType /Push def
  250. /DrawingData null def
  251. DO /Button(#1)(/Action {
  252.   NIL /Photograph /Garden Send
  253. } def)BO
  254. [1 0 0 1 285 270] 70 20 29 #g null DG
  255. /LucidaSans-Bold 14 0 0 0 rgbcolor 1 1 1 rgbcolor true false 0 (Photo) DC
  256. /HelpText [(Click the left mouse button on this button to take a photograph )
  257. (of the garden and copy it to the Clipboard as a drawing. It take)
  258. (s a moment to develop the film. Then you can paste it into a dra)
  259. (wing editor!)]MS def
  260. /GlueN false def
  261. /GlueE false def
  262. /GlueS false def
  263. /GlueW false def
  264. /Round 25 def
  265. /ButtonWidth 14 def
  266. /ButtonType /Push def
  267. /DrawingData null def
  268. DO /Button(Garden)(  /OnMouse {
  269.     OnHelp
  270.   } def
  271.  
  272.   /ReSeed {
  273.     /StartSeed currenttime 1 get def
  274.     /EndSeed StartSeed def
  275.   } def
  276.   
  277.   /StartSeed currenttime 1 get pers def
  278.   /EndSeed StartSeed pers def
  279.  
  280.   /NumberOfFlowers 1 def
  281.   /FlowerColor 1 0 0 rgbcolor def
  282.   /Petals 4 def
  283.  
  284.   /Flowers [] pers def
  285.  
  286.   /PetAngle 90 def
  287.   /PetLength 55 def
  288.  
  289.   /background ColorDict /LightBlue get def
  290.   /black ColorDict /Black get def
  291.   /yellow ColorDict /Yellow get def
  292.   /green ColorDict /Green get def
  293.  
  294.   /Flower { % - => -
  295.     pause
  296.     gsave
  297.       black setcolor
  298.       1 200 div dup scale currentpoint translate
  299.       %stem
  300.       0 10 moveto
  301.       -6 7 -7 70 2 95 curveto
  302.       6 105 17 152 12 183 curveto
  303.       gsave
  304.         black setcolor
  305.         9 setlinewidth
  306.         stroke
  307.       grestore
  308.       5 setlinewidth
  309.       green setcolor
  310.       stroke
  311.       %right leaf
  312.       newpath
  313.       -20 0 moveto
  314.       10 0 lineto
  315.       13 35 43 90 71 120 curveto
  316.       40 105 -3 40 -20 0 curveto
  317.       gsave
  318.         green setcolor fill
  319.       grestore
  320.       black setcolor
  321.       0 setlinewidth stroke
  322.       %left leaf
  323.       -20 0 moveto
  324.       10 0 lineto
  325.       0 40 -30 96 -55 140 curveto
  326.       -35 85 -19 35 -20 0 curveto
  327.       gsave
  328.           green setcolor fill
  329.       grestore
  330.       0 setlinewidth
  331.       stroke
  332.       %petals 
  333.       gsave
  334.         12 183 translate
  335.         1 0.7 scale
  336.         0 setlinewidth
  337.         /dy PetAngle sin PetLength mul def PetAngle 2 div rotate
  338.         Petals {
  339.           newpath 0 0 moveto
  340.           PetLength dy PetLength dy neg 0 0 curveto
  341.           gsave
  342.             FlowerColor setcolor fill
  343.           grestore
  344.           black setcolor stroke %cartoony line around flowers
  345.           PetAngle rotate
  346.         } repeat
  347.         %center of flower
  348.         yellow setcolor
  349.         newpath 0 0 12 0 360 arc fill
  350.         newpath 0 0 12 0 360 arc black setcolor stroke
  351.       grestore
  352.     grestore
  353.   } def
  354.  
  355.   /FlowerBed { % - => -
  356.     gsave
  357.       newpath 0 0 Width Height rectpath clip newpath
  358.       /PetAngle 360 Petals div def
  359.       Width NumberOfFlowers 25 mul sub 2 div 0 moveto
  360.       50 50 scale
  361.       NumberOfFlowers {
  362.         gsave
  363.           random .2 add 2 mul random .2 add 2 mul scale
  364.           Flower
  365.         grestore
  366.         random 0 rmoveto
  367.       } repeat
  368.     grestore
  369.   } def
  370.  
  371.   /Weed {
  372.     /Flowers nullarray def
  373.     ReSeed
  374.     Update
  375.   } def 
  376.  
  377.   /Grow { % flowers petals color => -
  378.     EndSeed srand
  379.     /FlowerColor exch def /Petals exch def /NumberOfFlowers exch def
  380.     gsave
  381.       SetCanvas
  382.       FlowerBed
  383.     grestore
  384.     /Flowers
  385.       Flowers [ [NumberOfFlowers Petals FlowerColor] ] append
  386.     def
  387.     /EndSeed rrand def
  388.   } def
  389.  
  390.   /Draw {
  391.     NeedsDraw? {
  392.       StartSeed srand
  393.       Flowers {
  394.         aload pop
  395.         /FlowerColor exch def /Petals exch def /NumberOfFlowers exch def
  396.         FlowerBed
  397.       } forall
  398.       /EndSeed rrand def
  399.     } if
  400.   } def
  401.  
  402.    /Photograph {
  403.      [\(Please wait while the film develops ...\)] ShowMessage
  404.      CopyAsDrawing
  405.      /Clipboard ShowStack
  406.      [\(The picture is now on the Clipboard, which you can paste into a drawing editor.\)] ShowMessage
  407.    } def
  408.    )BO
  409. [1 0 0 1 10 10] 455 190 29 #g null DG
  410. /LucidaSans-Bold 14 0 0 0 rgbcolor 1 1 1 rgbcolor true false 0 (Grow) DC
  411. /HelpText [(This is the virtual garden and you are the gardener.\n\nThe origin)
  412. (al flower program was written by Brian Reid \(April '85\), then Ri)
  413. (ch Hess added more fun to it \(May '88\). It scattered randomly si)
  414. (zed black and white flowers along the bottom of the screen. They)
  415. ( were about an inch tall.  I adapted it to large colorful flower)
  416. (s. Then I got ambitious because I liked too many different varia)
  417. (tions and I made one where I could change my garden interactivel)
  418. (y, rather than rewriting the code every time I wanted a new colo)
  419. (r. \n\nFeel free to distribute, but give the authors credit.\n\nElai)
  420. (ne "booter" Richards - June 28, 1988\n        Wrote interactive f)
  421. (lower editor for NeWS.\n\nDimitri.Theulings@UK.Sun.COM - July 17, )
  422. (1992\n        Rewritten for OpenWindows v3.\n        Also added a )
  423. ('Weed' option to clear the garden.\n\nDon Hopkins, hopkins@turing.)
  424. (com - July 21, 1992\n        Rewritten for HyperLook. \n)]MS def
  425. /GlueN false def
  426. /GlueE false def
  427. /GlueS false def
  428. /GlueW false def
  429. /Round 25 def
  430. /ButtonWidth 14 def
  431. /ButtonType /Push def
  432. /DrawingData null def
  433. /StartSeed 285311 def
  434. /EndSeed -2088676008 def
  435. /Flowers [[5 8 1 1 0 rgbcolor] [5 8 1 1 0 rgbcolor] [5 4 1 0 0 rgbcolor] [2 12 0.75 0 1 rgbcolor]] def
  436. DO] def
  437. DO] def
  438. /Creator (hopkins) def
  439. /Cdate (Tue 21 Jul 1992 2:53) def
  440. /TrashDelay 10 def
  441. /StackShape BD
  442. MX 0 0 472 328 false Bl false Wh 1 DR [
  443. MX 0 0 472 328 true Bl true 0.8 0.8 1 1 RE
  444. ]120 296 ME ED def
  445. /StackPath {0 0 moveto 0 329 lineto 473 329 lineto 473 0 lineto closepath} def
  446. /SaveBehind false def
  447. /Retained false def
  448. /Drag true def
  449. /Resizable? false def
  450. /ScreenX 668 def
  451. /ScreenY 3 def
  452. /MinWidth 400 def
  453. /MinHeight 300 def
  454. DO HLEND
  455.