Trace Toggler
ajleenheer
menu "Macros"
"Trace Toggler",CreateTogglerPanel()
end
function CreateTogglerPanel()
string trl=tracenamelist("",";",1) //list of all traces on graph
string vtrl=tracenamelist("",";",1+4) //list of visible traces on graph
string item,itemname
variable items=itemsinlist(trl),i
string ttlabel="Trace Toggler for "+WinName(0,1)
string ttwinname="tt"+WinName(0,1)
DoWindow/K $ttwinname
NewPanel/W=(0,0,220,20*(items+2)+40)/N=$ttwinname/K=1 as "Toggle Traces"
TitleBox tb1,pos={110,20},size={0,0},anchor=MC,title=ttlabel
ModifyPanel/W=$ttwinname noEdit=1, fixedSize=0
String topGraph=WinName(0,1)
if(strlen(topGraph))
AutoPositionWindow/M=0/R=$topGraph $ttwinname
endif
//Create a checkbox for each trace, checked if visible and unchecked if already hidden
for(i=0;i<items;i+=1)
item=stringfromlist(i,trl)
print item
itemname=replacestring("'",item,"") //remove ugly single quotes for label
if (stringmatch(vtrl,"*"+item+"*"))
CheckBox $("box"+num2str(i)) pos={20,40+i*20},value=1,proc=ToggleTrace,userdata=item,title=itemname
else
CheckBox $("box"+num2str(i)) pos={20,40+i*20},value=0,proc=ToggleTrace,userdata=item,title=itemname
endif
endfor
Button closeme pos={50,40+i*20},size={130,20},proc=endTraceToggler,title="Close and reset",userdata=ttwinname
Button closeme2 pos={50,60+i*20},size={130,20},proc=endTraceToggler2,title="Close without reset",userdata=ttwinname
end
Function ToggleTrace(cba) : CheckBoxControl
STRUCT WMCheckboxAction &cba
string tracename=cba.userdata
switch( cba.eventCode )
case 2: // mouse up
Variable checked = cba.checked
If (checked==1)
ModifyGraph hideTrace($tracename)=0
Else
ModifyGraph hideTrace($tracename)=2
endif
break
case -1: // control being killed
break
endswitch
return 0
End
Function endTraceToggler(cba): ButtonControl
struct WMButtonAction &cba
string ttwinname=cba.userdata
if (cba.eventcode==2)
DoWindow/K $ttwinname
ModifyGraph hideTrace=0
endif
End
Function endTraceToggler2(cba): ButtonControl
struct WMButtonAction &cba
string ttwinname=cba.userdata
if (cba.eventcode==2)
DoWindow/K $ttwinname
endif
End
"Trace Toggler",CreateTogglerPanel()
end
function CreateTogglerPanel()
string trl=tracenamelist("",";",1) //list of all traces on graph
string vtrl=tracenamelist("",";",1+4) //list of visible traces on graph
string item,itemname
variable items=itemsinlist(trl),i
string ttlabel="Trace Toggler for "+WinName(0,1)
string ttwinname="tt"+WinName(0,1)
DoWindow/K $ttwinname
NewPanel/W=(0,0,220,20*(items+2)+40)/N=$ttwinname/K=1 as "Toggle Traces"
TitleBox tb1,pos={110,20},size={0,0},anchor=MC,title=ttlabel
ModifyPanel/W=$ttwinname noEdit=1, fixedSize=0
String topGraph=WinName(0,1)
if(strlen(topGraph))
AutoPositionWindow/M=0/R=$topGraph $ttwinname
endif
//Create a checkbox for each trace, checked if visible and unchecked if already hidden
for(i=0;i<items;i+=1)
item=stringfromlist(i,trl)
print item
itemname=replacestring("'",item,"") //remove ugly single quotes for label
if (stringmatch(vtrl,"*"+item+"*"))
CheckBox $("box"+num2str(i)) pos={20,40+i*20},value=1,proc=ToggleTrace,userdata=item,title=itemname
else
CheckBox $("box"+num2str(i)) pos={20,40+i*20},value=0,proc=ToggleTrace,userdata=item,title=itemname
endif
endfor
Button closeme pos={50,40+i*20},size={130,20},proc=endTraceToggler,title="Close and reset",userdata=ttwinname
Button closeme2 pos={50,60+i*20},size={130,20},proc=endTraceToggler2,title="Close without reset",userdata=ttwinname
end
Function ToggleTrace(cba) : CheckBoxControl
STRUCT WMCheckboxAction &cba
string tracename=cba.userdata
switch( cba.eventCode )
case 2: // mouse up
Variable checked = cba.checked
If (checked==1)
ModifyGraph hideTrace($tracename)=0
Else
ModifyGraph hideTrace($tracename)=2
endif
break
case -1: // control being killed
break
endswitch
return 0
End
Function endTraceToggler(cba): ButtonControl
struct WMButtonAction &cba
string ttwinname=cba.userdata
if (cba.eventcode==2)
DoWindow/K $ttwinname
ModifyGraph hideTrace=0
endif
End
Function endTraceToggler2(cba): ButtonControl
struct WMButtonAction &cba
string ttwinname=cba.userdata
if (cba.eventcode==2)
DoWindow/K $ttwinname
endif
End
Forum
Support
Gallery
Igor Pro 9
Learn More
Igor XOP Toolkit
Learn More
Igor NIDAQ Tools MX
Learn More