home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
European Smalltalk User Group 2004 September
/
esugcd.iso
/
Books-Tutorial-Lectures
/
Books
/
FreeBooks
/
GuzdialBookDrafts
/
Boxes.st
next >
Wrap
Text File
|
2003-03-31
|
3KB
|
132 lines
Object subclass: #Box
instanceVariableNames: 'position size tilt '
classVariableNames: ''
poolDictionaries: ''
category: 'Boxes'!
!Box methodsFor: 'drawing' stamp: 'mjg 9/14/1998 15:38'!
draw
| myPen |
myPen _ Pen new.
myPen up.
myPen goto: position.
myPen turn: tilt.
myPen color: (Color black).
myPen down.
4 timesRepeat: [myPen go: size; turn: 90].
! !
!Box methodsFor: 'drawing' stamp: 'mjg 3/27/98 22:02'!
grow: increment
self undraw.
size _ size + increment.
self draw.
! !
!Box methodsFor: 'drawing' stamp: 'mjg 3/27/98 22:02'!
move: pointIncrement
self undraw.
position _ position + pointIncrement.
self draw.
! !
!Box methodsFor: 'drawing' stamp: 'mjg 3/30/98 15:21'!
moveTo: aPoint
self undraw.
position _ aPoint.
self draw.
! !
!Box methodsFor: 'drawing' stamp: 'mjg 3/27/98 22:01'!
turn: degrees
self undraw.
tilt _ tilt + degrees.
self draw.
! !
!Box methodsFor: 'drawing' stamp: 'mjg 9/14/1998 15:50'!
undraw
| myPen |
myPen _ Pen new.
myPen up.
myPen goto: position.
myPen turn: tilt.
myPen color: (Color white).
myPen down.
4 timesRepeat: [myPen go: size; turn: 90].
! !
!Box methodsFor: 'initialization' stamp: 'mjg 3/27/98 22:04'!
initialize
position _ 50@50.
size _ 50.
tilt _ 0.
self draw.
! !
"-- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- "!
Box class
instanceVariableNames: ''!
!Box class methodsFor: 'initialization' stamp: 'mjg 3/27/98 21:54'!
clearWorld
(Form extent: 600@200) fillWhite display! !
!Box class methodsFor: 'initialization' stamp: 'mjg 3/27/98 21:55'!
new
^super new initialize! !
Box subclass: #NamedBox
instanceVariableNames: 'name '
classVariableNames: ''
poolDictionaries: ''
category: 'Boxes'!
!NamedBox methodsFor: 'access' stamp: 'mjg 3/30/98 15:17'!
name
^name! !
!NamedBox methodsFor: 'access' stamp: 'mjg 3/30/98 15:16'!
name: aName
name _ aName! !
!NamedBox methodsFor: 'drawing' stamp: 'mjg 3/30/98 15:54'!
draw
super draw.
self drawNameColor: (Color black).! !
!NamedBox methodsFor: 'drawing' stamp: 'mjg 3/30/98 15:19'!
drawNameColor: aColor
| displayName |
(name isNil) ifTrue: [name _ 'Unnamed'].
displayName _ name asDisplayText.
displayName foregroundColor: aColor backgroundColor: (Color white).
displayName displayAt: position.
! !
!NamedBox methodsFor: 'drawing' stamp: 'mjg 3/30/98 15:54'!
undraw
super undraw.
self drawNameColor: (Color white).! !
"-- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- "!
NamedBox class
instanceVariableNames: ''!
!NamedBox class methodsFor: 'initialization' stamp: 'mjg 3/30/98 15:19'!
named: aName
| newBox |
newBox _ super new.
newBox undraw.
newBox name: aName.
newBox draw.
^newBox! !