home *** CD-ROM | disk | FTP | other *** search
- property iSliderbuttonWidth, iRange, iIncrements, iStartVal, iSliderMin, iSliderMax, iSliderScript, iSliderType, iSliderVal, iSliderChan, iHalfKnobSize, iScale, iScreenMin, iScreenMax, iBarChan, iRestoreToStart
- global oDb
-
- on birth me, pSliderMin, pSliderMax, pScreenMin, pScreenMax, pSliderChan, pBarChan, pScale, pHalfKnobSize, pSlideAction, pStartVal, pRestoreToStart
- set iSliderMin to pSliderMin
- set iSliderMax to pSliderMax
- set iSliderChan to pSliderChan
- set iBarChan to pBarChan
- set iScale to pScale
- set iHalfKnobSize to pHalfKnobSize
- set iSliderScript to pSlideAction
- set iRange to iSliderMax - iSliderMin
- set iIncrements to iScale / (iRange + 0.0)
- set iScreenMin to pScreenMin
- set iScreenMax to pScreenMax
- set iSliderVal to pStartVal
- set iStartVal to pStartVal
- set iRestoreToStart to pRestoreToStart
- return me
- end
-
- on mReDefineSlider me, pSliderMin, pSliderMax, pStartVal
- set iSliderMin to pSliderMin
- set iSliderMax to pSliderMax
- if iSliderMax < 1 then
- set iSliderMax to 1
- end if
- set iScale to iScreenMax - iScreenMin + 0.0
- set iRange to iSliderMax - iSliderMin
- if iRange = 0 then
- set iRange to 1
- end if
- set iIncrements to iScale / (iRange + 0.0)
- set iSliderVal to pStartVal
- end
-
- on mClearSlider me
- puppetSprite(iSliderChan, 0)
- end
-
- on mSlideSlider me
- global oEvent, oTiming
- if not (the puppet of sprite iSliderChan) then
- puppetSprite(iSliderChan, 1)
- end if
- mShiftSlider(me)
- updateStage()
- set vOldSliderval to the iSliderVal of me
- mCalcSliderVal(me)
- if not (the iSliderVal of me = vOldSliderval) then
- do(iSliderScript)
- end if
- end
-
- on mSliderBarClick me
- global oControl
- mShiftSlider(me)
- mCalcSliderVal(me)
- mNudgeSlider(me, 0)
- do(iSliderScript)
- updateStage()
- end
-
- on mNudgeSlider me, pShift
- set vNewVal to iSliderVal + pShift
- if (vNewVal >= iSliderMin) and (vNewVal <= iSliderMax) then
- mSetSlider(me, vNewVal)
- else
- if vNewVal < iSliderMin then
- set vNewVal to iSliderMin
- else
- set vNewVal to iSliderMax
- end if
- mSetSlider(me, vNewVal)
- end if
- end
-
- on mSetSlider me, pValToForce, pDoScript
- if voidp(pDoScript) then
- set pDoScript to 1
- end if
- set iSliderVal to pValToForce
- if iSliderVal > iRange then
- set iSliderVal to iSliderMax
- end if
- mRestoreSlider(me, pDoScript)
- updateStage()
- end
-
- on mUnPuppetSlider me
- if the puppet of sprite iSliderChan then
- puppetSprite(iSliderChan, 0)
- end if
- end
-
- on mShowVal me
- return the iSliderVal of me
- end
-