Wandering popup menu
jdorsey
#pragma rtGlobals=1 // Use modern global access method.
function CAPS_Proc()
PauseUpdate; Silent 1 // building window...
NewPanel /W=(10,60,362,700) /N=CASProc
SetDrawLayer UserBack
TabControl capsMainTab disable=0, proc=caps_tab_proc, pos={2,65}, size={346,500}, tabLabel(0)="Load", tabLabel(1)="Analyse CAS", title="MainTab", win=casProc
caps_tab_proc("tmp",0)
end
function caps_tab_proc(name,tab)
String name
Variable tab
String/G mieProbe = ""
GroupBox CAPS_Correct_RI_Box,disable=(tab!=0),pos={8,280},size={334,105}
TitleBox CAPS_RI_Caption,frame=0,fsize=16,pos={75,282},disable=(tab!=0),title="Refractive Index / Diameter"
SetVariable realRIset,value=realRI,pos={15,305},size={86,18},title="Real",limits={0,10,0},disable=(tab!=0)
SetVariable imagRIset,value=imagRI,pos={105,305},size={86,18},title="Imag",limits={0,10,0},disable=(tab!=0)
SetVariable mdminset,value=Dmin,pos={15,325},size={86,18},title="Dmin",limits={0,10,0},disable=(tab!=0)
SetVariable mdstepset,value=Dstep,pos={105,325},size={86,18},title="Dstep",limits={0,10,0},disable=(tab!=0)
SetVariable mdmaxset,value=Dmax,pos={200,325},size={86,18},title="Dmax",limits={0,10000,0},disable=(tab!=0)
PopupMenu mieProbeCtl,bodyWidth=59,value="-;APSD;CAS;PCASP",pos={240,302},proc=probeselectmie,title="Probe",disable=(tab!=0)
ControlInfo mieProbeCtl
Button CAPS_Run_Mie,disable=(tab!=0),pos={300,307},size={25,25},proc=RunMieCode,title="Go!"
if(tab==0)
SetDrawEnv linefgc=(65535,65535,65535)
DrawLine 12,350,338,350
else
SetDrawEnv linefgc=(52224,52224,52224)
DrawLine 12,350,338,350
endif
SetVariable xdminset,value=xDmin,pos={15,360},size={86,18},title="Dmin",limits={0,10,0},disable=(tab!=0)
SetVariable xdstepset,value=xDstep,pos={100,360},size={86,18},title="Dstep",limits={0,10,0},disable=(tab!=0)
SetVariable xdmaxset,value=xDmax,pos={190,360},size={86,18},title="Dmax",limits={0,10000,0},disable=(tab!=0)
Checkbox /Z useDefDiam disable=(tab!=0),variable=useDefaultDiameters,noproc,title="Default?",pos={280,360}
end
function CAPS_Proc()
PauseUpdate; Silent 1 // building window...
NewPanel /W=(10,60,362,700) /N=CASProc
SetDrawLayer UserBack
TabControl capsMainTab disable=0, proc=caps_tab_proc, pos={2,65}, size={346,500}, tabLabel(0)="Load", tabLabel(1)="Analyse CAS", title="MainTab", win=casProc
caps_tab_proc("tmp",0)
end
function caps_tab_proc(name,tab)
String name
Variable tab
String/G mieProbe = ""
GroupBox CAPS_Correct_RI_Box,disable=(tab!=0),pos={8,280},size={334,105}
TitleBox CAPS_RI_Caption,frame=0,fsize=16,pos={75,282},disable=(tab!=0),title="Refractive Index / Diameter"
SetVariable realRIset,value=realRI,pos={15,305},size={86,18},title="Real",limits={0,10,0},disable=(tab!=0)
SetVariable imagRIset,value=imagRI,pos={105,305},size={86,18},title="Imag",limits={0,10,0},disable=(tab!=0)
SetVariable mdminset,value=Dmin,pos={15,325},size={86,18},title="Dmin",limits={0,10,0},disable=(tab!=0)
SetVariable mdstepset,value=Dstep,pos={105,325},size={86,18},title="Dstep",limits={0,10,0},disable=(tab!=0)
SetVariable mdmaxset,value=Dmax,pos={200,325},size={86,18},title="Dmax",limits={0,10000,0},disable=(tab!=0)
PopupMenu mieProbeCtl,bodyWidth=59,value="-;APSD;CAS;PCASP",pos={240,302},proc=probeselectmie,title="Probe",disable=(tab!=0)
ControlInfo mieProbeCtl
Button CAPS_Run_Mie,disable=(tab!=0),pos={300,307},size={25,25},proc=RunMieCode,title="Go!"
if(tab==0)
SetDrawEnv linefgc=(65535,65535,65535)
DrawLine 12,350,338,350
else
SetDrawEnv linefgc=(52224,52224,52224)
DrawLine 12,350,338,350
endif
SetVariable xdminset,value=xDmin,pos={15,360},size={86,18},title="Dmin",limits={0,10,0},disable=(tab!=0)
SetVariable xdstepset,value=xDstep,pos={100,360},size={86,18},title="Dstep",limits={0,10,0},disable=(tab!=0)
SetVariable xdmaxset,value=xDmax,pos={190,360},size={86,18},title="Dmax",limits={0,10000,0},disable=(tab!=0)
Checkbox /Z useDefDiam disable=(tab!=0),variable=useDefaultDiameters,noproc,title="Default?",pos={280,360}
end
The best way to create these commands is to set up your panel the way you want it to look, then save the window recreation macro, and paste the saved PopupMenu command into your function.
--Jim Prouty
Software Engineer, WaveMetrics, Inc.
March 14, 2011 at 08:55 am - Permalink
Edit: Just tried changing the offending line to the following:
PopupMenu mieProbeCtl,value="-;APSD;CAS;PCASP",pos={240,302},bodyWidth=59,proc=probeselectmie,title="Probe",disable=(tab!=0)
and still see the same behaviour. Having already manually positioned everything where I want it using "pos=". I'll try making the window recreation macro and report back...
Edit 2: Popup menus seem very sensitive to the order in which seemingly unrelated options are presented, but after a vast amount of mucking about, the following seems to work:
PopupMenu mieProbeCtl,pos={170,302},size={120,220},bodywidth=60,value="-;APSD;CAS;PCASP",proc=probeselectmie,title="Probe",disable=(tab!=0)
Thanks again for the hint Jim.
March 14, 2011 at 11:39 am - Permalink
You're welcome. Note that the order you came up with is almost identically the order used by the window recreation macro.
That's no coincidence.
--Jim Prouty
Software Engineer, WaveMetrics, Inc.
March 14, 2011 at 01:16 pm - Permalink