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

NAME

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

SYNOPSIS

       #include <Unidraw/Components/psview.h>

DESCRIPTION

       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.

POSTSCRIPTVIEW PUBLIC OPERATIONS

       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 PROTECTED OPERATIONS

       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 information.

       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, respectively.

       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 categories.

POSTSCRIPTVIEWS PUBLIC OPERATIONS

       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.

POSTSCRIPTVIEWS PROTECTED OPERATIONS

       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.

SEE ALSO

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