/*
 *    @(#)50 1.1 9/28/93 11:47:30 [10/14/94] (c)IBM Corp. 1992
 */

// This file was generated by the SOM Compiler.
// FileName: txtep.id2.
// Generated using:
//     SOM Precompiler spc: 6.9
//     SOM Emitter emitidl.dll: 6.8

//  This class is adapted from the book
//    Class Construction in C and C++, Object Oriented Fundamentals
//    by Roger Sessions, Copyright (c) 1992 Prentice Hall.
//  Reprinted with permission.

#ifndef txtep_idl
#define txtep_idl

#include "ep.idl"

interface textLine;
interface columnBlock;

interface txtEnvProcessor : envProcessor
{
  void tpProcessWord();
  
  // Default word processor: Add it to the current line, if
  // space is available, otherwise create a new line.

  void tpProcessBlanks();
  
  // Default blank processor: Add to current line, if
  // space is available, otherwise discard (ie don't
  // use in a new line).

  void tpProcessLineBreak();
  
  // Default line break processor: Treat line breaks as
  // blanks (ie an input line break does not cause a line
  // break in the output file).

  void tpProcessFullLine();
  
  // Default full line processor: Add full input line to
  // columnBlock and start a new line.

  void tpProcessFullPage();
  
  // Default full page processor: Print the page and start
  // another.

  void tpProcessNewLine();
  
  // Default new line processor: Handles a new output line.
  // Default is indent line 2 characters.

  void tpProcessNewParagraph();
  
  // Default new paragraph processor: Breaks the output line.
  // Starts a new output line.

  textLine tpGetLine();
  
  // Gets the current line.

  void tpSetLine(in textLine newLine);
  
  // Sets the current line.



#ifdef __SOMIDL__
  implementation {

    releaseorder: tpProcessWord,tpProcessBlanks,tpProcessLineBreak, 
                  tpProcessFullLine,tpProcessFullPage,tpProcessNewLine, 
                  tpProcessNewParagraph,tpGetLine,tpSetLine;

    //# Class Modifiers
    callstyle = oidl;
    local; 
    filestem = txtep;



    //# Internal Instance Variables
    TPWord thisWord;              
    textLine thisLine;            
    columnBlock thisCB;           

    //# Method Modifiers
    epProcessEnvironment: override;
    epShutdownEnvironment: override;
    epInitializeEnvironment: override;
    epPrepareForNewEnvironment: override;
    epGetParagraphIndentation: override;
    epGetLineIndentation: override;
    epInit1: override;
    somInit: override;
    somUninit: override;

    //# Data Modifiers
    thisWord: ;
    thisLine: ;
    thisCB: ;

  };
#endif /* __SOMIDL__ */
};

#endif  /* txtep_idl */
