This code will build a menu return string to call a function in a package based on input for three options
Function/S BuildMenuStr(string package, string rStr, [string actpanel])
string fWin = WinName(0,1)
if (ParamIsDefault(actpanel))
if ((strlen(fWin) == 0) || (exists(package) == 0))
rStr = "\\M1(" + rStr
endif
else
if ((strlen(fWin) == 0) || (exists(package) == 0))
rStr = "\\M1(" + rStr
else
if (ItemsInList(WinList(actpanel,";","WIN:64")) != 0)
rStr = "\\M1(" + rStr + " (active)"
endif
endif
endif
return rStr
end
By example, using Tony's Baselines package, I call this in one of my analysis package menu options.
BuildMenuStr("Baselines#Initialise","Generate Baselines",actpanel="BL_panel"), /Q, StartBaselines()
The menu return appears as
--> INACTIVE Generate Baselines - cannot select when front window is not a graph or baselines package is not loaded
--> ACTIVE Generate Baselines - can select when front window is a graph, baselines package is loaded, and baselines is not active on front window
--> INACTIVE Generate Baselines (active) - cannot select because front graph window already has baselines panel attached
EDIT -- A more secure approach is to check for the panel in WinList(...), since this returns it whether it is external or not.
Forum
Support
Gallery
Learn More
Learn More
Learn More