home *** CD-ROM | disk | FTP | other *** search
/ QBasic & Borland Pascal & C / Delphi5.iso / C / Samples / CSAPE32.ARJ / SOURCE / CSSRC / FNSTD.C < prev    next >
C/C++ Source or Header  |  1990-10-31  |  3KB  |  119 lines

  1. /*
  2.     fnstd.c      8/25/88
  3.  
  4.     % std_funcs
  5.  
  6.     Standard fenter and fexit routines.
  7.  
  8.     C-scape 3.2
  9.     Copyright (c) 1988, by Oakland Group, Inc.
  10.     ALL RIGHTS RESERVED.
  11.  
  12.     By using these routines duplicate code is eliminated, shrinking code
  13.     size.
  14.  
  15.     The following flavors are supplied:
  16.     -----------------------------------
  17.  
  18.     std_fenter            Uses field first data pointer as a prompt message.
  19.                         Sets baton to SED_FIRST
  20.                         Moves cursor to start of field
  21.  
  22.     std_fexit            Formats record according to third data pointer
  23.                         Clears the prompt message.
  24.  
  25.     stdNoCur_fenter     Uses field first data pointer as a prompt message.
  26.                         Turns off cursor for field
  27.  
  28.     stdBigCur_fenter    Uses field first data pointer as a prompt message.
  29.                         Makes cursor big in Insert mode
  30.  
  31.     std_senter            Formats record according to third data pointer
  32.  
  33.     Revision History:
  34.     -----------------
  35.     10/09/88 jmd     added SED_ABORT support
  36.     11/15/88 jmd     removed test for NULL prompt
  37.     11/18/88 jmd     added sed_GoHome to std_fenter
  38.      3/14/90 jmd    added std_format, moved formatting out of std_fexit
  39.      3/16/90 jmd    removed prompt reset in std_fexit (sed_Go clears the 
  40.                     border prompt when it's done)
  41.      3/16/90 jmd    added support for KEY_INVALID
  42.      3/28/90 jmd    ansi-fied
  43.     11/31/90 ted    added oak_notused call in std_fexit().
  44. */
  45.  
  46. #include <stdio.h>
  47.  
  48. #include "cscape.h"
  49.  
  50. void std_fenter(sed_type sed)
  51. /*
  52.     Sets border prompt,
  53.     Sets baton to SED_FIRST
  54.     Moves cursor to start of field
  55. */
  56. {
  57.     sed_BorderPrompt(sed, (char *) sed_GetCurrFieldData(sed, 0));
  58.  
  59.     sed_SetBaton(sed, SED_FIRST);
  60.     sed_GoHome(sed);
  61. }
  62.  
  63. boolean std_fexit(sed_type sed)
  64. /*
  65.     Turns off border prompt
  66. */
  67. {
  68.     oak_notused(sed);
  69.  
  70.     return(TRUE);
  71. }
  72.  
  73. void std_format(sed_type sed)
  74. /*
  75.     Formats the field's record using the field's third data pointer
  76.     Update the field if the record changes
  77. */
  78. {
  79.     if (valid_Format(sed, sed_GetFieldNo(sed), (char *) sed_GetCurrFieldData(sed, 2))) {
  80.         sed_UpdateField(sed, sed_GetFieldNo(sed));
  81.     }
  82. }
  83.  
  84. void stdNoCur_fenter(sed_type sed)
  85. /*
  86.     calls std_fenter,
  87.     Turns off cursor
  88. */
  89. {
  90.     std_fenter(sed);
  91.  
  92.     sed_SetCursorType(sed, CURSOR_NONE);
  93. }
  94.  
  95. void stdBigCur_fenter(sed_type sed)
  96. /*
  97.     calls std_fenter,
  98.     Makes cursor big if in insert mode
  99. */
  100. {
  101.     std_fenter(sed);
  102.  
  103.     /* make cursor big if INSERT mode */
  104.     if (kb_Insert()) {
  105.         sed_SetCursorType(sed, CURSOR_HALF);
  106.     }
  107.     else {
  108.         sed_SetCursorType(sed, CURSOR_NORMAL);
  109.     }
  110. }
  111.  
  112. void std_senter(sed_type sed, int fieldno)
  113. /*
  114.     Formats field record
  115. */
  116. {
  117.     valid_Format(sed, fieldno, (char *) sed_GetFieldData(sed, fieldno, 2));
  118. }
  119.