How to navigate in a browse widget in a CHUI environment

Posted by joelscampos on 29-Jan-2016 12:12

The problem:

I can't navegate from a cell to another in a browse on Linux.

On Windows:

  --> if I am in the cell of a browse and press the TAB, the focus moves to the cell to the left.

On Linux:

  --> if I am in the cell of a browse and press the TAB, the focus moves to another widget of the frame.

Please, anybody knows how to navigate the browse on Linux?

That's the sample code I'm using:

DEF VAR campo-a         AS INT      NO-UNDO.

DEF TEMP-TABLE tt-arquivo
    FIELD nm-arquivo            AS CHAR
    FIELD mm-referencia         AS INT
    FIELD aa-referencia         AS INT.


DEF QUERY query-recebidas FOR tt-arquivo.


DEF BROWSE browse-recebidas QUERY query-recebidas
    DISPLAY
        tt-arquivo.nm-arquivo           COLUMN-LABEL "Coluna A"
        tt-arquivo.mm-referencia        COLUMN-LABEL "Coluna B" 
        tt-arquivo.aa-referencia        COLUMN-LABEL "Coluna C"
    ENABLE ALL
    WITH 4 DOWN SEPARATORS.



FORM
    campo-a                     AT 1
    browse-recebidas            AT 1
    WITH 1 DOWN OVERLAY NO-UNDERLINE
    FRAME f-principal.



CREATE tt-arquivo.
CREATE tt-arquivo.
CREATE tt-arquivo.

OPEN QUERY query-recebidas FOR EACH tt-arquivo.


UPDATE
    campo-a
    browse-recebidas
    WITH FRAME f-principal.

All Replies

Posted by Matt Gilarde on 29-Jan-2016 12:22

Ctrl-G to move to the next enabled cell. Ctrl-U to move to the previous enabled cell.

Posted by joelscampos on 01-Feb-2016 05:50

Thank you, Matt.

The code got that way:

&IF OPSYS = "UNIX" &THEN
    ON     ANY-KEY OF browse-recebidas
        OR ANY-KEY OF tt-arquivo.nm-arquivo
        OR ANY-KEY OF tt-arquivo.mm-referencia
        OR ANY-KEY OF tt-arquivo.aa-referencia
    DO:

        /* to the right */
        IF KEYFUNCTION(LAST-KEY) = "CURSOR-RIGHT"
        THEN DO:
            APPLY 'EDITOR-TAB' TO SELF. /* (CTRL + G) = "EDITOR-TAB" */
            RETURN NO-APPLY.
        END.

        /* to the left */
        IF KEYFUNCTION(LAST-KEY) = "CURSOR-LEFT"
        THEN DO:
            APPLY 'BACK-TAB' TO SELF.   /* (CTRL + U) = "BACK-TAB" */
            RETURN NO-APPLY.
        END.
    END.
&ENDIF

This thread is closed