@@ -275,18 +275,41 @@ private command buildHandlerMenu pContext
275275
276276 local tFormattedHandlers
277277 repeat for each line tHandler in tHandlers
278- put word 2 of tHandler & return after tFormattedHandlers
278+ put tab & word 2 of tHandler & return after tFormattedHandlers
279279 end repeat
280280 delete the last char of tFormattedHandlers
281281
282- if the number of lines of tHandlers = 0 then
283- put "(No Handlers" into tFormattedHandlers
284- set the cHandlers of me to empty
282+ local tDefaultHandlers
283+ put revSEDefaultHandlers() into tDefaultHandlers
284+
285+ local tFormattedDefaultHandlers
286+ repeat for each line tHandler in tDefaultHandlers
287+ put tab & tHandler & return after tFormattedDefaultHandlers
288+ end repeat
289+ delete the last char of tFormattedDefaultHandlers
290+
291+ local tShowDefaultHandlers
292+ dispatch function "sePrefGet" to me with "editor,showDefaultHandlers"
293+ put the result into tShowDefaultHandlers
294+
295+ local tMenu
296+ if tHandlers is not empty then
297+ put enableMenuItem("Go to handler..." , true ) into tMenu
298+ put return & tFormattedHandlers after tMenu
285299 else
286- set the cHandlers of me to tHandlers
300+ put enableMenuItem( "Go to handler..." , false ) into tMenu
287301 end if
302+ if tDefaultHandlers is not empty then
303+ put return & enableMenuItem("Add default handler..." , true ) after tMenu
304+ put return & tFormattedDefaultHandlers after tMenu
305+ else
306+ put return & enableMenuItem("Add default handler..." , false ) after tMenu
307+ end if
308+ put return & toggleMenuItem("Show default handlers" , tShowDefaultHandlers ) after tMenu
309+
310+ set the cHandlers of me to tHandlers
288311
289- set the text of button "Handler" of me to modifyMenu("Handler" , tFormattedHandlers )
312+ set the text of button "Handler" of me to modifyMenu("Handler" , tMenu )
290313end buildHandlerMenu
291314
292315on menuPick pItemName
@@ -321,15 +344,31 @@ private command handleHandlerMenuPick pItemName
321344 exit handleHandlerMenuPick
322345 end if
323346
324- local tLineNumber
325- put the menuHistory of button "Handler" of me into tLineNumber
326-
327- local tHandler
328- put line tLineNumber of the cHandlers of me into tHandler
347+ set the itemdelimiter to "|"
348+ switch item 1 of pItemName
349+ case "Go to handler..."
350+ local tPick , tHandlerInfo
351+ put item 2 of pItemName into tPick
352+ if not matchText (the cHandlers of me, "(.* " & tPick & " .*)" , \
353+ tHandlerInfo ) then
354+ exit handleHandlerMenuPick
355+ end if
356+
357+ dispatch "handlerPicked" to group "Left Handler List" \
358+ with tHandlerInfo
359+ break
360+ case "Add default handler..."
361+ dispatch "handlerPicked" to group "Left Handler List" \
362+ with item 2 of pItemName
363+ break
364+ case "Show default handlers"
365+ local tShowDefaultHandlers
366+ dispatch function "sePrefGet" to me with "editor,showDefaultHandlers"
367+ put the result into tShowDefaultHandlers
368+ dispatch "sePrefSet" to me with "editor,showDefaultHandlers" , not tShowDefaultHandlers
369+ break
370+ end switch
329371
330- local tScriptLineNumber
331- put word 3 of tHandler into tScriptLineNumber
332- send "goLine tScriptLineNumber, true" to group "Editor"
333372 seUpdateLeftBar
334373 seUpdateToolbar
335374end handleHandlerMenuPick
@@ -511,6 +550,20 @@ end handleHelpMenuPick
511550
512551# ########
513552
553+ private function toggleMenuItem pItem, pHilited
554+ if pHilited then
555+ return "!c" & pItem
556+ end if
557+ return "!n" & pItem
558+ end toggleMenuItem
559+
560+ private function enableMenuItem pItem, pEnabled
561+ if pEnabled then
562+ return pItem
563+ end if
564+ return "(" & pItem
565+ end enableMenuItem
566+
514567private function modifyMenu pMenuName, pMenu
515568 if the last char of pMenu is not return then
516569 put return after pMenu
0 commit comments