Browse Prior Art Database

Technique to Move Focus in Presentation Manager Applications

IP.com Disclosure Number: IPCOM000108060D
Original Publication Date: 1992-Apr-01
Included in the Prior Art Database: 2005-Mar-22
Document File: 2 page(s) / 74K

Publishing Venue

IBM

Related People

Norberg, J: AUTHOR

Abstract

A common problem for Presentation Manager* (PM) applications is how to control the effect of the TAB and the ARROW keys. TAB keys move focus from one field in a group of controls to another group of controls. The ARROW keys move focus from one control in the group to the next (or previous) control within the group.

This text was extracted from an ASCII text file.
This is the abbreviated version, containing approximately 52% of the total text.

Technique to Move Focus in Presentation Manager Applications

       A common problem for Presentation Manager* (PM)
applications is how to control the effect of the TAB and the ARROW
keys. TAB keys move focus from one field in a group of controls to
another group of controls.  The ARROW keys move focus from one
control in the group to the next (or previous) control within the
group.

      The common problem is that this requires a lot of code. Even a
small application can require hundreds of lines of basically
repetitive code to deal with this.
Suggested Solution

      What is suggested is a table-driven approach, in which the
application designer determines which key moves focus from one
control to some other control by putting entries in a table.  It also
requires a function which scans the table to find the relevant entry,
and finally moves the focus to that control.  What is intended is a
structure with the following fields:
typedef struct (
        Control id;             /* the current control */
        Control tab;            /* which control to move focus to
when the user presses the TAB key    */
         Control backtab;        /* ... the BACKTAB key */
         Control rarrow;         /* ... the RIGHT ARROW key */
         Control larrow;         /* ... the LEFT ARROW key */
         Control darrow;         /* ... the DOWN arrow key */
         Control uarrow;         /* ... the UP ARROW key */
         ) FocusTable;

      If the screen looks like the figure on the next page, the
corresponding table could look like:
FocusTable (
         /* id  tab btab rarr larr darr uarr */
         ( C11, C21, C21, C12, C13, C11, C11 ),
         ( C12, C21,...