home *** CD-ROM | disk | FTP | other *** search
/ BURKS 2 / BURKS_AUG97.ISO / BURKS / LANGUAGE / SMALTALK / TEXTBOOK / PAPVW20 (.txt) < prev    next >
Text File  |  1997-04-22  |  11KB  |  621 lines

  1. 'From VisualWorks(R) Release 2.0 of 4 August 1994 on 3 October 1994 at 10:56:59 am'!
  2.  
  3.  
  4. EngiColorView comment:
  5. '
  6.  
  7. Engi 0.09 (30 September 1994)
  8. Copyright (C) 1994 by Atsushi Aoki
  9.  
  10. '!
  11.  
  12. EngiLauncherIcon comment:
  13. '
  14.  
  15. Engi 0.09 (30 September 1994)
  16. Copyright (C) 1994 by Atsushi Aoki
  17.  
  18. '!
  19.  
  20. EngiClockController comment:
  21. '
  22.  
  23. Engi 0.09 (30 September 1994)
  24. Copyright (C) 1994 by Atsushi Aoki
  25.  
  26. '!
  27.  
  28. EngiBrowser comment:
  29. '
  30.  
  31. Engi 0.09 (30 September 1994)
  32. Copyright (C) 1994 by Atsushi Aoki
  33.  
  34. '!
  35.  
  36. EngiPuzzleController comment:
  37. '
  38.  
  39. Engi 0.09 (30 September 1994)
  40. Copyright (C) 1994 by Atsushi Aoki
  41.  
  42. '!
  43.  
  44. EngiViewBuilderModel comment:
  45. '
  46.  
  47. Engi 0.09 (30 September 1994)
  48. Copyright (C) 1994 by Atsushi Aoki
  49.  
  50. '!
  51.  
  52. EngiGeometric comment:
  53. '
  54.  
  55. Engi 0.09 (30 September 1994)
  56. Copyright (C) 1994 by Atsushi Aoki
  57.  
  58. '!
  59.  
  60. EngiGaugeController comment:
  61. '
  62.  
  63. Engi 0.09 (30 September 1994)
  64. Copyright (C) 1994 by Atsushi Aoki
  65.  
  66. '!
  67.  
  68. EngiCalculatorModel comment:
  69. '
  70.  
  71. Engi 0.09 (30 September 1994)
  72. Copyright (C) 1994 by Atsushi Aoki
  73.  
  74. '!
  75.  
  76. EngiDisplayView comment:
  77. '
  78.  
  79. Engi 0.09 (30 September 1994)
  80. Copyright (C) 1994 by Atsushi Aoki
  81.  
  82. '!
  83.  
  84. EngiTopView comment:
  85. '
  86.  
  87. Engi 0.09 (30 September 1994)
  88. Copyright (C) 1994 by Atsushi Aoki
  89.  
  90. '!
  91.  
  92.  
  93. !EngiTopView methodsFor: 'scheduling'!
  94.  
  95. closeAndUnschedule
  96.     self topComponent isNil ifFalse: [self topComponent controller closeAndUnschedule]!
  97.  
  98. popUp: aBooleanOrNil label: labelString 
  99.     | topWindow compositePart aModel trueButton aRectangle |
  100.     topWindow := ScheduledWindow new.
  101.     topWindow model: model.
  102.     topWindow minimumSize: extent.
  103.     topWindow controller: EngiTopPreemptor new.
  104.     compositePart := CompositePart new.
  105.     aModel := ValueHolder new.
  106.     trueButton := Button trigger.
  107.     aBooleanOrNil = true ifTrue: [trueButton beDefault].
  108.     trueButton label: labelString.
  109.     trueButton model: ((PluggableAdaptor on: aModel)
  110.             getBlock: [:m | false]
  111.             putBlock: 
  112.                 [:m :v | 
  113.                 aModel value: true.
  114.                 self closeAndUnschedule]
  115.             updateBlock: [:m :a :v | false]).
  116.     compositePart add: self in: (self frameFraction: (0 @ 0 corner: 1 @ 1)
  117.             offset: (0 @ 0 corner: 0 @ -40)).
  118.     compositePart add: trueButton in: (self frameFraction: (0.5 @ 1 corner: 0.5 @ 1)
  119.             offset: (-40 @ -35 corner: 40 @ -5)).
  120.     topWindow component: compositePart.
  121.     aRectangle := Point zero extent: (topWindow minimumSize max: self defaultPopUpMinimumSize).
  122.     aRectangle := aRectangle align: aRectangle center with: InputState default mousePoint.
  123.     topWindow openTransientIn: aRectangle type: #dialog.
  124.     ^aModel value!
  125.  
  126. popUp: aBooleanOrNil trueLabel: trueString falseLabel: falseString 
  127.     | topWindow compositePart aModel trueButton falseButton aRectangle |
  128.     topWindow := ScheduledWindow new.
  129.     topWindow model: model.
  130.     topWindow minimumSize: extent.
  131.     topWindow controller: EngiTopPreemptor new.
  132.     compositePart := CompositePart new.
  133.     aModel := ValueHolder new.
  134.     trueButton := Button trigger.
  135.     aBooleanOrNil = true ifTrue: [trueButton beDefault].
  136.     trueButton label: trueString.
  137.     trueButton model: ((PluggableAdaptor on: aModel)
  138.             getBlock: [:m | false]
  139.             putBlock: 
  140.                 [:m :v | 
  141.                 aModel value: true.
  142.                 self closeAndUnschedule]
  143.             updateBlock: [:m :a :v | false]).
  144.     falseButton := Button trigger.
  145.     aBooleanOrNil = false ifTrue: [falseButton beDefault].
  146.     falseButton label: falseString.
  147.     falseButton model: ((PluggableAdaptor on: aModel)
  148.             getBlock: [:m | false]
  149.             putBlock: 
  150.                 [:m :v | 
  151.                 aModel value: false.
  152.                 self closeAndUnschedule]
  153.             updateBlock: [:m :a :v | false]).
  154.     compositePart add: self in: (self frameFraction: (0 @ 0 corner: 1 @ 1)
  155.             offset: (0 @ 0 corner: 0 @ -40)).
  156.     compositePart add: trueButton in: (self frameFraction: (0.3 @ 1 corner: 0.3 @ 1)
  157.             offset: (-40 @ -35 corner: 40 @ -5)).
  158.     compositePart add: falseButton in: (self frameFraction: (0.7 @ 1 corner: 0.7 @ 1)
  159.             offset: (-40 @ -35 corner: 40 @ -5)).
  160.     topWindow component: compositePart.
  161.     aRectangle := Point zero extent: (topWindow minimumSize max: self defaultPopUpMinimumSize).
  162.     aRectangle := aRectangle align: aRectangle center with: InputState default mousePoint.
  163.     topWindow openTransientIn: aRectangle type: #dialog.
  164.     ^aModel value! !
  165.  
  166. EngiDisplayController comment:
  167. '
  168.  
  169. Engi 0.09 (30 September 1994)
  170. Copyright (C) 1994 by Atsushi Aoki
  171.  
  172. '!
  173.  
  174. EngiTopPreemptor comment:
  175. '
  176.  
  177. Engi 0.09 (30 September 1994)
  178. Copyright (C) 1994 by Atsushi Aoki
  179.  
  180. '!
  181.  
  182. EngiMenuMaker comment:
  183. '
  184.  
  185. Engi 0.09 (30 September 1994)
  186. Copyright (C) 1994 by Atsushi Aoki
  187.  
  188. '!
  189.  
  190. EngiGaugeView comment:
  191. '
  192.  
  193. Engi 0.09 (30 September 1994)
  194. Copyright (C) 1994 by Atsushi Aoki
  195.  
  196. '!
  197.  
  198. EngiLauncherView comment:
  199. '
  200.  
  201. Engi 0.09 (30 September 1994)
  202. Copyright (C) 1994 by Atsushi Aoki
  203.  
  204. '!
  205.  
  206. EngiCalendarModel comment:
  207. '
  208.  
  209. Engi 0.09 (30 September 1994)
  210. Copyright (C) 1994 by Atsushi Aoki
  211.  
  212. '!
  213.  
  214. EngiViewBuilderController comment:
  215. '
  216.  
  217. Engi 0.09 (30 September 1994)
  218. Copyright (C) 1994 by Atsushi Aoki
  219.  
  220. '!
  221.  
  222. EngiCalendarController comment:
  223. '
  224.  
  225. Engi 0.09 (30 September 1994)
  226. Copyright (C) 1994 by Atsushi Aoki
  227.  
  228. '!
  229.  
  230. EngiSystem comment:
  231. '
  232.  
  233. Engi 0.09 (30 September 1994)
  234. Copyright (C) 1994 by Atsushi Aoki
  235.  
  236. '!
  237.  
  238.  
  239. !EngiSystem class methodsFor: 'version'!
  240.  
  241. date
  242.     ^'30 September 1994' copy!
  243.  
  244. version
  245.     ^'0.09' copy! !
  246.  
  247. !EngiSystem class methodsFor: 'saving'!
  248.  
  249. save
  250.     "EngiSystem save."
  251.  
  252.     | allClasses saveDirectory separatorString extensionString baseString fileNames fileNo fileName writeStream |
  253.     allClasses := self classes.
  254.     saveDirectory := self saveDirectory.
  255.     separatorString := String with: Filename separator.
  256.     extensionString := '.st'.
  257.     baseString := '0000'.
  258.     fileNames := OrderedCollection new.
  259.     fileNo := 1.
  260.     self classes
  261.         do: 
  262.             [:each | 
  263.             | stream filename file |
  264.             stream := WriteStream on: (String new: 12).
  265.             stream nextPutAll: self system.
  266.             baseString size - fileNo printString size timesRepeat: [stream nextPutAll: '0'].
  267.             stream nextPutAll: fileNo printString.
  268.             stream nextPutAll: extensionString.
  269.             fileNames add: stream contents.
  270.             filename := Filename defaultDirectoryName , saveDirectory asString.
  271.             filename := filename , separatorString , stream contents.
  272.             file := SourceCodeStream on: (Filename named: filename) writeStream.
  273.             [self privateSaveClass: each into: file]
  274.                 valueNowOrOnUnwindDo: [file close].
  275.             fileNo := fileNo + 1].
  276.     fileName := Filename defaultDirectoryName , saveDirectory asString.
  277.     fileName := fileName , separatorString , self system , baseString , extensionString.
  278.     Transcript cr; show: self system , ' -> ' , fileName asString.
  279.     writeStream := (Filename named: fileName) writeStream.
  280.     [self
  281.         privateSaveInstallation: allClasses
  282.         into: writeStream
  283.         files: fileNames]
  284.         valueNowOrOnUnwindDo: [writeStream close]! !
  285.  
  286. EngiGraphicsState comment:
  287. '
  288.  
  289. Engi 0.09 (30 September 1994)
  290. Copyright (C) 1994 by Atsushi Aoki
  291.  
  292. '!
  293.  
  294. EngiEncapsulator comment:
  295. '
  296.  
  297. Engi 0.09 (30 September 1994)
  298. Copyright (C) 1994 by Atsushi Aoki
  299.  
  300. '!
  301.  
  302. EngiCalculatorDisplay comment:
  303. '
  304.  
  305. Engi 0.09 (30 September 1994)
  306. Copyright (C) 1994 by Atsushi Aoki
  307.  
  308. '!
  309.  
  310. EngiVariable comment:
  311. '
  312.  
  313. Engi 0.09 (30 September 1994)
  314. Copyright (C) 1994 by Atsushi Aoki
  315.  
  316. '!
  317.  
  318. EngiTextModel comment:
  319. '
  320.  
  321. Engi 0.09 (30 September 1994)
  322. Copyright (C) 1994 by Atsushi Aoki
  323.  
  324. '!
  325.  
  326. EngiFontModel comment:
  327. '
  328.  
  329. Engi 0.09 (30 September 1994)
  330. Copyright (C) 1994 by Atsushi Aoki
  331.  
  332. '!
  333.  
  334. EngiGaugeModel comment:
  335. '
  336.  
  337. Engi 0.09 (30 September 1994)
  338. Copyright (C) 1994 by Atsushi Aoki
  339.  
  340. '!
  341.  
  342. EngiClockModel comment:
  343. '
  344.  
  345. Engi 0.09 (30 September 1994)
  346. Copyright (C) 1994 by Atsushi Aoki
  347.  
  348. '!
  349.  
  350. EngiViewBuilderView comment:
  351. '
  352.  
  353. Engi 0.09 (30 September 1994)
  354. Copyright (C) 1994 by Atsushi Aoki
  355.  
  356. '!
  357.  
  358. EngiCalculatorController comment:
  359. '
  360.  
  361. Engi 0.09 (30 September 1994)
  362. Copyright (C) 1994 by Atsushi Aoki
  363.  
  364. '!
  365.  
  366. EngiVisualTransporter comment:
  367. '
  368.  
  369. Engi 0.09 (30 September 1994)
  370. Copyright (C) 1994 by Atsushi Aoki
  371.  
  372. '!
  373.  
  374. EngiBranch comment:
  375. '
  376.  
  377. Engi 0.09 (30 September 1994)
  378. Copyright (C) 1994 by Atsushi Aoki
  379.  
  380. '!
  381.  
  382. EngiClassBranch comment:
  383. '
  384.  
  385. Engi 0.09 (30 September 1994)
  386. Copyright (C) 1994 by Atsushi Aoki
  387.  
  388. '!
  389.  
  390. EngiBranchWithArrow comment:
  391. '
  392.  
  393. Engi 0.09 (30 September 1994)
  394. Copyright (C) 1994 by Atsushi Aoki
  395.  
  396. '!
  397.  
  398. EngiCalculatorView comment:
  399. '
  400.  
  401. Engi 0.09 (30 September 1994)
  402. Copyright (C) 1994 by Atsushi Aoki
  403.  
  404. '!
  405.  
  406. EngiMultipleChoiceModel comment:
  407. '
  408.  
  409. Engi 0.09 (30 September 1994)
  410. Copyright (C) 1994 by Atsushi Aoki
  411.  
  412. '!
  413.  
  414. EngiCalendarView comment:
  415. '
  416.  
  417. Engi 0.09 (30 September 1994)