Progress
Programming
Handbook


Tab Order for a Frame Family

Once you have established the tab orders for the widgets of each frame in a frame family, the tab order proceeds according to these definitions:

Note that you cannot tab between frame families, only within a single frame family.

Figure 25–2 shows a frame family with four frames. Thus, the tab-order widgets in frame FRAME 1 include:

The tab-order widgets in frame FRAME 2 include:

The tab-order widgets in frame Frame 4 include only fill-in Field4, and in frame FRAME 3 include buttons RED, GREEN, and BLUE, and fill-in Field3.

Figure 25–2: Frame Family Tab Order

However, the actual tab items include the respective RED, GREEN, and BLUE buttons and the Field1, Field2, Field3, and Field4 fill-ins.

The following procedure (p-foftab.p) displays the frames in Figure 25–2. Note that because FRAME f4 is assigned to the frame family before FRAME f3, f4 comes before f3 in the default tab order:

p-foftab.p
DEFINE BUTTON bred1 LABEL "RED".
DEFINE BUTTON bred2 LABEL "RED".
DEFINE BUTTON bred3 LABEL "RED".
DEFINE BUTTON bgreen1 LABEL "GREEN".
DEFINE BUTTON bgreen2 LABEL "GREEN".
DEFINE BUTTON bgreen3 LABEL "GREEN".
DEFINE BUTTON bblue1 LABEL "BLUE".
DEFINE BUTTON bblue2 LABEL "BLUE".
DEFINE BUTTON bblue3 LABEL "BLUE".
DEFINE VARIABLE field1 AS CHARACTER LABEL "Field1".
DEFINE VARIABLE field2 AS CHARACTER LABEL "Field2".
DEFINE VARIABLE field3 AS CHARACTER LABEL "Field3".
DEFINE VARIABLE field4 AS CHARACTER LABEL "Field4".
DEFINE FRAME f1 SKIP(.5)
    SPACE(18) bred1 bgreen1 bblue1 field1 
WITH SIDE-LABELS TITLE "FRAME 1" KEEP-TAB-ORDER
     SIZE 80 BY 11.5.
DEFINE FRAME f2 SKIP(.5)
    SPACE(3) bred2 bgreen2 bblue2 SKIP(.5) SPACE(1) field2 
WITH SIDE-LABELS TITLE "FRAME 2" KEEP-TAB-ORDER 
     SIZE 30 BY 8 AT COLUMN 7 ROW 3.
DEFINE FRAME f3 SKIP(.5)
    SPACE(3) bred3 bgreen3 bblue3 SKIP(.5) SPACE(1) field3 
WITH SIDE-LABELS TITLE "FRAME 3" KEEP-TAB-ORDER 
     SIZE 30 BY 8 AT COLUMN 44 ROW 3.
DEFINE FRAME f4 SKIP(.5)
    SPACE(1) field4 
WITH SIDE-LABELS TITLE "Frame 4" KEEP-TAB-ORDER
     SIZE 26 BY 3 AT COLUMN 2.5 ROW 4.5. 
FRAME f2:FRAME = FRAME f1:HANDLE.
FRAME f4:FRAME = FRAME f2:HANDLE.
FRAME f3:FRAME = FRAME f1:HANDLE.
CURRENT-WINDOW:TITLE = "Frame Family Tab Behavior".

ON MOUSE-SELECT-CLICK, GO, TAB, RETURN ANYWHERE DO:
    MESSAGE LAST-EVENT:FUNCTION "of" SELF:TYPE 
        IF SELF:TYPE = "FRAME" OR SELF:TYPE = "WINDOW" 
        THEN SELF:TITLE ELSE SELF:LABEL.
END.

ENABLE ALL WITH FRAME f1.
ENABLE ALL WITH FRAME f2.
ENABLE ALL WITH FRAME f4.
ENABLE ALL WITH FRAME f3.
SESSION:DATA-ENTRY-RETURN = TRUE.
WAIT-FOR WINDOW-CLOSE OF CURRENT-WINDOW. 


Copyright © 2004 Progress Software Corporation
www.progress.com
Voice: (781) 280-4000
Fax: (781) 280-4095