14.39 PredefinedGO Interface

14.40 PredefinedGraphicalObject

ORIGIN 'Bifrost';
LIB_ITEM 'bifrost';
BODY 'private/Impl/PredefinedGoImpl'

(*
 * COPYRIGHT 
 *       Copyright Mjolner Informatics, 1990-94 
 *       All rights reserved.
 *)

-- BifrostAttributes: attributes --

PredefinedGraphicalObject: AbstractGraphicalObject
  (# shapeDesc::<
       PredefinedShape;
     TMDesc::< (# enterTM::< (# do ...; INNER #)#);
     init::< 
       (# ... #);
     getShape::< 
       (# do theShape.calculateShape -> s[] #);
  do INNER;
  #);

14.41 Line

Line: PredefinedGraphicalObject
  (# shapeDesc::< LineShape;
     
     begin: (# enter theShape.begin  exit theShape.begin #);
     end: (# enter theShape.end    exit theShape.end #);
     width: (# enter theShape.width  exit theShape.width #);
     dashes: (# enter theShape.dashes exit theShape.dashes #);
     cap: (# enter theShape.cap    exit theShape.cap  #);
     
     coordinates: 
       (# enter theShape.coordinates exit theShape.coordinates #);
     draw::< 
       (# ... #);
     copy::<
       (# do INNER; ... #);
  do INNER;
  #);


14.42 Multiline

MultiLine: PredefinedGraphicalObject
  (# shapeDesc::< MultiLineShape;
     
     width: (# enter theShape.width  exit theShape.width #);
     points: (# enter theShape.points exit theShape.points #);
     addPoint:
       (# p: @point
       enter p
       do p->(TM).inversetransformpoint->theShape.addPoint
       #);
     insertPoint:
       (# i: @integer; p: @point
       enter (p,i)
       do (p->(TM).inversetransformpoint,i)->theShape.insertPoint
       #);
     deletePoint:
       (# p: @point
       enter p
       do p->(TM).inversetransformpoint->theShape.deletePoint
       #);
     getPoint:
       (# i: @Integer;
          p: @Point;
       enter i
       do i->theShape.getPoint->p
       exit p
       #);
     setPoint:
       (# i: @Integer;
          p: @Point;
       enter (i,p)
       do (p->(TM).inversetransformpoint,i)->theShape.setPoint
       #);
     closestLineSegment:
       (# p: @point; i: @integer
       enter p
       do p->(TM).inversetransformpoint->theShape.closestLineSegment->i
       exit i
       #);
     dashes: (* Not Yet Implemented *)
       (# enter theShape.dashes exit theShape.dashes #);
     cap: (# enter theShape.cap    exit theShape.cap  #);
     join: (# enter theShape.join   exit theShape.join #);
     draw::< 
       (# ... #);
     copy::< 
       (# do INNER; ... #);
  do INNER;
  #);


14.43 GraphicText

GraphicalText: GraphicText(# #); (* Alias *)

GraphicText: PredefinedGraphicalObject
  (# shapeDesc::< TextShape;
     
     inittext: (# enter theShape.inittext #);
     
     position: 
       (# enter theShape.position
       exit theShape.position 
       #);
     thefontname: 
       (# 
       enter theShape.thefontname
       exit theShape.thefontname
       #);
     theStyle: 
       (# 
       enter theShape.theStyle
       exit theShape.theStyle
       #);
     size: 
       (# 
       enter theShape.size
       exit theShape.size
       #);
     underline: 
       (# 
       enter theShape.underline
       exit theShape.underline
       #);
     theText: 
       (# 
       enter theShape.theText
       exit theShape.theText
       #);
     
     draw::< 
       (# ... #);
     copy::< 
       (# ... #);
     interactiveCreateShape::< 
       (# lastCh: @Char; (* Last character typed in interaction *)
       ... 
       exit lastCh
       #);
     interactiveReshape::< 
       (# lastCh: @Char; (* Last character typed in interaction *)
       ... 
       exit lastCh
       #);
  do INNER;
  #);

14.44 Arc

Arc: PredefinedGraphicalObject
  (# shapeDesc::< ArcShape;
     
     center: (# enter theShape.center   exit theShape.center #);
     horizontalRadius:
       (#
       enter theShape.horizontalradius
       exit  theShape.horizontalradius
       #);
     verticalRadius:
       (# 
       enter theShape.verticalradius
       exit  theShape.verticalradius
       #);
     angle1:
       (# 
       enter theShape.angle1 
       exit theShape.angle1
       #);
     angle2: 
       (# 
       enter theShape.angle2 
       exit theShape.angle2
       #);
     arcWidth: 
       (# 
       enter theShape.arcWidth
       exit theShape.arcWidth
       #);
     
     draw::< 
       (# ... #);
     copy::< 
       (# do INNER; ... #);
  do INNER
  #);

14.45 PieSlice

PieSlice: PredefinedGraphicalObject
  (# shapeDesc::< PieShape;
     
     center: 
       (# 
       enter theShape.center
       exit theShape.center
       #);
     horizontalRadius: 
       (# 
       enter theShape.horizontalradius
       exit theShape.horizontalradius
       #);
     verticalRadius: 
       (# 
       enter theShape.verticalradius
       exit theShape.verticalradius
       #);
     angle1: 
       (# 
       enter theShape.angle1
       exit theShape.angle1
       #);
     angle2: 
       (# 
       enter theShape.angle2
       exit theShape.angle2
       #);
     draw::< 
       (# ... #);
     copy::< 
       (# do INNER; ... #);
  do INNER
  #);


StrokeAblePredefinedGraphicalObject: PredefinedGraphicalObject
  (# 
     shapeDesc::< StrokeableShape
  do INNER
  #);

14.46 Rect

Rect: StrokeAblePredefinedGraphicalObject
  (# shapeDesc::< RectShape;
     
     upperleft:
       (# 
       enter theShape.upperleft 
       exit theShape.upperleft
       #);
     width: 
       (# 
       enter theShape.width
       exit theShape.width
       #);
     height: 
       (#
       enter theShape.height
       exit theShape.height
       #);
     corners: 
       (# 
       enter theShape.corners
       exit theShape.corners
       #);
     
     draw::< (# ... #);
     copy::< (# do INNER; ... #);
  do INNER;
  #);


14.47 Ellipse

Ellipse: StrokeAblePredefinedGraphicalObject
  (# shapeDesc::< EllipseShape;
     
     center: 
       (# 
       enter theShape.center
       exit theShape.center
       #);      
     horizontalradius: 
       (# 
       enter theShape.horizontalradius
       exit theShape.horizontalradius
       #);
     verticalradius: 
       (#
       enter theShape.verticalradius 
       exit theShape.verticalradius 
       #);
     geometry: 
       (# 
       enter theShape.geometry 
       exit theShape.geometry
       #);
     
     draw::< (# ... #);
     copy::< (# do INNER; ... #);
  do INNER;
  #)


14.39 PredefinedGO Interface
© 1991-2002 Mjølner Informatics
[Modified: Thursday September 23rd 1999 at 10:32]