#pragma rtGlobals=1 // Use modern global access method. menu "List box" "List box", Panel () End Function Panel () String/G folders, path_folder String nomefolder, wlist Variable index, pos1, pos2, pnt , nfolders, indice //It creates the general string "folders" with name of all folders folders="" DFREF referenza=GetDataFolderDFR() index=0 do nomefolder = GetIndexedObjNameDFR(referenza, 4, index) folders=folders+";"+nomefolder if (strlen(nomefolder) == 0) break endif index=index+1 while (1) //It finds the number of folder pos1 = 1 nfolders= 0 do pos2 = strsearch(folders, ";", pos1) if (pos2 == -1) break endif pos1= pos2+1 nfolders += 1 while(1) //It creates the wave "list_folders" for the listbox with the name of the folders Make/T/O/N=(nfolders) list_folders pos2 = strsearch(folders, ";", 0) pnt= 1 indice=0 do pos1= pos2+1 pos2 = strsearch(folders, ";", pos1) list_folders[indice] = folders[pos1, pos2-1] pnt += 1 indice+=1 while(pnt < nfolders+1 ) Make/T/O/N=(nfolders) list_waves="" NewPanel/N=newpnale/W=(181,179,800,510) ListBox list_folder ,pos={9,13},size={273,241}, fsize=12, listwave=list_folders, mode=1, proc=proc_list_folder ListBox list_wave ,pos={300,13},size={273,241}, fsize=12, listwave=list_waves, mode=1, proc=proc_list_wave End //procedure to control the listbox folders Function proc_list_folder(ctrlName,row,col,event) : ListBoxControl String ctrlName Variable row Variable col Variable event //1=mouse down, 2=up, 3=dbl click, 4=cell select with mouse or keys //5=cell select with shift key, 6=begin edit, 7=end if (event==4) //It creates a nne general string "path_folder" with the path of the selected folder String/G folders, path_folder String wlist Variable pos1, pos2, pnt, nfolders, indice, posa, posb , nwaves, pntwave pos1 = 1 nfolders= 0 do pos2 = strsearch(folders, ";", pos1) if (pos2 == -1) break endif pos1= pos2+1 nfolders += 1 while(1) Make/T/O/N=(nfolders) lista_folders pos2 = strsearch(folders, ";", 0) pnt= 1 indice=0 do pos1= pos2+1 pos2 = strsearch(folders, ";", pos1) lista_folders[indice] = folders[pos1, pos2-1] pnt += 1 indice+=1 while(pnt < nfolders+1 ) path_folder=":'"+lista_folders[row]+"':" print path_folder /// It creates a the wave "list_waves" with the wave in the selected folder Setdatafolder $path_folder wlist=WaveList("*",";","") Setdatafolder root: posa = 0 nwaves= 0 do posb = strsearch(wlist, ";", posa) if (posb == -1) break endif posa= posb+1 nwaves += 1 while(1) //crea onda di testo lista_waves con i nomi dei folders Make/T/O/N=(nwaves) list_waves posb = strsearch(wlist, ";", 0) pntwave= 0 indice=0 do posa= posb+1 posb = strsearch(wlist, ";", posa) list_waves[indice] = wlist[posa, posb-1] pntwave += 1 indice+=1 while(pntwave < nwaves+1 ) ListBox list_wave ,pos={300,13},size={273,241}, fsize=12, listwave=list_waves, mode=1, proc=procedura_list_wave endif end