Provided by: ivtools-dev_1.2.11a1-2_amd64 bug


       PostScriptView,  PostScriptViews  -  base classes for external representation objects that
       generate PostScript code


       #include <Unidraw/Components/psview.h>


       PostScriptView is a PreorderView that serves as  the  abstract  base  class  for  external
       representation  objects  for  emitting  PostScript  code.   A  PostScriptView's subject is
       normally a GraphicComp subclass.  PostScriptViews is  a  subclass  of  PostScriptView  for
       composite PostScript external views.


       virtual boolean Emit(ostream&)
              PostScriptView  redefines  Emit  to generate header information.  Thus you can call
              Emit  on  any  PostScriptView  subclass  to   generate   encapsulated   PostScript.
              Subclasses  redefine  Definition  to  generate the PostScript fragment that defines
              their basic attributes.

       GraphicComp* GetGraphicComp()
              Return the subject.


       PostScriptView(GraphicComp* = nil)
              Initialize a PostScriptView, optionally of the given GraphicComp.  The  constructor
              is protected to disallow instantiation.

PostScriptView defines numerous protected helper functions to make it

       easier  for  subclasses  to  generate the PostScript that describes their appearance.  The
       output conforms to the original idraw PostScript format.

       virtual void Comments(ostream&)
       virtual void PSVersion(ostream&)
       virtual void Creator(ostream&)
       virtual void FontNames(ostream&)
       virtual void Pages(ostream&)
       virtual void BoundingBox(ostream&)
              The Comments operation generates a standard PostScript  comments  block.   Comments
              calls the other operations to generate a complete set of comments.

       virtual void Prologue(ostream&)
       virtual void Version(ostream&)
       virtual void GridSpacing(ostream&)
       virtual void Trailer(ostream&)
              Operations   that  generate  global  data,  procedures,  and  idraw-format-specific

       virtual void MinGS(ostream&)
       virtual void FullGS(ostream&)
       virtual void TextGS(ostream&)
       virtual void Brush(ostream&)
       virtual void FgColor(ostream&)
       virtual void BgColor(ostream&)
       virtual void Font(ostream&)
       virtual void Pattern(ostream&)
       virtual void Transformation(ostream&)
              Operations that generate graphics state information.  All output the graphics state
              attribute  that their name suggests, with three exceptions: MinGS outputs a minimal
              set of graphics state  defined  by  practical  graphic  objects,  namely  a  brush,
              foreground  and  background  colors, a pattern, and a transformation matrix. TextGS
              outputs the graphics state required by textual  graphics,  including  a  foreground
              color,  a  font,  and  a  transformation  matrix.   FullGS  generates a full set of
              graphics state.

       virtual void SetPSFonts(UList*)
       virtual UList* GetPSFonts()
              Get and set the list of all PostScript font names required by  the  PostScriptView.
              This  set  of names appears in a comment near the beginning of the generated output
              as required by standard PostScript conventions.

       virtual void GetBox(Coord&, Coord&, Coord&, Coord&)
              Return the bounding box of the graphic for which  PostScript  is  being  generated.
              These values also appear in a standard PostScript comment.

       virtual void GridSpacing(float&, float&)
              Return the grid spacing, if applicable.  Idraw requires this information, and it is
              buried in a comment.

       virtual void BeginProc(ostream&)
       virtual void EndProc(ostream&)
              Begin and end a scope for defining a graphical object.

       virtual void ConstProcs(ostream&)
              Generate  PostScript  procedures  containing  constant  information,  such  as  the
              character encoding dictionary, string length limit, etc.

       virtual void SetGSProcs(ostream&)
       virtual void SetBrushProc(ostream&)
       virtual void SetFgColorProc(ostream&)
       virtual void SetBgColorProc(ostream&)
       virtual void SetFontProc(ostream&)
       virtual void SetPatternProc(ostream&)
              Generate PostScript procedures for setting graphics state attributes.

       virtual void ObjectProcs(ostream&)
       virtual void BSplineProc(ostream&)
       virtual void CircleProc(ostream&)
       virtual void ClosedBSplineProc(ostream&)
       virtual void EllipseProc(ostream&)
       virtual void LineProc(ostream&)
       virtual void MultiLineProc(ostream&)
       virtual void PolygonProc(ostream&)
       virtual void RectangleProc(ostream&)
       virtual void TextProc(ostream&)
              Generate PostScript procedures for instantiating basic graphical objects.

       virtual void MiscProcs(ostream&)
       virtual void DefinitionProc(ostream&)
       virtual void FillProc(ostream&)
       virtual void StrokeProc(ostream&)
       virtual void ShowProc(ostream&)
       virtual void PatternProc(ostream&)
       virtual void MinMaxProcs(ostream&)
       virtual void MidpointProc(ostream&)
       virtual void ThirdpointProc(ostream&)
       virtual void SubsplineProc(ostream&)
       virtual void StoreVerticesProc(ostream&)
              MiscProcs  encapsulates  calls  to  the  subsequent PostScript procedure-generating
              operations shown above.  DefinitionProc generates PostScript code that  declares  a
              procedure. FillProc and StrokeProc fill and stroke the path that a graphical object
              defines.  ShowProc fine-tunes a text  object's  position.   PatternProc  creates  a
              PostScript  rendition  of  a  pattern.   MinMaxProcs  define min and max functions.
              MidpointProc and ThirdpointProc calculate the point midway and  one-third  the  way
              between  two  points,  respectively.   SubsplineProc breaks the vertices defining a
              spline into smaller pieces to allow approximating the spline  with  Bezier  curves.
              Finally, StoreVerticesProc stores a set of vertices in arrays.

       PSFont* GetFont(UList*)
       PostScriptView* View(UList*)
              Convenience  functions that return the PSFont and PostScriptView in UList elements,

       PostScriptView* CreatePSView(GraphicComp*)
              Create the appropriate PostScriptView subclass  for  the  given  GraphicComp.   The
              relationship between subjects, views, and view categories is encoded in their class
              identifiers.  See classes(3U) for more information on class  identifiers  and  view


       PostScriptViews(GraphicComps* = nil)~
              The constructor takes the subject as an optional argument.

       virtual boolean Update()
              For  simplicity,  PostScriptViews  reconciles  its  state  with  its  subject's  by
              destroying its children and reconstructing them from scratch.


       UList* Elem(Iterator)
              A convenience function for extracting a UList from an iterator.

       void DeleteView(Iterator&)
       void DeleteViews()
              DeleteView removes a child and deletes it, while DeleteViews  removes  and  deletes
              all children.


       ExternView(3U),   GraphicComp(3U),  GraphicView(3U),  UList(3U),  classes(3U),  idraw(1I),