
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

Forum

Support

Gallery
Igor Pro 9
Learn More
Igor XOP Toolkit
Learn More
Igor NIDAQ Tools MX
Learn More