home *** CD-ROM | disk | FTP | other *** search
/ The Developer Connection…ice Driver Kit for OS/2 3 / DEV3-D1.ISO / devtools / os2tk21j / c / samples / tp / ep.c__ / ep.c
Encoding:
C/C++ Source or Header  |  1993-03-12  |  6.8 KB  |  215 lines

  1. #ifndef lint
  2. static char *sccsid = "@(#)ep.c 1.3 1/22/92 16:08:42 [1/26/92] (c)IBM Corp. 1992";
  3. #endif
  4.  
  5. /*
  6.  * This class is adapted from the book
  7.  *   Class Construction in C and C++, Object Oriented Fundamentals
  8.  *   by Roger Sessions, Copyright (c) 1992 Prentice Hall.
  9.  * Reprinted with permission.
  10.  */
  11.  
  12. #define envProcessor_Class_Source
  13.  
  14. #include <stdlib.h>
  15.  
  16. #include "helper.h"
  17. #include "tpword.h"
  18. #include "page.h"
  19.  
  20. #include "txtep.h"
  21. #include "header.h"
  22. #include "footer.h"
  23. #include "ipep.h"
  24. #include "blep.h"
  25.  
  26. #include "ep.ih"
  27.  
  28. /* ************************************************************ */
  29. SOM_Scope void SOMLINK epInit1(envProcessor * somSelf,
  30.                 envProcessor * lastEnv)
  31. {
  32.     envProcessorData *somThis = envProcessorGetData(somSelf);
  33.     envProcessorMethodDebug("envProcessor", "epInit1");
  34.  
  35.     _previousEnv = lastEnv;
  36.     _thisFile = _epGetFileMgr(_previousEnv);
  37.     _thisPage = _epGetPage(_previousEnv);
  38.  
  39. }
  40.  
  41. /* ************************************************************ */
  42. SOM_Scope void SOMLINK epProcessEnvironment(envProcessor * somSelf)
  43. {
  44.     envProcessorData *somThis = envProcessorGetData(somSelf);
  45.     envProcessorMethodDebug("envProcessor", "epProcessEnvironment");
  46.     shouldHaveOverridden(somSelf, "epProcessEnvironment");
  47. }
  48.  
  49. /* ************************************************************ */
  50. SOM_Scope void SOMLINK epStartUpNewEnvironment(envProcessor * somSelf,
  51.                         TPWord * envName)
  52. {
  53.     envProcessorData *somThis = envProcessorGetData(somSelf);
  54.     envProcessor *nextEnv;
  55.     envProcessorMethodDebug("envProcessor", "epStartUpNewEnvironment");
  56.  
  57.     if (_match(envName, "[[standard_text]]")) {
  58.     nextEnv = txtEnvProcessorNew();
  59.     _epInit1(nextEnv, somSelf);
  60.     }
  61.     else if (_match(envName, "[[header]]")) {
  62.     nextEnv = headerNew();
  63.     _epInit1(nextEnv, somSelf);
  64.     }
  65.     else if (_match(envName, "[[footer]]")) {
  66.     nextEnv = footerNew();
  67.     _epInit1(nextEnv, somSelf);
  68.     }
  69.     else if (_match(envName, "[[standard_text]]")) {
  70.     nextEnv = txtEnvProcessorNew();
  71.     _epInit1(nextEnv, somSelf);
  72.     }
  73.     else if (_match(envName, "[[indent_paragraphs]]")) {
  74.     nextEnv = indentedParagraphsNew();
  75.     _epInit1(nextEnv, somSelf);
  76.     }
  77.     else if (_match(envName, "[[bulleted_list]]")) {
  78.     nextEnv = bulletedListNew();
  79.     _epInit1(nextEnv, somSelf);
  80.     }
  81.     else {
  82.     printf("Unknown environment: ");
  83.     _print(envName, stdout);
  84.     exit(2);
  85.     }
  86.  
  87.     _epPrepareForNewEnvironment(somSelf);
  88.     _epProcessEnvironment(nextEnv);
  89.     _somFree(nextEnv);
  90. }
  91.  
  92. /* ************************************************************ */
  93. SOM_Scope void SOMLINK epInitializeEnvironment(envProcessor * somSelf)
  94. {
  95.     envProcessorData *somThis = envProcessorGetData(somSelf);
  96.     envProcessorMethodDebug("envProcessor", "epInitializeEnvironment");
  97. }
  98.  
  99. /* ************************************************************ */
  100. SOM_Scope void SOMLINK epShutdownEnvironment(envProcessor * somSelf)
  101. {
  102.     envProcessorData *somThis = envProcessorGetData(somSelf);
  103.     envProcessorMethodDebug("envProcessor", "epShutdownEnvironment");
  104. }
  105.  
  106. /* ************************************************************ */
  107. SOM_Scope void SOMLINK epPrepareForNewEnvironment(envProcessor * somSelf)
  108. {
  109.     envProcessorData *somThis = envProcessorGetData(somSelf);
  110.     envProcessorMethodDebug("envProcessor", "epPrepareForNewEnvironment");
  111. }
  112.  
  113. /* ************************************************************ */
  114. SOM_Scope int SOMLINK epGetParagraphIndentation(envProcessor * somSelf)
  115. {
  116.     envProcessorData *somThis = envProcessorGetData(somSelf);
  117.     envProcessorMethodDebug("envProcessor", "epGetParagraphIndentation");
  118.     return (0);
  119. }
  120.  
  121. /* ************************************************************ */
  122. SOM_Scope int SOMLINK epGetLineIndentation(envProcessor * somSelf)
  123. {
  124.     envProcessorData *somThis = envProcessorGetData(somSelf);
  125.     envProcessorMethodDebug("envProcessor", "epGetLineIndentation");
  126.     return (0);
  127. }
  128.  
  129. /* ************************************************************ */
  130. SOM_Scope page *SOMLINK epGetPage(envProcessor * somSelf)
  131. {
  132.     envProcessorData *somThis = envProcessorGetData(somSelf);
  133.     envProcessorMethodDebug("envProcessor", "epGetPage");
  134.     return _thisPage;
  135. }
  136.  
  137. /* ************************************************************ */
  138. SOM_Scope fileMgr *SOMLINK epGetFileMgr(envProcessor * somSelf)
  139. {
  140.     envProcessorData *somThis = envProcessorGetData(somSelf);
  141.     envProcessorMethodDebug("envProcessor", "epGetFileMgr");
  142.     return _thisFile;
  143. }
  144.  
  145. /* ************************************************************ */
  146. SOM_Scope envProcessor *SOMLINK epGetPreviousEnv(envProcessor * somSelf)
  147. {
  148.     envProcessorData *somThis = envProcessorGetData(somSelf);
  149.     envProcessorMethodDebug("envProcessor", "epGetPreviousEnv");
  150.     return _previousEnv;
  151. }
  152.  
  153. /* ************************************************************ */
  154. SOM_Scope char *SOMLINK epGetClassName(envProcessor * somSelf)
  155. {
  156.     envProcessorData *somThis = envProcessorGetData(somSelf);
  157.     static char *myClass = "envProcessor";
  158.     envProcessorMethodDebug("envProcessor", "epGetClassName");
  159.     return myClass;
  160. }
  161.  
  162. /* ************************************************************ */
  163. SOM_Scope void SOMLINK epSetPage(envProcessor * somSelf,
  164.                   page * newPage)
  165. {
  166.     envProcessorData *somThis = envProcessorGetData(somSelf);
  167.     envProcessorMethodDebug("envProcessor", "epSetPage");
  168.     _thisPage = newPage;
  169. }
  170.  
  171. /* ************************************************************ */
  172. SOM_Scope void SOMLINK epSetFileMgr(envProcessor * somSelf,
  173.                      fileMgr * newFileMgr)
  174. {
  175.     envProcessorData *somThis = envProcessorGetData(somSelf);
  176.     envProcessorMethodDebug("envProcessor", "epSetFileMgr");
  177.     _thisFile = newFileMgr;
  178. }
  179.  
  180. /* ************************************************************ */
  181. SOM_Scope void SOMLINK somInit(envProcessor * somSelf)
  182. {
  183.     envProcessorData *somThis = envProcessorGetData(somSelf);
  184.     envProcessorMethodDebug("envProcessor", "somInit");
  185.  
  186.     parent_somInit(somSelf);
  187.     _previousEnv = 0;
  188.     _thisFile = 0;
  189.     _thisPage = 0;
  190. }
  191.  
  192. /* ************************************************************ */
  193. SOM_Scope void SOMLINK somUninit(envProcessor * somSelf)
  194. {
  195.     envProcessorData *somThis = envProcessorGetData(somSelf);
  196.     envProcessorMethodDebug("envProcessor", "somUninit");
  197.  
  198.     if (!_previousEnv) {
  199.     _somFree(_thisFile);
  200.     _somFree(_thisPage);
  201.     printf("\n");                  /* Last line feed for document. */
  202.     }
  203.     parent_somUninit(somSelf);
  204. }
  205.  
  206. /* ************************************************************ */
  207. SOM_Scope void SOMLINK somDumpSelfInt(envProcessor * somSelf,
  208.                        int level)
  209. {
  210.     envProcessorData *somThis = envProcessorGetData(somSelf);
  211.     envProcessorMethodDebug("envProcessor", "somDumpSelfInt");
  212.  
  213.     parent_somDumpSelfInt(somSelf, level);
  214. }
  215.