LDBLCLICK_METHOD

Perform list item double-click processing

WSupported on Windows

 

 

 

subroutine LDBLCLICK_METHOD
 a_status               ,n
 a_listid               ,n
 a_data                 ,a
 a_inpid                ,n
 a_disabled             ,n
 a_itemindex            ,n
 a_row                  ,n
 a_methoddata1          ,any
       .
       .
       .
 a_methoddata20         ,any

Arguments

a_status

Returned with the status flag: TRUE if condition handled (proceed) or FALSE if simulate an Enter. (n)

a_listid

The ID of the list. (n)

a_data

(optional) The data associated with the list item. (a)

a_inpid

The ID of the associated input window. (n)

a_disabled

(optional) The true/false flag that indicates whether to disable the list item. (n)

a_itemindex

The ordinal index of the list item. (n)

a_row

The item’s row number within the currently visible set of rows. (n)

a_methoddata1 through a_methoddata20

(optional) Up to 20 additional data arguments. (any)

Discussion

LDBLCLICK_METHOD is a subroutine that you write and name. L_PROCESS calls it to handle the event of double-clicking on a list item.

You can register the LDBLCLICK_METHOD using the .LISTCLASS script command, or the L_METHOD or L_CLASS subroutines.

On Unix and OpenVMS, the LDBLCLICK_METHOD is allowed to be registered, but it will never be called.

If this subroutine returns a_status as false, an Enter is simulated as if no method were registered.

On entry to this subroutine, g_select will be false. If g_select is true when it returns to the current routine, the menu entry contained in g_entnam will be resignaled and if the current routine (L_SELECT or L_PROCESS) recognizes that menu entry, the menu entry will be honored by that routine. Otherwise, it will be returned to the caller. Therefore, you can allow your LDBLCLICK_METHOD to perform any standard list function (such as S_UP or S_DOWN) or cause a full return to the caller.

A_methoddata1 through a_methoddata20 are up to 20 additional optional arguments that can be passed to I_INPUT or L_INPUT. They are passed, in turn, directly to LDBLCLICK_METHOD. This enables you to communicate additional information to LDBCLICK_METHOD.

Note

Toolkit passes the method data arguments to the current list processing routine (L_PROCESS, L_INPUT, or L_SELECT) and to the list methods. Thus, if you pass data arguments to one list processing routine, to ensure these arguments are always available, you must pass them to all the list processing routines.

See also

Examples

subroutine mydblclk
;
; Description: Double-click method for a list
;
; Arguments:
;
        a_sts        ,n      ;Return status
        a_listid     ,n      ;List ID
        a_data       ,n      ;Data of item
        a_inpid      ,n      ;Input window ID
        a_disabled   ,n      ;Disabled?
        a_itmindx    ,n      ;Item's index
        a_row        ,n      ;Item's visible row
; Notes:
;
;  This double-click method enables the user to select the
;  desired action. It is assumed that the list is being 
;  processed with L_SELECT.
;
;  If the user double-clicks an item in the list, a 
;  message box is popped up giving the user the option of:
;
;   1. Going to the end of the list (press "Yes")
;   2. Simulating a RETURN          (press "No")
;   3. Doing nothing                (press "Cancel")
.include "WND:tools.def"
proc
   a_sts = TRUE               ;Success by default
   case %u_msgbox("Double-click encountered -- select:\n"+
   &        "      Yes    = goto last\n"+
   &        "      No     = simulate RETURN\n"+
   &        "      Cancel = do nothing", D_MYESNOCANCEL) of
     begincase
     D_MIDYES: begin         ;"Yes" selected, go to last item
                  g_select = TRUE
                  g_entnam = "S_BOTTOM"
                end
     D_MIDNO: a_sts = FALSE ;"No" select, simulate RETURN
     D_MIDCANCEL: nop        ;"Cancel" just returns TRUE
     endcase
   xreturn
endsubroutine