home *** CD-ROM | disk | FTP | other *** search
- /*
- fnbob.c 8/30/88
-
- % bob_funcs
-
- Object control passing functions.
-
- C-scape 3.1
- Copyright (c) 1986-1989 by Oakland Group, Inc.
- ALL RIGHTS RESERVED.
-
- Revision History:
- -----------------
- 9/15/88 jmd removed vid_Cursor calls
- 9/17/88 jmd added std_ funcs
- 10/14/88 jdc added var_size element to field_funcs_struct
- 12/05/88 jmd added mouse checking
- 12/06/88 jmd added special func, nesting support
- 05/23/89 jdc made default case pass value back instead of sed_IncField
- */
-
- #include <stdio.h>
- #include <ctype.h>
-
- #include "cscape.h"
- #include "fnfunc.h"
- #include "scancode.h"
-
- OGLOBAL field_funcs_struct bob_funcs = {
- std_fenter,
- std_fexit,
- bob_fkey,
- FNULL,
- FNULL,
- 0
- };
-
- void bob_fkey(sed)
- sed_type sed;
- /*
- Calls bob_Go for the bob attached to the field.
- Moves to the next field in the direction indicated
- by bob_Go's return value.
- */
- {
- bob_type bob;
- int ret, fieldno;
-
- fieldno = sed_GetFieldNo(sed);
- if ((bob = sed_GetFieldBob(sed, fieldno)) == NULL) {
-
- /* Error: no bob attached to the field */
- sed_SetBaton(sed, BOB_QUIT);
- sed_ToggleExit(sed);
- return;
- }
-
- ret = bob_Go(bob);
-
- /* See if special function is interested in BOB_ code */
- if (sed_DoSpecial(sed, ret))
- return;
-
- switch (ret) {
- case BOB_UP:
- sed_UpField(sed);
- break;
- case BOB_DOWN:
- sed_DownField(sed);
- break;
- case BOB_LEFT:
- sed_LeftField(sed);
- break;
- case BOB_RIGHT:
- sed_RightField(sed);
- break;
-
- case BOB_QUIT:
- default:
- sed_SetBaton(sed, ret);
- sed_ToggleExit(sed);
- break;
- }
- }
-
-