Scale XY by Same Range
jjweimer
#pragma rtGlobals=1 // Use modern global access method.
Window ScaleGraph() : Panel
PauseUpdate; Silent 1 // building window...
NewPanel /W=(659,70,835,193)
SetDrawLayer UserBack
DrawText 54,67,"Zoom Range"
Slider sliderx,pos={15,71},size={150,52},proc=SliderProc
Slider sliderx,limits={-3,3,0.5},value= 0,vert= 0
SetVariable setvarx0,pos={14,31},size={100,16},proc=SetVarProc,title="x0"
SetVariable setvarx0,value= _NUM:0
SetVariable setvary0,pos={14,8},size={100,16},proc=SetVarProc,title="y0"
SetVariable setvary0,value= _NUM:3
EndMacro
Function SliderProc(sa) : SliderControl
STRUCT WMSliderAction &sa
string fWin
variable x0, y0, ve
switch( sa.eventCode )
case -1: // control being killed
break
default:
if( sa.eventCode & 1 ) // value set
fWin = WinName(0,1)
if (strlen(fWin)==0)
break
endif
ControlInfo setvarx0
x0 = V_value
ve = x0 + 10^sa.curval
SetAxis/W=$fWin bottom, x0, ve
ControlInfo setvary0
y0 = V_value
ve = y0 + 10^sa.curval
SetAxis/W=$fWin left, y0, ve
endif
break
endswitch
return 0
End
Function SetVarProc(sva) : SetVariableControl
STRUCT WMSetVariableAction &sva
string fWin
variable x0, y0, ve, sf
switch( sva.eventCode )
case 1: // mouse up
case 2: // Enter key
case 3: // Live update
Variable dval = sva.dval
fWin = WinName(0,1)
if (strlen(fWin)==0)
break
endif
ControlInfo sliderx
sf = V_value
ControlInfo setvarx0
x0 = V_value
ve = x0 + 10^sf
SetAxis/W=$fWin bottom, x0, ve
ControlInfo setvary0
y0 = V_value
ve = y0 + 10^sf
SetAxis/W=$fWin left, y0, ve
break
case -1: // control being killed
break
endswitch
return 0
End
Window ScaleGraph() : Panel
PauseUpdate; Silent 1 // building window...
NewPanel /W=(659,70,835,193)
SetDrawLayer UserBack
DrawText 54,67,"Zoom Range"
Slider sliderx,pos={15,71},size={150,52},proc=SliderProc
Slider sliderx,limits={-3,3,0.5},value= 0,vert= 0
SetVariable setvarx0,pos={14,31},size={100,16},proc=SetVarProc,title="x0"
SetVariable setvarx0,value= _NUM:0
SetVariable setvary0,pos={14,8},size={100,16},proc=SetVarProc,title="y0"
SetVariable setvary0,value= _NUM:3
EndMacro
Function SliderProc(sa) : SliderControl
STRUCT WMSliderAction &sa
string fWin
variable x0, y0, ve
switch( sa.eventCode )
case -1: // control being killed
break
default:
if( sa.eventCode & 1 ) // value set
fWin = WinName(0,1)
if (strlen(fWin)==0)
break
endif
ControlInfo setvarx0
x0 = V_value
ve = x0 + 10^sa.curval
SetAxis/W=$fWin bottom, x0, ve
ControlInfo setvary0
y0 = V_value
ve = y0 + 10^sa.curval
SetAxis/W=$fWin left, y0, ve
endif
break
endswitch
return 0
End
Function SetVarProc(sva) : SetVariableControl
STRUCT WMSetVariableAction &sva
string fWin
variable x0, y0, ve, sf
switch( sva.eventCode )
case 1: // mouse up
case 2: // Enter key
case 3: // Live update
Variable dval = sva.dval
fWin = WinName(0,1)
if (strlen(fWin)==0)
break
endif
ControlInfo sliderx
sf = V_value
ControlInfo setvarx0
x0 = V_value
ve = x0 + 10^sf
SetAxis/W=$fWin bottom, x0, ve
ControlInfo setvary0
y0 = V_value
ve = y0 + 10^sf
SetAxis/W=$fWin left, y0, ve
break
case -1: // control being killed
break
endswitch
return 0
End
Forum
Support
Gallery
Igor Pro 9
Learn More
Igor XOP Toolkit
Learn More
Igor NIDAQ Tools MX
Learn More