/*
 *    @(#)40 1.1 9/28/93 11:46:54 [10/14/94] (c)IBM Corp. 1992
 */

// This file was generated by the SOM Compiler.
// FileName: page.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 page_idl
#define page_idl

#include <somobj.idl>

interface textLine;
interface TPWord;
interface columnBlock;

interface page : SOMObject
{
  void pgPrint(inout FILE output);
  void pgSetHeight(in long newHeight);
  
  // Set the height of a page in characters.

  void pgSetWidth(in long newWidth);
  
  // Set the width of a page in characters.

  void pgSetNumberOfColumns(in long ncolumns);
  
  // Set the number of columns in a page.

  void pgSetPageNumber(in TPWord newPageWord);
  
  // Tell the page about a special word to be used to
  // store page numbers.

  columnBlock pgGetColumnBlock();
  
  // Get the columnBlock being used by this page.

  textLine pgGetHeaderBlock();
  
  // Get the textLine representing the page header.

  textLine pgGetFooterBlock();
  
  // Get the textLine representing the page footer.



#ifdef __SOMIDL__
  implementation {

    releaseorder: pgPrint,pgSetHeight,pgSetWidth,pgSetNumberOfColumns, 
                  pgSetPageNumber,pgGetColumnBlock,pgGetHeaderBlock, 
                  pgGetFooterBlock;

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

    passthru C_h =      "#include \"tpword.h\""
"#include \"textline.h\""
"#include \"colblk.h\"";


    //# Internal Instance Variables
    long height;                   
    long width;                    
    long ncolumns;                 
    long currentCol;               
    long pageNumber;               
    textLine header;              
    textLine footer;              
    columnBlock columns;          
    TPWord pageWord;              

    //# Method Modifiers
    somInit: override;
    somUninit: override;
    somDumpSelfInt: override;

    //# Data Modifiers
    height: ;
    width: ;
    ncolumns: ;
    currentCol: ;
    pageNumber: ;
    header: ;
    footer: ;
    columns: ;
    pageWord: ;

  };
#endif /* __SOMIDL__ */
};

#endif  /* page_idl */
