Perform list item double‑click processing

WTSupported in traditional Synergy on Windows




 a_status               ,n
 a_listid               ,n
 a_data                 ,a
 a_inpid                ,n
 a_disabled             ,n
 a_itemindex            ,n
 a_row                  ,n
 a_methoddatal          ,any
 a_methoddata20         ,any



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


The ID of the list. (n)


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


The ID of the associated input window. (n)


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


The ordinal index of the list item. (n)


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)


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.


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


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"
   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
     D_MIDYES: begin         ;"Yes" selected, go to last item
                  g_select = TRUE
                  g_entnam = "S_BOTTOM"
     D_MIDNO: a_sts = FALSE ;"No" select, simulate RETURN
     D_MIDCANCEL: nop        ;"Cancel" just returns TRUE