Less (no) work for mezapman* wrote:I've updated my code

Why did add the second parameter to your open/close-submenu-procedure?
You could add the submenu after you added all the 'toplevel' entries, but who does this?
At least make it optional

Code: Select all
Procedure OpenSubMenu_CBM(iGadgetID,ItemIndex = -1)
;- Added these 3 lines
If ItemIndex = -1
ItemIndex = CountGadgetItems(iGadgetID)-1
EndIf
;.....
vReturn = 0
actualValue = SendMessage_(GadgetID(iGadgetID),#CB_GETITEMDATA,ItemIndex,0)
If actualValue<>#CB_ERR
actualValue|1
If SendMessage_(GadgetID(iGadgetID),#CB_SETITEMDATA,ItemIndex,actualValue)<>#CB_ERR
vReturn = 1
EndIf
EndIf
ProcedureReturn vReturn
EndProcedure