Morphic-Balloon

BalloonCanvas
BalloonCanvas is a canvas using the BalloonEngine for drawing wherever possible. It has various methods which other canvases do not support due to the extra features of the balloon engine.
aaLevel
aaLevel:
Only allow changes to aaLevel if we're working on >= 8 bit forms
asBalloonCanvas
colorTransformBy:
copy
Make a copy the receiver on the same underlying Form but with its own grafPort.
deferred
deferred:
drawBezier3Shape:color:borderWidth:borderColor:
drawBezierShape:color:borderWidth:borderColor:
Draw a boundary shape that is defined by a list of vertices.
Each three subsequent vertices define a quadratic bezier segment.
For lines, the control point should be set to either the start or the end
of the bezier curve.
drawCompressedShape:
Draw a compressed shape
drawGeneralBezier3Shape:color:borderWidth:borderColor:
drawGeneralBezierShape:color:borderWidth:borderColor:
Draw a general boundary shape (e.g., possibly containing holes)
drawGeneralPolygon:color:borderWidth:borderColor:
Draw a general polygon (e.g., a polygon that can contain holes)
drawOval:color:borderWidth:borderColor:
Draw the oval defined by the given rectangle
drawPolygon:fillStyle:
Fill the given polygon.
drawPolygon:fillStyle:borderWidth:borderColor:
Draw a simple polygon defined by the list of vertices.
drawRectangle:color:borderWidth:borderColor:
Draw a rectangle
drawString:from:to:in:font:color:
drawString:from:to:in:font:color:underline:underlineColor:strikethrough:strikethroughColor:
ensuredEngine
fillColor:
Note: This always fills, even if the color is transparent.
fillOval:color:borderWidth:borderColor:
Draw a filled and outlined oval
fillOval:fillStyle:borderWidth:borderColor:
Fill the given rectangle.
fillRectangle:basicFillStyle:
Fill the given rectangle with the given, non-composite, fill style.
fillRectangle:color:
Fill the rectangle with the given color
fillRectangle:fillStyle:
Fill the given rectangle. Double-dispatched via the fill style.
flush
Force all pending primitives onscreen
frameAndFillRectangle:fillColor:borderWidth:borderColor:
Draw a filled and outlined rectangle
frameAndFillRectangle:fillColor:borderWidth:topLeftColor:bottomRightColor:
Draw a beveled or raised rectangle
ifNoTransformWithIn:
Return true if the current transformation does not affect the given bounding box
image:at:sourceRect:rule:
Draw the portion of the given Form defined by sourceRect at the given point using the given BitBlt combination rule.
initialize
Subclasses should redefine this method to perform initializations on instance creation
isBalloonCanvas
isVisible:
Optimization
line:to:brushForm:
Who's gonna use this?
line:to:width:color:
Draw a line from pt1 to: pt2
paragraph:bounds:color:
Draw the given paragraph
point:color:
Is there any use for this?
preserveStateDuring:
Preserve the full canvas state during the execution of aBlock
resetEngine
transformBy:
transformBy:during:
BalloonRectangleMorph
BalloonRectangleMorph is an example for drawing using the BalloonEngine.
canDrawBorder:
Return true if the receiver can be drawn with the given border style.
defaultBorderColor
answer the default border color/fill style for the receiver
defaultBorderWidth
answer the default border width for the receiver
defaultColor
answer the default color/fill style for the receiver
doesBevels
To return true means that this object can show bevelled borders, and
therefore can accept, eg, #raised or #inset as valid borderColors.
Must be overridden by subclasses that do not support bevelled borders.
drawOn:
initialize
initialize the state of the receiver
newTransformationMorph
MatrixTransformMorph
MatrixTransformMorph is similar to TransformMorph but uses a MatrixTransform2x3 instead of a MorphicTransform. It is used by clients who want use the BalloonEngine for vector-based scaling instead of the standard WarpBlt pixel-based mechanism.
addFlexShell
No flex shell necessary
asFlexOf:
Initialize me with position and bounds of aMorph,
and with an offset that provides centered rotation.
balloonHelpTextForHandle:
Answer a string providing balloon help for the
given halo handle
boundsChangedFrom:to:
changeRotationCenter:with:
changed
Report that the area occupied by this morph should be redrawn.
Fixed to include submorphs outside the outerBounds.
computeBounds
containsPoint:
drawOn:
drawSubmorphsOn:
Display submorphs back to front
extent:
fullBounds
Return the bounding box of the receiver and all its children. Recompute the layout if necessary.
fullContainsPoint:
handleBoundsChange:
hasNoScaleOrRotation
heading
Return the receiver's heading (in eToy terms)
heading:
Set the receiver's heading (in eToy terms)
initialize
initialize the state of the receiver
innerAngle
invalidRect:from:
lastRotationDegrees
lastRotationDegrees:
privateFullMoveBy:
Private! Relocate me and all of my subMorphs by recursion. Subclasses that implement different coordinate systems may override this method.
removeFlexShell
Do nothing
rotateBy:
rotationCenter
Return the rotation center of the receiver. The rotation center defines the relative offset inside the receiver's bounds for locating the reference position.
rotationCenter:
Set the new rotation center of the receiver. The rotation center defines the relative offset inside the receiver's bounds for locating the reference position.
rotationDegrees:
setDirectionFrom:
setRotationCenterFrom:
transform
transform:
transformFrom:
Return a transform to be used to map coordinates in a morph above me into my childrens coordinates, or vice-versa. This is used to support scrolling, scaling, and/or rotation. This default implementation just returns my owner's transform or the identity transform if my owner is nil.
Note: This method cannot be used to map into the receiver's coordinate system!
transformedBy:
visible:
set the 'visible' attribute of the receiver to aBoolean