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

  1. /*
  2.     fnspec.c
  3.  
  4.     % special_key
  5.  
  6.     C-scape 3.2
  7.     Copyright (c) 1986, 1987, 1988 by Oakland Group, Inc.
  8.     ALL RIGHTS RESERVED.
  9.  
  10.     Revision History:
  11.     -----------------
  12.     11/19/88 jmd    Added mouse stuff
  13.  
  14.      6/07/89 jmd    renamed mouse codes
  15.  
  16.      2/03/89 jmd    added reference to HELP_KEY
  17.      3/16/90 jmd    added support for KEY_INVALID
  18.      3/28/90 jmd    ansi-fied
  19.      8/27/90 jmd    now uses ocountry struct for errmsg
  20. */
  21.  
  22. #include <stdio.h>
  23.  
  24. #include "cscape.h"
  25. #include "scancode.h"
  26.  
  27. #include "helpdecl.h"
  28.  
  29. boolean special_key(sed_type sed, int scancode)
  30. /*
  31.     effects:    Handles Special Keys
  32.     returns:    TRUE if intercepted a key, FALSE otherwise.
  33.     normally handles FN1 as help.
  34.     Intercepts mouse events
  35. */
  36. {
  37.     switch (scancode) {
  38.  
  39.     case KEY_INVALID:
  40.         /* The validation in fexit failed: tell the user */
  41.         tone();
  42.         sed_BorderPrompt(sed, ocountry.errmsg);
  43.  
  44.         /* wait for a keystroke */
  45.         kb_CheckWait(-1);
  46.  
  47.         sed_BorderPrompt(sed, sed_GetCurrFieldData(sed, 0));
  48.         break;
  49.  
  50.     case MOU_HERE:
  51.         /* The mouse was clicked in our sed,
  52.            the mouse handler has already Jumped to the clicked field
  53.            so we can just ignore this code
  54.         */
  55.         return(TRUE);
  56.  
  57.     case MOU_THERE:
  58.         /* Another window has requested control via the mouse, quit this sed */
  59.         sed_SetBaton(sed, 0);
  60.         sed_ToggleExit(sed);
  61.         return(TRUE);
  62.  
  63.     case HELP_KEY:    /* special help key for certain non-Dos machines */
  64.     case FN1:
  65.         help_Show(sed_GetLabel(sed), sed_GetFieldNo(sed) + 1);
  66.         return(TRUE);
  67.  
  68.     default:
  69.         break;
  70.     }
  71.     return(FALSE);
  72. }
  73.