Hi Andrew, everyone,
Continuing the thread with my own experience : I registered one and the same trigger on the 'Save' menus of ADE L and XL doing:
In .cdsinit :
envSetVal("asimenv.startup" "sessInitTrigFunc" 'string "customCheckLockPostInstallTrigger") ;# for ADE L
CheckLockADESaveMenu.il is (in short):
;####### Setting callback
w_window = hiGetCurrentWindow() ;# for ADE L states, window cannot be fetched through (args->window)
l = parseString(hiGetWinObjName(w_window))
newLib = nth(length(l)-3 l)
newCell = nth(length(l)-2 l)
newView = nth(length(l)-1 l)
l_bM_handle = eval(cadr(hiGetBannerMenus(w_window))) ;# handle to the 'File' banner, containing the 'Save' menu
if(pcreMatchp("adexl" newView) then
hiSetMenuItemCallback(l_bM_handle 'saveFileItem "CheckLockADE_XLSaveMenu(newLib newCell newView nil)")
else ;# state is ADE L
hiSetMenuItemCallback(l_bM_handle 'SaveState "CheckLockADE_LSaveMenu(newLib newCell newView nil)")
;####### Triggers registration
deRegUserTriggers("adestate" nil nil 'customCheckLockPostInstallTrigger)
deRegUserTriggers("adexl" nil nil 'customCheckLockPostInstallTrigger)
;####### ADE L & XL callbacks
procedure(CheckLockADE_LSaveMenu(newLib newCell newView exit) ...)
procedure(CheckLockADE_XLSaveMenu(newLib newCell newView exit) ...)
All works well on the triggers side, I get my callbacks executed prior to saving with both ADE L and XL... However, whenever opening an ADE XL view and starting a job over corners, I get the job pending. Whereas double-clicking on the test, opening the test editor, the job runs.
Interestingly enough, when restarting virtuoso commenting out the "sessInitTrigFunc" call in my .cdsinit, my ADE XL simulation works... but of course, the ADE L doesn't trigger on 'save' anymore. I don't think axlSessionRegisterCreationCallback() would help me there for ADE XL but I might be wrong.
I wonder if this is because I use only 1 trigger for both tools, or if I don't use the correct trigger types (adestate and adexl) or if there's something more to it... in any case, I can't fathom the reason why, so your guess/feedback would be much appreciated!
Thanks & Regards,
PS : I use Virtuoso 6.1.5.
PPS : ADE XL job distribution method is Local, not LBS