home *** CD-ROM | disk | FTP | other *** search
/ QBasic & Borland Pascal & C / Delphi5.iso / C / Samples / CSAPE32.ARJ / SOURCE / CSSRC / FNMSYS.C < prev    next >
C/C++ Source or Header  |  1990-12-08  |  2KB  |  82 lines

  1. /*
  2.     fnmsys.c
  3.  
  4.     % msys_funcs
  5.  
  6.     like slug_funcs, but sed is not popped before bob gets painted.
  7.  
  8.     C-scape 3.2
  9.     Copyright (c) 1988-1989, by Oakland Group, Inc.
  10.     ALL RIGHTS RESERVED.
  11.  
  12.     Revision History:
  13.     -----------------
  14.     12/14/89 ted    Re-created.
  15.      3/28/90 jmd    ansi-fied
  16.  
  17.     12/08/90 pmcm    changed std_fenter to stdNoCur_fenter
  18. */
  19.  
  20. #include <stdio.h>
  21. #include <ctype.h>
  22.  
  23. #include "cscape.h"
  24. #include "scancode.h"
  25. #include "oaktag.h"                /* For IDs in msys.h */
  26. #include "msys.h"
  27. #include "helpdecl.h"
  28.  
  29. OSTATIC void msys_fkey(sed_type sed);
  30.  
  31. /* -------------------------------------------------------------------------- */
  32.  
  33. OGLOBAL field_funcs_struct msys_funcs = {
  34.     stdNoCur_fenter,
  35.     std_fexit,
  36.     msys_fkey,
  37.     FNULL,
  38.     FNULL,
  39.     0
  40. };
  41. /* -------------------------------------------------------------------------- */
  42.  
  43. static void msys_fkey(sed_type sed)
  44. /*
  45.     modifies:   sed.
  46.     effects:    Standard menu functions.
  47.                 Up and down keys change choices.
  48.                 Baton contains field number + 1 when ENTER is pressed
  49.                 or 0 if ESC pressed.
  50. */
  51. {
  52.     unsigned scancode;
  53.  
  54.     scancode = kb_Read();
  55.  
  56.     if (sed_DoSpecial(sed, scancode))
  57.         return;
  58.     if (special_key(sed, scancode))
  59.         return;
  60.  
  61.     switch(scancode) {
  62.  
  63.     case MOU_CLICK:
  64.     case ENTER:
  65.     {
  66.         int ret;
  67.  
  68.         ret = msys_bobgo(sed, ENTER);    /* 'ENTER' because no mouse suck needed */
  69.  
  70.         if (ret != 0) {
  71.             sed_ToggleExit(sed);
  72.             sed_SetBaton(sed, ret);
  73.         }
  74.         break;
  75.     }
  76.     default:
  77.         slug_dokey(sed, scancode);
  78.     }
  79. }
  80. /* -------------------------------------------------------------------------- */
  81.  
  82.